@withbuddi/buddi 0.1.0-pre.47 → 0.1.0-pre.48

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 (353) hide show
  1. package/extension/manifest.json +2 -2
  2. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  3. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  4. package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts +4 -4
  5. package/node_modules/@buddi/core/dist/host/build.d.ts +8 -1
  6. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  7. package/node_modules/@buddi/core/dist/host/build.js +33 -0
  8. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  9. package/node_modules/@buddi/core/dist/host/types.d.ts +43 -0
  10. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  11. package/node_modules/@buddi/core/dist/index.d.ts +1 -0
  12. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  13. package/node_modules/@buddi/core/dist/index.js +1 -0
  14. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  15. package/node_modules/@buddi/core/dist/plugin/index.d.ts +5 -1
  16. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  17. package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
  18. package/node_modules/@buddi/core/dist/plugin/uses.d.ts +1 -1
  19. package/node_modules/@buddi/core/dist/plugin/uses.d.ts.map +1 -1
  20. package/node_modules/@buddi/core/dist/plugin/uses.js +2 -0
  21. package/node_modules/@buddi/core/dist/plugin/uses.js.map +1 -1
  22. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  23. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  24. package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.d.ts +26 -0
  25. package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.d.ts.map +1 -0
  26. package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.js +93 -0
  27. package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.js.map +1 -0
  28. package/node_modules/@buddi/core/dist/runtimes/area.d.ts +22 -0
  29. package/node_modules/@buddi/core/dist/runtimes/area.d.ts.map +1 -0
  30. package/node_modules/@buddi/core/dist/runtimes/area.js +127 -0
  31. package/node_modules/@buddi/core/dist/runtimes/area.js.map +1 -0
  32. package/node_modules/@buddi/core/dist/runtimes/config.d.ts +54 -0
  33. package/node_modules/@buddi/core/dist/runtimes/config.d.ts.map +1 -0
  34. package/node_modules/@buddi/core/dist/runtimes/config.js +57 -0
  35. package/node_modules/@buddi/core/dist/runtimes/config.js.map +1 -0
  36. package/node_modules/@buddi/core/dist/runtimes/consent.d.ts +170 -0
  37. package/node_modules/@buddi/core/dist/runtimes/consent.d.ts.map +1 -0
  38. package/node_modules/@buddi/core/dist/runtimes/consent.js +205 -0
  39. package/node_modules/@buddi/core/dist/runtimes/consent.js.map +1 -0
  40. package/node_modules/@buddi/core/dist/runtimes/download.d.ts +95 -0
  41. package/node_modules/@buddi/core/dist/runtimes/download.d.ts.map +1 -0
  42. package/node_modules/@buddi/core/dist/runtimes/download.js +333 -0
  43. package/node_modules/@buddi/core/dist/runtimes/download.js.map +1 -0
  44. package/node_modules/@buddi/core/dist/runtimes/index.d.ts +10 -0
  45. package/node_modules/@buddi/core/dist/runtimes/index.d.ts.map +1 -0
  46. package/node_modules/@buddi/core/dist/runtimes/index.js +10 -0
  47. package/node_modules/@buddi/core/dist/runtimes/index.js.map +1 -0
  48. package/node_modules/@buddi/core/dist/runtimes/models.d.ts +78 -0
  49. package/node_modules/@buddi/core/dist/runtimes/models.d.ts.map +1 -0
  50. package/node_modules/@buddi/core/dist/runtimes/models.js +240 -0
  51. package/node_modules/@buddi/core/dist/runtimes/models.js.map +1 -0
  52. package/node_modules/@buddi/core/dist/runtimes/native.d.ts +49 -0
  53. package/node_modules/@buddi/core/dist/runtimes/native.d.ts.map +1 -0
  54. package/node_modules/@buddi/core/dist/runtimes/native.js +27 -0
  55. package/node_modules/@buddi/core/dist/runtimes/native.js.map +1 -0
  56. package/node_modules/@buddi/core/dist/runtimes/onnx.d.ts +87 -0
  57. package/node_modules/@buddi/core/dist/runtimes/onnx.d.ts.map +1 -0
  58. package/node_modules/@buddi/core/dist/runtimes/onnx.js +582 -0
  59. package/node_modules/@buddi/core/dist/runtimes/onnx.js.map +1 -0
  60. package/node_modules/@buddi/core/dist/runtimes/pins.d.ts +53 -0
  61. package/node_modules/@buddi/core/dist/runtimes/pins.d.ts.map +1 -0
  62. package/node_modules/@buddi/core/dist/runtimes/pins.js +75 -0
  63. package/node_modules/@buddi/core/dist/runtimes/pins.js.map +1 -0
  64. package/node_modules/@buddi/core/dist/scheduler/missions.d.ts +9 -3
  65. package/node_modules/@buddi/core/dist/scheduler/missions.d.ts.map +1 -1
  66. package/node_modules/@buddi/core/dist/scheduler/missions.js +12 -3
  67. package/node_modules/@buddi/core/dist/scheduler/missions.js.map +1 -1
  68. package/node_modules/@buddi/core/dist/scheduler/types.d.ts +8 -3
  69. package/node_modules/@buddi/core/dist/scheduler/types.d.ts.map +1 -1
  70. package/node_modules/@buddi/core/dist/scheduler/types.js +5 -1
  71. package/node_modules/@buddi/core/dist/scheduler/types.js.map +1 -1
  72. package/node_modules/@buddi/core/dist/secrets/approval.d.ts.map +1 -1
  73. package/node_modules/@buddi/core/dist/secrets/approval.js +3 -1
  74. package/node_modules/@buddi/core/dist/secrets/approval.js.map +1 -1
  75. package/node_modules/@buddi/core/dist/secrets/use.d.ts +3 -1
  76. package/node_modules/@buddi/core/dist/secrets/use.d.ts.map +1 -1
  77. package/node_modules/@buddi/core/dist/secrets/use.js +2 -0
  78. package/node_modules/@buddi/core/dist/secrets/use.js.map +1 -1
  79. package/node_modules/@buddi/core/dist/tools.d.ts +16 -0
  80. package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
  81. package/node_modules/@buddi/core/dist/tools.js.map +1 -1
  82. package/node_modules/@buddi/core/dist/views.d.ts +8 -8
  83. package/node_modules/@buddi/core/migrations/079_mission_browser_owner.sql +7 -0
  84. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  85. package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
  86. package/node_modules/@buddi/gateway/dist/agents/catalog.js +6 -3
  87. package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
  88. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts +24 -10
  89. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
  90. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js +6 -2
  91. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js.map +1 -1
  92. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts +17 -4
  93. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
  94. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js +25 -5
  95. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js.map +1 -1
  96. package/node_modules/@buddi/gateway/dist/browser-host.d.ts +7 -0
  97. package/node_modules/@buddi/gateway/dist/browser-host.d.ts.map +1 -1
  98. package/node_modules/@buddi/gateway/dist/browser-host.js +22 -0
  99. package/node_modules/@buddi/gateway/dist/browser-host.js.map +1 -1
  100. package/node_modules/@buddi/gateway/dist/missions/chrome-scope.d.ts +91 -0
  101. package/node_modules/@buddi/gateway/dist/missions/chrome-scope.d.ts.map +1 -0
  102. package/node_modules/@buddi/gateway/dist/missions/chrome-scope.js +194 -0
  103. package/node_modules/@buddi/gateway/dist/missions/chrome-scope.js.map +1 -0
  104. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +20 -0
  105. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
  106. package/node_modules/@buddi/gateway/dist/missions/execute.js +73 -3
  107. package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
  108. package/node_modules/@buddi/gateway/dist/missions/reminders.d.ts +10 -2
  109. package/node_modules/@buddi/gateway/dist/missions/reminders.d.ts.map +1 -1
  110. package/node_modules/@buddi/gateway/dist/missions/reminders.js +53 -5
  111. package/node_modules/@buddi/gateway/dist/missions/reminders.js.map +1 -1
  112. package/node_modules/@buddi/gateway/dist/owner-notify.d.ts +0 -11
  113. package/node_modules/@buddi/gateway/dist/owner-notify.d.ts.map +1 -1
  114. package/node_modules/@buddi/gateway/dist/owner-notify.js +3 -1
  115. package/node_modules/@buddi/gateway/dist/owner-notify.js.map +1 -1
  116. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  117. package/node_modules/@buddi/gateway/dist/serve.js +2 -1
  118. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  119. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts +2 -1
  120. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts.map +1 -1
  121. package/node_modules/@buddi/gateway/dist/telegram/approvals.js +16 -4
  122. package/node_modules/@buddi/gateway/dist/telegram/approvals.js.map +1 -1
  123. package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
  124. package/node_modules/@buddi/gateway/dist/web/api-routes.js +8 -0
  125. package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
  126. package/node_modules/@buddi/gateway/dist/web/approval-ask.d.ts +8 -0
  127. package/node_modules/@buddi/gateway/dist/web/approval-ask.d.ts.map +1 -1
  128. package/node_modules/@buddi/gateway/dist/web/approval-ask.js +25 -0
  129. package/node_modules/@buddi/gateway/dist/web/approval-ask.js.map +1 -1
  130. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
  131. package/node_modules/@buddi/gateway/dist/web/plugins.js +3 -1
  132. package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
  133. package/node_modules/@buddi/gateway/dist/web/read.d.ts +2 -0
  134. package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
  135. package/node_modules/@buddi/gateway/dist/web/read.js +1 -0
  136. package/node_modules/@buddi/gateway/dist/web/read.js.map +1 -1
  137. package/node_modules/@buddi/gateway/dist/web/runtimes.d.ts +10 -0
  138. package/node_modules/@buddi/gateway/dist/web/runtimes.d.ts.map +1 -0
  139. package/node_modules/@buddi/gateway/dist/web/runtimes.js +25 -0
  140. package/node_modules/@buddi/gateway/dist/web/runtimes.js.map +1 -0
  141. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  142. package/node_modules/@buddi/gateway/dist/web/server.js +20 -2
  143. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  144. package/node_modules/@buddi/gateway/dist/web/write.d.ts +11 -1
  145. package/node_modules/@buddi/gateway/dist/web/write.d.ts.map +1 -1
  146. package/node_modules/@buddi/gateway/dist/web/write.js +18 -1
  147. package/node_modules/@buddi/gateway/dist/web/write.js.map +1 -1
  148. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  149. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  150. package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
  151. package/node_modules/@buddi/runtime/dist/delegate.js +1 -0
  152. package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
  153. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  154. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  155. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +5 -0
  156. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  157. package/node_modules/@buddi/tool-browser/dist/controller.js +41 -5
  158. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  159. package/node_modules/@buddi/tool-browser/dist/routes.d.ts +6 -0
  160. package/node_modules/@buddi/tool-browser/dist/routes.d.ts.map +1 -1
  161. package/node_modules/@buddi/tool-browser/dist/routes.js +2 -2
  162. package/node_modules/@buddi/tool-browser/dist/routes.js.map +1 -1
  163. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  164. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  165. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
  166. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  167. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  168. package/node_modules/imapflow/CHANGELOG.md +8 -0
  169. package/node_modules/imapflow/dist/cjs/commands/copyuid-parser.js +16 -2
  170. package/node_modules/imapflow/dist/cjs/handler/imap-compiler.js +26 -19
  171. package/node_modules/imapflow/dist/cjs/handler/token-parser.js +127 -51
  172. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  173. package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
  174. package/node_modules/imapflow/dist/cjs/search-compiler.js +7 -3
  175. package/node_modules/imapflow/dist/esm/commands/copyuid-parser.js +16 -2
  176. package/node_modules/imapflow/dist/esm/handler/imap-compiler.js +26 -19
  177. package/node_modules/imapflow/dist/esm/handler/token-parser.js +127 -51
  178. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  179. package/node_modules/imapflow/dist/esm/package-info.js +1 -1
  180. package/node_modules/imapflow/dist/esm/search-compiler.js +7 -3
  181. package/node_modules/imapflow/package.json +3 -2
  182. package/package.json +2 -2
  183. package/packages/cli/dist/.tsbuildinfo +1 -1
  184. package/packages/core/dist/.tsbuildinfo +1 -1
  185. package/packages/core/dist/agents/frontmatter.d.ts +4 -4
  186. package/packages/core/dist/host/build.d.ts +8 -1
  187. package/packages/core/dist/host/build.d.ts.map +1 -1
  188. package/packages/core/dist/host/build.js +33 -0
  189. package/packages/core/dist/host/build.js.map +1 -1
  190. package/packages/core/dist/host/types.d.ts +43 -0
  191. package/packages/core/dist/host/types.d.ts.map +1 -1
  192. package/packages/core/dist/index.d.ts +1 -0
  193. package/packages/core/dist/index.d.ts.map +1 -1
  194. package/packages/core/dist/index.js +1 -0
  195. package/packages/core/dist/index.js.map +1 -1
  196. package/packages/core/dist/plugin/index.d.ts +5 -1
  197. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  198. package/packages/core/dist/plugin/index.js.map +1 -1
  199. package/packages/core/dist/plugin/uses.d.ts +1 -1
  200. package/packages/core/dist/plugin/uses.d.ts.map +1 -1
  201. package/packages/core/dist/plugin/uses.js +2 -0
  202. package/packages/core/dist/plugin/uses.js.map +1 -1
  203. package/packages/core/dist/plugin/version.d.ts +1 -1
  204. package/packages/core/dist/plugin/version.js +1 -1
  205. package/packages/core/dist/runtimes/__fixtures__/server.d.ts +26 -0
  206. package/packages/core/dist/runtimes/__fixtures__/server.d.ts.map +1 -0
  207. package/packages/core/dist/runtimes/__fixtures__/server.js +93 -0
  208. package/packages/core/dist/runtimes/__fixtures__/server.js.map +1 -0
  209. package/packages/core/dist/runtimes/area.d.ts +22 -0
  210. package/packages/core/dist/runtimes/area.d.ts.map +1 -0
  211. package/packages/core/dist/runtimes/area.js +127 -0
  212. package/packages/core/dist/runtimes/area.js.map +1 -0
  213. package/packages/core/dist/runtimes/config.d.ts +54 -0
  214. package/packages/core/dist/runtimes/config.d.ts.map +1 -0
  215. package/packages/core/dist/runtimes/config.js +57 -0
  216. package/packages/core/dist/runtimes/config.js.map +1 -0
  217. package/packages/core/dist/runtimes/consent.d.ts +170 -0
  218. package/packages/core/dist/runtimes/consent.d.ts.map +1 -0
  219. package/packages/core/dist/runtimes/consent.js +205 -0
  220. package/packages/core/dist/runtimes/consent.js.map +1 -0
  221. package/packages/core/dist/runtimes/download.d.ts +95 -0
  222. package/packages/core/dist/runtimes/download.d.ts.map +1 -0
  223. package/packages/core/dist/runtimes/download.js +333 -0
  224. package/packages/core/dist/runtimes/download.js.map +1 -0
  225. package/packages/core/dist/runtimes/index.d.ts +10 -0
  226. package/packages/core/dist/runtimes/index.d.ts.map +1 -0
  227. package/packages/core/dist/runtimes/index.js +10 -0
  228. package/packages/core/dist/runtimes/index.js.map +1 -0
  229. package/packages/core/dist/runtimes/models.d.ts +78 -0
  230. package/packages/core/dist/runtimes/models.d.ts.map +1 -0
  231. package/packages/core/dist/runtimes/models.js +240 -0
  232. package/packages/core/dist/runtimes/models.js.map +1 -0
  233. package/packages/core/dist/runtimes/native.d.ts +49 -0
  234. package/packages/core/dist/runtimes/native.d.ts.map +1 -0
  235. package/packages/core/dist/runtimes/native.js +27 -0
  236. package/packages/core/dist/runtimes/native.js.map +1 -0
  237. package/packages/core/dist/runtimes/onnx.d.ts +87 -0
  238. package/packages/core/dist/runtimes/onnx.d.ts.map +1 -0
  239. package/packages/core/dist/runtimes/onnx.js +582 -0
  240. package/packages/core/dist/runtimes/onnx.js.map +1 -0
  241. package/packages/core/dist/runtimes/pins.d.ts +53 -0
  242. package/packages/core/dist/runtimes/pins.d.ts.map +1 -0
  243. package/packages/core/dist/runtimes/pins.js +75 -0
  244. package/packages/core/dist/runtimes/pins.js.map +1 -0
  245. package/packages/core/dist/scheduler/missions.d.ts +9 -3
  246. package/packages/core/dist/scheduler/missions.d.ts.map +1 -1
  247. package/packages/core/dist/scheduler/missions.js +12 -3
  248. package/packages/core/dist/scheduler/missions.js.map +1 -1
  249. package/packages/core/dist/scheduler/types.d.ts +8 -3
  250. package/packages/core/dist/scheduler/types.d.ts.map +1 -1
  251. package/packages/core/dist/scheduler/types.js +5 -1
  252. package/packages/core/dist/scheduler/types.js.map +1 -1
  253. package/packages/core/dist/secrets/approval.d.ts.map +1 -1
  254. package/packages/core/dist/secrets/approval.js +3 -1
  255. package/packages/core/dist/secrets/approval.js.map +1 -1
  256. package/packages/core/dist/secrets/use.d.ts +3 -1
  257. package/packages/core/dist/secrets/use.d.ts.map +1 -1
  258. package/packages/core/dist/secrets/use.js +2 -0
  259. package/packages/core/dist/secrets/use.js.map +1 -1
  260. package/packages/core/dist/tools.d.ts +16 -0
  261. package/packages/core/dist/tools.d.ts.map +1 -1
  262. package/packages/core/dist/tools.js.map +1 -1
  263. package/packages/core/dist/views.d.ts +8 -8
  264. package/packages/core/migrations/079_mission_browser_owner.sql +7 -0
  265. package/packages/gateway/dist/.tsbuildinfo +1 -1
  266. package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
  267. package/packages/gateway/dist/agents/catalog.js +6 -3
  268. package/packages/gateway/dist/agents/catalog.js.map +1 -1
  269. package/packages/gateway/dist/agents/catalogue-package.d.ts +24 -10
  270. package/packages/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
  271. package/packages/gateway/dist/agents/catalogue-package.js +6 -2
  272. package/packages/gateway/dist/agents/catalogue-package.js.map +1 -1
  273. package/packages/gateway/dist/agents/platform-catalogue.d.ts +17 -4
  274. package/packages/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
  275. package/packages/gateway/dist/agents/platform-catalogue.js +25 -5
  276. package/packages/gateway/dist/agents/platform-catalogue.js.map +1 -1
  277. package/packages/gateway/dist/browser-host.d.ts +7 -0
  278. package/packages/gateway/dist/browser-host.d.ts.map +1 -1
  279. package/packages/gateway/dist/browser-host.js +22 -0
  280. package/packages/gateway/dist/browser-host.js.map +1 -1
  281. package/packages/gateway/dist/missions/chrome-scope.d.ts +91 -0
  282. package/packages/gateway/dist/missions/chrome-scope.d.ts.map +1 -0
  283. package/packages/gateway/dist/missions/chrome-scope.js +194 -0
  284. package/packages/gateway/dist/missions/chrome-scope.js.map +1 -0
  285. package/packages/gateway/dist/missions/execute.d.ts +20 -0
  286. package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
  287. package/packages/gateway/dist/missions/execute.js +73 -3
  288. package/packages/gateway/dist/missions/execute.js.map +1 -1
  289. package/packages/gateway/dist/missions/reminders.d.ts +10 -2
  290. package/packages/gateway/dist/missions/reminders.d.ts.map +1 -1
  291. package/packages/gateway/dist/missions/reminders.js +53 -5
  292. package/packages/gateway/dist/missions/reminders.js.map +1 -1
  293. package/packages/gateway/dist/owner-notify.d.ts +0 -11
  294. package/packages/gateway/dist/owner-notify.d.ts.map +1 -1
  295. package/packages/gateway/dist/owner-notify.js +3 -1
  296. package/packages/gateway/dist/owner-notify.js.map +1 -1
  297. package/packages/gateway/dist/serve.d.ts.map +1 -1
  298. package/packages/gateway/dist/serve.js +2 -1
  299. package/packages/gateway/dist/serve.js.map +1 -1
  300. package/packages/gateway/dist/telegram/approvals.d.ts +2 -1
  301. package/packages/gateway/dist/telegram/approvals.d.ts.map +1 -1
  302. package/packages/gateway/dist/telegram/approvals.js +16 -4
  303. package/packages/gateway/dist/telegram/approvals.js.map +1 -1
  304. package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
  305. package/packages/gateway/dist/web/api-routes.js +8 -0
  306. package/packages/gateway/dist/web/api-routes.js.map +1 -1
  307. package/packages/gateway/dist/web/approval-ask.d.ts +8 -0
  308. package/packages/gateway/dist/web/approval-ask.d.ts.map +1 -1
  309. package/packages/gateway/dist/web/approval-ask.js +25 -0
  310. package/packages/gateway/dist/web/approval-ask.js.map +1 -1
  311. package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
  312. package/packages/gateway/dist/web/plugins.js +3 -1
  313. package/packages/gateway/dist/web/plugins.js.map +1 -1
  314. package/packages/gateway/dist/web/read.d.ts +2 -0
  315. package/packages/gateway/dist/web/read.d.ts.map +1 -1
  316. package/packages/gateway/dist/web/read.js +1 -0
  317. package/packages/gateway/dist/web/read.js.map +1 -1
  318. package/packages/gateway/dist/web/runtimes.d.ts +10 -0
  319. package/packages/gateway/dist/web/runtimes.d.ts.map +1 -0
  320. package/packages/gateway/dist/web/runtimes.js +25 -0
  321. package/packages/gateway/dist/web/runtimes.js.map +1 -0
  322. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  323. package/packages/gateway/dist/web/server.js +20 -2
  324. package/packages/gateway/dist/web/server.js.map +1 -1
  325. package/packages/gateway/dist/web/write.d.ts +11 -1
  326. package/packages/gateway/dist/web/write.d.ts.map +1 -1
  327. package/packages/gateway/dist/web/write.js +18 -1
  328. package/packages/gateway/dist/web/write.js.map +1 -1
  329. package/packages/install/dist/.tsbuildinfo +1 -1
  330. package/packages/runtime/dist/.tsbuildinfo +1 -1
  331. package/packages/runtime/dist/delegate.d.ts.map +1 -1
  332. package/packages/runtime/dist/delegate.js +1 -0
  333. package/packages/runtime/dist/delegate.js.map +1 -1
  334. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  335. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  336. package/packages/tools/browser/dist/controller.d.ts +5 -0
  337. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  338. package/packages/tools/browser/dist/controller.js +41 -5
  339. package/packages/tools/browser/dist/controller.js.map +1 -1
  340. package/packages/tools/browser/dist/routes.d.ts +6 -0
  341. package/packages/tools/browser/dist/routes.d.ts.map +1 -1
  342. package/packages/tools/browser/dist/routes.js +2 -2
  343. package/packages/tools/browser/dist/routes.js.map +1 -1
  344. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  345. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  346. package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
  347. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  348. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  349. package/packages/web/dist/assets/{index-Bxcetnpt.js → index-Dg5Dl0iF.js} +66 -66
  350. package/packages/web/dist/assets/{lottie_light-CM_Bp6rc.js → lottie_light-vNpJ-Svm.js} +1 -1
  351. package/packages/web/dist/build.json +1 -1
  352. package/packages/web/dist/index.html +1 -1
  353. package/packages/web/dist/precache.json +3 -3
@@ -0,0 +1,582 @@
1
+ /**
2
+ * The ONNX engine: one per process, downloaded on first need, for this
3
+ * platform only (docs/plugin-host-api.md §4.2 `onnx`, 1.32).
4
+ *
5
+ * On disk it is `<data>/runtimes/onnx/<version>/<platform>-<arch>/`: the
6
+ * binding, the library it links, and `.verified.json`, written inside the
7
+ * temporary folder after every file matched its pin and before the folder is
8
+ * renamed into place — so the folder exists only when it is whole.
9
+ *
10
+ * The state is read from disk and from what this process is doing:
11
+ *
12
+ * - `absent`: no folder. A plugin's `ensure` raises a card; nothing is
13
+ * fetched before the owner's yes.
14
+ * - `downloading`: a download runs in this process.
15
+ * - `ready`: the folder is there.
16
+ * - `failed`: a download or a load failed, and the reason is kept in
17
+ * `<platform>-<arch>.failed.json` beside the folder. Nothing retries by
18
+ * itself, across restarts too; Remove in Settings clears it.
19
+ *
20
+ * Sessions share the one engine, which runs in a worker thread of its own so
21
+ * a synchronous `run` never holds the event loop. Each is loaded on its first `run`,
22
+ * with its own thread limit, and unloaded after it sat idle; the next `run`
23
+ * loads it again.
24
+ */
25
+ import { existsSync, readFileSync } from 'node:fs';
26
+ import { mkdir, rename, rm, writeFile } from 'node:fs/promises';
27
+ import path from 'node:path';
28
+ import { Worker } from 'node:worker_threads';
29
+ import { DownloadError, downloadVerified, extractVerified, safeReason, sha256OfFile, sweepTemp, tempName } from './download.js';
30
+ import { currentPin, maxThreads, platformKey, runtimesConfig, runtimesGet, runtimesLog, runtimesRoot } from './config.js';
31
+ import { OrtTensor } from './native.js';
32
+ import { pinnedBytes } from './pins.js';
33
+ const VERIFIED = '.verified.json';
34
+ /** What this process is doing. */
35
+ const live = { received: 0, sessions: new Set() };
36
+ function versionDir(pin) {
37
+ return path.join(runtimesRoot(), 'onnx', pin.version);
38
+ }
39
+ function engineDir(key, pin) {
40
+ return path.join(versionDir(pin), key);
41
+ }
42
+ function failureFile(key, pin) {
43
+ return path.join(versionDir(pin), `${key}.failed.json`);
44
+ }
45
+ function approvedFile(key, pin) {
46
+ return path.join(versionDir(pin), `${key}.approved.json`);
47
+ }
48
+ function readFailure(key, pin) {
49
+ try {
50
+ const parsed = JSON.parse(readFileSync(failureFile(key, pin), 'utf8'));
51
+ return typeof parsed.reason === 'string' ? safeReason(parsed.reason) : 'The engine failed.';
52
+ }
53
+ catch {
54
+ return undefined;
55
+ }
56
+ }
57
+ async function recordFailure(key, pin, raw) {
58
+ // Scrubbed and cut to hosts before it is logged, kept or shown in Settings.
59
+ const reason = safeReason(raw);
60
+ await mkdir(path.dirname(failureFile(key, pin)), { recursive: true });
61
+ await writeFile(failureFile(key, pin), JSON.stringify({ reason, at: new Date().toISOString() }));
62
+ runtimesLog(`onnx ${pin.version} ${key}: ${reason}`);
63
+ return reason;
64
+ }
65
+ /** Keep the owner's yes for the engine until its download ends (`runtimes.download`). */
66
+ export async function markOnnxApproved() {
67
+ const found = currentPin();
68
+ if (found === undefined)
69
+ return;
70
+ await mkdir(versionDir(found.pin), { recursive: true });
71
+ await writeFile(approvedFile(found.key, found.pin), JSON.stringify({ version: found.pin.version, platform: found.key, at: new Date().toISOString() }));
72
+ }
73
+ /** Whether the owner approved this engine and its download has not finished (a restart cut it short). */
74
+ export function onnxApproved() {
75
+ const found = currentPin();
76
+ return found !== undefined && existsSync(approvedFile(found.key, found.pin));
77
+ }
78
+ /** The engine's state now. Synchronous: a few `stat`s. */
79
+ export function onnxState() {
80
+ const found = currentPin();
81
+ if (found === undefined) {
82
+ return {
83
+ state: 'failed',
84
+ version: '',
85
+ sizeBytes: 0,
86
+ downloadBytes: 0,
87
+ platform: platformKey().key,
88
+ available: false,
89
+ reason: `The engine is not available on this platform (${platformKey().key}).`,
90
+ };
91
+ }
92
+ const { key, pin } = found;
93
+ const base = {
94
+ version: pin.version,
95
+ sizeBytes: pinnedBytes(pin),
96
+ downloadBytes: pin.tarball.bytes,
97
+ platform: key,
98
+ available: true,
99
+ };
100
+ if (live.download !== undefined)
101
+ return { ...base, state: 'downloading', receivedBytes: live.received };
102
+ const reason = readFailure(key, pin);
103
+ if (reason !== undefined)
104
+ return { ...base, state: 'failed', reason };
105
+ if (existsSync(path.join(engineDir(key, pin), VERIFIED)))
106
+ return { ...base, state: 'ready' };
107
+ return { ...base, state: 'absent' };
108
+ }
109
+ /**
110
+ * Start the download, once the owner said yes. Answers at once; the download
111
+ * runs in the background and the state says how it went. A second call while
112
+ * one runs joins it. Never starts over a recorded failure or a ready engine.
113
+ */
114
+ export function startOnnxDownload() {
115
+ if (live.download !== undefined)
116
+ return live.download;
117
+ const state = onnxState();
118
+ if (state.state !== 'absent')
119
+ return Promise.resolve();
120
+ const { key, pin } = currentPin();
121
+ live.received = 0;
122
+ const run = downloadEngine(key, pin)
123
+ .catch(async (err) => {
124
+ await recordFailure(key, pin, err instanceof Error ? err.message : String(err)).catch(() => { });
125
+ })
126
+ .finally(async () => {
127
+ // Finished or failed, the yes is spent: a failure is never retried by itself.
128
+ await rm(approvedFile(key, pin), { force: true }).catch(() => { });
129
+ live.download = undefined;
130
+ });
131
+ live.download = run;
132
+ return run;
133
+ }
134
+ async function downloadEngine(key, pin) {
135
+ const dir = versionDir(pin);
136
+ await mkdir(dir, { recursive: true });
137
+ await sweepTemp(dir);
138
+ const tarball = tempName(dir, '.tgz');
139
+ const stage = tempName(dir);
140
+ try {
141
+ await downloadVerified(runtimesGet(), pin.tarball, tarball, {
142
+ onProgress: (received) => {
143
+ live.received = received;
144
+ },
145
+ });
146
+ await mkdir(stage);
147
+ await extractVerified(tarball, pin.files.map((file) => ({ entry: file.entry, dest: path.join(stage, file.name), sha256: file.sha256, bytes: file.bytes })));
148
+ await writeFile(path.join(stage, VERIFIED), JSON.stringify({
149
+ version: pin.version,
150
+ platform: key,
151
+ files: pin.files.map((file) => ({ name: file.name, sha256: file.sha256, bytes: file.bytes })),
152
+ at: new Date().toISOString(),
153
+ }));
154
+ const final = engineDir(key, pin);
155
+ await rm(final, { recursive: true, force: true });
156
+ await rename(stage, final);
157
+ }
158
+ catch (err) {
159
+ await rm(stage, { recursive: true, force: true }).catch(() => { });
160
+ throw err;
161
+ }
162
+ finally {
163
+ await rm(tarball, { force: true }).catch(() => { });
164
+ }
165
+ }
166
+ /** Sweep what a download that died left in this version's folder (once at boot). Skipped while one runs. */
167
+ export async function sweepOnnxTemps() {
168
+ const found = currentPin();
169
+ if (found === undefined || live.download !== undefined)
170
+ return 0;
171
+ return sweepTemp(versionDir(found.pin));
172
+ }
173
+ /* ------------------------------------------------------------------ *
174
+ * Where sessions run
175
+ * ------------------------------------------------------------------ */
176
+ /** A session's feeds or outputs as plain data a worker message carries. */
177
+ function plain(tensors) {
178
+ const out = {};
179
+ for (const [name, tensor] of Object.entries(tensors))
180
+ out[name] = { type: tensor.type, data: tensor.data, dims: [...tensor.dims] };
181
+ return out;
182
+ }
183
+ /** Over a binding in this thread: only the tests' fake bindings (`loadNative`). */
184
+ function inProcessHost(native) {
185
+ const sessions = new Map();
186
+ return {
187
+ alive: true,
188
+ async load(id, modelPath, options) {
189
+ const handle = new native.InferenceSession();
190
+ handle.loadModel(modelPath, options);
191
+ sessions.set(id, handle);
192
+ return { inputs: handle.inputMetadata.map((m) => m.name), outputs: handle.outputMetadata.map((m) => m.name) };
193
+ },
194
+ async run(id, feeds) {
195
+ const handle = sessions.get(id);
196
+ if (handle === undefined)
197
+ throw new OnnxUnavailable('The session is not loaded.');
198
+ const input = {};
199
+ for (const [name, tensor] of Object.entries(feeds))
200
+ input[name] = new OrtTensor(tensor.type, tensor.data, [...tensor.dims]);
201
+ const fetches = {};
202
+ for (const output of handle.outputMetadata)
203
+ fetches[output.name] = null;
204
+ await new Promise((resolve) => setImmediate(resolve));
205
+ const result = handle.run(input, fetches, {});
206
+ const out = {};
207
+ for (const [name, tensor] of Object.entries(result)) {
208
+ out[name] = { type: tensor.type, data: tensor.data, dims: [...tensor.dims] };
209
+ }
210
+ return out;
211
+ },
212
+ async dispose(id) {
213
+ const handle = sessions.get(id);
214
+ sessions.delete(id);
215
+ try {
216
+ handle?.dispose();
217
+ }
218
+ catch {
219
+ // Already gone.
220
+ }
221
+ },
222
+ async close() {
223
+ for (const id of [...sessions.keys()])
224
+ await this.dispose(id);
225
+ },
226
+ };
227
+ }
228
+ /**
229
+ * The engine's worker: it opens the binding and holds every session, so a
230
+ * synchronous `run` holds only this thread. CommonJS, evaluated from this
231
+ * string, so it needs no file of its own. `workerData.fake` (tests only) swaps
232
+ * the binding for one written here, whose `run` spins for as many
233
+ * milliseconds as its first input says and answers it plus one; nothing is
234
+ * ever loaded from a path a caller names but the verified binding.
235
+ */
236
+ const WORKER_SOURCE = `
237
+ const { parentPort, workerData, isMainThread } = require('node:worker_threads');
238
+ const path = require('node:path');
239
+ class OrtTensor {
240
+ constructor(type, data, dims) { this.location = 'cpu'; this.type = type; this.data = data; this.dims = dims; this.size = data.length; }
241
+ }
242
+ const sessions = new Map();
243
+ let native;
244
+ class FakeSession {
245
+ constructor() { this.inputMetadata = [{ name: 'x' }]; this.outputMetadata = [{ name: 'y' }]; }
246
+ loadModel() {}
247
+ run(feeds) {
248
+ const x = feeds.x;
249
+ const until = Date.now() + Number(x.data[0]);
250
+ while (Date.now() < until) {}
251
+ return { y: new OrtTensor('float32', Float32Array.from(x.data, (v) => v + 1), x.dims) };
252
+ }
253
+ dispose() {}
254
+ }
255
+ async function open() {
256
+ if (workerData.fake === true) {
257
+ native = { InferenceSession: FakeSession };
258
+ return;
259
+ }
260
+ const m = { exports: {} };
261
+ process.dlopen(m, path.join(workerData.dir, 'onnxruntime_binding.node'));
262
+ native = m.exports;
263
+ if (!native || typeof native.InferenceSession !== 'function' || typeof native.initOrtOnce !== 'function') {
264
+ throw new Error('the binding does not export InferenceSession and initOrtOnce');
265
+ }
266
+ // Warning level (2): errors and warnings reach the log, nothing chattier.
267
+ native.initOrtOnce(2, OrtTensor, isMainThread);
268
+ }
269
+ const message = (err) => (err instanceof Error ? err.message : String(err));
270
+ parentPort.on('message', (msg) => {
271
+ try {
272
+ if (msg.op === 'load') {
273
+ const s = new native.InferenceSession();
274
+ s.loadModel(msg.modelPath, msg.options);
275
+ sessions.set(msg.session, s);
276
+ parentPort.postMessage({ seq: msg.seq, ok: true, value: { inputs: s.inputMetadata.map((m) => m.name), outputs: s.outputMetadata.map((m) => m.name) } });
277
+ } else if (msg.op === 'run') {
278
+ const s = sessions.get(msg.session);
279
+ if (!s) throw new Error('the session is not loaded');
280
+ const input = {};
281
+ for (const [name, t] of Object.entries(msg.feeds)) input[name] = new OrtTensor(t.type, t.data, t.dims);
282
+ const fetches = {};
283
+ for (const o of s.outputMetadata) fetches[o.name] = null;
284
+ const result = s.run(input, fetches, {});
285
+ const out = {};
286
+ for (const [name, t] of Object.entries(result)) out[name] = { type: t.type, data: t.data, dims: Array.from(t.dims) };
287
+ parentPort.postMessage({ seq: msg.seq, ok: true, value: out });
288
+ } else if (msg.op === 'dispose') {
289
+ const s = sessions.get(msg.session);
290
+ sessions.delete(msg.session);
291
+ try { if (s) s.dispose(); } catch {}
292
+ parentPort.postMessage({ seq: msg.seq, ok: true });
293
+ }
294
+ } catch (err) {
295
+ parentPort.postMessage({ seq: msg.seq, ok: false, message: message(err) });
296
+ }
297
+ });
298
+ open().then(() => parentPort.postMessage({ ready: true }), (err) => parentPort.postMessage({ ready: false, message: message(err) }));
299
+ `;
300
+ /** Start the engine's worker over a verified folder; answers once the binding is open. */
301
+ function workerHost(dir, fake) {
302
+ return new Promise((resolve, reject) => {
303
+ const worker = new Worker(WORKER_SOURCE, { eval: true, workerData: { dir, fake } });
304
+ const pending = new Map();
305
+ let seq = 0;
306
+ let alive = true;
307
+ let ready = false;
308
+ const fail = (err) => {
309
+ alive = false;
310
+ for (const waiting of pending.values())
311
+ waiting.reject(err);
312
+ pending.clear();
313
+ if (!ready)
314
+ reject(err);
315
+ };
316
+ const call = (msg) => {
317
+ if (!alive)
318
+ return Promise.reject(new OnnxUnavailable('The engine stopped; the next run loads it again.'));
319
+ return new Promise((done, failed) => {
320
+ seq += 1;
321
+ pending.set(seq, { resolve: done, reject: failed });
322
+ // Held open while it works; idle, it never keeps the process alive.
323
+ worker.ref();
324
+ worker.postMessage({ ...msg, seq });
325
+ });
326
+ };
327
+ const host = {
328
+ get alive() {
329
+ return alive;
330
+ },
331
+ load: (id, modelPath, options) => call({ op: 'load', session: id, modelPath, options }),
332
+ run: (id, feeds) => call({ op: 'run', session: id, feeds: plain(feeds) }),
333
+ dispose: (id) => (alive ? call({ op: 'dispose', session: id }).catch(() => { }) : Promise.resolve()),
334
+ async close() {
335
+ alive = false;
336
+ await worker.terminate().catch(() => 0);
337
+ },
338
+ };
339
+ worker.on('message', (msg) => {
340
+ if ('ready' in msg) {
341
+ if (msg.ready) {
342
+ ready = true;
343
+ worker.unref();
344
+ resolve(host);
345
+ }
346
+ else {
347
+ fail(new Error(msg.message ?? 'the binding could not be opened'));
348
+ void worker.terminate().catch(() => 0);
349
+ }
350
+ return;
351
+ }
352
+ const waiting = pending.get(msg.seq);
353
+ if (waiting === undefined)
354
+ return;
355
+ pending.delete(msg.seq);
356
+ if (pending.size === 0)
357
+ worker.unref();
358
+ if (msg.ok)
359
+ waiting.resolve(msg.value);
360
+ else
361
+ waiting.reject(new Error(msg.message ?? 'the engine failed'));
362
+ });
363
+ worker.on('error', (err) => fail(err instanceof Error ? err : new Error(String(err))));
364
+ worker.on('exit', (code) => fail(new OnnxUnavailable(`The engine's worker stopped (exit ${code}).`)));
365
+ });
366
+ }
367
+ /**
368
+ * The engine, opened once per process. Each file is hashed again against
369
+ * the pin before it is opened; a mismatch or a load error is recorded as
370
+ * `failed` with the reason and is never retried by itself.
371
+ */
372
+ async function loadedNative() {
373
+ const state = onnxState();
374
+ if (state.state !== 'ready') {
375
+ throw new OnnxUnavailable(state.state === 'failed'
376
+ ? (state.reason ?? 'The engine failed.')
377
+ : state.state === 'downloading'
378
+ ? 'The engine is still downloading.'
379
+ : 'The engine is not downloaded; ask for it with ctx.buddi.onnx.ensure first.');
380
+ }
381
+ const { key, pin } = currentPin();
382
+ const dir = engineDir(key, pin);
383
+ if (live.native?.dir === dir && live.native.host.alive)
384
+ return live.native.host;
385
+ if (live.loading !== undefined)
386
+ return live.loading;
387
+ live.loading = (async () => {
388
+ try {
389
+ for (const file of pin.files) {
390
+ const digest = await sha256OfFile(path.join(dir, file.name));
391
+ if (digest !== file.sha256)
392
+ throw new DownloadError(`${file.name} on disk no longer matches its pinned checksum.`);
393
+ }
394
+ const config = runtimesConfig();
395
+ const host = config.loadNative !== undefined ? inProcessHost(config.loadNative(dir, pin)) : await workerHost(dir, config.fakeWorkerBinding === true);
396
+ live.native = { dir, host };
397
+ return host;
398
+ }
399
+ catch (err) {
400
+ const reason = await recordFailure(key, pin, `The engine could not be loaded: ${err instanceof Error ? err.message : String(err)}`).catch(() => safeReason(`The engine could not be loaded: ${err instanceof Error ? err.message : String(err)}`));
401
+ throw new OnnxUnavailable(reason);
402
+ }
403
+ finally {
404
+ live.loading = undefined;
405
+ }
406
+ })();
407
+ return live.loading;
408
+ }
409
+ /** The engine is not there to run on: absent, downloading or failed. */
410
+ export class OnnxUnavailable extends Error {
411
+ constructor(message) {
412
+ super(message);
413
+ this.name = 'OnnxUnavailable';
414
+ }
415
+ }
416
+ export const DEFAULT_IDLE_UNLOAD_MS = 5 * 60_000;
417
+ let nextSessionId = 0;
418
+ class SharedSession {
419
+ modelPath;
420
+ handle;
421
+ timer;
422
+ closed = false;
423
+ queue = Promise.resolve();
424
+ threads;
425
+ idleMs;
426
+ constructor(modelPath, opts) {
427
+ this.modelPath = modelPath;
428
+ this.threads = Math.min(maxThreads(), Math.max(1, Math.floor(opts.threads ?? 2)));
429
+ this.idleMs = Math.max(0, opts.idleUnloadMs ?? DEFAULT_IDLE_UNLOAD_MS);
430
+ }
431
+ get loaded() {
432
+ return this.handle !== undefined && this.handle.host.alive;
433
+ }
434
+ /** The thread limit the session was opened with. */
435
+ get threadLimit() {
436
+ return this.threads;
437
+ }
438
+ /**
439
+ * The model, loaded. Runs inside the session's queue, so a `close` waits
440
+ * behind it; and closure is checked again after every wait, so a session
441
+ * closed while the engine was being verified or the model loaded never
442
+ * keeps a model nobody can reach.
443
+ */
444
+ async load() {
445
+ if (this.closed)
446
+ throw new OnnxUnavailable('This session was closed.');
447
+ if (this.handle !== undefined && this.handle.host.alive)
448
+ return this.handle;
449
+ this.handle = undefined;
450
+ const host = await loadedNative();
451
+ if (this.closed)
452
+ throw new OnnxUnavailable('This session was closed.');
453
+ nextSessionId += 1;
454
+ const id = nextSessionId;
455
+ const names = await host.load(id, this.modelPath, {
456
+ intraOpNumThreads: this.threads,
457
+ interOpNumThreads: 1,
458
+ graphOptimizationLevel: 'all',
459
+ executionMode: 'sequential',
460
+ });
461
+ if (this.closed) {
462
+ await host.dispose(id);
463
+ throw new OnnxUnavailable('This session was closed.');
464
+ }
465
+ this.handle = { host, id, names };
466
+ return this.handle;
467
+ }
468
+ arm() {
469
+ if (this.timer !== undefined)
470
+ clearTimeout(this.timer);
471
+ this.timer = undefined;
472
+ if (this.idleMs === 0 || this.closed)
473
+ return;
474
+ this.timer = setTimeout(() => {
475
+ this.timer = undefined;
476
+ this.unload();
477
+ }, this.idleMs);
478
+ this.timer.unref?.();
479
+ }
480
+ /** Drop the model now. Called only from inside the queue. */
481
+ async drop() {
482
+ if (this.timer !== undefined)
483
+ clearTimeout(this.timer);
484
+ this.timer = undefined;
485
+ const handle = this.handle;
486
+ this.handle = undefined;
487
+ if (handle !== undefined)
488
+ await handle.host.dispose(handle.id);
489
+ }
490
+ /** Drop the model from memory once what is running finishes; the session stays usable. */
491
+ unload() {
492
+ void this.drain();
493
+ }
494
+ /** `unload`, awaited. */
495
+ drain() {
496
+ return this.serial(() => this.drop());
497
+ }
498
+ /** One at a time per session. */
499
+ serial(fn) {
500
+ const next = this.queue.then(fn, fn);
501
+ this.queue = next.catch(() => { });
502
+ return next;
503
+ }
504
+ run(feeds) {
505
+ return this.serial(async () => {
506
+ const handle = await this.load();
507
+ if (this.timer !== undefined)
508
+ clearTimeout(this.timer);
509
+ try {
510
+ return await handle.host.run(handle.id, feeds);
511
+ }
512
+ finally {
513
+ this.arm();
514
+ }
515
+ });
516
+ }
517
+ names() {
518
+ return this.serial(async () => {
519
+ const handle = await this.load();
520
+ this.arm();
521
+ return { inputs: [...handle.names.inputs], outputs: [...handle.names.outputs] };
522
+ });
523
+ }
524
+ async close() {
525
+ this.closed = true;
526
+ live.sessions.delete(this);
527
+ await this.drain();
528
+ }
529
+ }
530
+ /**
531
+ * A session over `modelPath`, sharing the process's one engine. Nothing is
532
+ * loaded until the first `run`. The caller has checked the path is one the
533
+ * plugin may open.
534
+ */
535
+ export function createOnnxSession(modelPath, opts = {}) {
536
+ const session = new SharedSession(modelPath, opts);
537
+ live.sessions.add(session);
538
+ return session;
539
+ }
540
+ /** How many sessions exist, and how many hold a model in memory now. */
541
+ export function onnxSessionCounts() {
542
+ let loaded = 0;
543
+ for (const session of live.sessions)
544
+ if (session.loaded)
545
+ loaded += 1;
546
+ return { open: live.sessions.size, loaded };
547
+ }
548
+ /**
549
+ * Remove the engine (Settings → System): unload every session, stop the
550
+ * engine's worker, delete the folder and any recorded failure. Refused while a
551
+ * download runs. A plugin's next `ensure` asks the owner again.
552
+ */
553
+ export async function removeOnnxRuntime() {
554
+ if (live.download !== undefined)
555
+ return { removed: false, refused: 'The engine is downloading; remove it once that is done.' };
556
+ const found = currentPin();
557
+ if (found === undefined)
558
+ return { removed: false, refused: 'There is no engine on this platform.' };
559
+ await Promise.all([...live.sessions].map((session) => session.drain()));
560
+ const host = live.native?.host;
561
+ live.native = undefined;
562
+ await host?.close();
563
+ const { key, pin } = found;
564
+ const existed = existsSync(engineDir(key, pin)) || existsSync(failureFile(key, pin));
565
+ await rm(engineDir(key, pin), { recursive: true, force: true });
566
+ await rm(failureFile(key, pin), { force: true });
567
+ await rm(approvedFile(key, pin), { force: true });
568
+ await sweepTemp(versionDir(pin));
569
+ return { removed: existed };
570
+ }
571
+ /** Forget what this process was doing. Tests only. */
572
+ export function resetOnnxRuntime() {
573
+ for (const session of live.sessions)
574
+ session.unload();
575
+ live.sessions.clear();
576
+ void live.native?.host.close();
577
+ live.download = undefined;
578
+ live.loading = undefined;
579
+ live.native = undefined;
580
+ live.received = 0;
581
+ }
582
+ //# sourceMappingURL=onnx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onnx.js","sourceRoot":"","sources":["../../src/runtimes/onnx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * The ONNX Runtime builds buddi fetches, pinned (docs/plugin-host-api.md §4.2
3
+ * `onnx`, 1.32).
4
+ *
5
+ * The source is the `onnxruntime-node` tarball on the npm registry, because it
6
+ * is the only place Microsoft publishes the small N-API binding
7
+ * (`onnxruntime_binding.node`) beside the shared library it links: the GitHub
8
+ * release archives (`onnxruntime-<os>-<arch>-<ver>.tgz`) carry the C library
9
+ * and no binding. The tarball holds every platform, so buddi downloads it
10
+ * once, checks its sha256 against the pin below, and extracts only this
11
+ * platform's two files, each checked against its own pin, before anything is
12
+ * moved into place or loaded. The rest of the tarball is never written.
13
+ *
14
+ * One version, 1.30.0 (the newest stable), everywhere Microsoft still builds
15
+ * it. 1.24 dropped macOS x64 from both npm and the GitHub releases, and
16
+ * darwin-x64 (1.23.2, the last build that has it) is left out until it has
17
+ * been checked on an Intel Mac (see below). Windows is not offered yet.
18
+ *
19
+ * To move a pin: download the tarball, `shasum -a 256` it and the two files
20
+ * under `package/bin/napi-v6/<platform>/<arch>/`, and change all four numbers
21
+ * here together. Pure data; nothing here does I/O.
22
+ */
23
+ /** One file kept from the tarball. */
24
+ export interface OnnxPinnedFile {
25
+ /** Its path inside the tarball. */
26
+ entry: string;
27
+ /** Its name on disk, which the binding's rpath expects. */
28
+ name: string;
29
+ sha256: string;
30
+ bytes: number;
31
+ }
32
+ export interface OnnxPin {
33
+ version: string;
34
+ /** What is downloaded: the whole npm tarball, checked before it is opened. */
35
+ tarball: {
36
+ url: string;
37
+ sha256: string;
38
+ bytes: number;
39
+ };
40
+ /** What is kept: this platform's binding and library. */
41
+ files: readonly OnnxPinnedFile[];
42
+ }
43
+ /** `<platform>-<arch>`, as Node names them. */
44
+ export type OnnxPlatform = 'darwin-arm64' | 'darwin-x64' | 'linux-x64' | 'linux-arm64';
45
+ export declare const ONNX_PINS: Readonly<Partial<Record<OnnxPlatform, OnnxPin>>>;
46
+ /** The pin for a platform, or undefined where buddi offers no engine (Windows, anything else). */
47
+ export declare function onnxPinFor(platform: string, arch: string): {
48
+ key: OnnxPlatform;
49
+ pin: OnnxPin;
50
+ } | undefined;
51
+ /** What a pin keeps on disk. */
52
+ export declare function pinnedBytes(pin: OnnxPin): number;
53
+ //# sourceMappingURL=pins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../../src/runtimes/pins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,yDAAyD;IACzD,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAClC;AAED,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;AAoBvF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAyBtE,CAAC;AAEF,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAI1G;AAED,gCAAgC;AAChC,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEhD"}