@atomic-chat/core 0.5.1

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 (868) hide show
  1. package/README.md +46 -0
  2. package/dist/app-daemon.d.ts +2 -0
  3. package/dist/app-daemon.js +72 -0
  4. package/dist/app-daemon.js.map +1 -0
  5. package/dist/backend/catalog/archive.d.ts +70 -0
  6. package/dist/backend/catalog/archive.js +138 -0
  7. package/dist/backend/catalog/archive.js.map +1 -0
  8. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +2 -0
  9. package/dist/backend/catalog/bundled-manifest-baseline.js +49 -0
  10. package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -0
  11. package/dist/backend/catalog/cuda-family.d.ts +54 -0
  12. package/dist/backend/catalog/cuda-family.js +93 -0
  13. package/dist/backend/catalog/cuda-family.js.map +1 -0
  14. package/dist/backend/catalog/index.d.ts +6 -0
  15. package/dist/backend/catalog/index.js +7 -0
  16. package/dist/backend/catalog/index.js.map +1 -0
  17. package/dist/backend/catalog/manifest.d.ts +102 -0
  18. package/dist/backend/catalog/manifest.js +233 -0
  19. package/dist/backend/catalog/manifest.js.map +1 -0
  20. package/dist/backend/catalog/migrate.d.ts +40 -0
  21. package/dist/backend/catalog/migrate.js +135 -0
  22. package/dist/backend/catalog/migrate.js.map +1 -0
  23. package/dist/backend/index.d.ts +18 -0
  24. package/dist/backend/index.js +19 -0
  25. package/dist/backend/index.js.map +1 -0
  26. package/dist/backend/install/index.d.ts +3 -0
  27. package/dist/backend/install/index.js +4 -0
  28. package/dist/backend/install/index.js.map +1 -0
  29. package/dist/backend/install/runtime-backend.d.ts +22 -0
  30. package/dist/backend/install/runtime-backend.js +95 -0
  31. package/dist/backend/install/runtime-backend.js.map +1 -0
  32. package/dist/backend/install/service.d.ts +119 -0
  33. package/dist/backend/install/service.js +218 -0
  34. package/dist/backend/install/service.js.map +1 -0
  35. package/dist/backend/installed/index.d.ts +3 -0
  36. package/dist/backend/installed/index.js +4 -0
  37. package/dist/backend/installed/index.js.map +1 -0
  38. package/dist/backend/installed/installed.d.ts +93 -0
  39. package/dist/backend/installed/installed.js +209 -0
  40. package/dist/backend/installed/installed.js.map +1 -0
  41. package/dist/backend/installed/scan.d.ts +39 -0
  42. package/dist/backend/installed/scan.js +105 -0
  43. package/dist/backend/installed/scan.js.map +1 -0
  44. package/dist/backend/optimal/index.d.ts +3 -0
  45. package/dist/backend/optimal/index.js +4 -0
  46. package/dist/backend/optimal/index.js.map +1 -0
  47. package/dist/backend/optimal/optimal-cache.d.ts +90 -0
  48. package/dist/backend/optimal/optimal-cache.js +198 -0
  49. package/dist/backend/optimal/optimal-cache.js.map +1 -0
  50. package/dist/backend/optimal/optimal-store.d.ts +24 -0
  51. package/dist/backend/optimal/optimal-store.js +103 -0
  52. package/dist/backend/optimal/optimal-store.js.map +1 -0
  53. package/dist/backend/select/amd-rocm-pci-ids.d.ts +3 -0
  54. package/dist/backend/select/amd-rocm-pci-ids.js +57 -0
  55. package/dist/backend/select/amd-rocm-pci-ids.js.map +1 -0
  56. package/dist/backend/select/categories.d.ts +49 -0
  57. package/dist/backend/select/categories.js +178 -0
  58. package/dist/backend/select/categories.js.map +1 -0
  59. package/dist/backend/select/features.d.ts +81 -0
  60. package/dist/backend/select/features.js +221 -0
  61. package/dist/backend/select/features.js.map +1 -0
  62. package/dist/backend/select/index.d.ts +9 -0
  63. package/dist/backend/select/index.js +10 -0
  64. package/dist/backend/select/index.js.map +1 -0
  65. package/dist/backend/select/recovery.d.ts +51 -0
  66. package/dist/backend/select/recovery.js +108 -0
  67. package/dist/backend/select/recovery.js.map +1 -0
  68. package/dist/backend/select/tiers.d.ts +76 -0
  69. package/dist/backend/select/tiers.js +179 -0
  70. package/dist/backend/select/tiers.js.map +1 -0
  71. package/dist/backend/turboquant.d.ts +134 -0
  72. package/dist/backend/turboquant.js +587 -0
  73. package/dist/backend/turboquant.js.map +1 -0
  74. package/dist/backend/types.d.ts +139 -0
  75. package/dist/backend/types.js +13 -0
  76. package/dist/backend/types.js.map +1 -0
  77. package/dist/backend/version.d.ts +59 -0
  78. package/dist/backend/version.js +168 -0
  79. package/dist/backend/version.js.map +1 -0
  80. package/dist/cli/bin.d.ts +2 -0
  81. package/dist/cli/bin.js +10 -0
  82. package/dist/cli/bin.js.map +1 -0
  83. package/dist/cli/cloud.d.ts +13 -0
  84. package/dist/cli/cloud.js +146 -0
  85. package/dist/cli/cloud.js.map +1 -0
  86. package/dist/cli/commands/daemon.d.ts +4 -0
  87. package/dist/cli/commands/daemon.js +88 -0
  88. package/dist/cli/commands/daemon.js.map +1 -0
  89. package/dist/cli/commands/index.d.ts +16 -0
  90. package/dist/cli/commands/index.js +17 -0
  91. package/dist/cli/commands/index.js.map +1 -0
  92. package/dist/cli/commands/models.d.ts +4 -0
  93. package/dist/cli/commands/models.js +52 -0
  94. package/dist/cli/commands/models.js.map +1 -0
  95. package/dist/cli/commands/serve.d.ts +16 -0
  96. package/dist/cli/commands/serve.js +263 -0
  97. package/dist/cli/commands/serve.js.map +1 -0
  98. package/dist/cli/commands/server.d.ts +4 -0
  99. package/dist/cli/commands/server.js +126 -0
  100. package/dist/cli/commands/server.js.map +1 -0
  101. package/dist/cli/commands/shared.d.ts +10 -0
  102. package/dist/cli/commands/shared.js +34 -0
  103. package/dist/cli/commands/shared.js.map +1 -0
  104. package/dist/cli/commands/shutdown.d.ts +4 -0
  105. package/dist/cli/commands/shutdown.js +32 -0
  106. package/dist/cli/commands/shutdown.js.map +1 -0
  107. package/dist/cli/commands/telemetry.d.ts +8 -0
  108. package/dist/cli/commands/telemetry.js +50 -0
  109. package/dist/cli/commands/telemetry.js.map +1 -0
  110. package/dist/cli/index.d.ts +7 -0
  111. package/dist/cli/index.js +8 -0
  112. package/dist/cli/index.js.map +1 -0
  113. package/dist/cli/io.d.ts +46 -0
  114. package/dist/cli/io.js +101 -0
  115. package/dist/cli/io.js.map +1 -0
  116. package/dist/cli/launch.d.ts +50 -0
  117. package/dist/cli/launch.js +327 -0
  118. package/dist/cli/launch.js.map +1 -0
  119. package/dist/cli/main.d.ts +10 -0
  120. package/dist/cli/main.js +109 -0
  121. package/dist/cli/main.js.map +1 -0
  122. package/dist/cli/owner.d.ts +39 -0
  123. package/dist/cli/owner.js +179 -0
  124. package/dist/cli/owner.js.map +1 -0
  125. package/dist/client/control-client.d.ts +213 -0
  126. package/dist/client/control-client.js +368 -0
  127. package/dist/client/control-client.js.map +1 -0
  128. package/dist/client/index.d.ts +7 -0
  129. package/dist/client/index.js +8 -0
  130. package/dist/client/index.js.map +1 -0
  131. package/dist/cloud/chatgpt.d.ts +63 -0
  132. package/dist/cloud/chatgpt.js +233 -0
  133. package/dist/cloud/chatgpt.js.map +1 -0
  134. package/dist/cloud/index.d.ts +8 -0
  135. package/dist/cloud/index.js +9 -0
  136. package/dist/cloud/index.js.map +1 -0
  137. package/dist/cloud/registry.d.ts +51 -0
  138. package/dist/cloud/registry.js +148 -0
  139. package/dist/cloud/registry.js.map +1 -0
  140. package/dist/config/data-folder.d.ts +57 -0
  141. package/dist/config/data-folder.js +150 -0
  142. package/dist/config/data-folder.js.map +1 -0
  143. package/dist/config/index.d.ts +9 -0
  144. package/dist/config/index.js +10 -0
  145. package/dist/config/index.js.map +1 -0
  146. package/dist/config/paths.d.ts +98 -0
  147. package/dist/config/paths.js +109 -0
  148. package/dist/config/paths.js.map +1 -0
  149. package/dist/contracts/control-api.d.ts +61 -0
  150. package/dist/contracts/control-api.js +7 -0
  151. package/dist/contracts/control-api.js.map +1 -0
  152. package/dist/contracts/diffusion.d.ts +477 -0
  153. package/dist/contracts/diffusion.js +10 -0
  154. package/dist/contracts/diffusion.js.map +1 -0
  155. package/dist/contracts/errors.d.ts +61 -0
  156. package/dist/contracts/errors.js +70 -0
  157. package/dist/contracts/errors.js.map +1 -0
  158. package/dist/contracts/events.d.ts +270 -0
  159. package/dist/contracts/events.js +7 -0
  160. package/dist/contracts/events.js.map +1 -0
  161. package/dist/contracts/hardware.d.ts +53 -0
  162. package/dist/contracts/hardware.js +12 -0
  163. package/dist/contracts/hardware.js.map +1 -0
  164. package/dist/contracts/index.d.ts +12 -0
  165. package/dist/contracts/index.js +13 -0
  166. package/dist/contracts/index.js.map +1 -0
  167. package/dist/contracts/model-yml.d.ts +28 -0
  168. package/dist/contracts/model-yml.js +23 -0
  169. package/dist/contracts/model-yml.js.map +1 -0
  170. package/dist/contracts/remote-access.d.ts +43 -0
  171. package/dist/contracts/remote-access.js +12 -0
  172. package/dist/contracts/remote-access.js.map +1 -0
  173. package/dist/contracts/session.d.ts +39 -0
  174. package/dist/contracts/session.js +7 -0
  175. package/dist/contracts/session.js.map +1 -0
  176. package/dist/contracts/settings.d.ts +106 -0
  177. package/dist/contracts/settings.js +17 -0
  178. package/dist/contracts/settings.js.map +1 -0
  179. package/dist/core/atomic-core.d.ts +149 -0
  180. package/dist/core/atomic-core.js +289 -0
  181. package/dist/core/atomic-core.js.map +1 -0
  182. package/dist/core/create.d.ts +12 -0
  183. package/dist/core/create.js +393 -0
  184. package/dist/core/create.js.map +1 -0
  185. package/dist/core/index.d.ts +10 -0
  186. package/dist/core/index.js +9 -0
  187. package/dist/core/index.js.map +1 -0
  188. package/dist/core/public-server.d.ts +76 -0
  189. package/dist/core/public-server.js +143 -0
  190. package/dist/core/public-server.js.map +1 -0
  191. package/dist/core/reap-orphans.d.ts +7 -0
  192. package/dist/core/reap-orphans.js +40 -0
  193. package/dist/core/reap-orphans.js.map +1 -0
  194. package/dist/core/sessions.d.ts +60 -0
  195. package/dist/core/sessions.js +180 -0
  196. package/dist/core/sessions.js.map +1 -0
  197. package/dist/core/types.d.ts +61 -0
  198. package/dist/core/types.js +2 -0
  199. package/dist/core/types.js.map +1 -0
  200. package/dist/credentials/api-keys.d.ts +41 -0
  201. package/dist/credentials/api-keys.js +156 -0
  202. package/dist/credentials/api-keys.js.map +1 -0
  203. package/dist/credentials/chatgpt-auth.d.ts +73 -0
  204. package/dist/credentials/chatgpt-auth.js +167 -0
  205. package/dist/credentials/chatgpt-auth.js.map +1 -0
  206. package/dist/credentials/chatgpt-oauth.d.ts +97 -0
  207. package/dist/credentials/chatgpt-oauth.js +329 -0
  208. package/dist/credentials/chatgpt-oauth.js.map +1 -0
  209. package/dist/credentials/chatgpt-store.d.ts +33 -0
  210. package/dist/credentials/chatgpt-store.js +110 -0
  211. package/dist/credentials/chatgpt-store.js.map +1 -0
  212. package/dist/credentials/index.d.ts +11 -0
  213. package/dist/credentials/index.js +12 -0
  214. package/dist/credentials/index.js.map +1 -0
  215. package/dist/diffusion/args.d.ts +102 -0
  216. package/dist/diffusion/args.js +291 -0
  217. package/dist/diffusion/args.js.map +1 -0
  218. package/dist/diffusion/compat.d.ts +20 -0
  219. package/dist/diffusion/compat.js +58 -0
  220. package/dist/diffusion/compat.js.map +1 -0
  221. package/dist/diffusion/containment.d.ts +15 -0
  222. package/dist/diffusion/containment.js +32 -0
  223. package/dist/diffusion/containment.js.map +1 -0
  224. package/dist/diffusion/errors.d.ts +28 -0
  225. package/dist/diffusion/errors.js +63 -0
  226. package/dist/diffusion/errors.js.map +1 -0
  227. package/dist/diffusion/gallery.d.ts +76 -0
  228. package/dist/diffusion/gallery.js +307 -0
  229. package/dist/diffusion/gallery.js.map +1 -0
  230. package/dist/diffusion/http.d.ts +16 -0
  231. package/dist/diffusion/http.js +41 -0
  232. package/dist/diffusion/http.js.map +1 -0
  233. package/dist/diffusion/idle.d.ts +23 -0
  234. package/dist/diffusion/idle.js +45 -0
  235. package/dist/diffusion/idle.js.map +1 -0
  236. package/dist/diffusion/image-job.d.ts +25 -0
  237. package/dist/diffusion/image-job.js +176 -0
  238. package/dist/diffusion/image-job.js.map +1 -0
  239. package/dist/diffusion/index.d.ts +35 -0
  240. package/dist/diffusion/index.js +36 -0
  241. package/dist/diffusion/index.js.map +1 -0
  242. package/dist/diffusion/install.d.ts +61 -0
  243. package/dist/diffusion/install.js +287 -0
  244. package/dist/diffusion/install.js.map +1 -0
  245. package/dist/diffusion/job-kind.d.ts +74 -0
  246. package/dist/diffusion/job-kind.js +7 -0
  247. package/dist/diffusion/job-kind.js.map +1 -0
  248. package/dist/diffusion/jobs.d.ts +90 -0
  249. package/dist/diffusion/jobs.js +433 -0
  250. package/dist/diffusion/jobs.js.map +1 -0
  251. package/dist/diffusion/mutex.d.ts +16 -0
  252. package/dist/diffusion/mutex.js +46 -0
  253. package/dist/diffusion/mutex.js.map +1 -0
  254. package/dist/diffusion/parse.d.ts +19 -0
  255. package/dist/diffusion/parse.js +274 -0
  256. package/dist/diffusion/parse.js.map +1 -0
  257. package/dist/diffusion/png.d.ts +77 -0
  258. package/dist/diffusion/png.js +335 -0
  259. package/dist/diffusion/png.js.map +1 -0
  260. package/dist/diffusion/progress.d.ts +74 -0
  261. package/dist/diffusion/progress.js +223 -0
  262. package/dist/diffusion/progress.js.map +1 -0
  263. package/dist/diffusion/recipe.d.ts +26 -0
  264. package/dist/diffusion/recipe.js +206 -0
  265. package/dist/diffusion/recipe.js.map +1 -0
  266. package/dist/diffusion/server-process.d.ts +59 -0
  267. package/dist/diffusion/server-process.js +235 -0
  268. package/dist/diffusion/server-process.js.map +1 -0
  269. package/dist/diffusion/service.d.ts +107 -0
  270. package/dist/diffusion/service.js +431 -0
  271. package/dist/diffusion/service.js.map +1 -0
  272. package/dist/diffusion/session.d.ts +58 -0
  273. package/dist/diffusion/session.js +226 -0
  274. package/dist/diffusion/session.js.map +1 -0
  275. package/dist/diffusion/state.d.ts +90 -0
  276. package/dist/diffusion/state.js +122 -0
  277. package/dist/diffusion/state.js.map +1 -0
  278. package/dist/diffusion/tracker.d.ts +46 -0
  279. package/dist/diffusion/tracker.js +153 -0
  280. package/dist/diffusion/tracker.js.map +1 -0
  281. package/dist/diffusion/types.d.ts +62 -0
  282. package/dist/diffusion/types.js +10 -0
  283. package/dist/diffusion/types.js.map +1 -0
  284. package/dist/diffusion/validate.d.ts +36 -0
  285. package/dist/diffusion/validate.js +166 -0
  286. package/dist/diffusion/validate.js.map +1 -0
  287. package/dist/diffusion/video-gallery.d.ts +56 -0
  288. package/dist/diffusion/video-gallery.js +252 -0
  289. package/dist/diffusion/video-gallery.js.map +1 -0
  290. package/dist/diffusion/video-job.d.ts +33 -0
  291. package/dist/diffusion/video-job.js +150 -0
  292. package/dist/diffusion/video-job.js.map +1 -0
  293. package/dist/diffusion/video-recipe.d.ts +12 -0
  294. package/dist/diffusion/video-recipe.js +141 -0
  295. package/dist/diffusion/video-recipe.js.map +1 -0
  296. package/dist/diffusion/wiring.d.ts +24 -0
  297. package/dist/diffusion/wiring.js +38 -0
  298. package/dist/diffusion/wiring.js.map +1 -0
  299. package/dist/diffusion/workflow.d.ts +33 -0
  300. package/dist/diffusion/workflow.js +78 -0
  301. package/dist/diffusion/workflow.js.map +1 -0
  302. package/dist/downloads/archive.d.ts +15 -0
  303. package/dist/downloads/archive.js +121 -0
  304. package/dist/downloads/archive.js.map +1 -0
  305. package/dist/downloads/disk-space.d.ts +18 -0
  306. package/dist/downloads/disk-space.js +32 -0
  307. package/dist/downloads/disk-space.js.map +1 -0
  308. package/dist/downloads/disk.d.ts +38 -0
  309. package/dist/downloads/disk.js +88 -0
  310. package/dist/downloads/disk.js.map +1 -0
  311. package/dist/downloads/downloader.d.ts +75 -0
  312. package/dist/downloads/downloader.js +479 -0
  313. package/dist/downloads/downloader.js.map +1 -0
  314. package/dist/downloads/index.d.ts +14 -0
  315. package/dist/downloads/index.js +15 -0
  316. package/dist/downloads/index.js.map +1 -0
  317. package/dist/downloads/protocol.d.ts +52 -0
  318. package/dist/downloads/protocol.js +153 -0
  319. package/dist/downloads/protocol.js.map +1 -0
  320. package/dist/downloads/proxy-fetch.d.ts +45 -0
  321. package/dist/downloads/proxy-fetch.js +571 -0
  322. package/dist/downloads/proxy-fetch.js.map +1 -0
  323. package/dist/downloads/verify.d.ts +22 -0
  324. package/dist/downloads/verify.js +74 -0
  325. package/dist/downloads/verify.js.map +1 -0
  326. package/dist/events/emitter.d.ts +44 -0
  327. package/dist/events/emitter.js +104 -0
  328. package/dist/events/emitter.js.map +1 -0
  329. package/dist/events/index.d.ts +5 -0
  330. package/dist/events/index.js +6 -0
  331. package/dist/events/index.js.map +1 -0
  332. package/dist/hardware/index.d.ts +7 -0
  333. package/dist/hardware/index.js +8 -0
  334. package/dist/hardware/index.js.map +1 -0
  335. package/dist/hardware/override.d.ts +46 -0
  336. package/dist/hardware/override.js +81 -0
  337. package/dist/hardware/override.js.map +1 -0
  338. package/dist/host/index.d.ts +15 -0
  339. package/dist/host/index.js +16 -0
  340. package/dist/host/index.js.map +1 -0
  341. package/dist/index.d.ts +5 -0
  342. package/dist/index.js +6 -0
  343. package/dist/index.js.map +1 -0
  344. package/dist/integrations/catalog.d.ts +67 -0
  345. package/dist/integrations/catalog.js +385 -0
  346. package/dist/integrations/catalog.js.map +1 -0
  347. package/dist/integrations/config-io.d.ts +86 -0
  348. package/dist/integrations/config-io.js +229 -0
  349. package/dist/integrations/config-io.js.map +1 -0
  350. package/dist/integrations/configure/atomic-agent.d.ts +33 -0
  351. package/dist/integrations/configure/atomic-agent.js +127 -0
  352. package/dist/integrations/configure/atomic-agent.js.map +1 -0
  353. package/dist/integrations/configure/claude-code.d.ts +16 -0
  354. package/dist/integrations/configure/claude-code.js +45 -0
  355. package/dist/integrations/configure/claude-code.js.map +1 -0
  356. package/dist/integrations/configure/cline.d.ts +28 -0
  357. package/dist/integrations/configure/cline.js +70 -0
  358. package/dist/integrations/configure/cline.js.map +1 -0
  359. package/dist/integrations/configure/codex.d.ts +17 -0
  360. package/dist/integrations/configure/codex.js +43 -0
  361. package/dist/integrations/configure/codex.js.map +1 -0
  362. package/dist/integrations/configure/copilot.d.ts +10 -0
  363. package/dist/integrations/configure/copilot.js +14 -0
  364. package/dist/integrations/configure/copilot.js.map +1 -0
  365. package/dist/integrations/configure/droid.d.ts +12 -0
  366. package/dist/integrations/configure/droid.js +47 -0
  367. package/dist/integrations/configure/droid.js.map +1 -0
  368. package/dist/integrations/configure/dsh.d.ts +34 -0
  369. package/dist/integrations/configure/dsh.js +146 -0
  370. package/dist/integrations/configure/dsh.js.map +1 -0
  371. package/dist/integrations/configure/env-agent.d.ts +26 -0
  372. package/dist/integrations/configure/env-agent.js +41 -0
  373. package/dist/integrations/configure/env-agent.js.map +1 -0
  374. package/dist/integrations/configure/goose.d.ts +12 -0
  375. package/dist/integrations/configure/goose.js +16 -0
  376. package/dist/integrations/configure/goose.js.map +1 -0
  377. package/dist/integrations/configure/hermes.d.ts +41 -0
  378. package/dist/integrations/configure/hermes.js +247 -0
  379. package/dist/integrations/configure/hermes.js.map +1 -0
  380. package/dist/integrations/configure/index.d.ts +25 -0
  381. package/dist/integrations/configure/index.js +26 -0
  382. package/dist/integrations/configure/index.js.map +1 -0
  383. package/dist/integrations/configure/json-tree.d.ts +16 -0
  384. package/dist/integrations/configure/json-tree.js +19 -0
  385. package/dist/integrations/configure/json-tree.js.map +1 -0
  386. package/dist/integrations/configure/kilo.d.ts +9 -0
  387. package/dist/integrations/configure/kilo.js +19 -0
  388. package/dist/integrations/configure/kilo.js.map +1 -0
  389. package/dist/integrations/configure/mimo.d.ts +9 -0
  390. package/dist/integrations/configure/mimo.js +19 -0
  391. package/dist/integrations/configure/mimo.js.map +1 -0
  392. package/dist/integrations/configure/muse.d.ts +9 -0
  393. package/dist/integrations/configure/muse.js +13 -0
  394. package/dist/integrations/configure/muse.js.map +1 -0
  395. package/dist/integrations/configure/openclaude.d.ts +13 -0
  396. package/dist/integrations/configure/openclaude.js +56 -0
  397. package/dist/integrations/configure/openclaude.js.map +1 -0
  398. package/dist/integrations/configure/openclaw.d.ts +24 -0
  399. package/dist/integrations/configure/openclaw.js +99 -0
  400. package/dist/integrations/configure/openclaw.js.map +1 -0
  401. package/dist/integrations/configure/opencode-style.d.ts +25 -0
  402. package/dist/integrations/configure/opencode-style.js +43 -0
  403. package/dist/integrations/configure/opencode-style.js.map +1 -0
  404. package/dist/integrations/configure/opencode.d.ts +9 -0
  405. package/dist/integrations/configure/opencode.js +19 -0
  406. package/dist/integrations/configure/opencode.js.map +1 -0
  407. package/dist/integrations/configure/openhands.d.ts +8 -0
  408. package/dist/integrations/configure/openhands.js +12 -0
  409. package/dist/integrations/configure/openhands.js.map +1 -0
  410. package/dist/integrations/configure/pi.d.ts +14 -0
  411. package/dist/integrations/configure/pi.js +49 -0
  412. package/dist/integrations/configure/pi.js.map +1 -0
  413. package/dist/integrations/configure/poolside.d.ts +8 -0
  414. package/dist/integrations/configure/poolside.js +12 -0
  415. package/dist/integrations/configure/poolside.js.map +1 -0
  416. package/dist/integrations/configure/registry.d.ts +41 -0
  417. package/dist/integrations/configure/registry.js +50 -0
  418. package/dist/integrations/configure/registry.js.map +1 -0
  419. package/dist/integrations/configure/zcode.d.ts +59 -0
  420. package/dist/integrations/configure/zcode.js +260 -0
  421. package/dist/integrations/configure/zcode.js.map +1 -0
  422. package/dist/integrations/configure/zed.d.ts +16 -0
  423. package/dist/integrations/configure/zed.js +61 -0
  424. package/dist/integrations/configure/zed.js.map +1 -0
  425. package/dist/integrations/detect.d.ts +29 -0
  426. package/dist/integrations/detect.js +43 -0
  427. package/dist/integrations/detect.js.map +1 -0
  428. package/dist/integrations/index.d.ts +9 -0
  429. package/dist/integrations/index.js +10 -0
  430. package/dist/integrations/index.js.map +1 -0
  431. package/dist/lock/control-token.d.ts +19 -0
  432. package/dist/lock/control-token.js +58 -0
  433. package/dist/lock/control-token.js.map +1 -0
  434. package/dist/lock/index.d.ts +10 -0
  435. package/dist/lock/index.js +11 -0
  436. package/dist/lock/index.js.map +1 -0
  437. package/dist/lock/instance-lock.d.ts +93 -0
  438. package/dist/lock/instance-lock.js +244 -0
  439. package/dist/lock/instance-lock.js.map +1 -0
  440. package/dist/lock/legacy-guard.d.ts +46 -0
  441. package/dist/lock/legacy-guard.js +87 -0
  442. package/dist/lock/legacy-guard.js.map +1 -0
  443. package/dist/lock/model-claim.d.ts +20 -0
  444. package/dist/lock/model-claim.js +84 -0
  445. package/dist/lock/model-claim.js.map +1 -0
  446. package/dist/lock/process-identity.d.ts +48 -0
  447. package/dist/lock/process-identity.js +180 -0
  448. package/dist/lock/process-identity.js.map +1 -0
  449. package/dist/lock/process-journal.d.ts +56 -0
  450. package/dist/lock/process-journal.js +113 -0
  451. package/dist/lock/process-journal.js.map +1 -0
  452. package/dist/models/capabilities.d.ts +73 -0
  453. package/dist/models/capabilities.js +123 -0
  454. package/dist/models/capabilities.js.map +1 -0
  455. package/dist/models/embed.d.ts +30 -0
  456. package/dist/models/embed.js +83 -0
  457. package/dist/models/embed.js.map +1 -0
  458. package/dist/models/gguf/classify.d.ts +29 -0
  459. package/dist/models/gguf/classify.js +89 -0
  460. package/dist/models/gguf/classify.js.map +1 -0
  461. package/dist/models/gguf/index.d.ts +5 -0
  462. package/dist/models/gguf/index.js +6 -0
  463. package/dist/models/gguf/index.js.map +1 -0
  464. package/dist/models/gguf/kv-cache.d.ts +27 -0
  465. package/dist/models/gguf/kv-cache.js +101 -0
  466. package/dist/models/gguf/kv-cache.js.map +1 -0
  467. package/dist/models/gguf/read-file.d.ts +11 -0
  468. package/dist/models/gguf/read-file.js +21 -0
  469. package/dist/models/gguf/read-file.js.map +1 -0
  470. package/dist/models/gguf/reader.d.ts +40 -0
  471. package/dist/models/gguf/reader.js +271 -0
  472. package/dist/models/gguf/reader.js.map +1 -0
  473. package/dist/models/gguf/support.d.ts +47 -0
  474. package/dist/models/gguf/support.js +48 -0
  475. package/dist/models/gguf/support.js.map +1 -0
  476. package/dist/models/hf.d.ts +35 -0
  477. package/dist/models/hf.js +140 -0
  478. package/dist/models/hf.js.map +1 -0
  479. package/dist/models/index.d.ts +14 -0
  480. package/dist/models/index.js +15 -0
  481. package/dist/models/index.js.map +1 -0
  482. package/dist/models/model-yml.d.ts +22 -0
  483. package/dist/models/model-yml.js +63 -0
  484. package/dist/models/model-yml.js.map +1 -0
  485. package/dist/models/registry.d.ts +51 -0
  486. package/dist/models/registry.js +102 -0
  487. package/dist/models/registry.js.map +1 -0
  488. package/dist/models/shards.d.ts +20 -0
  489. package/dist/models/shards.js +46 -0
  490. package/dist/models/shards.js.map +1 -0
  491. package/dist/remote-access/cloudflared-args.d.ts +41 -0
  492. package/dist/remote-access/cloudflared-args.js +59 -0
  493. package/dist/remote-access/cloudflared-args.js.map +1 -0
  494. package/dist/remote-access/cloudflared-output.d.ts +26 -0
  495. package/dist/remote-access/cloudflared-output.js +51 -0
  496. package/dist/remote-access/cloudflared-output.js.map +1 -0
  497. package/dist/remote-access/index.d.ts +16 -0
  498. package/dist/remote-access/index.js +17 -0
  499. package/dist/remote-access/index.js.map +1 -0
  500. package/dist/remote-access/journal.d.ts +63 -0
  501. package/dist/remote-access/journal.js +140 -0
  502. package/dist/remote-access/journal.js.map +1 -0
  503. package/dist/remote-access/lan-probe.d.ts +28 -0
  504. package/dist/remote-access/lan-probe.js +63 -0
  505. package/dist/remote-access/lan-probe.js.map +1 -0
  506. package/dist/remote-access/lan.d.ts +31 -0
  507. package/dist/remote-access/lan.js +90 -0
  508. package/dist/remote-access/lan.js.map +1 -0
  509. package/dist/remote-access/manager.d.ts +111 -0
  510. package/dist/remote-access/manager.js +316 -0
  511. package/dist/remote-access/manager.js.map +1 -0
  512. package/dist/remote-access/probe.d.ts +92 -0
  513. package/dist/remote-access/probe.js +186 -0
  514. package/dist/remote-access/probe.js.map +1 -0
  515. package/dist/remote-access/process.d.ts +66 -0
  516. package/dist/remote-access/process.js +160 -0
  517. package/dist/remote-access/process.js.map +1 -0
  518. package/dist/remote-access/spawner.d.ts +25 -0
  519. package/dist/remote-access/spawner.js +49 -0
  520. package/dist/remote-access/spawner.js.map +1 -0
  521. package/dist/remote-access/status.d.ts +39 -0
  522. package/dist/remote-access/status.js +49 -0
  523. package/dist/remote-access/status.js.map +1 -0
  524. package/dist/remote-access/wiring.d.ts +34 -0
  525. package/dist/remote-access/wiring.js +47 -0
  526. package/dist/remote-access/wiring.js.map +1 -0
  527. package/dist/router/index.d.ts +7 -0
  528. package/dist/router/index.js +8 -0
  529. package/dist/router/index.js.map +1 -0
  530. package/dist/router/resolve.d.ts +41 -0
  531. package/dist/router/resolve.js +53 -0
  532. package/dist/router/resolve.js.map +1 -0
  533. package/dist/runtime/foundation-models/errors.d.ts +28 -0
  534. package/dist/runtime/foundation-models/errors.js +48 -0
  535. package/dist/runtime/foundation-models/errors.js.map +1 -0
  536. package/dist/runtime/foundation-models/index.d.ts +8 -0
  537. package/dist/runtime/foundation-models/index.js +9 -0
  538. package/dist/runtime/foundation-models/index.js.map +1 -0
  539. package/dist/runtime/foundation-models/runtime.d.ts +73 -0
  540. package/dist/runtime/foundation-models/runtime.js +186 -0
  541. package/dist/runtime/foundation-models/runtime.js.map +1 -0
  542. package/dist/runtime/index.d.ts +5 -0
  543. package/dist/runtime/index.js +6 -0
  544. package/dist/runtime/index.js.map +1 -0
  545. package/dist/runtime/llamacpp/args.d.ts +90 -0
  546. package/dist/runtime/llamacpp/args.js +379 -0
  547. package/dist/runtime/llamacpp/args.js.map +1 -0
  548. package/dist/runtime/llamacpp/ctx-ladder.d.ts +16 -0
  549. package/dist/runtime/llamacpp/ctx-ladder.js +28 -0
  550. package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -0
  551. package/dist/runtime/llamacpp/devices.d.ts +26 -0
  552. package/dist/runtime/llamacpp/devices.js +86 -0
  553. package/dist/runtime/llamacpp/devices.js.map +1 -0
  554. package/dist/runtime/llamacpp/errors.d.ts +34 -0
  555. package/dist/runtime/llamacpp/errors.js +137 -0
  556. package/dist/runtime/llamacpp/errors.js.map +1 -0
  557. package/dist/runtime/llamacpp/index.d.ts +14 -0
  558. package/dist/runtime/llamacpp/index.js +15 -0
  559. package/dist/runtime/llamacpp/index.js.map +1 -0
  560. package/dist/runtime/llamacpp/load-plan.d.ts +113 -0
  561. package/dist/runtime/llamacpp/load-plan.js +259 -0
  562. package/dist/runtime/llamacpp/load-plan.js.map +1 -0
  563. package/dist/runtime/llamacpp/policy.d.ts +70 -0
  564. package/dist/runtime/llamacpp/policy.js +191 -0
  565. package/dist/runtime/llamacpp/policy.js.map +1 -0
  566. package/dist/runtime/llamacpp/probe.d.ts +13 -0
  567. package/dist/runtime/llamacpp/probe.js +35 -0
  568. package/dist/runtime/llamacpp/probe.js.map +1 -0
  569. package/dist/runtime/llamacpp/runtime-device.d.ts +33 -0
  570. package/dist/runtime/llamacpp/runtime-device.js +169 -0
  571. package/dist/runtime/llamacpp/runtime-device.js.map +1 -0
  572. package/dist/runtime/llamacpp/runtime.d.ts +151 -0
  573. package/dist/runtime/llamacpp/runtime.js +535 -0
  574. package/dist/runtime/llamacpp/runtime.js.map +1 -0
  575. package/dist/runtime/mlx/args.d.ts +10 -0
  576. package/dist/runtime/mlx/args.js +44 -0
  577. package/dist/runtime/mlx/args.js.map +1 -0
  578. package/dist/runtime/mlx/config.d.ts +71 -0
  579. package/dist/runtime/mlx/config.js +91 -0
  580. package/dist/runtime/mlx/config.js.map +1 -0
  581. package/dist/runtime/mlx/errors.d.ts +21 -0
  582. package/dist/runtime/mlx/errors.js +73 -0
  583. package/dist/runtime/mlx/errors.js.map +1 -0
  584. package/dist/runtime/mlx/index.d.ts +12 -0
  585. package/dist/runtime/mlx/index.js +13 -0
  586. package/dist/runtime/mlx/index.js.map +1 -0
  587. package/dist/runtime/mlx/model-files.d.ts +29 -0
  588. package/dist/runtime/mlx/model-files.js +82 -0
  589. package/dist/runtime/mlx/model-files.js.map +1 -0
  590. package/dist/runtime/mlx/runtime.d.ts +77 -0
  591. package/dist/runtime/mlx/runtime.js +223 -0
  592. package/dist/runtime/mlx/runtime.js.map +1 -0
  593. package/dist/runtime/mlx/shard-repair.d.ts +25 -0
  594. package/dist/runtime/mlx/shard-repair.js +44 -0
  595. package/dist/runtime/mlx/shard-repair.js.map +1 -0
  596. package/dist/runtime/shared/env.d.ts +49 -0
  597. package/dist/runtime/shared/env.js +155 -0
  598. package/dist/runtime/shared/env.js.map +1 -0
  599. package/dist/runtime/shared/external-sessions.d.ts +67 -0
  600. package/dist/runtime/shared/external-sessions.js +155 -0
  601. package/dist/runtime/shared/external-sessions.js.map +1 -0
  602. package/dist/runtime/shared/index.d.ts +17 -0
  603. package/dist/runtime/shared/index.js +18 -0
  604. package/dist/runtime/shared/index.js.map +1 -0
  605. package/dist/runtime/shared/load-cancel.d.ts +45 -0
  606. package/dist/runtime/shared/load-cancel.js +95 -0
  607. package/dist/runtime/shared/load-cancel.js.map +1 -0
  608. package/dist/runtime/shared/local-runtime.d.ts +68 -0
  609. package/dist/runtime/shared/local-runtime.js +12 -0
  610. package/dist/runtime/shared/local-runtime.js.map +1 -0
  611. package/dist/runtime/shared/log-stream.d.ts +4 -0
  612. package/dist/runtime/shared/log-stream.js +28 -0
  613. package/dist/runtime/shared/log-stream.js.map +1 -0
  614. package/dist/runtime/shared/paths.d.ts +21 -0
  615. package/dist/runtime/shared/paths.js +63 -0
  616. package/dist/runtime/shared/paths.js.map +1 -0
  617. package/dist/runtime/shared/ports.d.ts +26 -0
  618. package/dist/runtime/shared/ports.js +45 -0
  619. package/dist/runtime/shared/ports.js.map +1 -0
  620. package/dist/runtime/shared/process.d.ts +95 -0
  621. package/dist/runtime/shared/process.js +224 -0
  622. package/dist/runtime/shared/process.js.map +1 -0
  623. package/dist/runtime/shared/sidecar.d.ts +86 -0
  624. package/dist/runtime/shared/sidecar.js +214 -0
  625. package/dist/runtime/shared/sidecar.js.map +1 -0
  626. package/dist/server/clients.d.ts +40 -0
  627. package/dist/server/clients.js +74 -0
  628. package/dist/server/clients.js.map +1 -0
  629. package/dist/server/control/index.d.ts +12 -0
  630. package/dist/server/control/index.js +12 -0
  631. package/dist/server/control/index.js.map +1 -0
  632. package/dist/server/control/router.d.ts +9 -0
  633. package/dist/server/control/router.js +61 -0
  634. package/dist/server/control/router.js.map +1 -0
  635. package/dist/server/control/routes/backends.d.ts +4 -0
  636. package/dist/server/control/routes/backends.js +47 -0
  637. package/dist/server/control/routes/backends.js.map +1 -0
  638. package/dist/server/control/routes/clients.d.ts +4 -0
  639. package/dist/server/control/routes/clients.js +30 -0
  640. package/dist/server/control/routes/clients.js.map +1 -0
  641. package/dist/server/control/routes/cloud.d.ts +4 -0
  642. package/dist/server/control/routes/cloud.js +32 -0
  643. package/dist/server/control/routes/cloud.js.map +1 -0
  644. package/dist/server/control/routes/diffusion-video.d.ts +10 -0
  645. package/dist/server/control/routes/diffusion-video.js +33 -0
  646. package/dist/server/control/routes/diffusion-video.js.map +1 -0
  647. package/dist/server/control/routes/diffusion.d.ts +15 -0
  648. package/dist/server/control/routes/diffusion.js +71 -0
  649. package/dist/server/control/routes/diffusion.js.map +1 -0
  650. package/dist/server/control/routes/disk.d.ts +4 -0
  651. package/dist/server/control/routes/disk.js +11 -0
  652. package/dist/server/control/routes/disk.js.map +1 -0
  653. package/dist/server/control/routes/external-sessions.d.ts +4 -0
  654. package/dist/server/control/routes/external-sessions.js +27 -0
  655. package/dist/server/control/routes/external-sessions.js.map +1 -0
  656. package/dist/server/control/routes/hardware.d.ts +4 -0
  657. package/dist/server/control/routes/hardware.js +14 -0
  658. package/dist/server/control/routes/hardware.js.map +1 -0
  659. package/dist/server/control/routes/lifecycle.d.ts +12 -0
  660. package/dist/server/control/routes/lifecycle.js +67 -0
  661. package/dist/server/control/routes/lifecycle.js.map +1 -0
  662. package/dist/server/control/routes/models.d.ts +7 -0
  663. package/dist/server/control/routes/models.js +59 -0
  664. package/dist/server/control/routes/models.js.map +1 -0
  665. package/dist/server/control/routes/public-server.d.ts +4 -0
  666. package/dist/server/control/routes/public-server.js +30 -0
  667. package/dist/server/control/routes/public-server.js.map +1 -0
  668. package/dist/server/control/routes/remote-access.d.ts +7 -0
  669. package/dist/server/control/routes/remote-access.js +16 -0
  670. package/dist/server/control/routes/remote-access.js.map +1 -0
  671. package/dist/server/control/routes/settings.d.ts +4 -0
  672. package/dist/server/control/routes/settings.js +58 -0
  673. package/dist/server/control/routes/settings.js.map +1 -0
  674. package/dist/server/control/routes/telemetry.d.ts +7 -0
  675. package/dist/server/control/routes/telemetry.js +46 -0
  676. package/dist/server/control/routes/telemetry.js.map +1 -0
  677. package/dist/server/control/server.d.ts +26 -0
  678. package/dist/server/control/server.js +111 -0
  679. package/dist/server/control/server.js.map +1 -0
  680. package/dist/server/control/types.d.ts +271 -0
  681. package/dist/server/control/types.js +6 -0
  682. package/dist/server/control/types.js.map +1 -0
  683. package/dist/server/http.d.ts +62 -0
  684. package/dist/server/http.js +220 -0
  685. package/dist/server/http.js.map +1 -0
  686. package/dist/server/index.d.ts +9 -0
  687. package/dist/server/index.js +10 -0
  688. package/dist/server/index.js.map +1 -0
  689. package/dist/server/public/ctx.d.ts +23 -0
  690. package/dist/server/public/ctx.js +42 -0
  691. package/dist/server/public/ctx.js.map +1 -0
  692. package/dist/server/public/dynamic-hosts.d.ts +40 -0
  693. package/dist/server/public/dynamic-hosts.js +117 -0
  694. package/dist/server/public/dynamic-hosts.js.map +1 -0
  695. package/dist/server/public/errors.d.ts +36 -0
  696. package/dist/server/public/errors.js +120 -0
  697. package/dist/server/public/errors.js.map +1 -0
  698. package/dist/server/public/exchange.d.ts +42 -0
  699. package/dist/server/public/exchange.js +85 -0
  700. package/dist/server/public/exchange.js.map +1 -0
  701. package/dist/server/public/forward.d.ts +53 -0
  702. package/dist/server/public/forward.js +448 -0
  703. package/dist/server/public/forward.js.map +1 -0
  704. package/dist/server/public/gates.d.ts +49 -0
  705. package/dist/server/public/gates.js +181 -0
  706. package/dist/server/public/gates.js.map +1 -0
  707. package/dist/server/public/images-params.d.ts +50 -0
  708. package/dist/server/public/images-params.js +162 -0
  709. package/dist/server/public/images-params.js.map +1 -0
  710. package/dist/server/public/images.d.ts +12 -0
  711. package/dist/server/public/images.js +96 -0
  712. package/dist/server/public/images.js.map +1 -0
  713. package/dist/server/public/index.d.ts +58 -0
  714. package/dist/server/public/index.js +253 -0
  715. package/dist/server/public/index.js.map +1 -0
  716. package/dist/server/public/listing.d.ts +27 -0
  717. package/dist/server/public/listing.js +116 -0
  718. package/dist/server/public/listing.js.map +1 -0
  719. package/dist/server/public/responses.d.ts +11 -0
  720. package/dist/server/public/responses.js +158 -0
  721. package/dist/server/public/responses.js.map +1 -0
  722. package/dist/server/public/sse.d.ts +33 -0
  723. package/dist/server/public/sse.js +48 -0
  724. package/dist/server/public/sse.js.map +1 -0
  725. package/dist/server/public/static-assets.generated.d.ts +3 -0
  726. package/dist/server/public/static-assets.generated.js +6 -0
  727. package/dist/server/public/static-assets.generated.js.map +1 -0
  728. package/dist/server/public/static.d.ts +13 -0
  729. package/dist/server/public/static.js +75 -0
  730. package/dist/server/public/static.js.map +1 -0
  731. package/dist/server/public/subscription.d.ts +14 -0
  732. package/dist/server/public/subscription.js +56 -0
  733. package/dist/server/public/subscription.js.map +1 -0
  734. package/dist/server/public/telemetry.d.ts +65 -0
  735. package/dist/server/public/telemetry.js +284 -0
  736. package/dist/server/public/telemetry.js.map +1 -0
  737. package/dist/server/public/trace.d.ts +66 -0
  738. package/dist/server/public/trace.js +223 -0
  739. package/dist/server/public/trace.js.map +1 -0
  740. package/dist/server/public/types.d.ts +131 -0
  741. package/dist/server/public/types.js +9 -0
  742. package/dist/server/public/types.js.map +1 -0
  743. package/dist/server/public/videos-params.d.ts +95 -0
  744. package/dist/server/public/videos-params.js +220 -0
  745. package/dist/server/public/videos-params.js.map +1 -0
  746. package/dist/server/public/videos.d.ts +16 -0
  747. package/dist/server/public/videos.js +188 -0
  748. package/dist/server/public/videos.js.map +1 -0
  749. package/dist/server/public/wire.d.ts +53 -0
  750. package/dist/server/public/wire.js +174 -0
  751. package/dist/server/public/wire.js.map +1 -0
  752. package/dist/server/shims/anthropic.d.ts +52 -0
  753. package/dist/server/shims/anthropic.js +519 -0
  754. package/dist/server/shims/anthropic.js.map +1 -0
  755. package/dist/server/shims/chat-to-responses.d.ts +113 -0
  756. package/dist/server/shims/chat-to-responses.js +557 -0
  757. package/dist/server/shims/chat-to-responses.js.map +1 -0
  758. package/dist/server/shims/index.d.ts +8 -0
  759. package/dist/server/shims/index.js +9 -0
  760. package/dist/server/shims/index.js.map +1 -0
  761. package/dist/server/shims/json.d.ts +10 -0
  762. package/dist/server/shims/json.js +78 -0
  763. package/dist/server/shims/json.js.map +1 -0
  764. package/dist/server/shims/responses.d.ts +79 -0
  765. package/dist/server/shims/responses.js +543 -0
  766. package/dist/server/shims/responses.js.map +1 -0
  767. package/dist/server/state-file.d.ts +44 -0
  768. package/dist/server/state-file.js +107 -0
  769. package/dist/server/state-file.js.map +1 -0
  770. package/dist/settings/import.d.ts +61 -0
  771. package/dist/settings/import.js +104 -0
  772. package/dist/settings/import.js.map +1 -0
  773. package/dist/settings/index.d.ts +11 -0
  774. package/dist/settings/index.js +12 -0
  775. package/dist/settings/index.js.map +1 -0
  776. package/dist/settings/schema/foundation-models.json +1 -0
  777. package/dist/settings/schema/llamacpp-upstream.json +489 -0
  778. package/dist/settings/schema/llamacpp.json +475 -0
  779. package/dist/settings/schema/mlx.json +136 -0
  780. package/dist/settings/schema.d.ts +35 -0
  781. package/dist/settings/schema.js +196 -0
  782. package/dist/settings/schema.js.map +1 -0
  783. package/dist/settings/store.d.ts +168 -0
  784. package/dist/settings/store.js +350 -0
  785. package/dist/settings/store.js.map +1 -0
  786. package/dist/speculative/chat-template-overrides.d.ts +35 -0
  787. package/dist/speculative/chat-template-overrides.js +142 -0
  788. package/dist/speculative/chat-template-overrides.js.map +1 -0
  789. package/dist/speculative/dflash-registry.d.ts +50 -0
  790. package/dist/speculative/dflash-registry.js +258 -0
  791. package/dist/speculative/dflash-registry.js.map +1 -0
  792. package/dist/speculative/gemma-mtp-registry.d.ts +48 -0
  793. package/dist/speculative/gemma-mtp-registry.js +79 -0
  794. package/dist/speculative/gemma-mtp-registry.js.map +1 -0
  795. package/dist/speculative/index.d.ts +18 -0
  796. package/dist/speculative/index.js +19 -0
  797. package/dist/speculative/index.js.map +1 -0
  798. package/dist/speculative/mlx-dflash-registry.d.ts +39 -0
  799. package/dist/speculative/mlx-dflash-registry.js +230 -0
  800. package/dist/speculative/mlx-dflash-registry.js.map +1 -0
  801. package/dist/speculative/mlx-eagle3-registry.d.ts +24 -0
  802. package/dist/speculative/mlx-eagle3-registry.js +81 -0
  803. package/dist/speculative/mlx-eagle3-registry.js.map +1 -0
  804. package/dist/speculative/mlx-mtp-registry.d.ts +31 -0
  805. package/dist/speculative/mlx-mtp-registry.js +139 -0
  806. package/dist/speculative/mlx-mtp-registry.js.map +1 -0
  807. package/dist/speculative/transcription-registry.d.ts +72 -0
  808. package/dist/speculative/transcription-registry.js +94 -0
  809. package/dist/speculative/transcription-registry.js.map +1 -0
  810. package/dist/telemetry/config.d.ts +38 -0
  811. package/dist/telemetry/config.js +44 -0
  812. package/dist/telemetry/config.js.map +1 -0
  813. package/dist/telemetry/consent.d.ts +21 -0
  814. package/dist/telemetry/consent.js +35 -0
  815. package/dist/telemetry/consent.js.map +1 -0
  816. package/dist/telemetry/core-reporter.d.ts +47 -0
  817. package/dist/telemetry/core-reporter.js +72 -0
  818. package/dist/telemetry/core-reporter.js.map +1 -0
  819. package/dist/telemetry/daemon.d.ts +40 -0
  820. package/dist/telemetry/daemon.js +67 -0
  821. package/dist/telemetry/daemon.js.map +1 -0
  822. package/dist/telemetry/dsn.d.ts +15 -0
  823. package/dist/telemetry/dsn.js +32 -0
  824. package/dist/telemetry/dsn.js.map +1 -0
  825. package/dist/telemetry/envelope.d.ts +97 -0
  826. package/dist/telemetry/envelope.js +95 -0
  827. package/dist/telemetry/envelope.js.map +1 -0
  828. package/dist/telemetry/index.d.ts +18 -0
  829. package/dist/telemetry/index.js +19 -0
  830. package/dist/telemetry/index.js.map +1 -0
  831. package/dist/telemetry/policy.d.ts +39 -0
  832. package/dist/telemetry/policy.js +142 -0
  833. package/dist/telemetry/policy.js.map +1 -0
  834. package/dist/telemetry/reporter.d.ts +80 -0
  835. package/dist/telemetry/reporter.js +0 -0
  836. package/dist/telemetry/reporter.js.map +1 -0
  837. package/dist/telemetry/reports.d.ts +68 -0
  838. package/dist/telemetry/reports.js +212 -0
  839. package/dist/telemetry/reports.js.map +1 -0
  840. package/dist/telemetry/scrub.d.ts +19 -0
  841. package/dist/telemetry/scrub.js +75 -0
  842. package/dist/telemetry/scrub.js.map +1 -0
  843. package/dist/telemetry/stack.d.ts +21 -0
  844. package/dist/telemetry/stack.js +68 -0
  845. package/dist/telemetry/stack.js.map +1 -0
  846. package/dist/telemetry/store.d.ts +17 -0
  847. package/dist/telemetry/store.js +51 -0
  848. package/dist/telemetry/store.js.map +1 -0
  849. package/dist/telemetry/subscribe.d.ts +13 -0
  850. package/dist/telemetry/subscribe.js +19 -0
  851. package/dist/telemetry/subscribe.js.map +1 -0
  852. package/dist/telemetry/types.d.ts +40 -0
  853. package/dist/telemetry/types.js +2 -0
  854. package/dist/telemetry/types.js.map +1 -0
  855. package/dist/util/index.d.ts +5 -0
  856. package/dist/util/index.js +6 -0
  857. package/dist/util/index.js.map +1 -0
  858. package/dist/util/rust-number.d.ts +27 -0
  859. package/dist/util/rust-number.js +101 -0
  860. package/dist/util/rust-number.js.map +1 -0
  861. package/dist/version.d.ts +2 -0
  862. package/dist/version.js +3 -0
  863. package/dist/version.js.map +1 -0
  864. package/package.json +86 -0
  865. package/src/settings/schema/foundation-models.json +1 -0
  866. package/src/settings/schema/llamacpp-upstream.json +489 -0
  867. package/src/settings/schema/llamacpp.json +475 -0
  868. package/src/settings/schema/mlx.json +136 -0
@@ -0,0 +1,212 @@
1
+ /**
2
+ * What each failure the core observes becomes as a report — or null when it is not a defect worth
3
+ * an issue. Pure: callers hand in what they know, the reporter scrubs and sends.
4
+ */
5
+ import { AtomicCoreError } from '../contracts/index.js';
6
+ import { RECOVERABLE_LOAD_ERROR_CODES, isCrashExit, signalNumber } from '../runtime/llamacpp/index.js';
7
+ import { ENVIRONMENT_FAILURE_CODES, errorCodeOf, isCancellation, isClientAbort, markerLines, oomSubtype, quantOf, } from './policy.js';
8
+ import { headline } from './scrub.js';
9
+ /** Hand a report to the sink when there is one and the failure is worth reporting. */
10
+ export function captureReport(sink, report) {
11
+ if (sink && report)
12
+ sink.capture(report);
13
+ }
14
+ /** A crash-looping engine is one report per model, code and window (the web app's throttle). */
15
+ export const ENGINE_THROTTLE_MS = 5 * 60_000;
16
+ function modelTag(modelId) {
17
+ return modelId.replace(/\\/g, '/');
18
+ }
19
+ function detailsOf(error) {
20
+ if (error instanceof AtomicCoreError)
21
+ return error.details ?? error.message;
22
+ return error instanceof Error ? error.message : undefined;
23
+ }
24
+ /** A throw nothing caught: the daemon dies (fatal), or an event listener lost one event (error). */
25
+ export function processFailureReport(source, error, context = {}) {
26
+ // Losing the race for the instance lock is how a second launch learns an owner already runs.
27
+ if (source === 'startup' && errorCodeOf(error) === 'CORE_ALREADY_RUNNING')
28
+ return null;
29
+ return {
30
+ source,
31
+ level: source === 'event_listener' ? 'error' : 'fatal',
32
+ error,
33
+ tags: { error_code: errorCodeOf(error), event: context.event },
34
+ };
35
+ }
36
+ // ── the HTTP servers ─────────────────────────────────────────────────────────
37
+ /**
38
+ * A request that failed on our side. Coded `AtomicCoreError`s are answers, not defects, and a client
39
+ * that hung up is its own business; what is left is a bug behind the HTTP boundary.
40
+ */
41
+ export function internalErrorReport(input) {
42
+ if (input.status < 500 || input.error instanceof AtomicCoreError || isClientAbort(input.error))
43
+ return null;
44
+ return {
45
+ source: input.source,
46
+ level: 'error',
47
+ error: input.error,
48
+ tags: { route: input.route, http_status: input.status, error_code: errorCodeOf(input.error) },
49
+ };
50
+ }
51
+ // ── local engines ────────────────────────────────────────────────────────────
52
+ /**
53
+ * A loaded engine that exited. A native crash is an error, a kill from outside (the OOM killer,
54
+ * Jetsam) or an out-of-memory exit a warning; a polite stop or a clean exit is nothing. Loads that
55
+ * crash are reported by `loadFailureReport`: `session:died` fires only for a session that was up.
56
+ */
57
+ export function sessionDeathReport(died, platform) {
58
+ const signal = signalNumber(died.signal);
59
+ const crashed = isCrashExit({ code: died.exit_code, signal: died.signal }, platform);
60
+ const oom = /out of memory|\boom\b/i.test(died.message);
61
+ let kind;
62
+ if (crashed)
63
+ kind = signal === 11 ? 'sigsegv' : signal === 6 ? 'sigabrt' : 'native_crash';
64
+ else if (signal === 9)
65
+ kind = 'sigkill';
66
+ else if (oom)
67
+ kind = 'oom';
68
+ else if (signal === null && died.exit_code !== null && died.exit_code !== 0)
69
+ kind = 'exit';
70
+ else
71
+ return null;
72
+ return {
73
+ source: 'backend_crash',
74
+ level: kind === 'sigkill' || kind === 'oom' ? 'warning' : 'error',
75
+ type: 'BackendCrash',
76
+ message: headline(died.message),
77
+ fingerprint: ['backend-crash', died.provider, kind],
78
+ tags: {
79
+ provider: died.provider,
80
+ model_id: modelTag(died.model_id),
81
+ quant: quantOf(died.model_id),
82
+ crash_kind: kind,
83
+ exit_code: died.exit_code,
84
+ signal: died.signal,
85
+ },
86
+ throttle: { key: `died:${died.provider}:${died.model_id}:${kind}`, windowMs: ENGINE_THROTTLE_MS },
87
+ };
88
+ }
89
+ /**
90
+ * Refusals before any engine starts: an unknown provider or model, a model another owner holds, a
91
+ * core that is stopping. They are answers to the caller, not load failures.
92
+ */
93
+ const NOT_ENGINE_FAILURES = new Set([
94
+ 'PROVIDER_NOT_FOUND',
95
+ 'MODEL_NOT_FOUND',
96
+ 'CORE_ALREADY_RUNNING',
97
+ 'CORE_NOT_RUNNING',
98
+ ]);
99
+ /**
100
+ * A model that did not load, from any caller (the app, the public API, a remote client, the CLI).
101
+ * The user stopping it and the conditions they can fix themselves (a missing file, an old OS) are
102
+ * not reported; environment causes are counted at `warning`, like the web app did.
103
+ */
104
+ export function loadFailureReport(input) {
105
+ if (isCancellation(input.error))
106
+ return null;
107
+ const code = errorCodeOf(input.error) ?? 'UNKNOWN';
108
+ if (RECOVERABLE_LOAD_ERROR_CODES.has(code) || NOT_ENGINE_FAILURES.has(code))
109
+ return null;
110
+ const details = detailsOf(input.error);
111
+ const o = input.overrides ?? {};
112
+ const engineErrors = markerLines(details);
113
+ return {
114
+ source: 'model_load',
115
+ level: ENVIRONMENT_FAILURE_CODES.has(code) ? 'warning' : 'error',
116
+ error: input.error,
117
+ fingerprint: ['model-load-failure', input.provider, code],
118
+ tags: {
119
+ provider: input.provider,
120
+ error_code: code,
121
+ model_id: modelTag(input.modelId),
122
+ quant: quantOf(input.modelId),
123
+ backend: o['version_backend'],
124
+ context_length: (o['ctx_size'] ?? o['ctx_len']),
125
+ gpu_layers: o['n_gpu_layers'],
126
+ cache_type_k: o['cache_type_k'],
127
+ is_embedding: input.isEmbedding || undefined,
128
+ oom_subtype: code === 'OUT_OF_MEMORY' ? oomSubtype(details) : undefined,
129
+ },
130
+ ...(engineErrors ? { extra: { engine_errors: engineErrors } } : {}),
131
+ throttle: { key: `load:${input.provider}:${input.modelId}:${code}`, windowMs: ENGINE_THROTTLE_MS },
132
+ };
133
+ }
134
+ /**
135
+ * Image-generation codes that name something the user or the app can fix — a missing engine or
136
+ * file, an unsupported request, a busy queue, a full disk — rather than an engine or core defect.
137
+ */
138
+ export const RECOVERABLE_DIFFUSION_CODES = new Set([
139
+ 'ENGINE_MISSING',
140
+ 'ENGINE_UPDATE_REQUIRED',
141
+ 'MODEL_MISSING',
142
+ 'SIDE_FILE_MISSING',
143
+ 'MODEL_INCOMPATIBLE',
144
+ 'MODEL_NOT_LOADED',
145
+ 'UNSUPPORTED_BACKEND',
146
+ 'UNSUPPORTED_WORKFLOW',
147
+ 'INVALID_DIMENSIONS',
148
+ 'INVALID_REQUEST',
149
+ 'JOB_BUSY',
150
+ 'JOB_NOT_FOUND',
151
+ 'QUEUE_FULL',
152
+ 'CANCELLED',
153
+ 'DISK_FULL',
154
+ 'BACKEND_IN_USE',
155
+ 'NOT_CONFIGURED',
156
+ ]);
157
+ /** sd.cpp failing to load a model (`load`) or to finish an image (`job`). */
158
+ export function diffusionFailureReport(input) {
159
+ if (isCancellation(input.error))
160
+ return null;
161
+ const code = errorCodeOf(input.error) ?? 'INTERNAL';
162
+ if (RECOVERABLE_DIFFUSION_CODES.has(code))
163
+ return null;
164
+ const engineErrors = markerLines(detailsOf(input.error));
165
+ return {
166
+ source: input.phase === 'load' ? 'diffusion_load' : 'diffusion_job',
167
+ level: code === 'OUT_OF_MEMORY' || code === 'INVALID_OUTPUT' ? 'warning' : 'error',
168
+ error: input.error,
169
+ fingerprint: [input.phase === 'load' ? 'diffusion-load-failure' : 'diffusion-failure', code],
170
+ tags: { provider: 'diffusion', error_code: code, diffusion_family: input.family, engine: input.engine },
171
+ ...(engineErrors ? { extra: { engine_errors: engineErrors } } : {}),
172
+ throttle: { key: `diffusion:${input.phase}:${input.family ?? ''}:${code}`, windowMs: ENGINE_THROTTLE_MS },
173
+ };
174
+ }
175
+ function upstreamMessage(body) {
176
+ try {
177
+ const parsed = JSON.parse(body);
178
+ const message = typeof parsed.error === 'string' ? parsed.error : (parsed.error?.message ?? parsed.message);
179
+ if (typeof message === 'string')
180
+ return headline(message);
181
+ }
182
+ catch {
183
+ /* not JSON: the body is the message */
184
+ }
185
+ return headline(body);
186
+ }
187
+ /**
188
+ * A running local engine that failed a request: a compute failure that leaves the backend unusable
189
+ * (a Metal OOM during prompt processing, "failed to decode") at `warning`, any other 5xx at `error`.
190
+ * A 4xx is about the request (context overflow included) and stays with the app.
191
+ */
192
+ export function inferenceFailureReport(input) {
193
+ if (!input.compute && input.status < 500)
194
+ return null;
195
+ const kind = input.compute ? (input.oom ? 'oom' : 'compute') : String(input.status);
196
+ return {
197
+ source: 'inference',
198
+ level: input.compute ? 'warning' : 'error',
199
+ type: 'InferenceFailure',
200
+ message: upstreamMessage(input.body) || `HTTP ${input.status}`,
201
+ fingerprint: ['inference-failure', input.provider, kind],
202
+ tags: {
203
+ provider: input.provider,
204
+ model_id: modelTag(input.modelId),
205
+ quant: quantOf(input.modelId),
206
+ http_status: input.status,
207
+ failure_kind: kind,
208
+ },
209
+ throttle: { key: `inference:${input.provider}:${input.modelId}:${kind}`, windowMs: ENGINE_THROTTLE_MS },
210
+ };
211
+ }
212
+ //# sourceMappingURL=reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/telemetry/reports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Zero-PII scrubbing for everything an error report carries. A port of the app's
3
+ * `src-tauri/src/core/telemetry/scrub.rs` (itself a mirror of `scrubPii` in the web app), plus what
4
+ * only the core sees: its data folder, the tunnel host, LAN addresses and more token shapes.
5
+ * Structure is kept so a report stays debuggable: `/Users/<redacted>/models/x.gguf`, not `<path>`.
6
+ */
7
+ export interface ScrubContext {
8
+ /** The canonical data folder; every path under it becomes `<data>/…`. */
9
+ dataFolder?: string;
10
+ /** The user's home folder; becomes `~`. */
11
+ homeDir?: string;
12
+ }
13
+ export declare const REDACTED = "<redacted>";
14
+ /** Mask user names, credentials, tokens, e-mail and network addresses in free text. */
15
+ export declare function scrubText(input: string, context?: ScrubContext): string;
16
+ /** Scrub every string in a JSON-like value; values under sensitive keys are dropped wholesale. */
17
+ export declare function scrubValue(value: unknown, context?: ScrubContext): unknown;
18
+ /** The first non-empty line, cut to `max` characters: an engine's headline, not its pasted log. */
19
+ export declare function headline(text: string, max?: number): string;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Zero-PII scrubbing for everything an error report carries. A port of the app's
3
+ * `src-tauri/src/core/telemetry/scrub.rs` (itself a mirror of `scrubPii` in the web app), plus what
4
+ * only the core sees: its data folder, the tunnel host, LAN addresses and more token shapes.
5
+ * Structure is kept so a report stays debuggable: `/Users/<redacted>/models/x.gguf`, not `<path>`.
6
+ */
7
+ export const REDACTED = '<redacted>';
8
+ /** Object keys whose values are dropped wholesale — the web app's `SENSITIVE_KEY_RE`. */
9
+ const SENSITIVE_KEY_RE = /^(authorization|cookie|set-cookie|x-api-key|api[_-]?key|token|access_token|refresh_token|auth|secret|password|passwd|base_url|hf_token|huggingface_token|proxy|email|username|user_name|ip|ip_address|serial|uuid|hostname|host_name|machine|machine_name)$/i;
10
+ const RULES = [
11
+ // The first segment after a home-folder marker is the OS user name.
12
+ [/([/\\](?:Users|home)[/\\])[^/\\\s"'`)\]},;:|]+/g, `$1${REDACTED}`],
13
+ // `scheme://user:pass@host` keeps the scheme and the host.
14
+ [/(\b[a-z][a-z0-9+.-]*:\/\/)[^\s/?#@]+@/gi, `$1${REDACTED}@`],
15
+ // A quick tunnel's name is the only thing that guards it.
16
+ [/\b[a-z0-9-]+\.trycloudflare\.com\b/gi, '<tunnel>.trycloudflare.com'],
17
+ [/\bhf_[A-Za-z0-9_]+/g, REDACTED],
18
+ [/\bsk-ant-[\w-]+/g, REDACTED],
19
+ [/\bsk-[\w-]{10,}/g, REDACTED],
20
+ [/\bAIza[\w-]{20,}/g, REDACTED],
21
+ [/\b(?:ghp|gho|ghu|ghs|github_pat)_[A-Za-z0-9_]+/g, REDACTED],
22
+ [/\beyJ[\w-]+\.[\w-]+\.[\w-]+/g, REDACTED],
23
+ [/(\bbearer\s+)[^\s"']+/gi, `$1${REDACTED}`],
24
+ [
25
+ /([?&](?:access_token|refresh_token|api_key|apikey|password|secret|signature|token|auth|key|sig)=)[^&#"'\s]*/gi,
26
+ `$1${REDACTED}`,
27
+ ],
28
+ [/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g, '<email>'],
29
+ // LAN and public addresses; loopback and the wildcard say nothing about the user.
30
+ [
31
+ /\b(?!127\.0\.0\.1\b)(?!0\.0\.0\.0\b)(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?:25[0-5]|2[0-4]\d|1?\d?\d)){3}\b/g,
32
+ '<ip>',
33
+ ],
34
+ ];
35
+ function replaceFolder(input, folder, token) {
36
+ if (!folder || folder.length < 2)
37
+ return input;
38
+ let out = input;
39
+ for (const variant of new Set([folder, folder.replace(/\\/g, '/'), folder.replace(/\//g, '\\')])) {
40
+ out = out.split(variant).join(token);
41
+ }
42
+ return out;
43
+ }
44
+ /** Mask user names, credentials, tokens, e-mail and network addresses in free text. */
45
+ export function scrubText(input, context = {}) {
46
+ let out = replaceFolder(input, context.dataFolder, '<data>');
47
+ out = replaceFolder(out, context.homeDir, '~');
48
+ for (const [pattern, replacement] of RULES)
49
+ out = out.replace(pattern, replacement);
50
+ return out;
51
+ }
52
+ /** Scrub every string in a JSON-like value; values under sensitive keys are dropped wholesale. */
53
+ export function scrubValue(value, context = {}) {
54
+ if (typeof value === 'string')
55
+ return scrubText(value, context);
56
+ if (Array.isArray(value))
57
+ return value.map((item) => scrubValue(item, context));
58
+ if (value && typeof value === 'object') {
59
+ const out = {};
60
+ for (const [key, item] of Object.entries(value)) {
61
+ out[key] = SENSITIVE_KEY_RE.test(key) ? REDACTED : scrubValue(item, context);
62
+ }
63
+ return out;
64
+ }
65
+ return value;
66
+ }
67
+ /** The first non-empty line, cut to `max` characters: an engine's headline, not its pasted log. */
68
+ export function headline(text, max = 200) {
69
+ const line = text
70
+ .split(/\r?\n/)
71
+ .map((l) => l.trim())
72
+ .find(Boolean) ?? '';
73
+ return line.length > max ? `${line.slice(0, max - 1)}…` : line;
74
+ }
75
+ //# sourceMappingURL=scrub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrub.js","sourceRoot":"","sources":["../../src/telemetry/scrub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** One Sentry stack frame. */
2
+ export interface StackFrame {
3
+ function?: string;
4
+ filename: string;
5
+ lineno?: number;
6
+ colno?: number;
7
+ /** Ours (`src/…`), not the runtime's or a dependency's. */
8
+ in_app: boolean;
9
+ }
10
+ /**
11
+ * Where a frame's file lives, without the machine it was built or run on. The compiled binary
12
+ * already reports repo-relative `src/…` paths (Bun embeds the source map); under Node the path is
13
+ * absolute and is cut at `src/` or `dist/`; anything else keeps only its file name, which drops the
14
+ * home folder and the user name with it. Runtime pseudo-files (`native`, `node:internal/…`) stay.
15
+ */
16
+ export declare function framePath(raw: string): string;
17
+ /**
18
+ * Parse a V8- or JavaScriptCore-style `error.stack` into Sentry frames, oldest call first (the order
19
+ * Sentry expects; `error.stack` lists the innermost call first).
20
+ */
21
+ export declare function parseStack(stack: string | undefined): StackFrame[];
@@ -0,0 +1,68 @@
1
+ const MAX_FRAMES = 50;
2
+ /**
3
+ * Where a frame's file lives, without the machine it was built or run on. The compiled binary
4
+ * already reports repo-relative `src/…` paths (Bun embeds the source map); under Node the path is
5
+ * absolute and is cut at `src/` or `dist/`; anything else keeps only its file name, which drops the
6
+ * home folder and the user name with it. Runtime pseudo-files (`native`, `node:internal/…`) stay.
7
+ */
8
+ export function framePath(raw) {
9
+ let path = raw.replace(/^file:\/\/\/?/, '/').replace(/\\/g, '/');
10
+ if (/^\/[A-Za-z]:\//.test(path))
11
+ path = path.slice(1);
12
+ if (path === 'native' || path.startsWith('node:') || path.startsWith('src/'))
13
+ return path;
14
+ const dependency = /(?:^|\/)(node_modules\/.+)$/.exec(path);
15
+ if (dependency?.[1])
16
+ return dependency[1];
17
+ // The last `src/` or `dist/`: a checkout under `~/src/` must not keep that prefix.
18
+ const cut = /^.*(?:^|\/)((?:src|dist)\/.+)$/.exec(path);
19
+ if (cut?.[1])
20
+ return cut[1];
21
+ return path.slice(path.lastIndexOf('/') + 1);
22
+ }
23
+ function parseLocation(location) {
24
+ const match = /^(.*?)(?::(\d+))?(?::(\d+))?$/.exec(location);
25
+ const [, path = '', line, column] = match;
26
+ return {
27
+ path,
28
+ ...(line ? { line: Number(line) } : {}),
29
+ ...(column ? { column: Number(column) } : {}),
30
+ };
31
+ }
32
+ /**
33
+ * Parse a V8- or JavaScriptCore-style `error.stack` into Sentry frames, oldest call first (the order
34
+ * Sentry expects; `error.stack` lists the innermost call first).
35
+ */
36
+ export function parseStack(stack) {
37
+ if (!stack)
38
+ return [];
39
+ const frames = [];
40
+ for (const line of stack.split('\n')) {
41
+ const at = /^\s*at\s+(.+?)\s*$/.exec(line);
42
+ if (!at?.[1])
43
+ continue;
44
+ const body = at[1];
45
+ let fn;
46
+ let location = body;
47
+ const open = body.lastIndexOf(' (');
48
+ if (open > 0 && body.endsWith(')')) {
49
+ fn = body.slice(0, open).replace(/^async\s+/, '');
50
+ location = body.slice(open + 2, -1);
51
+ }
52
+ const { path, line: lineno, column } = parseLocation(location);
53
+ if (!path)
54
+ continue;
55
+ const filename = framePath(path);
56
+ frames.push({
57
+ ...(fn ? { function: fn } : {}),
58
+ filename,
59
+ ...(lineno !== undefined ? { lineno } : {}),
60
+ ...(column !== undefined ? { colno: column } : {}),
61
+ in_app: filename.startsWith('src/') || filename.startsWith('dist/'),
62
+ });
63
+ if (frames.length === MAX_FRAMES)
64
+ break;
65
+ }
66
+ return frames.reverse();
67
+ }
68
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/telemetry/stack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `<data>/atomic-core/telemetry.json`: the core's own error-reporting state for one data folder — the
3
+ * user's stored choice (`atomic-chat-core telemetry on|off`), the anonymous install id every report
4
+ * carries when no host names a user, and whether the first-run notice was shown.
5
+ */
6
+ export interface TelemetryFile {
7
+ /** The user's stored choice; absent until they make one. */
8
+ enabled?: boolean;
9
+ install_id?: string;
10
+ notice_shown?: boolean;
11
+ }
12
+ /** The file as it is; a missing or unreadable one reads as empty (nothing chosen, no id yet). */
13
+ export declare function readTelemetryFile(path: string): Promise<TelemetryFile>;
14
+ /** Write through a hidden sibling, so a reader never sees half of it. Best effort: never throws. */
15
+ export declare function writeTelemetryFile(path: string, file: TelemetryFile): Promise<boolean>;
16
+ /** The install id, minted and stored on first use. */
17
+ export declare function ensureInstallId(path: string, file: TelemetryFile): Promise<string>;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `<data>/atomic-core/telemetry.json`: the core's own error-reporting state for one data folder — the
3
+ * user's stored choice (`atomic-chat-core telemetry on|off`), the anonymous install id every report
4
+ * carries when no host names a user, and whether the first-run notice was shown.
5
+ */
6
+ import { randomUUID } from 'node:crypto';
7
+ import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
8
+ import { basename, dirname, join } from 'node:path';
9
+ function parse(text) {
10
+ const raw = JSON.parse(text);
11
+ const file = {};
12
+ if (typeof raw['enabled'] === 'boolean')
13
+ file.enabled = raw['enabled'];
14
+ if (typeof raw['install_id'] === 'string' && /^[0-9a-f-]{32,36}$/.test(raw['install_id']))
15
+ file.install_id = raw['install_id'];
16
+ if (raw['notice_shown'] === true)
17
+ file.notice_shown = true;
18
+ return file;
19
+ }
20
+ /** The file as it is; a missing or unreadable one reads as empty (nothing chosen, no id yet). */
21
+ export async function readTelemetryFile(path) {
22
+ try {
23
+ return parse(await readFile(path, 'utf8'));
24
+ }
25
+ catch {
26
+ return {};
27
+ }
28
+ }
29
+ /** Write through a hidden sibling, so a reader never sees half of it. Best effort: never throws. */
30
+ export async function writeTelemetryFile(path, file) {
31
+ const tmp = join(dirname(path), `.${basename(path)}.tmp`);
32
+ try {
33
+ await mkdir(dirname(path), { recursive: true });
34
+ await writeFile(tmp, `${JSON.stringify(file, null, 2)}\n`);
35
+ await rename(tmp, path);
36
+ return true;
37
+ }
38
+ catch {
39
+ await rm(tmp, { force: true }).catch(() => { });
40
+ return false;
41
+ }
42
+ }
43
+ /** The install id, minted and stored on first use. */
44
+ export async function ensureInstallId(path, file) {
45
+ if (file.install_id)
46
+ return file.install_id;
47
+ const installId = randomUUID();
48
+ await writeTelemetryFile(path, { ...file, install_id: installId });
49
+ return installId;
50
+ }
51
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/telemetry/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AASnD,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;IACvD,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAA;IACtE,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvF,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,CAAA;IACrC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAmB;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QAC1D,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC9C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,IAAmB;IACrE,IAAI,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,UAAU,CAAA;IAC3C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAA;IAC9B,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;IAClE,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CoreEvents } from '../contracts/index.js';
2
+ import type { ErrorSink } from './types.js';
3
+ type ReportedEvent = 'session:died' | 'diffusion:error';
4
+ export interface ReportableEvents {
5
+ on<K extends ReportedEvent>(name: K, listener: (payload: CoreEvents[K]) => void): () => void;
6
+ }
7
+ /**
8
+ * Report what the core already announces as events: an engine that died after it had loaded, and an
9
+ * image model or image job that failed. Subscribing keeps the runtimes and the diffusion module
10
+ * unaware of error reporting. Returns the unsubscribe.
11
+ */
12
+ export declare function reportCoreEvents(events: ReportableEvents, sink: ErrorSink, platform: NodeJS.Platform): () => void;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ import { AtomicCoreError } from '../contracts/index.js';
2
+ import { captureReport, diffusionFailureReport, sessionDeathReport } from './reports.js';
3
+ /**
4
+ * Report what the core already announces as events: an engine that died after it had loaded, and an
5
+ * image model or image job that failed. Subscribing keeps the runtimes and the diffusion module
6
+ * unaware of error reporting. Returns the unsubscribe.
7
+ */
8
+ export function reportCoreEvents(events, sink, platform) {
9
+ const offDied = events.on('session:died', (died) => captureReport(sink, sessionDeathReport(died, platform)));
10
+ const offDiffusion = events.on('diffusion:error', (failure) => captureReport(sink, diffusionFailureReport({
11
+ phase: failure.jobId === undefined ? 'load' : 'job',
12
+ error: new AtomicCoreError(failure.code, failure.message, failure.details),
13
+ })));
14
+ return () => {
15
+ offDied();
16
+ offDiffusion();
17
+ };
18
+ }
19
+ //# sourceMappingURL=subscribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/telemetry/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AASxF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAwB,EACxB,IAAe,EACf,QAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC5G,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5D,aAAa,CACX,IAAI,EACJ,sBAAsB,CAAC;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;QACnD,KAAK,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;KAC3E,CAAC,CACH,CACF,CAAA;IACD,OAAO,GAAG,EAAE;QACV,OAAO,EAAE,CAAA;QACT,YAAY,EAAE,CAAA;IAChB,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { TelemetryState } from '../contracts/index.js';
2
+ export type ReportLevel = 'fatal' | 'error' | 'warning';
3
+ /** Where a report comes from; it becomes the `source` tag and the exception mechanism. */
4
+ export type ReportSource = 'uncaught_exception' | 'unhandled_rejection' | 'startup' | 'control_route' | 'public_server' | 'event_listener' | 'backend_crash' | 'model_load' | 'diffusion_load' | 'diffusion_job' | 'inference';
5
+ /** One failure worth an issue, before scrubbing: what the rest of the core hands the reporter. */
6
+ export interface ErrorReport {
7
+ source: ReportSource;
8
+ level: ReportLevel;
9
+ /** The thrown value: its type, headline and stack. */
10
+ error?: unknown;
11
+ /** Exception type when nothing was thrown (an engine that exited). */
12
+ type?: string;
13
+ /** Headline when nothing was thrown. */
14
+ message?: string;
15
+ /** Explicit grouping; without it Sentry groups by stack. */
16
+ fingerprint?: string[];
17
+ tags?: Record<string, string | number | boolean | null | undefined>;
18
+ /** Free text attached after scrubbing, e.g. the engine's error lines. */
19
+ extra?: Record<string, string>;
20
+ /** Repeats with the same key inside the window are dropped (a load crash-loop is one report). */
21
+ throttle?: {
22
+ key: string;
23
+ windowMs: number;
24
+ };
25
+ }
26
+ /** What the core's services see of error reporting. No-ops when reporting is off. */
27
+ export interface ErrorSink {
28
+ capture(report: ErrorReport): void;
29
+ }
30
+ /** What the app changes over `PUT /atomic/v1/telemetry`; an omitted field keeps its value. */
31
+ export interface TelemetryUpdate {
32
+ enabled?: boolean | undefined;
33
+ user_id?: string | null | undefined;
34
+ tags?: Record<string, unknown> | undefined;
35
+ }
36
+ /** The reporter as the control API drives it: the sink, plus the app's consent, user and tags. */
37
+ export interface TelemetryControl extends ErrorSink {
38
+ state(): TelemetryState;
39
+ update(update: TelemetryUpdate): void;
40
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/telemetry/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Small shared helpers with no I/O. Rust-compatible number parsing/formatting lives here because
3
+ * several ports (argv, GGUF, log parsers) must reproduce `str::parse` / `to_string` exactly.
4
+ */
5
+ export * from './rust-number.js';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Small shared helpers with no I/O. Rust-compatible number parsing/formatting lives here because
3
+ * several ports (argv, GGUF, log parsers) must reproduce `str::parse` / `to_string` exactly.
4
+ */
5
+ export * from './rust-number.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Rust-compatible number parsing and formatting, shared by every port that has to reproduce
3
+ * `str::parse::<T>()` and `T::to_string()` behaviour (argv floats, GGUF scalar stringification,
4
+ * log-line parsers).
5
+ */
6
+ /** `str::parse::<i32>()`: optional sign, digits only, in range. */
7
+ export declare function parseRustI32(s: string): number | undefined;
8
+ /** `str::parse::<u64>()`: optional `+`, digits only. Values above 2^53 lose precision. */
9
+ export declare function parseRustU64(s: string): number | undefined;
10
+ /** `str::parse::<f64>()` for the shapes that matter: decimal, exponent, inf/infinity/nan. */
11
+ export declare function parseRustF64(s: string): number | undefined;
12
+ /** Rewrite JS exponent notation into the plain decimal Rust's `Display` prints. */
13
+ export declare function expandExponent(s: string): string;
14
+ /**
15
+ * `f32::to_string()`: shortest decimal that round-trips through f32, no exponent, integers
16
+ * without a fractional part (`2.0 → "2"`), `inf` / `-inf` / `NaN` spelled as Rust does.
17
+ * Values arriving as JSON doubles serialised from f32 are rounded through `Math.fround` first.
18
+ */
19
+ export declare function formatRustF32(value: number): string;
20
+ /** `f64::to_string()`: JS already prints the shortest round-trip; only the spelling differs. */
21
+ export declare function formatRustF64(value: number): string;
22
+ /** `(a - b).abs() > f32::EPSILON` evaluated in f32 as Rust does. */
23
+ export declare function f32Differs(a: number, b: number): boolean;
24
+ /** `(v) as u64` on a float: NaN → 0, negative → 0, truncates; saturates at MAX_SAFE_INTEGER. */
25
+ export declare function floatAsU64(v: number): number;
26
+ /** `a.saturating_sub(b)` on u64. */
27
+ export declare function saturatingSub(a: number, b: number): number;