@qvac/sdk 0.8.1 → 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 (608) hide show
  1. package/LICENSE +24 -1
  2. package/README.md +191 -373
  3. package/dist/client/api/cancel.d.ts +4 -22
  4. package/dist/client/api/cancel.js +6 -25
  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 +2 -6
  13. package/dist/client/api/index.js +2 -6
  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 +11 -0
  19. package/dist/client/api/ping.js +18 -0
  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.d.ts +2 -0
  55. package/dist/examples/embed-hyperdrive.js +19 -0
  56. package/dist/examples/kv-cache-cleanup.js +2 -1
  57. package/dist/examples/kv-cache-custom-key.js +2 -16
  58. package/dist/examples/kv-cache-example.js +2 -1
  59. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  60. package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
  61. package/dist/examples/llamacpp-filesystem.js +2 -2
  62. package/dist/examples/llamacpp-http.js +1 -0
  63. package/dist/examples/llamacpp-hyperdrive.d.ts +2 -0
  64. package/dist/examples/{llamacpp-p2p.js → llamacpp-hyperdrive.js} +2 -1
  65. package/dist/examples/llamacpp-multimodal.js +4 -3
  66. package/dist/examples/llamacpp-native-tools.js +30 -72
  67. package/dist/examples/multi-model-demo.js +3 -2
  68. package/dist/examples/parallel-download.js +14 -46
  69. package/dist/examples/rag/rag-chromadb.js +1 -0
  70. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  71. package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
  72. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  73. package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
  74. package/dist/examples/rag/rag-lancedb.js +1 -0
  75. package/dist/examples/rag/rag-sqlite.js +1 -0
  76. package/dist/examples/seed-hyperdrive.d.ts +2 -0
  77. package/dist/examples/text-to-speech.d.ts +3 -0
  78. package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
  79. package/dist/examples/translation/translation-indic.js +1 -4
  80. package/dist/examples/translation/translation-llm-context.js +1 -0
  81. package/dist/examples/translation/translation-llm.js +2 -2
  82. package/dist/examples/translation/translation-opus.js +3 -6
  83. package/dist/examples/translation/translation-stream.js +3 -3
  84. package/dist/examples/whispercpp-filesystem.js +43 -0
  85. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
  86. package/dist/expo/plugins/index.d.ts +0 -3
  87. package/dist/expo/plugins/index.js +0 -3
  88. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  89. package/dist/expo/plugins/withMobileBundle.js +40 -121
  90. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  91. package/dist/expo/plugins/withQvacSDK.js +1 -26
  92. package/dist/index.d.ts +4 -9
  93. package/dist/index.js +5 -11
  94. package/dist/logging/base-logger.js +16 -26
  95. package/dist/logging/index.d.ts +1 -7
  96. package/dist/logging/index.js +1 -7
  97. package/dist/logging/logger.d.ts +2 -0
  98. package/dist/logging/logger.js +6 -11
  99. package/dist/logging/stream-logger.d.ts +1 -1
  100. package/dist/logging/stream-logger.js +3 -6
  101. package/dist/logging/transport.js +2 -2
  102. package/dist/logging/types.d.ts +0 -2
  103. package/dist/logging/utils.d.ts +0 -2
  104. package/dist/logging/utils.js +0 -62
  105. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  106. package/dist/models/hyperdrive/models.d.ts +619 -0
  107. package/dist/models/hyperdrive/models.js +693 -0
  108. package/dist/schemas/cancel.d.ts +0 -18
  109. package/dist/schemas/cancel.js +0 -7
  110. package/dist/schemas/common.d.ts +166 -3012
  111. package/dist/schemas/common.js +4 -27
  112. package/dist/schemas/completion-stream.d.ts +60 -31
  113. package/dist/schemas/completion-stream.js +44 -20
  114. package/dist/schemas/delegate.d.ts +0 -9
  115. package/dist/schemas/delegate.js +2 -6
  116. package/dist/schemas/download-asset.d.ts +3 -125
  117. package/dist/schemas/download-asset.js +5 -22
  118. package/dist/schemas/embed.d.ts +3 -3
  119. package/dist/schemas/embed.js +2 -9
  120. package/dist/schemas/index.d.ts +2 -20
  121. package/dist/schemas/index.js +2 -20
  122. package/dist/schemas/llamacpp-config.d.ts +12 -243
  123. package/dist/schemas/llamacpp-config.js +14 -50
  124. package/dist/schemas/load-model.d.ts +893 -14471
  125. package/dist/schemas/load-model.js +72 -325
  126. package/dist/schemas/logging-stream.d.ts +4 -11
  127. package/dist/schemas/logging-stream.js +3 -4
  128. package/dist/schemas/ping.d.ts +11 -0
  129. package/dist/schemas/ping.js +8 -0
  130. package/dist/schemas/rag.d.ts +52 -183
  131. package/dist/schemas/rag.js +23 -152
  132. package/dist/schemas/text-to-speech.d.ts +1 -692
  133. package/dist/schemas/text-to-speech.js +3 -35
  134. package/dist/schemas/transcription.d.ts +0 -3
  135. package/dist/schemas/transcription.js +0 -1
  136. package/dist/schemas/translate.d.ts +23 -68
  137. package/dist/schemas/translate.js +11 -37
  138. package/dist/schemas/translation-config.d.ts +7 -810
  139. package/dist/schemas/translation-config.js +7 -113
  140. package/dist/schemas/unload-model.d.ts +0 -2
  141. package/dist/schemas/unload-model.js +0 -2
  142. package/dist/schemas/whispercpp-config.d.ts +25 -0
  143. package/dist/schemas/whispercpp-config.js +18 -0
  144. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  145. package/dist/server/bare/addons/index.d.ts +4 -0
  146. package/dist/server/bare/addons/index.js +3 -0
  147. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  148. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  149. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  150. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
  151. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  152. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  153. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  154. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  155. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  156. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  157. package/dist/server/bare/addons/load-model.d.ts +3 -0
  158. package/dist/server/bare/addons/load-model.js +62 -0
  159. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  160. package/dist/server/bare/addons/translation/create-model.js +45 -0
  161. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  162. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  163. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  164. package/dist/server/bare/addons/translation/index.js +2 -0
  165. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  166. package/dist/server/bare/addons/tts/create-model.js +40 -0
  167. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  168. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  169. package/dist/server/bare/addons/tts/index.js +2 -0
  170. package/dist/server/bare/addons/unload-model.js +20 -0
  171. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  172. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  173. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  174. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
  175. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  176. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  177. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  178. package/dist/server/bare/delegate-rpc-client.js +45 -187
  179. package/dist/server/bare/hyperswarm.d.ts +0 -3
  180. package/dist/server/bare/hyperswarm.js +6 -29
  181. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  182. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  183. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  184. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  185. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  186. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  187. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  188. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  189. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  190. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  191. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  192. package/dist/server/bare/registry/model-registry.d.ts +26 -16
  193. package/dist/server/bare/registry/model-registry.js +13 -34
  194. package/dist/server/error-handlers.d.ts +2 -3
  195. package/dist/server/error-handlers.js +10 -15
  196. package/dist/server/http-server.d.ts +2 -0
  197. package/dist/server/http-server.js +189 -0
  198. package/dist/server/rpc/create-server.js +3 -5
  199. package/dist/server/rpc/handle-request.d.ts +9 -0
  200. package/dist/server/rpc/handle-request.js +242 -92
  201. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  202. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  203. package/dist/server/rpc/handlers/completion-stream-delegated.js +8 -20
  204. package/dist/server/rpc/handlers/completion-stream.js +41 -2
  205. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  206. package/dist/server/rpc/handlers/download-asset.js +6 -59
  207. package/dist/server/rpc/handlers/embed.js +19 -2
  208. package/dist/server/rpc/handlers/index.d.ts +0 -13
  209. package/dist/server/rpc/handlers/index.js +0 -13
  210. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  211. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  212. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  213. package/dist/server/rpc/handlers/load-model/http.js +55 -424
  214. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  215. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  216. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  217. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  218. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  219. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  220. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  221. package/dist/server/rpc/handlers/load-model-delegated.js +20 -60
  222. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  223. package/dist/server/rpc/handlers/load-model.js +57 -0
  224. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  225. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  226. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  227. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  228. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  229. package/dist/server/rpc/handlers/rag.js +43 -130
  230. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  231. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  232. package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
  233. package/dist/server/rpc/handlers/translate.js +49 -2
  234. package/dist/server/rpc/handlers/unload-model.js +3 -12
  235. package/dist/server/rpc/index.d.ts +1 -1
  236. package/dist/server/utils/audio/decoder.d.ts +1 -2
  237. package/dist/server/utils/audio/decoder.js +12 -49
  238. package/dist/server/utils/cache.d.ts +8 -19
  239. package/dist/server/utils/cache.js +15 -100
  240. package/dist/server/utils/hash.d.ts +5 -0
  241. package/dist/server/utils/hash.js +11 -0
  242. package/dist/server/utils/index.d.ts +2 -7
  243. package/dist/server/utils/index.js +2 -7
  244. package/dist/server/utils/tool-parser.js +14 -28
  245. package/dist/server/worker.d.ts +5 -4
  246. package/dist/server/worker.js +89 -22
  247. package/package.json +41 -148
  248. package/NOTICE +0 -695
  249. package/bare-imports.json +0 -44
  250. package/dist/client/api/get-model-info.d.ts +0 -36
  251. package/dist/client/api/get-model-info.js +0 -14
  252. package/dist/client/api/heartbeat.d.ts +0 -30
  253. package/dist/client/api/heartbeat.js +0 -38
  254. package/dist/client/api/invoke-plugin.d.ts +0 -15
  255. package/dist/client/api/invoke-plugin.js +0 -38
  256. package/dist/client/api/ocr.d.ts +0 -31
  257. package/dist/client/api/ocr.js +0 -88
  258. package/dist/client/api/registry.d.ts +0 -14
  259. package/dist/client/api/registry.js +0 -37
  260. package/dist/client/config-loader/config-utils.d.ts +0 -5
  261. package/dist/client/config-loader/config-utils.js +0 -20
  262. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  263. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  264. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  265. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  266. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  267. package/dist/client/config-loader/resolve-config.node.js +0 -145
  268. package/dist/client/init-hooks.d.ts +0 -21
  269. package/dist/client/init-hooks.js +0 -66
  270. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  271. package/dist/client/rpc/expo-device-info.js +0 -32
  272. package/dist/client/rpc/profiling/index.d.ts +0 -2
  273. package/dist/client/rpc/profiling/index.js +0 -1
  274. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  275. package/dist/client/rpc/profiling/profiler.js +0 -139
  276. package/dist/constants/registry.d.ts +0 -2
  277. package/dist/constants/registry.js +0 -1
  278. package/dist/examples/cache-management.d.ts +0 -2
  279. package/dist/examples/cache-management.js +0 -97
  280. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  281. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  282. package/dist/examples/config/default/default.config.d.ts +0 -8
  283. package/dist/examples/config/default/default.config.js +0 -6
  284. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  285. package/dist/examples/config/plugins/plugins.config.js +0 -4
  286. package/dist/examples/config-reload.d.ts +0 -2
  287. package/dist/examples/config-reload.js +0 -49
  288. package/dist/examples/default-config-usage.d.ts +0 -17
  289. package/dist/examples/default-config-usage.js +0 -47
  290. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  291. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  292. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  293. package/dist/examples/download-with-blind-relays.js +0 -49
  294. package/dist/examples/embed-p2p.d.ts +0 -2
  295. package/dist/examples/embed-p2p.js +0 -54
  296. package/dist/examples/llamacpp-p2p.d.ts +0 -2
  297. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  298. package/dist/examples/llamacpp-sharded.js +0 -53
  299. package/dist/examples/logging-file-transport.d.ts +0 -2
  300. package/dist/examples/logging-streaming.d.ts +0 -2
  301. package/dist/examples/logging-streaming.js +0 -75
  302. package/dist/examples/mcp-websearch.d.ts +0 -13
  303. package/dist/examples/mcp-websearch.js +0 -176
  304. package/dist/examples/ocr-fasttext.d.ts +0 -2
  305. package/dist/examples/ocr-fasttext.js +0 -52
  306. package/dist/examples/plugins.d.ts +0 -14
  307. package/dist/examples/plugins.js +0 -129
  308. package/dist/examples/profiling/basic.d.ts +0 -2
  309. package/dist/examples/profiling/basic.js +0 -71
  310. package/dist/examples/profiling/per-call.d.ts +0 -2
  311. package/dist/examples/profiling/per-call.js +0 -30
  312. package/dist/examples/quickstart.d.ts +0 -2
  313. package/dist/examples/quickstart.js +0 -28
  314. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  315. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  316. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  317. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  318. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  319. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  320. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  321. package/dist/examples/registry-query.d.ts +0 -2
  322. package/dist/examples/registry-query.js +0 -87
  323. package/dist/examples/seed-p2p.d.ts +0 -2
  324. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  325. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  326. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  327. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  328. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  329. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  330. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  331. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  332. package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
  333. package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
  334. package/dist/examples/transcription/whispercpp-prompt.js +0 -67
  335. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  336. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  337. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  338. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  339. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  340. package/dist/examples/translation/translation-bergamot.js +0 -39
  341. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  342. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  343. package/dist/examples/tts/chatterbox.d.ts +0 -2
  344. package/dist/examples/tts/chatterbox.js +0 -59
  345. package/dist/examples/tts/supertonic.d.ts +0 -2
  346. package/dist/examples/tts/supertonic.js +0 -51
  347. package/dist/examples/tts/utils.d.ts +0 -17
  348. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  349. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  350. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  351. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  352. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  353. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  354. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  355. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  356. package/dist/logging/addon.d.ts +0 -6
  357. package/dist/logging/addon.js +0 -75
  358. package/dist/logging/client-logger.d.ts +0 -3
  359. package/dist/logging/client-logger.js +0 -24
  360. package/dist/logging/namespaces.d.ts +0 -6
  361. package/dist/logging/namespaces.js +0 -6
  362. package/dist/logging/registry.d.ts +0 -31
  363. package/dist/logging/registry.js +0 -62
  364. package/dist/logging/server-logger.d.ts +0 -3
  365. package/dist/logging/server-logger.js +0 -16
  366. package/dist/models/registry/models.d.ts +0 -10417
  367. package/dist/models/registry/models.js +0 -10757
  368. package/dist/models/update-models/codegen.d.ts +0 -3
  369. package/dist/models/update-models/codegen.js +0 -135
  370. package/dist/models/update-models/history.d.ts +0 -24
  371. package/dist/models/update-models/history.js +0 -107
  372. package/dist/models/update-models/index.d.ts +0 -2
  373. package/dist/models/update-models/index.js +0 -125
  374. package/dist/models/update-models/naming.d.ts +0 -4
  375. package/dist/models/update-models/naming.js +0 -370
  376. package/dist/models/update-models/processing.d.ts +0 -8
  377. package/dist/models/update-models/processing.js +0 -67
  378. package/dist/models/update-models/registry.d.ts +0 -4
  379. package/dist/models/update-models/registry.js +0 -67
  380. package/dist/models/update-models/shards.d.ts +0 -4
  381. package/dist/models/update-models/shards.js +0 -57
  382. package/dist/models/update-models/types.d.ts +0 -60
  383. package/dist/models/update-models/types.js +0 -1
  384. package/dist/models/update-models/utils.d.ts +0 -3
  385. package/dist/models/update-models/utils.js +0 -21
  386. package/dist/pear/pre.d.ts +0 -18
  387. package/dist/pear/pre.js +0 -433
  388. package/dist/profiling/aggregator.d.ts +0 -15
  389. package/dist/profiling/aggregator.js +0 -100
  390. package/dist/profiling/clock.d.ts +0 -12
  391. package/dist/profiling/clock.js +0 -51
  392. package/dist/profiling/controller.d.ts +0 -33
  393. package/dist/profiling/controller.js +0 -123
  394. package/dist/profiling/envelope.d.ts +0 -10
  395. package/dist/profiling/envelope.js +0 -36
  396. package/dist/profiling/events.d.ts +0 -20
  397. package/dist/profiling/events.js +0 -37
  398. package/dist/profiling/exporters.d.ts +0 -10
  399. package/dist/profiling/exporters.js +0 -236
  400. package/dist/profiling/index.d.ts +0 -36
  401. package/dist/profiling/index.js +0 -31
  402. package/dist/profiling/ring-buffer.d.ts +0 -19
  403. package/dist/profiling/ring-buffer.js +0 -83
  404. package/dist/profiling/types.d.ts +0 -47
  405. package/dist/profiling/types.js +0 -1
  406. package/dist/schemas/archive.d.ts +0 -9
  407. package/dist/schemas/archive.js +0 -17
  408. package/dist/schemas/engine-addon-map.d.ts +0 -5
  409. package/dist/schemas/engine-addon-map.js +0 -52
  410. package/dist/schemas/get-model-info.d.ts +0 -120
  411. package/dist/schemas/get-model-info.js +0 -58
  412. package/dist/schemas/heartbeat.d.ts +0 -17
  413. package/dist/schemas/heartbeat.js +0 -10
  414. package/dist/schemas/json-schema.d.ts +0 -16
  415. package/dist/schemas/json-schema.js +0 -2
  416. package/dist/schemas/mcp-adapter.d.ts +0 -47
  417. package/dist/schemas/mcp-adapter.js +0 -1
  418. package/dist/schemas/model-src-utils.d.ts +0 -148
  419. package/dist/schemas/model-src-utils.js +0 -35
  420. package/dist/schemas/model-types.d.ts +0 -183
  421. package/dist/schemas/model-types.js +0 -168
  422. package/dist/schemas/ocr.d.ts +0 -125
  423. package/dist/schemas/ocr.js +0 -57
  424. package/dist/schemas/path-validation.d.ts +0 -10
  425. package/dist/schemas/path-validation.js +0 -22
  426. package/dist/schemas/plugin.d.ts +0 -226
  427. package/dist/schemas/plugin.js +0 -158
  428. package/dist/schemas/profiling.d.ts +0 -105
  429. package/dist/schemas/profiling.js +0 -66
  430. package/dist/schemas/registry.d.ts +0 -356
  431. package/dist/schemas/registry.js +0 -93
  432. package/dist/schemas/reload-config.d.ts +0 -476
  433. package/dist/schemas/reload-config.js +0 -44
  434. package/dist/schemas/runtime-context.d.ts +0 -19
  435. package/dist/schemas/runtime-context.js +0 -7
  436. package/dist/schemas/sdk-config.d.ts +0 -2973
  437. package/dist/schemas/sdk-config.js +0 -136
  438. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  439. package/dist/schemas/sdk-errors-client.js +0 -143
  440. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  441. package/dist/schemas/sdk-errors-registry.js +0 -8
  442. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  443. package/dist/schemas/sdk-errors-server.js +0 -451
  444. package/dist/schemas/shard.d.ts +0 -21
  445. package/dist/schemas/shard.js +0 -17
  446. package/dist/schemas/tools.d.ts +0 -65
  447. package/dist/schemas/tools.js +0 -43
  448. package/dist/schemas/transcription-config.d.ts +0 -383
  449. package/dist/schemas/transcription-config.js +0 -95
  450. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  451. package/dist/scripts/run-security-tests-bare.js +0 -78
  452. package/dist/scripts/run-security-tests.d.ts +0 -2
  453. package/dist/scripts/run-security-tests.js +0 -22
  454. package/dist/scripts/run-unit-tests.d.ts +0 -2
  455. package/dist/scripts/run-unit-tests.js +0 -17
  456. package/dist/server/bare/ops/embed.d.ts +0 -12
  457. package/dist/server/bare/ops/load-model.d.ts +0 -9
  458. package/dist/server/bare/ops/load-model.js +0 -85
  459. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  460. package/dist/server/bare/ops/transcribe.js +0 -75
  461. package/dist/server/bare/ops/translate.d.ts +0 -5
  462. package/dist/server/bare/ops/unload-model.js +0 -41
  463. package/dist/server/bare/plugins/index.d.ts +0 -8
  464. package/dist/server/bare/plugins/index.js +0 -7
  465. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  466. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  467. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  468. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  469. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  470. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  471. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  472. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -201
  473. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  474. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  475. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  476. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  477. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  478. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  479. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  480. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  481. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  482. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  483. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  484. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  485. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  486. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  487. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  488. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  489. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  490. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  491. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  492. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  493. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  494. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  495. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  496. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  497. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  498. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  499. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  500. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  501. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  502. package/dist/server/bare/registry/config-registry.js +0 -82
  503. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  504. package/dist/server/bare/registry/model-config-registry.js +0 -15
  505. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  506. package/dist/server/bare/registry/model-config-utils.js +0 -112
  507. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  508. package/dist/server/bare/registry/registry-client.js +0 -37
  509. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  510. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  511. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  512. package/dist/server/bare/utils/audio-input.js +0 -33
  513. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  514. package/dist/server/bare/utils/loader-adapter.js +0 -9
  515. package/dist/server/env.d.ts +0 -22
  516. package/dist/server/env.js +0 -57
  517. package/dist/server/plugins/index.d.ts +0 -2
  518. package/dist/server/plugins/index.js +0 -1
  519. package/dist/server/plugins/registry.d.ts +0 -9
  520. package/dist/server/plugins/registry.js +0 -79
  521. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  522. package/dist/server/rpc/delegate-transport.js +0 -236
  523. package/dist/server/rpc/delegate-utils.d.ts +0 -2
  524. package/dist/server/rpc/delegate-utils.js +0 -5
  525. package/dist/server/rpc/handler-registry.d.ts +0 -3
  526. package/dist/server/rpc/handler-registry.js +0 -113
  527. package/dist/server/rpc/handler-utils.d.ts +0 -23
  528. package/dist/server/rpc/handler-utils.js +0 -170
  529. package/dist/server/rpc/handlers/cancel-delegated.d.ts +0 -4
  530. package/dist/server/rpc/handlers/cancel-delegated.js +0 -71
  531. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  532. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  533. package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +0 -4
  534. package/dist/server/rpc/handlers/heartbeat-delegated.js +0 -32
  535. package/dist/server/rpc/handlers/heartbeat.d.ts +0 -3
  536. package/dist/server/rpc/handlers/heartbeat.js +0 -3
  537. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  538. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  539. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  540. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  541. package/dist/server/rpc/handlers/load-model/registry.js +0 -548
  542. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  543. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  544. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  545. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  546. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  547. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  548. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  549. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  550. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  551. package/dist/server/rpc/handlers/registry.js +0 -157
  552. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  553. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  554. package/dist/server/rpc/profiling/context.d.ts +0 -18
  555. package/dist/server/rpc/profiling/context.js +0 -38
  556. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  557. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  558. package/dist/server/rpc/profiling/index.d.ts +0 -5
  559. package/dist/server/rpc/profiling/index.js +0 -4
  560. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  561. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  562. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  563. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  564. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  565. package/dist/server/rpc/profiling/profiler.js +0 -97
  566. package/dist/server/utils/archive.d.ts +0 -4
  567. package/dist/server/utils/archive.js +0 -179
  568. package/dist/server/utils/checksum.d.ts +0 -4
  569. package/dist/server/utils/checksum.js +0 -31
  570. package/dist/server/utils/config-transform.d.ts +0 -3
  571. package/dist/server/utils/config-transform.js +0 -23
  572. package/dist/server/utils/formatting.d.ts +0 -19
  573. package/dist/server/utils/formatting.js +0 -61
  574. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  575. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  576. package/dist/server/utils/path-security.d.ts +0 -12
  577. package/dist/server/utils/path-security.js +0 -25
  578. package/dist/server/utils/shard-utils.d.ts +0 -48
  579. package/dist/server/utils/shard-utils.js +0 -125
  580. package/dist/server/utils/tool-integration.d.ts +0 -13
  581. package/dist/server/utils/tool-integration.js +0 -43
  582. package/dist/server/worker-core.d.ts +0 -6
  583. package/dist/server/worker-core.js +0 -88
  584. package/dist/utils/errors-base.d.ts +0 -3
  585. package/dist/utils/errors-base.js +0 -13
  586. package/dist/utils/errors-client.d.ts +0 -137
  587. package/dist/utils/errors-client.js +0 -240
  588. package/dist/utils/errors-server.d.ts +0 -236
  589. package/dist/utils/errors-server.js +0 -412
  590. package/dist/utils/global-singleton.d.ts +0 -2
  591. package/dist/utils/global-singleton.js +0 -10
  592. package/dist/utils/mcp-adapter.d.ts +0 -12
  593. package/dist/utils/mcp-adapter.js +0 -103
  594. package/dist/utils/object.d.ts +0 -2
  595. package/dist/utils/object.js +0 -3
  596. package/dist/utils/path-sanitize.d.ts +0 -17
  597. package/dist/utils/path-sanitize.js +0 -54
  598. package/dist/utils/tool-helpers.d.ts +0 -25
  599. package/dist/utils/tool-helpers.js +0 -112
  600. package/expo/plugins/patches/android-link.mjs +0 -63
  601. package/expo/plugins/patches/ios-link.mjs +0 -63
  602. /package/dist/examples/{seed-p2p.js → seed-hyperdrive.js} +0 -0
  603. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  604. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  605. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  606. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  607. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  608. /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
@@ -1,23 +0,0 @@
1
- import { normalizeModelType, ModelType, } from "../../schemas/index.js";
2
- export function transformConfigForReload(modelType, config) {
3
- const canonicalType = normalizeModelType(modelType);
4
- switch (canonicalType) {
5
- case ModelType.whispercppTranscription: {
6
- const whisperConfig = config;
7
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
- const { contextParams, miscConfig, ...whisperParams } = whisperConfig;
9
- return {
10
- whisperConfig: whisperParams,
11
- ...(miscConfig && { miscConfig }),
12
- };
13
- }
14
- case ModelType.llamacppCompletion:
15
- case ModelType.llamacppEmbedding:
16
- case ModelType.nmtcppTranslation:
17
- case ModelType.onnxTts:
18
- // Return as-is for now
19
- return config;
20
- default:
21
- return config;
22
- }
23
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Generate a short hash (16 characters) from any input string
3
- */
4
- export declare function generateShortHash(input: string): string;
5
- /**
6
- * Create a stable, deterministic string representation of a config object.
7
- * - Recursively sorts all object keys
8
- * - Normalizes ModelDescriptor objects to their src string
9
- */
10
- export declare function canonicalConfigString(config: Record<string, unknown> | undefined): string;
11
- /**
12
- * Calculate progress percentage with bounds checking and consistent formatting
13
- * @param current - Current progress value
14
- * @param total - Total value
15
- * @param decimals - Number of decimal places (default: 2)
16
- * @returns Percentage clamped between 0-100 with fixed decimal places
17
- */
18
- export declare function calculatePercentage(current: number, total: number, decimals?: number): number;
19
- //# sourceMappingURL=formatting.d.ts.map
@@ -1,61 +0,0 @@
1
- import crypto from "bare-crypto";
2
- /**
3
- * Generate a short hash (16 characters) from any input string
4
- */
5
- export function generateShortHash(input) {
6
- const hash = crypto
7
- .createHash("sha256")
8
- .update(Buffer.from(input, "utf8"))
9
- .digest("hex");
10
- return hash.substring(0, 16);
11
- }
12
- function isModelDescriptor(value) {
13
- return (typeof value === "object" &&
14
- value !== null &&
15
- "src" in value &&
16
- typeof value.src === "string");
17
- }
18
- function normalizeValue(value) {
19
- if (isModelDescriptor(value)) {
20
- return value.src;
21
- }
22
- if (Array.isArray(value)) {
23
- return value.map(normalizeValue);
24
- }
25
- if (typeof value === "object" && value !== null) {
26
- return normalizeConfig(value);
27
- }
28
- return value;
29
- }
30
- function normalizeConfig(config) {
31
- const result = {};
32
- for (const key of Object.keys(config).sort()) {
33
- result[key] = normalizeValue(config[key]);
34
- }
35
- return result;
36
- }
37
- /**
38
- * Create a stable, deterministic string representation of a config object.
39
- * - Recursively sorts all object keys
40
- * - Normalizes ModelDescriptor objects to their src string
41
- */
42
- export function canonicalConfigString(config) {
43
- if (!config)
44
- return "{}";
45
- return JSON.stringify(normalizeConfig(config));
46
- }
47
- /**
48
- * Calculate progress percentage with bounds checking and consistent formatting
49
- * @param current - Current progress value
50
- * @param total - Total value
51
- * @param decimals - Number of decimal places (default: 2)
52
- * @returns Percentage clamped between 0-100 with fixed decimal places
53
- */
54
- export function calculatePercentage(current, total, decimals = 2) {
55
- if (total <= 0 || current < 0) {
56
- return 0;
57
- }
58
- const rawPercentage = (current / total) * 100;
59
- const clampedPercentage = Math.min(Math.max(rawPercentage, 0), 100);
60
- return Number(clampedPercentage.toFixed(decimals));
61
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Extract tensor names from all GGUF shards and write to {baseFilename}.tensors.txt
3
- * Required for sharded models to enable incremental/async loading
4
- * @throws ModelLoadFailedError if any shard fails extraction
5
- */
6
- export declare function extractAndWriteTensorsFile(shardDir: string, shardFilenames: string[], baseFilename: string): Promise<string>;
7
- /**
8
- * Check if a file has a valid GGUF header structure.
9
- * Returns true if the header parses successfully and contains tensor metadata.
10
- *
11
- * NOTE: This only validates the header structure, NOT that tensor data exists.
12
- * A file can have a valid header but be incomplete.
13
- */
14
- export declare function hasValidGGUFHeader(filePath: string): Promise<boolean>;
15
- //# sourceMappingURL=gguf-tensor-extractor.d.ts.map
@@ -1,314 +0,0 @@
1
- import { promises as fsPromises, createReadStream } from "bare-fs";
2
- import { getServerLogger } from "../../logging/index.js";
3
- import { ModelLoadFailedError } from "../../utils/errors-server.js";
4
- import { validateAndJoinPath } from "./path-security.js";
5
- const logger = getServerLogger();
6
- // GGUF value types
7
- const GGUF_TYPE = {
8
- UINT8: 0,
9
- INT8: 1,
10
- UINT16: 2,
11
- INT16: 3,
12
- UINT32: 4,
13
- INT32: 5,
14
- FLOAT32: 6,
15
- BOOL: 7,
16
- STRING: 8,
17
- ARRAY: 9,
18
- UINT64: 10,
19
- INT64: 11,
20
- FLOAT64: 12,
21
- };
22
- // Type sizes in bytes
23
- const TYPE_SIZE = {
24
- [GGUF_TYPE.UINT8]: 1,
25
- [GGUF_TYPE.INT8]: 1,
26
- [GGUF_TYPE.UINT16]: 2,
27
- [GGUF_TYPE.INT16]: 2,
28
- [GGUF_TYPE.UINT32]: 4,
29
- [GGUF_TYPE.INT32]: 4,
30
- [GGUF_TYPE.FLOAT32]: 4,
31
- [GGUF_TYPE.BOOL]: 1,
32
- [GGUF_TYPE.UINT64]: 8,
33
- [GGUF_TYPE.INT64]: 8,
34
- [GGUF_TYPE.FLOAT64]: 8,
35
- };
36
- // Limits to prevent DoS/corruption issues
37
- const LIMITS = {
38
- MAX_KV_COUNT: 100_000,
39
- MAX_TENSOR_COUNT: 1_000_000,
40
- MAX_STRING_LEN: 100 * 1024 * 1024, // 100MB for tokenizer vocab
41
- MAX_TENSOR_NAME_LEN: 64 * 1024, // 64KB for tensor names
42
- MAX_ARRAY_LEN: 1_000_000_000, // 1B elements
43
- MAX_DIMS: 32,
44
- MAX_HEADER_SIZE: 4 * 1024 * 1024 * 1024, // 4GB max header
45
- };
46
- // Magic bytes for endianness detection
47
- const GGUF_MAGIC_LE = 0x46554747; // "GGUF" little-endian
48
- const GGUF_MAGIC_BE = 0x47475546; // "FUGG" big-endian
49
- // File-local error for streaming parser control flow
50
- // Used to signal "keep reading chunks" rather than an actual failure
51
- class NeedMoreDataError extends Error {
52
- currentOffset;
53
- bytesNeeded;
54
- constructor(currentOffset, bytesNeeded) {
55
- super(`Need more data: offset ${currentOffset} requires ${bytesNeeded} more bytes`);
56
- this.currentOffset = currentOffset;
57
- this.bytesNeeded = bytesNeeded;
58
- this.name = "NeedMoreDataError";
59
- }
60
- }
61
- function parseGGUFHeader(buffer) {
62
- const bufferLength = buffer.length;
63
- let offset = 0;
64
- let isBigEndian = false;
65
- function ensureBytes(needed) {
66
- if (offset + needed > bufferLength) {
67
- throw new NeedMoreDataError(offset, needed);
68
- }
69
- }
70
- function readU32() {
71
- ensureBytes(4);
72
- const val = isBigEndian
73
- ? buffer.readUInt32BE(offset)
74
- : buffer.readUInt32LE(offset);
75
- offset += 4;
76
- return val;
77
- }
78
- function readU64() {
79
- ensureBytes(8);
80
- const val = isBigEndian
81
- ? buffer.readBigUInt64BE(offset)
82
- : buffer.readBigUInt64LE(offset);
83
- offset += 8;
84
- return val;
85
- }
86
- function readU64AsNumber() {
87
- const val = readU64();
88
- if (val > BigInt(Number.MAX_SAFE_INTEGER)) {
89
- throw new ModelLoadFailedError(`Value ${val} exceeds safe integer range`);
90
- }
91
- return Number(val);
92
- }
93
- function skipBytes(n) {
94
- ensureBytes(n);
95
- offset += n;
96
- }
97
- function skipString() {
98
- const len = readU64AsNumber();
99
- if (len > LIMITS.MAX_STRING_LEN) {
100
- throw new ModelLoadFailedError(`String length ${len} exceeds limit ${LIMITS.MAX_STRING_LEN}`);
101
- }
102
- skipBytes(len);
103
- }
104
- function readTensorName() {
105
- const len = readU64AsNumber();
106
- if (len > LIMITS.MAX_TENSOR_NAME_LEN) {
107
- logger.warn(`Tensor name length ${len} exceeds limit, truncating`);
108
- skipBytes(len);
109
- return "";
110
- }
111
- ensureBytes(len);
112
- const name = buffer.toString("utf8", offset, offset + len);
113
- offset += len;
114
- return name;
115
- }
116
- function skipValue(valueType) {
117
- const size = TYPE_SIZE[valueType];
118
- if (size !== undefined) {
119
- skipBytes(size);
120
- return;
121
- }
122
- if (valueType === GGUF_TYPE.STRING) {
123
- skipString();
124
- return;
125
- }
126
- if (valueType === GGUF_TYPE.ARRAY) {
127
- const arrayType = readU32();
128
- const arrayLen = readU64AsNumber();
129
- if (arrayLen > LIMITS.MAX_ARRAY_LEN) {
130
- throw new ModelLoadFailedError(`Array length ${arrayLen} exceeds limit ${LIMITS.MAX_ARRAY_LEN}`);
131
- }
132
- const elementSize = TYPE_SIZE[arrayType];
133
- if (elementSize !== undefined) {
134
- // Fixed-size elements
135
- skipBytes(arrayLen * elementSize);
136
- }
137
- else if (arrayType === GGUF_TYPE.STRING) {
138
- // Array of strings
139
- for (let i = 0; i < arrayLen; i++) {
140
- skipString();
141
- }
142
- }
143
- else if (arrayType === GGUF_TYPE.ARRAY) {
144
- throw new ModelLoadFailedError("Nested arrays not supported");
145
- }
146
- else {
147
- throw new ModelLoadFailedError(`Unknown array element type: ${arrayType}`);
148
- }
149
- return;
150
- }
151
- throw new ModelLoadFailedError(`Unknown value type: ${valueType}`);
152
- }
153
- // Parse header
154
- ensureBytes(4);
155
- const magicLE = buffer.readUInt32LE(offset);
156
- if (magicLE === GGUF_MAGIC_LE) {
157
- isBigEndian = false;
158
- }
159
- else if (magicLE === GGUF_MAGIC_BE) {
160
- isBigEndian = true;
161
- logger.debug("Detected big-endian GGUF file");
162
- }
163
- else {
164
- throw new ModelLoadFailedError(`Invalid GGUF file - magic number mismatch (got 0x${magicLE.toString(16)})`);
165
- }
166
- offset += 4;
167
- // Version
168
- const version = readU32();
169
- if (version !== 2 && version !== 3) {
170
- throw new ModelLoadFailedError(`Unsupported GGUF version: ${version}`);
171
- }
172
- // Tensor count and KV count
173
- const tensorCount = readU64AsNumber();
174
- const kvCount = readU64AsNumber();
175
- if (tensorCount > LIMITS.MAX_TENSOR_COUNT) {
176
- throw new ModelLoadFailedError(`Tensor count ${tensorCount} exceeds limit ${LIMITS.MAX_TENSOR_COUNT}`);
177
- }
178
- if (kvCount > LIMITS.MAX_KV_COUNT) {
179
- throw new ModelLoadFailedError(`KV count ${kvCount} exceeds limit ${LIMITS.MAX_KV_COUNT}`);
180
- }
181
- // Skip all KV pairs
182
- for (let i = 0; i < kvCount; i++) {
183
- skipString();
184
- const valueType = readU32();
185
- skipValue(valueType);
186
- }
187
- logger.debug(`KV section complete at offset ${offset}, reading tensor names...`);
188
- const tensorNames = [];
189
- for (let i = 0; i < tensorCount; i++) {
190
- const name = readTensorName();
191
- if (name) {
192
- tensorNames.push(name);
193
- }
194
- // n_dims (u32)
195
- const nDims = readU32();
196
- if (nDims > LIMITS.MAX_DIMS) {
197
- throw new ModelLoadFailedError(`Tensor dimensions ${nDims} exceeds limit ${LIMITS.MAX_DIMS}`);
198
- }
199
- // shape: nDims * u64
200
- skipBytes(nDims * 8);
201
- // dtype (u32)
202
- skipBytes(4);
203
- // offset (u64)
204
- skipBytes(8);
205
- }
206
- logger.debug(`Parsed ${tensorNames.length} tensor names successfully`);
207
- return tensorNames;
208
- }
209
- async function extractTensorNamesFromHeader(filePath) {
210
- const stream = createReadStream(filePath);
211
- const chunks = [];
212
- let totalRead = 0;
213
- let streamDestroyed = false;
214
- function destroyStream() {
215
- if (!streamDestroyed) {
216
- streamDestroyed = true;
217
- stream.destroy();
218
- }
219
- }
220
- try {
221
- for await (const chunk of stream) {
222
- chunks.push(chunk);
223
- totalRead += chunk.length;
224
- // Only attempt parsing once we have enough data for the basic header
225
- if (totalRead >= 24) {
226
- try {
227
- const buffer = Buffer.concat(chunks);
228
- const result = parseGGUFHeader(buffer);
229
- destroyStream();
230
- return result;
231
- }
232
- catch (error) {
233
- if (error instanceof NeedMoreDataError) {
234
- // Keep reading
235
- if (totalRead >= LIMITS.MAX_HEADER_SIZE) {
236
- throw new ModelLoadFailedError(`GGUF header exceeds ${LIMITS.MAX_HEADER_SIZE / (1024 * 1024 * 1024)}GB limit`);
237
- }
238
- continue;
239
- }
240
- throw error;
241
- }
242
- }
243
- }
244
- throw new ModelLoadFailedError("File ended before GGUF header could be parsed");
245
- }
246
- finally {
247
- destroyStream();
248
- }
249
- }
250
- /**
251
- * Extract tensor names from all GGUF shards and write to {baseFilename}.tensors.txt
252
- * Required for sharded models to enable incremental/async loading
253
- * @throws ModelLoadFailedError if any shard fails extraction
254
- */
255
- export async function extractAndWriteTensorsFile(shardDir, shardFilenames, baseFilename) {
256
- const tensorsFilePath = validateAndJoinPath(shardDir, `${baseFilename}.tensors.txt`);
257
- try {
258
- await fsPromises.access(tensorsFilePath);
259
- logger.info(`Tensors file already exists: ${tensorsFilePath}`);
260
- return tensorsFilePath;
261
- }
262
- catch {
263
- // Continue with extraction
264
- }
265
- logger.info(`Extracting tensors from ${shardFilenames.length} shards...`);
266
- const allTensorNames = new Set();
267
- const failedShards = [];
268
- for (const filename of shardFilenames) {
269
- const shardPath = validateAndJoinPath(shardDir, filename);
270
- try {
271
- logger.debug(`Extracting tensors from ${filename}...`);
272
- const tensorNames = await extractTensorNamesFromHeader(shardPath);
273
- if (tensorNames.length > 0) {
274
- tensorNames.forEach((name) => allTensorNames.add(name));
275
- logger.info(`Extracted ${tensorNames.length} tensors from ${filename}`);
276
- }
277
- else {
278
- failedShards.push(filename);
279
- logger.error(`No tensors found in ${filename}`);
280
- }
281
- }
282
- catch (error) {
283
- failedShards.push(filename);
284
- logger.error(`Failed to extract tensors from ${filename}:`, error);
285
- }
286
- }
287
- if (failedShards.length > 0) {
288
- throw new ModelLoadFailedError(`Failed to extract tensors from ${failedShards.length}/${shardFilenames.length} shards: ${failedShards.join(", ")}`);
289
- }
290
- if (allTensorNames.size === 0) {
291
- throw new ModelLoadFailedError(`Could not extract any tensors from shards.`);
292
- }
293
- const tensorNames = Array.from(allTensorNames).sort();
294
- await fsPromises.writeFile(tensorsFilePath, tensorNames.join("\n") + "\n", "utf8");
295
- logger.info(`Tensors file created: ${tensorsFilePath} (${tensorNames.length} tensors from ${shardFilenames.length} shards)`);
296
- return tensorsFilePath;
297
- }
298
- /**
299
- * Check if a file has a valid GGUF header structure.
300
- * Returns true if the header parses successfully and contains tensor metadata.
301
- *
302
- * NOTE: This only validates the header structure, NOT that tensor data exists.
303
- * A file can have a valid header but be incomplete.
304
- */
305
- export async function hasValidGGUFHeader(filePath) {
306
- try {
307
- const tensorNames = await extractTensorNamesFromHeader(filePath);
308
- return tensorNames.length > 0;
309
- }
310
- catch (error) {
311
- logger.warn(`⚠️ GGUF header validation failed: ${error instanceof Error ? error.message : String(error)}`);
312
- return false;
313
- }
314
- }
@@ -1,12 +0,0 @@
1
- export { sanitizePathComponent } from "../../utils/path-sanitize";
2
- /**
3
- * Check whether a target path is contained within a base directory.
4
- * Both paths are resolved to absolute before comparison.
5
- */
6
- export declare function isPathWithinBase(basePath: string, targetPath: string): boolean;
7
- /**
8
- * Sanitize components, join them to a base path, and verify the result
9
- * stays within the base directory. Throws PathTraversalError on escape.
10
- */
11
- export declare function validateAndJoinPath(basePath: string, ...components: string[]): string;
12
- //# sourceMappingURL=path-security.d.ts.map
@@ -1,25 +0,0 @@
1
- import path from "bare-path";
2
- import { PathTraversalError } from "../../utils/errors-server.js";
3
- import { sanitizePathComponent, checkPathWithinBase, } from "../../utils/path-sanitize.js";
4
- // Re-export sanitizePathComponent unchanged
5
- export { sanitizePathComponent } from "../../utils/path-sanitize.js";
6
- /**
7
- * Check whether a target path is contained within a base directory.
8
- * Both paths are resolved to absolute before comparison.
9
- */
10
- export function isPathWithinBase(basePath, targetPath) {
11
- return checkPathWithinBase(basePath, targetPath, path.resolve, path.sep || "/");
12
- }
13
- /**
14
- * Sanitize components, join them to a base path, and verify the result
15
- * stays within the base directory. Throws PathTraversalError on escape.
16
- */
17
- export function validateAndJoinPath(basePath, ...components) {
18
- const sanitized = components.map((c) => sanitizePathComponent(c));
19
- const joined = path.join(basePath, ...sanitized);
20
- const resolved = path.resolve(joined);
21
- if (!isPathWithinBase(basePath, resolved)) {
22
- throw new PathTraversalError(components.join("/"), basePath);
23
- }
24
- return resolved;
25
- }
@@ -1,48 +0,0 @@
1
- import type { ShardPatternInfo, ShardUrl } from "../../schemas/index";
2
- /**
3
- * Detect if model filename follows shard pattern (00001-of-0000x)
4
- */
5
- export declare function detectShardedModel(filename: string): ShardPatternInfo;
6
- /**
7
- * Generate list of shard filenames for a sharded model
8
- * Accepts any shard in the group
9
- *
10
- * @param shardName - Any shard filename in the group (e.g., "model-00002-of-00005.gguf")
11
- * @returns Array of all numbered shard filenames
12
- */
13
- export declare function generateShardFilenames(shardName: string): string[];
14
- /**
15
- * Parse pattern-based shard URL and generate all shard URLs with cache key
16
- * Works with patterns like: https://example.com/path/model-00002-of-00005.gguf
17
- *
18
- * @param shardUrl - Any shard URL in the group
19
- * @returns Object with shard URLs array and cache key
20
- */
21
- export declare function parsePatternBasedShardUrl(shardUrl: string): {
22
- shardUrls: ShardUrl[];
23
- cacheKey: string;
24
- };
25
- /**
26
- * Extract tensor information from all shards and write to baseFilename.tensors.txt
27
- * Required for sharded models to enable incremental/async loading
28
- * @param shardDir - Directory containing the shard files
29
- * @param shardFilename - Filename of any shard (e.g., "model-00001-of-00002.gguf")
30
- * @returns Path to the created tensors.txt file
31
- * @throws If not a sharded model or extraction fails
32
- */
33
- export declare function extractTensorsFromShards(shardDir: string, shardFilename: string): Promise<string>;
34
- /**
35
- * Check if all numbered shard files exist
36
- * @param shardDir - Directory containing the shard files
37
- * @param shardFilename - Filename of any shard (e.g., "model-00001-of-00002.gguf")
38
- * @returns true if all numbered shards exist, false otherwise
39
- */
40
- export declare function checkAllShardsExist(shardDir: string, shardFilename: string): Promise<boolean>;
41
- /**
42
- * Validate that all shards and tensors.txt exist for a sharded model
43
- * @param shardDir - Directory containing the shard files
44
- * @param shardFilename - Filename of any shard (e.g., "model-00001-of-00002.gguf")
45
- * @returns true if all shards and tensors.txt exist, false otherwise
46
- */
47
- export declare function validateShardedModelCache(shardDir: string, shardFilename: string): Promise<boolean>;
48
- //# sourceMappingURL=shard-utils.d.ts.map
@@ -1,125 +0,0 @@
1
- import { ModelLoadFailedError, InvalidShardUrlPatternError, } from "../../utils/errors-server.js";
2
- import { generateShortHash } from "./formatting.js";
3
- import { validateAndJoinPath } from "./path-security.js";
4
- import { extractAndWriteTensorsFile } from "./gguf-tensor-extractor.js";
5
- import { promises as fsPromises } from "bare-fs";
6
- /**
7
- * Detect if model filename follows shard pattern (00001-of-0000x)
8
- */
9
- export function detectShardedModel(filename) {
10
- const shardPattern = /^(.+)-(\d{5})-of-(\d{5})(\.\w+)$/;
11
- const match = filename.match(shardPattern);
12
- if (match && match[1] && match[2] && match[3] && match[4]) {
13
- return {
14
- isSharded: true,
15
- baseFilename: match[1],
16
- currentShard: parseInt(match[2], 10),
17
- totalShards: parseInt(match[3], 10),
18
- extension: match[4],
19
- };
20
- }
21
- return { isSharded: false };
22
- }
23
- /**
24
- * Generate list of shard filenames for a sharded model
25
- * Accepts any shard in the group
26
- *
27
- * @param shardName - Any shard filename in the group (e.g., "model-00002-of-00005.gguf")
28
- * @returns Array of all numbered shard filenames
29
- */
30
- export function generateShardFilenames(shardName) {
31
- const shardInfo = detectShardedModel(shardName);
32
- if (!shardInfo.isSharded || !shardInfo.totalShards) {
33
- throw new ModelLoadFailedError(`Not a sharded model filename: ${shardName}`);
34
- }
35
- const filenames = [];
36
- const { baseFilename, totalShards, extension } = shardInfo;
37
- for (let i = 1; i <= totalShards; i++) {
38
- const shardNumber = i.toString().padStart(5, "0");
39
- const totalShardsStr = totalShards.toString().padStart(5, "0");
40
- filenames.push(`${baseFilename}-${shardNumber}-of-${totalShardsStr}${extension}`);
41
- }
42
- return filenames;
43
- }
44
- /**
45
- * Parse pattern-based shard URL and generate all shard URLs with cache key
46
- * Works with patterns like: https://example.com/path/model-00002-of-00005.gguf
47
- *
48
- * @param shardUrl - Any shard URL in the group
49
- * @returns Object with shard URLs array and cache key
50
- */
51
- export function parsePatternBasedShardUrl(shardUrl) {
52
- const urlParts = shardUrl.split("/");
53
- const filename = urlParts[urlParts.length - 1]?.split("?")[0] || "";
54
- const shardInfo = detectShardedModel(filename);
55
- if (!shardInfo.isSharded || !shardInfo.baseFilename) {
56
- throw new InvalidShardUrlPatternError(shardUrl);
57
- }
58
- const shardFilenames = generateShardFilenames(filename);
59
- const baseUrl = urlParts.slice(0, -1).join("/");
60
- return {
61
- shardUrls: shardFilenames.map((shardFilename) => ({
62
- url: `${baseUrl}/${shardFilename}`,
63
- filename: shardFilename,
64
- })),
65
- cacheKey: generateShortHash(`${baseUrl}/${shardInfo.baseFilename}`),
66
- };
67
- }
68
- /**
69
- * Extract tensor information from all shards and write to baseFilename.tensors.txt
70
- * Required for sharded models to enable incremental/async loading
71
- * @param shardDir - Directory containing the shard files
72
- * @param shardFilename - Filename of any shard (e.g., "model-00001-of-00002.gguf")
73
- * @returns Path to the created tensors.txt file
74
- * @throws If not a sharded model or extraction fails
75
- */
76
- export async function extractTensorsFromShards(shardDir, shardFilename) {
77
- const shardInfo = detectShardedModel(shardFilename);
78
- if (!shardInfo.isSharded ||
79
- !shardInfo.baseFilename ||
80
- !shardInfo.totalShards) {
81
- throw new ModelLoadFailedError(`Not a sharded model filename: ${shardFilename}`);
82
- }
83
- const allShardFilenames = generateShardFilenames(shardFilename);
84
- return extractAndWriteTensorsFile(shardDir, allShardFilenames, shardInfo.baseFilename);
85
- }
86
- /**
87
- * Check if all numbered shard files exist
88
- * @param shardDir - Directory containing the shard files
89
- * @param shardFilename - Filename of any shard (e.g., "model-00001-of-00002.gguf")
90
- * @returns true if all numbered shards exist, false otherwise
91
- */
92
- export async function checkAllShardsExist(shardDir, shardFilename) {
93
- const shardInfo = detectShardedModel(shardFilename);
94
- if (!shardInfo.isSharded) {
95
- return false;
96
- }
97
- const shardFilenames = generateShardFilenames(shardFilename);
98
- const allShardsExist = await Promise.all(shardFilenames.map((f) => fsPromises
99
- .access(validateAndJoinPath(shardDir, f))
100
- .then(() => true)
101
- .catch(() => false))).then((results) => results.every((exists) => exists));
102
- return allShardsExist;
103
- }
104
- /**
105
- * Validate that all shards and tensors.txt exist for a sharded model
106
- * @param shardDir - Directory containing the shard files
107
- * @param shardFilename - Filename of any shard (e.g., "model-00001-of-00002.gguf")
108
- * @returns true if all shards and tensors.txt exist, false otherwise
109
- */
110
- export async function validateShardedModelCache(shardDir, shardFilename) {
111
- const shardInfo = detectShardedModel(shardFilename);
112
- if (!shardInfo.isSharded || !shardInfo.baseFilename) {
113
- return false;
114
- }
115
- const allShardsExist = await checkAllShardsExist(shardDir, shardFilename);
116
- if (!allShardsExist) {
117
- return false;
118
- }
119
- const tensorsFile = `${shardInfo.baseFilename}.tensors.txt`;
120
- const tensorsExist = await fsPromises
121
- .access(validateAndJoinPath(shardDir, tensorsFile))
122
- .then(() => true)
123
- .catch(() => false);
124
- return tensorsExist;
125
- }
@@ -1,13 +0,0 @@
1
- import type { Tool, ToolCallEvent } from "../../schemas/index";
2
- interface HistoryMessage {
3
- role: string;
4
- content: string;
5
- attachments?: {
6
- path: string;
7
- }[] | undefined;
8
- }
9
- export declare function insertToolsIntoHistory(history: HistoryMessage[], tools: Tool[]): Array<HistoryMessage | Tool>;
10
- export declare function setupToolGrammar(modelConfig: Record<string, unknown>, tools: Tool[]): void;
11
- export declare function checkForToolEvents(accumulatedText: string, currentToken: string, tools: Tool[], emittedToolCallPositions: Set<number>): ToolCallEvent[];
12
- export {};
13
- //# sourceMappingURL=tool-integration.d.ts.map