soup-cli 0.71.28__tar.gz → 0.71.29__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 (854) hide show
  1. {soup_cli-0.71.28 → soup_cli-0.71.29}/CHANGELOG.md +29 -0
  2. {soup_cli-0.71.28 → soup_cli-0.71.29}/CONTRIBUTING.md +2 -2
  3. {soup_cli-0.71.28 → soup_cli-0.71.29}/PKG-INFO +17 -20
  4. {soup_cli-0.71.28 → soup_cli-0.71.29}/README.md +16 -19
  5. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/commands.md +3 -0
  6. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/peft-and-efficiency.md +51 -0
  7. soup_cli-0.71.29/docs/superpowers/plans/2026-07-05-soup-shrink-depth-prune.md +607 -0
  8. soup_cli-0.71.29/docs/superpowers/specs/2026-07-05-soup-shrink-depth-prune-design.md +218 -0
  9. {soup_cli-0.71.28 → soup_cli-0.71.29}/pyproject.toml +1 -1
  10. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/__init__.py +1 -1
  11. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cli.py +11 -0
  12. soup_cli-0.71.29/src/soup_cli/commands/shrink.py +656 -0
  13. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/registry/store.py +2 -0
  14. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/live_eval.py +9 -2
  15. soup_cli-0.71.29/src/soup_cli/utils/shrink.py +341 -0
  16. soup_cli-0.71.29/tests/test_v07129.py +1267 -0
  17. {soup_cli-0.71.28 → soup_cli-0.71.29}/.dockerignore +0 -0
  18. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/FUNDING.yml +0 -0
  19. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  20. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  21. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  22. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/pull_request_template.md +0 -0
  23. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/workflows/ci.yml +0 -0
  24. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/workflows/docker.yml +0 -0
  25. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/workflows/publish.yml +0 -0
  26. {soup_cli-0.71.28 → soup_cli-0.71.29}/.github/workflows/recipe-validation.yml +0 -0
  27. {soup_cli-0.71.28 → soup_cli-0.71.29}/.gitignore +0 -0
  28. {soup_cli-0.71.28 → soup_cli-0.71.29}/.mailmap +0 -0
  29. {soup_cli-0.71.28 → soup_cli-0.71.29}/.pre-commit-config.yaml +0 -0
  30. {soup_cli-0.71.28 → soup_cli-0.71.29}/AGENTS.md +0 -0
  31. {soup_cli-0.71.28 → soup_cli-0.71.29}/CODEOWNERS +0 -0
  32. {soup_cli-0.71.28 → soup_cli-0.71.29}/CODE_OF_CONDUCT.md +0 -0
  33. {soup_cli-0.71.28 → soup_cli-0.71.29}/CONTRIBUTORS.md +0 -0
  34. {soup_cli-0.71.28 → soup_cli-0.71.29}/Dockerfile +0 -0
  35. {soup_cli-0.71.28 → soup_cli-0.71.29}/LICENSE +0 -0
  36. {soup_cli-0.71.28 → soup_cli-0.71.29}/NOTICE +0 -0
  37. {soup_cli-0.71.28 → soup_cli-0.71.29}/SECURITY.md +0 -0
  38. {soup_cli-0.71.28 → soup_cli-0.71.29}/docker-compose.yml +0 -0
  39. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/README.md +0 -0
  40. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/adapters-and-governance.md +0 -0
  41. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/backends-and-ops.md +0 -0
  42. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/data.md +0 -0
  43. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/evaluation.md +0 -0
  44. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/models.md +0 -0
  45. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/performance-and-quantization.md +0 -0
  46. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/serving-and-export.md +0 -0
  47. {soup_cli-0.71.28 → soup_cli-0.71.29}/docs/training.md +0 -0
  48. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/README.md +0 -0
  49. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/dpo_chat.yaml +0 -0
  50. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/dpo_example.yaml +0 -0
  51. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/grpo_reasoning.yaml +0 -0
  52. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/rlhf_step1_sft.yaml +0 -0
  53. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/rlhf_step2_reward.yaml +0 -0
  54. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/rlhf_step3_ppo.yaml +0 -0
  55. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/sft_basic.yaml +0 -0
  56. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/configs/vision_llama.yaml +0 -0
  57. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/data/alpaca_tiny.jsonl +0 -0
  58. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/data/chat_preferences.jsonl +0 -0
  59. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/data/dpo_sample.jsonl +0 -0
  60. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/data/reasoning_math.jsonl +0 -0
  61. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/reward_hacking/rewards.py +0 -0
  62. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/synthetic_workflow.md +0 -0
  63. {soup_cli-0.71.28 → soup_cli-0.71.29}/examples/synthetic_workflow.yaml +0 -0
  64. {soup_cli-0.71.28 → soup_cli-0.71.29}/soup.png +0 -0
  65. {soup_cli-0.71.28 → soup_cli-0.71.29}/soup_logo_svg.svg +0 -0
  66. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/__main__.py +0 -0
  67. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/autopilot/__init__.py +0 -0
  68. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/autopilot/analyzer.py +0 -0
  69. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/autopilot/decisions.py +0 -0
  70. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/autopilot/generate_config.py +0 -0
  71. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/__init__.py +0 -0
  72. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/pack.py +0 -0
  73. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/publish.py +0 -0
  74. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/run.py +0 -0
  75. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/schema.py +0 -0
  76. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/unpack.py +0 -0
  77. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cans/verify.py +0 -0
  78. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cloud/__init__.py +0 -0
  79. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/cloud/modal.py +0 -0
  80. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/__init__.py +0 -0
  81. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v0550.py +0 -0
  82. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v0610.py +0 -0
  83. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v0650.py +0 -0
  84. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v07110.py +0 -0
  85. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/_webhook_cli.py +0 -0
  86. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/ab.py +0 -0
  87. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/active_sample.py +0 -0
  88. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/adapters.py +0 -0
  89. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/advise.py +0 -0
  90. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/agent.py +0 -0
  91. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/airgap.py +0 -0
  92. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/apple_adapter.py +0 -0
  93. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/attest.py +0 -0
  94. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/audit_log.py +0 -0
  95. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/autopilot.py +0 -0
  96. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/bench.py +0 -0
  97. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/bom.py +0 -0
  98. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/build.py +0 -0
  99. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/can.py +0 -0
  100. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/chat.py +0 -0
  101. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/compile_cmd.py +0 -0
  102. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/compile_tools.py +0 -0
  103. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/completions.py +0 -0
  104. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/cost.py +0 -0
  105. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/data.py +0 -0
  106. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/data_doctor.py +0 -0
  107. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/data_forge.py +0 -0
  108. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/data_mix.py +0 -0
  109. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/data_score.py +0 -0
  110. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/delinearize_llama4.py +0 -0
  111. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/deploy.py +0 -0
  112. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/diagnose.py +0 -0
  113. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/diff.py +0 -0
  114. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/distill_prompt.py +0 -0
  115. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/doctor.py +0 -0
  116. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/drift_alarm.py +0 -0
  117. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/edit.py +0 -0
  118. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/env.py +0 -0
  119. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/eval.py +0 -0
  120. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/expect.py +0 -0
  121. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/export.py +0 -0
  122. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/fetch.py +0 -0
  123. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/generate.py +0 -0
  124. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/history.py +0 -0
  125. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/infer.py +0 -0
  126. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/ingest.py +0 -0
  127. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/init.py +0 -0
  128. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/iterative_dpo.py +0 -0
  129. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/license_advisor.py +0 -0
  130. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/llama.py +0 -0
  131. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/local_rl.py +0 -0
  132. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/lock.py +0 -0
  133. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/loop.py +0 -0
  134. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/mcp.py +0 -0
  135. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/merge.py +0 -0
  136. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
  137. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/migrate.py +0 -0
  138. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/monitor.py +0 -0
  139. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/plan.py +0 -0
  140. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/plugins.py +0 -0
  141. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/probe.py +0 -0
  142. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/profile.py +0 -0
  143. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/prune_prompt.py +0 -0
  144. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/push.py +0 -0
  145. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/quantize.py +0 -0
  146. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/quickstart.py +0 -0
  147. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/ra_dit.py +0 -0
  148. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/recipes.py +0 -0
  149. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/registry.py +0 -0
  150. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/runs.py +0 -0
  151. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/serve.py +0 -0
  152. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/ship.py +0 -0
  153. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/spectrum.py +0 -0
  154. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/steer.py +0 -0
  155. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/sweep.py +0 -0
  156. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/tokenizer.py +0 -0
  157. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/train.py +0 -0
  158. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/tui.py +0 -0
  159. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/tunability.py +0 -0
  160. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/ui.py +0 -0
  161. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/commands/why.py +0 -0
  162. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/config/__init__.py +0 -0
  163. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/config/loader.py +0 -0
  164. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/config/schema.py +0 -0
  165. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/__init__.py +0 -0
  166. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
  167. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
  168. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
  169. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
  170. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
  171. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
  172. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
  173. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
  174. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
  175. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
  176. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
  177. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
  178. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/augment.py +0 -0
  179. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/chat_templates.py +0 -0
  180. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/collators.py +0 -0
  181. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/formats.py +0 -0
  182. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/loader.py +0 -0
  183. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/loss_mask.py +0 -0
  184. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/providers/__init__.py +0 -0
  185. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/providers/_utils.py +0 -0
  186. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/providers/anthropic.py +0 -0
  187. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/providers/ollama.py +0 -0
  188. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/providers/vllm.py +0 -0
  189. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/sft_format.py +0 -0
  190. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/__init__.py +0 -0
  191. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/code.py +0 -0
  192. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/conversation.py +0 -0
  193. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/preference.py +0 -0
  194. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/qa.py +0 -0
  195. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/reasoning.py +0 -0
  196. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/tool_calling.py +0 -0
  197. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/templates/verifiable.py +0 -0
  198. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/traces/__init__.py +0 -0
  199. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/traces/pair_builder.py +0 -0
  200. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/traces/parsers.py +0 -0
  201. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/traces/quality.py +0 -0
  202. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/data/validator.py +0 -0
  203. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/__init__.py +0 -0
  204. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/arena.py +0 -0
  205. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
  206. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/calibrate.py +0 -0
  207. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
  208. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/custom.py +0 -0
  209. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/forgetting.py +0 -0
  210. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/gate.py +0 -0
  211. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/human.py +0 -0
  212. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/judge.py +0 -0
  213. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/leaderboard.py +0 -0
  214. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/eval/quant_check.py +0 -0
  215. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/experiment/__init__.py +0 -0
  216. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/experiment/tracker.py +0 -0
  217. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/mcp_server/__init__.py +0 -0
  218. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/mcp_server/registry.py +0 -0
  219. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/mcp_server/server.py +0 -0
  220. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/migrate/__init__.py +0 -0
  221. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/migrate/axolotl.py +0 -0
  222. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/migrate/common.py +0 -0
  223. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/migrate/llamafactory.py +0 -0
  224. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/migrate/unsloth.py +0 -0
  225. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/__init__.py +0 -0
  226. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/callback.py +0 -0
  227. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
  228. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/display.py +0 -0
  229. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
  230. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/hf_push.py +0 -0
  231. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/plugin_callback.py +0 -0
  232. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/monitoring/trace_logger.py +0 -0
  233. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/plugins/__init__.py +0 -0
  234. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/py.typed +0 -0
  235. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/recipes/__init__.py +0 -0
  236. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/recipes/catalog.py +0 -0
  237. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/registry/__init__.py +0 -0
  238. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/registry/attach.py +0 -0
  239. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/registry/diff.py +0 -0
  240. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/registry/hashing.py +0 -0
  241. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/__init__.py +0 -0
  242. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/audio.yaml +0 -0
  243. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/bco.yaml +0 -0
  244. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/chat.yaml +0 -0
  245. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/code.yaml +0 -0
  246. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/embedding.yaml +0 -0
  247. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
  248. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
  249. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
  250. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/ipo.yaml +0 -0
  251. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/kto.yaml +0 -0
  252. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/longcontext.yaml +0 -0
  253. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/manifest.json +0 -0
  254. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/medical.yaml +0 -0
  255. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/moe.yaml +0 -0
  256. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/orpo.yaml +0 -0
  257. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/pretrain.yaml +0 -0
  258. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/reasoning.yaml +0 -0
  259. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/rlhf.yaml +0 -0
  260. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/simpo.yaml +0 -0
  261. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/tool-calling.yaml +0 -0
  262. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/templates/vision.yaml +0 -0
  263. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/__init__.py +0 -0
  264. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/bco.py +0 -0
  265. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/bitnet.py +0 -0
  266. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/classifier.py +0 -0
  267. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/distill.py +0 -0
  268. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/dpo.py +0 -0
  269. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/embedding.py +0 -0
  270. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/grpo.py +0 -0
  271. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/ipo.py +0 -0
  272. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/kto.py +0 -0
  273. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_dpo.py +0 -0
  274. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_grpo.py +0 -0
  275. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_routing.py +0 -0
  276. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_sft.py +0 -0
  277. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/mole_routing.py +0 -0
  278. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/orpo.py +0 -0
  279. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/ppo.py +0 -0
  280. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/preference.py +0 -0
  281. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/pretrain.py +0 -0
  282. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/prm.py +0 -0
  283. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/raft.py +0 -0
  284. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/reward_model.py +0 -0
  285. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/rewards.py +0 -0
  286. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/sft.py +0 -0
  287. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/simpo.py +0 -0
  288. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/tts.py +0 -0
  289. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/trainer/unlearn.py +0 -0
  290. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/tui_app.py +0 -0
  291. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/__init__.py +0 -0
  292. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/app.py +0 -0
  293. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/plugins/__init__.py +0 -0
  294. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/static/app.js +0 -0
  295. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/static/index.html +0 -0
  296. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/static/logo.png +0 -0
  297. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/static/logo.svg +0 -0
  298. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/ui/static/style.css +0 -0
  299. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/__init__.py +0 -0
  300. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/_eval_text.py +0 -0
  301. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ab_test.py +0 -0
  302. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/activation_offload.py +0 -0
  303. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/active_sampler.py +0 -0
  304. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_bisect.py +0 -0
  305. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_branch.py +0 -0
  306. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_diff.py +0 -0
  307. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_merge.py +0 -0
  308. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_pr.py +0 -0
  309. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_scan.py +0 -0
  310. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_sign.py +0 -0
  311. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/advanced_precision.py +0 -0
  312. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/advise.py +0 -0
  313. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/advise_history.py +0 -0
  314. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/agent_forge.py +0 -0
  315. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/agent_rollout.py +0 -0
  316. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/agent_sandbox.py +0 -0
  317. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/airgap_bundle.py +0 -0
  318. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/annex_xi.py +0 -0
  319. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/anthropic_messages.py +0 -0
  320. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/apple_adapter.py +0 -0
  321. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/attest.py +0 -0
  322. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/audit_log.py +0 -0
  323. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/auto_quant.py +0 -0
  324. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/backend_detect.py +0 -0
  325. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/batch_probe.py +0 -0
  326. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/behavior_battery.py +0 -0
  327. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/bitnet.py +0 -0
  328. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/blame.py +0 -0
  329. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/block_expansion.py +0 -0
  330. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/bom.py +0 -0
  331. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/brain_rot.py +0 -0
  332. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/brain_rot_lang.py +0 -0
  333. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/build_dag.py +0 -0
  334. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/canary_discovery.py +0 -0
  335. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/canary_router.py +0 -0
  336. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/capability_suite.py +0 -0
  337. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/checklist_dsl.py +0 -0
  338. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
  339. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/citation_faithful.py +0 -0
  340. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/classifier.py +0 -0
  341. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/cmaes_merge.py +0 -0
  342. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/compile_tools.py +0 -0
  343. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/completions.py +0 -0
  344. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/constants.py +0 -0
  345. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/convergence.py +0 -0
  346. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/crash.py +0 -0
  347. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/cross_doc_attn.py +0 -0
  348. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/curriculum.py +0 -0
  349. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
  350. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/cut_ce.py +0 -0
  351. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/data_doctor.py +0 -0
  352. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/data_forge.py +0 -0
  353. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/data_lint.py +0 -0
  354. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/data_mix.py +0 -0
  355. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/data_pipeline.py +0 -0
  356. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/data_score.py +0 -0
  357. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/deepspeed.py +0 -0
  358. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/delinearize_llama4.py +0 -0
  359. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/demo_bundles.py +0 -0
  360. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/deploy_autopilot.py +0 -0
  361. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/deploy_measure.py +0 -0
  362. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/__init__.py +0 -0
  363. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/_common.py +0 -0
  364. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/badge.py +0 -0
  365. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/citation.py +0 -0
  366. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/contamination.py +0 -0
  367. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
  368. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/format.py +0 -0
  369. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/live.py +0 -0
  370. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/memorization.py +0 -0
  371. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
  372. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/refusal.py +0 -0
  373. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/report.py +0 -0
  374. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/runner.py +0 -0
  375. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/distill.py +0 -0
  376. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/dpo_variants.py +0 -0
  377. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/drift_alarm.py +0 -0
  378. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ebft_gdpo.py +0 -0
  379. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/echo_trap.py +0 -0
  380. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/edit_diff.py +0 -0
  381. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/edit_governor.py +0 -0
  382. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/edit_kernels.py +0 -0
  383. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/encoding.py +0 -0
  384. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/energy.py +0 -0
  385. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/env_lock.py +0 -0
  386. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/errors.py +0 -0
  387. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/eval_design.py +0 -0
  388. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/eval_gate_hook.py +0 -0
  389. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
  390. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/expectations.py +0 -0
  391. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/fetch_examples.py +0 -0
  392. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/flash_attn.py +0 -0
  393. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/fp8.py +0 -0
  394. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/freeze.py +0 -0
  395. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/fsdp.py +0 -0
  396. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
  397. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/galore.py +0 -0
  398. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/gguf_quant.py +0 -0
  399. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/gpu.py +0 -0
  400. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/gpu_monitor.py +0 -0
  401. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/grace_codebook.py +0 -0
  402. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/graceful_save.py +0 -0
  403. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/grad_accum.py +0 -0
  404. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/gradient_ckpt.py +0 -0
  405. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/grpo_long_context.py +0 -0
  406. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/grpo_variants.py +0 -0
  407. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/hardware_fit.py +0 -0
  408. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/harm_probe.py +0 -0
  409. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/hf.py +0 -0
  410. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/hf_space.py +0 -0
  411. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/hubs.py +0 -0
  412. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ingest_sources.py +0 -0
  413. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/integrations.py +0 -0
  414. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/interference.py +0 -0
  415. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/interference_live.py +0 -0
  416. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/irt.py +0 -0
  417. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/iterative_dpo.py +0 -0
  418. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/jinja_analyzer.py +0 -0
  419. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/kernel_picker.py +0 -0
  420. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/knowledge_edit.py +0 -0
  421. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/kv_cache.py +0 -0
  422. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/launcher.py +0 -0
  423. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/license_advisor.py +0 -0
  424. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/license_matrix.py +0 -0
  425. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/liger.py +0 -0
  426. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/llama_proxy.py +0 -0
  427. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/llama_server_timings.py +0 -0
  428. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/local_rl.py +0 -0
  429. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/local_rl_scheduler.py +0 -0
  430. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/loftq_init.py +0 -0
  431. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/log_level.py +0 -0
  432. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/long_context.py +0 -0
  433. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/longlora.py +0 -0
  434. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/loop_budget.py +0 -0
  435. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/loop_daemon.py +0 -0
  436. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/loop_iteration.py +0 -0
  437. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/loop_stages.py +0 -0
  438. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/loop_state.py +0 -0
  439. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/lr_finder.py +0 -0
  440. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/lr_groups.py +0 -0
  441. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/magpie.py +0 -0
  442. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/metrics.py +0 -0
  443. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/mii.py +0 -0
  444. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/minillm.py +0 -0
  445. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/mix_proxy.py +0 -0
  446. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/mixed_precision.py +0 -0
  447. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/mlx.py +0 -0
  448. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/mod.py +0 -0
  449. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/moe.py +0 -0
  450. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/moe_quant.py +0 -0
  451. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/mole_routing.py +0 -0
  452. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/multipack.py +0 -0
  453. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/multipack_sampler.py +0 -0
  454. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/multipack_trainer.py +0 -0
  455. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/namespace_pin.py +0 -0
  456. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/neat_packing.py +0 -0
  457. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ngram_spec.py +0 -0
  458. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/nlg_metrics.py +0 -0
  459. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ollama.py +0 -0
  460. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/onboarding.py +0 -0
  461. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/optimizer_zoo.py +0 -0
  462. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/paths.py +0 -0
  463. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/peft_builder.py +0 -0
  464. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/peft_patches.py +0 -0
  465. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/peft_wiring.py +0 -0
  466. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/persona_hub.py +0 -0
  467. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/pipeline.py +0 -0
  468. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/preference_combine.py +0 -0
  469. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/prm.py +0 -0
  470. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/probe_kernel.py +0 -0
  471. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/probe_pack.py +0 -0
  472. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/profiler.py +0 -0
  473. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/profiling.py +0 -0
  474. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/profiling_v0_43.py +0 -0
  475. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/prompt_compile.py +0 -0
  476. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/prompt_distill.py +0 -0
  477. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/prune_prompt.py +0 -0
  478. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/qat.py +0 -0
  479. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/qr_url.py +0 -0
  480. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/quality.py +0 -0
  481. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/quant_menu.py +0 -0
  482. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ra_dit.py +0 -0
  483. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ra_dit_run.py +0 -0
  484. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/raft.py +0 -0
  485. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/reasoning_effort.py +0 -0
  486. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/reasoning_parser.py +0 -0
  487. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/recipe_dag.py +0 -0
  488. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/recipe_run.py +0 -0
  489. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/registry.py +0 -0
  490. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/relora.py +0 -0
  491. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/replay.py +0 -0
  492. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/repro_receipt.py +0 -0
  493. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/reward_hack_control.py +0 -0
  494. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/reward_hacking.py +0 -0
  495. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ring_attention.py +0 -0
  496. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/rl_checkpoint.py +0 -0
  497. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/rl_signal_buffer.py +0 -0
  498. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/run_cost.py +0 -0
  499. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/sae_diff.py +0 -0
  500. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/save_formats.py +0 -0
  501. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/server_tools.py +0 -0
  502. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/sglang.py +0 -0
  503. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ship_verdict.py +0 -0
  504. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/shortcuts.py +0 -0
  505. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/signing.py +0 -0
  506. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/sleeper_probe.py +0 -0
  507. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/soup_lock.py +0 -0
  508. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/spec_pairing.py +0 -0
  509. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/spectrum_scan.py +0 -0
  510. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/spike_recovery.py +0 -0
  511. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/sse_train_stream.py +0 -0
  512. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/steering.py +0 -0
  513. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/strict_safetensors.py +0 -0
  514. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/structured_output.py +0 -0
  515. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/sweep_config.py +0 -0
  516. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/tail_latency.py +0 -0
  517. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/terraform_plan.py +0 -0
  518. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/tool_outputs.py +0 -0
  519. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/topology.py +0 -0
  520. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/tracing.py +0 -0
  521. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/trackers.py +0 -0
  522. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/train_event_buffer.py +0 -0
  523. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/trainer_plugins.py +0 -0
  524. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/trust_remote.py +0 -0
  525. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/truth_probe.py +0 -0
  526. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/tts.py +0 -0
  527. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/tts_codec.py +0 -0
  528. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/tunability.py +0 -0
  529. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/ui_env.py +0 -0
  530. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/uld.py +0 -0
  531. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/unlearn_kernels.py +0 -0
  532. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/unlearning.py +0 -0
  533. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/unlearning_eval.py +0 -0
  534. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/unsloth.py +0 -0
  535. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/v028_features.py +0 -0
  536. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/vector_bank.py +0 -0
  537. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/vllm.py +0 -0
  538. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/vscode_setup.py +0 -0
  539. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/warmup.py +0 -0
  540. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/webhooks.py +0 -0
  541. {soup_cli-0.71.28 → soup_cli-0.71.29}/src/soup_cli/utils/why.py +0 -0
  542. {soup_cli-0.71.28 → soup_cli-0.71.29}/templates/chat.yaml +0 -0
  543. {soup_cli-0.71.28 → soup_cli-0.71.29}/templates/code.yaml +0 -0
  544. {soup_cli-0.71.28 → soup_cli-0.71.29}/templates/medical.yaml +0 -0
  545. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/__init__.py +0 -0
  546. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/conftest.py +0 -0
  547. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/qa/v053_qa.md +0 -0
  548. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/qa/v07114_qa.md +0 -0
  549. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/qa/v0716_qa.md +0 -0
  550. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_adapters.py +0 -0
  551. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_advanced_peft.py +0 -0
  552. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_assistant_mask.py +0 -0
  553. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_audio.py +0 -0
  554. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_auto_tuning.py +0 -0
  555. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_autopilot.py +0 -0
  556. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_awq_gptq_export.py +0 -0
  557. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_batch_probe.py +0 -0
  558. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_bco.py +0 -0
  559. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_bench.py +0 -0
  560. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_brain_rot_multilingual.py +0 -0
  561. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_bugfixes.py +0 -0
  562. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_build_dag.py +0 -0
  563. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_callback.py +0 -0
  564. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_cans.py +0 -0
  565. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_chat.py +0 -0
  566. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_chat_template.py +0 -0
  567. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_cli.py +0 -0
  568. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_cli_subprocess.py +0 -0
  569. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_code_review_critical.py +0 -0
  570. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_code_review_deferred.py +0 -0
  571. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_code_review_high.py +0 -0
  572. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_code_review_medium_low.py +0 -0
  573. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_code_review_recurring.py +0 -0
  574. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_config.py +0 -0
  575. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_cost.py +0 -0
  576. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_crash_reporter.py +0 -0
  577. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_curriculum.py +0 -0
  578. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_data.py +0 -0
  579. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_data_augment.py +0 -0
  580. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_data_sample.py +0 -0
  581. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_data_split.py +0 -0
  582. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_data_tools.py +0 -0
  583. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_dataset_hub.py +0 -0
  584. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_dataset_registry.py +0 -0
  585. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_deepspeed.py +0 -0
  586. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_deploy_ollama.py +0 -0
  587. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_diff.py +0 -0
  588. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_display.py +0 -0
  589. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_doctor.py +0 -0
  590. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_dpo_example.py +0 -0
  591. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_dpo_variants.py +0 -0
  592. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_embedding.py +0 -0
  593. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_errors.py +0 -0
  594. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_eval.py +0 -0
  595. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_eval_gate.py +0 -0
  596. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_eval_platform.py +0 -0
  597. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_export.py +0 -0
  598. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_formats.py +0 -0
  599. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_fp8_recipe.py +0 -0
  600. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_freeze_training.py +0 -0
  601. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_generate.py +0 -0
  602. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_gpu.py +0 -0
  603. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_grpo.py +0 -0
  604. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_hf_integration.py +0 -0
  605. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_infer.py +0 -0
  606. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_inference_advanced.py +0 -0
  607. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_init.py +0 -0
  608. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ipo.py +0 -0
  609. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_jinja_analyzer.py +0 -0
  610. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_kto.py +0 -0
  611. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_loader.py +0 -0
  612. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_log_level.py +0 -0
  613. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_loss_watchdog.py +0 -0
  614. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_merge.py +0 -0
  615. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_migrate.py +0 -0
  616. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_mlx_backend.py +0 -0
  617. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_moe.py +0 -0
  618. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_multi_adapter.py +0 -0
  619. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_multi_gpu.py +0 -0
  620. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_multipack_config.py +0 -0
  621. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_multipack_invariants.py +0 -0
  622. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_multipack_sampler.py +0 -0
  623. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_neat_packing.py +0 -0
  624. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_neftune_rslora.py +0 -0
  625. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_onnx_tensorrt_export.py +0 -0
  626. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_orpo.py +0 -0
  627. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_packing.py +0 -0
  628. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_a_wave1.py +0 -0
  629. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_a_wave2.py +0 -0
  630. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_b.py +0 -0
  631. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_c.py +0 -0
  632. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_d.py +0 -0
  633. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_e.py +0 -0
  634. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_part_f_hardening.py +0 -0
  635. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_peft_methods.py +0 -0
  636. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_peft_patches.py +0 -0
  637. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_performance.py +0 -0
  638. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_pissa_init.py +0 -0
  639. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ppo.py +0 -0
  640. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_preference_dispatcher.py +0 -0
  641. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_preference_multi.py +0 -0
  642. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_preference_multi_runtime.py +0 -0
  643. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_pretrain.py +0 -0
  644. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_profile.py +0 -0
  645. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_profiling.py +0 -0
  646. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_progress.py +0 -0
  647. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_push.py +0 -0
  648. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_qat.py +0 -0
  649. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_quality_filter.py +0 -0
  650. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_quant_check.py +0 -0
  651. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_quant_menu.py +0 -0
  652. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_quickstart.py +0 -0
  653. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_rank_pattern.py +0 -0
  654. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_recipes.py +0 -0
  655. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_recipes_v031.py +0 -0
  656. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_refusal_multilingual.py +0 -0
  657. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_registry.py +0 -0
  658. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_relora.py +0 -0
  659. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_replay.py +0 -0
  660. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_resume.py +0 -0
  661. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_rlvr.py +0 -0
  662. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_run_cost.py +0 -0
  663. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_runs.py +0 -0
  664. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_serve.py +0 -0
  665. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_server_generate.py +0 -0
  666. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_sglang_serve.py +0 -0
  667. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_simpo.py +0 -0
  668. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_smoke_train.py +0 -0
  669. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_speculative_decoding.py +0 -0
  670. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_sweep.py +0 -0
  671. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_synth_data_pro.py +0 -0
  672. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_templates_yaml.py +0 -0
  673. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_tensorboard.py +0 -0
  674. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_tool_calling.py +0 -0
  675. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_trace_to_pref.py +0 -0
  676. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_tracker.py +0 -0
  677. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_trainer_coverage_v035.py +0 -0
  678. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_trainer_init.py +0 -0
  679. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_training_intelligence.py +0 -0
  680. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_training_speed.py +0 -0
  681. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_trust_remote_code.py +0 -0
  682. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_tui.py +0 -0
  683. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ui.py +0 -0
  684. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ui_chat.py +0 -0
  685. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ui_config_builder.py +0 -0
  686. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ui_live_monitor.py +0 -0
  687. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_ui_metrics.py +0 -0
  688. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_unsloth.py +0 -0
  689. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0401_part_c.py +0 -0
  690. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0401_part_d.py +0 -0
  691. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0401_part_e.py +0 -0
  692. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0402_part_a.py +0 -0
  693. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0402_part_b.py +0 -0
  694. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0403_part_a.py +0 -0
  695. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0403_part_b.py +0 -0
  696. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0403_part_c.py +0 -0
  697. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0404_part_a.py +0 -0
  698. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0404_part_b.py +0 -0
  699. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0405_part_a.py +0 -0
  700. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0406_part_a.py +0 -0
  701. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0410_part_a.py +0 -0
  702. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0410_part_b.py +0 -0
  703. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0410_part_c.py +0 -0
  704. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0420.py +0 -0
  705. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0430_part_a.py +0 -0
  706. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0430_part_b.py +0 -0
  707. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0430_part_c.py +0 -0
  708. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0430_part_d.py +0 -0
  709. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0440_part_a.py +0 -0
  710. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0440_part_b.py +0 -0
  711. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0440_part_c.py +0 -0
  712. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0440_part_d.py +0 -0
  713. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0440_review_followups.py +0 -0
  714. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0450.py +0 -0
  715. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0460_part_a.py +0 -0
  716. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0460_part_b.py +0 -0
  717. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0470_part_a.py +0 -0
  718. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0470_part_b.py +0 -0
  719. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0480_part_a.py +0 -0
  720. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0480_part_b.py +0 -0
  721. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0490.py +0 -0
  722. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0500_part_a.py +0 -0
  723. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0500_part_b.py +0 -0
  724. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0500_part_c.py +0 -0
  725. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0500_part_d.py +0 -0
  726. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0500_part_e.py +0 -0
  727. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0510.py +0 -0
  728. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0520.py +0 -0
  729. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0530.py +0 -0
  730. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v05310.py +0 -0
  731. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v05311.py +0 -0
  732. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0531_109.py +0 -0
  733. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0531_139.py +0 -0
  734. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0531_142.py +0 -0
  735. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0531_82.py +0 -0
  736. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0532.py +0 -0
  737. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0533.py +0 -0
  738. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0534.py +0 -0
  739. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0535.py +0 -0
  740. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0536.py +0 -0
  741. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0537.py +0 -0
  742. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0538.py +0 -0
  743. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0539.py +0 -0
  744. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0540.py +0 -0
  745. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0550.py +0 -0
  746. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0550_followups.py +0 -0
  747. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0560.py +0 -0
  748. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0570_part_a.py +0 -0
  749. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0570_part_b.py +0 -0
  750. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0570_part_c.py +0 -0
  751. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0570_part_d.py +0 -0
  752. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0580.py +0 -0
  753. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0590.py +0 -0
  754. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0600_part_a.py +0 -0
  755. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0600_part_b.py +0 -0
  756. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0600_part_c.py +0 -0
  757. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0600_part_d.py +0 -0
  758. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0600_part_e.py +0 -0
  759. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0600_part_f.py +0 -0
  760. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0610_part_a.py +0 -0
  761. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0610_part_b.py +0 -0
  762. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0610_part_c.py +0 -0
  763. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0610_part_d.py +0 -0
  764. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0610_part_e.py +0 -0
  765. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0620_followups.py +0 -0
  766. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0620_part_a.py +0 -0
  767. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0620_part_b.py +0 -0
  768. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0620_part_c.py +0 -0
  769. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0620_part_d.py +0 -0
  770. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0620_part_e.py +0 -0
  771. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0630_followups.py +0 -0
  772. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0630_part_a.py +0 -0
  773. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0630_part_b.py +0 -0
  774. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0630_part_c.py +0 -0
  775. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0630_part_d.py +0 -0
  776. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0630_part_e.py +0 -0
  777. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0631_206.py +0 -0
  778. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_followups.py +0 -0
  779. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_part_a.py +0 -0
  780. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_part_b.py +0 -0
  781. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_part_c.py +0 -0
  782. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_part_d.py +0 -0
  783. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_part_e.py +0 -0
  784. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0640_part_f.py +0 -0
  785. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0650_followups.py +0 -0
  786. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0650_part_a.py +0 -0
  787. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0650_part_b.py +0 -0
  788. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0650_part_c.py +0 -0
  789. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0650_part_d.py +0 -0
  790. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0650_part_e.py +0 -0
  791. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_cli.py +0 -0
  792. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_followups.py +0 -0
  793. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_part_a.py +0 -0
  794. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_part_b.py +0 -0
  795. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_part_c.py +0 -0
  796. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_part_d.py +0 -0
  797. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0660_part_e.py +0 -0
  798. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_followups.py +0 -0
  799. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_part_a.py +0 -0
  800. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_part_b.py +0 -0
  801. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_part_c.py +0 -0
  802. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_part_d.py +0 -0
  803. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_part_e.py +0 -0
  804. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0670_part_f.py +0 -0
  805. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0680_followups.py +0 -0
  806. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0680_part_a.py +0 -0
  807. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0680_part_b.py +0 -0
  808. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0680_part_c.py +0 -0
  809. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0680_part_d.py +0 -0
  810. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0680_part_e.py +0 -0
  811. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0690_part_a.py +0 -0
  812. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0690_part_b.py +0 -0
  813. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0690_part_c.py +0 -0
  814. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0690_part_d.py +0 -0
  815. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0690_part_e.py +0 -0
  816. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0700_part_a.py +0 -0
  817. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0700_part_b.py +0 -0
  818. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0700_part_c.py +0 -0
  819. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0700_part_d.py +0 -0
  820. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0700_part_e.py +0 -0
  821. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0700_part_f.py +0 -0
  822. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07110.py +0 -0
  823. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07111.py +0 -0
  824. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07112.py +0 -0
  825. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07113.py +0 -0
  826. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07114.py +0 -0
  827. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07115.py +0 -0
  828. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07116.py +0 -0
  829. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07117.py +0 -0
  830. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07118.py +0 -0
  831. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07119.py +0 -0
  832. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0712.py +0 -0
  833. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07120.py +0 -0
  834. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07121.py +0 -0
  835. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07122.py +0 -0
  836. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07123.py +0 -0
  837. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07124.py +0 -0
  838. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07125.py +0 -0
  839. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07126.py +0 -0
  840. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07127.py +0 -0
  841. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v07128.py +0 -0
  842. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0713.py +0 -0
  843. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0714.py +0 -0
  844. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0715.py +0 -0
  845. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0716.py +0 -0
  846. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0717.py +0 -0
  847. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0718.py +0 -0
  848. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_v0719.py +0 -0
  849. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_validator.py +0 -0
  850. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_vision.py +0 -0
  851. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_vllm_serve.py +0 -0
  852. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_warmup.py +0 -0
  853. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_why.py +0 -0
  854. {soup_cli-0.71.28 → soup_cli-0.71.29}/tests/test_windows_encoding.py +0 -0
@@ -12,6 +12,35 @@ reproducing 70+ versions of notes.
12
12
 
13
13
  ## [Unreleased]
14
14
 
15
+ ## [0.71.29] - 2026-07-05
16
+
17
+ ### Added
18
+ - **`soup shrink`** — depth-prune a model + optional distill-heal
19
+ ("The Unreasonable Ineffectiveness of the Deeper Layers", arXiv:2403.17887).
20
+ Ranks decoder layers by the angular distance of the residual stream across a
21
+ contiguous block over a calibration set, drops the least-important block
22
+ (first and last layer always protected), optionally *heals* by distilling the
23
+ original model into the pruned student, and emits a single dense smaller model
24
+ plus a one-screen **SHIP / DON'T SHIP** perplexity verdict.
25
+ `soup shrink --model <id|path> [--drop-ratio 0.25 | --drop-layers N] --calib
26
+ <calib.jsonl> [--heal <heal.jsonl> --heal-steps N] [--tolerance 0.10]
27
+ [-o <dir>] [--device cpu] [--attach-to-registry <id>] [--plan-only]`.
28
+ Exit codes: 0 = SHIP, 2 = DON'T SHIP, 1 = error. The heal runs as an isolated
29
+ `soup train` subprocess (LoRA-student logit distillation) and the adapter is
30
+ fused back so the shipped artifact stays a single dense model. Arch allowlist
31
+ v1: Llama / Qwen / SmolLM. Validated live on SmolLM2-135M (drop 25 %: 30 -> 22
32
+ layers, ppl x2.98 unhealed; drop 4 + heal: ppl x1.35, recovered).
33
+
34
+ ### Security
35
+ - `soup shrink` contains `--calib` / `--heal` / `--output-dir` (and every
36
+ derived write path: `<out>/model`, `<out>/heal_adapter`, the fuse staging dir)
37
+ under cwd with `os.path.realpath` + `commonpath` + O_NOFOLLOW + symlink
38
+ rejection, re-validating derived paths right before each write (TOCTOU). The
39
+ heal subprocess uses an argv list (no shell) with a timeout; its config is
40
+ schema-validated before spawn; subprocess output is C0/ESC-stripped before it
41
+ reaches the terminal. `--model` defaults `trust_remote_code=False` with a
42
+ probe + warn.
43
+
15
44
  ## [0.71.28] - 2026-07-04
16
45
 
17
46
  ### Added
@@ -120,7 +120,7 @@ src/soup_cli/
120
120
  templates/ - 17 built-in soup.yaml templates (YAML + manifest.json) with load_template loader (v0.39.0, +bco v0.40.0)
121
121
  ui/ - Web UI (FastAPI + HTML/JS SPA)
122
122
 
123
- tests/ - Test suite (305 files, 15140 tests)
123
+ tests/ - Test suite (306 files, 15224 tests)
124
124
  examples/ - Real-world config examples and datasets
125
125
  ```
126
126
 
@@ -150,7 +150,7 @@ pytest tests/test_data.py::test_detect_alpaca_format -v
150
150
  pytest tests/ --cov=soup_cli --cov-report=html
151
151
  ```
152
152
 
153
- ### Test Files (305 files)
153
+ ### Test Files (306 files)
154
154
 
155
155
  > A representative sample of the suite below. The full table lives in
156
156
  > [`.claude/CLAUDE.md`](.claude/CLAUDE.md); run `pytest tests/ -v` for the complete list.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soup-cli
3
- Version: 0.71.28
3
+ Version: 0.71.29
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
@@ -193,25 +193,22 @@ infrastructure instead of improving models. Soup fixes that.
193
193
 
194
194
  ## What's New
195
195
 
196
- **v0.71.28Drive Soup from your coding agent: `soup mcp serve`.** A Model Context Protocol server, so Claude Code / Cursor / Cline / Continue can run Soup conversationally. No other fine-tuning CLI ships one.
197
-
198
- - **14 read-only tools, JSON out.** `advise`, `data_inspect` / `validate` / `score` / `doctor`,
199
- `recipes_search` / `show`, `runs_list` / `show`, `registry_list` / `show`, `profile`,
200
- `diagnose_evidence`, `ship_evidence` your agent can inspect data, search recipes, read runs,
201
- and get a ship verdict without you leaving the chat.
202
- - **Plan-only by default, safe by design.** stdio transport only (no network listener); the two
203
- mutating tools (`train_start`, `export`) are gated behind `--allow-mutating` and only ever
204
- render the exact command that would run. Every path argument re-enters cwd containment +
205
- symlink rejection; output is control-char sanitized; errors are path-free.
206
- - **Light install.** The official `mcp` SDK lives behind a new `[mcp]` extra
207
- (`pip install 'soup-cli[mcp]'`), lazy-imported so the core CLI stays torch-free and fast.
208
- - **Live-validated on Windows.** A real stdio MCP client drove `initialize → list_tools →
209
- call` end-to-end on Windows + RTX 3050 — read tools return real JSON, the mutating tools
210
- refuse without the flag, and a path-traversal argument is rejected.
211
-
212
- ```jsonc
213
- // .mcp.json (Claude Code) or claude_desktop_config.json
214
- { "mcpServers": { "soup": { "command": "soup", "args": ["mcp", "serve"] } } }
196
+ **v0.71.29Make your model smaller, locally: `soup shrink`.** Depth-prune the least-important layers, then distill-heal with a binary SHIP / DON'T-SHIP verdict. Based on "The Unreasonable Ineffectiveness of the Deeper Layers" (arXiv:2403.17887).
197
+
198
+ - **Importance-ranked depth pruning.** One forward pass per calibration prompt scores each
199
+ contiguous layer block by the angular distance of the residual stream across it; the
200
+ least-important block is dropped (the first and last layer are always protected).
201
+ - **Distill-heal, Minitron-style.** `--heal` distills the original model into the pruned
202
+ student (LoRA logit-KD) as an isolated `soup train` run, then fuses the adapter back so you
203
+ ship a single dense smaller model not a base + adapter.
204
+ - **A verdict, not a dashboard.** Every run ends in **SHIP** or **DON'T SHIP** on a
205
+ before/after perplexity ratio (`exit 0 = SHIP`, `2 = DON'T`, `1 = error`), so it drops into CI.
206
+ - **Runs on a laptop GPU.** Live-validated on Windows + RTX 3050 with SmolLM2-135M: drop 25 %
207
+ (30 22 layers, 21 % params) and drop-4 + CPU heal (perplexity recovered to ×1.35).
208
+
209
+ ```bash
210
+ soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
211
+ --calib calib.jsonl --heal heal.jsonl --heal-steps 200 -o shrunk --device cpu
215
212
  ```
216
213
 
217
214
  Full history: [CHANGELOG.md](CHANGELOG.md) &middot; [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
@@ -49,25 +49,22 @@ infrastructure instead of improving models. Soup fixes that.
49
49
 
50
50
  ## What's New
51
51
 
52
- **v0.71.28Drive Soup from your coding agent: `soup mcp serve`.** A Model Context Protocol server, so Claude Code / Cursor / Cline / Continue can run Soup conversationally. No other fine-tuning CLI ships one.
53
-
54
- - **14 read-only tools, JSON out.** `advise`, `data_inspect` / `validate` / `score` / `doctor`,
55
- `recipes_search` / `show`, `runs_list` / `show`, `registry_list` / `show`, `profile`,
56
- `diagnose_evidence`, `ship_evidence` your agent can inspect data, search recipes, read runs,
57
- and get a ship verdict without you leaving the chat.
58
- - **Plan-only by default, safe by design.** stdio transport only (no network listener); the two
59
- mutating tools (`train_start`, `export`) are gated behind `--allow-mutating` and only ever
60
- render the exact command that would run. Every path argument re-enters cwd containment +
61
- symlink rejection; output is control-char sanitized; errors are path-free.
62
- - **Light install.** The official `mcp` SDK lives behind a new `[mcp]` extra
63
- (`pip install 'soup-cli[mcp]'`), lazy-imported so the core CLI stays torch-free and fast.
64
- - **Live-validated on Windows.** A real stdio MCP client drove `initialize → list_tools →
65
- call` end-to-end on Windows + RTX 3050 — read tools return real JSON, the mutating tools
66
- refuse without the flag, and a path-traversal argument is rejected.
67
-
68
- ```jsonc
69
- // .mcp.json (Claude Code) or claude_desktop_config.json
70
- { "mcpServers": { "soup": { "command": "soup", "args": ["mcp", "serve"] } } }
52
+ **v0.71.29Make your model smaller, locally: `soup shrink`.** Depth-prune the least-important layers, then distill-heal with a binary SHIP / DON'T-SHIP verdict. Based on "The Unreasonable Ineffectiveness of the Deeper Layers" (arXiv:2403.17887).
53
+
54
+ - **Importance-ranked depth pruning.** One forward pass per calibration prompt scores each
55
+ contiguous layer block by the angular distance of the residual stream across it; the
56
+ least-important block is dropped (the first and last layer are always protected).
57
+ - **Distill-heal, Minitron-style.** `--heal` distills the original model into the pruned
58
+ student (LoRA logit-KD) as an isolated `soup train` run, then fuses the adapter back so you
59
+ ship a single dense smaller model not a base + adapter.
60
+ - **A verdict, not a dashboard.** Every run ends in **SHIP** or **DON'T SHIP** on a
61
+ before/after perplexity ratio (`exit 0 = SHIP`, `2 = DON'T`, `1 = error`), so it drops into CI.
62
+ - **Runs on a laptop GPU.** Live-validated on Windows + RTX 3050 with SmolLM2-135M: drop 25 %
63
+ (30 22 layers, 21 % params) and drop-4 + CPU heal (perplexity recovered to ×1.35).
64
+
65
+ ```bash
66
+ soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
67
+ --calib calib.jsonl --heal heal.jsonl --heal-steps 200 -o shrunk --device cpu
71
68
  ```
72
69
 
73
70
  Full history: [CHANGELOG.md](CHANGELOG.md) &middot; [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
@@ -158,6 +158,9 @@ soup ship ... --task-mode judge_score --judge-model ollama://llama3.1 Leg-1 via
158
158
  soup ship ... --general-suite mmlu,gsm8k --baseline base.json lm-eval leg-2 + recorded base scores
159
159
  soup mcp serve MCP server over stdio (drive Soup from Claude Code / Cursor / Cline; requires [mcp] extra) (v0.71.28)
160
160
  soup mcp serve --allow-mutating Also expose plan-only train_start / export tools (never execute) (v0.71.28)
161
+ soup shrink --model <id|path> --drop-ratio 0.25 --calib c.jsonl -o shrunk Depth-prune least-important layer block + SHIP/DON'T-SHIP ppl verdict (exit 0/2/1) (v0.71.29)
162
+ soup shrink ... --drop-layers N --heal h.jsonl --heal-steps 200 --device cpu Drop N layers + distill-heal (fuse LoRA back to one dense model)
163
+ soup shrink ... --tolerance 0.10 --plan-only [--attach-to-registry <id>] Ppl-regression tolerance / print importance table only / registry attach
161
164
  soup tui Full-screen Textual dashboard (requires [tui] extra)
162
165
  soup train --config soup.yaml --profile Record torch.profiler trace to <output>/profiles/
163
166
  soup --log-level quiet|normal|verbose|debug Global logging tier (Rich-formatted)
@@ -24,6 +24,57 @@
24
24
  - [Training Stability & Auto-Tuning](#training-stability--auto-tuning)
25
25
  - [Training Intelligence (Forgetting + Checkpoint Quality)](#training-intelligence-forgetting--checkpoint-quality)
26
26
  - [GaLore (Memory-Efficient Full-Parameter Training)](#galore-memory-efficient-full-parameter-training)
27
+ - [Depth Pruning + Distill-Heal (`soup shrink`)](#depth-pruning--distill-heal-soup-shrink)
28
+
29
+ ---
30
+
31
+ ## Depth Pruning + Distill-Heal (`soup shrink`)
32
+
33
+ `soup shrink` makes a model smaller by dropping its least-important **contiguous
34
+ block of decoder layers**, then optionally *healing* the loss with knowledge
35
+ distillation. It implements "The Unreasonable Ineffectiveness of the Deeper
36
+ Layers" (Gromov et al., arXiv:2403.17887), with a Minitron-style distillation
37
+ heal instead of the paper's plain LoRA fine-tune.
38
+
39
+ **How it ranks layers.** For each candidate block `[L, L+n)`, one forward pass
40
+ per calibration prompt (`output_hidden_states=True`) measures the **angular
41
+ distance** of the residual stream entering (`hidden_states[L]`) vs leaving
42
+ (`hidden_states[L+n]`) the block, averaged over every non-pad token across the
43
+ calibration set. The block with the *lowest* distance transforms the residual
44
+ stream least, so it is the safest to drop. The first and last decoder layers are
45
+ always protected (they carry the most transformation).
46
+
47
+ ```bash
48
+ # See the importance table + chosen block without writing anything:
49
+ soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
50
+ --calib calib.jsonl --device cpu --plan-only
51
+
52
+ # Prune 25% + heal (distill the original into the pruned student, fuse to one
53
+ # dense model) + get a SHIP/DON'T-SHIP perplexity verdict:
54
+ soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
55
+ --calib calib.jsonl --heal heal.jsonl --heal-steps 200 \
56
+ --tolerance 0.10 -o shrunk --device cpu --attach-to-registry <id>
57
+ ```
58
+
59
+ - **`--drop-ratio F` / `--drop-layers N`** (exactly one) — how many contiguous
60
+ layers to drop; the *position* is chosen automatically by the importance scan.
61
+ - **`--calib <jsonl>`** — calibration prompts (`{"text": ...}` / `{"prompt":
62
+ ...}` / chat `messages`). Must stay under cwd.
63
+ - **`--heal <jsonl> --heal-steps N`** — distill the full-depth original into the
64
+ pruned student (LoRA logit-KD) as an isolated `soup train` subprocess, then
65
+ fuse the adapter back into the pruned base so the output is a single dense
66
+ model. Heal keeps the teacher resident (~2× model memory); with `--device
67
+ cpu` the heal runs on CPU (validated ≤ 3 B on a 4 GB card).
68
+ - **`--tolerance F`** — ship if the perplexity regression stays within `F`
69
+ (default `0.10` = 10 %). Exit code `0 = SHIP`, `2 = DON'T SHIP`, `1 = error`.
70
+ - **`-o <dir>`** — the shrunk model lands in `<dir>/model`; the verdict in
71
+ `<dir>/shrink_report.json`.
72
+
73
+ **Arch support (v1):** Llama / Qwen / SmolLM. Others are a friendly reject.
74
+ The importance pass loads the model, so live-validated on ≤ 3 B; larger models
75
+ work but are unvalidated on the reference hardware. Perplexity is an unweighted
76
+ mean of per-example perplexities — valid for the before/after *ratio* the
77
+ verdict uses, not directly comparable to `soup eval` absolute numbers.
27
78
 
28
79
  ---
29
80