@qvac/sdk 0.1.0-dev.1760648187.328e967

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 (287) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +301 -0
  3. package/dist/client/api/cancel.d.ts +25 -0
  4. package/dist/client/api/cancel.js +37 -0
  5. package/dist/client/api/completion-stream.d.ts +50 -0
  6. package/dist/client/api/completion-stream.js +103 -0
  7. package/dist/client/api/download-asset.d.ts +39 -0
  8. package/dist/client/api/download-asset.js +72 -0
  9. package/dist/client/api/embed.d.ts +11 -0
  10. package/dist/client/api/embed.js +24 -0
  11. package/dist/client/api/index.d.ts +13 -0
  12. package/dist/client/api/index.js +12 -0
  13. package/dist/client/api/load-model.d.ts +98 -0
  14. package/dist/client/api/load-model.js +154 -0
  15. package/dist/client/api/logging-stream.d.ts +21 -0
  16. package/dist/client/api/logging-stream.js +32 -0
  17. package/dist/client/api/ping.d.ts +11 -0
  18. package/dist/client/api/ping.js +18 -0
  19. package/dist/client/api/provide.d.ts +18 -0
  20. package/dist/client/api/provide.js +27 -0
  21. package/dist/client/api/rag.d.ts +42 -0
  22. package/dist/client/api/rag.js +97 -0
  23. package/dist/client/api/transcribe.d.ts +24 -0
  24. package/dist/client/api/transcribe.js +52 -0
  25. package/dist/client/api/translate.d.ts +47 -0
  26. package/dist/client/api/translate.js +114 -0
  27. package/dist/client/api/unload-model.d.ts +11 -0
  28. package/dist/client/api/unload-model.js +26 -0
  29. package/dist/client/index.d.ts +2 -0
  30. package/dist/client/index.js +1 -0
  31. package/dist/client/logging-stream-registry.d.ts +5 -0
  32. package/dist/client/logging-stream-registry.js +60 -0
  33. package/dist/client/rpc/bare-client.d.ts +112 -0
  34. package/dist/client/rpc/bare-client.js +82 -0
  35. package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
  36. package/dist/client/rpc/bare-rpc-client.js +87 -0
  37. package/dist/client/rpc/expo-rpc-client.d.ts +3 -0
  38. package/dist/client/rpc/expo-rpc-client.js +57 -0
  39. package/dist/client/rpc/node-rpc-client.d.ts +9 -0
  40. package/dist/client/rpc/node-rpc-client.js +99 -0
  41. package/dist/client/rpc/rpc-client.d.ts +5 -0
  42. package/dist/client/rpc/rpc-client.js +91 -0
  43. package/dist/client/rpc/rpc-error.d.ts +19 -0
  44. package/dist/client/rpc/rpc-error.js +39 -0
  45. package/dist/constants/audio.d.ts +3 -0
  46. package/dist/constants/audio.js +17 -0
  47. package/dist/constants/index.d.ts +2 -0
  48. package/dist/constants/index.js +1 -0
  49. package/dist/examples/delegated-inference/consumer.d.ts +2 -0
  50. package/dist/examples/delegated-inference/consumer.js +56 -0
  51. package/dist/examples/delegated-inference/provider.d.ts +2 -0
  52. package/dist/examples/delegated-inference/provider.js +57 -0
  53. package/dist/examples/download-with-cancel.d.ts +2 -0
  54. package/dist/examples/download-with-cancel.js +46 -0
  55. package/dist/examples/embed-hyperdrive.d.ts +2 -0
  56. package/dist/examples/embed-hyperdrive.js +19 -0
  57. package/dist/examples/kv-cache-example.d.ts +2 -0
  58. package/dist/examples/kv-cache-example.js +74 -0
  59. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  60. package/dist/examples/llamacpp-file-logging.js +62 -0
  61. package/dist/examples/llamacpp-filesystem.d.ts +2 -0
  62. package/dist/examples/llamacpp-filesystem.js +40 -0
  63. package/dist/examples/llamacpp-http.d.ts +2 -0
  64. package/dist/examples/llamacpp-http.js +41 -0
  65. package/dist/examples/llamacpp-hyperdrive.d.ts +2 -0
  66. package/dist/examples/llamacpp-hyperdrive.js +39 -0
  67. package/dist/examples/llamacpp-multimodal.d.ts +2 -0
  68. package/dist/examples/llamacpp-multimodal.js +62 -0
  69. package/dist/examples/llamacpp-native-tools.d.ts +2 -0
  70. package/dist/examples/llamacpp-native-tools.js +64 -0
  71. package/dist/examples/llamacpp-tools-routing.d.ts +2 -0
  72. package/dist/examples/llamacpp-tools-routing.js +364 -0
  73. package/dist/examples/llamacpp-tools.d.ts +2 -0
  74. package/dist/examples/llamacpp-tools.js +81 -0
  75. package/dist/examples/multi-model-demo.d.ts +2 -0
  76. package/dist/examples/multi-model-demo.js +75 -0
  77. package/dist/examples/parallel-download.d.ts +2 -0
  78. package/dist/examples/parallel-download.js +21 -0
  79. package/dist/examples/rag/rag-chromadb.d.ts +2 -0
  80. package/dist/examples/rag/rag-chromadb.js +130 -0
  81. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  82. package/dist/examples/rag/rag-hyperdb-workspaces.js +106 -0
  83. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  84. package/dist/examples/rag/rag-hyperdb.js +50 -0
  85. package/dist/examples/rag/rag-lancedb.d.ts +2 -0
  86. package/dist/examples/rag/rag-lancedb.js +95 -0
  87. package/dist/examples/rag/rag-sqlite.d.ts +2 -0
  88. package/dist/examples/rag/rag-sqlite.js +107 -0
  89. package/dist/examples/seed-hyperdrive.d.ts +2 -0
  90. package/dist/examples/seed-hyperdrive.js +21 -0
  91. package/dist/examples/translation/translation-indic.d.ts +2 -0
  92. package/dist/examples/translation/translation-indic.js +30 -0
  93. package/dist/examples/translation/translation-llm-context.d.ts +2 -0
  94. package/dist/examples/translation/translation-llm-context.js +30 -0
  95. package/dist/examples/translation/translation-llm.d.ts +2 -0
  96. package/dist/examples/translation/translation-llm.js +38 -0
  97. package/dist/examples/translation/translation-opus.d.ts +2 -0
  98. package/dist/examples/translation/translation-opus.js +30 -0
  99. package/dist/examples/translation/translation-stream.d.ts +2 -0
  100. package/dist/examples/translation/translation-stream.js +35 -0
  101. package/dist/examples/whispercpp-filesystem.d.ts +2 -0
  102. package/dist/examples/whispercpp-filesystem.js +43 -0
  103. package/dist/examples/whispercpp-microphone-record.d.ts +2 -0
  104. package/dist/examples/whispercpp-microphone-record.js +311 -0
  105. package/dist/expo/plugins/index.d.ts +5 -0
  106. package/dist/expo/plugins/index.js +5 -0
  107. package/dist/expo/plugins/withMobileBundle.d.ts +8 -0
  108. package/dist/expo/plugins/withMobileBundle.js +60 -0
  109. package/dist/expo/plugins/withOpenCL.d.ts +9 -0
  110. package/dist/expo/plugins/withOpenCL.js +118 -0
  111. package/dist/expo/plugins/withQvacSDK.d.ts +9 -0
  112. package/dist/expo/plugins/withQvacSDK.js +13 -0
  113. package/dist/index.d.ts +7 -0
  114. package/dist/index.js +8 -0
  115. package/dist/logging/base-logger.d.ts +7 -0
  116. package/dist/logging/base-logger.js +55 -0
  117. package/dist/logging/index.d.ts +4 -0
  118. package/dist/logging/index.js +2 -0
  119. package/dist/logging/logger.d.ts +5 -0
  120. package/dist/logging/logger.js +28 -0
  121. package/dist/logging/stream-logger.d.ts +3 -0
  122. package/dist/logging/stream-logger.js +9 -0
  123. package/dist/logging/transport.d.ts +3 -0
  124. package/dist/logging/transport.js +15 -0
  125. package/dist/logging/types.d.ts +18 -0
  126. package/dist/logging/types.js +1 -0
  127. package/dist/logging/utils.d.ts +4 -0
  128. package/dist/logging/utils.js +47 -0
  129. package/dist/models/hyperdrive/index.d.ts +2 -0
  130. package/dist/models/hyperdrive/index.js +2 -0
  131. package/dist/models/hyperdrive/models.d.ts +475 -0
  132. package/dist/models/hyperdrive/models.js +534 -0
  133. package/dist/schemas/cancel.d.ts +33 -0
  134. package/dist/schemas/cancel.js +25 -0
  135. package/dist/schemas/common.d.ts +626 -0
  136. package/dist/schemas/common.js +47 -0
  137. package/dist/schemas/completion-stream.d.ts +125 -0
  138. package/dist/schemas/completion-stream.js +53 -0
  139. package/dist/schemas/delegate.d.ts +9 -0
  140. package/dist/schemas/delegate.js +9 -0
  141. package/dist/schemas/download-asset.d.ts +75 -0
  142. package/dist/schemas/download-asset.js +43 -0
  143. package/dist/schemas/embed.d.ts +20 -0
  144. package/dist/schemas/embed.js +14 -0
  145. package/dist/schemas/error.d.ts +13 -0
  146. package/dist/schemas/error.js +35 -0
  147. package/dist/schemas/index.d.ts +19 -0
  148. package/dist/schemas/index.js +19 -0
  149. package/dist/schemas/llamacpp-config.d.ts +30 -0
  150. package/dist/schemas/llamacpp-config.js +39 -0
  151. package/dist/schemas/load-model.d.ts +1259 -0
  152. package/dist/schemas/load-model.js +108 -0
  153. package/dist/schemas/logging-stream.d.ts +27 -0
  154. package/dist/schemas/logging-stream.js +16 -0
  155. package/dist/schemas/ping.d.ts +11 -0
  156. package/dist/schemas/ping.js +8 -0
  157. package/dist/schemas/provide.d.ts +43 -0
  158. package/dist/schemas/provide.js +25 -0
  159. package/dist/schemas/rag.d.ts +159 -0
  160. package/dist/schemas/rag.js +78 -0
  161. package/dist/schemas/transcription.d.ts +24 -0
  162. package/dist/schemas/transcription.js +15 -0
  163. package/dist/schemas/translate.d.ts +82 -0
  164. package/dist/schemas/translate.js +42 -0
  165. package/dist/schemas/translation-config.d.ts +83 -0
  166. package/dist/schemas/translation-config.js +46 -0
  167. package/dist/schemas/unload-model.d.ts +19 -0
  168. package/dist/schemas/unload-model.js +13 -0
  169. package/dist/schemas/whispercpp-config.d.ts +25 -0
  170. package/dist/schemas/whispercpp-config.js +18 -0
  171. package/dist/server/bare/addons/cancel.d.ts +3 -0
  172. package/dist/server/bare/addons/cancel.js +12 -0
  173. package/dist/server/bare/addons/index.d.ts +4 -0
  174. package/dist/server/bare/addons/index.js +3 -0
  175. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  176. package/dist/server/bare/addons/llamacpp/create-model.js +57 -0
  177. package/dist/server/bare/addons/llamacpp/handlers/completion-stream.d.ts +3 -0
  178. package/dist/server/bare/addons/llamacpp/handlers/completion-stream.js +65 -0
  179. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  180. package/dist/server/bare/addons/llamacpp/handlers/embed.js +40 -0
  181. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  182. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  183. package/dist/server/bare/addons/llamacpp/kv-cache-utils.d.ts +19 -0
  184. package/dist/server/bare/addons/llamacpp/kv-cache-utils.js +46 -0
  185. package/dist/server/bare/addons/load-model.d.ts +3 -0
  186. package/dist/server/bare/addons/load-model.js +55 -0
  187. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  188. package/dist/server/bare/addons/translation/create-model.js +45 -0
  189. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  190. package/dist/server/bare/addons/translation/handlers/translate.js +86 -0
  191. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  192. package/dist/server/bare/addons/translation/index.js +2 -0
  193. package/dist/server/bare/addons/unload-model.d.ts +3 -0
  194. package/dist/server/bare/addons/unload-model.js +20 -0
  195. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  196. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  197. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  198. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +42 -0
  199. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  200. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  201. package/dist/server/bare/delegate-rpc-client.d.ts +4 -0
  202. package/dist/server/bare/delegate-rpc-client.js +70 -0
  203. package/dist/server/bare/hyperswarm.d.ts +7 -0
  204. package/dist/server/bare/hyperswarm.js +62 -0
  205. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +3 -0
  206. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +12 -0
  207. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +6 -0
  208. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +16 -0
  209. package/dist/server/bare/rag-hyperdb/handlers/search.d.ts +3 -0
  210. package/dist/server/bare/rag-hyperdb/handlers/search.js +15 -0
  211. package/dist/server/bare/rag-hyperdb/index.d.ts +5 -0
  212. package/dist/server/bare/rag-hyperdb/index.js +4 -0
  213. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  214. package/dist/server/bare/rag-hyperdb/rag-manager.js +61 -0
  215. package/dist/server/bare/registry/logging-stream-registry.d.ts +12 -0
  216. package/dist/server/bare/registry/logging-stream-registry.js +46 -0
  217. package/dist/server/bare/registry/model-registry.d.ts +64 -0
  218. package/dist/server/bare/registry/model-registry.js +95 -0
  219. package/dist/server/error-handlers.d.ts +4 -0
  220. package/dist/server/error-handlers.js +27 -0
  221. package/dist/server/http-server.d.ts +2 -0
  222. package/dist/server/http-server.js +189 -0
  223. package/dist/server/rpc/create-server.d.ts +4 -0
  224. package/dist/server/rpc/create-server.js +19 -0
  225. package/dist/server/rpc/handle-request.d.ts +12 -0
  226. package/dist/server/rpc/handle-request.js +220 -0
  227. package/dist/server/rpc/handlers/cancelHandler.d.ts +3 -0
  228. package/dist/server/rpc/handlers/cancelHandler.js +27 -0
  229. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +3 -0
  230. package/dist/server/rpc/handlers/completion-stream-delegated.js +30 -0
  231. package/dist/server/rpc/handlers/completion-stream.d.ts +3 -0
  232. package/dist/server/rpc/handlers/completion-stream.js +52 -0
  233. package/dist/server/rpc/handlers/download-asset.d.ts +3 -0
  234. package/dist/server/rpc/handlers/download-asset.js +21 -0
  235. package/dist/server/rpc/handlers/embed.d.ts +3 -0
  236. package/dist/server/rpc/handlers/embed.js +21 -0
  237. package/dist/server/rpc/handlers/index.d.ts +23 -0
  238. package/dist/server/rpc/handlers/index.js +22 -0
  239. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +31 -0
  240. package/dist/server/rpc/handlers/load-model/download-manager.js +88 -0
  241. package/dist/server/rpc/handlers/load-model/http.d.ts +3 -0
  242. package/dist/server/rpc/handlers/load-model/http.js +337 -0
  243. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +4 -0
  244. package/dist/server/rpc/handlers/load-model/hyperdrive.js +332 -0
  245. package/dist/server/rpc/handlers/load-model/index.d.ts +4 -0
  246. package/dist/server/rpc/handlers/load-model/index.js +3 -0
  247. package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -0
  248. package/dist/server/rpc/handlers/load-model/resolve.js +121 -0
  249. package/dist/server/rpc/handlers/load-model-delegated.d.ts +3 -0
  250. package/dist/server/rpc/handlers/load-model-delegated.js +93 -0
  251. package/dist/server/rpc/handlers/load-model.d.ts +3 -0
  252. package/dist/server/rpc/handlers/load-model.js +41 -0
  253. package/dist/server/rpc/handlers/logging-stream.d.ts +3 -0
  254. package/dist/server/rpc/handlers/logging-stream.js +37 -0
  255. package/dist/server/rpc/handlers/provideHandler/connection.d.ts +3 -0
  256. package/dist/server/rpc/handlers/provideHandler/connection.js +25 -0
  257. package/dist/server/rpc/handlers/provideHandler/handler.d.ts +3 -0
  258. package/dist/server/rpc/handlers/provideHandler/handler.js +50 -0
  259. package/dist/server/rpc/handlers/provideHandler/proxy.d.ts +3 -0
  260. package/dist/server/rpc/handlers/provideHandler/proxy.js +22 -0
  261. package/dist/server/rpc/handlers/provideHandler.d.ts +2 -0
  262. package/dist/server/rpc/handlers/provideHandler.js +2 -0
  263. package/dist/server/rpc/handlers/rag.d.ts +3 -0
  264. package/dist/server/rpc/handlers/rag.js +67 -0
  265. package/dist/server/rpc/handlers/transcribe-stream.d.ts +3 -0
  266. package/dist/server/rpc/handlers/transcribe-stream.js +26 -0
  267. package/dist/server/rpc/handlers/translate.d.ts +3 -0
  268. package/dist/server/rpc/handlers/translate.js +51 -0
  269. package/dist/server/rpc/handlers/unload-model.d.ts +3 -0
  270. package/dist/server/rpc/handlers/unload-model.js +20 -0
  271. package/dist/server/rpc/index.d.ts +3 -0
  272. package/dist/server/rpc/index.js +2 -0
  273. package/dist/server/utils/audio/decoder.d.ts +4 -0
  274. package/dist/server/utils/audio/decoder.js +41 -0
  275. package/dist/server/utils/cache.d.ts +15 -0
  276. package/dist/server/utils/cache.js +32 -0
  277. package/dist/server/utils/hash.d.ts +5 -0
  278. package/dist/server/utils/hash.js +11 -0
  279. package/dist/server/utils/index.d.ts +5 -0
  280. package/dist/server/utils/index.js +4 -0
  281. package/dist/server/utils/model-path.d.ts +5 -0
  282. package/dist/server/utils/model-path.js +7 -0
  283. package/dist/server/worker.d.ts +6 -0
  284. package/dist/server/worker.js +77 -0
  285. package/dist/utils/withTimeout.d.ts +11 -0
  286. package/dist/utils/withTimeout.js +37 -0
  287. package/package.json +129 -0
@@ -0,0 +1,46 @@
1
+ import { downloadAsset, cancel, LLAMA_3_2_1B_INST_Q4_0 } from "@qvac/sdk";
2
+ console.log(`šŸš€ Starting download with pause/resume example`);
3
+ console.log(`\nšŸ’” Press Ctrl+C to pause the download (it will resume on restart)\n`);
4
+ let modelId;
5
+ let cancelled = false;
6
+ try {
7
+ // Download model with progress tracking and cancellation
8
+ await downloadAsset({
9
+ assetSrc: LLAMA_3_2_1B_INST_Q4_0,
10
+ onProgress: (progress) => {
11
+ const downloadedMB = (progress.downloaded / 1024 / 1024).toFixed(2);
12
+ const totalMB = (progress.total / 1024 / 1024).toFixed(2);
13
+ const percentage = progress.percentage.toFixed(1);
14
+ console.log(`šŸ“Š Progress: ${percentage}% (${downloadedMB}MB / ${totalMB}MB)`);
15
+ // Example: Stops at 35% (or use Ctrl+C for manual stop)
16
+ if (parseFloat(percentage) >= 35 && !cancelled) {
17
+ console.log("\n🚫 Auto-cancelling at 35% for demo purposes...,");
18
+ console.log(`šŸ“Š Progress: ${percentage}% (${downloadedMB}MB / ${totalMB}MB)`);
19
+ console.log(progress);
20
+ cancelled = true;
21
+ // Use the downloadKey to cancel
22
+ if (progress.downloadKey) {
23
+ void cancel({
24
+ operation: "downloadAsset",
25
+ downloadKey: progress.downloadKey,
26
+ // clearCache: true, // Uncomment to delete partial file instead of resuming
27
+ });
28
+ }
29
+ }
30
+ },
31
+ });
32
+ console.log(`\nāœ… Model downloaded successfully! Model ID: ${modelId}`);
33
+ console.log("šŸŽÆ Download completed without interruption");
34
+ // Clean up
35
+ process.exit(0);
36
+ }
37
+ catch (error) {
38
+ if (error instanceof Error && error.message.includes("cancelled")) {
39
+ console.log("āœ… Download was successfully cancelled");
40
+ process.exit(0);
41
+ }
42
+ else {
43
+ console.error("āŒ Error:", error);
44
+ process.exit(1);
45
+ }
46
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=embed-hyperdrive.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { embed, GTE_LARGE_FP16, loadModel, unloadModel } from "@qvac/sdk";
2
+ try {
3
+ const modelId = await loadModel({
4
+ modelSrc: GTE_LARGE_FP16,
5
+ modelType: "embeddings",
6
+ onProgress: (progress) => {
7
+ console.log(progress);
8
+ },
9
+ });
10
+ const embedding = await embed({ modelId, text: "Hello, world!" });
11
+ console.log("Embedding (first 20 elements)", embedding.slice(0, 20));
12
+ console.log("Embeddings length", embedding.length);
13
+ await unloadModel({ modelId, clearStorage: false });
14
+ process.exit(0);
15
+ }
16
+ catch (error) {
17
+ console.error("āŒ Error:", error);
18
+ process.exit(1);
19
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kv-cache-example.d.ts.map
@@ -0,0 +1,74 @@
1
+ import { completion, LLAMA_3_2_1B_INST_Q4_0, loadModel, unloadModel, VERBOSITY, } from "@qvac/sdk";
2
+ try {
3
+ // Load the model
4
+ const modelId = await loadModel({
5
+ modelSrc: LLAMA_3_2_1B_INST_Q4_0,
6
+ modelType: "llm",
7
+ modelConfig: {
8
+ device: "gpu",
9
+ ctx_size: 2048,
10
+ verbosity: VERBOSITY.SILENT,
11
+ },
12
+ });
13
+ console.log("🧠 Testing KV Cache functionality...\n");
14
+ // First conversation with cache enabled
15
+ console.log("šŸ“ First conversation (building cache):");
16
+ const history1 = [
17
+ { role: "user", content: "What is the capital of France?" },
18
+ ];
19
+ const result1 = completion({
20
+ modelId,
21
+ history: history1,
22
+ stream: true,
23
+ kvCache: true,
24
+ }); // kvCache = true
25
+ let response1 = "";
26
+ for await (const token of result1.tokenStream) {
27
+ response1 += token;
28
+ process.stdout.write(token);
29
+ }
30
+ const stats1 = await result1.stats;
31
+ console.log(`\nā±ļø First completion stats: ${JSON.stringify(stats1)}\n`);
32
+ // Continue conversation (should reuse cache from previous conversation)
33
+ console.log("šŸ”„ Continuing conversation (reusing cache):");
34
+ const history2 = [
35
+ { role: "user", content: "What is the capital of France?" },
36
+ { role: "assistant", content: response1.trim() },
37
+ { role: "user", content: "What about Germany?" },
38
+ ];
39
+ // This should:
40
+ // 1. Find existing cache from [user: "What is the capital of France?"] (history minus last message)
41
+ // 2. Load that cache and process the new "What about Germany?" message
42
+ // 3. Save the updated cache and rename it to include all messages
43
+ const result2 = completion({
44
+ modelId,
45
+ history: history2,
46
+ stream: true,
47
+ kvCache: true,
48
+ }); // kvCache = true
49
+ for await (const token of result2.tokenStream) {
50
+ process.stdout.write(token);
51
+ }
52
+ const stats2 = await result2.stats;
53
+ console.log(`\nā±ļø Second completion stats: ${JSON.stringify(stats2)}\n`);
54
+ // Compare with non-cached version
55
+ console.log("šŸš€ Same conversation without cache:");
56
+ const result3 = completion({
57
+ modelId,
58
+ history: history2,
59
+ stream: true,
60
+ kvCache: false,
61
+ }); // kvCache = false
62
+ for await (const token of result3.tokenStream) {
63
+ process.stdout.write(token);
64
+ }
65
+ const stats3 = await result3.stats;
66
+ console.log(`\nā±ļø Non-cached completion stats: ${JSON.stringify(stats3)}\n`);
67
+ console.log("āœ… KV Cache test completed!");
68
+ await unloadModel({ modelId, clearStorage: false });
69
+ process.exit(0);
70
+ }
71
+ catch (error) {
72
+ console.error("āŒ Error:", error);
73
+ process.exit(1);
74
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-file-logging.d.ts.map
@@ -0,0 +1,62 @@
1
+ import { getLogger } from "../logging/index.js";
2
+ import { loadModel, completion, unloadModel } from "../client/api/index.js";
3
+ import { writeFileSync, appendFileSync } from "fs";
4
+ import { join } from "path";
5
+ import { LLAMA_3_2_1B_INST_Q4_0 } from "../models/hyperdrive/index.js";
6
+ try {
7
+ const logFile = join(process.cwd(), "model-logs.txt");
8
+ // Clear previous logs
9
+ writeFileSync(logFile, "");
10
+ // Create logger with file transport
11
+ const logger = getLogger("llm-file-demo", {
12
+ level: "debug",
13
+ transports: [
14
+ // File transport - append logs to file
15
+ (level, namespace, message) => {
16
+ const timestamp = new Date().toISOString();
17
+ const logLine = `[${timestamp}] ${level.toUpperCase()} ${namespace}: ${message}\n`;
18
+ appendFileSync(logFile, logLine);
19
+ },
20
+ // Console transport for immediate feedback
21
+ (level, namespace, message) => {
22
+ console.log(`šŸ” [${level.toUpperCase()}] ${namespace}: ${message}`);
23
+ },
24
+ ],
25
+ });
26
+ logger.info("Starting model demo with file logging");
27
+ // Load model with integrated logging
28
+ const modelId = await loadModel({
29
+ modelSrc: LLAMA_3_2_1B_INST_Q4_0,
30
+ modelType: "llm",
31
+ modelConfig: {
32
+ ctx_size: 2048,
33
+ temp: 0.7,
34
+ },
35
+ logger, // All model logs will be captured
36
+ });
37
+ logger.info(`Model loaded: ${modelId}`);
38
+ // Run a simple completion
39
+ logger.info("Starting completion...");
40
+ const messages = [
41
+ { role: "user", content: "Tell me a short joke about programming." },
42
+ ];
43
+ let responseText = "";
44
+ const result = completion({ modelId, history: messages, stream: true });
45
+ for await (const token of result.tokenStream) {
46
+ responseText += token;
47
+ process.stdout.write(token);
48
+ }
49
+ console.log("\n");
50
+ logger.info(`Completion finished, ${responseText.length} characters generated`);
51
+ // Unload model
52
+ await unloadModel({ modelId });
53
+ logger.info("Model unloaded successfully");
54
+ // Show user where logs were saved
55
+ console.log(`\nšŸ“„ All logs (including model internals) saved to: ${logFile}`);
56
+ console.log("You can inspect the file to see detailed model operation logs!");
57
+ process.exit(0);
58
+ }
59
+ catch (error) {
60
+ console.error("āŒ Error:", error);
61
+ process.exit(1);
62
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-filesystem.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { completion, loadModel } from "@qvac/sdk";
2
+ // Get GGUF file path from command line arguments
3
+ const ggufPath = process.argv[2];
4
+ if (!ggufPath) {
5
+ console.error("āŒ Error: Please provide the path to a GGUF file as the first argument");
6
+ console.error("Usage: bun run examples/llamacpp-filesystem.ts <path-to-gguf-file>");
7
+ process.exit(1);
8
+ }
9
+ console.log(`šŸš€ Loading GGUF model from: ${ggufPath}`);
10
+ try {
11
+ // Load model from provided file path
12
+ const modelId = await loadModel({
13
+ modelSrc: ggufPath,
14
+ modelType: "llm",
15
+ modelConfig: {
16
+ ctx_size: 4096,
17
+ },
18
+ onProgress: (progress) => console.log(`Loading: ${progress.percentage.toFixed(1)}%`),
19
+ });
20
+ console.log(`āœ… Model loaded successfully! Model ID: ${modelId}`);
21
+ // Create conversation history
22
+ const history = [
23
+ { role: "user", content: "Explain Bitcoin in 3 key points" },
24
+ ];
25
+ console.log("\nšŸ¤– AI Response:");
26
+ process.stdout.write(""); // Start response on new line
27
+ // Stream completion
28
+ const result = completion({ modelId, history, stream: true });
29
+ for await (const token of result.tokenStream) {
30
+ process.stdout.write(token);
31
+ }
32
+ const stats = await result.stats;
33
+ console.log("\nšŸ“Š Performance Stats:", stats);
34
+ console.log("\n\nšŸŽ‰ Completed!");
35
+ process.exit(0);
36
+ }
37
+ catch (error) {
38
+ console.error("āŒ Error:", error);
39
+ process.exit(1);
40
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-http.d.ts.map
@@ -0,0 +1,41 @@
1
+ import { completion, loadModel, unloadModel } from "@qvac/sdk";
2
+ // Get HTTP URL from command line arguments or use default HuggingFace URL
3
+ const httpUrl = process.argv[2] ||
4
+ "https://huggingface.co/bartowski/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct-Q4_0.gguf";
5
+ console.log(`šŸš€ Loading GGUF model from HTTP: ${httpUrl}`);
6
+ try {
7
+ // Load model from HTTP URL
8
+ const modelId = await loadModel({
9
+ modelSrc: httpUrl,
10
+ modelType: "llm",
11
+ modelConfig: {
12
+ ctx_size: 4096,
13
+ },
14
+ onProgress: (progress) => {
15
+ const downloadedMB = (progress.downloaded / 1024 / 1024).toFixed(2);
16
+ const totalMB = (progress.total / 1024 / 1024).toFixed(2);
17
+ console.log(`Loading: ${progress.percentage.toFixed(1)}% (${downloadedMB}MB / ${totalMB}MB)`);
18
+ },
19
+ });
20
+ console.log(`āœ… Model loaded successfully! Model ID: ${modelId}`);
21
+ // Create conversation history
22
+ const history = [
23
+ { role: "user", content: "Explain quantum computing in 3 key points" },
24
+ ];
25
+ console.log("\nšŸ¤– AI Response:");
26
+ process.stdout.write(""); // Start response on new line
27
+ // Stream completion
28
+ const result = completion({ modelId, history, stream: true });
29
+ for await (const token of result.tokenStream) {
30
+ process.stdout.write(token);
31
+ }
32
+ const stats = await result.stats;
33
+ console.log("\nšŸ“Š Performance Stats:", stats);
34
+ console.log("\n\nšŸŽ‰ Completed!");
35
+ await unloadModel({ modelId, clearStorage: false });
36
+ process.exit(0);
37
+ }
38
+ catch (error) {
39
+ console.error("āŒ Error:", error);
40
+ process.exit(1);
41
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-hyperdrive.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { completion, LLAMA_3_2_1B_INST_Q4_0, loadModel, downloadAsset, unloadModel, VERBOSITY, } from "@qvac/sdk";
2
+ try {
3
+ // First just cache the model
4
+ await downloadAsset({
5
+ assetSrc: LLAMA_3_2_1B_INST_Q4_0,
6
+ onProgress: (progress) => {
7
+ console.log(progress);
8
+ },
9
+ });
10
+ // Then load it in memory from cache
11
+ const modelId = await loadModel({
12
+ modelSrc: LLAMA_3_2_1B_INST_Q4_0,
13
+ modelType: "llm",
14
+ modelConfig: {
15
+ device: "gpu",
16
+ ctx_size: 2048,
17
+ verbosity: VERBOSITY.SILENT,
18
+ },
19
+ });
20
+ const history = [
21
+ {
22
+ role: "user",
23
+ content: "Explain quantum computing in one sentence, use lots of emojis",
24
+ },
25
+ ];
26
+ const result = completion({ modelId, history, stream: true });
27
+ for await (const token of result.tokenStream) {
28
+ process.stdout.write(token);
29
+ }
30
+ const stats = await result.stats;
31
+ console.log("\nšŸ“Š Performance Stats:", stats);
32
+ // Change `clearStorage: true` to delete cached model files
33
+ await unloadModel({ modelId, clearStorage: false });
34
+ process.exit(0);
35
+ }
36
+ catch (error) {
37
+ console.error("āŒ Error:", error);
38
+ process.exit(1);
39
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-multimodal.d.ts.map
@@ -0,0 +1,62 @@
1
+ import { completion, loadModel, unloadModel } from "@qvac/sdk";
2
+ if (process.argv.length < 3) {
3
+ console.error(`Specify an image file path as the first argument and a second image file path as the second (optional) argument`);
4
+ process.exit(1);
5
+ }
6
+ try {
7
+ // const modelPath = args[modelIndex + 1]!;
8
+ const imageFilePath = process.argv[2];
9
+ // Load the main model with projection in a single step
10
+ const modelId = await loadModel({
11
+ modelSrc: "https://huggingface.co/ggml-org/SmolVLM2-500M-Video-Instruct-GGUF/resolve/main/SmolVLM2-500M-Video-Instruct-Q8_0.gguf",
12
+ modelType: "llm",
13
+ projectionModelSrc: "https://huggingface.co/ggml-org/SmolVLM2-500M-Video-Instruct-GGUF/resolve/main/mmproj-SmolVLM2-500M-Video-Instruct-Q8_0.gguf",
14
+ modelConfig: {
15
+ ctx_size: 1024,
16
+ },
17
+ onProgress: (progress) => {
18
+ console.log(`Loading: ${progress.percentage.toFixed(1)}%`);
19
+ },
20
+ });
21
+ //Using one particular media
22
+ const history = [
23
+ {
24
+ role: "user",
25
+ content: "What's in this image?",
26
+ attachments: [{ path: imageFilePath }],
27
+ },
28
+ ];
29
+ const result = completion({ modelId, history, stream: true });
30
+ for await (const token of result.tokenStream) {
31
+ process.stdout.write(token);
32
+ }
33
+ const stats = await result.stats;
34
+ console.log("\nšŸ“Š Performance Stats:", stats);
35
+ console.log("--------------------------------");
36
+ //Using multiple media
37
+ if (process.argv.length < 4) {
38
+ console.log(`Only one image provided, terminating`);
39
+ process.exit(0);
40
+ }
41
+ const imageFilePath2 = process.argv[3];
42
+ const history2 = [
43
+ {
44
+ role: "user",
45
+ content: "Compare the two newspaper articles",
46
+ attachments: [{ path: imageFilePath }, { path: imageFilePath2 }],
47
+ },
48
+ ];
49
+ const result2 = completion({ modelId, history: history2, stream: true });
50
+ for await (const token of result2.tokenStream) {
51
+ process.stdout.write(token);
52
+ }
53
+ const stats2 = await result2.stats;
54
+ console.log("\nšŸ“Š Performance Stats:", stats2);
55
+ console.log("--------------------------------");
56
+ await unloadModel({ modelId, clearStorage: false });
57
+ process.exit(0);
58
+ }
59
+ catch (error) {
60
+ console.error("āŒ Error:", error);
61
+ process.exit(1);
62
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-native-tools.d.ts.map
@@ -0,0 +1,64 @@
1
+ import { completion, loadModel, unloadModel } from "@qvac/sdk";
2
+ // Get GGUF file path from command line arguments
3
+ const ggufPath = process.argv[2];
4
+ if (!ggufPath) {
5
+ console.error("āŒ Error: Please provide the path to a GGUF file as the first argument");
6
+ console.error("Usage: bun run examples/llamacpp-native-tools.ts <path-to-gguf-file>");
7
+ process.exit(1);
8
+ }
9
+ // Tool definition
10
+ const tools = [
11
+ {
12
+ type: "function",
13
+ name: "get_horoscope",
14
+ description: "Get today's horoscope for an astrological sign.",
15
+ parameters: {
16
+ type: "object",
17
+ properties: {
18
+ sign: {
19
+ type: "string",
20
+ description: "An astrological sign like Taurus or Aquarius",
21
+ },
22
+ },
23
+ required: ["sign"],
24
+ },
25
+ },
26
+ ];
27
+ // @ts-expect-error - Function will be used in future implementation
28
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
+ function getHoroscope(sign) {
30
+ return sign + " Next Tuesday you will befriend a baby otter.";
31
+ }
32
+ console.log(`šŸš€ Loading GGUF model from: ${ggufPath}`);
33
+ try {
34
+ // Load model from provided file path
35
+ const modelId = await loadModel({
36
+ modelSrc: ggufPath,
37
+ modelType: "llm",
38
+ modelConfig: {
39
+ ctx_size: 4096,
40
+ },
41
+ onProgress: (progress) => console.log(`Loading: ${progress.percentage.toFixed(1)}%`),
42
+ });
43
+ console.log(`āœ… Model loaded successfully! Model ID: ${modelId}`);
44
+ // Create conversation history
45
+ const history = [
46
+ { role: "user", content: "Explain Bitcoin in 3 key points" },
47
+ ];
48
+ console.log("\nšŸ¤– AI Response:");
49
+ process.stdout.write(""); // Start response on new line
50
+ // Stream completion
51
+ const result = completion({ modelId, history, stream: true, tools });
52
+ for await (const token of result.tokenStream) {
53
+ process.stdout.write(token);
54
+ }
55
+ const stats = await result.stats;
56
+ console.log("\nšŸ“Š Performance Stats:", stats);
57
+ console.log("\n\nšŸŽ‰ Completed!");
58
+ await unloadModel({ modelId, clearStorage: false });
59
+ process.exit(0);
60
+ }
61
+ catch (error) {
62
+ console.error("āŒ Error:", error);
63
+ process.exit(1);
64
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-tools-routing.d.ts.map