turbollm 1.10.7 → 1.11.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 (130) hide show
  1. package/README.md +11 -2
  2. package/dist/{chunk-5MCP2ZAJ.js → chunk-H67DVIQT.js} +5 -3
  3. package/dist/cli.js +1038 -613
  4. package/dist/{distiller-6E6IOZ5G.js → distiller-76UGFCA4.js} +1 -1
  5. package/dist/webdist/assets/{AgentEditPage-D5ML1yEJ.js → AgentEditPage-Crb8pCTs.js} +1 -1
  6. package/dist/webdist/assets/{ChatScreen-B0S4VSQu.js → ChatScreen-DWR0twnC.js} +1 -1
  7. package/dist/webdist/assets/{CodeComposer-CFGTywll.js → CodeComposer-DTUjWlAE.js} +1 -1
  8. package/dist/webdist/assets/{CodeHomeScreen-tUO_t4Zc.js → CodeHomeScreen-CXfPIHBq.js} +1 -1
  9. package/dist/webdist/assets/{CodeSessionScreen-DBlJgHxT.js → CodeSessionScreen-CwBa11Jt.js} +1 -1
  10. package/dist/webdist/assets/{CustomizeScreen-VNNd10Il.js → CustomizeScreen-CD-WTBXb.js} +3 -3
  11. package/dist/webdist/assets/{DeveloperScreen-fUBfXY5H.js → DeveloperScreen-CESuUPIA.js} +1 -1
  12. package/dist/webdist/assets/EnginesScreen-BhdKIPyX.js +7 -0
  13. package/dist/webdist/assets/ModelDetailDialog-D5TNFKk6.js +1 -0
  14. package/dist/webdist/assets/{ModelLoadMenu-1celvYES.js → ModelLoadMenu-BbBx7ruU.js} +1 -1
  15. package/dist/webdist/assets/{ModelsScreen-Ct2oMCBG.js → ModelsScreen-m-cbkQfg.js} +2 -2
  16. package/dist/webdist/assets/{OnboardingScreen-Bgo7iNG4.js → OnboardingScreen-CloBv6v8.js} +1 -1
  17. package/dist/webdist/assets/{RoutineEditPage-X-tfkF8p.js → RoutineEditPage-CIFrprR0.js} +1 -1
  18. package/dist/webdist/assets/{RoutinesPanel-BsNC2P-e.js → RoutinesPanel-DuCSvkpH.js} +1 -1
  19. package/dist/webdist/assets/SettingsScreen-CSHExY0c.js +2 -0
  20. package/dist/webdist/assets/{SidebarResizeHandle-CMoeO4IS.js → SidebarResizeHandle-DPHLGOYS.js} +1 -1
  21. package/dist/webdist/assets/{SkillEditPage-BBU6US7R.js → SkillEditPage-BPMWlPxr.js} +1 -1
  22. package/dist/webdist/assets/TokensScreen-C78YBwfC.js +1 -0
  23. package/dist/webdist/assets/{ToolApprovalBar-C-5egxQM.js → ToolApprovalBar-D6Usabbc.js} +3 -3
  24. package/dist/webdist/assets/WorkspaceScreen-D4VRoaRA.js +1 -0
  25. package/dist/webdist/assets/{abnfDiagram-N423BO3Z-ClQ4l7BJ.js → abnfDiagram-N423BO3Z-EMmaHj8K.js} +1 -1
  26. package/dist/webdist/assets/{agent-api-Cy116Wna.js → agent-api-Vpc7M2SN.js} +1 -1
  27. package/dist/webdist/assets/{alert-dialog-DsacooCM.js → alert-dialog-RuoeJJC-.js} +1 -1
  28. package/dist/webdist/assets/{arc-Ccsz0c1U.js → arc-BHeddvY-.js} +1 -1
  29. package/dist/webdist/assets/{architectureDiagram-T3A2C74G-DXCEy8yk.js → architectureDiagram-T3A2C74G-B9vPWlm9.js} +1 -1
  30. package/dist/webdist/assets/{arrow-left-btKkEUQC.js → arrow-left-QxWpxvpD.js} +1 -1
  31. package/dist/webdist/assets/{badge-ETMmfV6d.js → badge-WQ1wLWtz.js} +1 -1
  32. package/dist/webdist/assets/{blockDiagram-VBNYF7ZC-DcXBCWEB.js → blockDiagram-VBNYF7ZC-DF9hv8Mn.js} +1 -1
  33. package/dist/webdist/assets/{bot-DLPjPjfX.js → bot-BkUld4bs.js} +1 -1
  34. package/dist/webdist/assets/{c4Diagram-5PPSVZJV-Belyrez_.js → c4Diagram-5PPSVZJV-DiyHHtjq.js} +1 -1
  35. package/dist/webdist/assets/channel-Dp-qf202.js +1 -0
  36. package/dist/webdist/assets/{chat-api-CYP5FfaK.js → chat-api-DgmaYhDI.js} +1 -1
  37. package/dist/webdist/assets/{chat-queries-DFiNjPVk.js → chat-queries-RLSOlOWo.js} +1 -1
  38. package/dist/webdist/assets/{chevron-left-CqVcixGZ.js → chevron-left-CP9IFIJY.js} +1 -1
  39. package/dist/webdist/assets/{chevron-right-ClhtZaIW.js → chevron-right-DrIMoQSz.js} +1 -1
  40. package/dist/webdist/assets/{chunk-2GRJ4B5K-Bl4Egdxq.js → chunk-2GRJ4B5K-CCSTGpfU.js} +1 -1
  41. package/dist/webdist/assets/{chunk-2Q5K7J3B-wttmslhN.js → chunk-2Q5K7J3B-DhLcfa9a.js} +1 -1
  42. package/dist/webdist/assets/{chunk-5RXB4S5H-2aeLxRgO.js → chunk-5RXB4S5H-DS_Jjker.js} +1 -1
  43. package/dist/webdist/assets/{chunk-5VM5RSS4-DPt4WRD0.js → chunk-5VM5RSS4-DR8jriPd.js} +1 -1
  44. package/dist/webdist/assets/{chunk-6Q2QTUOP-BHuRPIZo.js → chunk-6Q2QTUOP-CvvshdRt.js} +1 -1
  45. package/dist/webdist/assets/{chunk-GF5L2VYU-Cp5_eYO0.js → chunk-GF5L2VYU-Bn_W4FqO.js} +1 -1
  46. package/dist/webdist/assets/{chunk-JWPE2WC7-Bad4lXjT.js → chunk-JWPE2WC7-BbyR5jPI.js} +1 -1
  47. package/dist/webdist/assets/{chunk-KBJHAD2P-bRIJ5aJE.js → chunk-KBJHAD2P-CapiPaai.js} +1 -1
  48. package/dist/webdist/assets/{chunk-RYQCIY6F-DaIRDjrJ.js → chunk-RYQCIY6F-o0Eobs4I.js} +1 -1
  49. package/dist/webdist/assets/{chunk-XXDRQBXY-DUjNRvyi.js → chunk-XXDRQBXY-DnfM_6_z.js} +1 -1
  50. package/dist/webdist/assets/{circle-check-lm7UlohA.js → circle-check-Dfy4urT3.js} +1 -1
  51. package/dist/webdist/assets/{circle-x-DXjeMK7_.js → circle-x-CTrNBFyk.js} +1 -1
  52. package/dist/webdist/assets/classDiagram-JCYQIIEL-7lq6N49Q.js +1 -0
  53. package/dist/webdist/assets/classDiagram-v2-OCEON4UE-7lq6N49Q.js +1 -0
  54. package/dist/webdist/assets/{common-BWsQPS4w.js → common-D3KIhI5Z.js} +1 -1
  55. package/dist/webdist/assets/{cose-bilkent-JH36ORCC-DJ6dqH5u.js → cose-bilkent-JH36ORCC-CVGwTg6K.js} +1 -1
  56. package/dist/webdist/assets/{cynefin-VYW2F7L2-j7CNR5al.js → cynefin-VYW2F7L2-B_cdEt0j.js} +1 -1
  57. package/dist/webdist/assets/{cynefinDiagram-MW4NZA55-Csyy_ycJ.js → cynefinDiagram-MW4NZA55-D6Bq1Hb9.js} +1 -1
  58. package/dist/webdist/assets/{dagre-VZM6K2ZE-C8_8FZ_1.js → dagre-VZM6K2ZE-BZBXLl5P.js} +1 -1
  59. package/dist/webdist/assets/{diagram-7IWD3JNH-lHY837vu.js → diagram-7IWD3JNH-CfaI5HQ5.js} +1 -1
  60. package/dist/webdist/assets/{diagram-B4RE2ZJO-DHJiN71Y.js → diagram-B4RE2ZJO-CHTmK73T.js} +1 -1
  61. package/dist/webdist/assets/{diagram-LBJQPF4R-K7za9ap-.js → diagram-LBJQPF4R-Cv1djbM6.js} +1 -1
  62. package/dist/webdist/assets/{diagram-Q27KOJAE-DZF4r8J1.js → diagram-Q27KOJAE-wH1umxXP.js} +1 -1
  63. package/dist/webdist/assets/{diagram-UB23O5K3-BV93evGE.js → diagram-UB23O5K3-DjVjVgky.js} +1 -1
  64. package/dist/webdist/assets/{dropdown-menu-CJn5km77.js → dropdown-menu-DtzQnzDC.js} +1 -1
  65. package/dist/webdist/assets/{ebnfDiagram-BXEA7PRR-Bn43QxLJ.js → ebnfDiagram-BXEA7PRR-CnP6v0OA.js} +1 -1
  66. package/dist/webdist/assets/{erDiagram-JOGREHBK-DA76FXpj.js → erDiagram-JOGREHBK-Bxvus2yH.js} +1 -1
  67. package/dist/webdist/assets/{external-link-CDofq-uS.js → external-link-BYxejPiV.js} +1 -1
  68. package/dist/webdist/assets/{file-text-CLawuNe-.js → file-text-BFFqF1Q-.js} +1 -1
  69. package/dist/webdist/assets/{flowDiagram-UKHOOZJN-BFmHTmd4.js → flowDiagram-UKHOOZJN-Cs1rV3tb.js} +1 -1
  70. package/dist/webdist/assets/{folder-input-CD3vW63B.js → folder-input-BtJHHiyW.js} +1 -1
  71. package/dist/webdist/assets/{folder-plus-CHFH6CGi.js → folder-plus-Ch-KIy_j.js} +1 -1
  72. package/dist/webdist/assets/{ganttDiagram-PKOTCBZU-qq6n7Npl.js → ganttDiagram-PKOTCBZU-DbKmBS-m.js} +1 -1
  73. package/dist/webdist/assets/{git-branch-BNf3nBf4.js → git-branch-C0tnpEBn.js} +1 -1
  74. package/dist/webdist/assets/{gitGraphDiagram-DS77QQ5N-O844aE6e.js → gitGraphDiagram-DS77QQ5N-XiTtBrMy.js} +1 -1
  75. package/dist/webdist/assets/{index-CVUvHlLK.js → index-DgjAtL-b.js} +8 -8
  76. package/dist/webdist/assets/index-yZ-DNSjl.css +1 -0
  77. package/dist/webdist/assets/{infoDiagram-6WML65LV-DPLidi-w.js → infoDiagram-6WML65LV-VAFHBPFv.js} +1 -1
  78. package/dist/webdist/assets/{ishikawaDiagram-WSZJBQD7-C_D80PuR.js → ishikawaDiagram-WSZJBQD7-CltvpCC_.js} +1 -1
  79. package/dist/webdist/assets/{journeyDiagram-NVQOT4AX-DT8vAmfq.js → journeyDiagram-NVQOT4AX-B8O_4rAi.js} +1 -1
  80. package/dist/webdist/assets/{kanban-definition-27J2QSJJ-Cjrhy90p.js → kanban-definition-27J2QSJJ-PuuqAhDK.js} +1 -1
  81. package/dist/webdist/assets/{linear-BNKcDfRp.js → linear-BzcDsYCl.js} +1 -1
  82. package/dist/webdist/assets/{lock-DCkuUFTx.js → lock-NjhtB3l7.js} +1 -1
  83. package/dist/webdist/assets/{mermaid.core-_aD3MaM1.js → mermaid.core--ItM_Tuo.js} +4 -4
  84. package/dist/webdist/assets/{mindmap-definition-FAOFIHXS-BqM2v6KK.js → mindmap-definition-FAOFIHXS-DA4CwvE8.js} +1 -1
  85. package/dist/webdist/assets/{pegDiagram-VL7TDLO6-D69Ob2pm.js → pegDiagram-VL7TDLO6-pcbWVCJ3.js} +1 -1
  86. package/dist/webdist/assets/{pencil-DF9RK47z.js → pencil-C7Mm5Xtr.js} +1 -1
  87. package/dist/webdist/assets/{personas-B0hCMTUH.js → personas-DUC47oth.js} +6 -2
  88. package/dist/webdist/assets/{pieDiagram-7S7Q4E2Y-Acz4Vhi9.js → pieDiagram-7S7Q4E2Y-BY35jaW3.js} +1 -1
  89. package/dist/webdist/assets/{plus-od9Z8JBI.js → plus-DvEO8E95.js} +1 -1
  90. package/dist/webdist/assets/{quadrantDiagram-CIZ2JOQS-BQuxPHrg.js → quadrantDiagram-CIZ2JOQS-C5mpyBRe.js} +1 -1
  91. package/dist/webdist/assets/{railroadDiagram-AXF67PYL-BCNHLYi6.js → railroadDiagram-AXF67PYL-DWTf-dRS.js} +1 -1
  92. package/dist/webdist/assets/{refresh-cw-wVChCbgC.js → refresh-cw-BATeQPJY.js} +1 -1
  93. package/dist/webdist/assets/{requirementDiagram-LRYGKXZP-Cflwzc5J.js → requirementDiagram-LRYGKXZP-DBow0Bqr.js} +1 -1
  94. package/dist/webdist/assets/{rocket-AHtoJDN5.js → rocket-90T43z1Z.js} +1 -1
  95. package/dist/webdist/assets/{rotate-ccw-D6mHSwlE.js → rotate-ccw-C7pm2Mke.js} +1 -1
  96. package/dist/webdist/assets/{sankeyDiagram-W5VNT64P-DjGLWVxt.js → sankeyDiagram-W5VNT64P-Y3Ppkoun.js} +1 -1
  97. package/dist/webdist/assets/{sequenceDiagram-SI44F4Z6-BxNynfm_.js → sequenceDiagram-SI44F4Z6-CHYIu9uX.js} +1 -1
  98. package/dist/webdist/assets/{sizeCapture-X5ZJPWSS-CIxcUn-W.js → sizeCapture-X5ZJPWSS-B2aHWrTS.js} +1 -1
  99. package/dist/webdist/assets/{skeleton-DB9wzixM.js → skeleton-BvAwq7sP.js} +1 -1
  100. package/dist/webdist/assets/{sliders-horizontal-B4k3SOq8.js → sliders-horizontal-DfmwaGs9.js} +1 -1
  101. package/dist/webdist/assets/{sparkles-CGw2zOBl.js → sparkles-CLTAYDRV.js} +1 -1
  102. package/dist/webdist/assets/{star-kFA-8ui3.js → star-CGSbYOmP.js} +1 -1
  103. package/dist/webdist/assets/{stateDiagram-OKZ733FA-CE6r0DpO.js → stateDiagram-OKZ733FA-COcaEWBl.js} +1 -1
  104. package/dist/webdist/assets/stateDiagram-v2-UEYNNEHI-DuyS45WN.js +1 -0
  105. package/dist/webdist/assets/{swimlanes-SLNWSIFB-BY5mBHmX.js → swimlanes-SLNWSIFB-B5uq0ZSN.js} +2 -2
  106. package/dist/webdist/assets/swimlanesDiagram-ULZ7WXOC-C4aR5PY8.js +8 -0
  107. package/dist/webdist/assets/{switch--fCLTBfJ.js → switch-CndaFrl5.js} +1 -1
  108. package/dist/webdist/assets/{terminal-BHrEfmJx.js → terminal-C6Twoyfk.js} +1 -1
  109. package/dist/webdist/assets/{timeline-definition-Z64GVDOM-DIpbpxSt.js → timeline-definition-Z64GVDOM-CfEDs9k-.js} +1 -1
  110. package/dist/webdist/assets/{trash-2-BIxN_cUh.js → trash-2-CtpXI0P6.js} +1 -1
  111. package/dist/webdist/assets/{triangle-alert-BJvRO2m9.js → triangle-alert-wgQzTmmK.js} +1 -1
  112. package/dist/webdist/assets/{useIsDesktop-C6bR75xO.js → useIsDesktop-C28eAfaZ.js} +1 -1
  113. package/dist/webdist/assets/{vennDiagram-T6HMQDX7-BXwq853f.js → vennDiagram-T6HMQDX7-CjjfGXNg.js} +1 -1
  114. package/dist/webdist/assets/{vram-CnWbHiEa.js → vram-Bz1RMnmc.js} +1 -1
  115. package/dist/webdist/assets/{wardleyDiagram-T6FBY63Y-Brk79llj.js → wardleyDiagram-T6FBY63Y--seBEPmq.js} +1 -1
  116. package/dist/webdist/assets/{wrench-CqFqaLhR.js → wrench-CLtGGoX0.js} +1 -1
  117. package/dist/webdist/assets/{xychartDiagram-ELKLHX3M-BhBgiszK.js → xychartDiagram-ELKLHX3M-CbkgQrTE.js} +1 -1
  118. package/dist/webdist/index.html +2 -2
  119. package/package.json +1 -1
  120. package/dist/webdist/assets/EnginesScreen-DpmBvOIv.js +0 -7
  121. package/dist/webdist/assets/ModelDetailDialog-DGLgdKeK.js +0 -1
  122. package/dist/webdist/assets/SettingsScreen-B4Durx8x.js +0 -2
  123. package/dist/webdist/assets/TokensScreen-CMc6iZO-.js +0 -1
  124. package/dist/webdist/assets/WorkspaceScreen-zOfnugwb.js +0 -1
  125. package/dist/webdist/assets/channel-Bft2MKTV.js +0 -1
  126. package/dist/webdist/assets/classDiagram-JCYQIIEL-CSuzSYfp.js +0 -1
  127. package/dist/webdist/assets/classDiagram-v2-OCEON4UE-CSuzSYfp.js +0 -1
  128. package/dist/webdist/assets/index-BTitHmTT.css +0 -1
  129. package/dist/webdist/assets/stateDiagram-v2-UEYNNEHI-B5To02A1.js +0 -1
  130. package/dist/webdist/assets/swimlanesDiagram-ULZ7WXOC-Yjo90md-.js +0 -8
package/README.md CHANGED
@@ -222,6 +222,15 @@ the detail:
222
222
  - **Saved per-model profiles, per engine** — tune once per (model, engine) pair, so
223
223
  switching engines (or between two installs of the same engine, e.g. a fork) never
224
224
  overwrites another engine's tuning for the same model.
225
+ - **Named load presets, many per model** — keep "max speed 32k" *and* "200k long context"
226
+ side by side instead of the second tune overwriting the first. Pick one from the Model
227
+ Detail panel to fill the load parameters (it's remembered and auto-applied on the next
228
+ load), **Save as…** captures the current settings, and rename/delete live in the ⋯ menu.
229
+ **Auto-tune mints a preset every time you save one** — named `Auto-tune <date>` and badged
230
+ with its measured tok/s — so every tune becomes browsable, restorable history rather than
231
+ a one-slot overwrite. The ten newest auto-tune presets are kept; your own saves are never
232
+ pruned. Existing profiles carry over as presets automatically, and a model with no presets
233
+ behaves exactly as before.
225
234
  - **Configurable VRAM headroom** (Settings → Models & loading → Advanced, 300 MB–2 GB, default
226
235
  1 GB) — tell auto-tune how much VRAM to keep free for other GPU workloads instead of a fixed margin.
227
236
  Drag it to 0 to opt into an experimental **MoE "VRAM-spill" search** — auto-tune keeps pushing more
@@ -468,8 +477,8 @@ switch between CUDA / ROCm / Metal / SYCL / Vulkan / CPU at any time (it downloa
468
477
  you choose, LM Studio-style).
469
478
 
470
479
  **Engine types.** **llama.cpp / GGUF**, **KoboldCpp** and **llamafile** (GGUF, every OS),
471
- **MLX** (macOS), and **vLLM** (Linux + NVIDIA) are all first-class engine kinds — install from
472
- the curated catalog, pick the right one per model, and switch from a single dropdown.
480
+ **MLX** and **MLX-VLM** (macOS), and **vLLM** (Linux + NVIDIA) are all first-class engine kinds —
481
+ install from the curated catalog, pick the right one per model, and switch from a single dropdown.
473
482
 
474
483
  **Fully supervised.** Every engine runs under a real state machine: health-gated readiness,
475
484
  graceful stop, an **idle auto-stop** watchdog, and **live logs + clear error surfacing** in
@@ -8,16 +8,18 @@ import { join } from "path";
8
8
  function engineAcceptsFormat(engineKind, format) {
9
9
  if (engineKind === "mlx") return format === "mlx";
10
10
  if (engineKind === "rapid-mlx") return format === "mlx";
11
+ if (engineKind === "mlx-vlm") return format === "mlx";
11
12
  if (engineKind === "vllm") return format === "mlx";
12
13
  return format === "gguf";
13
14
  }
14
15
  function engineRejectsAudioModel(engineKind) {
15
- return engineKind === "rapid-mlx";
16
+ return engineKind === "rapid-mlx" || engineKind === "mlx-vlm";
16
17
  }
17
18
  var ENGINE_MODEL_ALIAS = "default_model";
18
19
  var RAPID_MLX_MODEL_ALIAS = "default";
19
- function engineModelAlias(engineKind) {
20
+ function engineModelAlias(engineKind, modelPath) {
20
21
  if (engineKind === "rapid-mlx") return RAPID_MLX_MODEL_ALIAS;
22
+ if (engineKind === "mlx-vlm") return modelPath ?? null;
21
23
  return engineKind === "mlx" || engineKind === "vllm" || engineKind === "sglang" ? ENGINE_MODEL_ALIAS : null;
22
24
  }
23
25
  var VENDOR_DISPLAY = {
@@ -77,7 +79,7 @@ async function distill(d, material) {
77
79
  const ms = d.manager.status();
78
80
  const target = d.manager.target();
79
81
  if (ms.state !== "running" || !ms.model || !target) return { name: null, description: null, procedure: null };
80
- const model = engineModelAlias(d.registry.active()?.kind ?? "") ?? ms.model.key;
82
+ const model = engineModelAlias(d.registry.active()?.kind ?? "", d.manager.currentOpts()?.modelPath) ?? ms.model.key;
81
83
  try {
82
84
  const res = await fetch(`${target}/v1/chat/completions`, {
83
85
  method: "POST",