freesolo-flash-dev 1.1.93__tar.gz → 1.2.7__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.
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/PKG-INFO +1 -1
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/__init__.py +0 -1
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/artifacts.py +7 -25
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/preparation.py +2 -8
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/pyproject.toml +2 -2
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/_helpers/profile.py +0 -5
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_provider_routing.py +0 -98
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/uv.lock +1 -1
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.dockerignore +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.env.example +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/CODEOWNERS +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/dependabot.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/auto-rebake.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/bake-kernel-cache.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/ci.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/main-source-guard.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/notify-tests-repo.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/publish-dev.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/publish-image.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/publish.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/version-parity.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/worker-image.yml +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.gitignore +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/CHANGELOG.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/CODE_OF_CONDUCT.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/CONTRIBUTING.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/Dockerfile +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/Dockerfile.worker +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/LICENSE +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/NOTICE +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/README.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/SECURITY.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/SELF_HOSTING.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/build/kernel_cache/.gitignore +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/build/kernel_cache/.keep +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/deploy/infisical/README.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/deploy/infisical/entrypoint.sh +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/Dockerfile.kernelcache +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/Dockerfile.kernelcache.relayer +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/bake_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/bake_pod_entry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/extract_cudart_fix.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/kernel_fingerprint.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/make_rp_handler.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/_internal/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/_internal/channel.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/_internal/diagnostics.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/_internal/fileio.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/_internal/logging.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/_internal/paths.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/adapters/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/adapters/artifacts.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/adapters/lora_rank.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/__main__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/deploy.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/episode.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/eval.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/eval_args.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/imports.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/list.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/push.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/retained.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/setup.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/env/test.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/traces.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/commands/train_cost.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/scaffold/TRAINING.md +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/scaffold/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/cost.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/env_panels.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/heartbeat.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/render.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/tables.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cli/ui/tty.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/config.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/freesolo_api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/http.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/runtime_secrets.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/shapes.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/specs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/client/streaming.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/content/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/content/multimodal.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/content/structured_outputs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/content/thinking.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/core/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/core/catalog.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/core/spec.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cost/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cost/analytical.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cost/facts.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cost/spec.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/cost/types.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/kv_sizing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/model_config_probe.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/recipe.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/steps.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/vram.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/dataset_profile.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/sft_workload.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/tokenizer.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/workload_profile.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/result/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/result/accounting.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/result/rollout_samples.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/__main__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/backend_common.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/entry/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/entry/opd.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/entry/rl.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/entry/sft.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/io/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/io/heartbeat.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/io/hf.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/io/prefetch.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/io/wandb_log.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/adapter.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/decoding.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/lora.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/packing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/opd_train.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/opd_train_runner.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/diagnostics.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/lifecycle.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/liger.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/memory.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/rl_train.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/rl_train_runner.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/pkg_proxy.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/rng.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/score_batcher.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/sft_train.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/sft_train_runner.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/teacher/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/teacher/client.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/teacher/encoding.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/teacher/tokenizer_align.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/core/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/core/child/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/core/child/glue.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/finalize.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/batching.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/bridge.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/child/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/child/bridge.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/child/multiturn.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/child/plugin.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/child/structured.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/failures.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/gkd.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/multiturn_validation.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/overrides.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/prompts.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/scoring.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/opd/validation.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/checkpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/child/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/child/plugin.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/config.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/inputs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/multi_turn.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/scoring.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/shims.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/single_turn.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/rl/verl_config.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/sft/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/sft/checkpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/train/sft/config.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/verl/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/verl/capabilities.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/verl/checkpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/verl/child_io.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/verl/diagnostics.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/verl/parallelism.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker_entrypoint.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/adapter.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/base.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/cache_security.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/dataset_selection.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/evaluations.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/identity.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/loader.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/namespace_listing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/package/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/package/limits.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/package/unpack.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/envs/pull.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/auth.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/bootstrap.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/bootstrap_pip.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/bootstrap_secrets.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/deadline.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/http.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/instance.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/poll.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/poll_instance.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/provider.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/_lifecycle/worker.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/allocator.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/artifacts/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/artifacts/hf.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/artifacts/preload_runpod.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/artifacts/weight_cache.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/base.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/fit_errors.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/auth.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/gpus.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/jobs/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/jobs/builders.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/jobs/reap.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/lambda_/pricing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/realized.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/auth.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/cost.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/gpus.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/job_execution.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/jobs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/pricing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/resources.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/serverless/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/runpod/serverless/endpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/sharding.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/auth.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/jobs/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/jobs/builders.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/providers/vast/pricing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/py.typed +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/attempts.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/costs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/deadlines.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/reconciliation.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/results/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/results/checkpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/results/verified_revisions.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/status.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/submit.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/attach.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/deploy.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/lifecycle.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/recovery.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/seed_submission.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/supervise/transitions.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/runner/weight_cache.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/schema/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/schema/fields.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/adapter_check.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/deploy.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/errors.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/export.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/streaming.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/thinking.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/serve/urls.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/__main__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/app.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/billing/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/billing/charges.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/billing/retry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/checkpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/environment_registry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/envs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/projects.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/reconcile.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/repo_cleanup.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/run_registry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/teacher_broker.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/teacher_errors.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/domain/teacher_requests.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/auth.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/db.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/deps.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/internal_client.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/locks.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/platform/runtime.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/envs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/meta.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/runs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/serving.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/serving_completion.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/serving_revisions.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/serving_smoke.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/server/routes/teacher.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/teacher/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/teacher/limits.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/teacher/retry_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/scripts/build_dev_dist.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/scripts/check_file_size.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/scripts/check_function_size.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/scripts/check_verl_pin_exists.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/scripts/scrub_history.sh +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/_helpers/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/_helpers/runner.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/_helpers/specs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/_helpers/teacher.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/_helpers/vast.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/conftest.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/fixtures/math_eval.jsonl +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/fixtures/math_train.jsonl +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/live/__init__.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/live/conftest.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/live/test_lambda_live.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/live/test_runpod_live.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/live/test_vast_live.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_accounting_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_adapter_shard_completeness.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_agent_flash_cli_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_algorithms.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_allocator.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_backend_common.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_backend_jobspec_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_bake_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_base_model_provenance.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_billing_retry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_build_context_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cancel_remote.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_catalog_consistency.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_catalog_only_models.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_charge_pricing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_checkpoints.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_commands.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_commands_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_credential_shadowing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_errors.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_estimate.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_gpus_flag.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_help.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_main_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_managed.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_render_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_render_theme.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_traces.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cli_wandb_warning.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_client.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_client_import_purity.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_client_server_integration.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_client_stream_reads.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_config_env_vars.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_config_overrides.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_controlled_experiment_repairs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cost_analytical.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cost_equation.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cost_estimate.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cost_hardware.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_cost_models.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_dataset_profile.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_deploy_latency.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_dev_channel.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_disk_gb.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_endpoint_name.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_cache_evict.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_delete.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_download.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_download_api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_evaluations.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_list_api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_list_cli.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_list_hub.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_no_install.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_publish.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_pull.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_pull_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_pull_loader_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_pull_managed_control_plane.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_push.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_rate_limit_resolve.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_ref_pinning.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_env_test.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_envs_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_export.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_flash_mvp.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_flash_worker.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_flashinfer_cache_dirs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_freesolo_api_transport.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_github_urlopen_retry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_gpu_type_single_field.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_gpus.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_grpo_params.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_grpo_resident_sizing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_grpo_reward_batching.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_health_liveness.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_hf_retry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_idle_endpoint_reaper.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_infisical_secrets.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_instance_bootstrap_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_internal_client.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_jobs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_kernel_fingerprint.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_kv_util.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_lambda_api_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_lambda_runner.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_logging.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_login_perms.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_lora_rank_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_lora_rank_preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_managed_config_fields.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_managed_hf_repo.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_metrics_schema_agent_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_mig_guard.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_multi_gpu_gate.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_multimodal_training.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_named_reward_metrics.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_oom_escalate_gpu.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_opd.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_opd_limits.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_opd_multiturn_eos_boundary.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_opd_resume_safety.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_opd_train.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_orchestrator_flash.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_packing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_packing_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_parasail_teacher.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_poll_helpers.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_projects.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_provider_preflight_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_provider_teardown_robustness.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_providers_symmetry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_realized_cost.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_repo_cleanup.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_resolve_params_b.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_resume_on_retry.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_rl_train.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_rollout_samples.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_runmgmt.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_runpod_api_delete.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_runpod_key_fingerprint.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_runpod_key_waterfall.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_serve.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_serve_reasoning_content.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_app_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_auth_singleflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_billing.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_checkpoints_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_db.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_envs_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_locks_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_server_standalone.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_serving_context_preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_serving_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_serving_schema_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_sft_chunked_nll.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_sft_example_selection.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_sft_gc_off.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_sft_max_context.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_sft_train.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_sft_workload.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_spec_and_validation.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_step_floor.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_step_metrics.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_structured_outputs.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_teacher_broker.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_teacher_encoding_contract.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_thinking_config.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_train_context_preflight.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_training_controls.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_type_comment_prose.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vast_api.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vast_api_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vast_offers.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vast_provider_coverage.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vast_runner.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_verified_revisions.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_verifiers.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_version.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vl_warmstart_adapter_keys.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_vram_architecture.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_wandb_link.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_wandb_naming.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_warmstart_adapter_download.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_warmstart_cross_repo.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_warmstart_error_attribution.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_weight_cache.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_worker_dryrun.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_worker_hardexit.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_worker_image.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_worker_init_heartbeat.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_worker_stack.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_worker_thinking.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_workflow_contracts.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_workload_profile.py +0 -0
- {freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/tests/test_zero2_sharding_gate.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: freesolo-flash-dev
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.7
|
|
4
4
|
Summary: Flash — managed LoRA post-training (SFT/GRPO/OPD) for Freesolo environments, driven by the `flash` CLI
|
|
5
5
|
Project-URL: Homepage, https://github.com/freesolo-co/flash
|
|
6
6
|
Project-URL: Repository, https://github.com/freesolo-co/flash
|
|
@@ -77,26 +77,13 @@ def _assign_managed_hf_repo(spec: JobSpec) -> JobSpec:
|
|
|
77
77
|
return runner.JobSpec.from_dict(d)
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
def
|
|
81
|
-
"""Pin env ref->SHA
|
|
82
|
-
|
|
83
|
-
One resolve, two answers. The pin itself is best-effort and its caller only ever sees the
|
|
84
|
-
ABSENCE of a sha, which is the same observation for four different causes -- a ref that does
|
|
85
|
-
not exist, a rate limit, an outage, a private repo the token cannot read -- each needing a
|
|
86
|
-
different fix. GitHub already answered with which one; this carries that answer out instead of
|
|
87
|
-
discarding it.
|
|
88
|
-
|
|
89
|
-
Returning the reason rather than re-resolving on the failure path matters for correctness, not
|
|
90
|
-
just cost: a second call can succeed where the first failed (a rate-limit window that reset, a
|
|
91
|
-
blip that cleared), and a caller that has already committed to rejecting would then report an
|
|
92
|
-
empty reason for a ref that just resolved fine. The reason must describe the attempt whose
|
|
93
|
-
result is actually being used.
|
|
94
|
-
"""
|
|
80
|
+
def _assign_resolved_env_sha(spec: JobSpec) -> JobSpec:
|
|
81
|
+
"""Pin env ref->SHA once so N workers don't fan-out N GitHub API calls (secondary rate-limit). Best-effort."""
|
|
95
82
|
import logging
|
|
96
83
|
|
|
97
84
|
env_id = spec.environment.id
|
|
98
85
|
if not env_id or spec.environment.resolved_sha:
|
|
99
|
-
return spec
|
|
86
|
+
return spec
|
|
100
87
|
try:
|
|
101
88
|
from flash.envs.loader import (
|
|
102
89
|
_parse_github_environment_ref,
|
|
@@ -110,20 +97,15 @@ def _pin_env_sha_with_reason(spec: JobSpec) -> tuple[JobSpec, str]:
|
|
|
110
97
|
)
|
|
111
98
|
parsed = _parse_github_environment_ref(ref_str)
|
|
112
99
|
if parsed is None:
|
|
113
|
-
return spec
|
|
100
|
+
return spec
|
|
114
101
|
sha = _resolve_ref_sha(parsed, timeout=10.0, max_rate_limit_retries=0)
|
|
115
102
|
except Exception as e:
|
|
116
103
|
logging.getLogger(runner.__name__).warning(
|
|
117
104
|
"resolve-once: could not pin env ref->sha for %r (%s); worker will resolve", env_id, e
|
|
118
105
|
)
|
|
119
|
-
return spec
|
|
106
|
+
return spec
|
|
120
107
|
if not sha:
|
|
121
|
-
return spec
|
|
108
|
+
return spec
|
|
122
109
|
d = spec.to_internal_dict()
|
|
123
110
|
d["environment"] = {**d["environment"], "resolved_sha": sha}
|
|
124
|
-
return runner.JobSpec.from_dict(d)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
def _assign_resolved_env_sha(spec: JobSpec) -> JobSpec:
|
|
128
|
-
"""Pin env ref->SHA once so N workers don't fan-out N GitHub API calls (secondary rate-limit). Best-effort."""
|
|
129
|
-
return _pin_env_sha_with_reason(spec)[0]
|
|
111
|
+
return runner.JobSpec.from_dict(d)
|
|
@@ -619,20 +619,14 @@ def _profile_producer_version() -> str:
|
|
|
619
619
|
|
|
620
620
|
|
|
621
621
|
def _require_pinned_profile_environment(spec: JobSpec) -> JobSpec:
|
|
622
|
-
pinned
|
|
622
|
+
pinned = _runner()._assign_resolved_env_sha(spec)
|
|
623
623
|
if not pinned.environment.id:
|
|
624
624
|
raise _runner().WorkloadProfileUnavailable(
|
|
625
625
|
"sft workload profiling requires an environment id"
|
|
626
626
|
)
|
|
627
627
|
if not pinned.environment.resolved_sha:
|
|
628
|
-
# the pin is best-effort, so reaching here says only that it did not happen -- and the four
|
|
629
|
-
# causes (a ref that does not exist, a rate limit, an outage, a private repo the token
|
|
630
|
-
# cannot read) need four different fixes. GitHub already answered with which one; name it
|
|
631
|
-
# instead of describing the missing pin it produced.
|
|
632
|
-
detail = f": {reason}" if reason else ""
|
|
633
628
|
raise _runner().WorkloadProfileUnavailable(
|
|
634
|
-
|
|
635
|
-
f"{spec.environment.id!r} could not be resolved{detail}"
|
|
629
|
+
"sft workload profiling requires a pinned environment package revision"
|
|
636
630
|
)
|
|
637
631
|
return pinned
|
|
638
632
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "freesolo-flash-dev"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.2.7"
|
|
4
4
|
description ="Flash — managed LoRA post-training (SFT/GRPO/OPD) for Freesolo environments, driven by the `flash` CLI"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
# RunPod Flash supports Python 3.11-3.12 (not 3.13 yet).
|
|
@@ -137,7 +137,7 @@ artifacts = ["flash/py.typed"]
|
|
|
137
137
|
# auto-published by .github/workflows/publish-dev.yml: a push to `dev` whose version isn't yet on
|
|
138
138
|
# PyPI publishes it; pushes that don't change it find it already published and no-op. So cutting a
|
|
139
139
|
# dev-channel release = bump this (and [project].version) and merge to `dev`.
|
|
140
|
-
version = "1.
|
|
140
|
+
version = "1.2.7"
|
|
141
141
|
|
|
142
142
|
[tool.pytest.ini_options]
|
|
143
143
|
pythonpath = ["."]
|
|
@@ -184,12 +184,7 @@ def satisfy_sft_profile(runner, monkeypatch, spec: Any):
|
|
|
184
184
|
# Hub/model round-trips are replaced in place. Each has dedicated coverage; reaching the network
|
|
185
185
|
# here would make every sft submit test an integration test.
|
|
186
186
|
monkeypatch.setattr(runner, "_resolve_model_revision", lambda s, **_kw: _pin_model_revision(s))
|
|
187
|
-
# both entry points, because they are two views of one resolve and different callers take
|
|
188
|
-
# different ones: the sft profile gate needs the failure REASON and so calls
|
|
189
|
-
# `_pin_env_sha_with_reason`, while submit only wants the spec. stubbing one leaves the other
|
|
190
|
-
# reaching real GitHub for a `github:owner/repo` ref that does not exist.
|
|
191
187
|
monkeypatch.setattr(runner, "_assign_resolved_env_sha", _pin_env_revision)
|
|
192
|
-
monkeypatch.setattr(runner, "_pin_env_sha_with_reason", lambda s: (_pin_env_revision(s), ""))
|
|
193
188
|
stub_revision_geometry(monkeypatch)
|
|
194
189
|
|
|
195
190
|
pinned = _pin_env_revision(_pin_model_revision(spec))
|
|
@@ -641,104 +641,6 @@ def test_sft_submission_fails_closed_when_the_environment_cannot_be_pinned(orch,
|
|
|
641
641
|
assert persisted == []
|
|
642
642
|
|
|
643
643
|
|
|
644
|
-
@pytest.mark.parametrize(
|
|
645
|
-
("github_error", "expected"),
|
|
646
|
-
[
|
|
647
|
-
pytest.param(
|
|
648
|
-
'GitHub environment request failed (422): {"message":"No commit found for SHA: main"}',
|
|
649
|
-
"No commit found for SHA: main",
|
|
650
|
-
id="wrong-ref",
|
|
651
|
-
),
|
|
652
|
-
pytest.param(
|
|
653
|
-
"GitHub API rate limit exceeded (403)",
|
|
654
|
-
"rate limit",
|
|
655
|
-
id="rate-limit",
|
|
656
|
-
),
|
|
657
|
-
pytest.param(
|
|
658
|
-
'GitHub environment request failed (404): {"message":"Not Found"}',
|
|
659
|
-
"404",
|
|
660
|
-
id="private-or-missing",
|
|
661
|
-
),
|
|
662
|
-
],
|
|
663
|
-
)
|
|
664
|
-
def test_unpinnable_sft_environment_reports_githubs_own_diagnosis(
|
|
665
|
-
orch, monkeypatch, github_error, expected
|
|
666
|
-
):
|
|
667
|
-
"""The pin failure must name WHY, not just that a revision is missing.
|
|
668
|
-
|
|
669
|
-
`@main` against a master-default repo made GitHub answer "No commit found for SHA: main" -- the
|
|
670
|
-
ref, the cause and the fix in one line. The plane had that string and threw it away, reporting
|
|
671
|
-
only "sft workload profiling requires a pinned environment package revision", which names none
|
|
672
|
-
of the three. A rate limit, an outage and a private repo the token cannot read all produce the
|
|
673
|
-
identical missing pin and all need different fixes, so the generic text sends every one of them
|
|
674
|
-
to the wrong remedy.
|
|
675
|
-
"""
|
|
676
|
-
from dataclasses import replace
|
|
677
|
-
|
|
678
|
-
import flash.envs.loader as env_loader
|
|
679
|
-
from flash.providers import allocator
|
|
680
|
-
|
|
681
|
-
def fail(_parsed, *_args, **_kwargs):
|
|
682
|
-
raise RuntimeError(github_error)
|
|
683
|
-
|
|
684
|
-
monkeypatch.setattr(env_loader, "_resolve_ref_sha", fail)
|
|
685
|
-
monkeypatch.setattr(
|
|
686
|
-
orch,
|
|
687
|
-
"_resolve_model_revision",
|
|
688
|
-
lambda spec, **_kw: replace(spec, model_revision="b" * 40, model_revision_auto=True),
|
|
689
|
-
)
|
|
690
|
-
monkeypatch.setattr(
|
|
691
|
-
allocator, "allocate", lambda *a, **k: pytest.fail("allocated without a profile")
|
|
692
|
-
)
|
|
693
|
-
|
|
694
|
-
with pytest.raises(orch.WorkloadProfileUnavailable) as excinfo:
|
|
695
|
-
orch.submit_job(_public_spec())
|
|
696
|
-
|
|
697
|
-
message = str(excinfo.value)
|
|
698
|
-
assert expected in message, message
|
|
699
|
-
# the ref itself has to appear too: the operator has to know WHICH environment to fix.
|
|
700
|
-
assert "github:owner/repo@main:env/environment.py" in message
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
def test_the_reported_reason_describes_the_resolve_that_was_actually_used(orch, monkeypatch):
|
|
704
|
-
"""One resolve, so a retry that would have succeeded cannot blank out the reason.
|
|
705
|
-
|
|
706
|
-
Diagnosing by re-resolving is wrong twice over. A transient cause (a rate-limit window that
|
|
707
|
-
resets, a blip that clears) can succeed on the second call, and the caller -- already committed
|
|
708
|
-
to rejecting on the FIRST result -- would then report no reason at all, landing back on the
|
|
709
|
-
generic message this change exists to replace. It also doubles GitHub calls on every failing
|
|
710
|
-
submit, against the same rate limit that is one of the causes.
|
|
711
|
-
"""
|
|
712
|
-
from dataclasses import replace
|
|
713
|
-
|
|
714
|
-
import flash.envs.loader as env_loader
|
|
715
|
-
from flash.providers import allocator
|
|
716
|
-
|
|
717
|
-
calls = []
|
|
718
|
-
|
|
719
|
-
def flaky(_parsed, *_args, **_kwargs):
|
|
720
|
-
calls.append(1)
|
|
721
|
-
if len(calls) == 1:
|
|
722
|
-
raise RuntimeError("GitHub API rate limit exceeded (403)")
|
|
723
|
-
return "b" * 40 # a second attempt SUCCEEDS; the rejection is already decided
|
|
724
|
-
|
|
725
|
-
monkeypatch.setattr(env_loader, "_resolve_ref_sha", flaky)
|
|
726
|
-
monkeypatch.setattr(
|
|
727
|
-
orch,
|
|
728
|
-
"_resolve_model_revision",
|
|
729
|
-
lambda spec, **_kw: replace(spec, model_revision="b" * 40, model_revision_auto=True),
|
|
730
|
-
)
|
|
731
|
-
monkeypatch.setattr(
|
|
732
|
-
allocator, "allocate", lambda *a, **k: pytest.fail("allocated without a profile")
|
|
733
|
-
)
|
|
734
|
-
|
|
735
|
-
with pytest.raises(orch.WorkloadProfileUnavailable) as excinfo:
|
|
736
|
-
orch.submit_job(_public_spec())
|
|
737
|
-
|
|
738
|
-
assert "rate limit" in str(excinfo.value), str(excinfo.value)
|
|
739
|
-
assert calls == [1], f"the pin must be resolved exactly once, got {len(calls)} calls"
|
|
740
|
-
|
|
741
|
-
|
|
742
644
|
def test_lifecycle_fallback_pin_is_persisted_for_recovery(orch, monkeypatch):
|
|
743
645
|
"""A pin the lifecycle fallback recovers must survive a control-plane restart.
|
|
744
646
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/ISSUE_TEMPLATE/bug_report.yml
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/ISSUE_TEMPLATE/feature_request.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/bake-kernel-cache.yml
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/main-source-guard.yml
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/.github/workflows/notify-tests-repo.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/docker/Dockerfile.kernelcache.relayer
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/plan/model_config_probe.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/dataset_profile.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/sft_workload.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/profiling/workload_profile.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/result/rollout_samples.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/backend_common.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/entry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/model/decoding.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/opd_train_runner.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/diagnostics.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/perf/lifecycle.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/rl_train_runner.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/__init__.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/kernel_warmup.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.1.93 → freesolo_flash_dev-1.2.7}/flash/engine/worker/runtime/pkg_proxy.py
RENAMED
|
File without changes
|