soup-cli 0.71.34__tar.gz → 0.71.35__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 (883) hide show
  1. {soup_cli-0.71.34 → soup_cli-0.71.35}/CHANGELOG.md +59 -0
  2. {soup_cli-0.71.34 → soup_cli-0.71.35}/CONTRIBUTING.md +2 -2
  3. {soup_cli-0.71.34 → soup_cli-0.71.35}/PKG-INFO +23 -13
  4. {soup_cli-0.71.34 → soup_cli-0.71.35}/README.md +22 -12
  5. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/README.md +1 -0
  6. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/commands.md +4 -0
  7. soup_cli-0.71.35/docs/compliance.md +136 -0
  8. {soup_cli-0.71.34 → soup_cli-0.71.35}/pyproject.toml +1 -1
  9. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/__init__.py +1 -1
  10. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cli.py +4 -0
  11. soup_cli-0.71.35/src/soup_cli/commands/card.py +316 -0
  12. soup_cli-0.71.35/src/soup_cli/commands/ci.py +65 -0
  13. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/export.py +51 -10
  14. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/push.py +61 -10
  15. soup_cli-0.71.35/src/soup_cli/templates/eu-ai-act.yaml +45 -0
  16. soup_cli-0.71.35/src/soup_cli/templates/hipaa.yaml +46 -0
  17. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/manifest.json +4 -0
  18. soup_cli-0.71.35/src/soup_cli/templates/soc2.yaml +45 -0
  19. soup_cli-0.71.35/src/soup_cli/templates/sr-11-7.yaml +43 -0
  20. soup_cli-0.71.35/src/soup_cli/utils/ci_workflow.py +179 -0
  21. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ollama.py +7 -1
  22. soup_cli-0.71.35/tests/test_v07135.py +1010 -0
  23. {soup_cli-0.71.34 → soup_cli-0.71.35}/.dockerignore +0 -0
  24. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/FUNDING.yml +0 -0
  25. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  26. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  27. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  28. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/pull_request_template.md +0 -0
  29. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/workflows/ci.yml +0 -0
  30. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/workflows/docker.yml +0 -0
  31. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/workflows/publish.yml +0 -0
  32. {soup_cli-0.71.34 → soup_cli-0.71.35}/.github/workflows/recipe-validation.yml +0 -0
  33. {soup_cli-0.71.34 → soup_cli-0.71.35}/.gitignore +0 -0
  34. {soup_cli-0.71.34 → soup_cli-0.71.35}/.mailmap +0 -0
  35. {soup_cli-0.71.34 → soup_cli-0.71.35}/.pre-commit-config.yaml +0 -0
  36. {soup_cli-0.71.34 → soup_cli-0.71.35}/AGENTS.md +0 -0
  37. {soup_cli-0.71.34 → soup_cli-0.71.35}/CODEOWNERS +0 -0
  38. {soup_cli-0.71.34 → soup_cli-0.71.35}/CODE_OF_CONDUCT.md +0 -0
  39. {soup_cli-0.71.34 → soup_cli-0.71.35}/CONTRIBUTORS.md +0 -0
  40. {soup_cli-0.71.34 → soup_cli-0.71.35}/Dockerfile +0 -0
  41. {soup_cli-0.71.34 → soup_cli-0.71.35}/LICENSE +0 -0
  42. {soup_cli-0.71.34 → soup_cli-0.71.35}/NOTICE +0 -0
  43. {soup_cli-0.71.34 → soup_cli-0.71.35}/SECURITY.md +0 -0
  44. {soup_cli-0.71.34 → soup_cli-0.71.35}/docker-compose.yml +0 -0
  45. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/adapters-and-governance.md +0 -0
  46. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/backends-and-ops.md +0 -0
  47. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/data.md +0 -0
  48. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/evaluation.md +0 -0
  49. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/models.md +0 -0
  50. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/peft-and-efficiency.md +0 -0
  51. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/performance-and-quantization.md +0 -0
  52. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/serving-and-export.md +0 -0
  53. {soup_cli-0.71.34 → soup_cli-0.71.35}/docs/training.md +0 -0
  54. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/README.md +0 -0
  55. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/dpo_chat.yaml +0 -0
  56. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/dpo_example.yaml +0 -0
  57. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/grpo_reasoning.yaml +0 -0
  58. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/rlhf_step1_sft.yaml +0 -0
  59. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/rlhf_step2_reward.yaml +0 -0
  60. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/rlhf_step3_ppo.yaml +0 -0
  61. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/sft_basic.yaml +0 -0
  62. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/configs/vision_llama.yaml +0 -0
  63. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/data/alpaca_tiny.jsonl +0 -0
  64. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/data/chat_preferences.jsonl +0 -0
  65. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/data/dpo_sample.jsonl +0 -0
  66. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/data/reasoning_math.jsonl +0 -0
  67. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/reward_hacking/rewards.py +0 -0
  68. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/synthetic_workflow.md +0 -0
  69. {soup_cli-0.71.34 → soup_cli-0.71.35}/examples/synthetic_workflow.yaml +0 -0
  70. {soup_cli-0.71.34 → soup_cli-0.71.35}/soup.png +0 -0
  71. {soup_cli-0.71.34 → soup_cli-0.71.35}/soup_logo_svg.svg +0 -0
  72. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/__main__.py +0 -0
  73. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/autopilot/__init__.py +0 -0
  74. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/autopilot/analyzer.py +0 -0
  75. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/autopilot/decisions.py +0 -0
  76. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/autopilot/generate_config.py +0 -0
  77. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/__init__.py +0 -0
  78. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/pack.py +0 -0
  79. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/publish.py +0 -0
  80. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/run.py +0 -0
  81. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/schema.py +0 -0
  82. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/unpack.py +0 -0
  83. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cans/verify.py +0 -0
  84. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cloud/__init__.py +0 -0
  85. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/cloud/modal.py +0 -0
  86. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/__init__.py +0 -0
  87. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/_eval_v0550.py +0 -0
  88. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/_eval_v0610.py +0 -0
  89. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/_eval_v0650.py +0 -0
  90. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/_eval_v07110.py +0 -0
  91. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/_webhook_cli.py +0 -0
  92. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/ab.py +0 -0
  93. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/active_sample.py +0 -0
  94. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/adapters.py +0 -0
  95. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/advise.py +0 -0
  96. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/agent.py +0 -0
  97. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/airgap.py +0 -0
  98. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/apple_adapter.py +0 -0
  99. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/attest.py +0 -0
  100. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/audit_log.py +0 -0
  101. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/autopilot.py +0 -0
  102. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/bench.py +0 -0
  103. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/bom.py +0 -0
  104. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/build.py +0 -0
  105. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/can.py +0 -0
  106. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/chat.py +0 -0
  107. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/compile_cmd.py +0 -0
  108. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/compile_tools.py +0 -0
  109. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/completions.py +0 -0
  110. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/cost.py +0 -0
  111. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/data.py +0 -0
  112. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/data_doctor.py +0 -0
  113. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/data_forge.py +0 -0
  114. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/data_mix.py +0 -0
  115. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/data_score.py +0 -0
  116. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/delinearize_llama4.py +0 -0
  117. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/deploy.py +0 -0
  118. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/diagnose.py +0 -0
  119. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/diff.py +0 -0
  120. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/distill_prompt.py +0 -0
  121. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/doctor.py +0 -0
  122. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/draft.py +0 -0
  123. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/drift_alarm.py +0 -0
  124. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/edit.py +0 -0
  125. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/env.py +0 -0
  126. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/eval.py +0 -0
  127. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/expect.py +0 -0
  128. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/fetch.py +0 -0
  129. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/generate.py +0 -0
  130. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/history.py +0 -0
  131. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/infer.py +0 -0
  132. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/ingest.py +0 -0
  133. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/init.py +0 -0
  134. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/iterative_dpo.py +0 -0
  135. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/license_advisor.py +0 -0
  136. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/llama.py +0 -0
  137. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/local_rl.py +0 -0
  138. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/lock.py +0 -0
  139. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/loop.py +0 -0
  140. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/mcp.py +0 -0
  141. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/merge.py +0 -0
  142. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
  143. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/migrate.py +0 -0
  144. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/monitor.py +0 -0
  145. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/plan.py +0 -0
  146. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/plugins.py +0 -0
  147. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/probe.py +0 -0
  148. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/profile.py +0 -0
  149. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/prune_prompt.py +0 -0
  150. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/quantize.py +0 -0
  151. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/quickstart.py +0 -0
  152. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/ra_dit.py +0 -0
  153. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/recipes.py +0 -0
  154. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/registry.py +0 -0
  155. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/runs.py +0 -0
  156. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/serve.py +0 -0
  157. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/ship.py +0 -0
  158. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/shrink.py +0 -0
  159. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/spectrum.py +0 -0
  160. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/steer.py +0 -0
  161. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/sweep.py +0 -0
  162. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/tokenizer.py +0 -0
  163. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/train.py +0 -0
  164. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/tui.py +0 -0
  165. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/tunability.py +0 -0
  166. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/ui.py +0 -0
  167. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/commands/why.py +0 -0
  168. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/config/__init__.py +0 -0
  169. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/config/loader.py +0 -0
  170. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/config/schema.py +0 -0
  171. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/__init__.py +0 -0
  172. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
  173. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
  174. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
  175. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
  176. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
  177. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
  178. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
  179. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
  180. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
  181. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
  182. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
  183. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
  184. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/augment.py +0 -0
  185. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/chat_templates.py +0 -0
  186. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/collators.py +0 -0
  187. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/formats.py +0 -0
  188. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/loader.py +0 -0
  189. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/loss_mask.py +0 -0
  190. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/providers/__init__.py +0 -0
  191. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/providers/_utils.py +0 -0
  192. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/providers/anthropic.py +0 -0
  193. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/providers/ollama.py +0 -0
  194. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/providers/vllm.py +0 -0
  195. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/sft_format.py +0 -0
  196. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/__init__.py +0 -0
  197. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/code.py +0 -0
  198. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/conversation.py +0 -0
  199. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/preference.py +0 -0
  200. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/qa.py +0 -0
  201. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/reasoning.py +0 -0
  202. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/tool_calling.py +0 -0
  203. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/templates/verifiable.py +0 -0
  204. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/traces/__init__.py +0 -0
  205. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/traces/pair_builder.py +0 -0
  206. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/traces/parsers.py +0 -0
  207. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/traces/quality.py +0 -0
  208. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/data/validator.py +0 -0
  209. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/envs/__init__.py +0 -0
  210. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/envs/_common.py +0 -0
  211. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/envs/calculator.py +0 -0
  212. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/envs/guess_number.py +0 -0
  213. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/envs/retrieval_qa.py +0 -0
  214. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/__init__.py +0 -0
  215. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/arena.py +0 -0
  216. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
  217. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/calibrate.py +0 -0
  218. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
  219. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/custom.py +0 -0
  220. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/forgetting.py +0 -0
  221. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/gate.py +0 -0
  222. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/human.py +0 -0
  223. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/judge.py +0 -0
  224. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/leaderboard.py +0 -0
  225. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/eval/quant_check.py +0 -0
  226. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/experiment/__init__.py +0 -0
  227. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/experiment/tracker.py +0 -0
  228. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/mcp_server/__init__.py +0 -0
  229. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/mcp_server/registry.py +0 -0
  230. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/mcp_server/server.py +0 -0
  231. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/migrate/__init__.py +0 -0
  232. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/migrate/axolotl.py +0 -0
  233. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/migrate/common.py +0 -0
  234. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/migrate/llamafactory.py +0 -0
  235. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/migrate/unsloth.py +0 -0
  236. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/__init__.py +0 -0
  237. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/callback.py +0 -0
  238. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
  239. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/display.py +0 -0
  240. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
  241. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/hf_push.py +0 -0
  242. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/plugin_callback.py +0 -0
  243. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/monitoring/trace_logger.py +0 -0
  244. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/plugins/__init__.py +0 -0
  245. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/py.typed +0 -0
  246. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/recipes/__init__.py +0 -0
  247. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/recipes/catalog.py +0 -0
  248. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/registry/__init__.py +0 -0
  249. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/registry/attach.py +0 -0
  250. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/registry/diff.py +0 -0
  251. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/registry/hashing.py +0 -0
  252. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/registry/store.py +0 -0
  253. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/__init__.py +0 -0
  254. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/audio.yaml +0 -0
  255. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/bco.yaml +0 -0
  256. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/chat.yaml +0 -0
  257. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/code.yaml +0 -0
  258. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/embedding.yaml +0 -0
  259. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
  260. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
  261. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
  262. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/ipo.yaml +0 -0
  263. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/kto.yaml +0 -0
  264. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/longcontext.yaml +0 -0
  265. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/medical.yaml +0 -0
  266. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/moe.yaml +0 -0
  267. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/orpo.yaml +0 -0
  268. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/pretrain.yaml +0 -0
  269. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/reasoning.yaml +0 -0
  270. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/rlhf.yaml +0 -0
  271. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/simpo.yaml +0 -0
  272. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/tool-calling.yaml +0 -0
  273. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/templates/vision.yaml +0 -0
  274. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/__init__.py +0 -0
  275. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/asr.py +0 -0
  276. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/bco.py +0 -0
  277. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/bitnet.py +0 -0
  278. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/classifier.py +0 -0
  279. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/distill.py +0 -0
  280. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/dpo.py +0 -0
  281. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/embedding.py +0 -0
  282. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/grpo.py +0 -0
  283. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/ipo.py +0 -0
  284. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/kto.py +0 -0
  285. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/mlx_dpo.py +0 -0
  286. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/mlx_grpo.py +0 -0
  287. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/mlx_routing.py +0 -0
  288. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/mlx_sft.py +0 -0
  289. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/mole_routing.py +0 -0
  290. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/online_dpo.py +0 -0
  291. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/orpo.py +0 -0
  292. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/ppo.py +0 -0
  293. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/preference.py +0 -0
  294. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/pretrain.py +0 -0
  295. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/prm.py +0 -0
  296. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/raft.py +0 -0
  297. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/reward_model.py +0 -0
  298. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/rewards.py +0 -0
  299. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/sft.py +0 -0
  300. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/simpo.py +0 -0
  301. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/tts.py +0 -0
  302. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/trainer/unlearn.py +0 -0
  303. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/tui_app.py +0 -0
  304. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/__init__.py +0 -0
  305. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/app.py +0 -0
  306. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/plugins/__init__.py +0 -0
  307. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/static/app.js +0 -0
  308. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/static/index.html +0 -0
  309. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/static/logo.png +0 -0
  310. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/static/logo.svg +0 -0
  311. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/ui/static/style.css +0 -0
  312. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/__init__.py +0 -0
  313. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/_eval_text.py +0 -0
  314. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ab_test.py +0 -0
  315. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/activation_offload.py +0 -0
  316. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/active_sampler.py +0 -0
  317. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_arithmetic.py +0 -0
  318. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_bisect.py +0 -0
  319. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_branch.py +0 -0
  320. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_diff.py +0 -0
  321. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_fuse.py +0 -0
  322. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_merge.py +0 -0
  323. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_pr.py +0 -0
  324. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_scan.py +0 -0
  325. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/adapter_sign.py +0 -0
  326. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/advanced_precision.py +0 -0
  327. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/advise.py +0 -0
  328. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/advise_history.py +0 -0
  329. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/agent_forge.py +0 -0
  330. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/agent_rollout.py +0 -0
  331. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/agent_sandbox.py +0 -0
  332. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/airgap_bundle.py +0 -0
  333. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/annex_xi.py +0 -0
  334. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/anthropic_messages.py +0 -0
  335. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/apple_adapter.py +0 -0
  336. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/asr_metrics.py +0 -0
  337. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/attest.py +0 -0
  338. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/audit_log.py +0 -0
  339. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/auto_quant.py +0 -0
  340. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/backend_detect.py +0 -0
  341. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/batch_probe.py +0 -0
  342. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/behavior_battery.py +0 -0
  343. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/best_of_n.py +0 -0
  344. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/bitnet.py +0 -0
  345. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/blame.py +0 -0
  346. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/block_expansion.py +0 -0
  347. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/bom.py +0 -0
  348. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/brain_rot.py +0 -0
  349. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/brain_rot_lang.py +0 -0
  350. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/build_dag.py +0 -0
  351. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/canary_discovery.py +0 -0
  352. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/canary_router.py +0 -0
  353. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/capability_suite.py +0 -0
  354. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/checklist_dsl.py +0 -0
  355. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
  356. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/citation_faithful.py +0 -0
  357. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/classifier.py +0 -0
  358. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/cmaes_merge.py +0 -0
  359. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/compile_tools.py +0 -0
  360. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/completions.py +0 -0
  361. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/constants.py +0 -0
  362. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/convergence.py +0 -0
  363. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/crash.py +0 -0
  364. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/cross_doc_attn.py +0 -0
  365. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/curriculum.py +0 -0
  366. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
  367. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/cut_ce.py +0 -0
  368. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/data_doctor.py +0 -0
  369. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/data_forge.py +0 -0
  370. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/data_lint.py +0 -0
  371. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/data_mix.py +0 -0
  372. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/data_pipeline.py +0 -0
  373. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/data_score.py +0 -0
  374. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/deepspeed.py +0 -0
  375. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/delinearize_llama4.py +0 -0
  376. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/demo_bundles.py +0 -0
  377. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/deploy_autopilot.py +0 -0
  378. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/deploy_measure.py +0 -0
  379. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/__init__.py +0 -0
  380. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/_common.py +0 -0
  381. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/badge.py +0 -0
  382. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/citation.py +0 -0
  383. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/contamination.py +0 -0
  384. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
  385. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/format.py +0 -0
  386. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/live.py +0 -0
  387. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/memorization.py +0 -0
  388. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
  389. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/refusal.py +0 -0
  390. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/report.py +0 -0
  391. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/diagnose/runner.py +0 -0
  392. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/distill.py +0 -0
  393. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/dpo_variants.py +0 -0
  394. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/draft.py +0 -0
  395. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/drift_alarm.py +0 -0
  396. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ebft_gdpo.py +0 -0
  397. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/echo_trap.py +0 -0
  398. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/edit_diff.py +0 -0
  399. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/edit_governor.py +0 -0
  400. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/edit_kernels.py +0 -0
  401. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/encoding.py +0 -0
  402. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/energy.py +0 -0
  403. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/env_lock.py +0 -0
  404. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/errors.py +0 -0
  405. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/eval_design.py +0 -0
  406. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/eval_gate_hook.py +0 -0
  407. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
  408. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/evolve.py +0 -0
  409. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/expectations.py +0 -0
  410. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/fetch_examples.py +0 -0
  411. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/flash_attn.py +0 -0
  412. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/fp8.py +0 -0
  413. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/freeze.py +0 -0
  414. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/fsdp.py +0 -0
  415. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
  416. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/galore.py +0 -0
  417. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/gguf_quant.py +0 -0
  418. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/gpu.py +0 -0
  419. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/gpu_monitor.py +0 -0
  420. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/grace_codebook.py +0 -0
  421. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/graceful_save.py +0 -0
  422. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/grad_accum.py +0 -0
  423. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/gradient_ckpt.py +0 -0
  424. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/grpo_long_context.py +0 -0
  425. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/grpo_variants.py +0 -0
  426. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/hardware_fit.py +0 -0
  427. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/harm_probe.py +0 -0
  428. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/hf.py +0 -0
  429. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/hf_space.py +0 -0
  430. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/hubs.py +0 -0
  431. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ingest_sources.py +0 -0
  432. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/integrations.py +0 -0
  433. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/interference.py +0 -0
  434. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/interference_live.py +0 -0
  435. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/irt.py +0 -0
  436. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/iterative_dpo.py +0 -0
  437. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/jinja_analyzer.py +0 -0
  438. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/kernel_picker.py +0 -0
  439. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/knowledge_edit.py +0 -0
  440. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/kv_cache.py +0 -0
  441. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/launcher.py +0 -0
  442. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/license_advisor.py +0 -0
  443. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/license_matrix.py +0 -0
  444. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/liger.py +0 -0
  445. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/lisa.py +0 -0
  446. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/live_eval.py +0 -0
  447. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/llama_proxy.py +0 -0
  448. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/llama_server_timings.py +0 -0
  449. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/local_rl.py +0 -0
  450. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/local_rl_scheduler.py +0 -0
  451. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/loftq_init.py +0 -0
  452. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/log_level.py +0 -0
  453. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/long_context.py +0 -0
  454. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/longlora.py +0 -0
  455. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/loop_budget.py +0 -0
  456. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/loop_daemon.py +0 -0
  457. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/loop_iteration.py +0 -0
  458. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/loop_stages.py +0 -0
  459. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/loop_state.py +0 -0
  460. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/lr_finder.py +0 -0
  461. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/lr_groups.py +0 -0
  462. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/magpie.py +0 -0
  463. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/metrics.py +0 -0
  464. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/mii.py +0 -0
  465. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/minillm.py +0 -0
  466. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/mix_proxy.py +0 -0
  467. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/mixed_precision.py +0 -0
  468. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/mlx.py +0 -0
  469. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/mod.py +0 -0
  470. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/moe.py +0 -0
  471. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/moe_quant.py +0 -0
  472. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/mole_routing.py +0 -0
  473. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/multipack.py +0 -0
  474. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/multipack_sampler.py +0 -0
  475. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/multipack_trainer.py +0 -0
  476. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/namespace_pin.py +0 -0
  477. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/neat_packing.py +0 -0
  478. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ngram_spec.py +0 -0
  479. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/nlg_metrics.py +0 -0
  480. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/onboarding.py +0 -0
  481. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/optimizer_zoo.py +0 -0
  482. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/paths.py +0 -0
  483. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/peft_builder.py +0 -0
  484. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/peft_patches.py +0 -0
  485. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/peft_wiring.py +0 -0
  486. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/persona_hub.py +0 -0
  487. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/pipeline.py +0 -0
  488. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/preference_combine.py +0 -0
  489. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/prm.py +0 -0
  490. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/prm_reward.py +0 -0
  491. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/probe_kernel.py +0 -0
  492. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/probe_pack.py +0 -0
  493. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/profiler.py +0 -0
  494. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/profiling.py +0 -0
  495. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/profiling_v0_43.py +0 -0
  496. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/prompt_compile.py +0 -0
  497. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/prompt_distill.py +0 -0
  498. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/prune_prompt.py +0 -0
  499. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/qat.py +0 -0
  500. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/qr_url.py +0 -0
  501. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/quality.py +0 -0
  502. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/quant_menu.py +0 -0
  503. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ra_dit.py +0 -0
  504. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ra_dit_run.py +0 -0
  505. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/raft.py +0 -0
  506. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/reasoning_effort.py +0 -0
  507. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/reasoning_parser.py +0 -0
  508. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/recipe_dag.py +0 -0
  509. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/recipe_run.py +0 -0
  510. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/registry.py +0 -0
  511. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/relora.py +0 -0
  512. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/replay.py +0 -0
  513. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/repro_receipt.py +0 -0
  514. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/reward_hack_control.py +0 -0
  515. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/reward_hacking.py +0 -0
  516. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ring_attention.py +0 -0
  517. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/rl_checkpoint.py +0 -0
  518. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/rl_signal_buffer.py +0 -0
  519. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/run_cost.py +0 -0
  520. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/sae_diff.py +0 -0
  521. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/save_formats.py +0 -0
  522. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/server_tools.py +0 -0
  523. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/sglang.py +0 -0
  524. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ship_verdict.py +0 -0
  525. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/shortcuts.py +0 -0
  526. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/shrink.py +0 -0
  527. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/signing.py +0 -0
  528. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/sleeper_probe.py +0 -0
  529. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/soup_lock.py +0 -0
  530. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/spec_pairing.py +0 -0
  531. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/spectrum_scan.py +0 -0
  532. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/spike_recovery.py +0 -0
  533. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/sse_train_stream.py +0 -0
  534. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/steering.py +0 -0
  535. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/strict_safetensors.py +0 -0
  536. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/structured_output.py +0 -0
  537. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/sweep_config.py +0 -0
  538. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/tail_latency.py +0 -0
  539. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/terraform_plan.py +0 -0
  540. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/tool_outputs.py +0 -0
  541. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/topology.py +0 -0
  542. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/tracing.py +0 -0
  543. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/trackers.py +0 -0
  544. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/train_event_buffer.py +0 -0
  545. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/trainer_plugins.py +0 -0
  546. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/trust_remote.py +0 -0
  547. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/truth_probe.py +0 -0
  548. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/tts.py +0 -0
  549. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/tts_codec.py +0 -0
  550. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/tunability.py +0 -0
  551. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/ui_env.py +0 -0
  552. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/uld.py +0 -0
  553. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/unlearn_kernels.py +0 -0
  554. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/unlearning.py +0 -0
  555. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/unlearning_eval.py +0 -0
  556. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/unsloth.py +0 -0
  557. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/v028_features.py +0 -0
  558. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/vector_bank.py +0 -0
  559. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/vllm.py +0 -0
  560. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/vscode_setup.py +0 -0
  561. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/warmup.py +0 -0
  562. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/webhooks.py +0 -0
  563. {soup_cli-0.71.34 → soup_cli-0.71.35}/src/soup_cli/utils/why.py +0 -0
  564. {soup_cli-0.71.34 → soup_cli-0.71.35}/templates/chat.yaml +0 -0
  565. {soup_cli-0.71.34 → soup_cli-0.71.35}/templates/code.yaml +0 -0
  566. {soup_cli-0.71.34 → soup_cli-0.71.35}/templates/medical.yaml +0 -0
  567. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/__init__.py +0 -0
  568. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/conftest.py +0 -0
  569. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/qa/v053_qa.md +0 -0
  570. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/qa/v07114_qa.md +0 -0
  571. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/qa/v0716_qa.md +0 -0
  572. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_adapters.py +0 -0
  573. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_advanced_peft.py +0 -0
  574. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_assistant_mask.py +0 -0
  575. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_audio.py +0 -0
  576. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_auto_tuning.py +0 -0
  577. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_autopilot.py +0 -0
  578. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_awq_gptq_export.py +0 -0
  579. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_batch_probe.py +0 -0
  580. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_bco.py +0 -0
  581. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_bench.py +0 -0
  582. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_brain_rot_multilingual.py +0 -0
  583. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_bugfixes.py +0 -0
  584. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_build_dag.py +0 -0
  585. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_callback.py +0 -0
  586. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_cans.py +0 -0
  587. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_chat.py +0 -0
  588. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_chat_template.py +0 -0
  589. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_cli.py +0 -0
  590. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_cli_subprocess.py +0 -0
  591. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_code_review_critical.py +0 -0
  592. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_code_review_deferred.py +0 -0
  593. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_code_review_high.py +0 -0
  594. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_code_review_medium_low.py +0 -0
  595. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_code_review_recurring.py +0 -0
  596. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_config.py +0 -0
  597. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_cost.py +0 -0
  598. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_crash_reporter.py +0 -0
  599. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_curriculum.py +0 -0
  600. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_data.py +0 -0
  601. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_data_augment.py +0 -0
  602. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_data_sample.py +0 -0
  603. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_data_split.py +0 -0
  604. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_data_tools.py +0 -0
  605. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_dataset_hub.py +0 -0
  606. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_dataset_registry.py +0 -0
  607. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_deepspeed.py +0 -0
  608. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_deploy_ollama.py +0 -0
  609. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_diff.py +0 -0
  610. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_display.py +0 -0
  611. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_doctor.py +0 -0
  612. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_dpo_example.py +0 -0
  613. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_dpo_variants.py +0 -0
  614. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_embedding.py +0 -0
  615. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_errors.py +0 -0
  616. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_eval.py +0 -0
  617. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_eval_gate.py +0 -0
  618. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_eval_platform.py +0 -0
  619. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_export.py +0 -0
  620. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_formats.py +0 -0
  621. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_fp8_recipe.py +0 -0
  622. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_freeze_training.py +0 -0
  623. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_generate.py +0 -0
  624. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_gpu.py +0 -0
  625. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_grpo.py +0 -0
  626. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_hf_integration.py +0 -0
  627. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_infer.py +0 -0
  628. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_inference_advanced.py +0 -0
  629. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_init.py +0 -0
  630. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ipo.py +0 -0
  631. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_jinja_analyzer.py +0 -0
  632. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_kto.py +0 -0
  633. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_loader.py +0 -0
  634. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_log_level.py +0 -0
  635. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_loss_watchdog.py +0 -0
  636. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_merge.py +0 -0
  637. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_migrate.py +0 -0
  638. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_mlx_backend.py +0 -0
  639. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_moe.py +0 -0
  640. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_multi_adapter.py +0 -0
  641. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_multi_gpu.py +0 -0
  642. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_multipack_config.py +0 -0
  643. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_multipack_invariants.py +0 -0
  644. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_multipack_sampler.py +0 -0
  645. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_neat_packing.py +0 -0
  646. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_neftune_rslora.py +0 -0
  647. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_onnx_tensorrt_export.py +0 -0
  648. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_orpo.py +0 -0
  649. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_packing.py +0 -0
  650. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_a_wave1.py +0 -0
  651. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_a_wave2.py +0 -0
  652. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_b.py +0 -0
  653. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_c.py +0 -0
  654. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_d.py +0 -0
  655. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_e.py +0 -0
  656. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_part_f_hardening.py +0 -0
  657. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_peft_methods.py +0 -0
  658. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_peft_patches.py +0 -0
  659. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_performance.py +0 -0
  660. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_pissa_init.py +0 -0
  661. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ppo.py +0 -0
  662. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_preference_dispatcher.py +0 -0
  663. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_preference_multi.py +0 -0
  664. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_preference_multi_runtime.py +0 -0
  665. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_pretrain.py +0 -0
  666. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_profile.py +0 -0
  667. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_profiling.py +0 -0
  668. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_progress.py +0 -0
  669. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_push.py +0 -0
  670. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_qat.py +0 -0
  671. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_quality_filter.py +0 -0
  672. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_quant_check.py +0 -0
  673. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_quant_menu.py +0 -0
  674. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_quickstart.py +0 -0
  675. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_rank_pattern.py +0 -0
  676. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_recipes.py +0 -0
  677. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_recipes_v031.py +0 -0
  678. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_refusal_multilingual.py +0 -0
  679. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_registry.py +0 -0
  680. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_relora.py +0 -0
  681. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_replay.py +0 -0
  682. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_resume.py +0 -0
  683. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_review_fixes_v07133.py +0 -0
  684. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_rlvr.py +0 -0
  685. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_run_cost.py +0 -0
  686. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_runs.py +0 -0
  687. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_serve.py +0 -0
  688. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_server_generate.py +0 -0
  689. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_sglang_serve.py +0 -0
  690. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_simpo.py +0 -0
  691. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_smoke_train.py +0 -0
  692. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_speculative_decoding.py +0 -0
  693. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_sweep.py +0 -0
  694. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_synth_data_pro.py +0 -0
  695. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_templates_yaml.py +0 -0
  696. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_tensorboard.py +0 -0
  697. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_tool_calling.py +0 -0
  698. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_trace_to_pref.py +0 -0
  699. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_tracker.py +0 -0
  700. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_trainer_coverage_v035.py +0 -0
  701. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_trainer_init.py +0 -0
  702. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_training_intelligence.py +0 -0
  703. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_training_speed.py +0 -0
  704. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_trust_remote_code.py +0 -0
  705. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_tui.py +0 -0
  706. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ui.py +0 -0
  707. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ui_chat.py +0 -0
  708. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ui_config_builder.py +0 -0
  709. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ui_live_monitor.py +0 -0
  710. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_ui_metrics.py +0 -0
  711. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_unsloth.py +0 -0
  712. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0401_part_c.py +0 -0
  713. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0401_part_d.py +0 -0
  714. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0401_part_e.py +0 -0
  715. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0402_part_a.py +0 -0
  716. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0402_part_b.py +0 -0
  717. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0403_part_a.py +0 -0
  718. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0403_part_b.py +0 -0
  719. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0403_part_c.py +0 -0
  720. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0404_part_a.py +0 -0
  721. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0404_part_b.py +0 -0
  722. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0405_part_a.py +0 -0
  723. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0406_part_a.py +0 -0
  724. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0410_part_a.py +0 -0
  725. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0410_part_b.py +0 -0
  726. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0410_part_c.py +0 -0
  727. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0420.py +0 -0
  728. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0430_part_a.py +0 -0
  729. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0430_part_b.py +0 -0
  730. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0430_part_c.py +0 -0
  731. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0430_part_d.py +0 -0
  732. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0440_part_a.py +0 -0
  733. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0440_part_b.py +0 -0
  734. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0440_part_c.py +0 -0
  735. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0440_part_d.py +0 -0
  736. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0440_review_followups.py +0 -0
  737. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0450.py +0 -0
  738. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0460_part_a.py +0 -0
  739. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0460_part_b.py +0 -0
  740. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0470_part_a.py +0 -0
  741. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0470_part_b.py +0 -0
  742. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0480_part_a.py +0 -0
  743. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0480_part_b.py +0 -0
  744. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0490.py +0 -0
  745. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0500_part_a.py +0 -0
  746. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0500_part_b.py +0 -0
  747. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0500_part_c.py +0 -0
  748. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0500_part_d.py +0 -0
  749. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0500_part_e.py +0 -0
  750. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0510.py +0 -0
  751. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0520.py +0 -0
  752. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0530.py +0 -0
  753. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v05310.py +0 -0
  754. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v05311.py +0 -0
  755. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0531_109.py +0 -0
  756. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0531_139.py +0 -0
  757. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0531_142.py +0 -0
  758. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0531_82.py +0 -0
  759. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0532.py +0 -0
  760. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0533.py +0 -0
  761. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0534.py +0 -0
  762. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0535.py +0 -0
  763. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0536.py +0 -0
  764. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0537.py +0 -0
  765. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0538.py +0 -0
  766. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0539.py +0 -0
  767. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0540.py +0 -0
  768. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0550.py +0 -0
  769. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0550_followups.py +0 -0
  770. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0560.py +0 -0
  771. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0570_part_a.py +0 -0
  772. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0570_part_b.py +0 -0
  773. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0570_part_c.py +0 -0
  774. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0570_part_d.py +0 -0
  775. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0580.py +0 -0
  776. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0590.py +0 -0
  777. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0600_part_a.py +0 -0
  778. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0600_part_b.py +0 -0
  779. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0600_part_c.py +0 -0
  780. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0600_part_d.py +0 -0
  781. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0600_part_e.py +0 -0
  782. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0600_part_f.py +0 -0
  783. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0610_part_a.py +0 -0
  784. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0610_part_b.py +0 -0
  785. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0610_part_c.py +0 -0
  786. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0610_part_d.py +0 -0
  787. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0610_part_e.py +0 -0
  788. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0620_followups.py +0 -0
  789. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0620_part_a.py +0 -0
  790. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0620_part_b.py +0 -0
  791. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0620_part_c.py +0 -0
  792. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0620_part_d.py +0 -0
  793. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0620_part_e.py +0 -0
  794. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0630_followups.py +0 -0
  795. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0630_part_a.py +0 -0
  796. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0630_part_b.py +0 -0
  797. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0630_part_c.py +0 -0
  798. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0630_part_d.py +0 -0
  799. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0630_part_e.py +0 -0
  800. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0631_206.py +0 -0
  801. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_followups.py +0 -0
  802. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_part_a.py +0 -0
  803. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_part_b.py +0 -0
  804. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_part_c.py +0 -0
  805. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_part_d.py +0 -0
  806. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_part_e.py +0 -0
  807. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0640_part_f.py +0 -0
  808. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0650_followups.py +0 -0
  809. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0650_part_a.py +0 -0
  810. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0650_part_b.py +0 -0
  811. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0650_part_c.py +0 -0
  812. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0650_part_d.py +0 -0
  813. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0650_part_e.py +0 -0
  814. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_cli.py +0 -0
  815. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_followups.py +0 -0
  816. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_part_a.py +0 -0
  817. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_part_b.py +0 -0
  818. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_part_c.py +0 -0
  819. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_part_d.py +0 -0
  820. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0660_part_e.py +0 -0
  821. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_followups.py +0 -0
  822. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_part_a.py +0 -0
  823. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_part_b.py +0 -0
  824. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_part_c.py +0 -0
  825. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_part_d.py +0 -0
  826. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_part_e.py +0 -0
  827. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0670_part_f.py +0 -0
  828. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0680_followups.py +0 -0
  829. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0680_part_a.py +0 -0
  830. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0680_part_b.py +0 -0
  831. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0680_part_c.py +0 -0
  832. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0680_part_d.py +0 -0
  833. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0680_part_e.py +0 -0
  834. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0690_part_a.py +0 -0
  835. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0690_part_b.py +0 -0
  836. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0690_part_c.py +0 -0
  837. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0690_part_d.py +0 -0
  838. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0690_part_e.py +0 -0
  839. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0700_part_a.py +0 -0
  840. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0700_part_b.py +0 -0
  841. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0700_part_c.py +0 -0
  842. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0700_part_d.py +0 -0
  843. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0700_part_e.py +0 -0
  844. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0700_part_f.py +0 -0
  845. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07110.py +0 -0
  846. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07111.py +0 -0
  847. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07112.py +0 -0
  848. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07113.py +0 -0
  849. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07114.py +0 -0
  850. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07115.py +0 -0
  851. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07116.py +0 -0
  852. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07117.py +0 -0
  853. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07118.py +0 -0
  854. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07119.py +0 -0
  855. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0712.py +0 -0
  856. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07120.py +0 -0
  857. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07121.py +0 -0
  858. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07122.py +0 -0
  859. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07123.py +0 -0
  860. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07124.py +0 -0
  861. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07125.py +0 -0
  862. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07126.py +0 -0
  863. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07127.py +0 -0
  864. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07128.py +0 -0
  865. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07129.py +0 -0
  866. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0713.py +0 -0
  867. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07130.py +0 -0
  868. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07131.py +0 -0
  869. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07132.py +0 -0
  870. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07133.py +0 -0
  871. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v07134.py +0 -0
  872. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0714.py +0 -0
  873. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0715.py +0 -0
  874. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0716.py +0 -0
  875. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0717.py +0 -0
  876. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0718.py +0 -0
  877. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_v0719.py +0 -0
  878. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_validator.py +0 -0
  879. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_vision.py +0 -0
  880. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_vllm_serve.py +0 -0
  881. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_warmup.py +0 -0
  882. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_why.py +0 -0
  883. {soup_cli-0.71.34 → soup_cli-0.71.35}/tests/test_windows_encoding.py +0 -0
@@ -12,6 +12,65 @@ reproducing 70+ versions of notes.
12
12
 
13
13
  ## [Unreleased]
14
14
 
15
+ ## [0.71.35] - 2026-07-15
16
+
17
+ ### Added
18
+ - **Compliance templates — `soup init --template hipaa|soc2|eu-ai-act|sr-11-7`.**
19
+ Four regulation-shaped starting configs. Soup's compliance controls are CLI
20
+ flags/commands rather than config keys, so each template is a valid training
21
+ config plus header comments naming the exact commands for that regime
22
+ (PHI scrubbing + air-gap for HIPAA, BOM/attest/sign for SOC 2, Annex XI +
23
+ energy tracking for the EU AI Act, repro-receipt + diagnose/ship for SR 11-7).
24
+ Templates default to a license-clean Apache-2.0 base.
25
+ - **`soup card <registry-id> -o MODELCARD.md` — model-card autogen.** Turns a
26
+ Local Model Registry entry into a publishable, provenance-carrying HF model
27
+ card: base model, training config, eval scorecard, config/data hashes,
28
+ lineage (ancestors) and a table of every registered artifact. Adapter vs
29
+ full-model is inferred from registered artifacts, falling back to the training
30
+ config (LoRA rank, with Spectrum/LISA full-FT correctly treated as dense), so
31
+ the card sets the right `library_name` and never misreports the model type.
32
+ - **`soup push --card <registry-id>`** — render that registry-driven card and
33
+ upload it as `README.md`, overriding the auto-generated one. A bad ref fails
34
+ fast before any network call; HF hub only.
35
+ - **`soup ci init` — fine-tuning CI.** Writes `.github/workflows/soup-gate.yml`,
36
+ a PR gate chaining `soup data validate` → `soup expect` →
37
+ `soup ship --evidence` (exit 2 blocks the merge). Every interpolated path is
38
+ validated to stay under the repo root and shell-quoted; the branch and Python
39
+ version are regex-gated; the write is atomic, symlink-rejecting, and refuses
40
+ to clobber an existing workflow without `--force`.
41
+ - **Compliance quickstart** — a new [docs/compliance.md](docs/compliance.md)
42
+ walkthrough: template → PII scrub → train with receipt/Annex XI/energy →
43
+ registry → BOM + attestation → scan/sign/verify → air-gap → model card → CI gate.
44
+
45
+ ### Fixed
46
+ - **GGUF export now actually works on Windows** (validated end-to-end against a
47
+ locally-built llama.cpp: SmolLM2-135M → q4_0 / q4_k_m / q8_0 / f16 → `soup deploy
48
+ ollama` → live inference). Four real bugs, each of which independently broke the
49
+ path:
50
+ - **`soup export --format gguf` cloned llama.cpp into your current directory.**
51
+ `SOUP_DIR` is the bare name `.soup`, but the lookup used it relatively rather
52
+ than anchoring to `~` like the rest of the codebase — so the canonical
53
+ `~/.soup/llama.cpp` was never found and a fresh ~200 MB checkout was dropped
54
+ into whatever directory you ran from.
55
+ - **The first GGUF export downgraded your PyTorch and broke CUDA.** The auto-clone
56
+ ran `pip install -r <llama.cpp>/requirements.txt` into your interpreter, and
57
+ llama.cpp pins `torch~=2.2.1` against the CPU wheel index (observed:
58
+ torch 2.5.1+cu → 2.2.2+cpu, transformers 4.57 → 4.46). Soup now installs only
59
+ the convert script's extra dependencies, unpinned, and never touches torch.
60
+ - **A correctly-built llama.cpp was not found on Windows.** MSVC (like Xcode) is a
61
+ multi-config generator and emits `build/bin/Release/llama-quantize.exe`; only the
62
+ flat single-config layout was searched.
63
+ - **`soup deploy ollama` failed on a relative GGUF path** with "pull model manifest:
64
+ file does not exist" — Ollama resolves `FROM` against the Modelfile's directory,
65
+ and Soup writes the Modelfile to a temp dir. The Modelfile now emits an absolute path.
66
+ - **Model-card injection hardening (affects the pre-existing `soup push` card too).**
67
+ The `## Training` section interpolated `base` / `task` / `scheduler` / `recipe`
68
+ unescaped. Since `SoupConfig.base` and `scheduler` have no charset validator, a
69
+ crafted-but-valid config could smuggle raw HTML — or a backtick breaking out of
70
+ the surrounding code span — into a card published to the Hub. All values now go
71
+ through the markdown escaper, which additionally neutralises backticks and
72
+ strips C0/ESC control bytes.
73
+
15
74
  ## [0.71.34] - 2026-07-15
16
75
 
17
76
  ### Added
@@ -117,10 +117,10 @@ src/soup_cli/
117
117
  data/traces/ - Trace-to-Preference harvester (v0.26.0)
118
118
  data/collators.py - CrossDocCollator for sample packing (v0.33.0)
119
119
  utils/ - GPU, errors, MoE, GaLore, QAT, Unsloth, vLLM, SGLang, Liger, FlashAttn, FSDP, Ring Attention, long-context, quality, curriculum, freeze, dataset-registry, mlx, peft_builder, paths, topology, launcher, mii, pipeline, cut_ce, fp8, gradient_ckpt, kernel_picker, cross_doc_attn, activation_offload, hf, spec_pairing, structured_output, metrics, tracing, auto_quant, lr_finder, grad_accum, mixed_precision, warmup, spike_recovery, convergence, v028_features, multipack_sampler, multipack, neat_packing, jinja_analyzer, quant_menu, relora, peft_patches, peft_wiring, dpo_variants, optimizer_zoo, lr_groups, loftq_init, block_expansion, tts, classifier, distill, bitnet, ebft_gdpo, moe_quant, reasoning_effort, gguf_quant, kv_cache, advanced_precision, save_formats, deploy_measure, advise, advise_history, adapter_diff, adapter_merge, blame, adapter_branch, unlearning, unlearning_eval, knowledge_edit, edit_governor, edit_diff, ra_dit, steering, citation_faithful, grace_codebook, ingest_sources, prune_prompt, active_sampler, ab_test, drift_alarm, tunability, terraform_plan, env_lock, hardware_fit, completions, license_advisor, behavior_battery, capability_suite, checklist_dsl, irt, sae_diff, sleeper_probe, interference, probe_pack, cmaes_merge, vector_bank, mole_routing, adapter_pr, soup_lock, adapter_bisect, prompt_compile, prompt_distill, compile_tools, apple_adapter, local_rl, build_dag, expectations, magpie, persona_hub, brain_rot, reward_hacking, uld, minillm, rl_checkpoint, iterative_dpo, echo_trap, mod, local_rl_scheduler, spectrum_scan, ship_verdict, reward_hack_control, data_doctor, data_lint, shrink, best_of_n, evolve
120
- templates/ - 17 built-in soup.yaml templates (YAML + manifest.json) with load_template loader (v0.39.0, +bco v0.40.0)
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 (312 files, 15906 tests)
123
+ tests/ - Test suite (313 files, 16001 tests)
124
124
  examples/ - Real-world config examples and datasets
125
125
  ```
126
126
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soup-cli
3
- Version: 0.71.34
3
+ Version: 0.71.35
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,18 +193,28 @@ infrastructure instead of improving models. Soup fixes that.
193
193
 
194
194
  ## What's New
195
195
 
196
- **v0.71.34adapter algebra + LISA.** Compose fine-tunes like vectors, and train big-model quality on a small-model memory budget.
197
-
198
- - **`soup adapters arithmetic "coder + 0.5*math - toxic"`.** Task-vector algebra over LoRA
199
- adapters (arXiv:2212.04089) **add, scale, and NEGATE** trained behaviours into one merged
200
- adapter. The math is done right: a LoRA's effective delta `ΔW = B·A` scales *linearly* with
201
- each coefficient (subtracting an adapter actually removes its behaviour), not quadratically.
202
- Same-base + backdoor-scan gated; mixed ranks refused with a clear message.
203
- - **LISA layerwise importance sampling (`training.lisa_enabled`).** Full-fine-tuning quality
204
- at LoRA-like memory (arXiv:2403.17919): every N steps LISA re-activates a small random set of
205
- decoder layers (embeddings + head always on) and freezes the rest. Live on a 4 GB GPU.
206
- - **Verified on real models (RTX 3050).** LISA trains SmolLM2-135M end-to-end; `2·a` produces an
207
- adapter whose ΔW is *exactly* 2× the original's — the merged adapter loads and serves.
196
+ **v0.71.35the compliance pack.** Ship a regulated fine-tune with the paperwork it needs: start from a regulation-shaped config, publish a provenance-carrying model card, and gate every PR in CI.
197
+
198
+ - **`soup init --template hipaa|soc2|eu-ai-act|sr-11-7`.** Four regulation-shaped starting
199
+ configs, each documenting the exact commands for that regime PHI scrubbing + air-gap,
200
+ BOM/attest/sign, EU Annex XI + energy tracking, or repro-receipt + diagnose/ship.
201
+ - **`soup card <registry-id>` `MODELCARD.md`.** Turn a registry entry into a publishable HF
202
+ model card: training config, eval scorecard, config/data hashes, lineage, and every
203
+ registered artifact. `soup push --card` uploads it as the README, so every public push
204
+ carries its provenance.
205
+ - **`soup ci init` fine-tuning CI.** Writes a GitHub Actions gate that runs
206
+ `data validate` `expect` `ship --evidence` on each PR; a regression exits 2 and
207
+ blocks the merge.
208
+ - **Compliance quickstart** ([docs/compliance.md](docs/compliance.md)) — the whole path from
209
+ template to air-gapped, signed, attested, carded model.
210
+ - **GGUF export fixed on Windows.** Validated end-to-end for the first time (SmolLM2 →
211
+ q4_0/q4_k_m/q8_0/f16 → Ollama → live inference), which surfaced four real bugs: the export
212
+ cloned llama.cpp into your *current directory*, its first run **downgraded your PyTorch to
213
+ CPU-only** (breaking CUDA), a correctly-built llama.cpp wasn't found under MSVC, and
214
+ `deploy ollama` rejected relative GGUF paths. All fixed.
215
+ - **Hardening:** the model-card generator (including the existing `soup push` card) no longer
216
+ interpolates unescaped config values — a crafted `base`/`scheduler` can't smuggle HTML into
217
+ a card published on the Hub.
208
218
 
209
219
  ```bash
210
220
  soup adapters arithmetic "coder - toxic" \
@@ -49,18 +49,28 @@ infrastructure instead of improving models. Soup fixes that.
49
49
 
50
50
  ## What's New
51
51
 
52
- **v0.71.34adapter algebra + LISA.** Compose fine-tunes like vectors, and train big-model quality on a small-model memory budget.
53
-
54
- - **`soup adapters arithmetic "coder + 0.5*math - toxic"`.** Task-vector algebra over LoRA
55
- adapters (arXiv:2212.04089) **add, scale, and NEGATE** trained behaviours into one merged
56
- adapter. The math is done right: a LoRA's effective delta `ΔW = B·A` scales *linearly* with
57
- each coefficient (subtracting an adapter actually removes its behaviour), not quadratically.
58
- Same-base + backdoor-scan gated; mixed ranks refused with a clear message.
59
- - **LISA layerwise importance sampling (`training.lisa_enabled`).** Full-fine-tuning quality
60
- at LoRA-like memory (arXiv:2403.17919): every N steps LISA re-activates a small random set of
61
- decoder layers (embeddings + head always on) and freezes the rest. Live on a 4 GB GPU.
62
- - **Verified on real models (RTX 3050).** LISA trains SmolLM2-135M end-to-end; `2·a` produces an
63
- adapter whose ΔW is *exactly* 2× the original's — the merged adapter loads and serves.
52
+ **v0.71.35the compliance pack.** Ship a regulated fine-tune with the paperwork it needs: start from a regulation-shaped config, publish a provenance-carrying model card, and gate every PR in CI.
53
+
54
+ - **`soup init --template hipaa|soc2|eu-ai-act|sr-11-7`.** Four regulation-shaped starting
55
+ configs, each documenting the exact commands for that regime PHI scrubbing + air-gap,
56
+ BOM/attest/sign, EU Annex XI + energy tracking, or repro-receipt + diagnose/ship.
57
+ - **`soup card <registry-id>` `MODELCARD.md`.** Turn a registry entry into a publishable HF
58
+ model card: training config, eval scorecard, config/data hashes, lineage, and every
59
+ registered artifact. `soup push --card` uploads it as the README, so every public push
60
+ carries its provenance.
61
+ - **`soup ci init` fine-tuning CI.** Writes a GitHub Actions gate that runs
62
+ `data validate` `expect` `ship --evidence` on each PR; a regression exits 2 and
63
+ blocks the merge.
64
+ - **Compliance quickstart** ([docs/compliance.md](docs/compliance.md)) — the whole path from
65
+ template to air-gapped, signed, attested, carded model.
66
+ - **GGUF export fixed on Windows.** Validated end-to-end for the first time (SmolLM2 →
67
+ q4_0/q4_k_m/q8_0/f16 → Ollama → live inference), which surfaced four real bugs: the export
68
+ cloned llama.cpp into your *current directory*, its first run **downgraded your PyTorch to
69
+ CPU-only** (breaking CUDA), a correctly-built llama.cpp wasn't found under MSVC, and
70
+ `deploy ollama` rejected relative GGUF paths. All fixed.
71
+ - **Hardening:** the model-card generator (including the existing `soup push` card) no longer
72
+ interpolates unescaped config values — a crafted `base`/`scheduler` can't smuggle HTML into
73
+ a card published on the Hub.
64
74
 
65
75
  ```bash
66
76
  soup adapters arithmetic "coder - toxic" \
@@ -14,6 +14,7 @@ feature reference — every `soup` capability, grouped by area.
14
14
  | [Evaluation & probes](evaluation.md) | Eval design/gate, eval-gated training, benchmarks, NLG metrics, calibration, Elo arena, diagnose, `soup ship` verdict, post-train X-ray probes, A/B, drift, tunability, `soup advise` |
15
15
  | [Serving & export](serving-and-export.md) | OpenAI-compatible server, batch inference, benchmarking, merge/export, Anthropic Messages endpoint, speculative decoding (train + measure your own draft), deploy autopilot, Web UI, Agent Forge |
16
16
  | [Adapters, registry & governance](adapters-and-governance.md) | Adapter lifecycle/management, model registry, Soup Cans, the data flywheel (`soup loop`), knowledge editing, steering, supply-chain controls |
17
+ | [Compliance & governance quickstart](compliance.md) | HIPAA/SOC2/EU-AI-Act/SR-11-7 `init` templates, provenance (BOM/attest/repro-receipt), audit log, air-gap, model-card autogen (`soup card`), CI gate (`soup ci init`) |
17
18
  | [Backends, platform & ops](backends-and-ops.md) | MLX/Unsloth backends, Modal cloud GPU training, alternative hubs, HF Hub integration, autopilot, experiment tracking, plan/apply, env lockfiles, hardware-fit, completions, plugins, utility commands |
18
19
  | [Command reference](commands.md) | The full `soup` command list |
19
20
  | [Supported models & extras](models.md) | Recommended model families, the VRAM size guide, the pip extras matrix |
@@ -8,6 +8,7 @@
8
8
 
9
9
  ```
10
10
  soup init [--template chat|code|...|audio] Create config
11
+ soup init --template hipaa|soc2|eu-ai-act|sr-11-7 Compliance-shaped starting config + the commands for that regime (v0.71.35)
11
12
  soup autopilot --model <id> --data d.jsonl --goal <g> Zero-configsoup train --config soup.yaml Start training
12
13
  soup train --config soup.yaml --tensorboard Train with TensorBoard logging
13
14
  soup train --config soup.yaml --fsdp full_shard Train with FSDP2
@@ -159,6 +160,9 @@ soup ship --evidence ev.json [--output v.json] Decide offline from pre-computed
159
160
  soup ship ... --task-mode judge_score --judge-model ollama://llama3.1 Leg-1 via LLM-as-a-judge
160
161
  soup ship ... --task-mode pairwise --judge-model ollama://llama3.1 Leg-1 via swap-debiased judge win-rate (base=0.5) (v0.71.31)
161
162
  soup ship ... --general-suite mmlu,gsm8k --baseline base.json lm-eval leg-2 + recorded base scores
163
+ soup card <registry-id> -o MODELCARD.md HF model card from a registry entry: training config, evals, hashes, lineage, artifacts (v0.71.35)
164
+ soup push --model ./out --repo you/m --card <registry-id> Upload that registry-driven card as the README (HF only) (v0.71.35)
165
+ soup ci init [--data d.jsonl --suite s.yaml --evidence ev.json] [--branch main --python 3.11] [--force] Write .github/workflows/soup-gate.yml: data validate -> expect -> ship gate on every PR (v0.71.35)
162
166
  soup mcp serve MCP server over stdio (drive Soup from Claude Code / Cursor / Cline; requires [mcp] extra) (v0.71.28)
163
167
  soup mcp serve --allow-mutating Also expose plan-only train_start / export tools (never execute) (v0.71.28)
164
168
  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)
@@ -0,0 +1,136 @@
1
+ # Compliance & governance quickstart
2
+
3
+ [← Back to the docs index](README.md)
4
+
5
+ Soup ships an end-to-end compliance workflow: start from a regulation-shaped
6
+ config, train with provenance capture, sign + attest the artifact, keep an audit
7
+ trail, and move it across an air gap — then publish a documented model card and
8
+ gate future changes in CI.
9
+
10
+ - **Pre-wired configs:** `soup init --template hipaa|soc2|eu-ai-act|sr-11-7`
11
+ - **Provenance:** `soup train --repro-receipt` · `soup bom emit` · `soup attest emit`
12
+ - **Integrity:** `soup adapters sign` / `verify` · `soup adapters scan`
13
+ - **Audit trail:** the HIPAA/SOC2 audit log is on by default (`soup audit-log tail`)
14
+ - **Air gap:** `soup airgap-bundle`
15
+ - **Publish:** `soup card <registry-id>` → `MODELCARD.md` (or `soup push --card`)
16
+ - **CI gate:** `soup ci init` → a PR workflow that runs validate → expect → ship
17
+
18
+ ---
19
+
20
+ ## 1. Start from a compliance template
21
+
22
+ Each template is a normal training config plus header comments listing the exact
23
+ compliance commands to run around it. Pick the regime you operate under:
24
+
25
+ ```bash
26
+ soup init --template hipaa # Protected Health Information
27
+ soup init --template soc2 # SOC 2 Trust Services Criteria
28
+ soup init --template eu-ai-act # EU AI Act Annex XI/XII
29
+ soup init --template sr-11-7 # SR 11-7 Model Risk Management
30
+ ```
31
+
32
+ The compliance controls are Soup **CLI flags/commands, not config keys** — the
33
+ template header documents which ones apply. The steps below are the common path.
34
+
35
+ ## 2. Clean the data before training
36
+
37
+ ```bash
38
+ soup data pii ./data/train.jsonl # flag emails / phones / SSNs / MRNs
39
+ soup data decontaminate ./data/train.jsonl # drop public-benchmark overlap
40
+ ```
41
+
42
+ ## 3. Train with a reproducibility receipt (+ Annex XI / energy for the EU)
43
+
44
+ ```bash
45
+ # SR 11-7 / SOC 2 / HIPAA: capture seeds, kernels, GPU, OS
46
+ soup train --config soup.yaml --repro-receipt receipt.json
47
+
48
+ # EU AI Act: auto-generate the Annex XI/XII documentation + measure energy
49
+ soup train --config soup.yaml \
50
+ --annex-xi annex_xi.md \
51
+ --track-energy --energy-country DEU --energy-out energy.json
52
+ ```
53
+
54
+ The audit log records every command automatically:
55
+
56
+ ```bash
57
+ soup audit-log tail # review the trail
58
+ soup audit-log rotate # force a rotation pass
59
+ ```
60
+
61
+ ## 4. Register the run, then emit BOM + attestation
62
+
63
+ ```bash
64
+ soup registry push --run-id <run-id> --name my-model --tag v1
65
+
66
+ soup bom emit --name my-model --base-sha <hex> --config-sha <hex> \
67
+ --energy energy.json --format both # CycloneDX + SPDX
68
+ soup attest emit --stage train --subject my-model --sha <hex> \
69
+ --sign ed25519 --key key.pem # in-toto + SLSA-3
70
+ ```
71
+
72
+ ## 5. Sign, scan, and verify the artifact
73
+
74
+ ```bash
75
+ soup adapters scan ./output # weight-space backdoor scan
76
+ soup adapters sign ./output --backend ed25519 --generate-key key.pem
77
+ soup adapters verify ./output --strict --public-key key.pub.pem
78
+ ```
79
+
80
+ ## 6. Air-gap transfer (optional)
81
+
82
+ ```bash
83
+ soup airgap-bundle --model ./output --output my-model.tar --repro-receipt receipt.json
84
+ ```
85
+
86
+ ## 7. Generate a documented model card
87
+
88
+ Turn the registry entry into a provenance-rich `MODELCARD.md` — base model,
89
+ training config, eval scorecard, config/data hashes, lineage, and every
90
+ registered artifact:
91
+
92
+ ```bash
93
+ soup card my-model:v1 -o MODELCARD.md
94
+ # or, when uploading to the Hub, override the auto-generated card:
95
+ soup push --model ./output --repo you/my-model --card my-model:v1
96
+ ```
97
+
98
+ ## 8. Gate future changes in CI
99
+
100
+ Write a GitHub Actions workflow that blocks a PR unless the data validates, the
101
+ expectations suite passes, and the SHIP verdict is green:
102
+
103
+ ```bash
104
+ soup ci init --data data/train.jsonl --suite expectations.yaml --evidence ship_evidence.json
105
+ # writes .github/workflows/soup-gate.yml
106
+ ```
107
+
108
+ The generated job runs, in order:
109
+
110
+ ```
111
+ soup data validate <data> # dataset format compliance
112
+ soup expect <data> <suite> # PII / token-length / refusal / judge expectations
113
+ soup ship --evidence <ev.json> # SHIP / DON'T-SHIP (exit 2 blocks the merge)
114
+ ```
115
+
116
+ A minimal `expectations.yaml` for the second step:
117
+
118
+ ```yaml
119
+ expectations:
120
+ - name: expect_no_pii
121
+ - name: expect_token_length_between
122
+ min_tokens: 1
123
+ max_tokens: 512
124
+ ```
125
+
126
+ Supported names: `expect_no_pii`, `expect_token_length_between`,
127
+ `expect_no_refusal_pattern`, `expect_chosen_preferred_over_rejected_by_judge`.
128
+
129
+ Every path is shell-quoted and validated to stay under the repo root, so the
130
+ rendered workflow is injection-safe. Edit the paths to match your repo.
131
+
132
+ ---
133
+
134
+ See also: [Adapters, registry & governance](adapters-and-governance.md) for the
135
+ full supply-chain command set, and [Evaluation & probes](evaluation.md) for the
136
+ `soup ship` verdict engine.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "soup-cli"
7
- version = "0.71.34"
7
+ version = "0.71.35"
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.34"
3
+ __version__ = "0.71.35"
@@ -21,7 +21,9 @@ from soup_cli.commands import ( # noqa: E402
21
21
  autopilot,
22
22
  bench,
23
23
  can,
24
+ card,
24
25
  chat,
26
+ ci,
25
27
  cost,
26
28
  data,
27
29
  deploy,
@@ -98,6 +100,8 @@ app.command()(cost.cost)
98
100
  app.command()(push.push)
99
101
  app.command(name="export")(export.export)
100
102
  app.command()(merge.merge)
103
+ app.command(name="card")(card.card)
104
+ app.add_typer(ci.app, name="ci", help="Fine-tuning CI: init a PR gate workflow.")
101
105
  app.add_typer(
102
106
  data.app, name="data",
103
107
  help="Dataset tools: inspect, convert, merge, dedup, validate, stats.",