@qvac/sdk 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/LICENSE +24 -1
  2. package/README.md +191 -373
  3. package/dist/client/api/cancel.d.ts +4 -13
  4. package/dist/client/api/cancel.js +6 -16
  5. package/dist/client/api/completion-stream.d.ts +30 -24
  6. package/dist/client/api/completion-stream.js +70 -121
  7. package/dist/client/api/delete-cache.js +2 -3
  8. package/dist/client/api/download-asset.d.ts +5 -6
  9. package/dist/client/api/download-asset.js +20 -16
  10. package/dist/client/api/embed.d.ts +4 -21
  11. package/dist/client/api/embed.js +14 -4
  12. package/dist/client/api/index.d.ts +1 -5
  13. package/dist/client/api/index.js +1 -5
  14. package/dist/client/api/load-model.d.ts +21 -49
  15. package/dist/client/api/load-model.js +134 -40
  16. package/dist/client/api/logging-stream.d.ts +4 -7
  17. package/dist/client/api/logging-stream.js +5 -9
  18. package/dist/client/api/ping.d.ts +1 -1
  19. package/dist/client/api/ping.js +2 -3
  20. package/dist/client/api/provide.d.ts +1 -1
  21. package/dist/client/api/provide.js +3 -4
  22. package/dist/client/api/rag.d.ts +21 -216
  23. package/dist/client/api/rag.js +36 -396
  24. package/dist/client/api/stop-provider.d.ts +1 -1
  25. package/dist/client/api/stop-provider.js +3 -4
  26. package/dist/client/api/text-to-speech.d.ts +2 -2
  27. package/dist/client/api/text-to-speech.js +3 -3
  28. package/dist/client/api/transcribe.d.ts +5 -9
  29. package/dist/client/api/transcribe.js +9 -11
  30. package/dist/client/api/translate.d.ts +3 -3
  31. package/dist/client/api/translate.js +15 -15
  32. package/dist/client/api/unload-model.d.ts +1 -5
  33. package/dist/client/api/unload-model.js +4 -17
  34. package/dist/client/index.d.ts +1 -1
  35. package/dist/client/index.js +1 -1
  36. package/dist/client/logging-stream-registry.d.ts +1 -1
  37. package/dist/client/logging-stream-registry.js +13 -14
  38. package/dist/client/rpc/bare-client.d.ts +139 -3
  39. package/dist/client/rpc/bare-client.js +16 -117
  40. package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
  41. package/dist/client/rpc/bare-rpc-client.js +87 -0
  42. package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
  43. package/dist/client/rpc/expo-rpc-client.js +14 -57
  44. package/dist/client/rpc/node-rpc-client.d.ts +8 -3
  45. package/dist/client/rpc/node-rpc-client.js +62 -218
  46. package/dist/client/rpc/rpc-client.d.ts +2 -3
  47. package/dist/client/rpc/rpc-client.js +49 -184
  48. package/dist/constants/audio.d.ts +2 -1
  49. package/dist/constants/audio.js +17 -1
  50. package/dist/constants/index.d.ts +0 -1
  51. package/dist/constants/index.js +0 -1
  52. package/dist/examples/delegated-inference/consumer.js +2 -3
  53. package/dist/examples/download-with-cancel.js +4 -3
  54. package/dist/examples/embed-hyperdrive.js +4 -39
  55. package/dist/examples/kv-cache-cleanup.js +2 -1
  56. package/dist/examples/kv-cache-custom-key.js +2 -16
  57. package/dist/examples/kv-cache-example.js +2 -1
  58. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  59. package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
  60. package/dist/examples/llamacpp-filesystem.js +2 -2
  61. package/dist/examples/llamacpp-http.js +1 -0
  62. package/dist/examples/llamacpp-hyperdrive.js +2 -1
  63. package/dist/examples/llamacpp-multimodal.js +4 -3
  64. package/dist/examples/llamacpp-native-tools.js +30 -72
  65. package/dist/examples/multi-model-demo.js +3 -2
  66. package/dist/examples/parallel-download.js +14 -46
  67. package/dist/examples/rag/rag-chromadb.js +1 -0
  68. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  69. package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
  70. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  71. package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
  72. package/dist/examples/rag/rag-lancedb.js +1 -0
  73. package/dist/examples/rag/rag-sqlite.js +1 -0
  74. package/dist/examples/text-to-speech.d.ts +3 -0
  75. package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
  76. package/dist/examples/translation/translation-indic.js +1 -4
  77. package/dist/examples/translation/translation-llm-context.js +1 -0
  78. package/dist/examples/translation/translation-llm.js +2 -2
  79. package/dist/examples/translation/translation-opus.js +3 -6
  80. package/dist/examples/translation/translation-stream.js +3 -3
  81. package/dist/examples/whispercpp-filesystem.js +43 -0
  82. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
  83. package/dist/expo/plugins/index.d.ts +0 -3
  84. package/dist/expo/plugins/index.js +0 -3
  85. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  86. package/dist/expo/plugins/withMobileBundle.js +40 -121
  87. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  88. package/dist/expo/plugins/withQvacSDK.js +1 -26
  89. package/dist/index.d.ts +4 -9
  90. package/dist/index.js +5 -11
  91. package/dist/logging/base-logger.js +16 -26
  92. package/dist/logging/index.d.ts +1 -7
  93. package/dist/logging/index.js +1 -7
  94. package/dist/logging/logger.d.ts +2 -0
  95. package/dist/logging/logger.js +6 -11
  96. package/dist/logging/stream-logger.d.ts +1 -1
  97. package/dist/logging/stream-logger.js +3 -6
  98. package/dist/logging/transport.js +2 -2
  99. package/dist/logging/types.d.ts +0 -2
  100. package/dist/logging/utils.d.ts +0 -2
  101. package/dist/logging/utils.js +0 -62
  102. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  103. package/dist/models/hyperdrive/models.d.ts +619 -0
  104. package/dist/models/hyperdrive/models.js +693 -0
  105. package/dist/schemas/cancel.d.ts +0 -6
  106. package/dist/schemas/cancel.js +0 -5
  107. package/dist/schemas/common.d.ts +164 -2973
  108. package/dist/schemas/common.js +1 -23
  109. package/dist/schemas/completion-stream.d.ts +60 -31
  110. package/dist/schemas/completion-stream.js +44 -20
  111. package/dist/schemas/delegate.d.ts +0 -1
  112. package/dist/schemas/delegate.js +0 -1
  113. package/dist/schemas/download-asset.d.ts +3 -125
  114. package/dist/schemas/download-asset.js +5 -22
  115. package/dist/schemas/embed.d.ts +3 -3
  116. package/dist/schemas/embed.js +2 -9
  117. package/dist/schemas/index.d.ts +1 -19
  118. package/dist/schemas/index.js +1 -19
  119. package/dist/schemas/llamacpp-config.d.ts +12 -243
  120. package/dist/schemas/llamacpp-config.js +14 -50
  121. package/dist/schemas/load-model.d.ts +893 -14358
  122. package/dist/schemas/load-model.js +72 -325
  123. package/dist/schemas/logging-stream.d.ts +4 -11
  124. package/dist/schemas/logging-stream.js +3 -4
  125. package/dist/schemas/rag.d.ts +52 -183
  126. package/dist/schemas/rag.js +23 -152
  127. package/dist/schemas/text-to-speech.d.ts +1 -692
  128. package/dist/schemas/text-to-speech.js +3 -35
  129. package/dist/schemas/transcription.d.ts +0 -3
  130. package/dist/schemas/transcription.js +0 -1
  131. package/dist/schemas/translate.d.ts +23 -68
  132. package/dist/schemas/translate.js +11 -37
  133. package/dist/schemas/translation-config.d.ts +7 -810
  134. package/dist/schemas/translation-config.js +7 -113
  135. package/dist/schemas/unload-model.d.ts +0 -2
  136. package/dist/schemas/unload-model.js +0 -2
  137. package/dist/schemas/whispercpp-config.d.ts +25 -0
  138. package/dist/schemas/whispercpp-config.js +18 -0
  139. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  140. package/dist/server/bare/addons/index.d.ts +4 -0
  141. package/dist/server/bare/addons/index.js +3 -0
  142. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  143. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  144. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  145. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
  146. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  147. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  148. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  149. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  150. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  151. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  152. package/dist/server/bare/addons/load-model.d.ts +3 -0
  153. package/dist/server/bare/addons/load-model.js +62 -0
  154. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  155. package/dist/server/bare/addons/translation/create-model.js +45 -0
  156. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  157. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  158. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  159. package/dist/server/bare/addons/translation/index.js +2 -0
  160. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  161. package/dist/server/bare/addons/tts/create-model.js +40 -0
  162. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  163. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  164. package/dist/server/bare/addons/tts/index.js +2 -0
  165. package/dist/server/bare/addons/unload-model.js +20 -0
  166. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  167. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  168. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  169. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
  170. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  171. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  172. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  173. package/dist/server/bare/delegate-rpc-client.js +46 -157
  174. package/dist/server/bare/hyperswarm.d.ts +0 -3
  175. package/dist/server/bare/hyperswarm.js +6 -29
  176. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  177. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  178. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  179. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  180. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  181. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  182. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  183. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  184. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  185. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  186. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  187. package/dist/server/bare/registry/model-registry.d.ts +26 -14
  188. package/dist/server/bare/registry/model-registry.js +12 -32
  189. package/dist/server/error-handlers.d.ts +2 -3
  190. package/dist/server/error-handlers.js +10 -15
  191. package/dist/server/http-server.d.ts +2 -0
  192. package/dist/server/http-server.js +189 -0
  193. package/dist/server/rpc/create-server.js +3 -5
  194. package/dist/server/rpc/handle-request.d.ts +9 -0
  195. package/dist/server/rpc/handle-request.js +242 -92
  196. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  197. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  198. package/dist/server/rpc/handlers/completion-stream-delegated.js +6 -18
  199. package/dist/server/rpc/handlers/completion-stream.js +41 -2
  200. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  201. package/dist/server/rpc/handlers/download-asset.js +6 -59
  202. package/dist/server/rpc/handlers/embed.js +19 -2
  203. package/dist/server/rpc/handlers/index.d.ts +0 -13
  204. package/dist/server/rpc/handlers/index.js +0 -13
  205. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  206. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  207. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  208. package/dist/server/rpc/handlers/load-model/http.js +55 -424
  209. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  210. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  211. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  212. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  213. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  214. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  215. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  216. package/dist/server/rpc/handlers/load-model-delegated.js +21 -59
  217. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  218. package/dist/server/rpc/handlers/load-model.js +57 -0
  219. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  220. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  221. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  222. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  223. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  224. package/dist/server/rpc/handlers/rag.js +43 -130
  225. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  226. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  227. package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
  228. package/dist/server/rpc/handlers/translate.js +49 -2
  229. package/dist/server/rpc/handlers/unload-model.js +3 -12
  230. package/dist/server/rpc/index.d.ts +1 -1
  231. package/dist/server/utils/audio/decoder.d.ts +1 -2
  232. package/dist/server/utils/audio/decoder.js +12 -49
  233. package/dist/server/utils/cache.d.ts +8 -19
  234. package/dist/server/utils/cache.js +15 -100
  235. package/dist/server/utils/hash.d.ts +5 -0
  236. package/dist/server/utils/hash.js +11 -0
  237. package/dist/server/utils/index.d.ts +2 -7
  238. package/dist/server/utils/index.js +2 -7
  239. package/dist/server/utils/tool-parser.js +14 -28
  240. package/dist/server/worker.d.ts +5 -4
  241. package/dist/server/worker.js +89 -22
  242. package/package.json +41 -141
  243. package/NOTICE +0 -358
  244. package/bare-imports.json +0 -44
  245. package/dist/client/api/get-model-info.d.ts +0 -36
  246. package/dist/client/api/get-model-info.js +0 -14
  247. package/dist/client/api/invoke-plugin.d.ts +0 -15
  248. package/dist/client/api/invoke-plugin.js +0 -38
  249. package/dist/client/api/ocr.d.ts +0 -31
  250. package/dist/client/api/ocr.js +0 -88
  251. package/dist/client/api/registry.d.ts +0 -14
  252. package/dist/client/api/registry.js +0 -37
  253. package/dist/client/config-loader/config-utils.d.ts +0 -5
  254. package/dist/client/config-loader/config-utils.js +0 -20
  255. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  256. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  257. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  258. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  259. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  260. package/dist/client/config-loader/resolve-config.node.js +0 -145
  261. package/dist/client/init-hooks.d.ts +0 -21
  262. package/dist/client/init-hooks.js +0 -66
  263. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  264. package/dist/client/rpc/expo-device-info.js +0 -32
  265. package/dist/client/rpc/profiling/index.d.ts +0 -2
  266. package/dist/client/rpc/profiling/index.js +0 -1
  267. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  268. package/dist/client/rpc/profiling/profiler.js +0 -139
  269. package/dist/constants/registry.d.ts +0 -2
  270. package/dist/constants/registry.js +0 -1
  271. package/dist/examples/cache-management.d.ts +0 -2
  272. package/dist/examples/cache-management.js +0 -97
  273. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  274. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  275. package/dist/examples/config/default/default.config.d.ts +0 -8
  276. package/dist/examples/config/default/default.config.js +0 -6
  277. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  278. package/dist/examples/config/plugins/plugins.config.js +0 -4
  279. package/dist/examples/config-reload.d.ts +0 -2
  280. package/dist/examples/config-reload.js +0 -49
  281. package/dist/examples/default-config-usage.d.ts +0 -17
  282. package/dist/examples/default-config-usage.js +0 -47
  283. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  284. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  285. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  286. package/dist/examples/download-with-blind-relays.js +0 -49
  287. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  288. package/dist/examples/llamacpp-sharded.js +0 -53
  289. package/dist/examples/logging-file-transport.d.ts +0 -2
  290. package/dist/examples/logging-streaming.d.ts +0 -2
  291. package/dist/examples/logging-streaming.js +0 -75
  292. package/dist/examples/mcp-websearch.d.ts +0 -13
  293. package/dist/examples/mcp-websearch.js +0 -176
  294. package/dist/examples/ocr-fasttext.d.ts +0 -2
  295. package/dist/examples/ocr-fasttext.js +0 -52
  296. package/dist/examples/plugins.d.ts +0 -14
  297. package/dist/examples/plugins.js +0 -129
  298. package/dist/examples/profiling/basic.d.ts +0 -2
  299. package/dist/examples/profiling/basic.js +0 -71
  300. package/dist/examples/profiling/per-call.d.ts +0 -2
  301. package/dist/examples/profiling/per-call.js +0 -30
  302. package/dist/examples/quickstart.d.ts +0 -2
  303. package/dist/examples/quickstart.js +0 -28
  304. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  305. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  306. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  307. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  308. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  309. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  310. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  311. package/dist/examples/registry-query.d.ts +0 -2
  312. package/dist/examples/registry-query.js +0 -87
  313. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  314. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  315. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  316. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  317. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  318. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  319. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  320. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  321. package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
  322. package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
  323. package/dist/examples/transcription/whispercpp-prompt.js +0 -67
  324. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  325. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  326. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  327. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  328. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  329. package/dist/examples/translation/translation-bergamot.js +0 -39
  330. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  331. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  332. package/dist/examples/tts/chatterbox.d.ts +0 -2
  333. package/dist/examples/tts/chatterbox.js +0 -59
  334. package/dist/examples/tts/supertonic.d.ts +0 -2
  335. package/dist/examples/tts/supertonic.js +0 -51
  336. package/dist/examples/tts/utils.d.ts +0 -17
  337. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  338. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  339. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  340. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  341. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  342. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  343. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  344. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  345. package/dist/logging/addon.d.ts +0 -6
  346. package/dist/logging/addon.js +0 -75
  347. package/dist/logging/client-logger.d.ts +0 -3
  348. package/dist/logging/client-logger.js +0 -24
  349. package/dist/logging/namespaces.d.ts +0 -6
  350. package/dist/logging/namespaces.js +0 -6
  351. package/dist/logging/registry.d.ts +0 -31
  352. package/dist/logging/registry.js +0 -62
  353. package/dist/logging/server-logger.d.ts +0 -3
  354. package/dist/logging/server-logger.js +0 -16
  355. package/dist/models/registry/models.d.ts +0 -10417
  356. package/dist/models/registry/models.js +0 -10757
  357. package/dist/models/update-models/codegen.d.ts +0 -3
  358. package/dist/models/update-models/codegen.js +0 -135
  359. package/dist/models/update-models/history.d.ts +0 -24
  360. package/dist/models/update-models/history.js +0 -107
  361. package/dist/models/update-models/index.d.ts +0 -2
  362. package/dist/models/update-models/index.js +0 -125
  363. package/dist/models/update-models/naming.d.ts +0 -4
  364. package/dist/models/update-models/naming.js +0 -370
  365. package/dist/models/update-models/processing.d.ts +0 -8
  366. package/dist/models/update-models/processing.js +0 -67
  367. package/dist/models/update-models/registry.d.ts +0 -4
  368. package/dist/models/update-models/registry.js +0 -67
  369. package/dist/models/update-models/shards.d.ts +0 -4
  370. package/dist/models/update-models/shards.js +0 -57
  371. package/dist/models/update-models/types.d.ts +0 -60
  372. package/dist/models/update-models/types.js +0 -1
  373. package/dist/models/update-models/utils.d.ts +0 -3
  374. package/dist/models/update-models/utils.js +0 -21
  375. package/dist/pear/pre.d.ts +0 -18
  376. package/dist/pear/pre.js +0 -433
  377. package/dist/profiling/aggregator.d.ts +0 -15
  378. package/dist/profiling/aggregator.js +0 -100
  379. package/dist/profiling/clock.d.ts +0 -12
  380. package/dist/profiling/clock.js +0 -51
  381. package/dist/profiling/controller.d.ts +0 -33
  382. package/dist/profiling/controller.js +0 -123
  383. package/dist/profiling/envelope.d.ts +0 -10
  384. package/dist/profiling/envelope.js +0 -36
  385. package/dist/profiling/events.d.ts +0 -20
  386. package/dist/profiling/events.js +0 -37
  387. package/dist/profiling/exporters.d.ts +0 -10
  388. package/dist/profiling/exporters.js +0 -236
  389. package/dist/profiling/index.d.ts +0 -36
  390. package/dist/profiling/index.js +0 -31
  391. package/dist/profiling/ring-buffer.d.ts +0 -19
  392. package/dist/profiling/ring-buffer.js +0 -83
  393. package/dist/profiling/types.d.ts +0 -47
  394. package/dist/profiling/types.js +0 -1
  395. package/dist/schemas/archive.d.ts +0 -9
  396. package/dist/schemas/archive.js +0 -17
  397. package/dist/schemas/engine-addon-map.d.ts +0 -5
  398. package/dist/schemas/engine-addon-map.js +0 -52
  399. package/dist/schemas/get-model-info.d.ts +0 -120
  400. package/dist/schemas/get-model-info.js +0 -58
  401. package/dist/schemas/json-schema.d.ts +0 -16
  402. package/dist/schemas/json-schema.js +0 -2
  403. package/dist/schemas/mcp-adapter.d.ts +0 -47
  404. package/dist/schemas/mcp-adapter.js +0 -1
  405. package/dist/schemas/model-src-utils.d.ts +0 -148
  406. package/dist/schemas/model-src-utils.js +0 -35
  407. package/dist/schemas/model-types.d.ts +0 -183
  408. package/dist/schemas/model-types.js +0 -168
  409. package/dist/schemas/ocr.d.ts +0 -125
  410. package/dist/schemas/ocr.js +0 -57
  411. package/dist/schemas/path-validation.d.ts +0 -10
  412. package/dist/schemas/path-validation.js +0 -22
  413. package/dist/schemas/plugin.d.ts +0 -226
  414. package/dist/schemas/plugin.js +0 -158
  415. package/dist/schemas/profiling.d.ts +0 -105
  416. package/dist/schemas/profiling.js +0 -66
  417. package/dist/schemas/registry.d.ts +0 -356
  418. package/dist/schemas/registry.js +0 -93
  419. package/dist/schemas/reload-config.d.ts +0 -476
  420. package/dist/schemas/reload-config.js +0 -44
  421. package/dist/schemas/runtime-context.d.ts +0 -19
  422. package/dist/schemas/runtime-context.js +0 -7
  423. package/dist/schemas/sdk-config.d.ts +0 -2973
  424. package/dist/schemas/sdk-config.js +0 -136
  425. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  426. package/dist/schemas/sdk-errors-client.js +0 -143
  427. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  428. package/dist/schemas/sdk-errors-registry.js +0 -8
  429. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  430. package/dist/schemas/sdk-errors-server.js +0 -451
  431. package/dist/schemas/shard.d.ts +0 -21
  432. package/dist/schemas/shard.js +0 -17
  433. package/dist/schemas/tools.d.ts +0 -65
  434. package/dist/schemas/tools.js +0 -43
  435. package/dist/schemas/transcription-config.d.ts +0 -383
  436. package/dist/schemas/transcription-config.js +0 -95
  437. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  438. package/dist/scripts/run-security-tests-bare.js +0 -78
  439. package/dist/scripts/run-security-tests.d.ts +0 -2
  440. package/dist/scripts/run-security-tests.js +0 -22
  441. package/dist/scripts/run-unit-tests.d.ts +0 -2
  442. package/dist/scripts/run-unit-tests.js +0 -17
  443. package/dist/server/bare/ops/embed.d.ts +0 -12
  444. package/dist/server/bare/ops/load-model.d.ts +0 -9
  445. package/dist/server/bare/ops/load-model.js +0 -85
  446. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  447. package/dist/server/bare/ops/transcribe.js +0 -75
  448. package/dist/server/bare/ops/translate.d.ts +0 -5
  449. package/dist/server/bare/ops/unload-model.js +0 -41
  450. package/dist/server/bare/plugins/index.d.ts +0 -8
  451. package/dist/server/bare/plugins/index.js +0 -7
  452. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  453. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  454. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  455. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  456. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  457. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  458. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  459. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -204
  460. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  461. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  462. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  463. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  464. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  465. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  466. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  467. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  468. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  469. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  470. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  471. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  472. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  473. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  474. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  475. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  476. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  477. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  478. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  479. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  480. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  481. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  482. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  483. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  484. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  485. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  486. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  487. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  488. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  489. package/dist/server/bare/registry/config-registry.js +0 -82
  490. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  491. package/dist/server/bare/registry/model-config-registry.js +0 -15
  492. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  493. package/dist/server/bare/registry/model-config-utils.js +0 -112
  494. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  495. package/dist/server/bare/registry/registry-client.js +0 -37
  496. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  497. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  498. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  499. package/dist/server/bare/utils/audio-input.js +0 -33
  500. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  501. package/dist/server/bare/utils/loader-adapter.js +0 -9
  502. package/dist/server/env.d.ts +0 -22
  503. package/dist/server/env.js +0 -57
  504. package/dist/server/plugins/index.d.ts +0 -2
  505. package/dist/server/plugins/index.js +0 -1
  506. package/dist/server/plugins/registry.d.ts +0 -9
  507. package/dist/server/plugins/registry.js +0 -79
  508. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  509. package/dist/server/rpc/delegate-transport.js +0 -215
  510. package/dist/server/rpc/handler-registry.d.ts +0 -3
  511. package/dist/server/rpc/handler-registry.js +0 -90
  512. package/dist/server/rpc/handler-utils.d.ts +0 -23
  513. package/dist/server/rpc/handler-utils.js +0 -128
  514. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  515. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  516. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  517. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  518. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  519. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  520. package/dist/server/rpc/handlers/load-model/registry.js +0 -564
  521. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  522. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  523. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  524. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  525. package/dist/server/rpc/handlers/ping.d.ts +0 -3
  526. package/dist/server/rpc/handlers/ping.js +0 -3
  527. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  528. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  529. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  530. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  531. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  532. package/dist/server/rpc/handlers/registry.js +0 -157
  533. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  534. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  535. package/dist/server/rpc/profiling/context.d.ts +0 -18
  536. package/dist/server/rpc/profiling/context.js +0 -38
  537. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  538. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  539. package/dist/server/rpc/profiling/index.d.ts +0 -5
  540. package/dist/server/rpc/profiling/index.js +0 -4
  541. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  542. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  543. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  544. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  545. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  546. package/dist/server/rpc/profiling/profiler.js +0 -97
  547. package/dist/server/utils/archive.d.ts +0 -4
  548. package/dist/server/utils/archive.js +0 -179
  549. package/dist/server/utils/checksum.d.ts +0 -4
  550. package/dist/server/utils/checksum.js +0 -31
  551. package/dist/server/utils/config-transform.d.ts +0 -3
  552. package/dist/server/utils/config-transform.js +0 -23
  553. package/dist/server/utils/formatting.d.ts +0 -19
  554. package/dist/server/utils/formatting.js +0 -61
  555. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  556. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  557. package/dist/server/utils/path-security.d.ts +0 -12
  558. package/dist/server/utils/path-security.js +0 -25
  559. package/dist/server/utils/shard-utils.d.ts +0 -48
  560. package/dist/server/utils/shard-utils.js +0 -125
  561. package/dist/server/utils/tool-integration.d.ts +0 -13
  562. package/dist/server/utils/tool-integration.js +0 -43
  563. package/dist/server/worker-core.d.ts +0 -6
  564. package/dist/server/worker-core.js +0 -88
  565. package/dist/utils/errors-base.d.ts +0 -3
  566. package/dist/utils/errors-base.js +0 -13
  567. package/dist/utils/errors-client.d.ts +0 -137
  568. package/dist/utils/errors-client.js +0 -240
  569. package/dist/utils/errors-server.d.ts +0 -236
  570. package/dist/utils/errors-server.js +0 -412
  571. package/dist/utils/global-singleton.d.ts +0 -2
  572. package/dist/utils/global-singleton.js +0 -10
  573. package/dist/utils/mcp-adapter.d.ts +0 -12
  574. package/dist/utils/mcp-adapter.js +0 -103
  575. package/dist/utils/object.d.ts +0 -2
  576. package/dist/utils/object.js +0 -3
  577. package/dist/utils/path-sanitize.d.ts +0 -17
  578. package/dist/utils/path-sanitize.js +0 -54
  579. package/dist/utils/tool-helpers.d.ts +0 -25
  580. package/dist/utils/tool-helpers.js +0 -112
  581. package/expo/plugins/patches/android-link.mjs +0 -63
  582. package/expo/plugins/patches/ios-link.mjs +0 -63
  583. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  584. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  585. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  586. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  587. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  588. /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
@@ -1,18 +0,0 @@
1
- /**
2
- * QVAC Pear Pre-Hook
3
- *
4
- * Invoked by Pear before `pear run` or `pear stage` to:
5
- * 1. Generate `qvac/worker.pear.entry.mjs` with selected plugins
6
- * 2. Persist `pear.stage.entrypoints` to package.json for routing
7
- *
8
- * @example package.json configuration
9
- * ```json
10
- * {
11
- * "pear": {
12
- * "pre": ["@qvac/sdk/pear-pre"]
13
- * }
14
- * }
15
- * ```
16
- */
17
- export {};
18
- //# sourceMappingURL=pre.d.ts.map
package/dist/pear/pre.js DELETED
@@ -1,433 +0,0 @@
1
- /**
2
- * QVAC Pear Pre-Hook
3
- *
4
- * Invoked by Pear before `pear run` or `pear stage` to:
5
- * 1. Generate `qvac/worker.pear.entry.mjs` with selected plugins
6
- * 2. Persist `pear.stage.entrypoints` to package.json for routing
7
- *
8
- * @example package.json configuration
9
- * ```json
10
- * {
11
- * "pear": {
12
- * "pre": ["@qvac/sdk/pear-pre"]
13
- * }
14
- * }
15
- * ```
16
- */
17
- import * as cenc from "compact-encoding";
18
- import pearPipe from "pear-pipe";
19
- import fs from "bare-fs";
20
- import path from "bare-path";
21
- const CONFIG_CANDIDATES = [
22
- "qvac.config.json",
23
- "qvac.config.js",
24
- "qvac.config.mjs",
25
- "qvac.config.ts",
26
- ];
27
- const BUILTIN_PLUGINS = [
28
- "@qvac/sdk/llamacpp-completion/plugin",
29
- "@qvac/sdk/llamacpp-embedding/plugin",
30
- "@qvac/sdk/whispercpp-transcription/plugin",
31
- "@qvac/sdk/nmtcpp-translation/plugin",
32
- "@qvac/sdk/onnx-tts/plugin",
33
- "@qvac/sdk/onnx-ocr/plugin",
34
- ];
35
- const BUILTIN_PLUGIN_EXPORTS = {
36
- "llamacpp-completion": "llmPlugin",
37
- "llamacpp-embedding": "embeddingsPlugin",
38
- "whispercpp-transcription": "whisperPlugin",
39
- "nmtcpp-translation": "nmtPlugin",
40
- "onnx-tts": "ttsPlugin",
41
- "onnx-ocr": "ocrPlugin",
42
- };
43
- const SDK_NAME = "@qvac/sdk";
44
- const DEFAULT_PEAR_WORKER = "worker.js";
45
- const PEAR_WORKER_ENTRY_PATH = "qvac/worker.pear.entry.mjs";
46
- const LOG_PREFIX = "[qvac/pear-pre]";
47
- /** Normalize path to Pear config format (POSIX-style, leading slash) */
48
- function toPearConfigPath(pathFromAppRoot) {
49
- let p = String(pathFromAppRoot).replaceAll("\\", "/");
50
- if (p.startsWith("./"))
51
- p = p.slice(2);
52
- if (!p.startsWith("/"))
53
- p = `/${p}`;
54
- return p.replaceAll("/./", "/").replace(/\/{2,}/g, "/");
55
- }
56
- function toPosixPath(p) {
57
- return String(p).replaceAll("\\", "/");
58
- }
59
- function pathToFileUrl(absPath) {
60
- let p = toPosixPath(absPath);
61
- // Windows drive letter paths need a leading slash in file:// URLs.
62
- if (/^[A-Za-z]:\//.test(p))
63
- p = `/${p}`;
64
- if (!p.startsWith("/"))
65
- p = `/${p}`;
66
- const segments = p.split("/");
67
- const encoded = segments
68
- .map((seg, idx) => {
69
- if (idx === 0)
70
- return "";
71
- // Preserve "C:" drive segment in Windows file URLs (file:///C:/...)
72
- if (idx === 1 && /^[A-Za-z]:$/.test(seg))
73
- return seg;
74
- return encodeURIComponent(seg);
75
- })
76
- .join("/");
77
- return `file://${encoded}`;
78
- }
79
- function detectJsonIndent(raw) {
80
- const match = raw.match(/\n([ \t]+)"/);
81
- if (match?.[1])
82
- return match[1];
83
- return 2;
84
- }
85
- function detectJsonNewline(raw) {
86
- return raw.includes("\r\n") ? "\r\n" : "\n";
87
- }
88
- function ensureObjectProp(obj, prop) {
89
- const existing = obj[prop];
90
- if (existing === undefined) {
91
- const created = {};
92
- obj[prop] = created;
93
- return created;
94
- }
95
- if (typeof existing === "object" && existing && !Array.isArray(existing)) {
96
- return existing;
97
- }
98
- throw new Error(`package.json "${prop}" must be an object`);
99
- }
100
- function normalizeStringArray(value) {
101
- if (value === undefined || value === null)
102
- return [];
103
- if (typeof value === "string")
104
- return value.length ? [value] : [];
105
- if (Array.isArray(value))
106
- return uniqStrings(value);
107
- throw new Error("Expected an array of strings");
108
- }
109
- function atomicWriteFileSync(targetPath, content) {
110
- const tmpPath = `${targetPath}.qvac-pre.tmp`;
111
- fs.writeFileSync(tmpPath, content, "utf8");
112
- fs.renameSync(tmpPath, targetPath);
113
- }
114
- function normalizePearWorkerPath(value) {
115
- if (typeof value !== "string")
116
- return DEFAULT_PEAR_WORKER;
117
- let p = value.trim();
118
- if (!p)
119
- return DEFAULT_PEAR_WORKER;
120
- p = toPosixPath(p);
121
- if (/^[A-Za-z]:\//.test(p)) {
122
- throw new Error(`"pearWorker" must be a path inside the app root (got absolute path: ${JSON.stringify(value)})`);
123
- }
124
- if (p.startsWith("./"))
125
- p = p.slice(2);
126
- while (p.startsWith("/"))
127
- p = p.slice(1);
128
- if (!p)
129
- return DEFAULT_PEAR_WORKER;
130
- if (p === "." || p === ".." || p.startsWith("../") || p.includes("/../")) {
131
- throw new Error(`"pearWorker" must be a path inside the app root (got: ${JSON.stringify(value)})`);
132
- }
133
- return p;
134
- }
135
- /**
136
- * Converts an absolute path to a relative ESM import specifier, using POSIX separators.
137
- */
138
- function toRelativeImportSpecifier(fromDir, targetPath) {
139
- let rel = path.relative(fromDir, targetPath);
140
- rel = toPosixPath(rel);
141
- if (!rel.startsWith("."))
142
- rel = `./${rel}`;
143
- return rel;
144
- }
145
- /** Extract unique strings from an array, preserving order */
146
- function uniqStrings(values) {
147
- if (!Array.isArray(values))
148
- return [];
149
- const out = [];
150
- const seen = new Set();
151
- for (const v of values) {
152
- if (typeof v === "string" && !seen.has(v)) {
153
- seen.add(v);
154
- out.push(v);
155
- }
156
- }
157
- return out;
158
- }
159
- /** Ensure array contains required values, returning new array and change flag */
160
- function ensureArrayIncludes(existing, required) {
161
- const next = [...existing];
162
- const set = new Set(existing);
163
- let changed = false;
164
- for (const v of required) {
165
- if (!set.has(v)) {
166
- set.add(v);
167
- next.push(v);
168
- changed = true;
169
- }
170
- }
171
- return { next, changed };
172
- }
173
- /**
174
- * Persist pear.stage.entrypoints to package.json.
175
- *
176
- * Required because workers are spawned with --no-pre, bypassing dynamic config.
177
- * pear-state merges stage.entrypoints into unrouted automatically.
178
- */
179
- function persistStageEntrypointsToPackageJson(appRoot, requiredEntrypoints) {
180
- const packageJsonPath = path.join(appRoot, "package.json");
181
- if (!fs.existsSync(packageJsonPath)) {
182
- throw new Error(`package.json not found at ${packageJsonPath}`);
183
- }
184
- const raw = fs.readFileSync(packageJsonPath, "utf8");
185
- const newline = detectJsonNewline(raw);
186
- const indent = detectJsonIndent(raw);
187
- const hasFinalNewline = raw.endsWith("\n") || raw.endsWith("\r\n");
188
- let pkg;
189
- try {
190
- pkg = JSON.parse(raw);
191
- }
192
- catch (err) {
193
- throw new Error(`Failed to parse ${packageJsonPath}: ${String(err)}`);
194
- }
195
- const pear = ensureObjectProp(pkg, "pear");
196
- const stage = ensureObjectProp(pear, "stage");
197
- const existing = normalizeStringArray(stage["entrypoints"]);
198
- const required = uniqStrings(requiredEntrypoints);
199
- const { next, changed } = ensureArrayIncludes(existing, required);
200
- if (!changed)
201
- return;
202
- stage["entrypoints"] = next;
203
- let nextRaw = JSON.stringify(pkg, null, indent);
204
- if (newline === "\r\n")
205
- nextRaw = nextRaw.replaceAll("\n", "\r\n");
206
- if (hasFinalNewline)
207
- nextRaw += newline;
208
- atomicWriteFileSync(packageJsonPath, nextRaw);
209
- }
210
- /** Extract app root directory from Pear's applink */
211
- function getAppRoot() {
212
- const applink = Pear.config?.applink;
213
- if (typeof applink !== "string" || applink.length === 0) {
214
- throw new Error("Pear.config.applink is not available");
215
- }
216
- // Pear provides a file:// URL to the application root.
217
- let pathname;
218
- let url;
219
- try {
220
- url = new URL(applink);
221
- }
222
- catch {
223
- // Some environments may provide a plain filesystem path instead of a URL.
224
- return path.normalize(applink);
225
- }
226
- if (url.protocol !== "file:") {
227
- throw new Error(`Expected Pear.config.applink to be a file:// URL (got: ${applink})`);
228
- }
229
- pathname = url.pathname;
230
- try {
231
- pathname = decodeURIComponent(pathname);
232
- }
233
- catch {
234
- // If decoding fails, keep the raw pathname.
235
- }
236
- // Handle Windows paths (e.g., /C:/path)
237
- if (pathname[0] === "/" && pathname[2] === ":") {
238
- pathname = pathname.slice(1);
239
- }
240
- return path.normalize(pathname);
241
- }
242
- /** Find the first existing qvac config file */
243
- function findConfigFile(appRoot) {
244
- for (const candidate of CONFIG_CANDIDATES) {
245
- const configPath = path.join(appRoot, candidate);
246
- if (fs.existsSync(configPath)) {
247
- return configPath;
248
- }
249
- }
250
- return null;
251
- }
252
- /** Load and parse a qvac config file */
253
- async function loadConfig(configPath) {
254
- const ext = path.extname(configPath).toLowerCase();
255
- if (ext === ".json") {
256
- const content = fs.readFileSync(configPath, "utf8");
257
- try {
258
- return JSON.parse(content);
259
- }
260
- catch (err) {
261
- throw new Error(`Failed to parse ${configPath}: ${String(err)}`);
262
- }
263
- }
264
- if (ext === ".js" || ext === ".mjs") {
265
- const module = (await import(pathToFileUrl(configPath)));
266
- return module.default ?? module;
267
- }
268
- if (ext === ".ts") {
269
- throw new Error("TypeScript config not supported in Pear pre-hook. Use qvac.config.json or qvac.config.mjs.");
270
- }
271
- throw new Error(`Unsupported config format: ${ext}. Use .json, .js, or .mjs`);
272
- }
273
- /** Discover and load qvac config, returning null if not found */
274
- async function discoverConfig(appRoot) {
275
- const configPath = findConfigFile(appRoot);
276
- if (!configPath) {
277
- return { config: null, configFile: null };
278
- }
279
- const config = await loadConfig(configPath);
280
- return { config, configFile: path.basename(configPath) };
281
- }
282
- /** Resolve plugin set from config or default to all built-in plugins */
283
- function resolvePlugins(config) {
284
- const fromConfig = uniqStrings(config?.plugins);
285
- if (fromConfig.length)
286
- return fromConfig;
287
- return [...BUILTIN_PLUGINS];
288
- }
289
- /** Parse SDK builtin plugin specifier to extract export info */
290
- function parseBuiltinSpecifier(specifier) {
291
- const prefix = `${SDK_NAME}/`;
292
- const pluginSuffix = "/plugin";
293
- if (specifier.startsWith(prefix) && specifier.endsWith(pluginSuffix)) {
294
- const middle = specifier.slice(prefix.length, -pluginSuffix.length);
295
- const exportName = BUILTIN_PLUGIN_EXPORTS[middle];
296
- if (!middle.includes("/") && exportName) {
297
- return { suffix: middle, exportName };
298
- }
299
- }
300
- return null;
301
- }
302
- /** Generate the Pear worker entry file content */
303
- function generatePearWorkerEntry(plugins, appWorkerPath) {
304
- const imports = [];
305
- const registrations = [];
306
- let varIndex = 0;
307
- for (const specifier of plugins) {
308
- const builtin = parseBuiltinSpecifier(specifier);
309
- if (builtin) {
310
- imports.push(`import { ${builtin.exportName} } from "${SDK_NAME}/${builtin.suffix}/plugin";`);
311
- registrations.push(`registerPlugin(${builtin.exportName});`);
312
- }
313
- else {
314
- const varName = `customPlugin${varIndex++}`;
315
- imports.push(`import ${varName} from "${specifier}";`);
316
- registrations.push(`registerPlugin(${varName});`);
317
- }
318
- }
319
- const pluginsList = plugins.map((p) => `* - ${p}`).join("\n");
320
- return `/**
321
- * QVAC Pear Worker Entry (auto-generated)
322
- * Plugins: ${plugins.length}
323
- *
324
- ${pluginsList}
325
- */
326
-
327
- import { registerPlugin } from "${SDK_NAME}/plugins";
328
-
329
- ${imports.join("\n")}
330
-
331
- ${registrations.join("\n")}
332
-
333
- await import(${JSON.stringify(appWorkerPath)});
334
- `;
335
- }
336
- /** Write worker entry file if content changed (idempotent) */
337
- function writeWorkerEntryIfChanged(appRoot, content) {
338
- const outputDir = path.join(appRoot, "qvac");
339
- const entryPath = path.join(appRoot, PEAR_WORKER_ENTRY_PATH);
340
- if (fs.existsSync(entryPath)) {
341
- try {
342
- if (fs.readFileSync(entryPath, "utf8") === content) {
343
- return false;
344
- }
345
- }
346
- catch {
347
- // Will rewrite on error
348
- }
349
- }
350
- if (!fs.existsSync(outputDir)) {
351
- fs.mkdirSync(outputDir, { recursive: true });
352
- }
353
- atomicWriteFileSync(entryPath, content);
354
- return true;
355
- }
356
- /** Main configuration handler */
357
- async function configure(options) {
358
- const appRoot = getAppRoot();
359
- const { config: qvacConfig } = await discoverConfig(appRoot);
360
- const plugins = resolvePlugins(qvacConfig);
361
- const pearWorker = normalizePearWorkerPath(qvacConfig?.pearWorker);
362
- // Validate worker file exists
363
- const workerAbs = path.join(appRoot, pearWorker);
364
- if (!fs.existsSync(workerAbs)) {
365
- const hint = qvacConfig?.pearWorker
366
- ? `"${String(qvacConfig.pearWorker)}" (resolved to ${workerAbs})`
367
- : `"${DEFAULT_PEAR_WORKER}". Set "pearWorker" in qvac.config.json to specify your worker path.`;
368
- throw new Error(`Worker file not found: ${hint}`);
369
- }
370
- // Generate worker entry with relative import path from qvac/ directory
371
- const outputDir = path.join(appRoot, "qvac");
372
- const appWorkerImport = toRelativeImportSpecifier(outputDir, workerAbs);
373
- const workerEntryContent = generatePearWorkerEntry(plugins, appWorkerImport);
374
- writeWorkerEntryIfChanged(appRoot, workerEntryContent);
375
- // Persist entrypoint to package.json for worker routing
376
- const workerEntryPath = toPearConfigPath(PEAR_WORKER_ENTRY_PATH);
377
- persistStageEntrypointsToPackageJson(appRoot, [workerEntryPath]);
378
- return options;
379
- }
380
- // IPC Protocol
381
- const pipe = pearPipe();
382
- if (!pipe) {
383
- console.error(`${LOG_PREFIX} No IPC pipe available`);
384
- process.exit(1);
385
- }
386
- pipe.autoexit = true;
387
- let exitCode = 0;
388
- pipe.on("end", () => {
389
- try {
390
- Pear.pipe.end();
391
- }
392
- finally {
393
- if (exitCode !== 0)
394
- process.exit(exitCode);
395
- }
396
- });
397
- pipe.once("error", (err) => {
398
- exitCode = exitCode || 1;
399
- console.error(LOG_PREFIX, err);
400
- });
401
- pipe.once("data", (data) => {
402
- void (async () => {
403
- let options = null;
404
- try {
405
- options = cenc.decode(cenc.any, data);
406
- }
407
- catch (err) {
408
- exitCode = 1;
409
- console.error(LOG_PREFIX, err);
410
- try {
411
- pipe.end(cenc.encode(cenc.any, { tag: "configure", data: {} }));
412
- }
413
- catch {
414
- pipe.destroy(err);
415
- }
416
- return;
417
- }
418
- try {
419
- const config = await configure(options);
420
- pipe.end(cenc.encode(cenc.any, { tag: "configure", data: config }));
421
- }
422
- catch (err) {
423
- exitCode = 1;
424
- console.error(LOG_PREFIX, err);
425
- try {
426
- pipe.end(cenc.encode(cenc.any, { tag: "configure", data: options }));
427
- }
428
- catch {
429
- pipe.destroy(err);
430
- }
431
- }
432
- })();
433
- });
@@ -1,15 +0,0 @@
1
- /**
2
- * Accumulates profiling statistics and maintains a bounded buffer of recent events.
3
- * Uses a ring buffer for O(1) event insertion.
4
- */
5
- import type { ProfilingEvent, AggregatedStats } from "./types";
6
- export declare function createAggregator(maxRecentEvents?: number): void;
7
- export declare function recordEvent(event: ProfilingEvent, storeInBuffer?: boolean): void;
8
- export declare function getAggregates(): Record<string, AggregatedStats>;
9
- /** Returns events in chronological order (oldest first). */
10
- export declare function getRecentEvents(): ProfilingEvent[];
11
- export declare function getEventCount(): number;
12
- export declare function getDroppedCount(): number;
13
- export declare function clearAggregator(): void;
14
- export declare function setMaxRecentEvents(max: number): void;
15
- //# sourceMappingURL=aggregator.d.ts.map
@@ -1,100 +0,0 @@
1
- /**
2
- * Accumulates profiling statistics and maintains a bounded buffer of recent events.
3
- * Uses a ring buffer for O(1) event insertion.
4
- */
5
- import { getGlobalSingleton } from "../utils/global-singleton.js";
6
- import { createRingBuffer, ringBufferPush, ringBufferToArray, ringBufferClear, ringBufferResize, ringBufferDroppedCount, } from "./ring-buffer.js";
7
- const DEFAULT_MAX_RECENT_EVENTS = 1000;
8
- const AGGREGATOR_STATE_KEY = Symbol.for("@qvac/sdk:profiler-aggregator-state");
9
- function getAggregatorState() {
10
- return getGlobalSingleton(AGGREGATOR_STATE_KEY, () => {
11
- return {
12
- stats: new Map(),
13
- eventBuffer: createRingBuffer(DEFAULT_MAX_RECENT_EVENTS),
14
- };
15
- });
16
- }
17
- export function createAggregator(maxRecentEvents = DEFAULT_MAX_RECENT_EVENTS) {
18
- const state = getAggregatorState();
19
- state.stats = new Map();
20
- state.eventBuffer = createRingBuffer(maxRecentEvents);
21
- }
22
- function recordStats(key, value) {
23
- const aggregator = getAggregatorState();
24
- let statsState = aggregator.stats.get(key);
25
- if (!statsState) {
26
- statsState = {
27
- count: 0,
28
- min: Infinity,
29
- max: -Infinity,
30
- sum: 0,
31
- last: 0,
32
- };
33
- aggregator.stats.set(key, statsState);
34
- }
35
- statsState.count++;
36
- statsState.sum += value;
37
- statsState.last = value;
38
- if (value < statsState.min)
39
- statsState.min = value;
40
- if (value > statsState.max)
41
- statsState.max = value;
42
- }
43
- function getStats(state) {
44
- return {
45
- count: state.count,
46
- min: state.count > 0 ? state.min : 0,
47
- max: state.count > 0 ? state.max : 0,
48
- avg: state.count > 0 ? state.sum / state.count : 0,
49
- sum: state.sum,
50
- last: state.last,
51
- };
52
- }
53
- export function recordEvent(event, storeInBuffer = true) {
54
- const state = getAggregatorState();
55
- if (storeInBuffer) {
56
- ringBufferPush(state.eventBuffer, event);
57
- }
58
- if (event.ms !== undefined) {
59
- const key = event.phase ? `${event.op}.${event.phase}` : event.op;
60
- recordStats(key, event.ms);
61
- }
62
- if (event.gauges) {
63
- const baseKey = event.phase ? `${event.op}.${event.phase}` : event.op;
64
- for (const [gaugeName, value] of Object.entries(event.gauges)) {
65
- recordStats(`${baseKey}.${gaugeName}`, value);
66
- }
67
- }
68
- }
69
- export function getAggregates() {
70
- const state = getAggregatorState();
71
- const result = {};
72
- for (const [key, statsState] of state.stats) {
73
- result[key] = getStats(statsState);
74
- }
75
- return result;
76
- }
77
- /** Returns events in chronological order (oldest first). */
78
- export function getRecentEvents() {
79
- return ringBufferToArray(getAggregatorState().eventBuffer);
80
- }
81
- export function getEventCount() {
82
- const state = getAggregatorState();
83
- let total = 0;
84
- for (const statsState of state.stats.values()) {
85
- total += statsState.count;
86
- }
87
- return total;
88
- }
89
- export function getDroppedCount() {
90
- return ringBufferDroppedCount(getAggregatorState().eventBuffer);
91
- }
92
- export function clearAggregator() {
93
- const state = getAggregatorState();
94
- state.stats.clear();
95
- ringBufferClear(state.eventBuffer);
96
- }
97
- export function setMaxRecentEvents(max) {
98
- const state = getAggregatorState();
99
- state.eventBuffer = ringBufferResize(state.eventBuffer, max);
100
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Runtime-safe monotonic clock for profiling.
3
- * Priority: performance.now > process.hrtime > Date.now
4
- */
5
- export type ClockSource = "performance" | "hrtime" | "date";
6
- export declare function getClockSource(): ClockSource;
7
- export declare function isMonotonic(): boolean;
8
- export declare function nowMs(): number;
9
- export declare function measureAsync<T>(fn: () => Promise<T>): Promise<[T, number]>;
10
- export declare function measureSync<T>(fn: () => T): [T, number];
11
- export declare function generateProfileId(): string;
12
- //# sourceMappingURL=clock.d.ts.map
@@ -1,51 +0,0 @@
1
- /**
2
- * Runtime-safe monotonic clock for profiling.
3
- * Priority: performance.now > process.hrtime > Date.now
4
- */
5
- let clockSource;
6
- let nowMsImpl;
7
- // Detect and cache the best available clock source at module load
8
- if (typeof globalThis !== "undefined" &&
9
- typeof globalThis.performance !== "undefined" &&
10
- typeof globalThis.performance.now === "function") {
11
- clockSource = "performance";
12
- const perfNow = globalThis.performance.now.bind(globalThis.performance);
13
- nowMsImpl = () => perfNow();
14
- }
15
- else if (typeof process !== "undefined" &&
16
- typeof process.hrtime === "function" &&
17
- typeof process.hrtime.bigint === "function") {
18
- clockSource = "hrtime";
19
- const hrtime = process.hrtime.bigint.bind(process.hrtime);
20
- const startNs = hrtime();
21
- nowMsImpl = () => Number(hrtime() - startNs) / 1_000_000;
22
- }
23
- else {
24
- clockSource = "date";
25
- const startMs = Date.now();
26
- nowMsImpl = () => Date.now() - startMs;
27
- }
28
- export function getClockSource() {
29
- return clockSource;
30
- }
31
- export function isMonotonic() {
32
- return clockSource === "performance" || clockSource === "hrtime";
33
- }
34
- export function nowMs() {
35
- return nowMsImpl();
36
- }
37
- export async function measureAsync(fn) {
38
- const start = nowMs();
39
- const result = await fn();
40
- return [result, nowMs() - start];
41
- }
42
- export function measureSync(fn) {
43
- const start = nowMs();
44
- const result = fn();
45
- return [result, nowMs() - start];
46
- }
47
- export function generateProfileId() {
48
- const timestamp = Date.now().toString(36);
49
- const random = Math.random().toString(36).substring(2, 8);
50
- return `${timestamp}-${random}`;
51
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * Central state management for profiling enablement, configuration, and recording.
3
- *
4
- * Precedence (highest to lowest):
5
- * 1. Per-call override
6
- * 2. Runtime API (enable/disable)
7
- * 3. Disabled default
8
- */
9
- import type { ProfilerMode, PerCallProfiling } from "../schemas/index";
10
- import type { ProfilerRuntimeOptions, ProfilingEvent, AggregatedStats } from "./types";
11
- export interface ResolvedProfilerConfig {
12
- enabled: boolean;
13
- mode: ProfilerMode;
14
- includeServerBreakdown: boolean;
15
- operationFilters: string[];
16
- maxRecentEvents: number;
17
- }
18
- type RecordCallback = (event: ProfilingEvent) => void;
19
- export declare function enable(options?: ProfilerRuntimeOptions): void;
20
- export declare function disable(): void;
21
- export declare function isEnabled(): boolean;
22
- export declare function getEffectiveConfig(): ResolvedProfilerConfig;
23
- export declare function shouldProfile(operation: string, perCallOptions?: PerCallProfiling): boolean;
24
- export declare function shouldIncludeServerBreakdown(perCallOptions?: PerCallProfiling): boolean;
25
- export declare function generateId(): string;
26
- export declare function record(event: ProfilingEvent): void;
27
- /** Returns unsubscribe function. */
28
- export declare function onRecord(callback: RecordCallback): () => void;
29
- export declare function getAggregates(): Record<string, AggregatedStats>;
30
- export declare function getRecentEvents(): ProfilingEvent[];
31
- export declare function clear(): void;
32
- export {};
33
- //# sourceMappingURL=controller.d.ts.map