mlx-bun 0.5.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/README.md +1449 -109
  2. package/THIRD_PARTY_NOTICES.md +882 -0
  3. package/bin/mlx-bun.convert.mjs +4 -0
  4. package/bin/mlx-bun.fuse.mjs +4 -0
  5. package/bin/mlx-bun.generate.mjs +4 -0
  6. package/bin/mlx-bun.lora.mjs +4 -0
  7. package/bin/mlx-bun.mjs +13 -21
  8. package/bin/mlx-bun.server.mjs +4 -0
  9. package/bin/mlx-bun.upload.mjs +4 -0
  10. package/dist/web/app.js +9584 -0
  11. package/package.json +50 -53
  12. package/src/cli/ane-install.ts +76 -0
  13. package/src/cli/args.ts +179 -0
  14. package/src/cli/engine-entry.ts +68 -0
  15. package/src/cli/inference.ts +214 -0
  16. package/src/cli/job-entry.ts +97 -0
  17. package/src/cli/library-host.ts +117 -0
  18. package/src/cli/main.ts +57 -0
  19. package/src/cli/memory-engine.ts +163 -0
  20. package/src/cli/memory.ts +36 -0
  21. package/src/cli/mlx-lm-aliases.ts +309 -0
  22. package/src/cli/model-choice.ts +33 -0
  23. package/src/cli/model-selection.ts +84 -0
  24. package/src/cli/module-host.ts +11 -0
  25. package/src/cli/module-verbs.ts +50 -0
  26. package/src/cli/numerical-policy.ts +12 -0
  27. package/src/cli/perplexity.ts +89 -0
  28. package/src/cli/serve-host.ts +423 -0
  29. package/src/cli/serve-isolated.ts +217 -0
  30. package/src/cli/serve-options.ts +106 -0
  31. package/src/cli/serve-state.ts +205 -0
  32. package/src/cli/serve.ts +500 -0
  33. package/src/cli/served-model-host.ts +102 -0
  34. package/src/cli/server-entry.ts +148 -0
  35. package/src/cli/serving-unit.ts +177 -0
  36. package/src/{tui.ts → cli/terminal.ts} +13 -8
  37. package/src/cli/worker-adapters.ts +34 -0
  38. package/src/cli/worker-entry.ts +272 -0
  39. package/src/cli/worker-unit.ts +179 -0
  40. package/src/engine/adapter-operation.ts +26 -0
  41. package/src/engine/cache-services.ts +114 -0
  42. package/src/engine/completion.ts +39 -0
  43. package/src/engine/generation-gateway.ts +358 -0
  44. package/src/engine/index.ts +59 -0
  45. package/src/engine/kv-budget.ts +120 -0
  46. package/src/engine/media-preparation.ts +232 -0
  47. package/src/engine/model-binding.ts +24 -0
  48. package/src/engine/model-host.ts +513 -0
  49. package/src/engine/model-serving.ts +89 -0
  50. package/src/{serve → engine}/preparation.ts +7 -5
  51. package/src/{serve → engine}/session-completion-engine.ts +6 -6
  52. package/src/engine/telemetry.ts +109 -0
  53. package/src/hub/downloads.ts +116 -0
  54. package/src/jobs/db.ts +16 -7
  55. package/src/jobs/events.ts +29 -0
  56. package/src/jobs/executable.ts +5 -0
  57. package/src/jobs/host.ts +51 -0
  58. package/src/jobs/in-process.ts +55 -0
  59. package/src/{contracts/jobs.ts → jobs/protocol.ts} +7 -9
  60. package/src/jobs/runner.ts +150 -231
  61. package/src/jobs/service.ts +75 -0
  62. package/src/jobs/sse.ts +59 -23
  63. package/src/jobs/worker-memory.ts +46 -0
  64. package/src/jobs/worker-process.ts +163 -0
  65. package/src/jobs/worker-supervisor.ts +258 -0
  66. package/src/modules.ts +58 -0
  67. package/src/publishing/catalog-hub.ts +18 -0
  68. package/src/publishing/credentials.ts +31 -0
  69. package/src/publishing/upload.ts +37 -0
  70. package/src/residency/leased-adapters.ts +21 -0
  71. package/src/residency/local-records.ts +16 -0
  72. package/src/residency/model-residency.ts +405 -0
  73. package/src/residency/record-index.ts +28 -0
  74. package/src/residency/resident-estimate.ts +50 -0
  75. package/src/{anthropic.ts → server/anthropic.ts} +3 -81
  76. package/src/server/cache-routes.ts +36 -0
  77. package/src/{serve → server}/chat-request.ts +10 -10
  78. package/src/{serve → server}/chat-stage.ts +14 -14
  79. package/src/{client.ts → server/client.ts} +28 -2
  80. package/src/{serve → server}/completion-executor.ts +33 -41
  81. package/src/server/decision-body.ts +55 -0
  82. package/src/server/decision-routes.ts +134 -0
  83. package/src/server/decision-wire.ts +228 -0
  84. package/src/{serve → server}/discovery-routes.ts +25 -82
  85. package/src/{serve → server}/http.ts +25 -13
  86. package/src/{serve → server}/inference-request.ts +5 -5
  87. package/src/server/job-routes.ts +20 -0
  88. package/src/server/media-prompt.ts +63 -0
  89. package/src/server/memory-completion-client.ts +46 -0
  90. package/src/server/model-routes.ts +192 -0
  91. package/src/{serve → server}/openai-wire.ts +3 -2
  92. package/src/{serve → server}/pipeline.ts +1 -1
  93. package/src/server/prompt-builder.ts +13 -0
  94. package/src/server/prompt-contracts.ts +17 -0
  95. package/src/server/proxy-routes.ts +187 -0
  96. package/src/server/publishing-routes.ts +41 -0
  97. package/src/{serve → server}/request-plan.ts +6 -8
  98. package/src/{serve → server}/request-prep.ts +47 -50
  99. package/src/{serve → server}/responses-client.ts +30 -13
  100. package/src/{responses.ts → server/responses.ts} +12 -93
  101. package/src/server/routes.ts +205 -0
  102. package/src/server/start.ts +72 -0
  103. package/src/server/status-routes.ts +108 -0
  104. package/src/{serve → server}/text-completion-stage.ts +25 -4
  105. package/src/server/text-prompt.ts +12 -0
  106. package/src/{serve → server}/token-streams.ts +36 -38
  107. package/src/server/worker-routes.ts +311 -0
  108. package/src/storage/paths.ts +61 -0
  109. package/src/web/assets.ts +37 -0
  110. package/src/web/{src → browser}/api.ts +5 -23
  111. package/src/web/browser/chat-host.ts +17 -0
  112. package/src/web/browser/installed-panels.ts +6 -0
  113. package/src/web/browser/main.ts +55 -0
  114. package/src/web/browser/markdown.ts +279 -0
  115. package/src/web/browser/memory-panel.ts +9 -0
  116. package/src/web/browser/palette.ts +64 -0
  117. package/src/web/browser/protocol.ts +13 -0
  118. package/src/web/browser/shell.ts +467 -0
  119. package/src/web/{src → browser}/status.ts +32 -36
  120. package/src/web/build.ts +51 -0
  121. package/src/web/public/app.html +1054 -0
  122. package/src/web/{sw.js → public/sw.js} +4 -3
  123. package/src/web/{vendor → public/vendor}/hljs-theme.css +2 -2
  124. package/src/web/{vendor → public/vendor}/hljs.js +2 -2
  125. package/THIRD_PARTY_LICENSES.md +0 -51
  126. package/docs/README.md +0 -107
  127. package/docs/archive/hlg-sampling.md +0 -350
  128. package/docs/archive/investigations/audio-input-plan.md +0 -356
  129. package/docs/archive/investigations/benchmark-ledger-through-v0.4.0.md +0 -3617
  130. package/docs/archive/investigations/chunk-finetune-experiment.md +0 -84
  131. package/docs/archive/investigations/colibri-glm52-port.md +0 -1486
  132. package/docs/archive/investigations/colibri-oracle-pin.md +0 -1284
  133. package/docs/archive/investigations/curve-bisector-routing.md +0 -123
  134. package/docs/archive/investigations/decode-roofline-lookagain.md +0 -348
  135. package/docs/archive/investigations/diffusion-gemma-port.md +0 -602
  136. package/docs/archive/investigations/dspark-handoff.md +0 -224
  137. package/docs/archive/investigations/expert-offload-single-user-moe.md +0 -292
  138. package/docs/archive/investigations/faithful-l1-consolidation.md +0 -310
  139. package/docs/archive/investigations/hlg-sampling-investigation.md +0 -970
  140. package/docs/archive/investigations/indexshare-performance-spike.md +0 -357
  141. package/docs/archive/investigations/kernel-perf-review-2026-07.md +0 -171
  142. package/docs/archive/investigations/lab-build-journal.md +0 -157
  143. package/docs/archive/investigations/minicpm5-decode-megakernel.md +0 -489
  144. package/docs/archive/investigations/openjarvis-fit.md +0 -198
  145. package/docs/archive/investigations/openwiki-evaluation.md +0 -249
  146. package/docs/archive/investigations/optimization_plan.md +0 -346
  147. package/docs/archive/investigations/orpo-base-uf-experiment-and-directions.md +0 -120
  148. package/docs/archive/investigations/orpo-flash-cce-pin-leak.md +0 -167
  149. package/docs/archive/investigations/orpo-uf-testing-handoff.md +0 -126
  150. package/docs/archive/investigations/pareto-specialized-runtime-findings.md +0 -92
  151. package/docs/archive/investigations/pi-builtin-investigation.md +0 -308
  152. package/docs/archive/investigations/pre-colibri-stabilization.md +0 -329
  153. package/docs/archive/investigations/qwen38-27b-campaign-log.md +0 -1092
  154. package/docs/archive/investigations/segmented-backward-handoff.md +0 -148
  155. package/docs/archive/investigations/starter-model-port-handoff.md +0 -342
  156. package/docs/archive/investigations/steel-flash-cce-handoff.md +0 -489
  157. package/docs/archive/investigations/the-dreaming-handoff.md +0 -141
  158. package/docs/archive/investigations/trainer-validation-experiment.md +0 -173
  159. package/docs/archive/planning/chat-ui-vision-memory-first.md +0 -199
  160. package/docs/archive/planning/chat-ui-vision.md +0 -50
  161. package/docs/archive/planning/chunk-task-roadmap.md +0 -77
  162. package/docs/archive/planning/curve-sampler-research-plan.md +0 -331
  163. package/docs/archive/planning/journal.md +0 -316
  164. package/docs/archive/planning/memory-docs-and-dag-plan.md +0 -194
  165. package/docs/archive/planning/pi-integration-review.md +0 -178
  166. package/docs/archive/planning/release-notes-v0.0.10.md +0 -57
  167. package/docs/archive/planning/release-notes-v0.0.11.md +0 -239
  168. package/docs/archive/planning/release-notes-v0.0.12.md +0 -80
  169. package/docs/archive/planning/release-notes-v0.0.13.md +0 -77
  170. package/docs/archive/planning/release-notes-v0.0.9.md +0 -122
  171. package/docs/archive/planning/release-notes-v0.2.0.md +0 -49
  172. package/docs/archive/planning/release-notes-v0.3.0.md +0 -35
  173. package/docs/archive/planning/release-notes-v0.4.0.md +0 -45
  174. package/docs/archive/planning/release-notes-v0.5.0.md +0 -37
  175. package/docs/archive/planning/web-ui-pass-plan.md +0 -213
  176. package/docs/archive/planning/website-readme-pass-plan.md +0 -224
  177. package/docs/design/batching.md +0 -2054
  178. package/docs/design/decode-speed-program.md +0 -2404
  179. package/docs/design/dreaming-nightly-pipeline.md +0 -684
  180. package/docs/design/generic-model-support.md +0 -821
  181. package/docs/design/kv-cache.md +0 -993
  182. package/docs/design/orpo-training.md +0 -680
  183. package/docs/design/speculative-decoding.md +0 -2129
  184. package/docs/design/turboquant.md +0 -2225
  185. package/docs/design/unified-engine-frontier-plan.md +0 -1987
  186. package/docs/design/web-chat-redesign.md +0 -695
  187. package/docs/planning/PRODUCT_ROADMAP.md +0 -593
  188. package/docs/planning/ResearchTopics.md +0 -119
  189. package/docs/planning/public-readiness-handoff.md +0 -244
  190. package/docs/planning/public-readiness.md +0 -149
  191. package/docs/planning/video-series.md +0 -421
  192. package/docs/reference/benchmarks.md +0 -3587
  193. package/docs/reference/cli.md +0 -646
  194. package/docs/reference/distribution.md +0 -380
  195. package/docs/reference/environment.md +0 -494
  196. package/docs/reference/glossary.md +0 -39
  197. package/docs/reference/library-api.md +0 -688
  198. package/docs/reference/memory.md +0 -260
  199. package/docs/reference/models.md +0 -346
  200. package/docs/reference/server-api.md +0 -1945
  201. package/docs/reference/server-config.md +0 -973
  202. package/docs/reference/training.md +0 -462
  203. package/docs/reference/troubleshooting.md +0 -158
  204. package/src/admission-plan.ts +0 -18
  205. package/src/audio/audiotoolbox.ts +0 -112
  206. package/src/audio/conformer.ts +0 -655
  207. package/src/audio/decode.ts +0 -133
  208. package/src/audio/features.ts +0 -202
  209. package/src/audio/mic-capture.ts +0 -98
  210. package/src/audio/silero-vad.ts +0 -379
  211. package/src/audio/transcode.ts +0 -67
  212. package/src/audio/whisper-decode.ts +0 -774
  213. package/src/audio/whisper-fast.ts +0 -732
  214. package/src/audio/whisper-format.ts +0 -73
  215. package/src/audio/whisper-mel.ts +0 -185
  216. package/src/audio/whisper-timing.ts +0 -274
  217. package/src/audio/whisper-tokenizer.ts +0 -239
  218. package/src/audio/whisper-transcribe.ts +0 -410
  219. package/src/backends/mlx/assistant-target.ts +0 -46
  220. package/src/backends/mlx/autoregressive-draft-rows.ts +0 -120
  221. package/src/backends/mlx/autoregressive.ts +0 -129
  222. package/src/backends/mlx/batch-group.ts +0 -1874
  223. package/src/backends/mlx/cache-attachment.ts +0 -67
  224. package/src/backends/mlx/cache-layout.ts +0 -31
  225. package/src/backends/mlx/checkpoint-state.ts +0 -53
  226. package/src/backends/mlx/continuation-persistence.ts +0 -107
  227. package/src/backends/mlx/continuation-request.ts +0 -43
  228. package/src/backends/mlx/continuation.ts +0 -77
  229. package/src/backends/mlx/diffusion.ts +0 -39
  230. package/src/backends/mlx/draft-target.ts +0 -32
  231. package/src/backends/mlx/encoder-cache.ts +0 -25
  232. package/src/backends/mlx/evaluation.ts +0 -105
  233. package/src/backends/mlx/fill-append.ts +0 -58
  234. package/src/backends/mlx/fill-group.ts +0 -497
  235. package/src/backends/mlx/full-kv-row-append.ts +0 -32
  236. package/src/backends/mlx/full-kv-row-donor.ts +0 -54
  237. package/src/backends/mlx/full-transitioning-kv-rows.ts +0 -65
  238. package/src/backends/mlx/gateway-binding.ts +0 -174
  239. package/src/backends/mlx/graph.ts +0 -38
  240. package/src/backends/mlx/kv-codec.ts +0 -9
  241. package/src/backends/mlx/kv-maintenance.ts +0 -161
  242. package/src/backends/mlx/kv-tensor-rows.ts +0 -212
  243. package/src/backends/mlx/memory-client.ts +0 -189
  244. package/src/backends/mlx/methods.ts +0 -90
  245. package/src/backends/mlx/mixed-iteration.ts +0 -62
  246. package/src/backends/mlx/model-prompt.ts +0 -178
  247. package/src/backends/mlx/model-serving.ts +0 -80
  248. package/src/backends/mlx/paged-cache-codec.ts +0 -27
  249. package/src/backends/mlx/prefill-cohort.ts +0 -100
  250. package/src/backends/mlx/prefill-policy.ts +0 -26
  251. package/src/backends/mlx/prefill-rows.ts +0 -244
  252. package/src/backends/mlx/prefill.ts +0 -33
  253. package/src/backends/mlx/projected-context-rows.ts +0 -72
  254. package/src/backends/mlx/prompt-input.ts +0 -29
  255. package/src/backends/mlx/qwen-prompt-input.ts +0 -40
  256. package/src/backends/mlx/request-policy.ts +0 -20
  257. package/src/backends/mlx/request-state-policy.ts +0 -54
  258. package/src/backends/mlx/rollback.ts +0 -92
  259. package/src/backends/mlx/row-sampling.ts +0 -49
  260. package/src/backends/mlx/serial-executor.ts +0 -251
  261. package/src/backends/mlx/speculative-group.ts +0 -438
  262. package/src/backends/mlx/speculative-round.ts +0 -161
  263. package/src/backends/mlx/speculative.ts +0 -131
  264. package/src/backends/mlx/state-rows.ts +0 -104
  265. package/src/backends/mlx/state-views.ts +0 -46
  266. package/src/backends/mlx/target-layout-capability.ts +0 -35
  267. package/src/backends/mlx/text-engine.ts +0 -73
  268. package/src/backends/mlx/transitioning-kv-rows.ts +0 -173
  269. package/src/chat-template.ts +0 -382
  270. package/src/cli.ts +0 -3490
  271. package/src/config.ts +0 -399
  272. package/src/contracts/completion.ts +0 -16
  273. package/src/contracts/execution.ts +0 -70
  274. package/src/contracts/generation.ts +0 -103
  275. package/src/contracts/host.ts +0 -7
  276. package/src/contracts/object-cache.ts +0 -8
  277. package/src/contracts/pi-provider.ts +0 -30
  278. package/src/contracts/pi.ts +0 -261
  279. package/src/contracts/prefix-cache.ts +0 -33
  280. package/src/contracts/resources.ts +0 -25
  281. package/src/contracts/sampling.ts +0 -23
  282. package/src/contracts/scheduling.ts +0 -54
  283. package/src/contracts/tsconfig.json +0 -14
  284. package/src/dataset/generators.ts +0 -1087
  285. package/src/dataset/index.ts +0 -12
  286. package/src/dataset/job.ts +0 -81
  287. package/src/dataset/llm.ts +0 -71
  288. package/src/dataset/registry.ts +0 -528
  289. package/src/diffusion/diffusion-generate.ts +0 -507
  290. package/src/download.ts +0 -505
  291. package/src/embed.ts +0 -77
  292. package/src/engine/admission.ts +0 -59
  293. package/src/engine/cancellation.ts +0 -38
  294. package/src/engine/engine.ts +0 -56
  295. package/src/engine/execution-coordinator.ts +0 -70
  296. package/src/engine/execution-plan.ts +0 -64
  297. package/src/engine/execution-tasks.ts +0 -44
  298. package/src/engine/namespaced-cache.ts +0 -13
  299. package/src/engine/resources.ts +0 -53
  300. package/src/engine/scheduler.ts +0 -92
  301. package/src/engine/session.ts +0 -247
  302. package/src/eval/README.md +0 -130
  303. package/src/eval/ifeval.ts +0 -81
  304. package/src/eval/kl-prompts.ts +0 -29
  305. package/src/eval/kl.ts +0 -590
  306. package/src/eval/perplexity.ts +0 -164
  307. package/src/eval/quality-db.ts +0 -92
  308. package/src/eval/reference-logits.ts +0 -207
  309. package/src/eval/runner.ts +0 -124
  310. package/src/eval/score.ts +0 -49
  311. package/src/eval/tasks/bfcl.ts +0 -535
  312. package/src/eval/tasks/gsm8k.ts +0 -98
  313. package/src/eval/tasks/hashhop.ts +0 -139
  314. package/src/eval/tasks/humaneval.ts +0 -275
  315. package/src/eval/tasks/ifeval.ts +0 -525
  316. package/src/eval/tasks/mmlu.ts +0 -157
  317. package/src/eval/ultrafeedback.ts +0 -60
  318. package/src/evaldb.ts +0 -199
  319. package/src/expert-io.ts +0 -393
  320. package/src/expert-offload-build.ts +0 -77
  321. package/src/expert-offload.ts +0 -76
  322. package/src/expert-residency.ts +0 -1134
  323. package/src/expert-usage.ts +0 -415
  324. package/src/fill/echo-index.ts +0 -188
  325. package/src/fill/fill-session.ts +0 -463
  326. package/src/fill/proposal.ts +0 -68
  327. package/src/fill/schema-rows.ts +0 -506
  328. package/src/fill/tool-boundary.ts +0 -103
  329. package/src/fit.ts +0 -249
  330. package/src/generate.ts +0 -1352
  331. package/src/grammar.ts +0 -604
  332. package/src/harness-pi.ts +0 -184
  333. package/src/hf-push.ts +0 -628
  334. package/src/hub-rest.ts +0 -242
  335. package/src/index.ts +0 -63
  336. package/src/inference/denoising.ts +0 -17
  337. package/src/inference/draft-acceptance.ts +0 -41
  338. package/src/inference/draft-output.ts +0 -49
  339. package/src/inference/graph.ts +0 -33
  340. package/src/inference/prefill.ts +0 -45
  341. package/src/inference/rollback.ts +0 -7
  342. package/src/jobs/index.ts +0 -31
  343. package/src/jobs/job-entry.ts +0 -107
  344. package/src/jobs/task-client.ts +0 -19
  345. package/src/jobs/types.ts +0 -2
  346. package/src/kv-scheme.ts +0 -279
  347. package/src/kv-store.ts +0 -1135
  348. package/src/lab/README.md +0 -22
  349. package/src/lab/curve/curve-designer.html +0 -303
  350. package/src/lab/curve/curve-sampler.ts +0 -122
  351. package/src/lab/expert-trace/expert-trace.ts +0 -69
  352. package/src/lab/paged-kv/paged-attention.ts +0 -117
  353. package/src/lab/paged-kv/paged-kv-rows.ts +0 -111
  354. package/src/lab/paged-kv/paged-kv.ts +0 -336
  355. package/src/library.ts +0 -40
  356. package/src/lora.ts +0 -408
  357. package/src/md-modules.d.ts +0 -54
  358. package/src/media-fetch.ts +0 -442
  359. package/src/memory/article.ts +0 -558
  360. package/src/memory/chunk-validation.ts +0 -150
  361. package/src/memory/chunk.ts +0 -318
  362. package/src/memory/cluster.ts +0 -351
  363. package/src/memory/coverage.ts +0 -134
  364. package/src/memory/crosslink.ts +0 -0
  365. package/src/memory/db.ts +0 -253
  366. package/src/memory/entity.ts +0 -203
  367. package/src/memory/gate.ts +0 -187
  368. package/src/memory/history.ts +0 -152
  369. package/src/memory/ingest.ts +0 -335
  370. package/src/memory/model.ts +0 -183
  371. package/src/memory/normalize.ts +0 -671
  372. package/src/memory/parse.ts +0 -22
  373. package/src/memory/pipeline.ts +0 -275
  374. package/src/memory/prompts.ts +0 -65
  375. package/src/memory/query.ts +0 -334
  376. package/src/memory/reconcile.ts +0 -734
  377. package/src/memory/redirect.ts +0 -108
  378. package/src/memory/reindex.ts +0 -325
  379. package/src/memory/resolve.ts +0 -307
  380. package/src/memory/rest.ts +0 -245
  381. package/src/memory/route.ts +0 -272
  382. package/src/memory/schedule.ts +0 -165
  383. package/src/memory/stages.ts +0 -777
  384. package/src/memory/synthesize.ts +0 -1638
  385. package/src/memory/tools.ts +0 -749
  386. package/src/memory/vault.ts +0 -1194
  387. package/src/memory/wikify.ts +0 -1064
  388. package/src/mlx/array.ts +0 -425
  389. package/src/mlx/autograd.ts +0 -304
  390. package/src/mlx/checkpoint.ts +0 -149
  391. package/src/mlx/compile.ts +0 -168
  392. package/src/mlx/custom-vjp.ts +0 -188
  393. package/src/mlx/ffi.ts +0 -531
  394. package/src/mlx/materialize.ts +0 -23
  395. package/src/mlx/metal-kernel.ts +0 -159
  396. package/src/mlx/normalized-argmax.ts +0 -116
  397. package/src/mlx/ops.ts +0 -1108
  398. package/src/mlx/quantized-rows.ts +0 -36
  399. package/src/mlx/token-bitmask.ts +0 -52
  400. package/src/mlx/turboquant-kv-decode.ts +0 -82
  401. package/src/mlx/turboquant-kv-inverse.ts +0 -122
  402. package/src/mlx/turboquant-ops.ts +0 -861
  403. package/src/mlx/turboquant-tables.ts +0 -237
  404. package/src/mmap.ts +0 -90
  405. package/src/model/artifact-identity.ts +0 -73
  406. package/src/model/batched-kv.ts +0 -235
  407. package/src/model/batched-mask.ts +0 -279
  408. package/src/model/batched-quant.ts +0 -212
  409. package/src/model/batched-quantized-kv.ts +0 -144
  410. package/src/model/batched-rotating-quant.ts +0 -353
  411. package/src/model/batched-rotating-state.ts +0 -149
  412. package/src/model/batched-rotating.ts +0 -338
  413. package/src/model/batched-row-storage.ts +0 -179
  414. package/src/model/batched-ssm.ts +0 -52
  415. package/src/model/batched-turboquant-kv.ts +0 -94
  416. package/src/model/compiled-decode.ts +0 -712
  417. package/src/model/decoded-kv-donor.ts +0 -12
  418. package/src/model/delayed-quantized-kv.ts +0 -72
  419. package/src/model/delayed-rotating-quantized-kv.ts +0 -93
  420. package/src/model/delayed-turboquant-kv.ts +0 -57
  421. package/src/model/diffusion-gemma.ts +0 -1026
  422. package/src/model/factory.ts +0 -215
  423. package/src/model/fingerprint.ts +0 -45
  424. package/src/model/flash-attention.ts +0 -694
  425. package/src/model/full-prefill-padding.ts +0 -56
  426. package/src/model/full-prefill-row.ts +0 -105
  427. package/src/model/gemma4-base.ts +0 -2370
  428. package/src/model/gemma4.ts +0 -1395
  429. package/src/model/generated/gemma4-12b.ts +0 -429
  430. package/src/model/generated/gemma4-26b.ts +0 -448
  431. package/src/model/generated/gemma4-e4b.ts +0 -717
  432. package/src/model/generated/index.ts +0 -18
  433. package/src/model/glm52-atlas.ts +0 -511
  434. package/src/model/glm52-cache.ts +0 -792
  435. package/src/model/glm52-config.ts +0 -262
  436. package/src/model/glm52-container.ts +0 -305
  437. package/src/model/glm52-coupling.ts +0 -388
  438. package/src/model/glm52-dsa.ts +0 -606
  439. package/src/model/glm52-expert-layout.ts +0 -253
  440. package/src/model/glm52-layout.ts +0 -152
  441. package/src/model/glm52-memory.ts +0 -500
  442. package/src/model/glm52-mla.ts +0 -792
  443. package/src/model/glm52-moe.ts +0 -223
  444. package/src/model/glm52-pilot.ts +0 -537
  445. package/src/model/glm52-reference.ts +0 -445
  446. package/src/model/glm52-residency.ts +0 -557
  447. package/src/model/glm52-resident-weights.ts +0 -135
  448. package/src/model/glm52-streamed-experts.ts +0 -453
  449. package/src/model/glm52-streamed-metal.ts +0 -610
  450. package/src/model/glm52-weights.ts +0 -503
  451. package/src/model/glm52.ts +0 -1132
  452. package/src/model/implementation.ts +0 -69
  453. package/src/model/kv-attention-view.ts +0 -70
  454. package/src/model/minicpm5.ts +0 -376
  455. package/src/model/profile.ts +0 -468
  456. package/src/model/quantized-append-attention.ts +0 -31
  457. package/src/model/qwen-append.ts +0 -12
  458. package/src/model/qwen-conv.ts +0 -52
  459. package/src/model/qwen3-delta-state.ts +0 -74
  460. package/src/model/qwen3-delta.ts +0 -451
  461. package/src/model/qwen3-moe.ts +0 -404
  462. package/src/model/qwen3-mrope.ts +0 -250
  463. package/src/model/qwen3.ts +0 -277
  464. package/src/model/qwen3_5-checkpoint.ts +0 -164
  465. package/src/model/qwen3_5.ts +0 -881
  466. package/src/model/rotating-kv-donor.ts +0 -35
  467. package/src/model/rotating-kv-layout.ts +0 -262
  468. package/src/model/rotating-row-transaction.ts +0 -35
  469. package/src/model/speculative-rotating-kv.ts +0 -101
  470. package/src/model/ssm-prefill-padding.ts +0 -39
  471. package/src/model/support.ts +0 -110
  472. package/src/model/token-groups.ts +0 -66
  473. package/src/model/trellis-balanced-scatter.ts +0 -51
  474. package/src/model/trellis-linear.ts +0 -672
  475. package/src/model/trellis-shared-m.ts +0 -151
  476. package/src/model/trellis-shared-scatter.ts +0 -144
  477. package/src/model/trellis-splitk-prefill.ts +0 -158
  478. package/src/model/trellis-tiled-prefill.ts +0 -136
  479. package/src/model/trellis-vector-expand.ts +0 -62
  480. package/src/model/trellis-wide-prefill.ts +0 -94
  481. package/src/model/turboquant-codec.ts +0 -89
  482. package/src/model/universal/archs.ts +0 -332
  483. package/src/model/universal/dense.ts +0 -612
  484. package/src/model/universal/modules.ts +0 -170
  485. package/src/model/universal/rope.ts +0 -381
  486. package/src/model/whisper.ts +0 -435
  487. package/src/native/expert_io.c +0 -523
  488. package/src/native/frame_extract.swift +0 -140
  489. package/src/native/mic_capture.swift +0 -92
  490. package/src/native-pack.ts +0 -163
  491. package/src/pi-provider.ts +0 -53
  492. package/src/pi-session.ts +0 -81
  493. package/src/pi-terminal.ts +0 -274
  494. package/src/pi-web.ts +0 -1940
  495. package/src/preflight.ts +0 -158
  496. package/src/prompt-cache.ts +0 -682
  497. package/src/quantize/allocator.ts +0 -627
  498. package/src/quantize/atomic-output.ts +0 -38
  499. package/src/quantize/calibration.ts +0 -181
  500. package/src/quantize/config-writer.ts +0 -145
  501. package/src/quantize/index.ts +0 -84
  502. package/src/quantize/job.ts +0 -162
  503. package/src/quantize/quantizer.ts +0 -666
  504. package/src/quantize/rotate.ts +0 -603
  505. package/src/quantize/safetensors-writer.ts +0 -249
  506. package/src/quantize/sensitivity.ts +0 -216
  507. package/src/quantize/trellis.ts +0 -586
  508. package/src/quantize/weight-transform.ts +0 -292
  509. package/src/registry.ts +0 -602
  510. package/src/runtime-config.ts +0 -77
  511. package/src/safetensors.ts +0 -165
  512. package/src/sampler.ts +0 -1012
  513. package/src/serve/admin-routes.ts +0 -184
  514. package/src/serve/assets/curve-terrain.html +0 -105
  515. package/src/serve/assets/training-inference-map.html +0 -575
  516. package/src/serve/audio-routes.ts +0 -323
  517. package/src/serve/aux-routes.ts +0 -132
  518. package/src/serve/batch-scheduler.ts +0 -8
  519. package/src/serve/checkpoint-identity.ts +0 -64
  520. package/src/serve/generation-gateway.ts +0 -537
  521. package/src/serve/isolate.ts +0 -609
  522. package/src/serve/kv-budget.ts +0 -14
  523. package/src/serve/lab-routes.ts +0 -341
  524. package/src/serve/lane-registry.ts +0 -45
  525. package/src/serve/model-admin-routes.ts +0 -155
  526. package/src/serve/model-binding.ts +0 -49
  527. package/src/serve/model-host.ts +0 -511
  528. package/src/serve/parent-application.ts +0 -56
  529. package/src/serve/prompt-response-trace.ts +0 -161
  530. package/src/serve/response-lease.ts +0 -24
  531. package/src/serve/session-search.ts +0 -326
  532. package/src/serve/static-routes.ts +0 -101
  533. package/src/serve/transcription-server.ts +0 -64
  534. package/src/serve/transcription-service.ts +0 -502
  535. package/src/server.ts +0 -1282
  536. package/src/spec/assistant-rows.ts +0 -93
  537. package/src/spec/assistant-source.ts +0 -126
  538. package/src/spec/cache-identity.ts +0 -22
  539. package/src/spec/deepspec-rows.ts +0 -29
  540. package/src/spec/deepspec-source.ts +0 -145
  541. package/src/spec/dflash-source.ts +0 -149
  542. package/src/spec/drafter.ts +0 -304
  543. package/src/spec/dspark/ab-stats.ts +0 -136
  544. package/src/spec/dspark/calibration.ts +0 -112
  545. package/src/spec/dspark/data-dflash.ts +0 -156
  546. package/src/spec/dspark/data.ts +0 -201
  547. package/src/spec/dspark/deepspec-module.ts +0 -776
  548. package/src/spec/dspark/generate-dflash.ts +0 -245
  549. package/src/spec/dspark/generate.ts +0 -290
  550. package/src/spec/dspark/loader.ts +0 -23
  551. package/src/spec/dspark/loss.ts +0 -213
  552. package/src/spec/dspark/module-dflash.ts +0 -560
  553. package/src/spec/dspark/module.ts +0 -540
  554. package/src/spec/dspark/quantize-drafter.ts +0 -91
  555. package/src/spec/dspark/sample.ts +0 -112
  556. package/src/spec/generate.ts +0 -276
  557. package/src/spec/glm52-mtp-graph.ts +0 -29
  558. package/src/spec/glm52-mtp-rows.ts +0 -132
  559. package/src/spec/glm52-mtp-source.ts +0 -318
  560. package/src/spec/glm52-mtp-state.ts +0 -33
  561. package/src/spec/ngram-source.ts +0 -226
  562. package/src/spec/projected-draft-rows.ts +0 -73
  563. package/src/spec/qwen-mtp-module.ts +0 -171
  564. package/src/spec/qwen-mtp-rows.ts +0 -230
  565. package/src/spec/qwen-mtp-source.ts +0 -386
  566. package/src/spec/qwen-mtp-state.ts +0 -30
  567. package/src/spec/serve-loop.ts +0 -587
  568. package/src/spec/source.ts +0 -228
  569. package/src/spec/two-model-rows.ts +0 -62
  570. package/src/spec/two-model.ts +0 -113
  571. package/src/ssd-cache.ts +0 -431
  572. package/src/ssd-durability.ts +0 -209
  573. package/src/storage/host-buffer.ts +0 -24
  574. package/src/storage/kv-writer.ts +0 -83
  575. package/src/storage/kv-writer.worker.js +0 -264
  576. package/src/storage/retention-policy.ts +0 -37
  577. package/src/tiered-prompt-cache.ts +0 -45
  578. package/src/tokenizer.ts +0 -335
  579. package/src/tool-approvals.ts +0 -131
  580. package/src/tool-call.ts +0 -695
  581. package/src/train/dataset.ts +0 -484
  582. package/src/train/diffusion-lora.ts +0 -216
  583. package/src/train/export.ts +0 -32
  584. package/src/train/flash-cce.ts +0 -1234
  585. package/src/train/forward.ts +0 -266
  586. package/src/train/fuse.ts +0 -243
  587. package/src/train/index.ts +0 -46
  588. package/src/train/job.ts +0 -205
  589. package/src/train/lora-params.ts +0 -254
  590. package/src/train/loss.ts +0 -1591
  591. package/src/train/merge.ts +0 -195
  592. package/src/train/optimizer.ts +0 -183
  593. package/src/train/prefix-shared.ts +0 -490
  594. package/src/train/rank.ts +0 -137
  595. package/src/train/segmented.ts +0 -1828
  596. package/src/train/steel-qmm-header.ts +0 -1461
  597. package/src/train/trainer.ts +0 -1221
  598. package/src/train/watch.ts +0 -542
  599. package/src/vision/diffusion-vision.ts +0 -620
  600. package/src/vision/embedder.ts +0 -176
  601. package/src/vision/preprocess.ts +0 -247
  602. package/src/vision/prompt.ts +0 -409
  603. package/src/vision/qwen3vl-preprocess.ts +0 -409
  604. package/src/vision/qwen3vl-prompt.ts +0 -233
  605. package/src/vision/qwen3vl-tower.ts +0 -566
  606. package/src/vision/siglip.ts +0 -607
  607. package/src/vision/video-frames.ts +0 -148
  608. package/src/web/app.html +0 -2155
  609. package/src/web/app.js +0 -5863
  610. package/src/web/skills/memory/SKILL.md +0 -120
  611. package/src/web/skills/web-research/SKILL.md +0 -46
  612. package/src/web/skills.ts +0 -97
  613. package/src/web/src/adapters-panel.ts +0 -288
  614. package/src/web/src/assistant.ts +0 -451
  615. package/src/web/src/chat.ts +0 -1060
  616. package/src/web/src/composer.ts +0 -962
  617. package/src/web/src/dataset.ts +0 -132
  618. package/src/web/src/finetune.ts +0 -267
  619. package/src/web/src/hub.ts +0 -428
  620. package/src/web/src/main.ts +0 -98
  621. package/src/web/src/markdown.ts +0 -0
  622. package/src/web/src/memory-panel.ts +0 -572
  623. package/src/web/src/model-picker.ts +0 -159
  624. package/src/web/src/palette.ts +0 -346
  625. package/src/web/src/protocol.ts +0 -26
  626. package/src/web/src/quantize.ts +0 -167
  627. package/src/web/src/rag.ts +0 -274
  628. package/src/web/src/sessions.ts +0 -469
  629. package/src/web/src/shell.ts +0 -804
  630. package/src/web/src/ui-catalog.ts +0 -78
  631. package/src/web/src/voice.ts +0 -141
  632. package/src/web/vendor/README.md +0 -61
  633. package/src/web-assets.ts +0 -47
  634. package/src/web-tools.ts +0 -478
  635. package/src/weights.ts +0 -255
  636. /package/src/{serve → server}/completion-sink.ts +0 -0
  637. /package/src/{serve → server}/generated-token-history.ts +0 -0
  638. /package/src/web/{icon.svg → public/icon.svg} +0 -0
  639. /package/src/web/{manifest.webmanifest → public/manifest.webmanifest} +0 -0
  640. /package/src/web/{vendor → public/vendor}/hljs-LICENSE +0 -0
@@ -1,261 +0,0 @@
1
- /** Shared browser/server protocol. Data only; no SDK, DOM, or native imports. */
2
- export type Lane = "serial" | "serial+spec" | "batched";
3
- export const APP_ROUTE_IDS = ["chat", "quantize", "finetune", "dataset", "status"] as const;
4
-
5
- export type ApprovalDecision = "allow" | "deny";
6
-
7
- export interface ImageAttachment {
8
- data: string;
9
- mimeType: string;
10
- }
11
-
12
- export type ClientMessage =
13
- | { type: "prompt"; text: string; images?: ImageAttachment[] }
14
- | { type: "abort" }
15
- // `editedArgs`: when the user edited the proposed arguments in the
16
- // approval card's textarea before approving, the (re-parsed) JSON object
17
- // to substitute for the tool's original input — mutated onto the pi SDK's
18
- // ToolCallEvent.input in place (the SDK's documented mutation contract;
19
- // see installApprovalGate). Ignored on "deny". `alwaysAllow`: persist this
20
- // tool to the durable always-allow config (src/tool-approvals.ts) so
21
- // future calls to the SAME TOOL NAME skip the card entirely, on this and
22
- // every other session.
23
- | { type: "approval"; callId: string; decision: ApprovalDecision; editedArgs?: Record<string, unknown>; alwaysAllow?: boolean }
24
- // Toggle the model's reasoning channel on/off (only meaningful when the
25
- // model supports thinking — ready.thinking). Maps to Pi's session thinking
26
- // level: "medium" (on) ↔ "off". Pi sends it as enable_thinking to the server.
27
- | { type: "set_thinking"; enabled: boolean }
28
- // Opt-in toggle (plan §5.4/§6.5/§9 Phase 2, default OFF): "let the agent
29
- // touch files on this machine". Persisted per-browser by the client
30
- // (localStorage `mlxbun.codingTools`); the ALLOWLIST decision is enforced
31
- // here, server-side. buildPiAgentSurface's tool list is fixed for the
32
- // life of an AgentSession (pi's DefaultResourceLoader config is baked in
33
- // at createAgentSessionServices time), so this can't rewire an
34
- // in-progress session — it takes effect starting with the next
35
- // new_session/open_session/fork_session (createRuntimeFactory reads
36
- // this.codingToolsRequested fresh every time the SDK calls it, including
37
- // from AgentSessionRuntime.newSession()'s internal re-invocation). The
38
- // `coding_tools` ServerMessage below reports the honest current-vs-pending
39
- // state so the UI can say so instead of implying it applies immediately.
40
- | { type: "set_coding_tools"; enabled: boolean }
41
- // Select the active LoRA adapter for subsequent turns (null = none/base).
42
- // app.html mounts it (POST /v1/adapters) before sending this; the
43
- // before_provider_request hook injects it into the provider payload.
44
- | { type: "set_adapter"; id: string | null }
45
- // Per-request sampling overrides. Each field is optional; null/undefined
46
- // means "leave it to the server default" (the mode-aware recommended
47
- // value resolved in toOptions). A present numeric value is injected into
48
- // the provider payload and always wins. The before_provider_request hook
49
- // injects whatever is set here.
50
- //
51
- // `scope` (plan §9 Phase 3 / beat matrix Axis 4 "per-message sampling
52
- // scope"): "session" (default, omitting the field means this too) persists
53
- // the override on the connection until changed — today's behavior,
54
- // unchanged. "next_turn" stores a ONE-SHOT override applied to exactly
55
- // the next prompt's injection, then cleared automatically — it never
56
- // touches the session-level values (a later plain set_sampling with
57
- // scope:"session" or omitted still sees whatever was there before this
58
- // message). Composition when both are present: next_turn's SET fields
59
- // win over session's for that one request; anything next_turn leaves
60
- // null/unset falls back to the session-level override for that field
61
- // (composeSampling — session-level itself falls back to the server's
62
- // mode-aware default per injectSampling's existing contract).
63
- | {
64
- type: "set_sampling";
65
- scope?: "session" | "next_turn";
66
- temperature?: number | null;
67
- top_p?: number | null;
68
- top_k?: number | null;
69
- min_p?: number | null;
70
- xtc_probability?: number | null;
71
- xtc_threshold?: number | null;
72
- repetition_penalty?: number | null;
73
- repetition_context_size?: number | null;
74
- presence_penalty?: number | null;
75
- frequency_penalty?: number | null;
76
- seed?: number | null;
77
- }
78
- // Per-session USER system prompt, layered ON TOP OF (not replacing) the
79
- // built-in surface prompt (buildWebChatSystemPrompt + memoryHint). null
80
- // clears it. Applied by the before_agent_start hook on the NEXT turn (pi
81
- // calls it fresh inside every session.prompt(), so this is a true
82
- // per-turn injection, not a session-creation-only setting — see
83
- // installSystemPromptHook). Presets v1 (composer.ts) send this alongside
84
- // set_sampling to apply a saved bundle.
85
- | { type: "set_system_prompt"; text: string | null }
86
- // Session management (recent-chats sidebar + new chat).
87
- | { type: "new_session" }
88
- | { type: "list_sessions" }
89
- | { type: "open_session"; path: string }
90
- | { type: "fork_session"; path: string }
91
- | { type: "delete_session"; path: string }
92
- // Message actions (plan §5.2). All three navigate the session's leaf
93
- // pointer via AgentSession.navigateTree() then re-prompt — a sibling
94
- // branch in the SAME session file, never a new one (see the helpers above
95
- // findLastUserMessageEntry for the full rationale). Regenerate re-sends the
96
- // last user message's original content verbatim; edit_resend re-sends it
97
- // with edited text (images preserved); switch_sibling moves the active
98
- // leaf to a previously-created sibling (an earlier edit/regeneration)
99
- // without sending anything new.
100
- | { type: "regenerate" }
101
- | { type: "edit_resend"; text: string }
102
- | { type: "switch_sibling"; entryId: string }
103
- // App-aware assistant (plan §6.6, §9 Phase 3, beat matrix Axis 12): pushed
104
- // by chat.ts on every route change AND on wizard-step change (quantize/
105
- // finetune/dataset), never on a timer. `context` is opaque here (the
106
- // browser's AppContext shape, src/web/src/assistant.ts) — stored verbatim
107
- // as the connection's currentAppContext and returned by the
108
- // get_current_app_context tool, plus mined for the compact one-line
109
- // ambient context auto-prepended to the NEXT prompt (see
110
- // installAppContextHook / ambientContextLine). This is a DIFFERENT frame
111
- // from the server->client `context` ServerMessage (context-window usage,
112
- // above) — same name, opposite direction, disambiguated by which type
113
- // union it's a member of; the two are never in scope at the same call
114
- // site (ClientMessage here vs. ServerMessage below).
115
- | { type: "context"; context: AppUiContext };
116
-
117
- export interface UiSnapshotElement {
118
- ref: string;
119
- tag: string;
120
- label: string;
121
- kind: "interactive" | "region";
122
- role?: string;
123
- selector: string;
124
- spotlightId?: string;
125
- }
126
-
127
- export interface UiSnapshot {
128
- route: string;
129
- capturedAt: string;
130
- elements: UiSnapshotElement[];
131
- }
132
-
133
- export interface WizardStep {
134
- index: number;
135
- count: number;
136
- label: string;
137
- }
138
-
139
- export interface AppUiContext {
140
- route: string;
141
- view?: string;
142
- step?: WizardStep;
143
- snapshot: UiSnapshot;
144
- }
145
-
146
- export type AppRouteId = (typeof APP_ROUTE_IDS)[number];
147
-
148
- export interface ReadyGenDefaults {
149
- temperature: number | null;
150
- topP: number | null;
151
- topK: number | null;
152
- }
153
-
154
- export type ServerMessage =
155
- // `vision`: whether the loaded model can accept images (drives the UI's
156
- // image-attach affordance — false on e4b until the SigLIP sidecar lands).
157
- // `audio`: whether the loaded model can accept `input_audio` parts (audio
158
- // tower loaded or loadable). Discovery-only for now: pi's Model.input type
159
- // has no "audio" modality, so unlike `vision` this flag never feeds the
160
- // provider declaration — clients use it instead of probing for a 400.
161
- // `thinking`: whether the model has a switchable reasoning channel (drives
162
- // the UI's thinking on/off toggle; false hides it).
163
- // transcription: a Whisper checkpoint is configured or resolvable for
164
- // /v1/audio/sessions — drives the composer's hold-to-talk mic button.
165
- | { type: "ready"; model: string; vision: boolean; audio: boolean; thinking: boolean; genDefaults: ReadyGenDefaults; transcription?: boolean }
166
- | { type: "turn_start" }
167
- | { type: "text_delta"; delta: string }
168
- | { type: "thinking_delta"; delta: string }
169
- | { type: "tool_start"; callId: string; tool: string; args: unknown }
170
- | { type: "tool_approval_request"; callId: string; tool: string; args: unknown }
171
- | { type: "tool_update"; callId: string; chunk: unknown }
172
- | { type: "tool_end"; callId: string; ok: boolean; result: unknown }
173
- // `lane`: the serving lane the just-finished turn ran on (serial /
174
- // serial+spec / batched), correlated via the lane registry keyed by the
175
- // AssistantMessage's responseId (the pi SDK's own usage parsing drops
176
- // custom fields — see src/serve/lane-registry.ts). Absent when the turn
177
- // produced no assistant message with a responseId (e.g. an aborted turn
178
- // before any model call) — never guessed client-side (risk #5).
179
- | { type: "turn_end"; lane?: Lane }
180
- | { type: "queue_update"; steering: readonly string[]; followUp: readonly string[] }
181
- // Replay a session's transcript (rebuilds the thread); and the sidebar list.
182
- | { type: "history"; items: HistoryItem[] }
183
- | { type: "sessions"; items: SessionListItem[]; activePath?: string }
184
- // Sibling group for the LAST user message (edit-and-resend's `< i/n >`
185
- // toggle, plan §5.2). Sent after every history rebuild and after a
186
- // completed turn. `count` <= 1 means no toggle to show (the common case:
187
- // no edits/regenerations yet). `entryId` is the currently-active sibling's
188
- // id; `siblingIds` is the full ordered group so the client can resolve
189
- // "previous/next" locally and send switch_sibling with a concrete id
190
- // (never inferred/guessed — the server is the source of truth for order).
191
- | { type: "siblings"; entryId?: string; index: number; count: number; siblingIds: string[] }
192
- // Context-window usage indicator. tokens/percent are null right after a
193
- // compaction until the next assistant reply (pi can't estimate yet).
194
- | { type: "context"; tokens: number | null; contextWindow: number; percent: number | null }
195
- // Effective vs. pending codingTools state (set_coding_tools above).
196
- // `active` is what the CURRENT session actually built with (gates
197
- // whether the approval card can ever fire); `pending` is the browser's
198
- // most recent request, which only takes effect on the next
199
- // new/opened/forked session — surfaced so the settings copy can say
200
- // "will apply to your next new chat" instead of lying about immediacy.
201
- | { type: "coding_tools"; active: boolean; pending: boolean }
202
- // Full always-allow set for THIS machine (src/tool-approvals.ts), sent on
203
- // `ready` and after any change, so the settings panel can list/forget
204
- // durable per-tool approvals without a separate REST round-trip.
205
- | { type: "tool_approvals"; alwaysAllow: string[] }
206
- // App-aware assistant (plan §6.6): the navigate_app / spotlight_ui tools'
207
- // side-channel notifications, mapped 1:1 from the tool call's params —
208
- // never guessed or re-derived, so chat.ts's router/spotlight get exactly
209
- // what the model asked for. `route` here is always a validated
210
- // AppRouteId (isAppRouteId already ran server-side before this frame is
211
- // ever sent — see navigate_app's execute). ui_spotlight's fields mirror
212
- // SpotlightRequest 1:1 (assistant.ts resolves ref/label/selector/target
213
- // client-side, in that precedence order, against its last snapshot).
214
- | { type: "ui_navigate"; route: AppRouteId }
215
- | { type: "ui_spotlight"; ref?: string; label?: string; selector?: string; target?: string; message?: string; route?: AppRouteId }
216
- | { type: "error"; message: string };
217
-
218
- export interface HistoryToolItem {
219
- callId: string;
220
- name: string;
221
- args: unknown;
222
- /** Tool result text, filled from the matching toolResult message. */
223
- result: string;
224
- }
225
-
226
- export interface HistoryItem {
227
- role: "user" | "assistant";
228
- text: string;
229
- /** Model reasoning/thinking, kept separate from the final answer. */
230
- thinking?: string;
231
- tools: HistoryToolItem[];
232
- /** Session entry id (user items only). Lets the browser correlate "the
233
- * last user message" in the replayed thread with the `siblings` frame's
234
- * entryId, so it knows which DOM node gets the edit/sibling-toggle UI
235
- * (plan §5.2). Undefined for assistant items — they aren't fork targets. */
236
- entryId?: string;
237
- }
238
-
239
- export interface SessionListItem {
240
- path: string;
241
- id: string;
242
- title: string;
243
- /** Last-modified epoch ms (newest first). */
244
- modified: number;
245
- messageCount: number;
246
- forked: boolean;
247
- }
248
-
249
- export interface SamplingOverrides {
250
- temperature?: number | null;
251
- top_p?: number | null;
252
- top_k?: number | null;
253
- min_p?: number | null;
254
- xtc_probability?: number | null;
255
- xtc_threshold?: number | null;
256
- repetition_penalty?: number | null;
257
- repetition_context_size?: number | null;
258
- presence_penalty?: number | null;
259
- frequency_penalty?: number | null;
260
- seed?: number | null;
261
- }
@@ -1,33 +0,0 @@
1
- /** A reusable prefix and the backend/method state that covers its tokens.
2
- * The caller owns a returned hit. After releasing or returning its state,
3
- * it must release any retained backing through retain. */
4
- export interface PrefixCacheHit<State, Attachment = never> {
5
- tokens: number[];
6
- caches: State;
7
- attachments?: Attachment;
8
- retain?: () => void;
9
- }
10
-
11
- /** Storage is independent of request scheduling and the method producing
12
- * state. Both prefill and decode can publish processed-token prefixes.
13
- * State is opaque here; its backend/method defines layout and alignment.
14
- * Implementations own prefix selection, retention and storage tiers. */
15
- export interface PrefixCache<State, Attachment = never> {
16
- /** Give optional retained state back to the allocator at an execution
17
- * boundary. This never rejects or changes the active request. */
18
- reclaim?(): void;
19
- /** Drop session affinity without deleting reusable checkpoints. */
20
- closeSession?(sessionId: string): void;
21
- /** Prepare a reusable prefix before execution. The returned release ends
22
- * request interest; cache residency and IO remain implementation-owned. */
23
- prefetch?(prompt: number[], ns?: string, sessionId?: string): Promise<() => void>;
24
- /** Return owned state for a usable session continuation, otherwise the
25
- * longest usable prefix, or null on a miss. Session identity is an affinity
26
- * hint and never changes the content or numerical namespace.
27
- * Namespace distinguishes incompatible artifacts, methods and adapters. */
28
- take(prompt: number[], ns?: string, sessionId?: string): PrefixCacheHit<State, Attachment> | null;
29
- /** Transfer state and its optional backing release to storage. If this
30
- * throws, ownership stays with the caller; successful return transfers
31
- * ownership even when storage immediately spills or disposes the entry. */
32
- put(tokens: number[], caches: State, ns?: string, retain?: () => void, attachments?: Attachment, sessionId?: string): void;
33
- }
@@ -1,25 +0,0 @@
1
- /** A single owner. Borrowing does not extend lifetime; transfer invalidates
2
- * the old owner. close is idempotent, including when release throws. */
3
- export interface ResourceOwner<T> {
4
- borrow(): T;
5
- transfer(): T;
6
- close(): void;
7
- }
8
-
9
- /** State views may own temporary handles or borrow live state. Consumers
10
- * always close the lease; only the provider knows which handles to release. */
11
- export interface StateView<T> {
12
- borrow(): readonly T[];
13
- close(): void;
14
- }
15
-
16
- export interface DisposableResource {
17
- dispose(): void;
18
- }
19
-
20
- /** A prepared replacement for live state. Commit once between method rounds;
21
- * it publishes already-built state without graph work or validation. Dispose
22
- * releases the unpublished replacement, or the superseded state after commit. */
23
- export interface PreparedStateChange extends DisposableResource {
24
- commit(): void;
25
- }
@@ -1,23 +0,0 @@
1
- /** Sampling owns score processing, token selection, and request-local history.
2
- * Score/token representations and sync/device execution belong to the backend;
3
- * this contract has no scheduling, cache, or tensor-runtime dependency. */
4
- export interface SampledToken<Token, Metadata> {
5
- token: Token;
6
- extras: Metadata | null;
7
- }
8
-
9
- export interface SamplingSession<Scores, DeviceToken, Result> {
10
- /** Optional stateless operation shared across compatible rows and positions.
11
- * It borrows scores and returns owned device tokens, without advancing history. */
12
- readonly independent?: { sample(scores: Scores): DeviceToken };
13
- readonly isPlainGreedy: boolean;
14
- readonly capturesLogprobs: boolean;
15
- readonly needsHistory: boolean;
16
- /** Borrows scores; transfers ownership of the result to the caller. */
17
- sample(logits: Scores, step: number): Result;
18
- seedHistory(tokens: readonly number[]): void;
19
- /** Commit accepted tokens when configured for manual history updates. */
20
- commitDevice(token: DeviceToken): void;
21
- commitNumbers(tokens: readonly number[]): void;
22
- dispose(): void;
23
- }
@@ -1,54 +0,0 @@
1
- /** Backend-owned context shared by compatible requests. A key identifies
2
- * equivalent execution state; enter returns its scoped release. Scheduling
3
- * observes group readiness without inspecting this context. */
4
- export interface ExecutionContext {
5
- readonly key: string;
6
- enter(): () => void;
7
- }
8
-
9
- /** A backend execution group exposes bounded work units and readiness. Queue
10
- * payloads, tensors, cache merging and sampling remain inside its adapter. */
11
- export interface ExecutionGroup {
12
- /** Native preparation may borrow the execution lease between work units.
13
- * Payloads and task failures belong to the backend's queue. */
14
- readonly pendingTasks?: number;
15
- advanceTask?(): Promise<void>;
16
- readonly active: number;
17
- readonly queued: number;
18
- readonly preparing: boolean;
19
- readonly preparingRows?: number;
20
- /** The preparation owner can accept another row before its next work unit. */
21
- readonly canPrepareMore?: boolean;
22
- /** Work estimates affect grouping only. A request larger than this budget
23
- * still runs alone; it is never rejected or sent to another executor. */
24
- readonly preparingTokens?: number;
25
- readonly nextPreparationTokens?: number;
26
- readonly maxPreparationTokens?: number;
27
- /** The latest preparation published output that can be flushed by yielding. */
28
- readonly preparationPublishedOutput?: boolean;
29
- readonly maxActive: number;
30
- readonly admissionHeld: boolean;
31
- readonly closed: boolean;
32
- pruneCancelled(): void;
33
- /** May reject/remove an impossible queued request before returning false. */
34
- admitNext(): boolean;
35
- /** Read-only budget check used to preserve admission before decode. */
36
- canBurst(): boolean;
37
- /** Method-owned token demand for a compatible mixed iteration. Absent when
38
- * the backend has no packed implementation for the current work. */
39
- readonly mixedPreparation?: { readonly runningTokens: number; readonly minimumPreparationTokens: number };
40
- readonly maxIterationTokens?: number;
41
- advanceMixed?(tokenBudget: number): Promise<void>;
42
- advancePreparation(): Promise<void>;
43
- advance(): Promise<void>;
44
- failActive(error: unknown): void;
45
- failAll(error: unknown): void;
46
- reserveResidency(): () => void;
47
- acquireExecution?(): Promise<() => void>;
48
- waitForWork(): Promise<void>;
49
- }
50
-
51
- export interface SchedulingClock {
52
- now(): number;
53
- yield(): Promise<void>;
54
- }
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "lib": ["ES2022"],
4
- "target": "ES2022",
5
- "module": "Preserve",
6
- "moduleResolution": "bundler",
7
- "types": [],
8
- "strict": true,
9
- "skipLibCheck": false,
10
- "noUncheckedIndexedAccess": true,
11
- "noEmit": true
12
- },
13
- "include": ["./*.ts", "../engine/**/*.ts", "../inference/**/*.ts"]
14
- }