soup-cli 0.71.3__tar.gz → 0.71.4__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.
- {soup_cli-0.71.3 → soup_cli-0.71.4}/CHANGELOG.md +45 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/CONTRIBUTING.md +1 -1
- {soup_cli-0.71.3 → soup_cli-0.71.4}/PKG-INFO +16 -14
- {soup_cli-0.71.3 → soup_cli-0.71.4}/README.md +15 -13
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/adapters-and-governance.md +35 -1
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/commands.md +8 -5
- {soup_cli-0.71.3 → soup_cli-0.71.4}/pyproject.toml +1 -1
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/__init__.py +1 -1
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/adapters.py +225 -50
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/history.py +14 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/loop.py +73 -5
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/registry/store.py +2 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_branch.py +119 -1
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_merge.py +145 -7
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_pr.py +151 -1
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/cmaes_merge.py +149 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/loop_daemon.py +68 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/loop_iteration.py +104 -0
- soup_cli-0.71.4/src/soup_cli/utils/loop_stages.py +418 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/loop_state.py +7 -0
- soup_cli-0.71.4/tests/test_v0714.py +1784 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.dockerignore +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/FUNDING.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/pull_request_template.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/workflows/ci.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/workflows/docker.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/workflows/publish.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.github/workflows/recipe-validation.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.gitignore +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/.pre-commit-config.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/AGENTS.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/CODEOWNERS +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/CODE_OF_CONDUCT.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/Dockerfile +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/LICENSE +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/NOTICE +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/SECURITY.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docker-compose.yml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/README.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/backends-and-ops.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/data.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/evaluation.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/models.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/peft-and-efficiency.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/performance-and-quantization.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/serving-and-export.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/docs/training.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/README.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/dpo_chat.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/dpo_example.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/grpo_reasoning.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/rlhf_step1_sft.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/rlhf_step2_reward.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/rlhf_step3_ppo.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/sft_basic.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/configs/vision_llama.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/data/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/data/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/data/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/data/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/synthetic_workflow.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/examples/synthetic_workflow.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/soup.png +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/soup_logo_svg.svg +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/__main__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/autopilot/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/autopilot/analyzer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/autopilot/decisions.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/autopilot/generate_config.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/pack.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/publish.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/run.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/schema.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/unpack.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cans/verify.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/cli.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/_eval_v0550.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/_eval_v0610.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/_eval_v0650.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/ab.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/active_sample.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/advise.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/agent.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/airgap.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/apple_adapter.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/attest.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/audit_log.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/autopilot.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/bench.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/bom.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/build.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/can.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/chat.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/compile_cmd.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/compile_tools.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/completions.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/cost.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/data.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/data_forge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/data_mix.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/data_score.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/delinearize_llama4.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/deploy.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/diagnose.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/diff.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/distill_prompt.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/doctor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/drift_alarm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/edit.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/env.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/eval.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/expect.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/export.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/fetch.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/generate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/infer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/ingest.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/init.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/iterative_dpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/license_advisor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/llama.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/local_rl.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/lock.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/merge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/migrate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/monitor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/plan.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/plugins.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/probe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/profile.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/prune_prompt.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/push.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/quantize.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/quickstart.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/recipes.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/registry.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/runs.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/serve.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/steer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/sweep.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/tokenizer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/train.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/tui.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/tunability.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/ui.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/commands/why.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/config/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/config/loader.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/config/schema.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/augment.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/chat_templates.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/collators.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/formats.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/loader.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/loss_mask.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/providers/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/providers/_utils.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/providers/anthropic.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/providers/ollama.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/providers/vllm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/sft_format.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/code.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/conversation.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/preference.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/qa.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/reasoning.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/tool_calling.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/templates/verifiable.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/traces/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/traces/pair_builder.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/traces/parsers.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/traces/quality.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/data/validator.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/arena.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/calibrate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/custom.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/forgetting.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/gate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/human.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/judge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/leaderboard.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/eval/quant_check.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/experiment/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/experiment/tracker.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/migrate/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/migrate/axolotl.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/migrate/common.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/migrate/llamafactory.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/migrate/unsloth.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/callback.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/display.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/hf_push.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/plugin_callback.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/monitoring/trace_logger.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/plugins/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/py.typed +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/recipes/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/recipes/catalog.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/registry/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/registry/attach.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/registry/diff.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/registry/hashing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/audio.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/bco.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/chat.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/code.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/embedding.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/ipo.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/kto.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/longcontext.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/manifest.json +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/medical.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/moe.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/orpo.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/pretrain.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/reasoning.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/rlhf.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/simpo.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/tool-calling.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/templates/vision.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/bco.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/classifier.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/distill.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/dpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/embedding.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/grpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/ipo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/kto.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/mlx_dpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/mlx_grpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/mlx_routing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/mlx_sft.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/orpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/ppo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/preference.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/pretrain.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/prm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/reward_model.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/rewards.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/sft.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/simpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/trainer/unlearn.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/tui_app.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/app.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/plugins/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/static/app.js +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/static/index.html +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/static/logo.png +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/static/logo.svg +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/ui/static/style.css +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/_eval_text.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ab_test.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/activation_offload.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/active_sampler.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_bisect.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_diff.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_scan.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/adapter_sign.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/advanced_precision.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/advise.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/advise_history.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/agent_forge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/agent_rollout.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/airgap_bundle.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/annex_xi.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/anthropic_messages.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/apple_adapter.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/attest.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/audit_log.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/auto_quant.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/backend_detect.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/batch_probe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/behavior_battery.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/bitnet.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/blame.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/block_expansion.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/bom.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/brain_rot.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/brain_rot_lang.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/build_dag.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/canary_discovery.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/canary_router.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/capability_suite.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/checklist_dsl.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/citation_faithful.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/classifier.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/compile_tools.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/completions.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/constants.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/convergence.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/crash.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/cross_doc_attn.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/curriculum.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/cut_ce.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/data_forge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/data_mix.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/data_pipeline.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/data_score.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/deepspeed.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/delinearize_llama4.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/demo_bundles.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/deploy_autopilot.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/deploy_measure.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/_common.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/badge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/contamination.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/format.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/memorization.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/refusal.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/report.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/diagnose/runner.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/distill.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/dpo_variants.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/drift_alarm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ebft_gdpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/echo_trap.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/edit_diff.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/edit_governor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/encoding.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/energy.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/env_lock.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/errors.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/eval_design.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/eval_gate_hook.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/expectations.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/fetch_examples.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/flash_attn.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/fp8.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/freeze.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/fsdp.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/galore.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/gguf_quant.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/gpu.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/gpu_monitor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/grace_codebook.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/graceful_save.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/grad_accum.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/gradient_ckpt.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/grpo_long_context.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/grpo_variants.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/hardware_fit.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/hf.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/hf_space.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/hubs.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ingest_sources.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/integrations.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/interference.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/irt.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/iterative_dpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/jinja_analyzer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/kernel_picker.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/knowledge_edit.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/kv_cache.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/launcher.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/license_advisor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/license_matrix.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/liger.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/llama_proxy.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/llama_server_timings.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/local_rl.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/loftq_init.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/log_level.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/long_context.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/longlora.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/loop_budget.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/lr_finder.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/lr_groups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/magpie.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/metrics.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/mii.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/minillm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/mix_proxy.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/mixed_precision.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/mlx.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/moe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/moe_quant.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/mole_routing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/multipack.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/multipack_sampler.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/multipack_trainer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/namespace_pin.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/neat_packing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ngram_spec.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/nlg_metrics.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ollama.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/onboarding.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/optimizer_zoo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/paths.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/peft_builder.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/peft_patches.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/peft_wiring.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/persona_hub.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/pipeline.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/preference_combine.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/prm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/probe_pack.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/profiler.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/profiling.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/profiling_v0_43.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/prompt_compile.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/prompt_distill.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/prune_prompt.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/qat.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/qr_url.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/quality.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/quant_menu.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ra_dit.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/reasoning_effort.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/reasoning_parser.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/recipe_dag.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/recipe_run.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/registry.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/relora.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/replay.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/repro_receipt.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/reward_hacking.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ring_attention.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/rl_checkpoint.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/run_cost.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/sae_diff.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/save_formats.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/server_tools.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/sglang.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/shortcuts.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/signing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/sleeper_probe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/soup_lock.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/spec_pairing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/spike_recovery.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/sse_train_stream.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/steering.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/strict_safetensors.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/structured_output.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/sweep_config.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/tail_latency.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/terraform_plan.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/tool_outputs.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/topology.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/tracing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/trackers.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/train_event_buffer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/trainer_plugins.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/trust_remote.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/tts.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/tunability.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/ui_env.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/uld.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/unlearning.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/unlearning_eval.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/unsloth.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/v028_features.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/vector_bank.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/vllm.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/vscode_setup.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/warmup.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/src/soup_cli/utils/why.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/templates/chat.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/templates/code.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/templates/medical.yaml +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/__init__.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/conftest.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/qa/v053_qa.md +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_adapters.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_advanced_peft.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_assistant_mask.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_audio.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_auto_tuning.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_autopilot.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_awq_gptq_export.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_batch_probe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_bco.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_bench.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_brain_rot_multilingual.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_bugfixes.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_callback.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_cans.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_chat.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_chat_template.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_cli.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_cli_subprocess.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_config.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_cost.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_crash_reporter.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_curriculum.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_data.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_data_augment.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_data_sample.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_data_split.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_data_tools.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_dataset_hub.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_dataset_registry.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_deepspeed.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_deploy_ollama.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_diff.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_display.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_doctor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_dpo_example.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_dpo_variants.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_embedding.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_errors.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_eval.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_eval_gate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_eval_platform.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_export.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_formats.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_fp8_recipe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_freeze_training.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_generate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_gpu.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_grpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_hf_integration.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_infer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_inference_advanced.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_init.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ipo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_jinja_analyzer.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_kto.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_loader.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_log_level.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_loss_watchdog.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_merge.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_migrate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_mlx_backend.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_moe.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_multi_adapter.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_multi_gpu.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_multipack_config.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_multipack_invariants.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_multipack_sampler.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_neat_packing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_neftune_rslora.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_onnx_tensorrt_export.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_orpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_packing.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_a_wave1.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_a_wave2.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_part_f_hardening.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_peft_methods.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_peft_patches.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_performance.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_pissa_init.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ppo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_preference_dispatcher.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_preference_multi.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_preference_multi_runtime.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_pretrain.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_profile.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_profiling.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_progress.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_push.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_qat.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_quality_filter.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_quant_check.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_quant_menu.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_quickstart.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_rank_pattern.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_recipes.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_recipes_v031.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_refusal_multilingual.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_registry.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_relora.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_replay.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_resume.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_rlvr.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_run_cost.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_runs.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_serve.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_server_generate.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_sglang_serve.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_simpo.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_smoke_train.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_speculative_decoding.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_sweep.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_synth_data_pro.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_templates_yaml.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_tensorboard.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_tool_calling.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_trace_to_pref.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_tracker.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_trainer_coverage_v035.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_trainer_init.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_training_intelligence.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_training_speed.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_trust_remote_code.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_tui.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ui.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ui_chat.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ui_config_builder.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ui_live_monitor.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_ui_metrics.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_unsloth.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0401_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0401_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0401_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0402_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0402_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0403_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0403_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0403_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0404_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0404_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0405_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0406_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0410_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0410_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0410_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0420.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0430_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0430_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0430_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0430_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0440_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0440_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0440_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0440_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0440_review_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0450.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0460_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0460_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0470_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0470_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0480_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0480_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0490.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0500_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0500_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0500_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0500_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0500_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0510.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0520.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0530.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v05310.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v05311.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0531_109.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0531_139.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0531_142.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0531_82.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0532.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0533.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0534.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0535.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0536.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0537.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0538.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0539.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0540.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0550.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0550_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0560.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0570_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0570_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0570_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0570_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0580.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0590.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0600_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0600_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0600_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0600_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0600_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0600_part_f.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0610_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0610_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0610_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0610_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0610_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0620_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0620_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0620_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0620_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0620_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0620_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0630_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0630_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0630_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0630_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0630_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0630_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0631_206.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0640_part_f.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0650_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0650_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0650_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0650_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0650_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0650_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_cli.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0660_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0670_part_f.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0680_followups.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0680_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0680_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0680_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0680_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0680_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0690_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0690_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0690_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0690_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0690_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0700_part_a.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0700_part_b.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0700_part_c.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0700_part_d.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0700_part_e.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0700_part_f.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0712.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_v0713.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_validator.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_vision.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_vllm_serve.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_why.py +0 -0
- {soup_cli-0.71.3 → soup_cli-0.71.4}/tests/test_windows_encoding.py +0 -0
|
@@ -12,6 +12,51 @@ reproducing 70+ versions of notes.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.71.4] - 2026-06-02
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **Live canary verdict for `soup adapters merge`** — `--canary <suite.json>`
|
|
19
|
+
scores the merged adapter against the first input and classifies
|
|
20
|
+
**OK / MINOR / MAJOR** using the Quant-Lobotomy taxonomy (drop <2% OK, <5%
|
|
21
|
+
MINOR, else MAJOR). `--strict-verdict` exits 2 on MAJOR. Pre-scored
|
|
22
|
+
`{"baseline_scores","candidate_scores"}` suites run with no model load; a
|
|
23
|
+
`{"tasks":[...]}` suite uses an injectable scorer. Replaces the v0.57 `UNKNOWN`
|
|
24
|
+
stub.
|
|
25
|
+
- **Live evolutionary merge** — `soup adapters merge --strategy cmaes --eval
|
|
26
|
+
<suite> --budget <t>` now runs the full CMA-ES loop: each candidate is merged,
|
|
27
|
+
materialised, scored against the eval suite, and the best-weighted merge is
|
|
28
|
+
written to `--output`. Replaces the v0.67 plan-only stub.
|
|
29
|
+
- **Publish an adapter PR to GitHub** — `soup adapters pr <title> --base-sha
|
|
30
|
+
<hex> --adapter <path> --push owner/repo#N` posts the rendered PR Markdown as a
|
|
31
|
+
GitHub PR comment via `gh api` (argv-list, body over JSON stdin; no shell).
|
|
32
|
+
Token resolves from `GITHUB_TOKEN` / `GH_TOKEN`.
|
|
33
|
+
- **Pre-wired `soup loop` production stages** — `soup loop init --pre-wired` (or
|
|
34
|
+
`soup loop watch --pre-wired`) swaps the v0.58 no-op stage stubs for real
|
|
35
|
+
harvest (traces → preference pairs) → DPO train → eval-gate → canary-deploy
|
|
36
|
+
callables. `soup loop status` now shows the `pre_wired` flag.
|
|
37
|
+
- **Loop iterations as Soup Cans + Registry lineage** — `soup loop watch
|
|
38
|
+
--pack-cans` packs each successful iteration as a v0.26 Soup Can and appends a
|
|
39
|
+
Registry entry (tag `loop-iter`), chaining a real lineage DAG across
|
|
40
|
+
iterations visible through `soup history`. `soup loop replay <id> --extract
|
|
41
|
+
<dir>` unpacks a recorded iteration.
|
|
42
|
+
- **Branch pointers into the Registry** — `soup adapters branch <name>
|
|
43
|
+
--attach-to-registry <id>` links a branch snapshot to a Registry entry (shown
|
|
44
|
+
as a `branches` node in `soup history`); `soup adapters branch <name>
|
|
45
|
+
--from-registry <id>` derives a fresh snapshot's config + base from an entry.
|
|
46
|
+
|
|
47
|
+
### Security
|
|
48
|
+
- The backdoor-scan gate (v0.71.2 #192) and license-conflict gate (v0.60 Part E)
|
|
49
|
+
now run for **all** merge strategies, including `--strategy cmaes` (previously
|
|
50
|
+
bypassed because cmaes returned before the gates).
|
|
51
|
+
- `soup loop` canary deploy restricts `SOUP_LOOP_SERVE_ENDPOINT` to loopback /
|
|
52
|
+
RFC1918-private hosts (a serve endpoint is the operator's own box/LAN), beyond
|
|
53
|
+
the general webhook SSRF policy which permits any HTTPS host.
|
|
54
|
+
- `soup adapters pr --push` builds the `gh` child environment from an allowlist
|
|
55
|
+
so unrelated secrets (`HF_TOKEN` / `OPENAI_API_KEY` / …) never reach the
|
|
56
|
+
subprocess.
|
|
57
|
+
- The canary-suite JSON read uses `O_NOFOLLOW` + `os.fstat` (size cap enforced on
|
|
58
|
+
the same fd) to close the symlink/size-cap TOCTOU window.
|
|
59
|
+
|
|
15
60
|
## [0.71.3] - 2026-06-01
|
|
16
61
|
|
|
17
62
|
### Added
|
|
@@ -120,7 +120,7 @@ src/soup_cli/
|
|
|
120
120
|
templates/ - 17 built-in soup.yaml templates (YAML + manifest.json) with load_template loader (v0.39.0, +bco v0.40.0)
|
|
121
121
|
ui/ - Web UI (FastAPI + HTML/JS SPA)
|
|
122
122
|
|
|
123
|
-
tests/ - Test suite (
|
|
123
|
+
tests/ - Test suite (274 files, 12474 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.
|
|
3
|
+
Version: 0.71.4
|
|
4
4
|
Summary: Fine-tune 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
|
|
@@ -183,19 +183,21 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
183
183
|
|
|
184
184
|
## What's New
|
|
185
185
|
|
|
186
|
-
**v0.71.
|
|
187
|
-
|
|
188
|
-
- **
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
- **
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
- **
|
|
195
|
-
|
|
196
|
-
- **
|
|
197
|
-
|
|
198
|
-
|
|
186
|
+
**v0.71.4 — Adapter lifecycle + loop wiring.** The merge, PR, and continuous-loop surfaces go live:
|
|
187
|
+
|
|
188
|
+
- **Canary verdict on merge** — `soup adapters merge … --canary suite.json` scores the merged
|
|
189
|
+
adapter and reports **OK / MINOR / MAJOR**; `--strict-verdict` exits non-zero on a MAJOR
|
|
190
|
+
regression. Works with no model load using a pre-scored canary suite.
|
|
191
|
+
- **Evolutionary merge for real** — `soup adapters merge --strategy cmaes --eval suite --budget 1h`
|
|
192
|
+
now runs the full CMA-ES search (merge → score → optimise) and writes the best blend, instead of
|
|
193
|
+
just printing a plan.
|
|
194
|
+
- **Publish an adapter PR** — `soup adapters pr <title> --base-sha <hex> --adapter <path> --push
|
|
195
|
+
owner/repo#42` posts the rendered PR straight to a GitHub PR comment.
|
|
196
|
+
- **Continuous fine-tuning loop, wired up** — `soup loop watch --pre-wired` runs the real
|
|
197
|
+
traces → DPO → eval-gate → canary pipeline; `--pack-cans` snapshots every iteration as a
|
|
198
|
+
shareable Soup Can with Registry lineage (`soup loop replay <id> --extract dir`).
|
|
199
|
+
- **Branches ↔ Registry** — `soup adapters branch <name> --attach-to-registry <id>` /
|
|
200
|
+
`--from-registry <id>` links training-env snapshots into the Registry lineage DAG.
|
|
199
201
|
|
|
200
202
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
201
203
|
|
|
@@ -49,19 +49,21 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
49
49
|
|
|
50
50
|
## What's New
|
|
51
51
|
|
|
52
|
-
**v0.71.
|
|
53
|
-
|
|
54
|
-
- **
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- **
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- **
|
|
61
|
-
|
|
62
|
-
- **
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
**v0.71.4 — Adapter lifecycle + loop wiring.** The merge, PR, and continuous-loop surfaces go live:
|
|
53
|
+
|
|
54
|
+
- **Canary verdict on merge** — `soup adapters merge … --canary suite.json` scores the merged
|
|
55
|
+
adapter and reports **OK / MINOR / MAJOR**; `--strict-verdict` exits non-zero on a MAJOR
|
|
56
|
+
regression. Works with no model load using a pre-scored canary suite.
|
|
57
|
+
- **Evolutionary merge for real** — `soup adapters merge --strategy cmaes --eval suite --budget 1h`
|
|
58
|
+
now runs the full CMA-ES search (merge → score → optimise) and writes the best blend, instead of
|
|
59
|
+
just printing a plan.
|
|
60
|
+
- **Publish an adapter PR** — `soup adapters pr <title> --base-sha <hex> --adapter <path> --push
|
|
61
|
+
owner/repo#42` posts the rendered PR straight to a GitHub PR comment.
|
|
62
|
+
- **Continuous fine-tuning loop, wired up** — `soup loop watch --pre-wired` runs the real
|
|
63
|
+
traces → DPO → eval-gate → canary pipeline; `--pack-cans` snapshots every iteration as a
|
|
64
|
+
shareable Soup Can with Registry lineage (`soup loop replay <id> --extract dir`).
|
|
65
|
+
- **Branches ↔ Registry** — `soup adapters branch <name> --attach-to-registry <id>` /
|
|
66
|
+
`--from-registry <id>` links training-env snapshots into the Registry lineage DAG.
|
|
65
67
|
|
|
66
68
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
67
69
|
|
|
@@ -34,6 +34,8 @@ v0.57 shipped `adapters diff / merge / blame / branch`. v0.67 finishes the lifec
|
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
36
|
# 1. Evolutionary merge: search the simplex of merge weights via CMA-ES.
|
|
37
|
+
# v0.71.4 makes this a LIVE loop — each candidate is merged, scored against
|
|
38
|
+
# --eval, and the best blend is written to --output.
|
|
37
39
|
soup adapters merge \
|
|
38
40
|
adapter-finance/ adapter-medical/ adapter-legal/ \
|
|
39
41
|
--strategy cmaes \
|
|
@@ -43,6 +45,12 @@ soup adapters merge \
|
|
|
43
45
|
--max-generations 20 \
|
|
44
46
|
--output merged/
|
|
45
47
|
|
|
48
|
+
# 1b. One-shot merge with a live canary verdict (v0.71.4). Scores the merged
|
|
49
|
+
# adapter vs the first input → OK / MINOR / MAJOR; --strict-verdict exits 2
|
|
50
|
+
# on a MAJOR regression. A pre-scored canary suite needs no model load.
|
|
51
|
+
soup adapters merge adapter-a/ adapter-b/ -o merged/ \
|
|
52
|
+
--canary evals/canary.json --strict-verdict
|
|
53
|
+
|
|
46
54
|
# 2. Render the merge as a GitHub PR for review (eval deltas + sample diffs).
|
|
47
55
|
soup adapters pr "merge: 3-domain blend" \
|
|
48
56
|
--base-sha $(git rev-parse HEAD) \
|
|
@@ -52,6 +60,12 @@ soup adapters pr "merge: 3-domain blend" \
|
|
|
52
60
|
--dataset-diff data/diff.txt \
|
|
53
61
|
--format markdown -o pr.md
|
|
54
62
|
|
|
63
|
+
# 2b. Post it straight to a GitHub PR comment (v0.71.4). Auth via GITHUB_TOKEN
|
|
64
|
+
# / GH_TOKEN; uses `gh api` under the hood (no secret leaks to the child).
|
|
65
|
+
soup adapters pr "merge: 3-domain blend" \
|
|
66
|
+
--base-sha $(git rev-parse HEAD) --adapter merged/ \
|
|
67
|
+
--eval evals/deltas.json --push your-org/your-repo#42
|
|
68
|
+
|
|
55
69
|
# 3. Lock a reproducible run state. Closure = sha(base + dataset + env).
|
|
56
70
|
soup env lock # v0.64 — capture env hash
|
|
57
71
|
soup lock write \
|
|
@@ -93,6 +107,16 @@ soup loop status
|
|
|
93
107
|
# Run the daemon (foreground)
|
|
94
108
|
soup loop watch --poll-interval 300
|
|
95
109
|
|
|
110
|
+
# Pre-wired production stages (v0.71.4): real traces → DPO → eval-gate → canary,
|
|
111
|
+
# instead of the v0.58 no-op stubs. Opt in once via `loop init --pre-wired` or
|
|
112
|
+
# per-run via --pre-wired. Pack each iteration as a shareable Soup Can with
|
|
113
|
+
# Registry lineage via --pack-cans.
|
|
114
|
+
soup loop init registry://abc12 --eval evals/lock.json --baseline registry://prod --pre-wired
|
|
115
|
+
soup loop watch --pre-wired --pack-cans --poll-interval 300
|
|
116
|
+
|
|
117
|
+
# Unpack a recorded iteration's Soup Can for what-if analysis (v0.71.4)
|
|
118
|
+
soup loop replay iter-20260515T120000-abcdef01 --extract ./iter-dump
|
|
119
|
+
|
|
96
120
|
# Background subprocess (writes PID, no shell)
|
|
97
121
|
soup loop watch --detach
|
|
98
122
|
|
|
@@ -240,6 +264,14 @@ soup adapters blame ./run-v18 --dataset train.jsonl --layer q_proj.7 \
|
|
|
240
264
|
soup adapters branch v18 --config soup.yaml --base meta-llama/Llama-3.1-8B \
|
|
241
265
|
--dataset train.jsonl
|
|
242
266
|
|
|
267
|
+
# Link a branch into the Registry lineage DAG (v0.71.4) — shows as a
|
|
268
|
+
# `branches` node under the entry in `soup history`.
|
|
269
|
+
soup adapters branch v18 --config soup.yaml --base meta-llama/Llama-3.1-8B \
|
|
270
|
+
--attach-to-registry reg_20260601_abc123
|
|
271
|
+
|
|
272
|
+
# Or derive a fresh snapshot's config + base straight from a Registry entry (v0.71.4)
|
|
273
|
+
soup adapters branch v18-from-reg --from-registry reg_20260601_abc123
|
|
274
|
+
|
|
243
275
|
# Restore the snapshot's config (refuses if source SHA drifted)
|
|
244
276
|
soup adapters checkout v18 --output soup.yaml
|
|
245
277
|
|
|
@@ -264,7 +296,9 @@ soup adapters branches
|
|
|
264
296
|
- Branch pointers live under `~/.soup/branches/` (override via `SOUP_BRANCHES_DIR`, constrained to `$HOME` / `$CWD` / `$TMPDIR`).
|
|
265
297
|
- `soup adapters checkout` SHA-checks the source config — refuses to restore when the source has drifted from the snapshot, so reproducibility never silently lies.
|
|
266
298
|
|
|
267
|
-
**v0.66.0:** `soup adapters blame` is now LIVE — the v0.57 `NotImplementedError` stub (#171) is lifted via a DataInf-style influence-function approximation. Pass `--top-k 50` to control the reported top-influencer count; pass a real `probe_fn` (Python API) to feed real gradients, or use the default deterministic synthetic probe for offline planning.
|
|
299
|
+
**v0.66.0:** `soup adapters blame` is now LIVE — the v0.57 `NotImplementedError` stub (#171) is lifted via a DataInf-style influence-function approximation. Pass `--top-k 50` to control the reported top-influencer count; pass a real `probe_fn` (Python API) to feed real gradients, or use the default deterministic synthetic probe for offline planning.
|
|
300
|
+
|
|
301
|
+
**v0.71.4:** the merge verdict is now LIVE — `soup adapters merge … --canary suite.json` lifts the `MergeReport.verdict` `UNKNOWN` stub. A pre-scored `{"baseline_scores","candidate_scores"}` suite classifies the blend OK / MINOR / MAJOR with no model load; a `{"tasks":[...]}` suite uses an injectable scorer. `--strict-verdict` exits 2 on MAJOR. The backdoor-scan and license-conflict gates now run for **every** strategy, including `cmaes`. `soup adapters branch <name> --from-registry <id>` / `--attach-to-registry <id>` link training-env snapshots into the Registry lineage DAG (shown as a `branches` node in `soup history`).
|
|
268
302
|
|
|
269
303
|
|
|
270
304
|
## Soup Cans (Shareable Recipes)
|
|
@@ -109,12 +109,12 @@ soup cost --config soup.yaml --gpu H100 Estimate training cost for specific
|
|
|
109
109
|
soup adapters list ./output/ Scan for LoRA adapters
|
|
110
110
|
soup adapters info ./output/checkpoint-500/ Show adapter metadata
|
|
111
111
|
soup adapters compare adapter1/ adapter2/ Compare two adapters
|
|
112
|
-
soup loop init <model> --eval <s> --baseline <b> Create .soup/loop.yaml (data flywheel)
|
|
113
|
-
soup loop status Counters + status
|
|
114
|
-
soup loop watch [--detach] [--max-iter N]
|
|
112
|
+
soup loop init <model> --eval <s> --baseline <b> [--pre-wired] Create .soup/loop.yaml (data flywheel; --pre-wired = real stages)
|
|
113
|
+
soup loop status Counters + status + pre_wired flag
|
|
114
|
+
soup loop watch [--detach] [--max-iter N] [--pre-wired] [--pack-cans] Harvest → train → gate → deploy daemon (pre-wired stages + Soup Can packing)
|
|
115
115
|
soup loop pause / soup loop resume Atomic status flip
|
|
116
116
|
soup loop canary <adapter> --traffic 5% Promote canary + auto-rollback on MAJOR
|
|
117
|
-
soup loop replay [<iter-id>]
|
|
117
|
+
soup loop replay [<iter-id>] [--extract <dir>] Replay / unpack a recorded iteration manifest
|
|
118
118
|
soup serve --model m --adapters chat=./c code=./d Multi-adapter serving
|
|
119
119
|
soup migrate --from llamafactory config.yaml Import config from LLaMA-Factory
|
|
120
120
|
soup migrate --from axolotl config.yml Import config from Axolotl
|
|
@@ -188,8 +188,11 @@ soup probe interference <losses.json> [--output o.json] Pairwise N×N adapter i
|
|
|
188
188
|
soup probe pack <base> [--output o.json] Per-base calibrated probe pack manifest (v0.66.0)
|
|
189
189
|
soup probe pack --list List bundled probe-pack bases (v0.66.0)
|
|
190
190
|
soup adapters blame ... --top-k 50 Live DataInf-style influence runner (v0.66.0, closes #171)
|
|
191
|
-
soup adapters merge ... --strategy cmaes --eval <s> --budget 1h CMA-ES evolutionary merge (v0.67.0)
|
|
191
|
+
soup adapters merge ... --strategy cmaes --eval <s> --budget 1h CMA-ES evolutionary merge — live loop (v0.67.0 schema / v0.71.4 live)
|
|
192
|
+
soup adapters merge ... --canary <suite.json> [--strict-verdict] Live OK/MINOR/MAJOR canary verdict, exit 2 on MAJOR (v0.71.4)
|
|
192
193
|
soup adapters pr <title> --base-sha <hex> --adapter <path> GitHub-shaped adapter PR Markdown / JSON (v0.67.0)
|
|
194
|
+
soup adapters pr <title> ... --push owner/repo#N Post the PR as a GitHub comment via gh api (v0.71.4)
|
|
195
|
+
soup adapters branch <name> --from-registry <id> | --attach-to-registry <id> Branch ↔ Registry lineage (v0.71.4)
|
|
193
196
|
soup adapters bisect <ckpt>... --eval-command "..." Binary search over training history (v0.67.0)
|
|
194
197
|
soup lock write --base-sha <h> --dataset-sha <h> --env-hash <h> Write soup.lock (v0.67.0)
|
|
195
198
|
soup lock write --base-sha <h> --dataset-sha <h> --env-lock soup-env.lock Auto-derive --env-hash from soup-env.lock (v0.71.1)
|