soup-cli 0.71.36__tar.gz → 0.71.37__tar.gz

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 (892) hide show
  1. {soup_cli-0.71.36 → soup_cli-0.71.37}/CHANGELOG.md +39 -0
  2. {soup_cli-0.71.36 → soup_cli-0.71.37}/CONTRIBUTING.md +1 -1
  3. {soup_cli-0.71.36 → soup_cli-0.71.37}/CONTRIBUTORS.md +2 -0
  4. {soup_cli-0.71.36 → soup_cli-0.71.37}/PKG-INFO +34 -7
  5. {soup_cli-0.71.36 → soup_cli-0.71.37}/README.md +33 -6
  6. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/backends-and-ops.md +4 -4
  7. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/commands.md +3 -3
  8. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/data.md +3 -3
  9. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/evaluation.md +1 -1
  10. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/models.md +23 -23
  11. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/performance-and-quantization.md +5 -5
  12. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/serving-and-export.md +6 -6
  13. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/training.md +2 -2
  14. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/README.md +3 -3
  15. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/dpo_example.yaml +2 -2
  16. {soup_cli-0.71.36 → soup_cli-0.71.37}/pyproject.toml +1 -1
  17. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/__init__.py +1 -1
  18. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cloud/modal.py +1 -1
  19. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/compile_cmd.py +1 -1
  20. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data.py +5 -3
  21. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data_canary.py +1 -1
  22. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data_topics.py +1 -1
  23. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/eval.py +1 -1
  24. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/export.py +4 -4
  25. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/generate.py +1 -1
  26. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/mcp.py +1 -1
  27. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +1 -1
  28. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/serve.py +3 -3
  29. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/train.py +1 -1
  30. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/tui.py +1 -1
  31. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/ui.py +1 -1
  32. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/config/schema.py +18 -18
  33. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/gate.py +5 -8
  34. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/judge.py +1 -1
  35. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/mcp_server/registry.py +1 -1
  36. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/audio.yaml +1 -1
  37. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/bco.yaml +1 -1
  38. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/chat.yaml +1 -1
  39. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/code.yaml +1 -1
  40. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/embedding.yaml +1 -1
  41. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/eu-ai-act.yaml +2 -2
  42. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/ipo.yaml +1 -1
  43. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/kto.yaml +1 -1
  44. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/longcontext.yaml +2 -2
  45. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/medical.yaml +1 -1
  46. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/moe.yaml +1 -1
  47. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/orpo.yaml +1 -1
  48. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/pretrain.yaml +1 -1
  49. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/reasoning.yaml +1 -1
  50. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/rlhf.yaml +1 -1
  51. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/simpo.yaml +1 -1
  52. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/tool-calling.yaml +1 -1
  53. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/vision.yaml +1 -1
  54. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/mlx_dpo.py +1 -1
  55. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/mlx_grpo.py +1 -1
  56. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/mlx_sft.py +1 -1
  57. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/online_dpo.py +1 -1
  58. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/sft.py +1 -1
  59. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/apple_adapter.py +1 -1
  60. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/compile_tools.py +2 -2
  61. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/data_doctor.py +1 -1
  62. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/data_lint.py +1 -1
  63. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/delinearize_llama4.py +1 -1
  64. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/_common.py +1 -1
  65. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/errors.py +7 -7
  66. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/grpo_long_context.py +1 -1
  67. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/liger.py +1 -1
  68. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/mii.py +1 -1
  69. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/prompt_compile.py +1 -1
  70. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/prune_prompt.py +1 -1
  71. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_a_wave1.py +19 -13
  72. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07136.py +7 -2
  73. soup_cli-0.71.37/tests/test_v07137.py +139 -0
  74. {soup_cli-0.71.36 → soup_cli-0.71.37}/.dockerignore +0 -0
  75. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/FUNDING.yml +0 -0
  76. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  77. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  78. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  79. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/pull_request_template.md +0 -0
  80. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/workflows/ci.yml +0 -0
  81. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/workflows/docker.yml +0 -0
  82. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/workflows/publish.yml +0 -0
  83. {soup_cli-0.71.36 → soup_cli-0.71.37}/.github/workflows/recipe-validation.yml +0 -0
  84. {soup_cli-0.71.36 → soup_cli-0.71.37}/.gitignore +0 -0
  85. {soup_cli-0.71.36 → soup_cli-0.71.37}/.mailmap +0 -0
  86. {soup_cli-0.71.36 → soup_cli-0.71.37}/.pre-commit-config.yaml +0 -0
  87. {soup_cli-0.71.36 → soup_cli-0.71.37}/AGENTS.md +0 -0
  88. {soup_cli-0.71.36 → soup_cli-0.71.37}/CODEOWNERS +0 -0
  89. {soup_cli-0.71.36 → soup_cli-0.71.37}/CODE_OF_CONDUCT.md +0 -0
  90. {soup_cli-0.71.36 → soup_cli-0.71.37}/Dockerfile +0 -0
  91. {soup_cli-0.71.36 → soup_cli-0.71.37}/LICENSE +0 -0
  92. {soup_cli-0.71.36 → soup_cli-0.71.37}/NOTICE +0 -0
  93. {soup_cli-0.71.36 → soup_cli-0.71.37}/SECURITY.md +0 -0
  94. {soup_cli-0.71.36 → soup_cli-0.71.37}/docker-compose.yml +0 -0
  95. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/README.md +0 -0
  96. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/adapters-and-governance.md +0 -0
  97. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/compliance.md +0 -0
  98. {soup_cli-0.71.36 → soup_cli-0.71.37}/docs/peft-and-efficiency.md +0 -0
  99. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/dpo_chat.yaml +0 -0
  100. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/grpo_reasoning.yaml +0 -0
  101. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/rlhf_step1_sft.yaml +0 -0
  102. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/rlhf_step2_reward.yaml +0 -0
  103. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/rlhf_step3_ppo.yaml +0 -0
  104. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/sft_basic.yaml +0 -0
  105. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/configs/vision_llama.yaml +0 -0
  106. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/data/alpaca_tiny.jsonl +0 -0
  107. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/data/chat_preferences.jsonl +0 -0
  108. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/data/dpo_sample.jsonl +0 -0
  109. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/data/reasoning_math.jsonl +0 -0
  110. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/reward_hacking/rewards.py +0 -0
  111. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/synthetic_workflow.md +0 -0
  112. {soup_cli-0.71.36 → soup_cli-0.71.37}/examples/synthetic_workflow.yaml +0 -0
  113. {soup_cli-0.71.36 → soup_cli-0.71.37}/soup.png +0 -0
  114. {soup_cli-0.71.36 → soup_cli-0.71.37}/soup_logo_svg.svg +0 -0
  115. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/__main__.py +0 -0
  116. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/autopilot/__init__.py +0 -0
  117. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/autopilot/analyzer.py +0 -0
  118. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/autopilot/decisions.py +0 -0
  119. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/autopilot/generate_config.py +0 -0
  120. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/__init__.py +0 -0
  121. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/pack.py +0 -0
  122. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/publish.py +0 -0
  123. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/run.py +0 -0
  124. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/schema.py +0 -0
  125. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/unpack.py +0 -0
  126. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cans/verify.py +0 -0
  127. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cli.py +0 -0
  128. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/cloud/__init__.py +0 -0
  129. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/__init__.py +0 -0
  130. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/_eval_v0550.py +0 -0
  131. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/_eval_v0610.py +0 -0
  132. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/_eval_v0650.py +0 -0
  133. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/_eval_v07110.py +0 -0
  134. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/_webhook_cli.py +0 -0
  135. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/ab.py +0 -0
  136. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/active_sample.py +0 -0
  137. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/adapters.py +0 -0
  138. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/advise.py +0 -0
  139. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/agent.py +0 -0
  140. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/airgap.py +0 -0
  141. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/apple_adapter.py +0 -0
  142. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/attest.py +0 -0
  143. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/audit_log.py +0 -0
  144. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/autopilot.py +0 -0
  145. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/bench.py +0 -0
  146. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/bom.py +0 -0
  147. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/build.py +0 -0
  148. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/can.py +0 -0
  149. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/card.py +0 -0
  150. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/chat.py +0 -0
  151. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/ci.py +0 -0
  152. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/compile_tools.py +0 -0
  153. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/completions.py +0 -0
  154. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/cost.py +0 -0
  155. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data_doctor.py +0 -0
  156. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data_forge.py +0 -0
  157. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data_mix.py +0 -0
  158. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/data_score.py +0 -0
  159. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/delinearize_llama4.py +0 -0
  160. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/deploy.py +0 -0
  161. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/diagnose.py +0 -0
  162. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/diff.py +0 -0
  163. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/distill_prompt.py +0 -0
  164. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/doctor.py +0 -0
  165. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/draft.py +0 -0
  166. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/drift_alarm.py +0 -0
  167. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/edit.py +0 -0
  168. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/env.py +0 -0
  169. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/expect.py +0 -0
  170. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/fetch.py +0 -0
  171. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/history.py +0 -0
  172. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/infer.py +0 -0
  173. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/ingest.py +0 -0
  174. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/init.py +0 -0
  175. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/iterative_dpo.py +0 -0
  176. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/license_advisor.py +0 -0
  177. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/llama.py +0 -0
  178. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/local_rl.py +0 -0
  179. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/lock.py +0 -0
  180. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/loop.py +0 -0
  181. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/merge.py +0 -0
  182. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/migrate.py +0 -0
  183. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/monitor.py +0 -0
  184. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/plan.py +0 -0
  185. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/plugins.py +0 -0
  186. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/probe.py +0 -0
  187. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/profile.py +0 -0
  188. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/prune_prompt.py +0 -0
  189. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/push.py +0 -0
  190. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/quantize.py +0 -0
  191. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/quickstart.py +0 -0
  192. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/ra_dit.py +0 -0
  193. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/recipes.py +0 -0
  194. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/registry.py +0 -0
  195. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/runs.py +0 -0
  196. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/ship.py +0 -0
  197. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/shrink.py +0 -0
  198. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/spectrum.py +0 -0
  199. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/steer.py +0 -0
  200. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/sweep.py +0 -0
  201. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/tokenizer.py +0 -0
  202. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/tunability.py +0 -0
  203. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/commands/why.py +0 -0
  204. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/config/__init__.py +0 -0
  205. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/config/loader.py +0 -0
  206. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/__init__.py +0 -0
  207. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
  208. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
  209. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
  210. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
  211. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
  212. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
  213. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
  214. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
  215. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
  216. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
  217. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
  218. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
  219. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/augment.py +0 -0
  220. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/chat_templates.py +0 -0
  221. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/collators.py +0 -0
  222. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/formats.py +0 -0
  223. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/loader.py +0 -0
  224. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/loss_mask.py +0 -0
  225. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/providers/__init__.py +0 -0
  226. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/providers/_utils.py +0 -0
  227. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/providers/anthropic.py +0 -0
  228. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/providers/ollama.py +0 -0
  229. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/providers/vllm.py +0 -0
  230. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/sft_format.py +0 -0
  231. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/__init__.py +0 -0
  232. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/code.py +0 -0
  233. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/conversation.py +0 -0
  234. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/preference.py +0 -0
  235. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/qa.py +0 -0
  236. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/reasoning.py +0 -0
  237. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/tool_calling.py +0 -0
  238. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/templates/verifiable.py +0 -0
  239. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/traces/__init__.py +0 -0
  240. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/traces/pair_builder.py +0 -0
  241. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/traces/parsers.py +0 -0
  242. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/traces/quality.py +0 -0
  243. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/data/validator.py +0 -0
  244. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/envs/__init__.py +0 -0
  245. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/envs/_common.py +0 -0
  246. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/envs/calculator.py +0 -0
  247. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/envs/guess_number.py +0 -0
  248. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/envs/retrieval_qa.py +0 -0
  249. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/__init__.py +0 -0
  250. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/arena.py +0 -0
  251. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
  252. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/calibrate.py +0 -0
  253. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
  254. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/custom.py +0 -0
  255. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/forgetting.py +0 -0
  256. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/human.py +0 -0
  257. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/leaderboard.py +0 -0
  258. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/eval/quant_check.py +0 -0
  259. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/experiment/__init__.py +0 -0
  260. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/experiment/tracker.py +0 -0
  261. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/mcp_server/__init__.py +0 -0
  262. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/mcp_server/server.py +0 -0
  263. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/migrate/__init__.py +0 -0
  264. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/migrate/axolotl.py +0 -0
  265. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/migrate/common.py +0 -0
  266. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/migrate/llamafactory.py +0 -0
  267. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/migrate/unsloth.py +0 -0
  268. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/__init__.py +0 -0
  269. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/callback.py +0 -0
  270. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
  271. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/display.py +0 -0
  272. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
  273. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/hf_push.py +0 -0
  274. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/plugin_callback.py +0 -0
  275. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/monitoring/trace_logger.py +0 -0
  276. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/plugins/__init__.py +0 -0
  277. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/py.typed +0 -0
  278. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/recipes/__init__.py +0 -0
  279. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/recipes/catalog.py +0 -0
  280. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/registry/__init__.py +0 -0
  281. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/registry/attach.py +0 -0
  282. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/registry/diff.py +0 -0
  283. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/registry/hashing.py +0 -0
  284. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/registry/store.py +0 -0
  285. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/__init__.py +0 -0
  286. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
  287. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
  288. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
  289. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/hipaa.yaml +0 -0
  290. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/manifest.json +0 -0
  291. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/soc2.yaml +0 -0
  292. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/templates/sr-11-7.yaml +0 -0
  293. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/__init__.py +0 -0
  294. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/asr.py +0 -0
  295. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/bco.py +0 -0
  296. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/bitnet.py +0 -0
  297. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/classifier.py +0 -0
  298. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/distill.py +0 -0
  299. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/dpo.py +0 -0
  300. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/embedding.py +0 -0
  301. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/grpo.py +0 -0
  302. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/ipo.py +0 -0
  303. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/kto.py +0 -0
  304. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/mlx_routing.py +0 -0
  305. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/mole_routing.py +0 -0
  306. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/orpo.py +0 -0
  307. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/ppo.py +0 -0
  308. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/preference.py +0 -0
  309. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/pretrain.py +0 -0
  310. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/prm.py +0 -0
  311. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/raft.py +0 -0
  312. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/reward_model.py +0 -0
  313. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/rewards.py +0 -0
  314. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/simpo.py +0 -0
  315. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/tts.py +0 -0
  316. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/trainer/unlearn.py +0 -0
  317. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/tui_app.py +0 -0
  318. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/__init__.py +0 -0
  319. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/app.py +0 -0
  320. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/plugins/__init__.py +0 -0
  321. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/static/app.js +0 -0
  322. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/static/index.html +0 -0
  323. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/static/logo.png +0 -0
  324. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/static/logo.svg +0 -0
  325. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/ui/static/style.css +0 -0
  326. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/__init__.py +0 -0
  327. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/_eval_text.py +0 -0
  328. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ab_test.py +0 -0
  329. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/activation_offload.py +0 -0
  330. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/active_sampler.py +0 -0
  331. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_arithmetic.py +0 -0
  332. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_bisect.py +0 -0
  333. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_branch.py +0 -0
  334. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_diff.py +0 -0
  335. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_fuse.py +0 -0
  336. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_merge.py +0 -0
  337. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_pr.py +0 -0
  338. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_scan.py +0 -0
  339. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/adapter_sign.py +0 -0
  340. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/advanced_precision.py +0 -0
  341. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/advise.py +0 -0
  342. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/advise_history.py +0 -0
  343. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/agent_forge.py +0 -0
  344. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/agent_rollout.py +0 -0
  345. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/agent_sandbox.py +0 -0
  346. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/airgap_bundle.py +0 -0
  347. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/annex_xi.py +0 -0
  348. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/anthropic_messages.py +0 -0
  349. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/asr_metrics.py +0 -0
  350. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/attest.py +0 -0
  351. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/audit_log.py +0 -0
  352. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/auto_quant.py +0 -0
  353. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/backend_detect.py +0 -0
  354. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/batch_probe.py +0 -0
  355. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/behavior_battery.py +0 -0
  356. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/best_of_n.py +0 -0
  357. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/bitnet.py +0 -0
  358. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/blame.py +0 -0
  359. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/block_expansion.py +0 -0
  360. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/bom.py +0 -0
  361. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/brain_rot.py +0 -0
  362. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/brain_rot_lang.py +0 -0
  363. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/build_dag.py +0 -0
  364. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/canary.py +0 -0
  365. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/canary_discovery.py +0 -0
  366. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/canary_router.py +0 -0
  367. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/capability_suite.py +0 -0
  368. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/checklist_dsl.py +0 -0
  369. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
  370. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ci_workflow.py +0 -0
  371. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/citation_faithful.py +0 -0
  372. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/classifier.py +0 -0
  373. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/cmaes_merge.py +0 -0
  374. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/completions.py +0 -0
  375. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/constants.py +0 -0
  376. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/convergence.py +0 -0
  377. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/crash.py +0 -0
  378. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/cross_doc_attn.py +0 -0
  379. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/curriculum.py +0 -0
  380. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
  381. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/cut_ce.py +0 -0
  382. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/data_forge.py +0 -0
  383. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/data_mix.py +0 -0
  384. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/data_pipeline.py +0 -0
  385. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/data_score.py +0 -0
  386. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/deepspeed.py +0 -0
  387. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/demo_bundles.py +0 -0
  388. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/deploy_autopilot.py +0 -0
  389. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/deploy_measure.py +0 -0
  390. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/__init__.py +0 -0
  391. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/badge.py +0 -0
  392. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/citation.py +0 -0
  393. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/contamination.py +0 -0
  394. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
  395. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/format.py +0 -0
  396. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/live.py +0 -0
  397. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/memorization.py +0 -0
  398. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
  399. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/refusal.py +0 -0
  400. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/report.py +0 -0
  401. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/diagnose/runner.py +0 -0
  402. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/distill.py +0 -0
  403. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/dpo_variants.py +0 -0
  404. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/draft.py +0 -0
  405. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/drift_alarm.py +0 -0
  406. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ebft_gdpo.py +0 -0
  407. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/echo_trap.py +0 -0
  408. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/edit_diff.py +0 -0
  409. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/edit_governor.py +0 -0
  410. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/edit_kernels.py +0 -0
  411. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/embed.py +0 -0
  412. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/encoding.py +0 -0
  413. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/energy.py +0 -0
  414. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/env_lock.py +0 -0
  415. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/eval_design.py +0 -0
  416. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/eval_gate_hook.py +0 -0
  417. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
  418. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/evolve.py +0 -0
  419. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/expectations.py +0 -0
  420. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/fetch_examples.py +0 -0
  421. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/flash_attn.py +0 -0
  422. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/fp8.py +0 -0
  423. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/freeze.py +0 -0
  424. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/fsdp.py +0 -0
  425. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
  426. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/galore.py +0 -0
  427. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/gguf_quant.py +0 -0
  428. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/gpu.py +0 -0
  429. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/gpu_monitor.py +0 -0
  430. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/grace_codebook.py +0 -0
  431. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/graceful_save.py +0 -0
  432. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/grad_accum.py +0 -0
  433. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/gradient_ckpt.py +0 -0
  434. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/grpo_variants.py +0 -0
  435. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/hardware_fit.py +0 -0
  436. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/harm_probe.py +0 -0
  437. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/hf.py +0 -0
  438. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/hf_space.py +0 -0
  439. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/hubs.py +0 -0
  440. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ingest_sources.py +0 -0
  441. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/integrations.py +0 -0
  442. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/interference.py +0 -0
  443. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/interference_live.py +0 -0
  444. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/irt.py +0 -0
  445. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/iterative_dpo.py +0 -0
  446. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/jinja_analyzer.py +0 -0
  447. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/kernel_picker.py +0 -0
  448. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/knowledge_edit.py +0 -0
  449. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/kv_cache.py +0 -0
  450. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/launcher.py +0 -0
  451. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/license_advisor.py +0 -0
  452. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/license_matrix.py +0 -0
  453. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/lisa.py +0 -0
  454. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/live_eval.py +0 -0
  455. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/llama_proxy.py +0 -0
  456. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/llama_server_timings.py +0 -0
  457. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/local_rl.py +0 -0
  458. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/local_rl_scheduler.py +0 -0
  459. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/loftq_init.py +0 -0
  460. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/log_level.py +0 -0
  461. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/long_context.py +0 -0
  462. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/longlora.py +0 -0
  463. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/loop_budget.py +0 -0
  464. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/loop_daemon.py +0 -0
  465. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/loop_iteration.py +0 -0
  466. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/loop_stages.py +0 -0
  467. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/loop_state.py +0 -0
  468. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/lr_finder.py +0 -0
  469. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/lr_groups.py +0 -0
  470. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/magpie.py +0 -0
  471. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/metrics.py +0 -0
  472. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/minillm.py +0 -0
  473. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/mix_proxy.py +0 -0
  474. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/mixed_precision.py +0 -0
  475. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/mlx.py +0 -0
  476. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/mod.py +0 -0
  477. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/moe.py +0 -0
  478. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/moe_quant.py +0 -0
  479. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/mole_routing.py +0 -0
  480. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/multipack.py +0 -0
  481. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/multipack_sampler.py +0 -0
  482. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/multipack_trainer.py +0 -0
  483. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/namespace_pin.py +0 -0
  484. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/neat_packing.py +0 -0
  485. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ngram_spec.py +0 -0
  486. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/nlg_metrics.py +0 -0
  487. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ollama.py +0 -0
  488. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/onboarding.py +0 -0
  489. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/optimizer_zoo.py +0 -0
  490. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/paths.py +0 -0
  491. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/peft_builder.py +0 -0
  492. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/peft_patches.py +0 -0
  493. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/peft_wiring.py +0 -0
  494. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/persona_hub.py +0 -0
  495. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/pipeline.py +0 -0
  496. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/preference_combine.py +0 -0
  497. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/prm.py +0 -0
  498. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/prm_reward.py +0 -0
  499. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/probe_kernel.py +0 -0
  500. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/probe_pack.py +0 -0
  501. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/profiler.py +0 -0
  502. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/profiling.py +0 -0
  503. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/profiling_v0_43.py +0 -0
  504. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/prompt_distill.py +0 -0
  505. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/qat.py +0 -0
  506. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/qr_url.py +0 -0
  507. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/quality.py +0 -0
  508. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/quant_menu.py +0 -0
  509. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ra_dit.py +0 -0
  510. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ra_dit_run.py +0 -0
  511. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/raft.py +0 -0
  512. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/reasoning_effort.py +0 -0
  513. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/reasoning_parser.py +0 -0
  514. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/recipe_dag.py +0 -0
  515. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/recipe_run.py +0 -0
  516. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/registry.py +0 -0
  517. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/rehearsal.py +0 -0
  518. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/relora.py +0 -0
  519. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/replay.py +0 -0
  520. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/repro_receipt.py +0 -0
  521. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/reward_hack_control.py +0 -0
  522. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/reward_hacking.py +0 -0
  523. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ring_attention.py +0 -0
  524. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/rl_checkpoint.py +0 -0
  525. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/rl_signal_buffer.py +0 -0
  526. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/run_cost.py +0 -0
  527. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/sae_diff.py +0 -0
  528. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/save_formats.py +0 -0
  529. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/semdedup.py +0 -0
  530. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/server_tools.py +0 -0
  531. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/sglang.py +0 -0
  532. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ship_verdict.py +0 -0
  533. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/shortcuts.py +0 -0
  534. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/shrink.py +0 -0
  535. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/signing.py +0 -0
  536. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/sleeper_probe.py +0 -0
  537. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/soup_lock.py +0 -0
  538. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/spec_pairing.py +0 -0
  539. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/spectrum_scan.py +0 -0
  540. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/spike_recovery.py +0 -0
  541. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/sse_train_stream.py +0 -0
  542. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/steering.py +0 -0
  543. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/strict_safetensors.py +0 -0
  544. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/structured_output.py +0 -0
  545. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/sweep_config.py +0 -0
  546. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/tail_latency.py +0 -0
  547. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/terraform_plan.py +0 -0
  548. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/tool_outputs.py +0 -0
  549. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/topics.py +0 -0
  550. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/topology.py +0 -0
  551. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/tracing.py +0 -0
  552. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/trackers.py +0 -0
  553. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/train_event_buffer.py +0 -0
  554. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/trainer_plugins.py +0 -0
  555. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/trust_remote.py +0 -0
  556. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/truth_probe.py +0 -0
  557. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/tts.py +0 -0
  558. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/tts_codec.py +0 -0
  559. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/tunability.py +0 -0
  560. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/ui_env.py +0 -0
  561. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/uld.py +0 -0
  562. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/unlearn_kernels.py +0 -0
  563. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/unlearning.py +0 -0
  564. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/unlearning_eval.py +0 -0
  565. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/unsloth.py +0 -0
  566. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/v028_features.py +0 -0
  567. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/vector_bank.py +0 -0
  568. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/vllm.py +0 -0
  569. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/vscode_setup.py +0 -0
  570. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/warmup.py +0 -0
  571. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/webhooks.py +0 -0
  572. {soup_cli-0.71.36 → soup_cli-0.71.37}/src/soup_cli/utils/why.py +0 -0
  573. {soup_cli-0.71.36 → soup_cli-0.71.37}/templates/chat.yaml +0 -0
  574. {soup_cli-0.71.36 → soup_cli-0.71.37}/templates/code.yaml +0 -0
  575. {soup_cli-0.71.36 → soup_cli-0.71.37}/templates/medical.yaml +0 -0
  576. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/__init__.py +0 -0
  577. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/conftest.py +0 -0
  578. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/qa/v053_qa.md +0 -0
  579. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/qa/v07114_qa.md +0 -0
  580. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/qa/v0716_qa.md +0 -0
  581. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_adapters.py +0 -0
  582. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_advanced_peft.py +0 -0
  583. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_assistant_mask.py +0 -0
  584. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_audio.py +0 -0
  585. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_auto_tuning.py +0 -0
  586. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_autopilot.py +0 -0
  587. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_awq_gptq_export.py +0 -0
  588. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_batch_probe.py +0 -0
  589. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_bco.py +0 -0
  590. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_bench.py +0 -0
  591. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_brain_rot_multilingual.py +0 -0
  592. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_bugfixes.py +0 -0
  593. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_build_dag.py +0 -0
  594. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_callback.py +0 -0
  595. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_cans.py +0 -0
  596. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_chat.py +0 -0
  597. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_chat_template.py +0 -0
  598. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_cli.py +0 -0
  599. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_cli_subprocess.py +0 -0
  600. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_code_review_critical.py +0 -0
  601. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_code_review_deferred.py +0 -0
  602. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_code_review_high.py +0 -0
  603. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_code_review_medium_low.py +0 -0
  604. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_code_review_recurring.py +0 -0
  605. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_config.py +0 -0
  606. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_cost.py +0 -0
  607. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_crash_reporter.py +0 -0
  608. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_curriculum.py +0 -0
  609. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_data.py +0 -0
  610. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_data_augment.py +0 -0
  611. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_data_sample.py +0 -0
  612. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_data_split.py +0 -0
  613. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_data_tools.py +0 -0
  614. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_dataset_hub.py +0 -0
  615. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_dataset_registry.py +0 -0
  616. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_deepspeed.py +0 -0
  617. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_deploy_ollama.py +0 -0
  618. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_diff.py +0 -0
  619. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_display.py +0 -0
  620. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_doctor.py +0 -0
  621. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_dpo_example.py +0 -0
  622. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_dpo_variants.py +0 -0
  623. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_embedding.py +0 -0
  624. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_errors.py +0 -0
  625. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_eval.py +0 -0
  626. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_eval_gate.py +0 -0
  627. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_eval_platform.py +0 -0
  628. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_export.py +0 -0
  629. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_formats.py +0 -0
  630. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_fp8_recipe.py +0 -0
  631. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_freeze_training.py +0 -0
  632. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_generate.py +0 -0
  633. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_gpu.py +0 -0
  634. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_grpo.py +0 -0
  635. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_hf_integration.py +0 -0
  636. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_infer.py +0 -0
  637. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_inference_advanced.py +0 -0
  638. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_init.py +0 -0
  639. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ipo.py +0 -0
  640. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_jinja_analyzer.py +0 -0
  641. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_kto.py +0 -0
  642. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_loader.py +0 -0
  643. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_log_level.py +0 -0
  644. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_loss_watchdog.py +0 -0
  645. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_merge.py +0 -0
  646. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_migrate.py +0 -0
  647. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_mlx_backend.py +0 -0
  648. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_moe.py +0 -0
  649. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_multi_adapter.py +0 -0
  650. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_multi_gpu.py +0 -0
  651. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_multipack_config.py +0 -0
  652. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_multipack_invariants.py +0 -0
  653. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_multipack_sampler.py +0 -0
  654. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_neat_packing.py +0 -0
  655. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_neftune_rslora.py +0 -0
  656. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_onnx_tensorrt_export.py +0 -0
  657. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_orpo.py +0 -0
  658. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_packing.py +0 -0
  659. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_a_wave2.py +0 -0
  660. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_b.py +0 -0
  661. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_c.py +0 -0
  662. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_d.py +0 -0
  663. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_e.py +0 -0
  664. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_part_f_hardening.py +0 -0
  665. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_peft_methods.py +0 -0
  666. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_peft_patches.py +0 -0
  667. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_performance.py +0 -0
  668. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_pissa_init.py +0 -0
  669. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ppo.py +0 -0
  670. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_preference_dispatcher.py +0 -0
  671. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_preference_multi.py +0 -0
  672. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_preference_multi_runtime.py +0 -0
  673. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_pretrain.py +0 -0
  674. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_profile.py +0 -0
  675. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_profiling.py +0 -0
  676. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_progress.py +0 -0
  677. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_push.py +0 -0
  678. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_qat.py +0 -0
  679. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_quality_filter.py +0 -0
  680. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_quant_check.py +0 -0
  681. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_quant_menu.py +0 -0
  682. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_quickstart.py +0 -0
  683. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_rank_pattern.py +0 -0
  684. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_recipes.py +0 -0
  685. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_recipes_v031.py +0 -0
  686. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_refusal_multilingual.py +0 -0
  687. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_registry.py +0 -0
  688. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_relora.py +0 -0
  689. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_replay.py +0 -0
  690. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_resume.py +0 -0
  691. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_review_fixes_v07133.py +0 -0
  692. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_rlvr.py +0 -0
  693. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_run_cost.py +0 -0
  694. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_runs.py +0 -0
  695. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_serve.py +0 -0
  696. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_server_generate.py +0 -0
  697. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_sglang_serve.py +0 -0
  698. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_simpo.py +0 -0
  699. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_smoke_train.py +0 -0
  700. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_speculative_decoding.py +0 -0
  701. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_sweep.py +0 -0
  702. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_synth_data_pro.py +0 -0
  703. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_templates_yaml.py +0 -0
  704. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_tensorboard.py +0 -0
  705. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_tool_calling.py +0 -0
  706. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_trace_to_pref.py +0 -0
  707. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_tracker.py +0 -0
  708. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_trainer_coverage_v035.py +0 -0
  709. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_trainer_init.py +0 -0
  710. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_training_intelligence.py +0 -0
  711. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_training_speed.py +0 -0
  712. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_trust_remote_code.py +0 -0
  713. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_tui.py +0 -0
  714. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ui.py +0 -0
  715. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ui_chat.py +0 -0
  716. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ui_config_builder.py +0 -0
  717. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ui_live_monitor.py +0 -0
  718. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_ui_metrics.py +0 -0
  719. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_unsloth.py +0 -0
  720. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0401_part_c.py +0 -0
  721. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0401_part_d.py +0 -0
  722. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0401_part_e.py +0 -0
  723. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0402_part_a.py +0 -0
  724. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0402_part_b.py +0 -0
  725. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0403_part_a.py +0 -0
  726. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0403_part_b.py +0 -0
  727. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0403_part_c.py +0 -0
  728. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0404_part_a.py +0 -0
  729. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0404_part_b.py +0 -0
  730. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0405_part_a.py +0 -0
  731. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0406_part_a.py +0 -0
  732. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0410_part_a.py +0 -0
  733. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0410_part_b.py +0 -0
  734. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0410_part_c.py +0 -0
  735. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0420.py +0 -0
  736. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0430_part_a.py +0 -0
  737. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0430_part_b.py +0 -0
  738. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0430_part_c.py +0 -0
  739. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0430_part_d.py +0 -0
  740. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0440_part_a.py +0 -0
  741. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0440_part_b.py +0 -0
  742. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0440_part_c.py +0 -0
  743. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0440_part_d.py +0 -0
  744. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0440_review_followups.py +0 -0
  745. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0450.py +0 -0
  746. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0460_part_a.py +0 -0
  747. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0460_part_b.py +0 -0
  748. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0470_part_a.py +0 -0
  749. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0470_part_b.py +0 -0
  750. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0480_part_a.py +0 -0
  751. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0480_part_b.py +0 -0
  752. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0490.py +0 -0
  753. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0500_part_a.py +0 -0
  754. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0500_part_b.py +0 -0
  755. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0500_part_c.py +0 -0
  756. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0500_part_d.py +0 -0
  757. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0500_part_e.py +0 -0
  758. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0510.py +0 -0
  759. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0520.py +0 -0
  760. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0530.py +0 -0
  761. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v05310.py +0 -0
  762. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v05311.py +0 -0
  763. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0531_109.py +0 -0
  764. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0531_139.py +0 -0
  765. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0531_142.py +0 -0
  766. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0531_82.py +0 -0
  767. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0532.py +0 -0
  768. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0533.py +0 -0
  769. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0534.py +0 -0
  770. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0535.py +0 -0
  771. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0536.py +0 -0
  772. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0537.py +0 -0
  773. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0538.py +0 -0
  774. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0539.py +0 -0
  775. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0540.py +0 -0
  776. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0550.py +0 -0
  777. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0550_followups.py +0 -0
  778. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0560.py +0 -0
  779. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0570_part_a.py +0 -0
  780. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0570_part_b.py +0 -0
  781. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0570_part_c.py +0 -0
  782. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0570_part_d.py +0 -0
  783. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0580.py +0 -0
  784. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0590.py +0 -0
  785. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0600_part_a.py +0 -0
  786. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0600_part_b.py +0 -0
  787. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0600_part_c.py +0 -0
  788. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0600_part_d.py +0 -0
  789. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0600_part_e.py +0 -0
  790. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0600_part_f.py +0 -0
  791. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0610_part_a.py +0 -0
  792. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0610_part_b.py +0 -0
  793. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0610_part_c.py +0 -0
  794. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0610_part_d.py +0 -0
  795. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0610_part_e.py +0 -0
  796. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0620_followups.py +0 -0
  797. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0620_part_a.py +0 -0
  798. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0620_part_b.py +0 -0
  799. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0620_part_c.py +0 -0
  800. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0620_part_d.py +0 -0
  801. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0620_part_e.py +0 -0
  802. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0630_followups.py +0 -0
  803. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0630_part_a.py +0 -0
  804. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0630_part_b.py +0 -0
  805. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0630_part_c.py +0 -0
  806. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0630_part_d.py +0 -0
  807. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0630_part_e.py +0 -0
  808. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0631_206.py +0 -0
  809. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_followups.py +0 -0
  810. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_part_a.py +0 -0
  811. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_part_b.py +0 -0
  812. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_part_c.py +0 -0
  813. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_part_d.py +0 -0
  814. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_part_e.py +0 -0
  815. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0640_part_f.py +0 -0
  816. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0650_followups.py +0 -0
  817. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0650_part_a.py +0 -0
  818. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0650_part_b.py +0 -0
  819. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0650_part_c.py +0 -0
  820. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0650_part_d.py +0 -0
  821. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0650_part_e.py +0 -0
  822. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_cli.py +0 -0
  823. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_followups.py +0 -0
  824. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_part_a.py +0 -0
  825. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_part_b.py +0 -0
  826. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_part_c.py +0 -0
  827. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_part_d.py +0 -0
  828. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0660_part_e.py +0 -0
  829. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_followups.py +0 -0
  830. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_part_a.py +0 -0
  831. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_part_b.py +0 -0
  832. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_part_c.py +0 -0
  833. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_part_d.py +0 -0
  834. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_part_e.py +0 -0
  835. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0670_part_f.py +0 -0
  836. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0680_followups.py +0 -0
  837. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0680_part_a.py +0 -0
  838. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0680_part_b.py +0 -0
  839. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0680_part_c.py +0 -0
  840. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0680_part_d.py +0 -0
  841. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0680_part_e.py +0 -0
  842. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0690_part_a.py +0 -0
  843. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0690_part_b.py +0 -0
  844. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0690_part_c.py +0 -0
  845. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0690_part_d.py +0 -0
  846. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0690_part_e.py +0 -0
  847. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0700_part_a.py +0 -0
  848. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0700_part_b.py +0 -0
  849. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0700_part_c.py +0 -0
  850. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0700_part_d.py +0 -0
  851. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0700_part_e.py +0 -0
  852. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0700_part_f.py +0 -0
  853. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07110.py +0 -0
  854. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07111.py +0 -0
  855. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07112.py +0 -0
  856. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07113.py +0 -0
  857. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07114.py +0 -0
  858. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07115.py +0 -0
  859. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07116.py +0 -0
  860. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07117.py +0 -0
  861. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07118.py +0 -0
  862. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07119.py +0 -0
  863. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0712.py +0 -0
  864. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07120.py +0 -0
  865. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07121.py +0 -0
  866. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07122.py +0 -0
  867. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07123.py +0 -0
  868. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07124.py +0 -0
  869. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07125.py +0 -0
  870. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07126.py +0 -0
  871. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07127.py +0 -0
  872. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07128.py +0 -0
  873. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07129.py +0 -0
  874. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0713.py +0 -0
  875. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07130.py +0 -0
  876. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07131.py +0 -0
  877. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07132.py +0 -0
  878. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07133.py +0 -0
  879. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07134.py +0 -0
  880. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v07135.py +0 -0
  881. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0714.py +0 -0
  882. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0715.py +0 -0
  883. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0716.py +0 -0
  884. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0717.py +0 -0
  885. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0718.py +0 -0
  886. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_v0719.py +0 -0
  887. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_validator.py +0 -0
  888. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_vision.py +0 -0
  889. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_vllm_serve.py +0 -0
  890. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_warmup.py +0 -0
  891. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_why.py +0 -0
  892. {soup_cli-0.71.36 → soup_cli-0.71.37}/tests/test_windows_encoding.py +0 -0
@@ -12,6 +12,45 @@ reproducing 70+ versions of notes.
12
12
 
13
13
  ## [Unreleased]
14
14
 
15
+ ## [0.71.37] - 2026-07-17
16
+
17
+ **Every `pip install soup-cli[extra]` command now works on Windows `cmd.exe`**, and
18
+ eval-gate benchmark tasks run instead of always failing.
19
+
20
+ ### Fixed
21
+
22
+ - **Install hints are now quoted so they work in every shell.** Soup printed
23
+ `pip install 'soup-cli[ui]'` — bash / zsh / PowerShell syntax. `cmd.exe` has no
24
+ single-quote quoting, so it hands the quotes to pip verbatim and pip refuses:
25
+
26
+ ```
27
+ ERROR: Invalid requirement: "'soup-cli[train]'": Expected package name at the start of dependency specifier
28
+ ```
29
+
30
+ Every hint, README command, and docs example now uses `pip install
31
+ "soup-cli[extra]"`, which works in cmd, PowerShell, bash, and zsh alike — the
32
+ same spelling the repo already used for `pip install -e ".[dev]"`. Measured on
33
+ Windows: single quotes fail only on `cmd.exe`; double quotes pass everywhere;
34
+ dropping the quotes passes on Windows but breaks zsh, which globs the bracket.
35
+
36
+ Nothing in Soup can rescue the command after it is typed — pip and the shell
37
+ own it, and Soup is not installed yet when the README command runs — so the
38
+ fix is the spelling we print. A regression test now scans the package and every
39
+ docs code block for the single-quoted form.
40
+
41
+ If you followed an older tutorial and hit `Invalid requirement`, swap the `'`
42
+ for `"`; nothing is wrong with the package.
43
+
44
+ - **Eval-gate `type: benchmark` tasks now actually run.** `eval/gate.py` probed
45
+ for a `forgetting.run_mini_benchmark` helper that never existed, so every
46
+ `type: benchmark` task in a gate suite failed 100% of the time — while
47
+ advising an `[eval]` extras install that could not fix it. The gate now calls
48
+ `ForgettingDetector` directly (the same way `soup ship` already did), and an
49
+ unknown benchmark name fails with the list of valid names. Thanks
50
+ [@Sanjays2402](https://github.com/Sanjays2402)!
51
+ ([#315](https://github.com/MakazhanAlpamys/Soup/pull/315), closes
52
+ [#310](https://github.com/MakazhanAlpamys/Soup/issues/310))
53
+
15
54
  ## [0.71.36] - 2026-07-16
16
55
 
17
56
  **Data Moat II** — a semantic layer over your training data, plus two tools for
@@ -120,7 +120,7 @@ src/soup_cli/
120
120
  templates/ - 21 built-in soup.yaml templates (YAML + manifest.json) with load_template loader (v0.39.0, +bco v0.40.0, +4 compliance v0.71.35)
121
121
  ui/ - Web UI (FastAPI + HTML/JS SPA)
122
122
 
123
- tests/ - Test suite (314 files, 16283 tests)
123
+ tests/ - Test suite (315 files, 16288 tests)
124
124
  examples/ - Real-world config examples and datasets
125
125
  ```
126
126
 
@@ -52,6 +52,8 @@ Listed by first contribution. PR numbers link the work.
52
52
  - Honor configured vocab expansion in the ORPO / SimPO / GRPO trainers ([#295](https://github.com/MakazhanAlpamys/Soup/pull/295))
53
53
  - **Ekaanksh Patil** ([@Ekaanksh-dev](https://github.com/Ekaanksh-dev))
54
54
  - Batch the PRM reward forward pass in `PRMScorer.__call__` (single `[B, T]` forward) ([#301](https://github.com/MakazhanAlpamys/Soup/pull/301))
55
+ - **Sanjay Santhanam** ([@Sanjays2402](https://github.com/Sanjays2402))
56
+ - Run built-in benchmark gate tasks through `ForgettingDetector` — every `type: benchmark` eval-gate task had always failed ([#315](https://github.com/MakazhanAlpamys/Soup/pull/315))
55
57
 
56
58
  ---
57
59
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soup-cli
3
- Version: 0.71.36
3
+ Version: 0.71.37
4
4
  Summary: Fine-tune and post-train LLMs in one command. No SSH, no config hell.
5
5
  Project-URL: Homepage, https://github.com/MakazhanAlpamys/Soup
6
6
  Project-URL: Repository, https://github.com/MakazhanAlpamys/Soup
@@ -176,7 +176,7 @@ Description-Content-Type: text/markdown
176
176
  Soup turns the pain of LLM fine-tuning into a simple workflow. One config, one command, done.
177
177
 
178
178
  ```bash
179
- pip install 'soup-cli[train]' # add [train] to fine-tune; bare `soup-cli` is the light CLI
179
+ pip install "soup-cli[train]" # add [train] to fine-tune; bare `soup-cli` is the light CLI
180
180
  soup init --template chat
181
181
  soup train
182
182
  ```
@@ -212,7 +212,7 @@ infrastructure instead of improving models. Soup fixes that.
212
212
  separates them. The default is deliberately conservative; see the CHANGELOG.
213
213
  - **Two blocking bugs fixed:** the hardware-fit gate **refused to train any model you merged
214
214
  yourself** (a local checkpoint's name has no size marker, so it guessed 7B and predicted
215
- 16 GB), and every `pip install 'soup-cli[extra]'` hint printed **without the extra** —
215
+ 16 GB), and every `pip install "soup-cli[extra]"` hint printed **without the extra** —
216
216
  17 sites where the suggested command succeeds and leaves the feature still broken.
217
217
 
218
218
  ```bash
@@ -248,11 +248,38 @@ Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://gi
248
248
  ### 1. Install
249
249
 
250
250
  ```bash
251
- pip install soup-cli # light: CLI + config + data tools (no PyTorch)
252
- pip install 'soup-cli[train]' # add the training stack (torch, transformers, peft, trl, …)
253
- pip install git+https://github.com/MakazhanAlpamys/Soup.git # latest dev
251
+ # Light core: CLI + config + data tools, no PyTorch
252
+ pip install soup-cli
253
+
254
+ # Add the training stack (torch, transformers, peft, trl, datasets, …)
255
+ pip install "soup-cli[train]"
256
+
257
+ # Everything (train + serve + ui + data) in one shot
258
+ pip install "soup-cli[all]"
259
+
260
+ # Or from GitHub (latest dev)
261
+ pip install git+https://github.com/MakazhanAlpamys/Soup.git
254
262
  ```
255
263
 
264
+ The full extras table (`fast`, `mlx`, `serve`, `eval`, `ui`, `vision`, `audio`, …) lives in
265
+ [`docs/models.md`](docs/models.md#optional-extras).
266
+
267
+ > **Use double quotes around the extra.** They are the only spelling that works in
268
+ > every shell — `cmd.exe`, PowerShell, bash, and zsh.
269
+ >
270
+ > Older tutorials and videos (including some of ours) show the single-quoted
271
+ > `pip install 'soup-cli[train]'`. That is bash / zsh / PowerShell syntax, and it
272
+ > fails on Windows `cmd.exe`, which has no single-quote quoting and hands the
273
+ > quotes straight to pip:
274
+ >
275
+ > ```
276
+ > ERROR: Invalid requirement: "'soup-cli[train]'": Expected package name at the start of dependency specifier
277
+ > ```
278
+ >
279
+ > If you hit that, swap the `'` for `"` — pip is rejecting a literal quote
280
+ > character, nothing is wrong with the package. (Dropping the quotes entirely
281
+ > works on Windows too, but zsh then reads `[train]` as a glob and fails.)
282
+
256
283
  `soup init`, `soup data …`, and the other data/inspection commands work on the light install.
257
284
  Fine-tuning (`soup train`) needs the `[train]` extra.
258
285
 
@@ -287,7 +314,7 @@ A complete `soup.yaml`:
287
314
  ```yaml
288
315
  base: meta-llama/Llama-3.1-8B-Instruct
289
316
  task: sft
290
- # backend: unsloth # 2-5x faster, pip install 'soup-cli[fast]'
317
+ # backend: unsloth # 2-5x faster, pip install "soup-cli[fast]"
291
318
 
292
319
  data:
293
320
  train: ./data/train.jsonl
@@ -32,7 +32,7 @@
32
32
  Soup turns the pain of LLM fine-tuning into a simple workflow. One config, one command, done.
33
33
 
34
34
  ```bash
35
- pip install 'soup-cli[train]' # add [train] to fine-tune; bare `soup-cli` is the light CLI
35
+ pip install "soup-cli[train]" # add [train] to fine-tune; bare `soup-cli` is the light CLI
36
36
  soup init --template chat
37
37
  soup train
38
38
  ```
@@ -68,7 +68,7 @@ infrastructure instead of improving models. Soup fixes that.
68
68
  separates them. The default is deliberately conservative; see the CHANGELOG.
69
69
  - **Two blocking bugs fixed:** the hardware-fit gate **refused to train any model you merged
70
70
  yourself** (a local checkpoint's name has no size marker, so it guessed 7B and predicted
71
- 16 GB), and every `pip install 'soup-cli[extra]'` hint printed **without the extra** —
71
+ 16 GB), and every `pip install "soup-cli[extra]"` hint printed **without the extra** —
72
72
  17 sites where the suggested command succeeds and leaves the feature still broken.
73
73
 
74
74
  ```bash
@@ -104,11 +104,38 @@ Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://gi
104
104
  ### 1. Install
105
105
 
106
106
  ```bash
107
- pip install soup-cli # light: CLI + config + data tools (no PyTorch)
108
- pip install 'soup-cli[train]' # add the training stack (torch, transformers, peft, trl, …)
109
- pip install git+https://github.com/MakazhanAlpamys/Soup.git # latest dev
107
+ # Light core: CLI + config + data tools, no PyTorch
108
+ pip install soup-cli
109
+
110
+ # Add the training stack (torch, transformers, peft, trl, datasets, …)
111
+ pip install "soup-cli[train]"
112
+
113
+ # Everything (train + serve + ui + data) in one shot
114
+ pip install "soup-cli[all]"
115
+
116
+ # Or from GitHub (latest dev)
117
+ pip install git+https://github.com/MakazhanAlpamys/Soup.git
110
118
  ```
111
119
 
120
+ The full extras table (`fast`, `mlx`, `serve`, `eval`, `ui`, `vision`, `audio`, …) lives in
121
+ [`docs/models.md`](docs/models.md#optional-extras).
122
+
123
+ > **Use double quotes around the extra.** They are the only spelling that works in
124
+ > every shell — `cmd.exe`, PowerShell, bash, and zsh.
125
+ >
126
+ > Older tutorials and videos (including some of ours) show the single-quoted
127
+ > `pip install 'soup-cli[train]'`. That is bash / zsh / PowerShell syntax, and it
128
+ > fails on Windows `cmd.exe`, which has no single-quote quoting and hands the
129
+ > quotes straight to pip:
130
+ >
131
+ > ```
132
+ > ERROR: Invalid requirement: "'soup-cli[train]'": Expected package name at the start of dependency specifier
133
+ > ```
134
+ >
135
+ > If you hit that, swap the `'` for `"` — pip is rejecting a literal quote
136
+ > character, nothing is wrong with the package. (Dropping the quotes entirely
137
+ > works on Windows too, but zsh then reads `[train]` as a glob and fails.)
138
+
112
139
  `soup init`, `soup data …`, and the other data/inspection commands work on the light install.
113
140
  Fine-tuning (`soup train`) needs the `[train]` extra.
114
141
 
@@ -143,7 +170,7 @@ A complete `soup.yaml`:
143
170
  ```yaml
144
171
  base: meta-llama/Llama-3.1-8B-Instruct
145
172
  task: sft
146
- # backend: unsloth # 2-5x faster, pip install 'soup-cli[fast]'
173
+ # backend: unsloth # 2-5x faster, pip install "soup-cli[fast]"
147
174
 
148
175
  data:
149
176
  train: ./data/train.jsonl
@@ -79,7 +79,7 @@ Fine-tune on M1-M4 Macs via Apple's [MLX](https://github.com/ml-explore/mlx) fra
79
79
 
80
80
  ```bash
81
81
  # Install MLX support
82
- pip install 'soup-cli[mlx]'
82
+ pip install "soup-cli[mlx]"
83
83
  ```
84
84
 
85
85
  ```yaml
@@ -108,7 +108,7 @@ Use the [Unsloth](https://github.com/unslothai/unsloth) backend for significantl
108
108
 
109
109
  ```bash
110
110
  # Install unsloth support
111
- pip install 'soup-cli[fast]'
111
+ pip install "soup-cli[fast]"
112
112
  ```
113
113
 
114
114
  Then add one line to your config:
@@ -143,7 +143,7 @@ app from your `soup.yaml` for serverless, per-second-billed GPU training. The co
143
143
  base64-embedded as **data** — no code interpolation, no secrets in the generated stub.
144
144
 
145
145
  ```bash
146
- pip install 'soup-cli[modal]' # only needed for live submit
146
+ pip install "soup-cli[modal]" # only needed for live submit
147
147
 
148
148
  # Plan-only (default): write the stub + print the `modal run` command.
149
149
  soup train --config soup.yaml --cloud modal --gpu a100
@@ -585,7 +585,7 @@ Full-screen Textual dashboard. Two-pane: run list (left) + selected-run detail
585
585
  (right). `r` refreshes, `q` quits.
586
586
 
587
587
  ```bash
588
- pip install 'soup-cli[tui]'
588
+ pip install "soup-cli[tui]"
589
589
  soup tui --refresh 1.0 --limit 50
590
590
  ```
591
591
 
@@ -255,9 +255,9 @@ soup adapters bisect <ckpt>... --eval-command "..." Binary search over training
255
255
  soup lock write --base-sha <h> --dataset-sha <h> --env-hash <h> Write soup.lock (v0.67.0)
256
256
  soup lock write --base-sha <h> --dataset-sha <h> --env-lock soup-env.lock Auto-derive --env-hash from soup-env.lock (v0.71.1)
257
257
  soup lock show / soup lock check Show + drift-check (exit 3 on drift)
258
- soup compile <program.py> --eval <suite> [--optimizer mipro|gepa|textgrad|copro|bootstrap_fewshot] [--plan-only] DSPy / GEPA / TextGrad prompt-program compiler — live (v0.71.13; pip install 'soup-cli[compile]')
258
+ soup compile <program.py> --eval <suite> [--optimizer mipro|gepa|textgrad|copro|bootstrap_fewshot] [--plan-only] DSPy / GEPA / TextGrad prompt-program compiler — live (v0.71.13; pip install "soup-cli[compile]")
259
259
  soup distill-prompt --traces <jsonl> --teacher <m> --student <m> --strategy sft|preference|kl [--provider ollama|anthropic|vllm] [--base-url <url>] [--temperature F] [--max-rows N] Distill prompt-heavy traces via a live teacher (v0.71.13)
260
- soup compile-tools <spec.json|yaml> --eval <jsonl> [--optimizer textgrad|gepa] [--plan-only] TextGrad / GEPA tool-schema optimiser — live (v0.71.13; pip install 'soup-cli[compile]')
260
+ soup compile-tools <spec.json|yaml> --eval <jsonl> [--optimizer textgrad|gepa] [--plan-only] TextGrad / GEPA tool-schema optimiser — live (v0.71.13; pip install "soup-cli[compile]")
261
261
  soup apple-adapter <source-dir> --direction hf-to-mlx|mlx-to-hf|hf-to-apple|mlx-to-apple --output <dir> [--sign] [--plan-only] PEFT LoRA <-> mlx-lm adapter conversion — live (v0.71.21; *-to-apple upstream-gated exit 3)
262
262
  soup local-rl init --db <path> Create personal-LLM flywheel SQLite schema (v0.68.0)
263
263
  soup local-rl status --db <path> Print interactions / thumbs-up / thumbs-down counters
@@ -299,7 +299,7 @@ server over **stdio**, so any MCP client — Claude Code, Cursor, Cline, Continu
299
299
  can drive Soup conversationally. Install the extra first:
300
300
 
301
301
  ```bash
302
- pip install 'soup-cli[mcp]'
302
+ pip install "soup-cli[mcp]"
303
303
  ```
304
304
 
305
305
  Register it with your client. For **Claude Code** (`.mcp.json` in the repo) or
@@ -337,7 +337,7 @@ soup data generate --prompt "..." --validate
337
337
  # Auto-filter by quality (coherence scoring)
338
338
  soup data generate --prompt "..." --filter
339
339
 
340
- # Auto-dedup (MinHash, requires: pip install 'soup-cli[data]')
340
+ # Auto-dedup (MinHash, requires: pip install "soup-cli[data]")
341
341
  soup data generate --prompt "..." --dedup
342
342
 
343
343
  # Full quality pipeline: validate + filter + dedup
@@ -591,7 +591,7 @@ soup data convert ./data/train.jsonl --to sharegpt --output converted.jsonl
591
591
  # Merge multiple datasets
592
592
  soup data merge data1.jsonl data2.jsonl --output merged.jsonl --shuffle
593
593
 
594
- # Remove near-duplicates (requires: pip install 'soup-cli[data]')
594
+ # Remove near-duplicates (requires: pip install "soup-cli[data]")
595
595
  soup data dedup ./data/train.jsonl --threshold 0.8
596
596
 
597
597
  # Extended statistics (length distribution, token counts, languages)
@@ -814,7 +814,7 @@ Five checks: `length_bias` — the **#1 silent DPO degradation**: `chosen`
814
814
  systematically longer than `rejected`, reported as a Cohen's d effect size —
815
815
  `label_imbalance` (KTO desirable:undesirable ratio), `near_duplicates`
816
816
  (MinHash/LSH, reuses the `soup data dedup` kernel; requires
817
- `pip install 'soup-cli[data]'`, degrades to an advisory skip otherwise),
817
+ `pip install "soup-cli[data]"`, degrades to an advisory skip otherwise),
818
818
  `identical_pairs` (`chosen == rejected` — zero preference signal), and
819
819
  `prompt_leak` (the prompt echoed verbatim inside the completion, a common
820
820
  synthetic-data pipeline bug). Same OK/MINOR/MAJOR taxonomy and exit codes as
@@ -432,7 +432,7 @@ Full-featured evaluation platform with standard benchmarks, custom evals, LLM-as
432
432
 
433
433
  ```bash
434
434
  # Install eval dependencies
435
- pip install 'soup-cli[eval]'
435
+ pip install "soup-cli[eval]"
436
436
 
437
437
  # Standard benchmarks (wraps lm-evaluation-harness)
438
438
  soup eval benchmark --model ./output --benchmarks mmlu,gsm8k,hellaswag
@@ -70,29 +70,29 @@ no PyTorch. Add `[train]` to fine-tune, or install other extras only when you ne
70
70
 
71
71
  | Extra | Install | What it adds |
72
72
  |---|---|---|
73
- | `train` | `pip install 'soup-cli[train]'` | Training stack: torch, transformers, peft, trl, datasets, bitsandbytes, accelerate |
74
- | `all` | `pip install 'soup-cli[all]'` | `train` + `serve` + `ui` + `data` in one shot |
75
- | `fast` | `pip install 'soup-cli[fast]'` | Unsloth backend (2-5x faster, lower VRAM) |
76
- | `vision` | `pip install 'soup-cli[vision]'` | Vision / multimodal fine-tuning (Pillow) |
77
- | `audio` | `pip install 'soup-cli[audio]'` | Audio / speech fine-tuning (librosa, soundfile) |
78
- | `mlx` | `pip install 'soup-cli[mlx]'` | Apple Silicon backend (mlx, mlx-lm) |
79
- | `qat` | `pip install 'soup-cli[qat]'` | Quantization-Aware Training (torchao) |
80
- | `serve` | `pip install 'soup-cli[serve]'` | Inference server (FastAPI + uvicorn) |
81
- | `serve-fast` | `pip install 'soup-cli[serve-fast]'` | vLLM inference backend (2-4x throughput) |
82
- | `sglang` | `pip install 'soup-cli[sglang]'` | SGLang inference backend |
83
- | `ui` | `pip install 'soup-cli[ui]'` | Web UI + inference server |
84
- | `tui` | `pip install 'soup-cli[tui]'` | Full-screen Textual dashboard (`soup tui`) |
85
- | `eval` | `pip install 'soup-cli[eval]'` | Benchmark evaluation (lm-evaluation-harness) |
86
- | `data` | `pip install 'soup-cli[data]'` | Deduplication (MinHash via datasketch) |
87
- | `data-pro` | `pip install 'soup-cli[data-pro]'` | Language detection + PII (langdetect, presidio) |
88
- | `deepspeed` | `pip install 'soup-cli[deepspeed]'` | Multi-GPU training (DeepSpeed ZeRO) |
89
- | `liger` | `pip install 'soup-cli[liger]'` | Liger Kernel fused ops |
90
- | `ring-attn` | `pip install 'soup-cli[ring-attn]'` | Ring FlashAttention (sequence parallelism) |
91
- | `onnx` / `tensorrt` | `pip install 'soup-cli[onnx]'` | ONNX / TensorRT-LLM export |
92
- | `awq` / `gptq` | `pip install 'soup-cli[awq]'` | AWQ / GPTQ quantized export |
93
- | `trackers` | `pip install 'soup-cli[trackers]'` | MLflow / SwanLab / Trackio logging |
94
- | `remote` | `pip install 'soup-cli[remote]'` | Remote datasets (s3 / gs / az / oci) |
95
- | `dev` | `pip install 'soup-cli[dev]'` | Tests + lint + types (pytest, ruff, mypy, pre-commit) |
73
+ | `train` | `pip install "soup-cli[train]"` | Training stack: torch, transformers, peft, trl, datasets, bitsandbytes, accelerate |
74
+ | `all` | `pip install "soup-cli[all]"` | `train` + `serve` + `ui` + `data` in one shot |
75
+ | `fast` | `pip install "soup-cli[fast]"` | Unsloth backend (2-5x faster, lower VRAM) |
76
+ | `vision` | `pip install "soup-cli[vision]"` | Vision / multimodal fine-tuning (Pillow) |
77
+ | `audio` | `pip install "soup-cli[audio]"` | Audio / speech fine-tuning (librosa, soundfile) |
78
+ | `mlx` | `pip install "soup-cli[mlx]"` | Apple Silicon backend (mlx, mlx-lm) |
79
+ | `qat` | `pip install "soup-cli[qat]"` | Quantization-Aware Training (torchao) |
80
+ | `serve` | `pip install "soup-cli[serve]"` | Inference server (FastAPI + uvicorn) |
81
+ | `serve-fast` | `pip install "soup-cli[serve-fast]"` | vLLM inference backend (2-4x throughput) |
82
+ | `sglang` | `pip install "soup-cli[sglang]"` | SGLang inference backend |
83
+ | `ui` | `pip install "soup-cli[ui]"` | Web UI + inference server |
84
+ | `tui` | `pip install "soup-cli[tui]"` | Full-screen Textual dashboard (`soup tui`) |
85
+ | `eval` | `pip install "soup-cli[eval]"` | Benchmark evaluation (lm-evaluation-harness) |
86
+ | `data` | `pip install "soup-cli[data]"` | Deduplication (MinHash via datasketch) |
87
+ | `data-pro` | `pip install "soup-cli[data-pro]"` | Language detection + PII (langdetect, presidio) |
88
+ | `deepspeed` | `pip install "soup-cli[deepspeed]"` | Multi-GPU training (DeepSpeed ZeRO) |
89
+ | `liger` | `pip install "soup-cli[liger]"` | Liger Kernel fused ops |
90
+ | `ring-attn` | `pip install "soup-cli[ring-attn]"` | Ring FlashAttention (sequence parallelism) |
91
+ | `onnx` / `tensorrt` | `pip install "soup-cli[onnx]"` | ONNX / TensorRT-LLM export |
92
+ | `awq` / `gptq` | `pip install "soup-cli[awq]"` | AWQ / GPTQ quantized export |
93
+ | `trackers` | `pip install "soup-cli[trackers]"` | MLflow / SwanLab / Trackio logging |
94
+ | `remote` | `pip install "soup-cli[remote]"` | Remote datasets (s3 / gs / az / oci) |
95
+ | `dev` | `pip install "soup-cli[dev]"` | Tests + lint + types (pytest, ruff, mypy, pre-commit) |
96
96
 
97
97
  The complete, authoritative extras list is in [`pyproject.toml`](../pyproject.toml).
98
98
 
@@ -36,7 +36,7 @@ Train with simulated quantization for significantly better post-quantization qua
36
36
 
37
37
  ```bash
38
38
  # Install QAT support
39
- pip install 'soup-cli[qat]'
39
+ pip install "soup-cli[qat]"
40
40
  ```
41
41
 
42
42
  ```yaml
@@ -71,7 +71,7 @@ QAT works with all training tasks (SFT, DPO, GRPO, PPO, KTO, ORPO, SimPO, IPO, P
71
71
  For H100 / H200 / B100 / B200 GPUs, train with float8 matmuls for ~2x speedup vs bf16 at comparable quality. This extends QAT infrastructure via `torchao.float8`:
72
72
 
73
73
  ```bash
74
- pip install 'soup-cli[qat]' # torchao >= 0.5.0 includes torchao.float8
74
+ pip install "soup-cli[qat]" # torchao >= 0.5.0 includes torchao.float8
75
75
  ```
76
76
 
77
77
  ```yaml
@@ -106,7 +106,7 @@ Bool `true` stays on the int8 QAT path for backward compatibility. FP8 requires
106
106
  Models with 128k+ vocabularies (Llama 3.1, Qwen2) materialise a huge `(batch, seq, vocab)` logits tensor that dominates VRAM. Cut Cross-Entropy computes the loss in chunks instead:
107
107
 
108
108
  ```bash
109
- pip install 'soup-cli[cce]' # or: pip install cut-cross-entropy
109
+ pip install "soup-cli[cce]" # or: pip install cut-cross-entropy
110
110
  ```
111
111
 
112
112
  ```yaml
@@ -368,9 +368,9 @@ data:
368
368
  Install optional performance packages:
369
369
 
370
370
  ```bash
371
- pip install 'soup-cli[liger]' # Liger Kernel fused operations
371
+ pip install "soup-cli[liger]" # Liger Kernel fused operations
372
372
  pip install flash-attn --no-build-isolation # FlashAttention
373
- pip install 'soup-cli[ring-attn]' # Ring FlashAttention (sequence parallelism)
373
+ pip install "soup-cli[ring-attn]" # Ring FlashAttention (sequence parallelism)
374
374
  ```
375
375
 
376
376
 
@@ -97,7 +97,7 @@ Linux/macOS need only a C++ toolchain + CMake. CUDA llama.cpp builds are unteste
97
97
  Export models to ONNX format for use with [ONNX Runtime](https://onnxruntime.ai/):
98
98
 
99
99
  ```bash
100
- pip install 'soup-cli[onnx]'
100
+ pip install "soup-cli[onnx]"
101
101
  soup export --model ./output --format onnx
102
102
  soup export --model ./output --format onnx --output ./model_onnx
103
103
  ```
@@ -107,7 +107,7 @@ soup export --model ./output --format onnx --output ./model_onnx
107
107
  Export models to TensorRT-LLM format for high-throughput GPU inference:
108
108
 
109
109
  ```bash
110
- pip install 'soup-cli[tensorrt]'
110
+ pip install "soup-cli[tensorrt]"
111
111
  soup export --model ./output --format tensorrt
112
112
  soup export --model ./output --format tensorrt --output ./model_trt
113
113
  ```
@@ -212,7 +212,7 @@ Start a local OpenAI-compatible inference server:
212
212
 
213
213
  ```bash
214
214
  # Install server dependencies
215
- pip install 'soup-cli[serve]'
215
+ pip install "soup-cli[serve]"
216
216
 
217
217
  # Start server
218
218
  soup serve --model ./output --port 8000
@@ -253,7 +253,7 @@ Use [vLLM](https://github.com/vllm-project/vllm) for significantly better throug
253
253
 
254
254
  ```bash
255
255
  # Install vLLM support
256
- pip install 'soup-cli[serve-fast]'
256
+ pip install "soup-cli[serve-fast]"
257
257
 
258
258
  # Start with vLLM backend
259
259
  soup serve --model ./output --backend vllm
@@ -273,7 +273,7 @@ Use [SGLang](https://github.com/sgl-project/sglang) as an alternative high-throu
273
273
 
274
274
  ```bash
275
275
  # Install SGLang support
276
- pip install 'soup-cli[sglang]'
276
+ pip install "soup-cli[sglang]"
277
277
 
278
278
  # Start with SGLang backend
279
279
  soup serve --model ./output --backend sglang
@@ -482,7 +482,7 @@ The OTLP endpoint is SSRF-hardened: only http/https schemes, plain HTTP only for
482
482
  Launch a local web interface to manage experiments, start training, explore data, and chat with models — all from your browser.
483
483
 
484
484
  ```bash
485
- pip install 'soup-cli[ui]'
485
+ pip install "soup-cli[ui]"
486
486
  soup ui
487
487
  # -> opens http://127.0.0.1:7860 in your browser
488
488
  # -> prints auth token to console
@@ -531,7 +531,7 @@ Fine-tune vision-language models (LLaMA-3.2-Vision, Qwen2-VL, Pixtral) on image+
531
531
 
532
532
  ```bash
533
533
  # Install vision support
534
- pip install 'soup-cli[vision]'
534
+ pip install "soup-cli[vision]"
535
535
 
536
536
  # Create a vision config
537
537
  soup init --template vision
@@ -581,7 +581,7 @@ Fine-tune audio-language models (Qwen2-Audio, Whisper) on audio+text data:
581
581
 
582
582
  ```bash
583
583
  # Install audio support
584
- pip install 'soup-cli[audio]'
584
+ pip install "soup-cli[audio]"
585
585
 
586
586
  # Create an audio config
587
587
  soup init --template audio
@@ -137,7 +137,7 @@ soup train
137
137
  - Uses RoPE scaling (dynamic) to extend context to 128k tokens
138
138
  - Enables gradient checkpointing and FlashAttention for memory efficiency
139
139
  - Supports `linear`, `dynamic`, `yarn`, `longrope` scaling types
140
- - Optional Liger Kernel for fused ops: `pip install 'soup-cli[liger]'`
140
+ - Optional Liger Kernel for fused ops: `pip install "soup-cli[liger]"`
141
141
 
142
142
  ### 9. Embedding Model Fine-Tuning
143
143
 
@@ -159,7 +159,7 @@ soup train
159
159
  Fine-tune audio-language models (Qwen2-Audio, Whisper):
160
160
 
161
161
  ```bash
162
- pip install 'soup-cli[audio]'
162
+ pip install "soup-cli[audio]"
163
163
  soup init --template audio
164
164
  soup train
165
165
  ```
@@ -301,7 +301,7 @@ quantization: int8 # Reduces memory by 4x
301
301
  Unsloth is 2-5x faster training:
302
302
 
303
303
  ```bash
304
- pip install 'soup-cli[fast]'
304
+ pip install "soup-cli[fast]"
305
305
  ```
306
306
 
307
307
  Then in your config:
@@ -7,7 +7,7 @@
7
7
 
8
8
  base: meta-llama/Llama-3.1-8B-Instruct
9
9
  task: dpo
10
- # backend: unsloth # 2-5x faster, pip install 'soup-cli[fast]'
10
+ # backend: unsloth # 2-5x faster, pip install "soup-cli[fast]"
11
11
 
12
12
  data:
13
13
  train: examples/data/dpo_sample.jsonl
@@ -32,7 +32,7 @@ training:
32
32
  # gradient_checkpointing: true # Save memory on long sequences
33
33
  # packing: true # Pack short samples for faster training
34
34
  # use_flash_attn: true # FlashAttention for faster attention
35
- # use_liger: true # Liger Kernel fused ops, pip install 'soup-cli[liger]'
35
+ # use_liger: true # Liger Kernel fused ops, pip install "soup-cli[liger]"
36
36
  lora:
37
37
  r: 16
38
38
  alpha: 32
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "soup-cli"
7
- version = "0.71.36"
7
+ version = "0.71.37"
8
8
  description = "Fine-tune and post-train LLMs in one command. No SSH, no config hell."
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -1,3 +1,3 @@
1
1
  """Soup CLI — Fine-tune and post-train LLMs in one command."""
2
2
 
3
- __version__ = "0.71.36"
3
+ __version__ = "0.71.37"
@@ -280,7 +280,7 @@ def submit_modal_run(plan: CloudPlan, *, env: Optional[Mapping] = None) -> int:
280
280
  import modal # noqa: F401 — presence check only
281
281
  except ImportError as exc:
282
282
  raise RuntimeError(
283
- "Modal SDK not installed. Run `pip install 'soup-cli[modal]'`."
283
+ "Modal SDK not installed. Run `pip install \"soup-cli[modal]\"`."
284
284
  ) from exc
285
285
  import subprocess
286
286
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Renders a ``CompilePlan`` panel and, when ``--plan-only`` is omitted, runs
4
4
  the live optimizer (v0.71.13 #225). A missing optimizer library surfaces a
5
- friendly exit-2 advisory naming ``pip install 'soup-cli[compile]'``.
5
+ friendly exit-2 advisory naming ``pip install "soup-cli[compile]"``.
6
6
  """
7
7
 
8
8
  from __future__ import annotations
@@ -264,9 +264,11 @@ def _semantic_dedup(
264
264
  console.print(
265
265
  "[red]Semantic dedup needs PyTorch + transformers.[/]\n"
266
266
  # \[train] is escaped: Rich would otherwise eat the bracket as a
267
- # markup tag and print `pip install 'soup-cli'` -- a command that
267
+ # markup tag and print `pip install "soup-cli"` -- a command that
268
268
  # installs the package WITHOUT the extra the user is missing.
269
- "Install with: [bold]pip install 'soup-cli\\[train]'[/]"
269
+ # Double quotes, not single: cmd.exe cannot strip `'` and pip then
270
+ # rejects the requirement outright.
271
+ "Install with: [bold]pip install \"soup-cli\\[train]\"[/]"
270
272
  )
271
273
  raise typer.Exit(1)
272
274
  except (ValueError, TypeError) as exc:
@@ -358,7 +360,7 @@ def dedup(
358
360
  except ImportError:
359
361
  console.print(
360
362
  "[red]datasketch not installed.[/]\n"
361
- "Install with: [bold]pip install 'soup-cli\\[data]'[/]"
363
+ "Install with: [bold]pip install \"soup-cli\\[data]\"[/]"
362
364
  )
363
365
  raise typer.Exit(1)
364
366
 
@@ -191,7 +191,7 @@ def check(
191
191
  "[red]soup data canary check needs PyTorch + transformers.[/]\n"
192
192
  # \[train] escaped: Rich would eat the bracket and print a
193
193
  # command that installs WITHOUT the extra.
194
- "Install with: [bold]pip install 'soup-cli\\[train]'[/]"
194
+ "Install with: [bold]pip install \"soup-cli\\[train]\"[/]"
195
195
  )
196
196
  raise typer.Exit(1)
197
197
  except (ValueError, OSError, RuntimeError) as exc:
@@ -117,7 +117,7 @@ def topics(
117
117
  "[red]soup data topics needs PyTorch + transformers.[/]\n"
118
118
  # \[train] escaped: Rich would eat the bracket and print a
119
119
  # command that installs WITHOUT the extra.
120
- "Install with: [bold]pip install 'soup-cli\\[train]'[/]"
120
+ "Install with: [bold]pip install \"soup-cli\\[train]\"[/]"
121
121
  )
122
122
  raise typer.Exit(1)
123
123
  except (ValueError, TypeError) as exc:
@@ -108,7 +108,7 @@ def benchmark(
108
108
  except ImportError:
109
109
  console.print(
110
110
  "[red]lm-eval not installed.[/]\n"
111
- "Install with: [bold]pip install 'soup-cli\\[eval]'[/]"
111
+ "Install with: [bold]pip install \"soup-cli\\[eval]\"[/]"
112
112
  )
113
113
  raise typer.Exit(1)
114
114