@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
@@ -9,12 +9,12 @@
9
9
  * prebuilds are arch-specific. Build darwin-arm64 and darwin-x64 separately.
10
10
  */
11
11
 
12
- "use strict";
12
+ 'use strict'
13
13
 
14
- const { PluginBase } = require("@electron-forge/plugin-base");
15
- const { createRequire } = require("module");
16
- const path = require("path");
17
- const fs = require("fs");
14
+ const { PluginBase } = require('@electron-forge/plugin-base')
15
+ const { createRequire } = require('module')
16
+ const path = require('path')
17
+ const fs = require('fs')
18
18
 
19
19
  // ============================================
20
20
  // Errors
@@ -26,9 +26,9 @@ const fs = require("fs");
26
26
  */
27
27
  class QvacForgePluginError extends Error {
28
28
  constructor(message) {
29
- super(message);
30
- this.name = "QvacForgePluginError";
31
- this.stack = `${this.name}: ${this.message}`;
29
+ super(message)
30
+ this.name = 'QvacForgePluginError'
31
+ this.stack = `${this.name}: ${this.message}`
32
32
  }
33
33
  }
34
34
 
@@ -36,84 +36,79 @@ class QvacForgePluginError extends Error {
36
36
  // Logger
37
37
  // ============================================
38
38
 
39
- const PREFIX = "[qvac:electron-forge]";
39
+ const PREFIX = '[qvac:electron-forge]'
40
40
 
41
- const EXPECTED_FS_ERROR_CODES = new Set([
42
- "ENOENT",
43
- "EACCES",
44
- "EPERM",
45
- "ENOTDIR",
46
- ]);
41
+ const EXPECTED_FS_ERROR_CODES = new Set(['ENOENT', 'EACCES', 'EPERM', 'ENOTDIR'])
47
42
 
48
43
  const LOG_LEVELS = {
49
44
  off: 0,
50
45
  error: 1,
51
46
  warn: 2,
52
47
  info: 3,
53
- debug: 4,
54
- };
48
+ debug: 4
49
+ }
55
50
 
56
51
  function getDefaultLevel() {
57
- const level = process.env.QVAC_LOG_LEVEL?.toLowerCase();
58
- return level && level in LOG_LEVELS ? level : "info";
52
+ const level = process.env.QVAC_LOG_LEVEL?.toLowerCase()
53
+ return level && level in LOG_LEVELS ? level : 'info'
59
54
  }
60
55
 
61
- let currentLevel = LOG_LEVELS[getDefaultLevel()];
56
+ let currentLevel = LOG_LEVELS[getDefaultLevel()]
62
57
 
63
58
  function setLogLevel(level) {
64
59
  if (!(level in LOG_LEVELS)) {
65
60
  console.warn(
66
- `${PREFIX} Invalid log level "${level}", using "info". Valid: ${Object.keys(LOG_LEVELS).join(", ")}`,
67
- );
68
- currentLevel = LOG_LEVELS.info;
69
- return;
61
+ `${PREFIX} Invalid log level "${level}", using "info". Valid: ${Object.keys(LOG_LEVELS).join(', ')}`
62
+ )
63
+ currentLevel = LOG_LEVELS.info
64
+ return
70
65
  }
71
- currentLevel = LOG_LEVELS[level];
66
+ currentLevel = LOG_LEVELS[level]
72
67
  }
73
68
 
74
69
  const logger = {
75
70
  error(msg) {
76
- if (currentLevel >= LOG_LEVELS.error) console.error(PREFIX, msg);
71
+ if (currentLevel >= LOG_LEVELS.error) console.error(PREFIX, msg)
77
72
  },
78
73
  warn(msg) {
79
- if (currentLevel >= LOG_LEVELS.warn) console.warn(PREFIX, msg);
74
+ if (currentLevel >= LOG_LEVELS.warn) console.warn(PREFIX, msg)
80
75
  },
81
76
  info(msg) {
82
- if (currentLevel >= LOG_LEVELS.info) console.log(PREFIX, msg);
77
+ if (currentLevel >= LOG_LEVELS.info) console.log(PREFIX, msg)
83
78
  },
84
79
  debug(msg) {
85
- if (currentLevel >= LOG_LEVELS.debug) console.log(PREFIX, msg);
80
+ if (currentLevel >= LOG_LEVELS.debug) console.log(PREFIX, msg)
86
81
  },
87
82
  fsError(context, err) {
88
- if (err && EXPECTED_FS_ERROR_CODES.has(err.code)) return;
89
- this.warn(`Unexpected error in ${context}: ${err?.message || err}`);
90
- },
91
- };
83
+ if (err && EXPECTED_FS_ERROR_CODES.has(err.code)) return
84
+ this.warn(`Unexpected error in ${context}: ${err?.message || err}`)
85
+ }
86
+ }
92
87
 
93
88
  // ============================================
94
89
  // SDK Package Resolution (for addon discovery)
95
90
  // ============================================
96
91
 
97
- const SDK_PACKAGE_NAMES = ["@qvac/sdk"];
92
+ const SDK_PACKAGE_NAMES = ['@qvac/sdk']
98
93
 
99
94
  function resolveSDKPackage(startDir) {
100
95
  for (const name of SDK_PACKAGE_NAMES) {
101
96
  try {
102
- const pkgPath = require.resolve(`${name}/package`, { paths: [startDir] });
103
- return { name, path: pkgPath };
97
+ const pkgPath = require.resolve(`${name}/package`, { paths: [startDir] })
98
+ return { name, path: pkgPath }
104
99
  } catch {
105
100
  // Try next package name
106
101
  }
107
102
  }
108
- return null;
103
+ return null
109
104
  }
110
105
 
111
106
  function isDir(dirPath) {
112
107
  try {
113
- return fs.statSync(dirPath).isDirectory();
108
+ return fs.statSync(dirPath).isDirectory()
114
109
  } catch (err) {
115
- logger.fsError("isDir", err);
116
- return false;
110
+ logger.fsError('isDir', err)
111
+ return false
117
112
  }
118
113
  }
119
114
 
@@ -122,33 +117,32 @@ function isDir(dirPath) {
122
117
  * Handles monorepos, workspaces, and hoisted layouts.
123
118
  */
124
119
  function findQvacScopeDir(startDir) {
125
- const sdkPkg = resolveSDKPackage(startDir);
120
+ const sdkPkg = resolveSDKPackage(startDir)
126
121
  if (!sdkPkg) {
127
122
  throw new QvacForgePluginError(
128
- `Could not find QVAC SDK. ` +
129
- `Ensure one of [${SDK_PACKAGE_NAMES.join(", ")}] is installed.`,
130
- );
123
+ `Could not find QVAC SDK. ` + `Ensure one of [${SDK_PACKAGE_NAMES.join(', ')}] is installed.`
124
+ )
131
125
  }
132
126
 
133
- logger.debug(`Resolved SDK package: ${sdkPkg.name}`);
127
+ logger.debug(`Resolved SDK package: ${sdkPkg.name}`)
134
128
 
135
- const baseDir = path.resolve(startDir);
136
- const req = createRequire(path.join(baseDir, "package.json"));
137
- const nodeModulesDirs = req.resolve.paths(sdkPkg.name) || [];
129
+ const baseDir = path.resolve(startDir)
130
+ const req = createRequire(path.join(baseDir, 'package.json'))
131
+ const nodeModulesDirs = req.resolve.paths(sdkPkg.name) || []
138
132
 
139
133
  for (const nodeModulesDir of nodeModulesDirs) {
140
- const scopeDir = path.join(nodeModulesDir, "@qvac");
141
- if (isDir(scopeDir)) return scopeDir;
134
+ const scopeDir = path.join(nodeModulesDir, '@qvac')
135
+ if (isDir(scopeDir)) return scopeDir
142
136
  }
143
137
 
144
138
  // Fallback: derive from SDK path for flat node_modules layouts.
145
- const derived = path.dirname(path.dirname(sdkPkg.path));
146
- if (path.basename(derived) === "@qvac" && isDir(derived)) return derived;
139
+ const derived = path.dirname(path.dirname(sdkPkg.path))
140
+ if (path.basename(derived) === '@qvac' && isDir(derived)) return derived
147
141
 
148
142
  throw new QvacForgePluginError(
149
143
  `Could not find @qvac packages. ` +
150
- `Ensure dependencies are installed under node_modules (PnP is not supported).`,
151
- );
144
+ `Ensure dependencies are installed under node_modules (PnP is not supported).`
145
+ )
152
146
  }
153
147
 
154
148
  /**
@@ -156,43 +150,43 @@ function findQvacScopeDir(startDir) {
156
150
  * for packages that have `addon: true` in package.json.
157
151
  */
158
152
  function discoverQvacAddonPackages(projectDir) {
159
- let scopeDir;
153
+ let scopeDir
160
154
  try {
161
- scopeDir = findQvacScopeDir(projectDir);
155
+ scopeDir = findQvacScopeDir(projectDir)
162
156
  } catch (err) {
163
- logger.warn(err.message);
164
- return [];
157
+ logger.warn(err.message)
158
+ return []
165
159
  }
166
160
 
167
- let entries;
161
+ let entries
168
162
  try {
169
- entries = fs.readdirSync(scopeDir);
163
+ entries = fs.readdirSync(scopeDir)
170
164
  } catch (err) {
171
- logger.fsError("discoverQvacAddonPackages", err);
172
- return [];
165
+ logger.fsError('discoverQvacAddonPackages', err)
166
+ return []
173
167
  }
174
168
 
175
- const discovered = [];
169
+ const discovered = []
176
170
 
177
171
  for (const name of entries) {
178
- const pkgDir = path.join(scopeDir, name);
179
- if (!isDir(pkgDir)) continue;
172
+ const pkgDir = path.join(scopeDir, name)
173
+ if (!isDir(pkgDir)) continue
180
174
 
181
- const pkgJsonPath = path.join(pkgDir, "package.json");
182
- if (!fs.existsSync(pkgJsonPath)) continue;
175
+ const pkgJsonPath = path.join(pkgDir, 'package.json')
176
+ if (!fs.existsSync(pkgJsonPath)) continue
183
177
 
184
178
  try {
185
- const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, "utf8"));
179
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'))
186
180
  if (pkg.addon === true) {
187
- discovered.push(`@qvac/${name}`);
181
+ discovered.push(`@qvac/${name}`)
188
182
  }
189
183
  } catch (err) {
190
- logger.warn(`Failed to parse ${pkgJsonPath}: ${err.message}`);
184
+ logger.warn(`Failed to parse ${pkgJsonPath}: ${err.message}`)
191
185
  }
192
186
  }
193
187
 
194
- discovered.sort();
195
- return discovered;
188
+ discovered.sort()
189
+ return discovered
196
190
  }
197
191
 
198
192
  /**
@@ -200,12 +194,12 @@ function discoverQvacAddonPackages(projectDir) {
200
194
  * Exposed for unit testing.
201
195
  */
202
196
  function diffAddons(installed, required) {
203
- const requiredSet = new Set(required);
204
- const exclusions = [];
197
+ const requiredSet = new Set(required)
198
+ const exclusions = []
205
199
  for (const pkg of installed) {
206
- if (!requiredSet.has(pkg)) exclusions.push(pkg);
200
+ if (!requiredSet.has(pkg)) exclusions.push(pkg)
207
201
  }
208
- return exclusions;
202
+ return exclusions
209
203
  }
210
204
 
211
205
  /**
@@ -213,26 +207,24 @@ function diffAddons(installed, required) {
213
207
  * Logs include/exclude decisions for each discovered package.
214
208
  */
215
209
  function computeExclusions(required, projectDir) {
216
- const installed = discoverQvacAddonPackages(projectDir);
210
+ const installed = discoverQvacAddonPackages(projectDir)
217
211
 
218
212
  if (installed.length === 0) {
219
- logger.warn(
220
- "No @qvac addon packages discovered. Skipping addon exclusions.",
221
- );
222
- return [];
213
+ logger.warn('No @qvac addon packages discovered. Skipping addon exclusions.')
214
+ return []
223
215
  }
224
216
 
225
- const requiredSet = new Set(required);
226
- const exclusions = [];
217
+ const requiredSet = new Set(required)
218
+ const exclusions = []
227
219
  for (const pkg of installed) {
228
220
  if (requiredSet.has(pkg)) {
229
- logger.info(`Including required addon: ${pkg}`);
221
+ logger.info(`Including required addon: ${pkg}`)
230
222
  } else {
231
- logger.info(`Excluding unused addon: ${pkg}`);
232
- exclusions.push(pkg);
223
+ logger.info(`Excluding unused addon: ${pkg}`)
224
+ exclusions.push(pkg)
233
225
  }
234
226
  }
235
- return exclusions;
227
+ return exclusions
236
228
  }
237
229
 
238
230
  // ============================================
@@ -240,34 +232,27 @@ function computeExclusions(required, projectDir) {
240
232
  // ============================================
241
233
 
242
234
  /** Mobile prebuild patterns to always exclude in desktop builds. */
243
- const MOBILE_PREBUILD_PATTERNS = [
244
- /[\\/]prebuilds[\\/]android-/,
245
- /[\\/]prebuilds[\\/]ios-/,
246
- ];
235
+ const MOBILE_PREBUILD_PATTERNS = [/[\\/]prebuilds[\\/]android-/, /[\\/]prebuilds[\\/]ios-/]
247
236
 
248
237
  /** Forge's default output dir — always exclude to avoid recursive packaging. */
249
- const OUT_DIR_PATTERN = /^\/out\//;
238
+ const OUT_DIR_PATTERN = /^\/out\//
250
239
 
251
240
  function toArray(value) {
252
- if (value === undefined) return [];
253
- return Array.isArray(value) ? value : [value];
241
+ if (value === undefined) return []
242
+ return Array.isArray(value) ? value : [value]
254
243
  }
255
244
 
256
245
  function escapeRegExp(str) {
257
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
246
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
258
247
  }
259
248
 
260
249
  function createAddonIgnorePatterns(exclusions) {
261
- const patterns = [];
250
+ const patterns = []
262
251
  for (const addon of exclusions) {
263
- const parts = addon.split("/").map(escapeRegExp);
264
- patterns.push(
265
- new RegExp(
266
- `[\\\\/]node_modules[\\\\/]${parts.join("[\\\\/]")}([\\\\/]|$)`,
267
- ),
268
- );
269
- }
270
- return patterns;
252
+ const parts = addon.split('/').map(escapeRegExp)
253
+ patterns.push(new RegExp(`[\\\\/]node_modules[\\\\/]${parts.join('[\\\\/]')}([\\\\/]|$)`))
254
+ }
255
+ return patterns
271
256
  }
272
257
 
273
258
  /**
@@ -276,28 +261,28 @@ function createAddonIgnorePatterns(exclusions) {
276
261
  * ignore (function or regex array).
277
262
  */
278
263
  function createIgnore(exclusions, existingIgnore) {
279
- const addonIgnorePatterns = createAddonIgnorePatterns(exclusions);
264
+ const addonIgnorePatterns = createAddonIgnorePatterns(exclusions)
280
265
 
281
- if (typeof existingIgnore === "function") {
266
+ if (typeof existingIgnore === 'function') {
282
267
  return (filePath) => {
283
- if (existingIgnore(filePath)) return true;
284
- if (OUT_DIR_PATTERN.test(filePath)) return true;
268
+ if (existingIgnore(filePath)) return true
269
+ if (OUT_DIR_PATTERN.test(filePath)) return true
285
270
  for (const pattern of addonIgnorePatterns) {
286
- if (pattern.test(filePath)) return true;
271
+ if (pattern.test(filePath)) return true
287
272
  }
288
273
  for (const pattern of MOBILE_PREBUILD_PATTERNS) {
289
- if (pattern.test(filePath)) return true;
274
+ if (pattern.test(filePath)) return true
290
275
  }
291
- return false;
292
- };
276
+ return false
277
+ }
293
278
  }
294
279
 
295
280
  return [
296
281
  ...toArray(existingIgnore),
297
282
  OUT_DIR_PATTERN,
298
283
  ...MOBILE_PREBUILD_PATTERNS,
299
- ...addonIgnorePatterns,
300
- ];
284
+ ...addonIgnorePatterns
285
+ ]
301
286
  }
302
287
 
303
288
  // ============================================
@@ -312,112 +297,112 @@ function createIgnore(exclusions, existingIgnore) {
312
297
  * cross-platform prebuilds that would otherwise ship in the packaged app.
313
298
  */
314
299
  function findPrebuildsDirs(rootPath) {
315
- const results = [];
300
+ const results = []
316
301
 
317
302
  function walk(dir) {
318
- let entries;
303
+ let entries
319
304
  try {
320
- entries = fs.readdirSync(dir, { withFileTypes: true });
305
+ entries = fs.readdirSync(dir, { withFileTypes: true })
321
306
  } catch (err) {
322
- logger.fsError("findPrebuildsDirs", err);
323
- return;
307
+ logger.fsError('findPrebuildsDirs', err)
308
+ return
324
309
  }
325
310
 
326
311
  for (const entry of entries) {
327
- if (!entry.isDirectory()) continue;
328
- const fullPath = path.join(dir, entry.name);
312
+ if (!entry.isDirectory()) continue
313
+ const fullPath = path.join(dir, entry.name)
329
314
 
330
- if (entry.name === "prebuilds") {
331
- results.push(fullPath);
315
+ if (entry.name === 'prebuilds') {
316
+ results.push(fullPath)
332
317
  // Don't recurse into prebuilds — its children are arch-keyed leaves.
333
- continue;
318
+ continue
334
319
  }
335
320
 
336
- walk(fullPath);
321
+ walk(fullPath)
337
322
  }
338
323
  }
339
324
 
340
- walk(rootPath);
341
- return results;
325
+ walk(rootPath)
326
+ return results
342
327
  }
343
328
 
344
329
  function getDirSize(dirPath) {
345
- let size = 0;
330
+ let size = 0
346
331
 
347
332
  function walk(dir) {
348
- let entries;
333
+ let entries
349
334
  try {
350
- entries = fs.readdirSync(dir, { withFileTypes: true });
335
+ entries = fs.readdirSync(dir, { withFileTypes: true })
351
336
  } catch (err) {
352
- logger.fsError("getDirSize", err);
353
- return;
337
+ logger.fsError('getDirSize', err)
338
+ return
354
339
  }
355
340
 
356
341
  for (const entry of entries) {
357
- const fullPath = path.join(dir, entry.name);
342
+ const fullPath = path.join(dir, entry.name)
358
343
  if (entry.isDirectory()) {
359
- walk(fullPath);
344
+ walk(fullPath)
360
345
  } else {
361
346
  try {
362
- size += fs.statSync(fullPath).size;
347
+ size += fs.statSync(fullPath).size
363
348
  } catch (err) {
364
- logger.fsError("getDirSize.stat", err);
349
+ logger.fsError('getDirSize.stat', err)
365
350
  }
366
351
  }
367
352
  }
368
353
  }
369
354
 
370
- walk(dirPath);
371
- return size;
355
+ walk(dirPath)
356
+ return size
372
357
  }
373
358
 
374
359
  /** Prunes prebuilds for a given path, keeping only target platform-arch. */
375
360
  function prunePrebuildsForPath(buildPath, platform, arch) {
376
- const nodeModulesPath = path.join(buildPath, "node_modules");
361
+ const nodeModulesPath = path.join(buildPath, 'node_modules')
377
362
 
378
363
  if (!fs.existsSync(nodeModulesPath)) {
379
- logger.debug("No node_modules found, skipping prebuild pruning.");
380
- return { deleted: 0, bytes: 0 };
364
+ logger.debug('No node_modules found, skipping prebuild pruning.')
365
+ return { deleted: 0, bytes: 0 }
381
366
  }
382
367
 
383
- const keepPrefix = `${platform}-${arch}`;
384
- logger.debug(`Keeping prefix: ${keepPrefix}`);
368
+ const keepPrefix = `${platform}-${arch}`
369
+ logger.debug(`Keeping prefix: ${keepPrefix}`)
385
370
 
386
- const prebuildsDirs = findPrebuildsDirs(nodeModulesPath);
387
- let totalDeleted = 0;
388
- let totalBytes = 0;
371
+ const prebuildsDirs = findPrebuildsDirs(nodeModulesPath)
372
+ let totalDeleted = 0
373
+ let totalBytes = 0
389
374
 
390
375
  for (const prebuildsDir of prebuildsDirs) {
391
- let entries;
376
+ let entries
392
377
  try {
393
- entries = fs.readdirSync(prebuildsDir, { withFileTypes: true });
378
+ entries = fs.readdirSync(prebuildsDir, { withFileTypes: true })
394
379
  } catch (err) {
395
- logger.fsError("prunePrebuildsForPath", err);
396
- continue;
380
+ logger.fsError('prunePrebuildsForPath', err)
381
+ continue
397
382
  }
398
383
 
399
384
  for (const entry of entries) {
400
- if (!entry.isDirectory()) continue;
385
+ if (!entry.isDirectory()) continue
401
386
 
402
387
  // Prefix match catches musl variants etc. (e.g. linux-x64-musl).
403
- const shouldKeep = entry.name.startsWith(keepPrefix);
388
+ const shouldKeep = entry.name.startsWith(keepPrefix)
404
389
 
405
390
  if (!shouldKeep) {
406
- const fullPath = path.join(prebuildsDir, entry.name);
391
+ const fullPath = path.join(prebuildsDir, entry.name)
407
392
  try {
408
- const size = getDirSize(fullPath);
409
- totalBytes += size;
410
- fs.rmSync(fullPath, { recursive: true, force: true });
411
- totalDeleted++;
412
- logger.debug(`Deleted: ${entry.name}`);
393
+ const size = getDirSize(fullPath)
394
+ totalBytes += size
395
+ fs.rmSync(fullPath, { recursive: true, force: true })
396
+ totalDeleted++
397
+ logger.debug(`Deleted: ${entry.name}`)
413
398
  } catch (err) {
414
- logger.warn(`Failed to delete ${fullPath}: ${err.message}`);
399
+ logger.warn(`Failed to delete ${fullPath}: ${err.message}`)
415
400
  }
416
401
  }
417
402
  }
418
403
  }
419
404
 
420
- return { deleted: totalDeleted, bytes: totalBytes };
405
+ return { deleted: totalDeleted, bytes: totalBytes }
421
406
  }
422
407
 
423
408
  /**
@@ -428,31 +413,31 @@ function prunePrebuildsForPath(buildPath, platform, arch) {
428
413
  * the packaged tree matches the manifest exactly. Idempotent.
429
414
  */
430
415
  function removeExcludedAddonDirs(buildPath, exclusions) {
431
- const nodeModulesPath = path.join(buildPath, "node_modules");
416
+ const nodeModulesPath = path.join(buildPath, 'node_modules')
432
417
 
433
418
  if (!fs.existsSync(nodeModulesPath)) {
434
- return { removed: 0, bytes: 0 };
419
+ return { removed: 0, bytes: 0 }
435
420
  }
436
421
 
437
- let removed = 0;
438
- let bytes = 0;
422
+ let removed = 0
423
+ let bytes = 0
439
424
 
440
425
  for (const name of exclusions) {
441
- const pkgDir = path.join(nodeModulesPath, name);
442
- if (!fs.existsSync(pkgDir)) continue;
426
+ const pkgDir = path.join(nodeModulesPath, name)
427
+ if (!fs.existsSync(pkgDir)) continue
443
428
 
444
429
  try {
445
- const size = getDirSize(pkgDir);
446
- bytes += size;
447
- fs.rmSync(pkgDir, { recursive: true, force: true });
448
- removed += 1;
449
- logger.debug(`Removed excluded addon dir: ${name}`);
430
+ const size = getDirSize(pkgDir)
431
+ bytes += size
432
+ fs.rmSync(pkgDir, { recursive: true, force: true })
433
+ removed += 1
434
+ logger.debug(`Removed excluded addon dir: ${name}`)
450
435
  } catch (err) {
451
- logger.warn(`Failed to remove ${pkgDir}: ${err.message}`);
436
+ logger.warn(`Failed to remove ${pkgDir}: ${err.message}`)
452
437
  }
453
438
  }
454
439
 
455
- return { removed, bytes };
440
+ return { removed, bytes }
456
441
  }
457
442
 
458
443
  // ============================================
@@ -473,19 +458,19 @@ function removeExcludedAddonDirs(buildPath, exclusions) {
473
458
  */
474
459
  async function loadSdkCommands() {
475
460
  try {
476
- return await import("@qvac/sdk/commands");
461
+ return await import('@qvac/sdk/commands')
477
462
  } catch (err) {
478
463
  throw new QvacForgePluginError(
479
464
  `Could not load @qvac/sdk/commands: ${err?.message || err}. ` +
480
465
  `Ensure @qvac/sdk is installed and exposes the ./commands subpath ` +
481
- `(requires SDK >= 0.12.0).`,
482
- );
466
+ `(requires SDK >= 0.12.0).`
467
+ )
483
468
  }
484
469
  }
485
470
 
486
471
  /** Defaults to verifying against the host running Forge. */
487
472
  function defaultHosts() {
488
- return [`${process.platform}-${process.arch}`];
473
+ return [`${process.platform}-${process.arch}`]
489
474
  }
490
475
 
491
476
  /**
@@ -499,9 +484,7 @@ function defaultHosts() {
499
484
  * @returns {string[]}
500
485
  */
501
486
  function resolveHosts(explicitHosts) {
502
- return Array.isArray(explicitHosts) && explicitHosts.length > 0
503
- ? explicitHosts
504
- : defaultHosts();
487
+ return Array.isArray(explicitHosts) && explicitHosts.length > 0 ? explicitHosts : defaultHosts()
505
488
  }
506
489
 
507
490
  /**
@@ -519,38 +502,38 @@ function resolveHosts(explicitHosts) {
519
502
  * @returns {string[]|null}
520
503
  */
521
504
  function detectTargetHosts(forgeConfig, argv = process.argv.slice(2)) {
522
- let platform = forgeConfig?.packagerConfig?.platform || null;
523
- let archSpec = forgeConfig?.packagerConfig?.arch || null;
505
+ let platform = forgeConfig?.packagerConfig?.platform || null
506
+ let archSpec = forgeConfig?.packagerConfig?.arch || null
524
507
 
525
508
  for (let i = 0; i < argv.length; i += 1) {
526
- const arg = argv[i];
509
+ const arg = argv[i]
527
510
 
528
- if (arg === "--platform" || arg === "-p") {
529
- platform = argv[i + 1] || platform;
530
- continue;
511
+ if (arg === '--platform' || arg === '-p') {
512
+ platform = argv[i + 1] || platform
513
+ continue
531
514
  }
532
- if (typeof arg === "string" && arg.startsWith("--platform=")) {
533
- platform = arg.slice("--platform=".length) || platform;
534
- continue;
515
+ if (typeof arg === 'string' && arg.startsWith('--platform=')) {
516
+ platform = arg.slice('--platform='.length) || platform
517
+ continue
535
518
  }
536
- if (arg === "--arch" || arg === "-a") {
537
- archSpec = argv[i + 1] || archSpec;
538
- continue;
519
+ if (arg === '--arch' || arg === '-a') {
520
+ archSpec = argv[i + 1] || archSpec
521
+ continue
539
522
  }
540
- if (typeof arg === "string" && arg.startsWith("--arch=")) {
541
- archSpec = arg.slice("--arch=".length) || archSpec;
523
+ if (typeof arg === 'string' && arg.startsWith('--arch=')) {
524
+ archSpec = arg.slice('--arch='.length) || archSpec
542
525
  }
543
526
  }
544
527
 
545
- if (!platform && !archSpec) return null;
528
+ if (!platform && !archSpec) return null
546
529
 
547
- const p = platform || process.platform;
530
+ const p = platform || process.platform
548
531
  const archs = (archSpec || process.arch)
549
- .split(",")
532
+ .split(',')
550
533
  .map((s) => s.trim())
551
- .filter(Boolean);
534
+ .filter(Boolean)
552
535
 
553
- return archs.length > 0 ? archs.map((a) => `${p}-${a}`) : null;
536
+ return archs.length > 0 ? archs.map((a) => `${p}-${a}`) : null
554
537
  }
555
538
 
556
539
  /**
@@ -566,61 +549,52 @@ function detectTargetHosts(forgeConfig, argv = process.argv.slice(2)) {
566
549
  * @returns {Promise<{ addons: string[], bundlePath: string, manifestPath: string }>}
567
550
  */
568
551
  async function runBundleAndVerify(commands, projectDir, options) {
569
- const { bundleSdk, verifyBundle, hasErrors, formatVerifyBundleResult } =
570
- commands;
552
+ const { bundleSdk, verifyBundle, hasErrors, formatVerifyBundleResult } = commands
571
553
 
572
- const hosts = resolveHosts(options.hosts);
554
+ const hosts = resolveHosts(options.hosts)
573
555
 
574
- logger.info(`Running bundleSdk (hosts: ${hosts.join(", ")})...`);
575
- let bundleResult;
556
+ logger.info(`Running bundleSdk (hosts: ${hosts.join(', ')})...`)
557
+ let bundleResult
576
558
  try {
577
- const bundleOpts = { projectRoot: projectDir, hosts };
578
- if (options.configPath) bundleOpts.configPath = options.configPath;
579
- bundleResult = await bundleSdk(bundleOpts);
559
+ const bundleOpts = { projectRoot: projectDir, hosts }
560
+ if (options.configPath) bundleOpts.configPath = options.configPath
561
+ bundleResult = await bundleSdk(bundleOpts)
580
562
  } catch (err) {
581
- throw new QvacForgePluginError(
582
- `bundleSdk failed: ${err?.message || err}`,
583
- );
563
+ throw new QvacForgePluginError(`bundleSdk failed: ${err?.message || err}`)
584
564
  }
585
565
 
586
- const addonCount = bundleResult.addons.length;
587
- logger.info(
588
- `bundleSdk: ${addonCount} native addon${addonCount === 1 ? "" : "s"} in bundle`,
589
- );
566
+ const addonCount = bundleResult.addons.length
567
+ logger.info(`bundleSdk: ${addonCount} native addon${addonCount === 1 ? '' : 's'} in bundle`)
590
568
 
591
- logger.info(`Running verifyBundle (hosts: ${hosts.join(", ")})...`);
592
- let verifyResult;
569
+ logger.info(`Running verifyBundle (hosts: ${hosts.join(', ')})...`)
570
+ let verifyResult
593
571
  try {
594
572
  const verifyOpts = {
595
573
  projectRoot: projectDir,
596
574
  addonsSource: bundleResult.bundlePath,
597
- hosts,
598
- };
599
- if (options.configPath) verifyOpts.configPath = options.configPath;
600
- verifyResult = await verifyBundle(verifyOpts);
575
+ hosts
576
+ }
577
+ if (options.configPath) verifyOpts.configPath = options.configPath
578
+ verifyResult = await verifyBundle(verifyOpts)
601
579
  } catch (err) {
602
- throw new QvacForgePluginError(
603
- `verifyBundle threw: ${err?.message || err}`,
604
- );
580
+ throw new QvacForgePluginError(`verifyBundle threw: ${err?.message || err}`)
605
581
  }
606
582
 
607
583
  if (hasErrors(verifyResult)) {
608
584
  throw new QvacForgePluginError(
609
- `verifyBundle reported errors:\n${formatVerifyBundleResult(verifyResult)}`,
610
- );
585
+ `verifyBundle reported errors:\n${formatVerifyBundleResult(verifyResult)}`
586
+ )
611
587
  }
612
588
 
613
589
  if (verifyResult.issues.length > 0) {
614
- logger.warn(
615
- `verifyBundle produced warnings:\n${formatVerifyBundleResult(verifyResult)}`,
616
- );
590
+ logger.warn(`verifyBundle produced warnings:\n${formatVerifyBundleResult(verifyResult)}`)
617
591
  } else {
618
592
  logger.info(
619
- `verifyBundle: ${verifyResult.addons.length} addon${verifyResult.addons.length === 1 ? "" : "s"} OK`,
620
- );
593
+ `verifyBundle: ${verifyResult.addons.length} addon${verifyResult.addons.length === 1 ? '' : 's'} OK`
594
+ )
621
595
  }
622
596
 
623
- return bundleResult;
597
+ return bundleResult
624
598
  }
625
599
 
626
600
  // ============================================
@@ -628,7 +602,7 @@ async function runBundleAndVerify(commands, projectDir, options) {
628
602
  // ============================================
629
603
 
630
604
  class QvacForgePlugin extends PluginBase {
631
- name = "qvac";
605
+ name = 'qvac'
632
606
 
633
607
  /**
634
608
  * @param {object} [config]
@@ -638,45 +612,43 @@ class QvacForgePlugin extends PluginBase {
638
612
  * @param {"off"|"error"|"warn"|"info"|"debug"} [config.logLevel]
639
613
  */
640
614
  constructor(config = {}) {
641
- super(config);
642
- this.projectDir = config.projectDir || process.cwd();
643
- this.configPath = config.configPath || null;
644
- this.hosts = Array.isArray(config.hosts) ? config.hosts : null;
615
+ super(config)
616
+ this.projectDir = config.projectDir || process.cwd()
617
+ this.configPath = config.configPath || null
618
+ this.hosts = Array.isArray(config.hosts) ? config.hosts : null
645
619
 
646
- if (config.logLevel) setLogLevel(config.logLevel);
620
+ if (config.logLevel) setLogLevel(config.logLevel)
647
621
 
648
622
  // Cache for resolveForgeConfig double-fire (package + make).
649
- this._cache = null;
650
- this._pruneHook = null;
623
+ this._cache = null
624
+ this._pruneHook = null
651
625
 
652
- logger.debug("QvacForgePlugin initialized");
653
- logger.debug(`Project directory: ${this.projectDir}`);
626
+ logger.debug('QvacForgePlugin initialized')
627
+ logger.debug(`Project directory: ${this.projectDir}`)
654
628
  }
655
629
 
656
630
  getHooks() {
657
631
  return {
658
- resolveForgeConfig: this.configurePackager.bind(this),
659
- };
632
+ resolveForgeConfig: this.configurePackager.bind(this)
633
+ }
660
634
  }
661
635
 
662
636
  async configurePackager(forgeConfig) {
663
- logger.info("Configuring packager for QVAC...");
637
+ logger.info('Configuring packager for QVAC...')
664
638
 
665
639
  if (!forgeConfig.packagerConfig) {
666
- forgeConfig.packagerConfig = {};
640
+ forgeConfig.packagerConfig = {}
667
641
  }
668
642
 
669
643
  // 1. Block macOS universal builds early.
670
- this.checkForUniversalArch(forgeConfig);
644
+ this.checkForUniversalArch(forgeConfig)
671
645
 
672
646
  // 2. Force asar: false (Bare worker can't load from asar). Truthy check
673
647
  // catches both `asar: true` and `asar: { unpack: ... }` object configs.
674
648
  if (forgeConfig.packagerConfig.asar) {
675
- logger.warn(
676
- "asar is enabled — Bare worker may fail to load. Overriding to false.",
677
- );
649
+ logger.warn('asar is enabled — Bare worker may fail to load. Overriding to false.')
678
650
  }
679
- forgeConfig.packagerConfig.asar = false;
651
+ forgeConfig.packagerConfig.asar = false
680
652
 
681
653
  // 3. Bundle + verify (cached across resolveForgeConfig invocations).
682
654
  // `hosts` resolution: explicit config wins, then CLI/config-derived
@@ -685,35 +657,25 @@ class QvacForgePlugin extends PluginBase {
685
657
  // verifyBundle (asserts prebuild availability) — passing different
686
658
  // sets silently produces inconsistent builds.
687
659
  if (this._cache === null) {
688
- const detected = this.hosts ? null : detectTargetHosts(forgeConfig);
660
+ const detected = this.hosts ? null : detectTargetHosts(forgeConfig)
689
661
  if (detected && !this.hosts) {
690
- logger.info(`Detected target hosts from CLI/config: ${detected.join(", ")}`);
662
+ logger.info(`Detected target hosts from CLI/config: ${detected.join(', ')}`)
691
663
  }
692
- const commands = await loadSdkCommands();
693
- const bundleResult = await runBundleAndVerify(
694
- commands,
695
- this.projectDir,
696
- {
697
- configPath: this.configPath,
698
- hosts: this.hosts || detected,
699
- },
700
- );
701
- const exclusions = computeExclusions(
702
- bundleResult.addons,
703
- this.projectDir,
704
- );
705
- this._cache = { bundleResult, exclusions };
664
+ const commands = await loadSdkCommands()
665
+ const bundleResult = await runBundleAndVerify(commands, this.projectDir, {
666
+ configPath: this.configPath,
667
+ hosts: this.hosts || detected
668
+ })
669
+ const exclusions = computeExclusions(bundleResult.addons, this.projectDir)
670
+ this._cache = { bundleResult, exclusions }
706
671
  } else {
707
- logger.debug("Reusing cached bundleSdk result.");
672
+ logger.debug('Reusing cached bundleSdk result.')
708
673
  }
709
- const { exclusions } = this._cache;
674
+ const { exclusions } = this._cache
710
675
 
711
676
  // 4. Merge ignore patterns to exclude unused addons + mobile prebuilds.
712
- const existingIgnore = forgeConfig.packagerConfig.ignore;
713
- forgeConfig.packagerConfig.ignore = createIgnore(
714
- exclusions,
715
- existingIgnore,
716
- );
677
+ const existingIgnore = forgeConfig.packagerConfig.ignore
678
+ forgeConfig.packagerConfig.ignore = createIgnore(exclusions, existingIgnore)
717
679
 
718
680
  // 5. afterPrune hook for prebuild pruning + excluded addon dir cleanup.
719
681
  // Forge calls resolveForgeConfig multiple times during `make` (once for
@@ -721,18 +683,15 @@ class QvacForgePlugin extends PluginBase {
721
683
  // must not append the hook on each pass, otherwise Packager's afterPrune
722
684
  // fires it N times and we walk the already-pruned tree on every repeat.
723
685
  if (this._pruneHook === null) {
724
- this._pruneHook = this.createPruneHook(exclusions);
686
+ this._pruneHook = this.createPruneHook(exclusions)
725
687
  }
726
- const existingAfterPrune = toArray(forgeConfig.packagerConfig.afterPrune);
688
+ const existingAfterPrune = toArray(forgeConfig.packagerConfig.afterPrune)
727
689
  if (!existingAfterPrune.includes(this._pruneHook)) {
728
- forgeConfig.packagerConfig.afterPrune = [
729
- ...existingAfterPrune,
730
- this._pruneHook,
731
- ];
690
+ forgeConfig.packagerConfig.afterPrune = [...existingAfterPrune, this._pruneHook]
732
691
  }
733
692
 
734
- logger.debug("Packager configuration complete");
735
- return forgeConfig;
693
+ logger.debug('Packager configuration complete')
694
+ return forgeConfig
736
695
  }
737
696
 
738
697
  /**
@@ -749,58 +708,56 @@ class QvacForgePlugin extends PluginBase {
749
708
  const universalMessage =
750
709
  `macOS universal packaging is not supported by @qvac/sdk/electron-forge. ` +
751
710
  `Native addon prebuilds are architecture-specific and this plugin currently only supports single-arch packaging. ` +
752
- `Build separate darwin-arm64 and darwin-x64 packages instead.`;
711
+ `Build separate darwin-arm64 and darwin-x64 packages instead.`
753
712
 
754
- if (forgeConfig?.packagerConfig?.arch === "universal") {
755
- throw new QvacForgePluginError(universalMessage);
713
+ if (forgeConfig?.packagerConfig?.arch === 'universal') {
714
+ throw new QvacForgePluginError(universalMessage)
756
715
  }
757
716
 
758
- const args = process.argv.slice(2);
759
- let arch = null;
717
+ const args = process.argv.slice(2)
718
+ let arch = null
760
719
  for (let i = 0; i < args.length; i += 1) {
761
- const arg = args[i];
720
+ const arg = args[i]
762
721
 
763
- if (arg === "--arch" || arg === "-a") {
764
- arch = args[i + 1] || null;
765
- continue;
722
+ if (arg === '--arch' || arg === '-a') {
723
+ arch = args[i + 1] || null
724
+ continue
766
725
  }
767
726
 
768
- if (typeof arg === "string" && arg.startsWith("--arch=")) {
769
- arch = arg.slice("--arch=".length) || null;
770
- continue;
727
+ if (typeof arg === 'string' && arg.startsWith('--arch=')) {
728
+ arch = arg.slice('--arch='.length) || null
729
+ continue
771
730
  }
772
731
  }
773
732
 
774
- if (arch === "universal") {
775
- throw new QvacForgePluginError(universalMessage);
733
+ if (arch === 'universal') {
734
+ throw new QvacForgePluginError(universalMessage)
776
735
  }
777
736
  }
778
737
 
779
738
  createPruneHook(exclusions = []) {
780
739
  return (buildPath, electronVersion, platform, arch, done) => {
781
- logger.info(`Pruning prebuilds for ${platform}-${arch}...`);
740
+ logger.info(`Pruning prebuilds for ${platform}-${arch}...`)
782
741
 
783
742
  try {
784
- const prebuildResult = prunePrebuildsForPath(buildPath, platform, arch);
785
- const prebuildMb = (prebuildResult.bytes / 1024 / 1024).toFixed(1);
786
- logger.info(
787
- `Pruned ${prebuildResult.deleted} prebuild dirs (~${prebuildMb} MB reclaimed)`,
788
- );
743
+ const prebuildResult = prunePrebuildsForPath(buildPath, platform, arch)
744
+ const prebuildMb = (prebuildResult.bytes / 1024 / 1024).toFixed(1)
745
+ logger.info(`Pruned ${prebuildResult.deleted} prebuild dirs (~${prebuildMb} MB reclaimed)`)
789
746
 
790
747
  if (exclusions.length > 0) {
791
- const cleanup = removeExcludedAddonDirs(buildPath, exclusions);
792
- const cleanupMb = (cleanup.bytes / 1024 / 1024).toFixed(1);
748
+ const cleanup = removeExcludedAddonDirs(buildPath, exclusions)
749
+ const cleanupMb = (cleanup.bytes / 1024 / 1024).toFixed(1)
793
750
  logger.info(
794
- `Removed ${cleanup.removed} excluded addon dir${cleanup.removed === 1 ? "" : "s"} (~${cleanupMb} MB reclaimed)`,
795
- );
751
+ `Removed ${cleanup.removed} excluded addon dir${cleanup.removed === 1 ? '' : 's'} (~${cleanupMb} MB reclaimed)`
752
+ )
796
753
  }
797
754
 
798
- done();
755
+ done()
799
756
  } catch (err) {
800
- logger.error(`Prebuild pruning failed: ${err.message}`);
801
- done(err);
757
+ logger.error(`Prebuild pruning failed: ${err.message}`)
758
+ done(err)
802
759
  }
803
- };
760
+ }
804
761
  }
805
762
  }
806
763
 
@@ -808,13 +765,13 @@ class QvacForgePlugin extends PluginBase {
808
765
  // Exports
809
766
  // ============================================
810
767
 
811
- module.exports = QvacForgePlugin;
812
- module.exports.setLogLevel = setLogLevel;
813
- module.exports.QvacForgePluginError = QvacForgePluginError;
768
+ module.exports = QvacForgePlugin
769
+ module.exports.setLogLevel = setLogLevel
770
+ module.exports.QvacForgePluginError = QvacForgePluginError
814
771
 
815
772
  // Internal helpers exposed for unit tests. Not part of the stable API.
816
- module.exports.createIgnore = createIgnore;
817
- module.exports.diffAddons = diffAddons;
818
- module.exports.detectTargetHosts = detectTargetHosts;
819
- module.exports.resolveHosts = resolveHosts;
820
- module.exports.runBundleAndVerify = runBundleAndVerify;
773
+ module.exports.createIgnore = createIgnore
774
+ module.exports.diffAddons = diffAddons
775
+ module.exports.detectTargetHosts = detectTargetHosts
776
+ module.exports.resolveHosts = resolveHosts
777
+ module.exports.runBundleAndVerify = runBundleAndVerify