@qvac/sdk 0.14.1 → 0.16.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 (829) hide show
  1. package/NOTICE +47 -45
  2. package/README.md +34 -35
  3. package/dist/client/api/batch-completion.d.ts +15 -0
  4. package/dist/client/api/batch-completion.js +332 -0
  5. package/dist/client/api/bci-transcribe.d.ts +1 -1
  6. package/dist/client/api/bci-transcribe.js +31 -31
  7. package/dist/client/api/cancel.d.ts +1 -1
  8. package/dist/client/api/cancel.js +18 -18
  9. package/dist/client/api/classify.d.ts +1 -1
  10. package/dist/client/api/classify.js +9 -6
  11. package/dist/client/api/client-request-id.js +1 -1
  12. package/dist/client/api/completion-stream.d.ts +3 -3
  13. package/dist/client/api/completion-stream.js +18 -18
  14. package/dist/client/api/delete-cache.js +9 -9
  15. package/dist/client/api/diffusion.d.ts +1 -1
  16. package/dist/client/api/diffusion.js +17 -11
  17. package/dist/client/api/download-asset.d.ts +1 -1
  18. package/dist/client/api/download-asset.js +11 -11
  19. package/dist/client/api/embed.d.ts +1 -1
  20. package/dist/client/api/embed.js +10 -10
  21. package/dist/client/api/finetune.d.ts +1 -1
  22. package/dist/client/api/finetune.js +25 -27
  23. package/dist/client/api/get-loaded-model-info.d.ts +2 -2
  24. package/dist/client/api/get-loaded-model-info.js +8 -8
  25. package/dist/client/api/get-model-info.d.ts +1 -1
  26. package/dist/client/api/get-model-info.js +7 -7
  27. package/dist/client/api/heartbeat.d.ts +2 -2
  28. package/dist/client/api/heartbeat.js +7 -7
  29. package/dist/client/api/index.d.ts +33 -32
  30. package/dist/client/api/index.js +33 -32
  31. package/dist/client/api/invoke-plugin.d.ts +1 -1
  32. package/dist/client/api/invoke-plugin.js +10 -10
  33. package/dist/client/api/load-model.d.ts +1 -1
  34. package/dist/client/api/load-model.js +32 -32
  35. package/dist/client/api/logging-stream.d.ts +1 -1
  36. package/dist/client/api/logging-stream.js +6 -6
  37. package/dist/client/api/ocr.d.ts +10 -1
  38. package/dist/client/api/ocr.js +20 -11
  39. package/dist/client/api/provide.d.ts +1 -1
  40. package/dist/client/api/provide.js +7 -7
  41. package/dist/client/api/rag.d.ts +1 -1
  42. package/dist/client/api/rag.js +65 -66
  43. package/dist/client/api/registry.d.ts +1 -1
  44. package/dist/client/api/registry.js +8 -8
  45. package/dist/client/api/resume.js +5 -5
  46. package/dist/client/api/state.d.ts +1 -1
  47. package/dist/client/api/state.js +5 -5
  48. package/dist/client/api/stop-provider.js +6 -6
  49. package/dist/client/api/subscribe-logs.d.ts +1 -1
  50. package/dist/client/api/subscribe-logs.js +3 -3
  51. package/dist/client/api/suspend.js +5 -5
  52. package/dist/client/api/text-to-speech.d.ts +1 -1
  53. package/dist/client/api/text-to-speech.js +37 -39
  54. package/dist/client/api/transcribe.d.ts +2 -2
  55. package/dist/client/api/transcribe.js +44 -45
  56. package/dist/client/api/translate.d.ts +1 -1
  57. package/dist/client/api/translate.js +14 -25
  58. package/dist/client/api/unload-model.d.ts +1 -1
  59. package/dist/client/api/unload-model.js +11 -11
  60. package/dist/client/api/upscale.d.ts +1 -1
  61. package/dist/client/api/upscale.js +9 -9
  62. package/dist/client/api/video.d.ts +8 -5
  63. package/dist/client/api/video.js +23 -18
  64. package/dist/client/api/vla-helpers.d.ts +2 -2
  65. package/dist/client/api/vla-helpers.js +6 -11
  66. package/dist/client/api/vla.d.ts +15 -11
  67. package/dist/client/api/vla.js +27 -23
  68. package/dist/client/config-loader/config-utils.d.ts +1 -1
  69. package/dist/client/config-loader/config-utils.js +3 -3
  70. package/dist/client/config-loader/resolve-config.bare.d.ts +1 -1
  71. package/dist/client/config-loader/resolve-config.bare.js +11 -11
  72. package/dist/client/config-loader/resolve-config.expo.d.ts +1 -1
  73. package/dist/client/config-loader/resolve-config.expo.js +6 -6
  74. package/dist/client/config-loader/resolve-config.node.d.ts +1 -1
  75. package/dist/client/config-loader/resolve-config.node.js +27 -27
  76. package/dist/client/index.d.ts +1 -1
  77. package/dist/client/index.js +1 -1
  78. package/dist/client/init-hooks.d.ts +1 -1
  79. package/dist/client/init-hooks.js +12 -12
  80. package/dist/client/logging-stream-registry.d.ts +1 -1
  81. package/dist/client/logging-stream-registry.js +6 -6
  82. package/dist/client/parse-input.d.ts +1 -1
  83. package/dist/client/parse-input.js +3 -3
  84. package/dist/client/plugins-factory.d.ts +2 -2
  85. package/dist/client/plugins-factory.js +2 -2
  86. package/dist/client/rpc/bare-client.d.ts +2 -1
  87. package/dist/client/rpc/bare-client.js +37 -39
  88. package/dist/client/rpc/ensure-worker-ready.js +4 -4
  89. package/dist/client/rpc/expo-device-info.d.ts +1 -1
  90. package/dist/client/rpc/expo-device-info.js +11 -11
  91. package/dist/client/rpc/expo-rpc-client.d.ts +2 -1
  92. package/dist/client/rpc/expo-rpc-client.js +38 -47
  93. package/dist/client/rpc/node-rpc-client.d.ts +2 -1
  94. package/dist/client/rpc/node-rpc-client.js +103 -75
  95. package/dist/client/rpc/profiling/index.d.ts +1 -1
  96. package/dist/client/rpc/profiling/index.js +1 -1
  97. package/dist/client/rpc/profiling/profiler.d.ts +2 -2
  98. package/dist/client/rpc/profiling/profiler.js +31 -34
  99. package/dist/client/rpc/rpc-client.d.ts +2 -2
  100. package/dist/client/rpc/rpc-client.js +113 -72
  101. package/dist/client/rpc/rpc-error.d.ts +1 -1
  102. package/dist/client/rpc/rpc-error.js +19 -13
  103. package/dist/commands/bundle/bare-pack.d.ts +1 -1
  104. package/dist/commands/bundle/bare-pack.js +20 -20
  105. package/dist/commands/bundle/constants.js +21 -21
  106. package/dist/commands/bundle/entry-gen.js +4 -4
  107. package/dist/commands/bundle/index.js +45 -47
  108. package/dist/commands/bundle/manifest.d.ts +1 -1
  109. package/dist/commands/bundle/manifest.js +44 -46
  110. package/dist/commands/bundle/plugins.d.ts +2 -2
  111. package/dist/commands/bundle/plugins.js +7 -7
  112. package/dist/commands/bundle/resolve-sdk-import.js +6 -13
  113. package/dist/commands/index.d.ts +4 -4
  114. package/dist/commands/index.js +2 -2
  115. package/dist/commands/verify/abi.d.ts +9 -9
  116. package/dist/commands/verify/abi.js +31 -31
  117. package/dist/commands/verify/addon-source.d.ts +1 -1
  118. package/dist/commands/verify/addon-source.js +13 -14
  119. package/dist/commands/verify/bundle-source.d.ts +1 -1
  120. package/dist/commands/verify/bundle-source.js +7 -7
  121. package/dist/commands/verify/index.d.ts +3 -3
  122. package/dist/commands/verify/index.js +18 -17
  123. package/dist/commands/verify/node-modules-source.d.ts +1 -1
  124. package/dist/commands/verify/node-modules-source.js +11 -11
  125. package/dist/commands/verify/prebuilds.d.ts +3 -3
  126. package/dist/commands/verify/prebuilds.js +8 -8
  127. package/dist/constants/audio.d.ts +1 -1
  128. package/dist/constants/audio.js +1 -1
  129. package/dist/constants/index.d.ts +2 -2
  130. package/dist/constants/index.js +2 -2
  131. package/dist/constants/registry.js +1 -1
  132. package/dist/examples/audio/mic-input.d.ts +1 -1
  133. package/dist/examples/audio/mic-input.js +31 -31
  134. package/dist/examples/batch-completion.d.ts +38 -0
  135. package/dist/examples/batch-completion.js +100 -0
  136. package/dist/examples/bci/bci-filesystem-streaming.js +20 -20
  137. package/dist/examples/bci/bci-filesystem.js +17 -17
  138. package/dist/examples/cache-management.js +32 -32
  139. package/dist/examples/cancel-by-request-id.js +11 -11
  140. package/dist/examples/classification/classify-image.js +5 -5
  141. package/dist/examples/completion-events.js +16 -18
  142. package/dist/examples/completion-stop-reason.js +13 -13
  143. package/dist/examples/concurrent-completion-collision.js +20 -20
  144. package/dist/examples/config/blind-relay/blind-relay.config.js +4 -4
  145. package/dist/examples/config/default/default.config.js +2 -2
  146. package/dist/examples/config/plugins/plugins.config.js +2 -2
  147. package/dist/examples/config-reload.js +14 -14
  148. package/dist/examples/default-config-usage.js +10 -13
  149. package/dist/examples/delegated-inference/composite.js +23 -23
  150. package/dist/examples/delegated-inference/consumer-profiled.js +19 -19
  151. package/dist/examples/delegated-inference/consumer.js +11 -11
  152. package/dist/examples/delegated-inference/provider.js +24 -24
  153. package/dist/examples/diffusion-esrgan-upscale.js +19 -19
  154. package/dist/examples/diffusion-flux2-klein-img2img.js +17 -17
  155. package/dist/examples/diffusion-flux2-klein.js +14 -14
  156. package/dist/examples/diffusion-ideogram.d.ts +2 -0
  157. package/dist/examples/diffusion-ideogram.js +108 -0
  158. package/dist/examples/diffusion-img2img.js +13 -13
  159. package/dist/examples/diffusion-img2vid-ltx.d.ts +2 -0
  160. package/dist/examples/diffusion-img2vid-ltx.js +98 -0
  161. package/dist/examples/diffusion-img2vid.js +22 -23
  162. package/dist/examples/diffusion-simple.js +7 -7
  163. package/dist/examples/diffusion-txt2img.js +13 -14
  164. package/dist/examples/diffusion-txt2vid-ltx.d.ts +2 -0
  165. package/dist/examples/diffusion-txt2vid-ltx.js +92 -0
  166. package/dist/examples/diffusion-txt2vid.js +18 -18
  167. package/dist/examples/download-with-blind-relays.js +7 -8
  168. package/dist/examples/download-with-cancel.js +9 -9
  169. package/dist/examples/embed-multi-gpu.js +9 -9
  170. package/dist/examples/embed-p2p.js +24 -24
  171. package/dist/examples/finetune/llamacpp-finetune.js +21 -21
  172. package/dist/examples/kv-cache-cleanup.js +34 -34
  173. package/dist/examples/kv-cache-custom-key.js +30 -30
  174. package/dist/examples/kv-cache-example.js +18 -20
  175. package/dist/examples/llamacpp-cache.js +33 -33
  176. package/dist/examples/llamacpp-dynamic-tools.js +38 -38
  177. package/dist/examples/llamacpp-filesystem.js +13 -15
  178. package/dist/examples/llamacpp-http.js +12 -14
  179. package/dist/examples/llamacpp-multi-gpu.js +12 -12
  180. package/dist/examples/llamacpp-multimodal.js +16 -16
  181. package/dist/examples/llamacpp-p2p.js +11 -11
  182. package/dist/examples/llamacpp-sharded.js +12 -12
  183. package/dist/examples/llamacpp-structured-output.js +37 -37
  184. package/dist/examples/logging-file-transport.js +19 -21
  185. package/dist/examples/logging-global.js +8 -8
  186. package/dist/examples/logging-streaming.js +19 -17
  187. package/dist/examples/mcp-websearch.js +44 -44
  188. package/dist/examples/multi-model-demo.js +33 -33
  189. package/dist/examples/ocr-fasttext.js +17 -17
  190. package/dist/examples/parallel-download.js +11 -13
  191. package/dist/examples/plugins.js +43 -43
  192. package/dist/examples/profiling/basic.js +34 -36
  193. package/dist/examples/profiling/per-call.js +16 -16
  194. package/dist/examples/quickstart.bare.js +4 -6
  195. package/dist/examples/quickstart.js +7 -7
  196. package/dist/examples/rag/rag-chromadb.js +26 -26
  197. package/dist/examples/rag/rag-hyperdb/cancellation.js +19 -20
  198. package/dist/examples/rag/rag-hyperdb/ingest.js +19 -19
  199. package/dist/examples/rag/rag-hyperdb/pipeline.js +26 -26
  200. package/dist/examples/rag/rag-hyperdb/workspaces.js +46 -46
  201. package/dist/examples/rag/rag-lancedb.js +29 -32
  202. package/dist/examples/rag/rag-sqlite.js +25 -25
  203. package/dist/examples/registry-query.js +15 -15
  204. package/dist/examples/seed-p2p.js +8 -8
  205. package/dist/examples/suspend-resume.js +20 -20
  206. package/dist/examples/tools/llamacpp-native-tools.js +25 -25
  207. package/dist/examples/tools/llamacpp-tools-gemma4.js +14 -14
  208. package/dist/examples/tools/llamacpp-tools-harmony-multiturn.js +15 -15
  209. package/dist/examples/tools/llamacpp-tools-pythonic.js +15 -15
  210. package/dist/examples/tools/llamacpp-tools-qwen35.js +14 -14
  211. package/dist/examples/tools/shared.d.ts +2 -2
  212. package/dist/examples/tools/shared.js +17 -17
  213. package/dist/examples/transcription/parakeet-ctc-filesystem.js +12 -12
  214. package/dist/examples/transcription/parakeet-microphone-record.js +19 -19
  215. package/dist/examples/transcription/parakeet-microphone-stream.js +23 -23
  216. package/dist/examples/transcription/parakeet-sortformer-streaming.js +18 -28
  217. package/dist/examples/transcription/parakeet-sortformer.js +21 -21
  218. package/dist/examples/transcription/parakeet-tdt-filesystem-chunked.d.ts +2 -0
  219. package/dist/examples/transcription/parakeet-tdt-filesystem-chunked.js +203 -0
  220. package/dist/examples/transcription/parakeet-tdt-filesystem.js +13 -13
  221. package/dist/examples/transcription/whispercpp-filesystem-streaming.js +34 -34
  222. package/dist/examples/transcription/whispercpp-filesystem.js +19 -19
  223. package/dist/examples/transcription/whispercpp-microphone-conversation.js +27 -27
  224. package/dist/examples/transcription/whispercpp-microphone-record.js +21 -21
  225. package/dist/examples/transcription/whispercpp-prompt.js +18 -18
  226. package/dist/examples/translation/translation-bergamot-batch.js +17 -17
  227. package/dist/examples/translation/translation-bergamot-pivot.js +16 -16
  228. package/dist/examples/translation/translation-bergamot.js +11 -11
  229. package/dist/examples/translation/translation-indic.js +10 -10
  230. package/dist/examples/translation/translation-llm-afriquegemma.js +10 -10
  231. package/dist/examples/translation/translation-llm-context.js +10 -10
  232. package/dist/examples/translation/translation-llm.js +13 -13
  233. package/dist/examples/translation/translation-stream.js +11 -11
  234. package/dist/examples/tts/chatterbox-enhanced.d.ts +2 -0
  235. package/dist/examples/tts/chatterbox-enhanced.js +55 -0
  236. package/dist/examples/tts/chatterbox-multilingual.d.ts +2 -0
  237. package/dist/examples/tts/chatterbox-multilingual.js +54 -0
  238. package/dist/examples/tts/chatterbox.js +18 -18
  239. package/dist/examples/tts/llm-to-tts-streaming.js +30 -30
  240. package/dist/examples/tts/supertonic-enhanced.d.ts +2 -0
  241. package/dist/examples/tts/supertonic-enhanced.js +57 -0
  242. package/dist/examples/tts/supertonic-multilingual.js +19 -19
  243. package/dist/examples/tts/supertonic.js +18 -18
  244. package/dist/examples/tts/utils.js +24 -32
  245. package/dist/examples/vla-groot.d.ts +2 -0
  246. package/dist/examples/vla-groot.js +118 -0
  247. package/dist/examples/vla-pi05.js +14 -14
  248. package/dist/examples/vla-smolvla.js +14 -14
  249. package/dist/examples/voice-assistant/voice-assistant.js +46 -46
  250. package/dist/expo/plugins/find-in-ancestor-node-modules.js +3 -3
  251. package/dist/expo/plugins/get-project-root.d.ts +2 -2
  252. package/dist/expo/plugins/get-project-root.js +1 -1
  253. package/dist/expo/plugins/index.d.ts +11 -11
  254. package/dist/expo/plugins/index.js +10 -10
  255. package/dist/expo/plugins/resolve-sdk-package-dir.js +7 -11
  256. package/dist/expo/plugins/withAndroidArchitecture.d.ts +1 -1
  257. package/dist/expo/plugins/withAndroidArchitecture.js +12 -12
  258. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +1 -1
  259. package/dist/expo/plugins/withAndroidNdkVersion.js +9 -9
  260. package/dist/expo/plugins/withDeviceInfo.d.ts +1 -1
  261. package/dist/expo/plugins/withDeviceInfo.js +13 -13
  262. package/dist/expo/plugins/withMobileBundle.d.ts +1 -1
  263. package/dist/expo/plugins/withMobileBundle.js +34 -42
  264. package/dist/expo/plugins/withOpenCL.d.ts +1 -1
  265. package/dist/expo/plugins/withOpenCL.js +14 -16
  266. package/dist/expo/plugins/withQvacSDK.d.ts +1 -1
  267. package/dist/expo/plugins/withQvacSDK.js +12 -12
  268. package/dist/index.d.ts +16 -16
  269. package/dist/index.js +16 -17
  270. package/dist/logging/addon.d.ts +1 -1
  271. package/dist/logging/addon.js +13 -13
  272. package/dist/logging/base-logger.d.ts +2 -2
  273. package/dist/logging/base-logger.js +6 -6
  274. package/dist/logging/client-logger.d.ts +1 -1
  275. package/dist/logging/client-logger.js +3 -3
  276. package/dist/logging/index.d.ts +9 -9
  277. package/dist/logging/index.js +8 -8
  278. package/dist/logging/logger.d.ts +1 -1
  279. package/dist/logging/logger.js +4 -4
  280. package/dist/logging/namespaces.d.ts +1 -1
  281. package/dist/logging/namespaces.js +5 -5
  282. package/dist/logging/registry.d.ts +2 -2
  283. package/dist/logging/registry.js +3 -3
  284. package/dist/logging/server-logger.d.ts +1 -1
  285. package/dist/logging/server-logger.js +2 -2
  286. package/dist/logging/stream-logger.d.ts +1 -1
  287. package/dist/logging/stream-logger.js +4 -4
  288. package/dist/logging/transport.d.ts +1 -1
  289. package/dist/logging/types.d.ts +1 -1
  290. package/dist/logging/utils.d.ts +2 -2
  291. package/dist/logging/utils.js +40 -41
  292. package/dist/models/registry/index.d.ts +1 -1
  293. package/dist/models/registry/index.js +5 -5
  294. package/dist/models/registry/models.d.ts +5622 -9241
  295. package/dist/models/registry/models.js +13215 -17030
  296. package/dist/models/update-models/codegen.d.ts +1 -1
  297. package/dist/models/update-models/codegen.js +8 -8
  298. package/dist/models/update-models/companions.d.ts +6 -1
  299. package/dist/models/update-models/companions.js +104 -39
  300. package/dist/models/update-models/history.d.ts +1 -1
  301. package/dist/models/update-models/history.js +11 -11
  302. package/dist/models/update-models/index.js +32 -34
  303. package/dist/models/update-models/naming.d.ts +2 -2
  304. package/dist/models/update-models/naming.js +181 -186
  305. package/dist/models/update-models/processing.d.ts +2 -2
  306. package/dist/models/update-models/processing.js +17 -19
  307. package/dist/models/update-models/registry.d.ts +2 -2
  308. package/dist/models/update-models/registry.js +9 -9
  309. package/dist/models/update-models/shards.d.ts +1 -1
  310. package/dist/models/update-models/shards.js +3 -3
  311. package/dist/models/update-models/types.d.ts +1 -1
  312. package/dist/models/update-models/utils.js +5 -5
  313. package/dist/pear/pre.js +84 -84
  314. package/dist/profiling/aggregator.d.ts +1 -1
  315. package/dist/profiling/aggregator.js +6 -6
  316. package/dist/profiling/clock.d.ts +1 -1
  317. package/dist/profiling/clock.js +10 -10
  318. package/dist/profiling/controller.d.ts +2 -2
  319. package/dist/profiling/controller.js +11 -12
  320. package/dist/profiling/envelope.d.ts +1 -1
  321. package/dist/profiling/envelope.js +4 -6
  322. package/dist/profiling/events.d.ts +2 -2
  323. package/dist/profiling/events.js +8 -10
  324. package/dist/profiling/exporters.d.ts +1 -1
  325. package/dist/profiling/exporters.js +81 -79
  326. package/dist/profiling/index.d.ts +8 -8
  327. package/dist/profiling/index.js +7 -7
  328. package/dist/profiling/model-execution.js +2 -1
  329. package/dist/profiling/ring-buffer.js +2 -2
  330. package/dist/profiling/types.d.ts +3 -3
  331. package/dist/schemas/archive.d.ts +1 -1
  332. package/dist/schemas/archive.js +8 -14
  333. package/dist/schemas/batch-completion-stream.d.ts +463 -0
  334. package/dist/schemas/batch-completion-stream.js +124 -0
  335. package/dist/schemas/bci-config.d.ts +1 -1
  336. package/dist/schemas/bci-config.js +7 -7
  337. package/dist/schemas/bci.d.ts +3 -3
  338. package/dist/schemas/bci.js +25 -31
  339. package/dist/schemas/cancel.d.ts +6 -1
  340. package/dist/schemas/cancel.js +33 -34
  341. package/dist/schemas/classification.d.ts +1 -1
  342. package/dist/schemas/classification.js +7 -7
  343. package/dist/schemas/common.d.ts +578 -28
  344. package/dist/schemas/common.js +42 -37
  345. package/dist/schemas/completion-event.d.ts +11 -8
  346. package/dist/schemas/completion-event.js +27 -26
  347. package/dist/schemas/completion-stream.d.ts +190 -5
  348. package/dist/schemas/completion-stream.js +118 -67
  349. package/dist/schemas/constants-registry.d.ts +67 -0
  350. package/dist/schemas/constants-registry.js +51 -0
  351. package/dist/schemas/delegate.d.ts +1 -1
  352. package/dist/schemas/delegate.js +7 -7
  353. package/dist/schemas/delete-cache.d.ts +1 -1
  354. package/dist/schemas/delete-cache.js +15 -11
  355. package/dist/schemas/download-asset.d.ts +2 -2
  356. package/dist/schemas/download-asset.js +21 -21
  357. package/dist/schemas/embed.d.ts +3 -3
  358. package/dist/schemas/embed.js +16 -27
  359. package/dist/schemas/engine-addon-map.d.ts +3 -2
  360. package/dist/schemas/engine-addon-map.js +25 -25
  361. package/dist/schemas/error.d.ts +1 -1
  362. package/dist/schemas/error.js +12 -13
  363. package/dist/schemas/finetune.d.ts +1 -1
  364. package/dist/schemas/finetune.js +41 -44
  365. package/dist/schemas/get-loaded-model-info.d.ts +17 -1
  366. package/dist/schemas/get-loaded-model-info.js +22 -14
  367. package/dist/schemas/get-model-info.d.ts +1 -1
  368. package/dist/schemas/get-model-info.js +48 -91
  369. package/dist/schemas/heartbeat.d.ts +1 -1
  370. package/dist/schemas/heartbeat.js +6 -6
  371. package/dist/schemas/index.d.ts +52 -51
  372. package/dist/schemas/index.js +52 -51
  373. package/dist/schemas/json-schema.d.ts +1 -1
  374. package/dist/schemas/llamacpp-config.d.ts +57 -29
  375. package/dist/schemas/llamacpp-config.js +43 -35
  376. package/dist/schemas/load-model.d.ts +1537 -185
  377. package/dist/schemas/load-model.js +126 -129
  378. package/dist/schemas/logging-stream.d.ts +1 -1
  379. package/dist/schemas/logging-stream.js +6 -12
  380. package/dist/schemas/mcp-adapter.d.ts +1 -1
  381. package/dist/schemas/model-src-utils.d.ts +1 -1
  382. package/dist/schemas/model-src-utils.js +13 -13
  383. package/dist/schemas/model-types.d.ts +1 -1
  384. package/dist/schemas/model-types.js +27 -27
  385. package/dist/schemas/ocr.d.ts +1 -1
  386. package/dist/schemas/ocr.js +18 -18
  387. package/dist/schemas/path-validation.d.ts +1 -1
  388. package/dist/schemas/path-validation.js +4 -4
  389. package/dist/schemas/plugin.d.ts +13 -14
  390. package/dist/schemas/plugin.js +51 -51
  391. package/dist/schemas/profiling.d.ts +1 -1
  392. package/dist/schemas/profiling.js +16 -16
  393. package/dist/schemas/provide.d.ts +1 -1
  394. package/dist/schemas/provide.js +8 -8
  395. package/dist/schemas/rag.d.ts +3 -3
  396. package/dist/schemas/rag.js +65 -70
  397. package/dist/schemas/registry.d.ts +1 -1
  398. package/dist/schemas/registry.js +44 -66
  399. package/dist/schemas/reload-config.d.ts +1 -1
  400. package/dist/schemas/reload-config.js +16 -18
  401. package/dist/schemas/resume.d.ts +1 -1
  402. package/dist/schemas/resume.js +3 -3
  403. package/dist/schemas/runtime-context.d.ts +1 -1
  404. package/dist/schemas/runtime-context.js +4 -4
  405. package/dist/schemas/sdcpp-config.d.ts +248 -9
  406. package/dist/schemas/sdcpp-config.js +395 -291
  407. package/dist/schemas/sdk-config.d.ts +833 -71
  408. package/dist/schemas/sdk-config.js +25 -29
  409. package/dist/schemas/sdk-errors-client.d.ts +1 -1
  410. package/dist/schemas/sdk-errors-client.js +80 -80
  411. package/dist/schemas/sdk-errors-registry.js +1 -1
  412. package/dist/schemas/sdk-errors-server.d.ts +1 -1
  413. package/dist/schemas/sdk-errors-server.js +202 -199
  414. package/dist/schemas/shard.d.ts +1 -1
  415. package/dist/schemas/shard.js +4 -4
  416. package/dist/schemas/state.d.ts +1 -1
  417. package/dist/schemas/state.js +5 -10
  418. package/dist/schemas/stop-provide.d.ts +1 -1
  419. package/dist/schemas/stop-provide.js +4 -4
  420. package/dist/schemas/suspend.d.ts +1 -1
  421. package/dist/schemas/suspend.js +3 -3
  422. package/dist/schemas/text-to-speech.d.ts +469 -3
  423. package/dist/schemas/text-to-speech.js +151 -109
  424. package/dist/schemas/tools.d.ts +2 -2
  425. package/dist/schemas/tools.js +18 -24
  426. package/dist/schemas/transcription-config.d.ts +1 -1
  427. package/dist/schemas/transcription-config.js +18 -18
  428. package/dist/schemas/transcription.d.ts +5 -5
  429. package/dist/schemas/transcription.js +31 -33
  430. package/dist/schemas/translate.d.ts +3 -3
  431. package/dist/schemas/translate.js +49 -72
  432. package/dist/schemas/translation-config.d.ts +1 -1
  433. package/dist/schemas/translation-config.js +116 -123
  434. package/dist/schemas/unload-model.d.ts +1 -1
  435. package/dist/schemas/unload-model.js +6 -6
  436. package/dist/schemas/vla.d.ts +11 -1
  437. package/dist/schemas/vla.js +52 -32
  438. package/dist/scripts/contract/build-contract.d.ts +38 -0
  439. package/dist/scripts/contract/build-contract.js +620 -0
  440. package/dist/scripts/contract/build-error-codes.d.ts +17 -0
  441. package/dist/scripts/contract/build-error-codes.js +17 -0
  442. package/dist/scripts/contract/build-model-type-maps.d.ts +22 -0
  443. package/dist/scripts/contract/build-model-type-maps.js +16 -0
  444. package/dist/scripts/contract/build-models-registry.d.ts +17 -0
  445. package/dist/scripts/contract/build-models-registry.js +31 -0
  446. package/dist/scripts/contract/plugin-contract.d.ts +23 -0
  447. package/dist/scripts/contract/plugin-contract.js +28 -0
  448. package/dist/scripts/export-contract.d.ts +2 -0
  449. package/dist/scripts/export-contract.js +27 -0
  450. package/dist/scripts/export-plugin-contract.d.ts +2 -0
  451. package/dist/scripts/export-plugin-contract.js +18 -0
  452. package/dist/scripts/run-security-tests.js +9 -10
  453. package/dist/scripts/run-unit-tests.js +11 -12
  454. package/dist/server/bare/delegate-connect-diagnostics.js +13 -19
  455. package/dist/server/bare/delegate-rpc-client.d.ts +2 -2
  456. package/dist/server/bare/delegate-rpc-client.js +32 -34
  457. package/dist/server/bare/hyperswarm.d.ts +3 -3
  458. package/dist/server/bare/hyperswarm.js +14 -14
  459. package/dist/server/bare/ops/bci-transcribe.d.ts +1 -1
  460. package/dist/server/bare/ops/bci-transcribe.js +44 -44
  461. package/dist/server/bare/ops/cancel.d.ts +2 -2
  462. package/dist/server/bare/ops/cancel.js +6 -6
  463. package/dist/server/bare/ops/embed.d.ts +1 -1
  464. package/dist/server/bare/ops/embed.js +26 -16
  465. package/dist/server/bare/ops/kv-cache-utils.d.ts +1 -1
  466. package/dist/server/bare/ops/kv-cache-utils.js +17 -19
  467. package/dist/server/bare/ops/load-model.d.ts +2 -2
  468. package/dist/server/bare/ops/load-model.js +14 -18
  469. package/dist/server/bare/ops/transcribe.d.ts +3 -3
  470. package/dist/server/bare/ops/transcribe.js +62 -62
  471. package/dist/server/bare/ops/translate.d.ts +1 -1
  472. package/dist/server/bare/ops/translate.js +53 -31
  473. package/dist/server/bare/ops/unload-model.d.ts +1 -1
  474. package/dist/server/bare/ops/unload-model.js +12 -12
  475. package/dist/server/bare/plugins/bci-whispercpp-transcription/args.d.ts +2 -2
  476. package/dist/server/bare/plugins/bci-whispercpp-transcription/args.js +3 -3
  477. package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.d.ts +4 -3
  478. package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.js +33 -33
  479. package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.d.ts +1 -1
  480. package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.js +1 -1
  481. package/dist/server/bare/plugins/ggml-classification/ops/classify.d.ts +1 -1
  482. package/dist/server/bare/plugins/ggml-classification/ops/classify.js +8 -8
  483. package/dist/server/bare/plugins/ggml-classification/plugin.d.ts +1 -1
  484. package/dist/server/bare/plugins/ggml-classification/plugin.js +14 -14
  485. package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.d.ts +1 -1
  486. package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.js +27 -26
  487. package/dist/server/bare/plugins/ggml-ocr/plugin.d.ts +1 -1
  488. package/dist/server/bare/plugins/ggml-ocr/plugin.js +33 -54
  489. package/dist/server/bare/plugins/ggml-ocr/resolve-config.d.ts +6 -0
  490. package/dist/server/bare/plugins/ggml-ocr/resolve-config.js +73 -0
  491. package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.d.ts +1 -1
  492. package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.js +3 -3
  493. package/dist/server/bare/plugins/ggml-vla/ops/vla-run.d.ts +1 -1
  494. package/dist/server/bare/plugins/ggml-vla/ops/vla-run.js +23 -23
  495. package/dist/server/bare/plugins/ggml-vla/plugin.d.ts +6 -1
  496. package/dist/server/bare/plugins/ggml-vla/plugin.js +15 -15
  497. package/dist/server/bare/plugins/index.d.ts +11 -11
  498. package/dist/server/bare/plugins/index.js +11 -11
  499. package/dist/server/bare/plugins/llamacpp-completion/ops/batch-cancelled.d.ts +23 -0
  500. package/dist/server/bare/plugins/llamacpp-completion/ops/batch-cancelled.js +30 -0
  501. package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.d.ts +32 -0
  502. package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.js +99 -0
  503. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +1 -1
  504. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +8 -8
  505. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.d.ts +3 -2
  506. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.js +4 -1
  507. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +22 -4
  508. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +65 -80
  509. package/dist/server/bare/plugins/llamacpp-completion/ops/context-overflow.js +5 -5
  510. package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.d.ts +2 -2
  511. package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.js +34 -34
  512. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.d.ts +7 -7
  513. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.js +19 -23
  514. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.d.ts +8 -0
  515. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.js +12 -6
  516. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +193 -19
  517. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +235 -70
  518. package/dist/server/bare/plugins/llamacpp-completion/transform.d.ts +1 -1
  519. package/dist/server/bare/plugins/llamacpp-completion/transform.js +15 -15
  520. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +9 -4
  521. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +27 -29
  522. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +1 -1
  523. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +38 -39
  524. package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.d.ts +1 -1
  525. package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.js +19 -22
  526. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +1 -1
  527. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +36 -36
  528. package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.d.ts +1 -1
  529. package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +15 -17
  530. package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.d.ts +1 -1
  531. package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.js +11 -11
  532. package/dist/server/bare/plugins/sdcpp-generation/ops/video.d.ts +3 -1
  533. package/dist/server/bare/plugins/sdcpp-generation/ops/video.js +71 -44
  534. package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +132 -4
  535. package/dist/server/bare/plugins/sdcpp-generation/plugin.js +148 -70
  536. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.d.ts +2 -2
  537. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.js +19 -21
  538. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.d.ts +2 -2
  539. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.js +18 -34
  540. package/dist/server/bare/plugins/tts-ggml/plugin.d.ts +9 -2
  541. package/dist/server/bare/plugins/tts-ggml/plugin.js +97 -49
  542. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +1 -1
  543. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +52 -52
  544. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +1 -1
  545. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +2 -2
  546. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +1 -1
  547. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +2 -2
  548. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  549. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +4 -4
  550. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +1 -1
  551. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +3 -3
  552. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +2 -2
  553. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +4 -4
  554. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +1 -1
  555. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +1 -1
  556. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +2 -2
  557. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +5 -5
  558. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +2 -2
  559. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +3 -3
  560. package/dist/server/bare/rag-hyperdb/handlers/search.d.ts +1 -1
  561. package/dist/server/bare/rag-hyperdb/handlers/search.js +3 -3
  562. package/dist/server/bare/rag-hyperdb/index.d.ts +11 -11
  563. package/dist/server/bare/rag-hyperdb/index.js +11 -11
  564. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +3 -3
  565. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +1 -1
  566. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +20 -20
  567. package/dist/server/bare/registry/config-registry.d.ts +1 -1
  568. package/dist/server/bare/registry/config-registry.js +13 -16
  569. package/dist/server/bare/registry/logging-stream-registry.d.ts +1 -1
  570. package/dist/server/bare/registry/logging-stream-registry.js +2 -2
  571. package/dist/server/bare/registry/model-config-registry.d.ts +2 -2
  572. package/dist/server/bare/registry/model-config-registry.js +6 -6
  573. package/dist/server/bare/registry/model-config-utils.d.ts +2 -2
  574. package/dist/server/bare/registry/model-config-utils.js +35 -35
  575. package/dist/server/bare/registry/model-registry.d.ts +3 -3
  576. package/dist/server/bare/registry/model-registry.js +11 -11
  577. package/dist/server/bare/registry/registry-client.d.ts +1 -1
  578. package/dist/server/bare/registry/registry-client.js +18 -18
  579. package/dist/server/bare/registry/runtime-context-registry.d.ts +1 -1
  580. package/dist/server/bare/registry/runtime-context-registry.js +3 -3
  581. package/dist/server/bare/runtime/disposable-scope.js +3 -3
  582. package/dist/server/bare/runtime/index.d.ts +7 -7
  583. package/dist/server/bare/runtime/index.js +3 -3
  584. package/dist/server/bare/runtime/request-context.d.ts +4 -4
  585. package/dist/server/bare/runtime/request-id.js +1 -1
  586. package/dist/server/bare/runtime/request-registry-singleton.d.ts +1 -1
  587. package/dist/server/bare/runtime/request-registry-singleton.js +23 -4
  588. package/dist/server/bare/runtime/request-registry.d.ts +27 -12
  589. package/dist/server/bare/runtime/request-registry.js +39 -34
  590. package/dist/server/bare/runtime/with-request-context.d.ts +1 -1
  591. package/dist/server/bare/runtime/with-request-context.js +11 -11
  592. package/dist/server/bare/runtime-lifecycle.d.ts +1 -1
  593. package/dist/server/bare/runtime-lifecycle.js +27 -31
  594. package/dist/server/bare/types/addon-responses.d.ts +7 -4
  595. package/dist/server/bare/utils/audio-input.d.ts +2 -2
  596. package/dist/server/bare/utils/audio-input.js +7 -7
  597. package/dist/server/bare/utils/transcribe-metadata.d.ts +1 -1
  598. package/dist/server/bare/utils/transcribe-metadata.js +4 -4
  599. package/dist/server/bare/utils/tts-stats.d.ts +9 -5
  600. package/dist/server/bare/utils/tts-stats.js +8 -2
  601. package/dist/server/env.js +8 -8
  602. package/dist/server/error-handlers.d.ts +3 -3
  603. package/dist/server/error-handlers.js +11 -11
  604. package/dist/server/plugins/index.d.ts +1 -1
  605. package/dist/server/plugins/index.js +1 -1
  606. package/dist/server/plugins/registry.d.ts +1 -1
  607. package/dist/server/plugins/registry.js +12 -14
  608. package/dist/server/rpc/create-server.d.ts +1 -1
  609. package/dist/server/rpc/create-server.js +34 -13
  610. package/dist/server/rpc/delegate-transport.d.ts +3 -3
  611. package/dist/server/rpc/delegate-transport.js +43 -44
  612. package/dist/server/rpc/handle-request.d.ts +1 -1
  613. package/dist/server/rpc/handle-request.js +28 -30
  614. package/dist/server/rpc/handler-registry.d.ts +1 -1
  615. package/dist/server/rpc/handler-registry.js +102 -92
  616. package/dist/server/rpc/handler-selection.d.ts +3 -3
  617. package/dist/server/rpc/handler-selection.js +3 -3
  618. package/dist/server/rpc/handler-utils.d.ts +7 -7
  619. package/dist/server/rpc/handler-utils.js +32 -35
  620. package/dist/server/rpc/handlers/batch-completion-stream.d.ts +78 -0
  621. package/dist/server/rpc/handlers/batch-completion-stream.js +4 -0
  622. package/dist/server/rpc/handlers/bci-transcribe-stream.d.ts +1 -1
  623. package/dist/server/rpc/handlers/bci-transcribe-stream.js +2 -2
  624. package/dist/server/rpc/handlers/bci-transcribe.d.ts +1 -1
  625. package/dist/server/rpc/handlers/bci-transcribe.js +2 -2
  626. package/dist/server/rpc/handlers/cancel-delegated.d.ts +2 -2
  627. package/dist/server/rpc/handlers/cancel-delegated.js +13 -13
  628. package/dist/server/rpc/handlers/cancelHandler.d.ts +1 -1
  629. package/dist/server/rpc/handlers/cancelHandler.js +11 -11
  630. package/dist/server/rpc/handlers/classify.d.ts +1 -1
  631. package/dist/server/rpc/handlers/classify.js +2 -2
  632. package/dist/server/rpc/handlers/completion-orchestrate.d.ts +42 -0
  633. package/dist/server/rpc/handlers/completion-orchestrate.js +190 -0
  634. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +2 -2
  635. package/dist/server/rpc/handlers/completion-stream-delegated.js +14 -14
  636. package/dist/server/rpc/handlers/completion-stream.d.ts +1 -1
  637. package/dist/server/rpc/handlers/completion-stream.js +2 -2
  638. package/dist/server/rpc/handlers/delete-cache.d.ts +1 -1
  639. package/dist/server/rpc/handlers/delete-cache.js +10 -10
  640. package/dist/server/rpc/handlers/diffusion-stream.d.ts +1 -1
  641. package/dist/server/rpc/handlers/diffusion-stream.js +2 -2
  642. package/dist/server/rpc/handlers/download-asset.d.ts +1 -1
  643. package/dist/server/rpc/handlers/download-asset.js +20 -20
  644. package/dist/server/rpc/handlers/embed.d.ts +1 -1
  645. package/dist/server/rpc/handlers/embed.js +2 -2
  646. package/dist/server/rpc/handlers/finetune.d.ts +1 -1
  647. package/dist/server/rpc/handlers/finetune.js +8 -6
  648. package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +1 -1
  649. package/dist/server/rpc/handlers/get-loaded-model-info.js +15 -9
  650. package/dist/server/rpc/handlers/get-model-info.d.ts +1 -1
  651. package/dist/server/rpc/handlers/get-model-info.js +20 -20
  652. package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +2 -2
  653. package/dist/server/rpc/handlers/heartbeat-delegated.js +7 -7
  654. package/dist/server/rpc/handlers/heartbeat.d.ts +1 -1
  655. package/dist/server/rpc/handlers/heartbeat.js +1 -1
  656. package/dist/server/rpc/handlers/index.d.ts +35 -31
  657. package/dist/server/rpc/handlers/index.js +36 -32
  658. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +4 -4
  659. package/dist/server/rpc/handlers/load-model/download-manager.js +19 -17
  660. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +4 -3
  661. package/dist/server/rpc/handlers/load-model/download-stats.js +9 -11
  662. package/dist/server/rpc/handlers/load-model/handler.d.ts +1 -1
  663. package/dist/server/rpc/handlers/load-model/handler.js +42 -43
  664. package/dist/server/rpc/handlers/load-model/http.d.ts +2 -2
  665. package/dist/server/rpc/handlers/load-model/http.js +100 -107
  666. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -2
  667. package/dist/server/rpc/handlers/load-model/hyperdrive.js +72 -74
  668. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  669. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  670. package/dist/server/rpc/handlers/load-model/registry-client-options.d.ts +2 -2
  671. package/dist/server/rpc/handlers/load-model/registry-client-options.js +2 -3
  672. package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +5 -5
  673. package/dist/server/rpc/handlers/load-model/registry-companion-set.js +19 -21
  674. package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +6 -6
  675. package/dist/server/rpc/handlers/load-model/registry-download-utils.js +16 -18
  676. package/dist/server/rpc/handlers/load-model/registry-metadata.d.ts +11 -0
  677. package/dist/server/rpc/handlers/load-model/registry-metadata.js +23 -0
  678. package/dist/server/rpc/handlers/load-model/registry.d.ts +4 -3
  679. package/dist/server/rpc/handlers/load-model/registry.js +50 -56
  680. package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +3 -3
  681. package/dist/server/rpc/handlers/load-model/resolve-session.js +7 -7
  682. package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -3
  683. package/dist/server/rpc/handlers/load-model/resolve.js +36 -35
  684. package/dist/server/rpc/handlers/load-model/types.d.ts +3 -3
  685. package/dist/server/rpc/handlers/load-model/types.js +7 -7
  686. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
  687. package/dist/server/rpc/handlers/load-model-delegated.js +31 -30
  688. package/dist/server/rpc/handlers/logging-stream.d.ts +1 -1
  689. package/dist/server/rpc/handlers/logging-stream.js +3 -3
  690. package/dist/server/rpc/handlers/ocr-stream.d.ts +1 -1
  691. package/dist/server/rpc/handlers/ocr-stream.js +2 -2
  692. package/dist/server/rpc/handlers/plugin-dispatch.js +9 -9
  693. package/dist/server/rpc/handlers/plugin-invoke.d.ts +1 -1
  694. package/dist/server/rpc/handlers/plugin-invoke.js +16 -16
  695. package/dist/server/rpc/handlers/provideHandler/connection.d.ts +1 -1
  696. package/dist/server/rpc/handlers/provideHandler/connection.js +16 -16
  697. package/dist/server/rpc/handlers/provideHandler/handler.d.ts +1 -1
  698. package/dist/server/rpc/handlers/provideHandler/handler.js +18 -18
  699. package/dist/server/rpc/handlers/provideHandler/proxy.d.ts +1 -1
  700. package/dist/server/rpc/handlers/provideHandler/proxy.js +11 -11
  701. package/dist/server/rpc/handlers/provideHandler.d.ts +1 -1
  702. package/dist/server/rpc/handlers/provideHandler.js +1 -1
  703. package/dist/server/rpc/handlers/rag.d.ts +1 -1
  704. package/dist/server/rpc/handlers/rag.js +50 -50
  705. package/dist/server/rpc/handlers/registry.d.ts +1 -1
  706. package/dist/server/rpc/handlers/registry.js +34 -36
  707. package/dist/server/rpc/handlers/resume.d.ts +1 -1
  708. package/dist/server/rpc/handlers/resume.js +3 -3
  709. package/dist/server/rpc/handlers/state.d.ts +1 -1
  710. package/dist/server/rpc/handlers/state.js +3 -3
  711. package/dist/server/rpc/handlers/stopProvideHandler.d.ts +1 -1
  712. package/dist/server/rpc/handlers/stopProvideHandler.js +7 -7
  713. package/dist/server/rpc/handlers/suspend.d.ts +1 -1
  714. package/dist/server/rpc/handlers/suspend.js +3 -3
  715. package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +1 -1
  716. package/dist/server/rpc/handlers/text-to-speech-stream.js +2 -2
  717. package/dist/server/rpc/handlers/text-to-speech.d.ts +1 -1
  718. package/dist/server/rpc/handlers/text-to-speech.js +2 -2
  719. package/dist/server/rpc/handlers/transcribe-stream.d.ts +1 -1
  720. package/dist/server/rpc/handlers/transcribe-stream.js +2 -2
  721. package/dist/server/rpc/handlers/transcribe.d.ts +1 -1
  722. package/dist/server/rpc/handlers/transcribe.js +2 -2
  723. package/dist/server/rpc/handlers/translate.d.ts +1 -1
  724. package/dist/server/rpc/handlers/translate.js +2 -2
  725. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +1 -1
  726. package/dist/server/rpc/handlers/unload-model-delegated.js +10 -10
  727. package/dist/server/rpc/handlers/unload-model.d.ts +1 -1
  728. package/dist/server/rpc/handlers/unload-model.js +10 -10
  729. package/dist/server/rpc/handlers/upscale-stream.d.ts +1 -1
  730. package/dist/server/rpc/handlers/upscale-stream.js +2 -2
  731. package/dist/server/rpc/handlers/video-stream.d.ts +1 -1
  732. package/dist/server/rpc/handlers/video-stream.js +2 -2
  733. package/dist/server/rpc/index.d.ts +2 -2
  734. package/dist/server/rpc/index.js +2 -2
  735. package/dist/server/rpc/method-shapes.d.ts +51 -0
  736. package/dist/server/rpc/method-shapes.js +48 -0
  737. package/dist/server/rpc/profiling/context.d.ts +1 -1
  738. package/dist/server/rpc/profiling/context.js +9 -10
  739. package/dist/server/rpc/profiling/delegation-profiler.d.ts +2 -2
  740. package/dist/server/rpc/profiling/delegation-profiler.js +23 -24
  741. package/dist/server/rpc/profiling/index.d.ts +4 -4
  742. package/dist/server/rpc/profiling/index.js +4 -4
  743. package/dist/server/rpc/profiling/operation-metrics.d.ts +2 -2
  744. package/dist/server/rpc/profiling/operation-metrics.js +122 -102
  745. package/dist/server/rpc/profiling/operation-wrappers.d.ts +1 -1
  746. package/dist/server/rpc/profiling/operation-wrappers.js +16 -14
  747. package/dist/server/rpc/profiling/profiler.d.ts +2 -2
  748. package/dist/server/rpc/profiling/profiler.js +9 -13
  749. package/dist/server/rpc/rpc-utils.js +1 -4
  750. package/dist/server/rpc/transport-selector.d.ts +1 -1
  751. package/dist/server/rpc/transport-selector.js +4 -4
  752. package/dist/server/utils/archive.js +27 -29
  753. package/dist/server/utils/audio/decoder.d.ts +2 -2
  754. package/dist/server/utils/audio/decoder.js +11 -11
  755. package/dist/server/utils/cache/auto-history.d.ts +1 -1
  756. package/dist/server/utils/cache/auto-history.js +15 -11
  757. package/dist/server/utils/cache/paths.d.ts +2 -2
  758. package/dist/server/utils/cache/paths.js +14 -14
  759. package/dist/server/utils/checksum.d.ts +1 -1
  760. package/dist/server/utils/checksum.js +10 -12
  761. package/dist/server/utils/clear-storage.d.ts +1 -1
  762. package/dist/server/utils/clear-storage.js +8 -11
  763. package/dist/server/utils/completion-normalizer.d.ts +1 -1
  764. package/dist/server/utils/completion-normalizer.js +106 -113
  765. package/dist/server/utils/config-transform.d.ts +1 -1
  766. package/dist/server/utils/config-transform.js +2 -2
  767. package/dist/server/utils/expand-gguf-shards.js +4 -4
  768. package/dist/server/utils/formatting.js +6 -12
  769. package/dist/server/utils/gguf-tensor-extractor.js +17 -21
  770. package/dist/server/utils/index.d.ts +11 -11
  771. package/dist/server/utils/index.js +11 -11
  772. package/dist/server/utils/multi-gpu-mobile.js +1 -1
  773. package/dist/server/utils/path-security.d.ts +1 -1
  774. package/dist/server/utils/path-security.js +6 -6
  775. package/dist/server/utils/qvac-paths.js +3 -3
  776. package/dist/server/utils/response-format.d.ts +1 -1
  777. package/dist/server/utils/response-format.js +4 -4
  778. package/dist/server/utils/shard-utils.d.ts +1 -1
  779. package/dist/server/utils/shard-utils.js +14 -16
  780. package/dist/server/utils/tool-integration.d.ts +1 -1
  781. package/dist/server/utils/tool-integration.js +5 -9
  782. package/dist/server/utils/tools/dialect.d.ts +1 -1
  783. package/dist/server/utils/tools/dialect.js +7 -7
  784. package/dist/server/utils/tools/index.d.ts +2 -2
  785. package/dist/server/utils/tools/index.js +2 -2
  786. package/dist/server/utils/tools/parser.d.ts +1 -1
  787. package/dist/server/utils/tools/parser.js +14 -14
  788. package/dist/server/utils/tools/parsers/gemma4native.d.ts +2 -2
  789. package/dist/server/utils/tools/parsers/gemma4native.js +13 -8
  790. package/dist/server/utils/tools/parsers/harmony.d.ts +2 -2
  791. package/dist/server/utils/tools/parsers/harmony.js +9 -11
  792. package/dist/server/utils/tools/parsers/hermes.d.ts +2 -2
  793. package/dist/server/utils/tools/parsers/hermes.js +16 -16
  794. package/dist/server/utils/tools/parsers/json.d.ts +2 -2
  795. package/dist/server/utils/tools/parsers/json.js +14 -14
  796. package/dist/server/utils/tools/parsers/pythonic.d.ts +2 -2
  797. package/dist/server/utils/tools/parsers/pythonic.js +43 -43
  798. package/dist/server/utils/tools/parsers/qwen35.d.ts +2 -2
  799. package/dist/server/utils/tools/parsers/qwen35.js +20 -20
  800. package/dist/server/utils/tools/shared.d.ts +1 -1
  801. package/dist/server/utils/tools/shared.js +10 -12
  802. package/dist/server/utils/worker-lock.js +10 -10
  803. package/dist/server/worker-core.d.ts +1 -1
  804. package/dist/server/worker-core.js +44 -43
  805. package/dist/server/worker.js +9 -9
  806. package/dist/utils/aggregate-events.d.ts +2 -2
  807. package/dist/utils/aggregate-events.js +17 -19
  808. package/dist/utils/cache-normalize.js +1 -4
  809. package/dist/utils/encoding.js +1 -1
  810. package/dist/utils/errors-base.d.ts +1 -1
  811. package/dist/utils/errors-base.js +1 -1
  812. package/dist/utils/errors-client.d.ts +1 -1
  813. package/dist/utils/errors-client.js +5 -5
  814. package/dist/utils/errors-server.d.ts +3 -3
  815. package/dist/utils/errors-server.js +19 -18
  816. package/dist/utils/load-model-validation.js +3 -3
  817. package/dist/utils/mcp-adapter.d.ts +4 -4
  818. package/dist/utils/mcp-adapter.js +31 -38
  819. package/dist/utils/path-sanitize.js +14 -17
  820. package/dist/utils/tool-helpers.d.ts +2 -2
  821. package/dist/utils/tool-helpers.js +25 -26
  822. package/dist/utils/withTimeout.d.ts +7 -0
  823. package/dist/utils/withTimeout.js +11 -1
  824. package/dist/utils/zod-error.d.ts +1 -1
  825. package/dist/utils/zod-error.js +1 -1
  826. package/electron-forge/index.cjs +274 -317
  827. package/expo/plugins/patches/android-link.mjs +25 -30
  828. package/expo/plugins/patches/ios-link.mjs +25 -30
  829. package/package.json +21 -17
@@ -1,45 +1,29 @@
1
- import { TOOLS_MODE } from "../../../../../schemas/tools.js";
2
- import { logCacheDisabled, logCacheInit, logCacheSave, logMessagesToAddon, } from "./cache-logger.js";
3
- import { extractSystemPrompt, getCurrentCacheInfo, } from "../../../ops/kv-cache-utils.js";
4
- import { getModel, getModelConfig, } from "../../../registry/model-registry.js";
5
- import { decideCachedHistorySlice } from "./kv-cache-state.js";
6
- import { createKvCacheSession, generateConfigHash, } from "./kv-cache-session.js";
7
- import { appendToolsToHistory, detectToolDialect, prependToolsToHistory, } from "../../../../utils/tool-integration.js";
8
- import { parseToolCalls } from "../../../../utils/tools/index.js";
9
- import { getResponseFormatJsonSchema } from "../../../../utils/response-format.js";
10
- import { buildAutoCacheSaveHistory } from "../../../../utils/index.js";
11
- import { getServerLogger } from "../../../../../logging/index.js";
12
- import { AttachmentNotFoundError } from "../../../../../utils/errors-server.js";
13
- import { nowMs } from "../../../../../profiling/index.js";
14
- import { buildStreamResult } from "../../../../../profiling/model-execution.js";
15
- import { normalizeCompletionStats } from "./completion-stats.js";
16
- import fs from "bare-fs";
1
+ import { TOOLS_MODE } from '../../../../../schemas/tools.js';
2
+ import { logCacheDisabled, logCacheInit, logCacheSave, logMessagesToAddon } from './cache-logger.js';
3
+ import { extractSystemPrompt, getCurrentCacheInfo } from '../../../ops/kv-cache-utils.js';
4
+ import { getModel, getModelConfig } from '../../../registry/model-registry.js';
5
+ import { decideCachedHistorySlice, shouldCommitCachedTurn } from './kv-cache-state.js';
6
+ import { createKvCacheSession, generateConfigHash } from './kv-cache-session.js';
7
+ import { appendToolsToHistory, detectToolDialect, prependToolsToHistory } from '../../../../utils/tool-integration.js';
8
+ import { parseToolCalls } from '../../../../utils/tools/index.js';
9
+ import { getResponseFormatJsonSchema } from '../../../../utils/response-format.js';
10
+ import { buildAutoCacheSaveHistory } from '../../../../utils/index.js';
11
+ import { getServerLogger } from '../../../../../logging/index.js';
12
+ import { AttachmentNotFoundError } from '../../../../../utils/errors-server.js';
13
+ import { nowMs } from '../../../../../profiling/index.js';
14
+ import { buildStreamResult } from '../../../../../profiling/model-execution.js';
15
+ import { normalizeCompletionStats } from './completion-stats.js';
16
+ import fs from 'bare-fs';
17
17
  const logger = getServerLogger();
18
- /**
19
- * Decide whether a completed turn earned the right to record its kv-cache
20
- * boundary. A `savedCount` is only safe to write when the turn ran to
21
- * completion AND produced at least one token — anything else (cancelled
22
- * mid-decode, zero-token reply, early EOS) leaves the on-disk cache file
23
- * in an unknown state relative to `history.length + 1`, and a stale entry
24
- * would slice the next turn's history down to an empty payload.
25
- *
26
- * Replaces the pre-0.11.0 `shouldRecordSavedCount(wasCancelled, ...)` with
27
- * a signal-driven check that reads directly from the request's
28
- * `AbortSignal`. The local helper keeps the call sites in
29
- * `completion-stream.ts` honest without importing the registry every time.
30
- */
31
- function shouldCommitTurn(signal, producedTokens) {
32
- return !signal.aborted && producedTokens;
33
- }
34
18
  function transformMessage(message) {
35
19
  const transformed = [];
36
20
  // Check if it's a tool definition (has type: "function")
37
- if ("type" in message && message.type === "function") {
21
+ if ('type' in message && message.type === 'function') {
38
22
  transformed.push({
39
- type: "function",
23
+ type: 'function',
40
24
  name: message.name,
41
25
  description: message.description,
42
- parameters: message.parameters,
26
+ parameters: message.parameters
43
27
  });
44
28
  return transformed;
45
29
  }
@@ -52,13 +36,13 @@ function transformMessage(message) {
52
36
  transformed.push({
53
37
  role: msg.role,
54
38
  content: attachment.path,
55
- type: "media",
39
+ type: 'media'
56
40
  });
57
41
  }
58
42
  }
59
43
  transformed.push({
60
44
  role: msg.role,
61
- content: msg.content,
45
+ content: msg.content
62
46
  });
63
47
  return transformed;
64
48
  }
@@ -66,7 +50,7 @@ function runModel(model, prompt, opts) {
66
50
  const run = model.run.bind(model);
67
51
  return run(prompt, opts);
68
52
  }
69
- function transformMessages(messages) {
53
+ export function transformMessages(messages) {
70
54
  const transformed = [];
71
55
  for (const message of messages) {
72
56
  transformed.push(...transformMessage(message));
@@ -74,9 +58,7 @@ function transformMessages(messages) {
74
58
  return transformed;
75
59
  }
76
60
  async function initSystemPromptCache(model, cachePathToUse, systemPromptToUse, cacheKey, tools) {
77
- const primeMessages = [
78
- { role: "system", content: systemPromptToUse },
79
- ];
61
+ const primeMessages = [{ role: 'system', content: systemPromptToUse }];
80
62
  let toolCount = 0;
81
63
  if (tools && tools.length > 0) {
82
64
  const transformedTools = transformMessages(tools);
@@ -84,11 +66,11 @@ async function initSystemPromptCache(model, cachePathToUse, systemPromptToUse, c
84
66
  toolCount = tools.length;
85
67
  }
86
68
  logCacheInit(cacheKey, systemPromptToUse, toolCount);
87
- logMessagesToAddon(primeMessages, "CACHE_INIT");
69
+ logMessagesToAddon(primeMessages, 'CACHE_INIT');
88
70
  const primeResponse = await runModel(model, primeMessages, {
89
71
  cacheKey: cachePathToUse,
90
72
  saveCacheToDisk: true,
91
- prefill: true,
73
+ prefill: true
92
74
  });
93
75
  await primeResponse.await();
94
76
  }
@@ -124,7 +106,7 @@ function prepareMessagesForCache(session, turn, cacheExists, history, tools) {
124
106
  const addTools = tools?.length ? transformMessages(tools) : [];
125
107
  const dynamic = addTools.length > 0;
126
108
  if (!(cacheExists && history.length > 0)) {
127
- const historyWithoutSystem = history.filter((msg) => msg.role !== "system");
109
+ const historyWithoutSystem = history.filter((msg) => msg.role !== 'system');
128
110
  return [...transformMessages(historyWithoutSystem), ...addTools];
129
111
  }
130
112
  if (!dynamic) {
@@ -147,19 +129,19 @@ function prepareMessagesForCache(session, turn, cacheExists, history, tools) {
147
129
  // cache no longer holds the saved-count we'd rely on for slicing — pick
148
130
  // the right fragment based on the role of the last history message.
149
131
  const lastMsg = history[history.length - 1];
150
- if (lastMsg.role === "tool") {
132
+ if (lastMsg.role === 'tool') {
151
133
  const trailingTools = [];
152
134
  for (let i = history.length - 1; i >= 0; i--) {
153
135
  const msg = history[i];
154
- if (msg.role !== "tool")
136
+ if (msg.role !== 'tool')
155
137
  break;
156
138
  trailingTools.unshift(msg);
157
139
  }
158
140
  return transformMessages(trailingTools);
159
141
  }
160
- if (lastMsg.role === "user") {
142
+ if (lastMsg.role === 'user') {
161
143
  const prevMsg = history[history.length - 2];
162
- const tail = prevMsg?.role === "assistant" ? [prevMsg, lastMsg] : [lastMsg];
144
+ const tail = prevMsg?.role === 'assistant' ? [prevMsg, lastMsg] : [lastMsg];
163
145
  return [...transformMessages(tail), ...addTools];
164
146
  }
165
147
  return [...transformMessages([lastMsg]), ...addTools];
@@ -168,16 +150,16 @@ async function* processModelResponse(model, messagesToSend, tools, generationPar
168
150
  const runOptions = {
169
151
  ...(generationParams && { generationParams }),
170
152
  ...(cacheOptions?.cacheKey !== undefined && {
171
- cacheKey: cacheOptions.cacheKey,
153
+ cacheKey: cacheOptions.cacheKey
172
154
  }),
173
155
  ...(cacheOptions?.saveCacheToDisk !== undefined && {
174
- saveCacheToDisk: cacheOptions.saveCacheToDisk,
175
- }),
156
+ saveCacheToDisk: cacheOptions.saveCacheToDisk
157
+ })
176
158
  };
177
159
  const hasRunOptions = Object.keys(runOptions).length > 0;
178
160
  const modelStart = nowMs();
179
161
  const response = await runModel(model, messagesToSend, hasRunOptions ? runOptions : undefined);
180
- let accumulatedText = "";
162
+ let accumulatedText = '';
181
163
  let producedTokens = false;
182
164
  let toolCallsResult = [];
183
165
  for await (const token of response.iterate()) {
@@ -201,7 +183,7 @@ async function* processModelResponse(model, messagesToSend, tools, generationPar
201
183
  ...buildStreamResult(modelExecutionMs, stats),
202
184
  toolCalls: toolCallsResult,
203
185
  responseText: accumulatedText,
204
- producedTokens,
186
+ producedTokens
205
187
  };
206
188
  }
207
189
  export async function* completion(params, opts) {
@@ -213,9 +195,7 @@ export async function* completion(params, opts) {
213
195
  const toolsMode = modelConfig.toolsMode;
214
196
  const dynamicTools = !!tools?.length && toolsEnabled && toolsMode === TOOLS_MODE.dynamic;
215
197
  const staticTools = !!tools?.length && toolsEnabled && !dynamicTools;
216
- const dialect = tools && tools.length > 0
217
- ? (params.toolDialect ?? detectToolDialect(modelId))
218
- : undefined;
198
+ const dialect = tools && tools.length > 0 ? (params.toolDialect ?? detectToolDialect(modelId)) : undefined;
219
199
  // `responseFormat` is forwarded to the addon as a per-request
220
200
  // `generationParams.json_schema`, which the addon converts to GBNF and
221
201
  // applies for the duration of the request only. This avoids mutating
@@ -229,7 +209,7 @@ export async function* completion(params, opts) {
229
209
  if (jsonSchema !== undefined) {
230
210
  mergedGenerationParams = {
231
211
  ...(generationParams ?? {}),
232
- json_schema: jsonSchema,
212
+ json_schema: jsonSchema
233
213
  };
234
214
  }
235
215
  }
@@ -254,7 +234,7 @@ export async function* completion(params, opts) {
254
234
  });
255
235
  }
256
236
  };
257
- signal.addEventListener("abort", onAbort, { once: true });
237
+ signal.addEventListener('abort', onAbort, { once: true });
258
238
  // `addEventListener("abort", ..., { once: true })` does *not* fire if
259
239
  // the signal is already aborted at register time — but the registry
260
240
  // synchronously aborts a fresh controller when `parentSignal` was
@@ -269,7 +249,7 @@ export async function* completion(params, opts) {
269
249
  // listener if the signal fires, so the `removeEventListener` here is
270
250
  // the cleanup hook for the signal-never-fired path.
271
251
  scope.defer(() => {
272
- signal.removeEventListener("abort", onAbort);
252
+ signal.removeEventListener('abort', onAbort);
273
253
  });
274
254
  if (!kvCache) {
275
255
  // KV-cache disabled — straight passthrough, no session involvement.
@@ -282,7 +262,7 @@ export async function* completion(params, opts) {
282
262
  }
283
263
  const transformedHistory = transformMessages(historyWithTools);
284
264
  logCacheDisabled();
285
- logMessagesToAddon(transformedHistory, "NO_CACHE");
265
+ logMessagesToAddon(transformedHistory, 'NO_CACHE');
286
266
  return yield* processModelResponse(model, transformedHistory, tools, mergedGenerationParams, undefined, dialect);
287
267
  }
288
268
  // ---- KV-cache path. The session owns all three bookkeeping layers
@@ -299,34 +279,34 @@ export async function* completion(params, opts) {
299
279
  const configHash = generateConfigHash(systemPromptFromHistory, dynamicTools ? undefined : tools);
300
280
  const systemPromptToUse = systemPromptFromHistory ||
301
281
  modelConfig.system_prompt ||
302
- "You are a helpful assistant.";
282
+ 'You are a helpful assistant.';
303
283
  const primeIfMissing = async (cachePath) => {
304
- await initSystemPromptCache(model, cachePath, systemPromptToUse, typeof kvCache === "string" ? kvCache : "auto",
284
+ await initSystemPromptCache(model, cachePath, systemPromptToUse, typeof kvCache === 'string' ? kvCache : 'auto',
305
285
  // Static-mode tools are baked into the system-prompt cache so
306
286
  // they're shared across the session. Dynamic-mode tools belong
307
287
  // to a per-turn anchor and must not enter the system cache.
308
288
  staticTools ? tools : undefined);
309
289
  };
310
290
  let turn;
311
- if (typeof kvCache === "string") {
291
+ if (typeof kvCache === 'string') {
312
292
  turn = await session.beginTurn({
313
- kind: "custom",
293
+ kind: 'custom',
314
294
  customKey: kvCache,
315
295
  configHash,
316
- primeIfMissing,
296
+ primeIfMissing
317
297
  });
318
298
  }
319
299
  else {
320
300
  const cacheMessages = history.map((msg) => ({
321
301
  role: msg.role,
322
302
  content: msg.content,
323
- attachments: msg.attachments ?? undefined,
303
+ attachments: msg.attachments ?? undefined
324
304
  }));
325
305
  turn = await session.beginTurn({
326
- kind: "auto",
306
+ kind: 'auto',
327
307
  configHash,
328
308
  history: cacheMessages,
329
- primeIfMissing,
309
+ primeIfMissing
330
310
  });
331
311
  }
332
312
  // Single cleanup hook for every non-success exit path. `commitTurn`
@@ -340,16 +320,22 @@ export async function* completion(params, opts) {
340
320
  // selector so the slicing branches engage.
341
321
  const messagesToSend = prepareMessagesForCache(session, turn,
342
322
  /* cacheExists */ true, history, dynamicTools ? tools : undefined);
343
- logMessagesToAddon(messagesToSend, "PROMPT_SEND");
323
+ logMessagesToAddon(messagesToSend, 'PROMPT_SEND');
344
324
  const result = yield* processModelResponse(model, messagesToSend, tools, mergedGenerationParams, { cacheKey: turn.cachePath, saveCacheToDisk: true }, dialect);
345
- if (typeof kvCache === "string") {
325
+ const shouldCommitTurn = shouldCommitCachedTurn({
326
+ aborted: signal.aborted,
327
+ producedTokens: result.producedTokens,
328
+ generatedTokens: result.stats?.generatedTokens,
329
+ predict: mergedGenerationParams?.predict ?? modelConfig.predict
330
+ });
331
+ if (typeof kvCache === 'string') {
346
332
  // Custom-key path: the addon wrote the new cache state inline at
347
333
  // the same path. Either commit (records the boundary, suppresses
348
334
  // rollback) or fall through to the deferred rollback.
349
- if (shouldCommitTurn(signal, result.producedTokens)) {
335
+ if (shouldCommitTurn) {
350
336
  await session.commitTurn(turn, {
351
- kind: "static",
352
- messageCount: history.length + 1,
337
+ kind: 'static',
338
+ messageCount: history.length + 1
353
339
  });
354
340
  }
355
341
  return result;
@@ -366,22 +352,21 @@ export async function* completion(params, opts) {
366
352
  logger.warn(`[kv-cache] Auto cache tool-call turn; rolling back to avoid disk leak. path=${turn.cachePath}`);
367
353
  return result;
368
354
  }
369
- if (!shouldCommitTurn(signal, result.producedTokens)) {
370
- // Cancelled or zero-token turn — the addon wrote the file but its
371
- // contents don't correspond to a clean turn boundary. Let the
372
- // deferred rollback unlink it.
355
+ if (!shouldCommitTurn) {
356
+ // Cancelled, zero-token, or budget-exhausted turns do not establish
357
+ // a trustworthy message boundary.
373
358
  return result;
374
359
  }
375
360
  const savedHistory = buildAutoCacheSaveHistory(history.map((msg) => ({
376
361
  role: msg.role,
377
362
  content: msg.content,
378
- attachments: msg.attachments ?? undefined,
363
+ attachments: msg.attachments ?? undefined
379
364
  })), result.responseText);
380
365
  const postResponseCacheInfo = await getCurrentCacheInfo(modelId, configHash, savedHistory);
381
366
  await session.commitTurn(turn, {
382
- kind: "autoRename",
367
+ kind: 'autoRename',
383
368
  targetCachePath: postResponseCacheInfo.cachePath,
384
- messageCount: savedHistory.length,
369
+ messageCount: savedHistory.length
385
370
  });
386
371
  return result;
387
372
  }
@@ -13,14 +13,14 @@
13
13
  * + extraction logic without a real model load.
14
14
  */
15
15
  export function isAddonContextOverflowError(err) {
16
- if (typeof err !== "object" || err === null)
16
+ if (typeof err !== 'object' || err === null)
17
17
  return false;
18
18
  const code = err.code;
19
19
  // Anchor to the codeString tail (`[ <addonId> :: ContextOverflow ]`)
20
20
  // so we don't false-positive on a hypothetical sibling like
21
21
  // `ContextOverflowRecovered` or `PostContextOverflow` after an
22
22
  // addon-side rename.
23
- if (typeof code === "string" && /::\s*ContextOverflow\s*\]/.test(code)) {
23
+ if (typeof code === 'string' && /::\s*ContextOverflow\s*\]/.test(code)) {
24
24
  return true;
25
25
  }
26
26
  // Message-substring fallback for the bare `LlamaModel::processPromptImpl`
@@ -28,7 +28,7 @@ export function isAddonContextOverflowError(err) {
28
28
  // two known C++-emitted formats only — broader substring would catch
29
29
  // wrapper / cause-chain text that mentions overflow without being one.
30
30
  const message = err.message;
31
- return (typeof message === "string" &&
31
+ return (typeof message === 'string' &&
32
32
  /(?:context overflow at prefill step|processPromptImpl: context overflow)/i.test(message));
33
33
  }
34
34
  /**
@@ -49,7 +49,7 @@ export function parseContextOverflowMessage(message) {
49
49
  if (longForm?.[1] && longForm[2]) {
50
50
  return {
51
51
  promptTokens: Number(longForm[1]),
52
- ctxSize: Number(longForm[2]),
52
+ ctxSize: Number(longForm[2])
53
53
  };
54
54
  }
55
55
  // "[TextLlm] context overflow at prefill step (N tokens, max M)\n"
@@ -58,7 +58,7 @@ export function parseContextOverflowMessage(message) {
58
58
  if (shortForm?.[1] && shortForm[2]) {
59
59
  return {
60
60
  promptTokens: Number(shortForm[1]),
61
- ctxSize: Number(shortForm[2]),
61
+ ctxSize: Number(shortForm[2])
62
62
  };
63
63
  }
64
64
  return {};
@@ -1,5 +1,5 @@
1
- import type { FinetuneRunParams, FinetuneRunRequest, FinetuneProgress, FinetuneRequest, FinetuneResult, FinetuneStatus, FinetuneGetStateRequest } from "../../../../../schemas/index";
2
- type FinetuneOptions = FinetuneRunParams["options"];
1
+ import type { FinetuneRunParams, FinetuneRunRequest, FinetuneProgress, FinetuneRequest, FinetuneResult, FinetuneStatus, FinetuneGetStateRequest } from '../../../../../schemas/index';
2
+ type FinetuneOptions = FinetuneRunParams['options'];
3
3
  export declare function clearFinetuneRuntimeState(modelId: string): void;
4
4
  export declare function getFinetuneStateFromCheckpoints(options: FinetuneOptions): FinetuneStatus;
5
5
  export declare function startFinetune(request: FinetuneRunRequest, onProgress?: (progress: FinetuneProgress) => void): Promise<FinetuneResult>;
@@ -50,13 +50,13 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import fs from "bare-fs";
54
- import { getModel, } from "../../../registry/model-registry.js";
55
- import { CompletionFailedError, } from "../../../../../utils/errors-server.js";
56
- import { getRequestRegistry, withRequestContext, } from "../../../runtime/index.js";
57
- import { generateServerRequestId } from "../../../runtime/request-id.js";
58
- import { getServerLogger } from "../../../../../logging/index.js";
59
- const PAUSE_CHECKPOINT_PREFIX = "pause_checkpoint_step_";
53
+ import fs from 'bare-fs';
54
+ import { getModel } from '../../../registry/model-registry.js';
55
+ import { CompletionFailedError } from '../../../../../utils/errors-server.js';
56
+ import { getRequestRegistry, withRequestContext } from '../../../runtime/index.js';
57
+ import { generateServerRequestId } from '../../../runtime/request-id.js';
58
+ import { getServerLogger } from '../../../../../logging/index.js';
59
+ const PAUSE_CHECKPOINT_PREFIX = 'pause_checkpoint_step_';
60
60
  const finetuneRuntimeState = new Set();
61
61
  function getRunningFinetuneState(modelId) {
62
62
  return finetuneRuntimeState.has(modelId);
@@ -68,35 +68,35 @@ export function clearFinetuneRuntimeState(modelId) {
68
68
  finetuneRuntimeState.delete(modelId);
69
69
  }
70
70
  export function getFinetuneStateFromCheckpoints(options) {
71
- const checkpointDirectory = options.checkpointSaveDir ?? "./checkpoints";
71
+ const checkpointDirectory = options.checkpointSaveDir ?? './checkpoints';
72
72
  if (!fs.existsSync(checkpointDirectory)) {
73
- return "IDLE";
73
+ return 'IDLE';
74
74
  }
75
75
  try {
76
76
  const entries = fs.readdirSync(checkpointDirectory);
77
77
  for (const entry of entries) {
78
- if (typeof entry !== "string") {
78
+ if (typeof entry !== 'string') {
79
79
  continue;
80
80
  }
81
81
  if (entry.startsWith(PAUSE_CHECKPOINT_PREFIX)) {
82
- return "PAUSED";
82
+ return 'PAUSED';
83
83
  }
84
84
  }
85
85
  }
86
86
  catch (error) {
87
87
  throw new CompletionFailedError(`Failed to inspect finetune checkpoints in "${checkpointDirectory}"`, error);
88
88
  }
89
- return "IDLE";
89
+ return 'IDLE';
90
90
  }
91
91
  function validateExplicitFinetuneOperation(request) {
92
92
  if (!request.operation) {
93
93
  return;
94
94
  }
95
95
  const state = getFinetuneStateFromCheckpoints(request.options);
96
- if (request.operation === "start" && state === "PAUSED") {
96
+ if (request.operation === 'start' && state === 'PAUSED') {
97
97
  throw new CompletionFailedError(`Model "${request.modelId}" has a paused finetune checkpoint; resume it or cancel it before starting from scratch`);
98
98
  }
99
- if (request.operation === "resume" && state === "IDLE") {
99
+ if (request.operation === 'resume' && state === 'IDLE') {
100
100
  throw new CompletionFailedError(`Model "${request.modelId}" has no paused finetune checkpoint to resume`);
101
101
  }
102
102
  }
@@ -117,8 +117,8 @@ export async function startFinetune(request, onProgress) {
117
117
  const ctx = __addDisposableResource(env_1, await getRequestRegistry()
118
118
  .begin({
119
119
  requestId: request.requestId ?? generateServerRequestId(),
120
- kind: "finetune",
121
- modelId: request.modelId,
120
+ kind: 'finetune',
121
+ modelId: request.modelId
122
122
  })
123
123
  .catch((err) => {
124
124
  if (!wasRunning)
@@ -136,24 +136,24 @@ export async function startFinetune(request, onProgress) {
136
136
  requestLogger.warn(`[cancel] model.cancel() rejected during abort for modelId=${request.modelId}: ${err instanceof Error ? err.message : String(err)}`);
137
137
  });
138
138
  };
139
- ctx.signal.addEventListener("abort", onAbort, { once: true });
139
+ ctx.signal.addEventListener('abort', onAbort, { once: true });
140
140
  if (ctx.signal.aborted)
141
141
  onAbort();
142
142
  ctx.scope.defer(() => {
143
- ctx.signal.removeEventListener("abort", onAbort);
143
+ ctx.signal.removeEventListener('abort', onAbort);
144
144
  });
145
145
  const handle = await model.finetune(request.options);
146
146
  if (onProgress) {
147
- handle.on("stats", onProgress);
147
+ handle.on('stats', onProgress);
148
148
  ctx.scope.defer(() => {
149
- handle.removeListener("stats", onProgress);
149
+ handle.removeListener('stats', onProgress);
150
150
  });
151
151
  }
152
152
  const result = await handle.await();
153
153
  return {
154
- type: "finetune",
154
+ type: 'finetune',
155
155
  status: result.status,
156
- stats: result.stats,
156
+ stats: result.stats
157
157
  };
158
158
  }
159
159
  catch (e_1) {
@@ -170,8 +170,8 @@ export async function pauseFinetune(modelId) {
170
170
  const model = getModel(modelId);
171
171
  await model.pause();
172
172
  return {
173
- type: "finetune",
174
- status: "PAUSED",
173
+ type: 'finetune',
174
+ status: 'PAUSED'
175
175
  };
176
176
  }
177
177
  // Routes cancellation through the registry; the model.cancel() forward is
@@ -179,31 +179,31 @@ export async function pauseFinetune(modelId) {
179
179
  export function cancelFinetune(modelId) {
180
180
  // cancel() is synchronous; Promise.resolve keeps the Promise<FinetuneResult>
181
181
  // return shape.
182
- getRequestRegistry().cancel({ modelId, kind: "finetune" });
182
+ getRequestRegistry().cancel({ modelId, kind: 'finetune' });
183
183
  return Promise.resolve({
184
- type: "finetune",
185
- status: "CANCELLED",
184
+ type: 'finetune',
185
+ status: 'CANCELLED'
186
186
  });
187
187
  }
188
188
  export function getFinetuneState(params) {
189
189
  const runtimeState = getRunningFinetuneState(params.modelId);
190
190
  return {
191
- type: "finetune",
192
- status: runtimeState ? "RUNNING" : getFinetuneStateFromCheckpoints(params.options),
191
+ type: 'finetune',
192
+ status: runtimeState ? 'RUNNING' : getFinetuneStateFromCheckpoints(params.options)
193
193
  };
194
194
  }
195
195
  export async function finetune(request, onProgress) {
196
196
  if (request.operation === undefined ||
197
- request.operation === "start" ||
198
- request.operation === "resume") {
197
+ request.operation === 'start' ||
198
+ request.operation === 'resume') {
199
199
  return startFinetune(request, onProgress);
200
200
  }
201
201
  switch (request.operation) {
202
- case "getState":
202
+ case 'getState':
203
203
  return getFinetuneState(request);
204
- case "pause":
204
+ case 'pause':
205
205
  return pauseFinetune(request.modelId);
206
- case "cancel":
206
+ case 'cancel':
207
207
  return cancelFinetune(request.modelId);
208
208
  }
209
209
  }
@@ -1,6 +1,6 @@
1
- import { generateConfigHash } from "../../../ops/kv-cache-utils";
2
- import type { CacheMessage } from "../../../../utils/index";
3
- import type { Logger } from "../../../../../logging/types";
1
+ import { generateConfigHash } from '../../../ops/kv-cache-utils';
2
+ import type { CacheMessage } from '../../../../utils/index';
3
+ import type { Logger } from '../../../../../logging/types';
4
4
  export interface TurnHandle {
5
5
  /** Resolved on-disk cache file path the addon will read from / write to. */
6
6
  readonly cachePath: string;
@@ -12,7 +12,7 @@ export interface TurnHandle {
12
12
  readonly savedCount: number;
13
13
  }
14
14
  export interface BeginCustomTurnInput {
15
- kind: "custom";
15
+ kind: 'custom';
16
16
  /** User-provided session key (`completion({ kvCache: "session-a" })`). */
17
17
  customKey: string;
18
18
  /** Hash of system prompt + (static) tool names. */
@@ -26,7 +26,7 @@ export interface BeginCustomTurnInput {
26
26
  primeIfMissing: (cachePath: string) => Promise<void>;
27
27
  }
28
28
  export interface BeginAutoTurnInput {
29
- kind: "auto";
29
+ kind: 'auto';
30
30
  /** Hash of system prompt + (static) tool names. */
31
31
  configHash: string;
32
32
  /** Conversation history used to compute the pre-response cache key. */
@@ -36,12 +36,12 @@ export interface BeginAutoTurnInput {
36
36
  }
37
37
  export type BeginTurnInput = BeginCustomTurnInput | BeginAutoTurnInput;
38
38
  export interface StaticCommitResult {
39
- kind: "static";
39
+ kind: 'static';
40
40
  /** `history.length + 1` — recorded at the turn's current `cachePath`. */
41
41
  messageCount: number;
42
42
  }
43
43
  export interface AutoRenameCommitResult {
44
- kind: "autoRename";
44
+ kind: 'autoRename';
45
45
  /**
46
46
  * Destination path the addon's pre-response cache file should be
47
47
  * renamed to (computed from `cacheMessages + responseText`). The