@atomic-chat/core 0.13.6 → 0.18.3

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 (460) hide show
  1. package/README.md +1 -1
  2. package/dist/app-daemon.js +9 -0
  3. package/dist/app-daemon.js.map +1 -1
  4. package/dist/backend/advisor/advisor.d.ts +8 -7
  5. package/dist/backend/advisor/advisor.js +17 -25
  6. package/dist/backend/advisor/advisor.js.map +1 -1
  7. package/dist/backend/catalog/index.d.ts +4 -2
  8. package/dist/backend/catalog/index.js +4 -2
  9. package/dist/backend/catalog/index.js.map +1 -1
  10. package/dist/backend/catalog/manifest.d.ts +5 -51
  11. package/dist/backend/catalog/manifest.js +5 -93
  12. package/dist/backend/catalog/manifest.js.map +1 -1
  13. package/dist/backend/catalog/upstream-releases-baseline.d.ts +2 -0
  14. package/dist/backend/catalog/upstream-releases-baseline.js +12 -0
  15. package/dist/backend/catalog/upstream-releases-baseline.js.map +1 -0
  16. package/dist/backend/catalog/upstream-releases-baseline.json +101 -0
  17. package/dist/backend/catalog/upstream-releases-catalog.d.ts +54 -0
  18. package/dist/backend/catalog/upstream-releases-catalog.js +148 -0
  19. package/dist/backend/catalog/upstream-releases-catalog.js.map +1 -0
  20. package/dist/backend/catalog/upstream-releases.d.ts +75 -0
  21. package/dist/backend/catalog/upstream-releases.js +155 -0
  22. package/dist/backend/catalog/upstream-releases.js.map +1 -0
  23. package/dist/backend/install/service.d.ts +7 -4
  24. package/dist/backend/install/service.js +4 -4
  25. package/dist/backend/install/service.js.map +1 -1
  26. package/dist/cli/commands/serve.js +10 -28
  27. package/dist/cli/commands/serve.js.map +1 -1
  28. package/dist/cli/main.d.ts +1 -1
  29. package/dist/cli/main.js +5 -1
  30. package/dist/cli/main.js.map +1 -1
  31. package/dist/client/control-client.d.ts +16 -19
  32. package/dist/client/control-client.js +24 -29
  33. package/dist/client/control-client.js.map +1 -1
  34. package/dist/cloud/registry.d.ts +14 -1
  35. package/dist/cloud/registry.js +74 -2
  36. package/dist/cloud/registry.js.map +1 -1
  37. package/dist/config/paths.d.ts +8 -3
  38. package/dist/config/paths.js +21 -9
  39. package/dist/config/paths.js.map +1 -1
  40. package/dist/contracts/diffusion.d.ts +45 -18
  41. package/dist/contracts/diffusion.js +1 -1
  42. package/dist/contracts/diffusion.js.map +1 -1
  43. package/dist/contracts/engine-builds.d.ts +1 -1
  44. package/dist/contracts/engine-builds.js +1 -1
  45. package/dist/contracts/engine-builds.js.map +1 -1
  46. package/dist/contracts/engines.d.ts +1 -1
  47. package/dist/contracts/engines.js +4 -0
  48. package/dist/contracts/engines.js.map +1 -1
  49. package/dist/contracts/errors.d.ts +8 -4
  50. package/dist/contracts/errors.js +16 -0
  51. package/dist/contracts/errors.js.map +1 -1
  52. package/dist/contracts/events.d.ts +18 -6
  53. package/dist/contracts/foundry-local.d.ts +77 -0
  54. package/dist/contracts/foundry-local.js +17 -0
  55. package/dist/contracts/foundry-local.js.map +1 -0
  56. package/dist/contracts/index.d.ts +2 -1
  57. package/dist/contracts/index.js +2 -1
  58. package/dist/contracts/index.js.map +1 -1
  59. package/dist/contracts/media.d.ts +186 -0
  60. package/dist/contracts/media.js +55 -0
  61. package/dist/contracts/media.js.map +1 -0
  62. package/dist/contracts/model-yml.d.ts +28 -0
  63. package/dist/contracts/model-yml.js +11 -0
  64. package/dist/contracts/model-yml.js.map +1 -1
  65. package/dist/contracts/session.d.ts +14 -1
  66. package/dist/contracts/session.js +10 -0
  67. package/dist/contracts/session.js.map +1 -1
  68. package/dist/contracts/settings.d.ts +40 -1
  69. package/dist/contracts/settings.js.map +1 -1
  70. package/dist/core/atomic-core.d.ts +5 -5
  71. package/dist/core/atomic-core.js.map +1 -1
  72. package/dist/core/create.js +149 -64
  73. package/dist/core/create.js.map +1 -1
  74. package/dist/core/managed-engines.js +2 -0
  75. package/dist/core/managed-engines.js.map +1 -1
  76. package/dist/core/prism.d.ts +21 -6
  77. package/dist/core/prism.js +44 -0
  78. package/dist/core/prism.js.map +1 -1
  79. package/dist/core/types.d.ts +9 -5
  80. package/dist/diffusion/gallery.d.ts +24 -3
  81. package/dist/diffusion/gallery.js +151 -21
  82. package/dist/diffusion/gallery.js.map +1 -1
  83. package/dist/diffusion/index.d.ts +3 -0
  84. package/dist/diffusion/index.js +3 -0
  85. package/dist/diffusion/index.js.map +1 -1
  86. package/dist/diffusion/install.d.ts +0 -4
  87. package/dist/diffusion/install.js +5 -2
  88. package/dist/diffusion/install.js.map +1 -1
  89. package/dist/diffusion/jobs.d.ts +6 -1
  90. package/dist/diffusion/jobs.js +6 -1
  91. package/dist/diffusion/jobs.js.map +1 -1
  92. package/dist/diffusion/media-header.d.ts +22 -0
  93. package/dist/diffusion/media-header.js +149 -0
  94. package/dist/diffusion/media-header.js.map +1 -0
  95. package/dist/diffusion/parse.d.ts +3 -1
  96. package/dist/diffusion/parse.js +36 -0
  97. package/dist/diffusion/parse.js.map +1 -1
  98. package/dist/diffusion/recipe.d.ts +10 -1
  99. package/dist/diffusion/recipe.js +85 -21
  100. package/dist/diffusion/recipe.js.map +1 -1
  101. package/dist/diffusion/remote-job.d.ts +76 -0
  102. package/dist/diffusion/remote-job.js +643 -0
  103. package/dist/diffusion/remote-job.js.map +1 -0
  104. package/dist/diffusion/remote-store.d.ts +38 -0
  105. package/dist/diffusion/remote-store.js +91 -0
  106. package/dist/diffusion/remote-store.js.map +1 -0
  107. package/dist/diffusion/server-process.d.ts +5 -2
  108. package/dist/diffusion/server-process.js +10 -2
  109. package/dist/diffusion/server-process.js.map +1 -1
  110. package/dist/diffusion/service.d.ts +9 -1
  111. package/dist/diffusion/service.js +49 -9
  112. package/dist/diffusion/service.js.map +1 -1
  113. package/dist/diffusion/state.d.ts +13 -1
  114. package/dist/diffusion/state.js +8 -0
  115. package/dist/diffusion/state.js.map +1 -1
  116. package/dist/diffusion/video-gallery.d.ts +11 -4
  117. package/dist/diffusion/video-gallery.js +62 -25
  118. package/dist/diffusion/video-gallery.js.map +1 -1
  119. package/dist/diffusion/video-history.js +4 -1
  120. package/dist/diffusion/video-history.js.map +1 -1
  121. package/dist/diffusion/video-recipe.js +58 -25
  122. package/dist/diffusion/video-recipe.js.map +1 -1
  123. package/dist/diffusion/wiring.d.ts +3 -0
  124. package/dist/diffusion/wiring.js +1 -0
  125. package/dist/diffusion/wiring.js.map +1 -1
  126. package/dist/downloads/archive.d.ts +1 -1
  127. package/dist/downloads/archive.js +2 -2
  128. package/dist/downloads/archive.js.map +1 -1
  129. package/dist/downloads/downloader.d.ts +1 -18
  130. package/dist/downloads/downloader.js +1 -45
  131. package/dist/downloads/downloader.js.map +1 -1
  132. package/dist/engine-builds/engines.d.ts +83 -0
  133. package/dist/engine-builds/engines.js +144 -0
  134. package/dist/engine-builds/engines.js.map +1 -0
  135. package/dist/engine-builds/foundry-local.d.ts +22 -0
  136. package/dist/engine-builds/foundry-local.js +100 -0
  137. package/dist/engine-builds/foundry-local.js.map +1 -0
  138. package/dist/engine-builds/manifest.d.ts +57 -6
  139. package/dist/engine-builds/manifest.js +109 -4
  140. package/dist/engine-builds/manifest.js.map +1 -1
  141. package/dist/engine-builds/order.d.ts +2 -1
  142. package/dist/engine-builds/order.js +11 -4
  143. package/dist/engine-builds/order.js.map +1 -1
  144. package/dist/engine-builds/select.d.ts +27 -0
  145. package/dist/engine-builds/select.js +45 -0
  146. package/dist/engine-builds/select.js.map +1 -1
  147. package/dist/engine-builds/service.d.ts +14 -15
  148. package/dist/engine-builds/service.js +68 -126
  149. package/dist/engine-builds/service.js.map +1 -1
  150. package/dist/engines/service.d.ts +6 -3
  151. package/dist/engines/service.js +6 -3
  152. package/dist/engines/service.js.map +1 -1
  153. package/dist/hardware/index.d.ts +1 -0
  154. package/dist/hardware/index.js +1 -0
  155. package/dist/hardware/index.js.map +1 -1
  156. package/dist/hardware/npu.d.ts +14 -0
  157. package/dist/hardware/npu.js +29 -0
  158. package/dist/hardware/npu.js.map +1 -0
  159. package/dist/integrations/detect.d.ts +2 -0
  160. package/dist/integrations/detect.js +4 -3
  161. package/dist/integrations/detect.js.map +1 -1
  162. package/dist/lock/instance-lock.js +5 -2
  163. package/dist/lock/instance-lock.js.map +1 -1
  164. package/dist/lock/process-identity.d.ts +9 -3
  165. package/dist/lock/process-identity.js +75 -9
  166. package/dist/lock/process-identity.js.map +1 -1
  167. package/dist/media/adapters/a1111.d.ts +32 -0
  168. package/dist/media/adapters/a1111.js +207 -0
  169. package/dist/media/adapters/a1111.js.map +1 -0
  170. package/dist/media/adapters/aimlapi-videos.d.ts +34 -0
  171. package/dist/media/adapters/aimlapi-videos.js +172 -0
  172. package/dist/media/adapters/aimlapi-videos.js.map +1 -0
  173. package/dist/media/adapters/dashscope-image.d.ts +26 -0
  174. package/dist/media/adapters/dashscope-image.js +160 -0
  175. package/dist/media/adapters/dashscope-image.js.map +1 -0
  176. package/dist/media/adapters/dashscope-video.d.ts +47 -0
  177. package/dist/media/adapters/dashscope-video.js +251 -0
  178. package/dist/media/adapters/dashscope-video.js.map +1 -0
  179. package/dist/media/adapters/gemini-image.d.ts +27 -0
  180. package/dist/media/adapters/gemini-image.js +181 -0
  181. package/dist/media/adapters/gemini-image.js.map +1 -0
  182. package/dist/media/adapters/gemini-veo.d.ts +39 -0
  183. package/dist/media/adapters/gemini-veo.js +196 -0
  184. package/dist/media/adapters/gemini-veo.js.map +1 -0
  185. package/dist/media/adapters/hf-images.d.ts +85 -0
  186. package/dist/media/adapters/hf-images.js +439 -0
  187. package/dist/media/adapters/hf-images.js.map +1 -0
  188. package/dist/media/adapters/hf-videos.d.ts +44 -0
  189. package/dist/media/adapters/hf-videos.js +265 -0
  190. package/dist/media/adapters/hf-videos.js.map +1 -0
  191. package/dist/media/adapters/minimax-image.d.ts +26 -0
  192. package/dist/media/adapters/minimax-image.js +111 -0
  193. package/dist/media/adapters/minimax-image.js.map +1 -0
  194. package/dist/media/adapters/minimax-video-v2.d.ts +34 -0
  195. package/dist/media/adapters/minimax-video-v2.js +191 -0
  196. package/dist/media/adapters/minimax-video-v2.js.map +1 -0
  197. package/dist/media/adapters/minimax-video.d.ts +28 -0
  198. package/dist/media/adapters/minimax-video.js +155 -0
  199. package/dist/media/adapters/minimax-video.js.map +1 -0
  200. package/dist/media/adapters/mistral-agent-image.d.ts +33 -0
  201. package/dist/media/adapters/mistral-agent-image.js +108 -0
  202. package/dist/media/adapters/mistral-agent-image.js.map +1 -0
  203. package/dist/media/adapters/nvidia-genai.d.ts +28 -0
  204. package/dist/media/adapters/nvidia-genai.js +182 -0
  205. package/dist/media/adapters/nvidia-genai.js.map +1 -0
  206. package/dist/media/adapters/openai-images.d.ts +23 -0
  207. package/dist/media/adapters/openai-images.js +164 -0
  208. package/dist/media/adapters/openai-images.js.map +1 -0
  209. package/dist/media/adapters/openai-videos.d.ts +34 -0
  210. package/dist/media/adapters/openai-videos.js +175 -0
  211. package/dist/media/adapters/openai-videos.js.map +1 -0
  212. package/dist/media/adapters/openrouter-images.d.ts +25 -0
  213. package/dist/media/adapters/openrouter-images.js +161 -0
  214. package/dist/media/adapters/openrouter-images.js.map +1 -0
  215. package/dist/media/adapters/openrouter-videos.d.ts +43 -0
  216. package/dist/media/adapters/openrouter-videos.js +208 -0
  217. package/dist/media/adapters/openrouter-videos.js.map +1 -0
  218. package/dist/media/adapters/registry.d.ts +7 -0
  219. package/dist/media/adapters/registry.js +45 -0
  220. package/dist/media/adapters/registry.js.map +1 -0
  221. package/dist/media/adapters/types.d.ts +133 -0
  222. package/dist/media/adapters/types.js +15 -0
  223. package/dist/media/adapters/types.js.map +1 -0
  224. package/dist/media/adapters/xai-images.d.ts +19 -0
  225. package/dist/media/adapters/xai-images.js +83 -0
  226. package/dist/media/adapters/xai-images.js.map +1 -0
  227. package/dist/media/adapters/xai-videos.d.ts +29 -0
  228. package/dist/media/adapters/xai-videos.js +148 -0
  229. package/dist/media/adapters/xai-videos.js.map +1 -0
  230. package/dist/media/catalog-baseline.d.ts +2 -0
  231. package/dist/media/catalog-baseline.js +10 -0
  232. package/dist/media/catalog-baseline.js.map +1 -0
  233. package/dist/media/catalog-baseline.json +1819 -0
  234. package/dist/media/catalog-service.d.ts +42 -0
  235. package/dist/media/catalog-service.js +111 -0
  236. package/dist/media/catalog-service.js.map +1 -0
  237. package/dist/media/catalog.d.ts +50 -0
  238. package/dist/media/catalog.js +315 -0
  239. package/dist/media/catalog.js.map +1 -0
  240. package/dist/media/http.d.ts +125 -0
  241. package/dist/media/http.js +308 -0
  242. package/dist/media/http.js.map +1 -0
  243. package/dist/media/index.d.ts +14 -0
  244. package/dist/media/index.js +15 -0
  245. package/dist/media/index.js.map +1 -0
  246. package/dist/media/mask.d.ts +12 -0
  247. package/dist/media/mask.js +57 -0
  248. package/dist/media/mask.js.map +1 -0
  249. package/dist/media/service.d.ts +42 -0
  250. package/dist/media/service.js +144 -0
  251. package/dist/media/service.js.map +1 -0
  252. package/dist/models/hf.d.ts +3 -16
  253. package/dist/models/hf.js +4 -42
  254. package/dist/models/hf.js.map +1 -1
  255. package/dist/router/resolve.d.ts +15 -4
  256. package/dist/router/resolve.js +26 -3
  257. package/dist/router/resolve.js.map +1 -1
  258. package/dist/runtime/environment/linux-provisioner.js +7 -67
  259. package/dist/runtime/environment/linux-provisioner.js.map +1 -1
  260. package/dist/runtime/environment/runtime-removal-plan.d.ts +19 -0
  261. package/dist/runtime/environment/runtime-removal-plan.js +74 -0
  262. package/dist/runtime/environment/runtime-removal-plan.js.map +1 -0
  263. package/dist/runtime/environment/windows-provisioner.js +20 -4
  264. package/dist/runtime/environment/windows-provisioner.js.map +1 -1
  265. package/dist/runtime/foundry-local/accelerators.d.ts +42 -0
  266. package/dist/runtime/foundry-local/accelerators.js +153 -0
  267. package/dist/runtime/foundry-local/accelerators.js.map +1 -0
  268. package/dist/runtime/foundry-local/check.d.ts +19 -0
  269. package/dist/runtime/foundry-local/check.js +69 -0
  270. package/dist/runtime/foundry-local/check.js.map +1 -0
  271. package/dist/runtime/foundry-local/host/args.d.ts +44 -0
  272. package/dist/runtime/foundry-local/host/args.js +109 -0
  273. package/dist/runtime/foundry-local/host/args.js.map +1 -0
  274. package/dist/runtime/foundry-local/host/execution-providers.d.ts +27 -0
  275. package/dist/runtime/foundry-local/host/execution-providers.js +43 -0
  276. package/dist/runtime/foundry-local/host/execution-providers.js.map +1 -0
  277. package/dist/runtime/foundry-local/host/ffi-bun.d.ts +17 -0
  278. package/dist/runtime/foundry-local/host/ffi-bun.js +256 -0
  279. package/dist/runtime/foundry-local/host/ffi-bun.js.map +1 -0
  280. package/dist/runtime/foundry-local/host/library.d.ts +61 -0
  281. package/dist/runtime/foundry-local/host/library.js +17 -0
  282. package/dist/runtime/foundry-local/host/library.js.map +1 -0
  283. package/dist/runtime/foundry-local/host/run.d.ts +54 -0
  284. package/dist/runtime/foundry-local/host/run.js +316 -0
  285. package/dist/runtime/foundry-local/host/run.js.map +1 -0
  286. package/dist/runtime/foundry-local/host-process.d.ts +78 -0
  287. package/dist/runtime/foundry-local/host-process.js +182 -0
  288. package/dist/runtime/foundry-local/host-process.js.map +1 -0
  289. package/dist/runtime/foundry-local/index.d.ts +11 -0
  290. package/dist/runtime/foundry-local/index.js +11 -0
  291. package/dist/runtime/foundry-local/index.js.map +1 -0
  292. package/dist/runtime/foundry-local/model-yml.d.ts +8 -0
  293. package/dist/runtime/foundry-local/model-yml.js +63 -0
  294. package/dist/runtime/foundry-local/model-yml.js.map +1 -0
  295. package/dist/runtime/foundry-local/runtime.d.ts +88 -0
  296. package/dist/runtime/foundry-local/runtime.js +321 -0
  297. package/dist/runtime/foundry-local/runtime.js.map +1 -0
  298. package/dist/runtime/llamacpp/args.d.ts +5 -0
  299. package/dist/runtime/llamacpp/args.js +7 -1
  300. package/dist/runtime/llamacpp/args.js.map +1 -1
  301. package/dist/runtime/llamacpp/errors.d.ts +1 -0
  302. package/dist/runtime/llamacpp/errors.js +10 -0
  303. package/dist/runtime/llamacpp/errors.js.map +1 -1
  304. package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
  305. package/dist/runtime/llamacpp/load-plan.js +8 -0
  306. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  307. package/dist/runtime/llamacpp/runtime-device.d.ts +8 -0
  308. package/dist/runtime/llamacpp/runtime-device.js +9 -3
  309. package/dist/runtime/llamacpp/runtime-device.js.map +1 -1
  310. package/dist/runtime/llamacpp/runtime.d.ts +6 -1
  311. package/dist/runtime/llamacpp/runtime.js +19 -3
  312. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  313. package/dist/runtime/managed-engines/spec.d.ts +2 -2
  314. package/dist/runtime/managed-engines/spec.js +6 -0
  315. package/dist/runtime/managed-engines/spec.js.map +1 -1
  316. package/dist/runtime/managed-models/compatibility.d.ts +10 -0
  317. package/dist/runtime/managed-models/compatibility.js +18 -0
  318. package/dist/runtime/managed-models/compatibility.js.map +1 -1
  319. package/dist/runtime/managed-text/gateway.d.ts +2 -0
  320. package/dist/runtime/managed-text/gateway.js +1 -1
  321. package/dist/runtime/managed-text/gateway.js.map +1 -1
  322. package/dist/runtime/managed-text/request-rules.d.ts +9 -7
  323. package/dist/runtime/managed-text/request-rules.js +58 -2
  324. package/dist/runtime/managed-text/request-rules.js.map +1 -1
  325. package/dist/runtime/managed-text/setting-values.d.ts +9 -0
  326. package/dist/runtime/managed-text/setting-values.js +44 -0
  327. package/dist/runtime/managed-text/setting-values.js.map +1 -0
  328. package/dist/runtime/sglang/adapter.d.ts +50 -0
  329. package/dist/runtime/sglang/adapter.js +393 -0
  330. package/dist/runtime/sglang/adapter.js.map +1 -0
  331. package/dist/runtime/sglang/engine.d.ts +16 -0
  332. package/dist/runtime/sglang/engine.js +38 -0
  333. package/dist/runtime/sglang/engine.js.map +1 -0
  334. package/dist/runtime/sglang/index.d.ts +11 -0
  335. package/dist/runtime/sglang/index.js +12 -0
  336. package/dist/runtime/sglang/index.js.map +1 -0
  337. package/dist/runtime/sglang/memory.d.ts +64 -0
  338. package/dist/runtime/sglang/memory.js +90 -0
  339. package/dist/runtime/sglang/memory.js.map +1 -0
  340. package/dist/runtime/sglang/settings.d.ts +49 -0
  341. package/dist/runtime/sglang/settings.js +118 -0
  342. package/dist/runtime/sglang/settings.js.map +1 -0
  343. package/dist/runtime/shared/external-sessions.js +2 -0
  344. package/dist/runtime/shared/external-sessions.js.map +1 -1
  345. package/dist/runtime/shared/process.d.ts +13 -1
  346. package/dist/runtime/shared/process.js +21 -12
  347. package/dist/runtime/shared/process.js.map +1 -1
  348. package/dist/runtime/vllm/adapter.js +2 -47
  349. package/dist/runtime/vllm/adapter.js.map +1 -1
  350. package/dist/runtime/vllm/memory.js +3 -16
  351. package/dist/runtime/vllm/memory.js.map +1 -1
  352. package/dist/runtime/vllm/settings.d.ts +7 -0
  353. package/dist/runtime/vllm/settings.js +2 -30
  354. package/dist/runtime/vllm/settings.js.map +1 -1
  355. package/dist/server/control/router.js +6 -3
  356. package/dist/server/control/router.js.map +1 -1
  357. package/dist/server/control/routes/foundry-local.d.ts +10 -0
  358. package/dist/server/control/routes/foundry-local.js +42 -0
  359. package/dist/server/control/routes/foundry-local.js.map +1 -0
  360. package/dist/server/control/routes/media.d.ts +9 -0
  361. package/dist/server/control/routes/media.js +24 -0
  362. package/dist/server/control/routes/media.js.map +1 -0
  363. package/dist/server/control/routes/model-compatibility.d.ts +9 -0
  364. package/dist/server/control/routes/model-compatibility.js +31 -0
  365. package/dist/server/control/routes/model-compatibility.js.map +1 -0
  366. package/dist/server/control/routes/models.js +3 -1
  367. package/dist/server/control/routes/models.js.map +1 -1
  368. package/dist/server/control/types.d.ts +30 -20
  369. package/dist/server/control/types.js.map +1 -1
  370. package/dist/server/http.js +17 -2
  371. package/dist/server/http.js.map +1 -1
  372. package/dist/server/public/errors.d.ts +1 -0
  373. package/dist/server/public/errors.js +18 -0
  374. package/dist/server/public/errors.js.map +1 -1
  375. package/dist/server/public/images-params.js +18 -1
  376. package/dist/server/public/images-params.js.map +1 -1
  377. package/dist/server/public/images.d.ts +11 -2
  378. package/dist/server/public/images.js +73 -9
  379. package/dist/server/public/images.js.map +1 -1
  380. package/dist/server/public/index.js +7 -1
  381. package/dist/server/public/index.js.map +1 -1
  382. package/dist/server/public/listing.js +2 -0
  383. package/dist/server/public/listing.js.map +1 -1
  384. package/dist/server/public/remote-media.d.ts +51 -0
  385. package/dist/server/public/remote-media.js +225 -0
  386. package/dist/server/public/remote-media.js.map +1 -0
  387. package/dist/server/public/responses.js +4 -2
  388. package/dist/server/public/responses.js.map +1 -1
  389. package/dist/server/public/static-assets.generated.js +1 -1
  390. package/dist/server/public/static-assets.generated.js.map +1 -1
  391. package/dist/server/public/trace.js +2 -0
  392. package/dist/server/public/trace.js.map +1 -1
  393. package/dist/server/public/types.d.ts +5 -1
  394. package/dist/server/public/videos-params.js +13 -3
  395. package/dist/server/public/videos-params.js.map +1 -1
  396. package/dist/server/public/videos.d.ts +1 -0
  397. package/dist/server/public/videos.js +21 -3
  398. package/dist/server/public/videos.js.map +1 -1
  399. package/dist/settings/schema/foundry-local.json +14 -0
  400. package/dist/settings/schema/llamacpp-upstream.json +9 -0
  401. package/dist/settings/schema/sglang.json +251 -0
  402. package/dist/settings/schema.js +35 -1
  403. package/dist/settings/schema.js.map +1 -1
  404. package/dist/version.d.ts +1 -1
  405. package/dist/version.js +1 -1
  406. package/package.json +2 -5
  407. package/src/settings/schema/foundry-local.json +14 -0
  408. package/src/settings/schema/llamacpp-upstream.json +9 -0
  409. package/src/settings/schema/sglang.json +251 -0
  410. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +0 -2
  411. package/dist/backend/catalog/bundled-manifest-baseline.js +0 -65
  412. package/dist/backend/catalog/bundled-manifest-baseline.js.map +0 -1
  413. package/dist/contracts/model-setup.d.ts +0 -115
  414. package/dist/contracts/model-setup.js +0 -33
  415. package/dist/contracts/model-setup.js.map +0 -1
  416. package/dist/core/model-setup/index.d.ts +0 -4
  417. package/dist/core/model-setup/index.js +0 -5
  418. package/dist/core/model-setup/index.js.map +0 -1
  419. package/dist/core/model-setup/plan.d.ts +0 -56
  420. package/dist/core/model-setup/plan.js +0 -158
  421. package/dist/core/model-setup/plan.js.map +0 -1
  422. package/dist/core/model-setup/service.d.ts +0 -92
  423. package/dist/core/model-setup/service.js +0 -329
  424. package/dist/core/model-setup/service.js.map +0 -1
  425. package/dist/core/model-setup/store.d.ts +0 -29
  426. package/dist/core/model-setup/store.js +0 -116
  427. package/dist/core/model-setup/store.js.map +0 -1
  428. package/dist/core/model-setup/wiring.d.ts +0 -59
  429. package/dist/core/model-setup/wiring.js +0 -132
  430. package/dist/core/model-setup/wiring.js.map +0 -1
  431. package/dist/core/tensorrt-llm.d.ts +0 -169
  432. package/dist/core/tensorrt-llm.js +0 -428
  433. package/dist/core/tensorrt-llm.js.map +0 -1
  434. package/dist/downloads/segmented.d.ts +0 -40
  435. package/dist/downloads/segmented.js +0 -170
  436. package/dist/downloads/segmented.js.map +0 -1
  437. package/dist/runtime/tensorrt-llm/delete.d.ts +0 -15
  438. package/dist/runtime/tensorrt-llm/delete.js +0 -60
  439. package/dist/runtime/tensorrt-llm/delete.js.map +0 -1
  440. package/dist/runtime/tensorrt-llm/guest-files.d.ts +0 -8
  441. package/dist/runtime/tensorrt-llm/guest-files.js +0 -49
  442. package/dist/runtime/tensorrt-llm/guest-files.js.map +0 -1
  443. package/dist/runtime/tensorrt-llm/location.d.ts +0 -20
  444. package/dist/runtime/tensorrt-llm/location.js +0 -48
  445. package/dist/runtime/tensorrt-llm/location.js.map +0 -1
  446. package/dist/runtime/tensorrt-llm/model-dir.d.ts +0 -38
  447. package/dist/runtime/tensorrt-llm/model-dir.js +0 -137
  448. package/dist/runtime/tensorrt-llm/model-dir.js.map +0 -1
  449. package/dist/runtime/tensorrt-llm/quant-format.d.ts +0 -65
  450. package/dist/runtime/tensorrt-llm/quant-format.js +0 -189
  451. package/dist/runtime/tensorrt-llm/quant-format.js.map +0 -1
  452. package/dist/runtime/tensorrt-llm/registry.d.ts +0 -26
  453. package/dist/runtime/tensorrt-llm/registry.js +0 -68
  454. package/dist/runtime/tensorrt-llm/registry.js.map +0 -1
  455. package/dist/runtime/tensorrt-llm/runtime.d.ts +0 -130
  456. package/dist/runtime/tensorrt-llm/runtime.js +0 -395
  457. package/dist/runtime/tensorrt-llm/runtime.js.map +0 -1
  458. package/dist/server/control/routes/model-setups.d.ts +0 -11
  459. package/dist/server/control/routes/model-setups.js +0 -55
  460. package/dist/server/control/routes/model-setups.js.map +0 -1
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The arguments of the hidden `foundry-host` mode (openspec change `add-foundry-local`, task 5.1).
3
+ * Core is the only caller, so the parse is strict: anything unknown is a bug on core's side.
4
+ *
5
+ * foundry-host probe --lib <build> --app-data <dir> --logs <dir> [--prepared <ep>]…
6
+ * foundry-host prepare --lib <build> --app-data <dir> --logs <dir> [<ep>…]
7
+ * foundry-host serve --lib <build> --app-data <dir> --logs <dir> --model <dir> --ep <ep>
8
+ * --port <p> --cache <dir> --id <name>:<version> [--tools]
9
+ * [--reasoning-start <s> --reasoning-end <s>] [--context-length <n>]
10
+ */
11
+ import type { FoundryLocalExecutionProvider } from '../../../contracts/index.js';
12
+ interface CommonArgs {
13
+ /** The build directory (`<root>/<tag>/<platform>`), holding `lib/`. */
14
+ lib: string;
15
+ /** The library's own data (`app_data_dir`): accelerators, shared by every build. */
16
+ appData: string;
17
+ logs: string;
18
+ }
19
+ export type FoundryHostArgs = (CommonArgs & {
20
+ mode: 'probe';
21
+ /** Accelerators core recorded as prepared; the library cannot tell (spike finding 18). */
22
+ prepared: string[];
23
+ }) | (CommonArgs & {
24
+ mode: 'prepare';
25
+ accelerators: string[];
26
+ }) | (CommonArgs & {
27
+ mode: 'serve';
28
+ model: string;
29
+ ep: FoundryLocalExecutionProvider;
30
+ port: number;
31
+ /** The host's own catalog index, deleted at exit. */
32
+ cache: string;
33
+ /** `<name>:<version>`, never one of Microsoft's catalog ids (spike finding 7). */
34
+ id: string;
35
+ tools: boolean;
36
+ reasoningStart?: string;
37
+ reasoningEnd?: string;
38
+ contextLength?: number;
39
+ });
40
+ export declare class FoundryHostUsageError extends Error {
41
+ constructor(message: string);
42
+ }
43
+ export declare function parseFoundryHostArgs(argv: readonly string[]): FoundryHostArgs;
44
+ export {};
@@ -0,0 +1,109 @@
1
+ /**
2
+ * The arguments of the hidden `foundry-host` mode (openspec change `add-foundry-local`, task 5.1).
3
+ * Core is the only caller, so the parse is strict: anything unknown is a bug on core's side.
4
+ *
5
+ * foundry-host probe --lib <build> --app-data <dir> --logs <dir> [--prepared <ep>]…
6
+ * foundry-host prepare --lib <build> --app-data <dir> --logs <dir> [<ep>…]
7
+ * foundry-host serve --lib <build> --app-data <dir> --logs <dir> --model <dir> --ep <ep>
8
+ * --port <p> --cache <dir> --id <name>:<version> [--tools]
9
+ * [--reasoning-start <s> --reasoning-end <s>] [--context-length <n>]
10
+ */
11
+ import { parseArgs } from 'node:util';
12
+ import { FOUNDRY_LOCAL_EXECUTION_PROVIDERS } from '../../../contracts/index.js';
13
+ export class FoundryHostUsageError extends Error {
14
+ constructor(message) {
15
+ super(message);
16
+ this.name = 'FoundryHostUsageError';
17
+ }
18
+ }
19
+ const COMMON_OPTIONS = {
20
+ 'lib': { type: 'string' },
21
+ 'app-data': { type: 'string' },
22
+ 'logs': { type: 'string' },
23
+ };
24
+ const required = (values, key) => {
25
+ const value = values[key];
26
+ if (typeof value !== 'string' || value === '')
27
+ throw new FoundryHostUsageError(`--${key} is required`);
28
+ return value;
29
+ };
30
+ function common(values) {
31
+ return {
32
+ lib: required(values, 'lib'),
33
+ appData: required(values, 'app-data'),
34
+ logs: required(values, 'logs'),
35
+ };
36
+ }
37
+ export function parseFoundryHostArgs(argv) {
38
+ const [mode, ...rest] = argv;
39
+ try {
40
+ if (mode === 'probe') {
41
+ const { values } = parseArgs({
42
+ args: rest,
43
+ options: { ...COMMON_OPTIONS, prepared: { type: 'string', multiple: true } },
44
+ strict: true,
45
+ });
46
+ return { mode, ...common(values), prepared: values.prepared ?? [] };
47
+ }
48
+ if (mode === 'prepare') {
49
+ const { values, positionals } = parseArgs({
50
+ args: rest,
51
+ options: COMMON_OPTIONS,
52
+ strict: true,
53
+ allowPositionals: true,
54
+ });
55
+ return { mode, ...common(values), accelerators: positionals };
56
+ }
57
+ if (mode === 'serve') {
58
+ const { values } = parseArgs({
59
+ args: rest,
60
+ options: {
61
+ ...COMMON_OPTIONS,
62
+ 'model': { type: 'string' },
63
+ 'ep': { type: 'string' },
64
+ 'port': { type: 'string' },
65
+ 'cache': { type: 'string' },
66
+ 'id': { type: 'string' },
67
+ 'tools': { type: 'boolean' },
68
+ 'reasoning-start': { type: 'string' },
69
+ 'reasoning-end': { type: 'string' },
70
+ 'context-length': { type: 'string' },
71
+ },
72
+ strict: true,
73
+ });
74
+ const ep = required(values, 'ep');
75
+ if (!FOUNDRY_LOCAL_EXECUTION_PROVIDERS.some((known) => known === ep))
76
+ throw new FoundryHostUsageError(`--ep ${ep} is not an accelerator this host runs`);
77
+ const port = Number(required(values, 'port'));
78
+ if (!Number.isInteger(port) || port < 1 || port > 65535)
79
+ throw new FoundryHostUsageError(`--port ${values.port} is not a port`);
80
+ const id = required(values, 'id');
81
+ if (!/^[^:\s]+:\d+$/.test(id))
82
+ throw new FoundryHostUsageError(`--id ${id} is not <name>:<version>`);
83
+ const context = values['context-length'];
84
+ const contextLength = context === undefined ? undefined : Number(context);
85
+ if (contextLength !== undefined && (!Number.isSafeInteger(contextLength) || contextLength < 1))
86
+ throw new FoundryHostUsageError(`--context-length ${context} is not a positive whole number`);
87
+ return {
88
+ mode,
89
+ ...common(values),
90
+ model: required(values, 'model'),
91
+ ep: ep,
92
+ port,
93
+ cache: required(values, 'cache'),
94
+ id,
95
+ tools: values.tools === true,
96
+ ...(values['reasoning-start'] !== undefined ? { reasoningStart: values['reasoning-start'] } : {}),
97
+ ...(values['reasoning-end'] !== undefined ? { reasoningEnd: values['reasoning-end'] } : {}),
98
+ ...(contextLength !== undefined ? { contextLength } : {}),
99
+ };
100
+ }
101
+ }
102
+ catch (error) {
103
+ if (error instanceof FoundryHostUsageError)
104
+ throw error;
105
+ throw new FoundryHostUsageError(error instanceof Error ? error.message : String(error));
106
+ }
107
+ throw new FoundryHostUsageError(`foundry-host: unknown mode ${JSON.stringify(mode ?? '')} (probe, prepare, serve)`);
108
+ }
109
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The three spellings of each accelerator (spike findings 6 and 14): conf and `model.yml` say `webgpu`,
3
+ * the library's EP registration and `Manager_GetDiscoverableEps` say `WebGpuExecutionProvider` (ONNX
4
+ * Runtime's name), and `RegisterModel` metadata wants `WebGPUExecutionProvider` (the catalog's name) —
5
+ * `Load` refuses the ORT spelling with "unknown execution provider for local model".
6
+ */
7
+ import type { FoundryLocalExecutionProvider } from '../../../contracts/index.js';
8
+ interface ExecutionProviderNames {
9
+ short: FoundryLocalExecutionProvider;
10
+ /** What the variant runs on; OpenVINO serves Intel GPUs and NPUs alike (finding: offered without an NPU). */
11
+ device: 'cpu' | 'gpu' | 'npu' | 'gpu/npu';
12
+ /** `Manager_DownloadAndRegisterEps` / discoverable name; `null` for the CPU, which is always there. */
13
+ register: string | null;
14
+ /** `execution_provider` in `RegisterModel` metadata. */
15
+ metadata: string;
16
+ }
17
+ export declare const EXECUTION_PROVIDERS: readonly ExecutionProviderNames[];
18
+ export declare function executionProvider(short: FoundryLocalExecutionProvider): ExecutionProviderNames;
19
+ /**
20
+ * What the probe says about one discoverable accelerator. One this core does not run variants on
21
+ * (`NvTensorRTRTXExecutionProvider`, design non-goal) keeps its name with `execution_provider: null`.
22
+ */
23
+ export declare function describeDiscoverable(name: string): {
24
+ execution_provider: FoundryLocalExecutionProvider | null;
25
+ device: string;
26
+ };
27
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The three spellings of each accelerator (spike findings 6 and 14): conf and `model.yml` say `webgpu`,
3
+ * the library's EP registration and `Manager_GetDiscoverableEps` say `WebGpuExecutionProvider` (ONNX
4
+ * Runtime's name), and `RegisterModel` metadata wants `WebGPUExecutionProvider` (the catalog's name) —
5
+ * `Load` refuses the ORT spelling with "unknown execution provider for local model".
6
+ */
7
+ export const EXECUTION_PROVIDERS = [
8
+ { short: 'cpu', device: 'cpu', register: null, metadata: 'CPUExecutionProvider' },
9
+ { short: 'cuda', device: 'gpu', register: 'CUDAExecutionProvider', metadata: 'CUDAExecutionProvider' },
10
+ {
11
+ short: 'webgpu',
12
+ device: 'gpu',
13
+ register: 'WebGpuExecutionProvider',
14
+ metadata: 'WebGPUExecutionProvider',
15
+ },
16
+ {
17
+ short: 'openvino',
18
+ device: 'gpu/npu',
19
+ register: 'OpenVINOExecutionProvider',
20
+ metadata: 'OpenVINOExecutionProvider',
21
+ },
22
+ { short: 'qnn', device: 'npu', register: 'QNNExecutionProvider', metadata: 'QNNExecutionProvider' },
23
+ {
24
+ short: 'vitisai',
25
+ device: 'npu',
26
+ register: 'VitisAIExecutionProvider',
27
+ metadata: 'VitisAIExecutionProvider',
28
+ },
29
+ ];
30
+ export function executionProvider(short) {
31
+ return EXECUTION_PROVIDERS.find((ep) => ep.short === short);
32
+ }
33
+ /**
34
+ * What the probe says about one discoverable accelerator. One this core does not run variants on
35
+ * (`NvTensorRTRTXExecutionProvider`, design non-goal) keeps its name with `execution_provider: null`.
36
+ */
37
+ export function describeDiscoverable(name) {
38
+ const known = EXECUTION_PROVIDERS.find((ep) => ep.register === name);
39
+ if (known)
40
+ return { execution_provider: known.short, device: known.device };
41
+ return { execution_provider: null, device: /TensorRT|Cuda|Gpu|DML/i.test(name) ? 'gpu' : 'unknown' };
42
+ }
43
+ //# sourceMappingURL=execution-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-providers.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/execution-providers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE;IACjF,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;IACtG;QACE,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE,yBAAyB;KACpC;IACD;QACE,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,2BAA2B;KACtC;IACD,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,sBAAsB,EAAE;IACnG;QACE,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,0BAA0B;KACrC;CACF,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAoC;IACpE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAA2B,CAAA;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAI/C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;IACpE,IAAI,KAAK;QAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAC3E,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;AACtG,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `FoundryLibrary` over `bun:ffi` — the only file in `src/` that may import `bun:*` (operator decision
3
+ * Q2 of change `add-foundry-local`; allow-listed in `scripts/check-runtime-agnostic.mjs`). It is
4
+ * imported dynamically by the `foundry-host` mode alone, so the npm package still loads under Node.
5
+ *
6
+ * The library exports three symbols; everything else is a table of function pointers (`flApi` and its
7
+ * sub-APIs), read here by index. Indices follow `foundry_local_c.h` of C API version 2: tables only
8
+ * ever grow at the end, so a library that grants version 2 keeps these positions.
9
+ *
10
+ * Proven by the spike (rulings S1, S2): progress callbacks must not be `threadsafe` — the native caller
11
+ * would wait on a JS thread it itself blocks and read a non-zero return as "cancel"; on Windows the
12
+ * library's DLL dependencies are found only after `SetDllDirectoryW(<lib>)`.
13
+ */
14
+ import type { LoadFoundryLibrary } from './library.js';
15
+ /** The `FOUNDRY_LOCAL_API_VERSION` these bindings are written against. */
16
+ export declare const BOUND_C_API_VERSION = 2;
17
+ export declare const loadBunFoundryLibrary: LoadFoundryLibrary;
@@ -0,0 +1,256 @@
1
+ /**
2
+ * `FoundryLibrary` over `bun:ffi` — the only file in `src/` that may import `bun:*` (operator decision
3
+ * Q2 of change `add-foundry-local`; allow-listed in `scripts/check-runtime-agnostic.mjs`). It is
4
+ * imported dynamically by the `foundry-host` mode alone, so the npm package still loads under Node.
5
+ *
6
+ * The library exports three symbols; everything else is a table of function pointers (`flApi` and its
7
+ * sub-APIs), read here by index. Indices follow `foundry_local_c.h` of C API version 2: tables only
8
+ * ever grow at the end, so a library that grants version 2 keeps these positions.
9
+ *
10
+ * Proven by the spike (rulings S1, S2): progress callbacks must not be `threadsafe` — the native caller
11
+ * would wait on a JS thread it itself blocks and read a non-zero return as "cancel"; on Windows the
12
+ * library's DLL dependencies are found only after `SetDllDirectoryW(<lib>)`.
13
+ */
14
+ import { CFunction, CString, dlopen, FFIType, JSCallback, ptr, read } from 'bun:ffi';
15
+ import { existsSync } from 'node:fs';
16
+ import { join } from 'node:path';
17
+ import { FoundryLibraryError } from './library.js';
18
+ /** The `FOUNDRY_LOCAL_API_VERSION` these bindings are written against. */
19
+ export const BOUND_C_API_VERSION = 2;
20
+ const POINTER = 8;
21
+ const CATALOG_LOCAL = 1;
22
+ /** `flEpInfo`: u32 version, padding, `const char* name` at 8, `bool is_registered` at 16. */
23
+ const EP_INFO_SIZE = 24;
24
+ const LIBRARY_FILE = {
25
+ win32: 'foundry_local.dll',
26
+ darwin: 'libfoundry_local.dylib',
27
+ linux: 'libfoundry_local.so',
28
+ };
29
+ /** Root table (`flApi`) indices. */
30
+ const API = {
31
+ statusGetErrorCode: 2,
32
+ statusGetErrorMessage: 3,
33
+ statusRelease: 1,
34
+ managerCreate: 4,
35
+ managerRelease: 5,
36
+ webServiceStart: 7,
37
+ webServiceUrls: 8,
38
+ getCatalogApi: 10,
39
+ getConfigurationApi: 11,
40
+ getModelApi: 14,
41
+ createKeyValuePairs: 15,
42
+ addKeyValuePair: 16,
43
+ keyValuePairsRelease: 20,
44
+ getDiscoverableEps: 24,
45
+ downloadAndRegisterEps: 25,
46
+ managerShutdown: 27,
47
+ getCatalogByType: 29,
48
+ };
49
+ const CONFIG = {
50
+ create: 0,
51
+ release: 1,
52
+ setAppDataDir: 3,
53
+ setLogsDir: 4,
54
+ setModelCacheDir: 5,
55
+ addWebServiceEndpoint: 8,
56
+ setAdditionalOptions: 10,
57
+ };
58
+ const CATALOG = { registerModel: 8 };
59
+ const MODEL = {
60
+ getInfo: 0,
61
+ load: 6,
62
+ unload: 7,
63
+ infoGetExecutionProvider: 17,
64
+ createModelInfo: 23,
65
+ releaseModelInfo: 24,
66
+ infoSetStringProperty: 25,
67
+ infoSetIntProperty: 26,
68
+ };
69
+ const T = FFIType;
70
+ const cstr = (value) => Buffer.from(`${value}\0`, 'utf8');
71
+ const outPointer = () => new BigUint64Array(1);
72
+ const deref = (out) => Number(out[0]);
73
+ export const loadBunFoundryLibrary = async (libDir) => {
74
+ const file = LIBRARY_FILE[process.platform];
75
+ if (!file)
76
+ throw new FoundryLibraryError('load', 0, `Foundry Local has no library for ${process.platform}`);
77
+ const path = join(libDir, file);
78
+ if (!existsSync(path))
79
+ throw new FoundryLibraryError('load', 0, `${path} not found: no ${file} in this build`);
80
+ if (process.platform === 'win32') {
81
+ // The loader does not search the DLL's own folder for onnxruntime.dll and its siblings (error 126).
82
+ const kernel32 = dlopen('kernel32.dll', { SetDllDirectoryW: { args: [T.ptr], returns: T.i32 } });
83
+ kernel32.symbols.SetDllDirectoryW(ptr(Buffer.from(`${libDir}\0`, 'utf16le')));
84
+ }
85
+ const library = dlopen(path, {
86
+ FoundryLocalGetApi: { args: [T.u32], returns: T.ptr },
87
+ FoundryLocalGetVersionString: { args: [], returns: T.cstring },
88
+ });
89
+ const version = String(library.symbols.FoundryLocalGetVersionString());
90
+ const api = library.symbols.FoundryLocalGetApi(BOUND_C_API_VERSION);
91
+ if (!api)
92
+ throw new FoundryLibraryError('FoundryLocalGetApi', 0, `Foundry Local ${version} does not provide C API version ${BOUND_C_API_VERSION}`);
93
+ return bindLibrary(api, version);
94
+ };
95
+ function bindLibrary(api, version) {
96
+ const fn = (table, index, args, returns) => CFunction({ ptr: read.ptr(table, index * POINTER), args, returns });
97
+ const statusCode = fn(api, API.statusGetErrorCode, [T.ptr], T.i32);
98
+ const statusMessage = fn(api, API.statusGetErrorMessage, [T.ptr], T.cstring);
99
+ const statusRelease = fn(api, API.statusRelease, [T.ptr], T.void);
100
+ /** A non-null `flStatus*` is an error: read it, free it, throw it. */
101
+ const check = (status, operation) => {
102
+ if (!status)
103
+ return;
104
+ const code = Number(statusCode(status));
105
+ const message = String(statusMessage(status));
106
+ statusRelease(status);
107
+ throw new FoundryLibraryError(operation, code, message);
108
+ };
109
+ const call = (f, operation, ...args) => check(f(...args), operation);
110
+ const configApi = fn(api, API.getConfigurationApi, [], T.ptr)();
111
+ const catalogApi = fn(api, API.getCatalogApi, [], T.ptr)();
112
+ const modelApi = fn(api, API.getModelApi, [], T.ptr)();
113
+ const f = {
114
+ configCreate: fn(configApi, CONFIG.create, [T.ptr, T.ptr], T.ptr),
115
+ configRelease: fn(configApi, CONFIG.release, [T.ptr], T.void),
116
+ setAppDataDir: fn(configApi, CONFIG.setAppDataDir, [T.ptr, T.ptr], T.ptr),
117
+ setLogsDir: fn(configApi, CONFIG.setLogsDir, [T.ptr, T.ptr], T.ptr),
118
+ setModelCacheDir: fn(configApi, CONFIG.setModelCacheDir, [T.ptr, T.ptr], T.ptr),
119
+ addWebServiceEndpoint: fn(configApi, CONFIG.addWebServiceEndpoint, [T.ptr, T.ptr], T.ptr),
120
+ setAdditionalOptions: fn(configApi, CONFIG.setAdditionalOptions, [T.ptr, T.ptr], T.ptr),
121
+ kvCreate: fn(api, API.createKeyValuePairs, [T.ptr], T.void),
122
+ kvAdd: fn(api, API.addKeyValuePair, [T.ptr, T.ptr, T.ptr], T.void),
123
+ kvRelease: fn(api, API.keyValuePairsRelease, [T.ptr], T.void),
124
+ managerCreate: fn(api, API.managerCreate, [T.ptr, T.ptr], T.ptr),
125
+ managerRelease: fn(api, API.managerRelease, [T.ptr], T.void),
126
+ managerShutdown: fn(api, API.managerShutdown, [T.ptr], T.ptr),
127
+ getDiscoverableEps: fn(api, API.getDiscoverableEps, [T.ptr, T.ptr, T.ptr], T.ptr),
128
+ downloadAndRegisterEps: fn(api, API.downloadAndRegisterEps, [T.ptr, T.ptr, T.u64, T.ptr, T.ptr], T.ptr),
129
+ getCatalogByType: fn(api, API.getCatalogByType, [T.ptr, T.i32, T.ptr], T.ptr),
130
+ webServiceStart: fn(api, API.webServiceStart, [T.ptr], T.ptr),
131
+ webServiceUrls: fn(api, API.webServiceUrls, [T.ptr, T.ptr, T.ptr], T.ptr),
132
+ registerModel: fn(catalogApi, CATALOG.registerModel, [T.ptr, T.ptr, T.ptr, T.ptr, T.ptr], T.ptr),
133
+ modelGetInfo: fn(modelApi, MODEL.getInfo, [T.ptr, T.ptr], T.ptr),
134
+ modelLoad: fn(modelApi, MODEL.load, [T.ptr], T.ptr),
135
+ modelUnload: fn(modelApi, MODEL.unload, [T.ptr], T.ptr),
136
+ infoGetExecutionProvider: fn(modelApi, MODEL.infoGetExecutionProvider, [T.ptr], T.cstring),
137
+ createModelInfo: fn(modelApi, MODEL.createModelInfo, [T.ptr], T.ptr),
138
+ releaseModelInfo: fn(modelApi, MODEL.releaseModelInfo, [T.ptr], T.void),
139
+ infoSetString: fn(modelApi, MODEL.infoSetStringProperty, [T.ptr, T.ptr, T.ptr], T.ptr),
140
+ infoSetInt: fn(modelApi, MODEL.infoSetIntProperty, [T.ptr, T.ptr, T.i64], T.ptr),
141
+ };
142
+ function createManager(config) {
143
+ const configOut = outPointer();
144
+ call(f.configCreate, 'Configuration_Create', ptr(cstr(config.appName)), ptr(configOut));
145
+ const cfg = deref(configOut);
146
+ let manager;
147
+ try {
148
+ call(f.setAppDataDir, 'SetAppDataDir', cfg, ptr(cstr(config.appDataDir)));
149
+ call(f.setLogsDir, 'SetLogsDir', cfg, ptr(cstr(config.logsDir)));
150
+ call(f.setModelCacheDir, 'SetModelCacheDir', cfg, ptr(cstr(config.modelCacheDir)));
151
+ for (const endpoint of config.webServiceEndpoints)
152
+ call(f.addWebServiceEndpoint, 'AddWebServiceEndpoint', cfg, ptr(cstr(endpoint)));
153
+ const kvOut = outPointer();
154
+ f.kvCreate(ptr(kvOut));
155
+ const kv = deref(kvOut);
156
+ for (const [key, value] of Object.entries(config.additionalOptions))
157
+ f.kvAdd(kv, ptr(cstr(key)), ptr(cstr(value)));
158
+ try {
159
+ call(f.setAdditionalOptions, 'SetAdditionalOptions', cfg, kv);
160
+ }
161
+ finally {
162
+ f.kvRelease(kv);
163
+ }
164
+ const managerOut = outPointer();
165
+ call(f.managerCreate, 'Manager_Create', cfg, ptr(managerOut));
166
+ manager = deref(managerOut);
167
+ }
168
+ finally {
169
+ f.configRelease(cfg);
170
+ }
171
+ return bindManager(manager);
172
+ }
173
+ function bindManager(manager) {
174
+ return {
175
+ discoverableEps() {
176
+ const epsOut = outPointer();
177
+ const countOut = outPointer();
178
+ call(f.getDiscoverableEps, 'Manager_GetDiscoverableEps', manager, ptr(epsOut), ptr(countOut));
179
+ const base = deref(epsOut);
180
+ const eps = [];
181
+ for (let i = 0; i < Number(countOut[0]); i++) {
182
+ const at = i * EP_INFO_SIZE;
183
+ eps.push({
184
+ name: new CString(read.ptr(base, at + 8)).toString(),
185
+ registered: read.u8(base, at + 16) !== 0,
186
+ });
187
+ }
188
+ return eps;
189
+ },
190
+ downloadAndRegisterEps(names, onProgress) {
191
+ const strings = names.map(cstr);
192
+ const array = new BigUint64Array(strings.map((s) => BigInt(ptr(s))));
193
+ // Not threadsafe: the library calls back on the calling thread, synchronously (spike S1, S2).
194
+ const callback = onProgress
195
+ ? new JSCallback((name, percent) => {
196
+ onProgress(new CString(name).toString(), percent);
197
+ return 0;
198
+ }, { args: [T.ptr, T.f32, T.ptr], returns: T.i32 })
199
+ : null;
200
+ try {
201
+ call(f.downloadAndRegisterEps, 'Manager_DownloadAndRegisterEps', manager, names.length > 0 ? ptr(array) : null, names.length, callback ? callback.ptr : null, null);
202
+ }
203
+ finally {
204
+ callback?.close();
205
+ }
206
+ },
207
+ registerLocalModel(path, id, metadata) {
208
+ const catalogOut = outPointer();
209
+ call(f.getCatalogByType, 'Manager_GetCatalogByType', manager, CATALOG_LOCAL, ptr(catalogOut));
210
+ const infoOut = outPointer();
211
+ call(f.createModelInfo, 'CreateModelInfo', ptr(infoOut));
212
+ const info = deref(infoOut);
213
+ const modelOut = outPointer();
214
+ try {
215
+ for (const [key, value] of Object.entries(metadata.strings))
216
+ call(f.infoSetString, `Info_SetStringProperty(${key})`, info, ptr(cstr(key)), ptr(cstr(value)));
217
+ for (const [key, value] of Object.entries(metadata.ints))
218
+ call(f.infoSetInt, `Info_SetIntProperty(${key})`, info, ptr(cstr(key)), BigInt(value));
219
+ call(f.registerModel, 'RegisterModel', deref(catalogOut), ptr(cstr(path)), ptr(cstr(id)), info, ptr(modelOut));
220
+ }
221
+ finally {
222
+ f.releaseModelInfo(info);
223
+ }
224
+ return bindModel(deref(modelOut));
225
+ },
226
+ webServiceStart() {
227
+ call(f.webServiceStart, 'Manager_WebServiceStart', manager);
228
+ const urlsOut = outPointer();
229
+ const countOut = outPointer();
230
+ call(f.webServiceUrls, 'Manager_WebServiceUrls', manager, ptr(urlsOut), ptr(countOut));
231
+ const urls = [];
232
+ for (let i = 0; i < Number(countOut[0]); i++)
233
+ urls.push(new CString(read.ptr(deref(urlsOut), i * POINTER)).toString());
234
+ return urls;
235
+ },
236
+ shutdown: () => call(f.managerShutdown, 'Manager_Shutdown', manager),
237
+ release: () => {
238
+ f.managerRelease(manager);
239
+ },
240
+ };
241
+ }
242
+ function bindModel(model) {
243
+ return {
244
+ load: () => call(f.modelLoad, 'Model_Load', model),
245
+ unload: () => call(f.modelUnload, 'Model_Unload', model),
246
+ executionProvider() {
247
+ const infoOut = outPointer();
248
+ call(f.modelGetInfo, 'Model_GetInfo', model, ptr(infoOut));
249
+ const ep = f.infoGetExecutionProvider(deref(infoOut));
250
+ return ep ? String(ep) : null;
251
+ },
252
+ };
253
+ }
254
+ return { version, cApiVersion: BOUND_C_API_VERSION, createManager };
255
+ }
256
+ //# sourceMappingURL=ffi-bun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ffi-bun.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/ffi-bun.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAWlD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAEpC,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,aAAa,GAAG,CAAC,CAAA;AACvB,6FAA6F;AAC7F,MAAM,YAAY,GAAG,EAAE,CAAA;AAEvB,MAAM,YAAY,GAA6C;IAC7D,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,qBAAqB;CAC7B,CAAA;AAED,oCAAoC;AACpC,MAAM,GAAG,GAAG;IACV,kBAAkB,EAAE,CAAC;IACrB,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,EAAE;IACjB,mBAAmB,EAAE,EAAE;IACvB,WAAW,EAAE,EAAE;IACf,mBAAmB,EAAE,EAAE;IACvB,eAAe,EAAE,EAAE;IACnB,oBAAoB,EAAE,EAAE;IACxB,kBAAkB,EAAE,EAAE;IACtB,sBAAsB,EAAE,EAAE;IAC1B,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,EAAE;CACZ,CAAA;AACV,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC;IACb,gBAAgB,EAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;IACxB,oBAAoB,EAAE,EAAE;CAChB,CAAA;AACV,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,CAAC,EAAW,CAAA;AAC7C,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,wBAAwB,EAAE,EAAE;IAC5B,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,EAAE;IACpB,qBAAqB,EAAE,EAAE;IACzB,kBAAkB,EAAE,EAAE;CACd,CAAA;AAEV,MAAM,CAAC,GAAG,OAAO,CAAA;AACjB,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,MAAM,CAAC,CAAA;AACzE,MAAM,UAAU,GAAG,GAAmB,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAA;AAC9D,MAAM,KAAK,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAuB,KAAK,EAAE,MAAM,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,oCAAoC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACnB,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,kBAAkB,IAAI,gBAAgB,CAAC,CAAA;IACzF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,oGAAoG;QACpG,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAChG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE;QAC3B,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE;QACrD,4BAA4B,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;KAC/D,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAA;IACtE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAmB,CAAA;IACrF,IAAI,CAAC,GAAG;QACN,MAAM,IAAI,mBAAmB,CAC3B,oBAAoB,EACpB,CAAC,EACD,iBAAiB,OAAO,mCAAmC,mBAAmB,EAAE,CACjF,CAAA;IACH,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,SAAS,WAAW,CAAC,GAAY,EAAE,OAAe;IAChD,MAAM,EAAE,GAAG,CAAC,KAAc,EAAE,KAAa,EAAE,IAAc,EAAE,OAAe,EAAE,EAAE,CAC5E,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAErE,MAAM,UAAU,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IAClE,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACjE,sEAAsE;IACtE,MAAM,KAAK,GAAG,CAAC,MAAe,EAAE,SAAiB,EAAQ,EAAE;QACzD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAiB,CAAC,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAiB,CAAC,CAAC,CAAA;QACxD,aAAa,CAAC,MAAiB,CAAC,CAAA;QAChC,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,CAAyC,EAAE,SAAiB,EAAE,GAAG,IAAsB,EAAE,EAAE,CACvG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC,CAAA;IAE9B,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAa,CAAA;IAC1E,MAAM,UAAU,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAa,CAAA;IACrE,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAa,CAAA;IACjE,MAAM,CAAC,GAAG;QACR,YAAY,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACjE,aAAa,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAC7D,aAAa,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACzE,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACnE,gBAAgB,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC/E,qBAAqB,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACzF,oBAAoB,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACvF,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAC3D,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAClE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAC7D,aAAa,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAChE,cAAc,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAC5D,eAAe,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC7D,kBAAkB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACjF,sBAAsB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACvG,gBAAgB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC7E,eAAe,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC7D,cAAc,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACzE,aAAa,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAChG,YAAY,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAChE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACnD,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACvD,wBAAwB,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QAC1F,eAAe,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACpE,gBAAgB,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QACvE,aAAa,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACtF,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;KACjF,CAAA;IAED,SAAS,aAAa,CAAC,MAA4B;QACjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAA;QAC9B,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QACvF,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,OAAgB,CAAA;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACzE,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAChE,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YAClF,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,mBAAmB;gBAC/C,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAClF,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;YAC1B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YACtB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACjE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACH,IAAI,CAAC,CAAC,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;YAC/D,CAAC;oBAAS,CAAC;gBACT,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YACjB,CAAC;YACD,MAAM,UAAU,GAAG,UAAU,EAAE,CAAA;YAC/B,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;YAC7D,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;QAC7B,CAAC;gBAAS,CAAC;YACT,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,SAAS,WAAW,CAAC,OAAgB;QACnC,OAAO;YACL,eAAe;gBACb,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;gBAC3B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAA;gBAC7B,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC1B,MAAM,GAAG,GAAqB,EAAE,CAAA;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,CAAA;oBAC3B,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;wBACpD,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;qBACzC,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC;YACD,sBAAsB,CAAC,KAAK,EAAE,UAAU;gBACtC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC/B,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpE,8FAA8F;gBAC9F,MAAM,QAAQ,GAAG,UAAU;oBACzB,CAAC,CAAC,IAAI,UAAU,CACZ,CAAC,IAAa,EAAE,OAAe,EAAE,EAAE;wBACjC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;wBACjD,OAAO,CAAC,CAAA;oBACV,CAAC,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAChD;oBACH,CAAC,CAAC,IAAI,CAAA;gBACR,IAAI,CAAC;oBACH,IAAI,CACF,CAAC,CAAC,sBAAsB,EACxB,gCAAgC,EAChC,OAAO,EACP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACpC,KAAK,CAAC,MAAM,EACZ,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAC9B,IAAI,CACL,CAAA;gBACH,CAAC;wBAAS,CAAC;oBACT,QAAQ,EAAE,KAAK,EAAE,CAAA;gBACnB,CAAC;YACH,CAAC;YACD,kBAAkB,CAAC,IAAY,EAAE,EAAU,EAAE,QAAuB;gBAClE,MAAM,UAAU,GAAG,UAAU,EAAE,CAAA;gBAC/B,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC7F,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;gBAC5B,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;gBACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAA;gBAC7B,IAAI,CAAC;oBACH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACzD,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,0BAA0B,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACjG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACtD,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;oBACxF,IAAI,CACF,CAAC,CAAC,aAAa,EACf,eAAe,EACf,KAAK,CAAC,UAAU,CAAC,EACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACb,IAAI,EACJ,GAAG,CAAC,QAAQ,CAAC,CACd,CAAA;gBACH,CAAC;wBAAS,CAAC;oBACT,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC1B,CAAC;gBACD,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;YACnC,CAAC;YACD,eAAe;gBACb,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAA;gBAC3D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;gBAC5B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAA;gBAC7B,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,wBAAwB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACtF,MAAM,IAAI,GAAa,EAAE,CAAA;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;oBAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC1E,OAAO,IAAI,CAAA;YACb,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,CAAC;YACpE,OAAO,EAAE,GAAG,EAAE;gBACZ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;SACF,CAAA;IACH,CAAC;IAED,SAAS,SAAS,CAAC,KAAc;QAC/B,OAAO;YACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;YAClD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC;YACxD,iBAAiB;gBACf,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;gBAC5B,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;gBACrD,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC/B,CAAC;SACF,CAAA;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAA;AACrE,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The part of Foundry Local's C API (`foundry_local_c.h`, `FOUNDRY_LOCAL_API_VERSION` 2) the host
3
+ * uses, as an interface. `ffi-bun.ts` implements it over `bun:ffi`; the protocol tests (tasks 5.2,
4
+ * 5.3) run the host against a fake one. Every call is synchronous and may block, like the C API.
5
+ */
6
+ /** A non-null `flStatus*`: the library's error code and message. */
7
+ export declare class FoundryLibraryError extends Error {
8
+ readonly operation: string;
9
+ readonly libraryCode: number;
10
+ constructor(operation: string, libraryCode: number, message: string);
11
+ }
12
+ export interface FoundryManagerConfig {
13
+ appName: string;
14
+ appDataDir: string;
15
+ logsDir: string;
16
+ modelCacheDir: string;
17
+ /** `http://127.0.0.1:<port>` for `serve`; none otherwise. */
18
+ webServiceEndpoints: string[];
19
+ /** `SetAdditionalOptions`, e.g. `DisableNonessentialTelemetry`. */
20
+ additionalOptions: Record<string, string>;
21
+ }
22
+ export interface DiscoverableEp {
23
+ name: string;
24
+ /** Registered in this process; says nothing about a previous process (spike finding 18). */
25
+ registered: boolean;
26
+ }
27
+ export interface ModelMetadata {
28
+ strings: Record<string, string>;
29
+ ints: Record<string, number>;
30
+ }
31
+ export interface FoundryModel {
32
+ load(): void;
33
+ unload(): void;
34
+ /** The model's execution provider as the library holds it; `null` when unset. */
35
+ executionProvider(): string | null;
36
+ }
37
+ export interface FoundryManager {
38
+ discoverableEps(): DiscoverableEp[];
39
+ /**
40
+ * `Manager_DownloadAndRegisterEps`, blocking. `onProgress` is called on the calling thread for
41
+ * CDN accelerators (spike findings 2, 15). Windows ML ones may call it from a thread of their own
42
+ * on a first install, where the plain callback cannot run: pass it only for CDN accelerators. A
43
+ * per-EP failure is not an error — read `discoverableEps()` afterwards.
44
+ */
45
+ downloadAndRegisterEps(names: string[], onProgress?: (ep: string, percent: number) => void): void;
46
+ /** `RegisterModel` in the local catalog; files are not copied. */
47
+ registerLocalModel(path: string, id: string, metadata: ModelMetadata): FoundryModel;
48
+ /** Start the built-in server; the bound URLs. */
49
+ webServiceStart(): string[];
50
+ shutdown(): void;
51
+ release(): void;
52
+ }
53
+ export interface FoundryLibrary {
54
+ /** `FoundryLocalGetVersionString`. */
55
+ version: string;
56
+ /** The C API version the table was requested at. */
57
+ cApiVersion: number;
58
+ createManager(config: FoundryManagerConfig): FoundryManager;
59
+ }
60
+ /** Opens the library of one build (`<build>/lib`); throws when it does not load or speaks another C API. */
61
+ export type LoadFoundryLibrary = (libDir: string) => Promise<FoundryLibrary>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The part of Foundry Local's C API (`foundry_local_c.h`, `FOUNDRY_LOCAL_API_VERSION` 2) the host
3
+ * uses, as an interface. `ffi-bun.ts` implements it over `bun:ffi`; the protocol tests (tasks 5.2,
4
+ * 5.3) run the host against a fake one. Every call is synchronous and may block, like the C API.
5
+ */
6
+ /** A non-null `flStatus*`: the library's error code and message. */
7
+ export class FoundryLibraryError extends Error {
8
+ operation;
9
+ libraryCode;
10
+ constructor(operation, libraryCode, message) {
11
+ super(`${operation}: ${message}`);
12
+ this.operation = operation;
13
+ this.libraryCode = libraryCode;
14
+ this.name = 'FoundryLibraryError';
15
+ }
16
+ }
17
+ //# sourceMappingURL=library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/library.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oEAAoE;AACpE,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IACA;IAFX,YACW,SAAiB,EACjB,WAAmB,EAC5B,OAAe;QAEf,KAAK,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC,CAAA;QAJxB,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF"}