@qvac/sdk 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/LICENSE +24 -1
  2. package/README.md +191 -373
  3. package/dist/client/api/cancel.d.ts +4 -13
  4. package/dist/client/api/cancel.js +6 -16
  5. package/dist/client/api/completion-stream.d.ts +30 -24
  6. package/dist/client/api/completion-stream.js +70 -121
  7. package/dist/client/api/delete-cache.js +2 -3
  8. package/dist/client/api/download-asset.d.ts +5 -6
  9. package/dist/client/api/download-asset.js +20 -16
  10. package/dist/client/api/embed.d.ts +4 -21
  11. package/dist/client/api/embed.js +14 -4
  12. package/dist/client/api/index.d.ts +1 -5
  13. package/dist/client/api/index.js +1 -5
  14. package/dist/client/api/load-model.d.ts +21 -49
  15. package/dist/client/api/load-model.js +134 -40
  16. package/dist/client/api/logging-stream.d.ts +4 -7
  17. package/dist/client/api/logging-stream.js +5 -9
  18. package/dist/client/api/ping.d.ts +1 -1
  19. package/dist/client/api/ping.js +2 -3
  20. package/dist/client/api/provide.d.ts +1 -1
  21. package/dist/client/api/provide.js +3 -4
  22. package/dist/client/api/rag.d.ts +21 -216
  23. package/dist/client/api/rag.js +36 -396
  24. package/dist/client/api/stop-provider.d.ts +1 -1
  25. package/dist/client/api/stop-provider.js +3 -4
  26. package/dist/client/api/text-to-speech.d.ts +2 -2
  27. package/dist/client/api/text-to-speech.js +3 -3
  28. package/dist/client/api/transcribe.d.ts +5 -9
  29. package/dist/client/api/transcribe.js +9 -11
  30. package/dist/client/api/translate.d.ts +3 -3
  31. package/dist/client/api/translate.js +15 -15
  32. package/dist/client/api/unload-model.d.ts +1 -5
  33. package/dist/client/api/unload-model.js +4 -17
  34. package/dist/client/index.d.ts +1 -1
  35. package/dist/client/index.js +1 -1
  36. package/dist/client/logging-stream-registry.d.ts +1 -1
  37. package/dist/client/logging-stream-registry.js +13 -14
  38. package/dist/client/rpc/bare-client.d.ts +139 -3
  39. package/dist/client/rpc/bare-client.js +16 -117
  40. package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
  41. package/dist/client/rpc/bare-rpc-client.js +87 -0
  42. package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
  43. package/dist/client/rpc/expo-rpc-client.js +14 -57
  44. package/dist/client/rpc/node-rpc-client.d.ts +8 -3
  45. package/dist/client/rpc/node-rpc-client.js +62 -218
  46. package/dist/client/rpc/rpc-client.d.ts +2 -3
  47. package/dist/client/rpc/rpc-client.js +49 -184
  48. package/dist/constants/audio.d.ts +2 -1
  49. package/dist/constants/audio.js +17 -1
  50. package/dist/constants/index.d.ts +0 -1
  51. package/dist/constants/index.js +0 -1
  52. package/dist/examples/delegated-inference/consumer.js +2 -3
  53. package/dist/examples/download-with-cancel.js +4 -3
  54. package/dist/examples/embed-hyperdrive.js +4 -39
  55. package/dist/examples/kv-cache-cleanup.js +2 -1
  56. package/dist/examples/kv-cache-custom-key.js +2 -16
  57. package/dist/examples/kv-cache-example.js +2 -1
  58. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  59. package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
  60. package/dist/examples/llamacpp-filesystem.js +2 -2
  61. package/dist/examples/llamacpp-http.js +1 -0
  62. package/dist/examples/llamacpp-hyperdrive.js +2 -1
  63. package/dist/examples/llamacpp-multimodal.js +4 -3
  64. package/dist/examples/llamacpp-native-tools.js +30 -72
  65. package/dist/examples/multi-model-demo.js +3 -2
  66. package/dist/examples/parallel-download.js +14 -46
  67. package/dist/examples/rag/rag-chromadb.js +1 -0
  68. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  69. package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
  70. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  71. package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
  72. package/dist/examples/rag/rag-lancedb.js +1 -0
  73. package/dist/examples/rag/rag-sqlite.js +1 -0
  74. package/dist/examples/text-to-speech.d.ts +3 -0
  75. package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
  76. package/dist/examples/translation/translation-indic.js +1 -4
  77. package/dist/examples/translation/translation-llm-context.js +1 -0
  78. package/dist/examples/translation/translation-llm.js +2 -2
  79. package/dist/examples/translation/translation-opus.js +3 -6
  80. package/dist/examples/translation/translation-stream.js +3 -3
  81. package/dist/examples/whispercpp-filesystem.js +43 -0
  82. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
  83. package/dist/expo/plugins/index.d.ts +0 -3
  84. package/dist/expo/plugins/index.js +0 -3
  85. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  86. package/dist/expo/plugins/withMobileBundle.js +40 -121
  87. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  88. package/dist/expo/plugins/withQvacSDK.js +1 -26
  89. package/dist/index.d.ts +4 -9
  90. package/dist/index.js +5 -11
  91. package/dist/logging/base-logger.js +16 -26
  92. package/dist/logging/index.d.ts +1 -7
  93. package/dist/logging/index.js +1 -7
  94. package/dist/logging/logger.d.ts +2 -0
  95. package/dist/logging/logger.js +6 -11
  96. package/dist/logging/stream-logger.d.ts +1 -1
  97. package/dist/logging/stream-logger.js +3 -6
  98. package/dist/logging/transport.js +2 -2
  99. package/dist/logging/types.d.ts +0 -2
  100. package/dist/logging/utils.d.ts +0 -2
  101. package/dist/logging/utils.js +0 -62
  102. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  103. package/dist/models/hyperdrive/models.d.ts +619 -0
  104. package/dist/models/hyperdrive/models.js +693 -0
  105. package/dist/schemas/cancel.d.ts +0 -6
  106. package/dist/schemas/cancel.js +0 -5
  107. package/dist/schemas/common.d.ts +164 -2973
  108. package/dist/schemas/common.js +1 -23
  109. package/dist/schemas/completion-stream.d.ts +60 -31
  110. package/dist/schemas/completion-stream.js +44 -20
  111. package/dist/schemas/delegate.d.ts +0 -1
  112. package/dist/schemas/delegate.js +0 -1
  113. package/dist/schemas/download-asset.d.ts +3 -125
  114. package/dist/schemas/download-asset.js +5 -22
  115. package/dist/schemas/embed.d.ts +3 -3
  116. package/dist/schemas/embed.js +2 -9
  117. package/dist/schemas/index.d.ts +1 -19
  118. package/dist/schemas/index.js +1 -19
  119. package/dist/schemas/llamacpp-config.d.ts +12 -243
  120. package/dist/schemas/llamacpp-config.js +14 -50
  121. package/dist/schemas/load-model.d.ts +893 -14358
  122. package/dist/schemas/load-model.js +72 -325
  123. package/dist/schemas/logging-stream.d.ts +4 -11
  124. package/dist/schemas/logging-stream.js +3 -4
  125. package/dist/schemas/rag.d.ts +52 -183
  126. package/dist/schemas/rag.js +23 -152
  127. package/dist/schemas/text-to-speech.d.ts +1 -692
  128. package/dist/schemas/text-to-speech.js +3 -35
  129. package/dist/schemas/transcription.d.ts +0 -3
  130. package/dist/schemas/transcription.js +0 -1
  131. package/dist/schemas/translate.d.ts +23 -68
  132. package/dist/schemas/translate.js +11 -37
  133. package/dist/schemas/translation-config.d.ts +7 -810
  134. package/dist/schemas/translation-config.js +7 -113
  135. package/dist/schemas/unload-model.d.ts +0 -2
  136. package/dist/schemas/unload-model.js +0 -2
  137. package/dist/schemas/whispercpp-config.d.ts +25 -0
  138. package/dist/schemas/whispercpp-config.js +18 -0
  139. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  140. package/dist/server/bare/addons/index.d.ts +4 -0
  141. package/dist/server/bare/addons/index.js +3 -0
  142. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  143. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  144. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  145. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
  146. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  147. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  148. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  149. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  150. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  151. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  152. package/dist/server/bare/addons/load-model.d.ts +3 -0
  153. package/dist/server/bare/addons/load-model.js +62 -0
  154. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  155. package/dist/server/bare/addons/translation/create-model.js +45 -0
  156. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  157. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  158. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  159. package/dist/server/bare/addons/translation/index.js +2 -0
  160. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  161. package/dist/server/bare/addons/tts/create-model.js +40 -0
  162. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  163. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  164. package/dist/server/bare/addons/tts/index.js +2 -0
  165. package/dist/server/bare/addons/unload-model.js +20 -0
  166. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  167. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  168. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  169. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
  170. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  171. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  172. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  173. package/dist/server/bare/delegate-rpc-client.js +46 -157
  174. package/dist/server/bare/hyperswarm.d.ts +0 -3
  175. package/dist/server/bare/hyperswarm.js +6 -29
  176. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  177. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  178. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  179. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  180. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  181. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  182. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  183. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  184. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  185. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  186. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  187. package/dist/server/bare/registry/model-registry.d.ts +26 -14
  188. package/dist/server/bare/registry/model-registry.js +12 -32
  189. package/dist/server/error-handlers.d.ts +2 -3
  190. package/dist/server/error-handlers.js +10 -15
  191. package/dist/server/http-server.d.ts +2 -0
  192. package/dist/server/http-server.js +189 -0
  193. package/dist/server/rpc/create-server.js +3 -5
  194. package/dist/server/rpc/handle-request.d.ts +9 -0
  195. package/dist/server/rpc/handle-request.js +242 -92
  196. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  197. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  198. package/dist/server/rpc/handlers/completion-stream-delegated.js +6 -18
  199. package/dist/server/rpc/handlers/completion-stream.js +41 -2
  200. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  201. package/dist/server/rpc/handlers/download-asset.js +6 -59
  202. package/dist/server/rpc/handlers/embed.js +19 -2
  203. package/dist/server/rpc/handlers/index.d.ts +0 -13
  204. package/dist/server/rpc/handlers/index.js +0 -13
  205. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  206. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  207. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  208. package/dist/server/rpc/handlers/load-model/http.js +55 -424
  209. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  210. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  211. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  212. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  213. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  214. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  215. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  216. package/dist/server/rpc/handlers/load-model-delegated.js +21 -59
  217. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  218. package/dist/server/rpc/handlers/load-model.js +57 -0
  219. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  220. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  221. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  222. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  223. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  224. package/dist/server/rpc/handlers/rag.js +43 -130
  225. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  226. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  227. package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
  228. package/dist/server/rpc/handlers/translate.js +49 -2
  229. package/dist/server/rpc/handlers/unload-model.js +3 -12
  230. package/dist/server/rpc/index.d.ts +1 -1
  231. package/dist/server/utils/audio/decoder.d.ts +1 -2
  232. package/dist/server/utils/audio/decoder.js +12 -49
  233. package/dist/server/utils/cache.d.ts +8 -19
  234. package/dist/server/utils/cache.js +15 -100
  235. package/dist/server/utils/hash.d.ts +5 -0
  236. package/dist/server/utils/hash.js +11 -0
  237. package/dist/server/utils/index.d.ts +2 -7
  238. package/dist/server/utils/index.js +2 -7
  239. package/dist/server/utils/tool-parser.js +14 -28
  240. package/dist/server/worker.d.ts +5 -4
  241. package/dist/server/worker.js +89 -22
  242. package/package.json +41 -141
  243. package/NOTICE +0 -358
  244. package/bare-imports.json +0 -44
  245. package/dist/client/api/get-model-info.d.ts +0 -36
  246. package/dist/client/api/get-model-info.js +0 -14
  247. package/dist/client/api/invoke-plugin.d.ts +0 -15
  248. package/dist/client/api/invoke-plugin.js +0 -38
  249. package/dist/client/api/ocr.d.ts +0 -31
  250. package/dist/client/api/ocr.js +0 -88
  251. package/dist/client/api/registry.d.ts +0 -14
  252. package/dist/client/api/registry.js +0 -37
  253. package/dist/client/config-loader/config-utils.d.ts +0 -5
  254. package/dist/client/config-loader/config-utils.js +0 -20
  255. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  256. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  257. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  258. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  259. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  260. package/dist/client/config-loader/resolve-config.node.js +0 -145
  261. package/dist/client/init-hooks.d.ts +0 -21
  262. package/dist/client/init-hooks.js +0 -66
  263. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  264. package/dist/client/rpc/expo-device-info.js +0 -32
  265. package/dist/client/rpc/profiling/index.d.ts +0 -2
  266. package/dist/client/rpc/profiling/index.js +0 -1
  267. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  268. package/dist/client/rpc/profiling/profiler.js +0 -139
  269. package/dist/constants/registry.d.ts +0 -2
  270. package/dist/constants/registry.js +0 -1
  271. package/dist/examples/cache-management.d.ts +0 -2
  272. package/dist/examples/cache-management.js +0 -97
  273. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  274. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  275. package/dist/examples/config/default/default.config.d.ts +0 -8
  276. package/dist/examples/config/default/default.config.js +0 -6
  277. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  278. package/dist/examples/config/plugins/plugins.config.js +0 -4
  279. package/dist/examples/config-reload.d.ts +0 -2
  280. package/dist/examples/config-reload.js +0 -49
  281. package/dist/examples/default-config-usage.d.ts +0 -17
  282. package/dist/examples/default-config-usage.js +0 -47
  283. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  284. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  285. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  286. package/dist/examples/download-with-blind-relays.js +0 -49
  287. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  288. package/dist/examples/llamacpp-sharded.js +0 -53
  289. package/dist/examples/logging-file-transport.d.ts +0 -2
  290. package/dist/examples/logging-streaming.d.ts +0 -2
  291. package/dist/examples/logging-streaming.js +0 -75
  292. package/dist/examples/mcp-websearch.d.ts +0 -13
  293. package/dist/examples/mcp-websearch.js +0 -176
  294. package/dist/examples/ocr-fasttext.d.ts +0 -2
  295. package/dist/examples/ocr-fasttext.js +0 -52
  296. package/dist/examples/plugins.d.ts +0 -14
  297. package/dist/examples/plugins.js +0 -129
  298. package/dist/examples/profiling/basic.d.ts +0 -2
  299. package/dist/examples/profiling/basic.js +0 -71
  300. package/dist/examples/profiling/per-call.d.ts +0 -2
  301. package/dist/examples/profiling/per-call.js +0 -30
  302. package/dist/examples/quickstart.d.ts +0 -2
  303. package/dist/examples/quickstart.js +0 -28
  304. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  305. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  306. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  307. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  308. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  309. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  310. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  311. package/dist/examples/registry-query.d.ts +0 -2
  312. package/dist/examples/registry-query.js +0 -87
  313. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  314. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  315. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  316. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  317. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  318. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  319. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  320. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  321. package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
  322. package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
  323. package/dist/examples/transcription/whispercpp-prompt.js +0 -67
  324. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  325. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  326. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  327. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  328. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  329. package/dist/examples/translation/translation-bergamot.js +0 -39
  330. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  331. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  332. package/dist/examples/tts/chatterbox.d.ts +0 -2
  333. package/dist/examples/tts/chatterbox.js +0 -59
  334. package/dist/examples/tts/supertonic.d.ts +0 -2
  335. package/dist/examples/tts/supertonic.js +0 -51
  336. package/dist/examples/tts/utils.d.ts +0 -17
  337. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  338. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  339. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  340. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  341. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  342. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  343. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  344. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  345. package/dist/logging/addon.d.ts +0 -6
  346. package/dist/logging/addon.js +0 -75
  347. package/dist/logging/client-logger.d.ts +0 -3
  348. package/dist/logging/client-logger.js +0 -24
  349. package/dist/logging/namespaces.d.ts +0 -6
  350. package/dist/logging/namespaces.js +0 -6
  351. package/dist/logging/registry.d.ts +0 -31
  352. package/dist/logging/registry.js +0 -62
  353. package/dist/logging/server-logger.d.ts +0 -3
  354. package/dist/logging/server-logger.js +0 -16
  355. package/dist/models/registry/models.d.ts +0 -10417
  356. package/dist/models/registry/models.js +0 -10757
  357. package/dist/models/update-models/codegen.d.ts +0 -3
  358. package/dist/models/update-models/codegen.js +0 -135
  359. package/dist/models/update-models/history.d.ts +0 -24
  360. package/dist/models/update-models/history.js +0 -107
  361. package/dist/models/update-models/index.d.ts +0 -2
  362. package/dist/models/update-models/index.js +0 -125
  363. package/dist/models/update-models/naming.d.ts +0 -4
  364. package/dist/models/update-models/naming.js +0 -370
  365. package/dist/models/update-models/processing.d.ts +0 -8
  366. package/dist/models/update-models/processing.js +0 -67
  367. package/dist/models/update-models/registry.d.ts +0 -4
  368. package/dist/models/update-models/registry.js +0 -67
  369. package/dist/models/update-models/shards.d.ts +0 -4
  370. package/dist/models/update-models/shards.js +0 -57
  371. package/dist/models/update-models/types.d.ts +0 -60
  372. package/dist/models/update-models/types.js +0 -1
  373. package/dist/models/update-models/utils.d.ts +0 -3
  374. package/dist/models/update-models/utils.js +0 -21
  375. package/dist/pear/pre.d.ts +0 -18
  376. package/dist/pear/pre.js +0 -433
  377. package/dist/profiling/aggregator.d.ts +0 -15
  378. package/dist/profiling/aggregator.js +0 -100
  379. package/dist/profiling/clock.d.ts +0 -12
  380. package/dist/profiling/clock.js +0 -51
  381. package/dist/profiling/controller.d.ts +0 -33
  382. package/dist/profiling/controller.js +0 -123
  383. package/dist/profiling/envelope.d.ts +0 -10
  384. package/dist/profiling/envelope.js +0 -36
  385. package/dist/profiling/events.d.ts +0 -20
  386. package/dist/profiling/events.js +0 -37
  387. package/dist/profiling/exporters.d.ts +0 -10
  388. package/dist/profiling/exporters.js +0 -236
  389. package/dist/profiling/index.d.ts +0 -36
  390. package/dist/profiling/index.js +0 -31
  391. package/dist/profiling/ring-buffer.d.ts +0 -19
  392. package/dist/profiling/ring-buffer.js +0 -83
  393. package/dist/profiling/types.d.ts +0 -47
  394. package/dist/profiling/types.js +0 -1
  395. package/dist/schemas/archive.d.ts +0 -9
  396. package/dist/schemas/archive.js +0 -17
  397. package/dist/schemas/engine-addon-map.d.ts +0 -5
  398. package/dist/schemas/engine-addon-map.js +0 -52
  399. package/dist/schemas/get-model-info.d.ts +0 -120
  400. package/dist/schemas/get-model-info.js +0 -58
  401. package/dist/schemas/json-schema.d.ts +0 -16
  402. package/dist/schemas/json-schema.js +0 -2
  403. package/dist/schemas/mcp-adapter.d.ts +0 -47
  404. package/dist/schemas/mcp-adapter.js +0 -1
  405. package/dist/schemas/model-src-utils.d.ts +0 -148
  406. package/dist/schemas/model-src-utils.js +0 -35
  407. package/dist/schemas/model-types.d.ts +0 -183
  408. package/dist/schemas/model-types.js +0 -168
  409. package/dist/schemas/ocr.d.ts +0 -125
  410. package/dist/schemas/ocr.js +0 -57
  411. package/dist/schemas/path-validation.d.ts +0 -10
  412. package/dist/schemas/path-validation.js +0 -22
  413. package/dist/schemas/plugin.d.ts +0 -226
  414. package/dist/schemas/plugin.js +0 -158
  415. package/dist/schemas/profiling.d.ts +0 -105
  416. package/dist/schemas/profiling.js +0 -66
  417. package/dist/schemas/registry.d.ts +0 -356
  418. package/dist/schemas/registry.js +0 -93
  419. package/dist/schemas/reload-config.d.ts +0 -476
  420. package/dist/schemas/reload-config.js +0 -44
  421. package/dist/schemas/runtime-context.d.ts +0 -19
  422. package/dist/schemas/runtime-context.js +0 -7
  423. package/dist/schemas/sdk-config.d.ts +0 -2973
  424. package/dist/schemas/sdk-config.js +0 -136
  425. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  426. package/dist/schemas/sdk-errors-client.js +0 -143
  427. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  428. package/dist/schemas/sdk-errors-registry.js +0 -8
  429. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  430. package/dist/schemas/sdk-errors-server.js +0 -451
  431. package/dist/schemas/shard.d.ts +0 -21
  432. package/dist/schemas/shard.js +0 -17
  433. package/dist/schemas/tools.d.ts +0 -65
  434. package/dist/schemas/tools.js +0 -43
  435. package/dist/schemas/transcription-config.d.ts +0 -383
  436. package/dist/schemas/transcription-config.js +0 -95
  437. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  438. package/dist/scripts/run-security-tests-bare.js +0 -78
  439. package/dist/scripts/run-security-tests.d.ts +0 -2
  440. package/dist/scripts/run-security-tests.js +0 -22
  441. package/dist/scripts/run-unit-tests.d.ts +0 -2
  442. package/dist/scripts/run-unit-tests.js +0 -17
  443. package/dist/server/bare/ops/embed.d.ts +0 -12
  444. package/dist/server/bare/ops/load-model.d.ts +0 -9
  445. package/dist/server/bare/ops/load-model.js +0 -85
  446. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  447. package/dist/server/bare/ops/transcribe.js +0 -75
  448. package/dist/server/bare/ops/translate.d.ts +0 -5
  449. package/dist/server/bare/ops/unload-model.js +0 -41
  450. package/dist/server/bare/plugins/index.d.ts +0 -8
  451. package/dist/server/bare/plugins/index.js +0 -7
  452. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  453. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  454. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  455. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  456. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  457. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  458. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  459. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -204
  460. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  461. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  462. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  463. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  464. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  465. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  466. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  467. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  468. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  469. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  470. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  471. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  472. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  473. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  474. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  475. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  476. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  477. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  478. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  479. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  480. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  481. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  482. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  483. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  484. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  485. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  486. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  487. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  488. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  489. package/dist/server/bare/registry/config-registry.js +0 -82
  490. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  491. package/dist/server/bare/registry/model-config-registry.js +0 -15
  492. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  493. package/dist/server/bare/registry/model-config-utils.js +0 -112
  494. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  495. package/dist/server/bare/registry/registry-client.js +0 -37
  496. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  497. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  498. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  499. package/dist/server/bare/utils/audio-input.js +0 -33
  500. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  501. package/dist/server/bare/utils/loader-adapter.js +0 -9
  502. package/dist/server/env.d.ts +0 -22
  503. package/dist/server/env.js +0 -57
  504. package/dist/server/plugins/index.d.ts +0 -2
  505. package/dist/server/plugins/index.js +0 -1
  506. package/dist/server/plugins/registry.d.ts +0 -9
  507. package/dist/server/plugins/registry.js +0 -79
  508. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  509. package/dist/server/rpc/delegate-transport.js +0 -215
  510. package/dist/server/rpc/handler-registry.d.ts +0 -3
  511. package/dist/server/rpc/handler-registry.js +0 -90
  512. package/dist/server/rpc/handler-utils.d.ts +0 -23
  513. package/dist/server/rpc/handler-utils.js +0 -128
  514. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  515. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  516. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  517. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  518. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  519. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  520. package/dist/server/rpc/handlers/load-model/registry.js +0 -564
  521. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  522. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  523. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  524. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  525. package/dist/server/rpc/handlers/ping.d.ts +0 -3
  526. package/dist/server/rpc/handlers/ping.js +0 -3
  527. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  528. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  529. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  530. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  531. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  532. package/dist/server/rpc/handlers/registry.js +0 -157
  533. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  534. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  535. package/dist/server/rpc/profiling/context.d.ts +0 -18
  536. package/dist/server/rpc/profiling/context.js +0 -38
  537. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  538. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  539. package/dist/server/rpc/profiling/index.d.ts +0 -5
  540. package/dist/server/rpc/profiling/index.js +0 -4
  541. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  542. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  543. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  544. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  545. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  546. package/dist/server/rpc/profiling/profiler.js +0 -97
  547. package/dist/server/utils/archive.d.ts +0 -4
  548. package/dist/server/utils/archive.js +0 -179
  549. package/dist/server/utils/checksum.d.ts +0 -4
  550. package/dist/server/utils/checksum.js +0 -31
  551. package/dist/server/utils/config-transform.d.ts +0 -3
  552. package/dist/server/utils/config-transform.js +0 -23
  553. package/dist/server/utils/formatting.d.ts +0 -19
  554. package/dist/server/utils/formatting.js +0 -61
  555. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  556. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  557. package/dist/server/utils/path-security.d.ts +0 -12
  558. package/dist/server/utils/path-security.js +0 -25
  559. package/dist/server/utils/shard-utils.d.ts +0 -48
  560. package/dist/server/utils/shard-utils.js +0 -125
  561. package/dist/server/utils/tool-integration.d.ts +0 -13
  562. package/dist/server/utils/tool-integration.js +0 -43
  563. package/dist/server/worker-core.d.ts +0 -6
  564. package/dist/server/worker-core.js +0 -88
  565. package/dist/utils/errors-base.d.ts +0 -3
  566. package/dist/utils/errors-base.js +0 -13
  567. package/dist/utils/errors-client.d.ts +0 -137
  568. package/dist/utils/errors-client.js +0 -240
  569. package/dist/utils/errors-server.d.ts +0 -236
  570. package/dist/utils/errors-server.js +0 -412
  571. package/dist/utils/global-singleton.d.ts +0 -2
  572. package/dist/utils/global-singleton.js +0 -10
  573. package/dist/utils/mcp-adapter.d.ts +0 -12
  574. package/dist/utils/mcp-adapter.js +0 -103
  575. package/dist/utils/object.d.ts +0 -2
  576. package/dist/utils/object.js +0 -3
  577. package/dist/utils/path-sanitize.d.ts +0 -17
  578. package/dist/utils/path-sanitize.js +0 -54
  579. package/dist/utils/tool-helpers.d.ts +0 -25
  580. package/dist/utils/tool-helpers.js +0 -112
  581. package/expo/plugins/patches/android-link.mjs +0 -63
  582. package/expo/plugins/patches/ios-link.mjs +0 -63
  583. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  584. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  585. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  586. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  587. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  588. /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
@@ -1,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