freesolo-flash-dev 1.0.77__tar.gz → 1.0.78__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.0.77 → freesolo_flash_dev-1.0.78}/Dockerfile.worker +1 -1
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/PKG-INFO +1 -1
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/catalog.py +1 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/backend_common.py +5 -5
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/pyproject.toml +2 -2
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_backend_common.py +17 -7
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_disk_gb.py +6 -1
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/uv.lock +1 -1
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.dockerignore +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.env.example +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/dependabot.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/auto-rebake.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/bake-kernel-cache.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/ci.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/main-source-guard.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/notify-tests-repo.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/publish-dev.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/publish-image.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/publish.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/version-parity.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/worker-image.yml +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.gitignore +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/CODE_OF_CONDUCT.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/CONTRIBUTING.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/Dockerfile +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/LICENSE +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/NOTICE +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/README.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/SECURITY.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/SELF_HOSTING.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/build/kernel_cache/.gitignore +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/build/kernel_cache/.keep +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/docker/Dockerfile.kernelcache +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/docker/Dockerfile.kernelcache.relayer +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/docker/bake_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/docker/bake_pod_entry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/docker/kernel_fingerprint.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/docker/make_rp_handler.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/_channel.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/_fileio.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/_logging.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/_update_check.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/adapter_artifacts.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/TRAINING.md +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/__main__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/_tty.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/commands.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/env_eval.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/env_setup.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/env_test.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/envpush.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/render.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/traces.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cli/training_doc.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/client/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/client/config.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/client/http.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/client/runtime_secrets.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/client/specs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cost/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cost/analytical.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cost/facts.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cost/spec.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/cost/types.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/diagnostics.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/accounting.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/multiturn_reward_scoring.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/recipe.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/reward_profile.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/steps.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/structured_outputs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/vram.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/__main__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/_pkg.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/adapter.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/decoding.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/finalize.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/grpo.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/grpo_multiturn.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/grpo_plugin.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/heartbeat.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/hf.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/kernel_warmup.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/lora.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/multiturn_glue.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_gkd.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_multiturn.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_plugin.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_structured.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_train.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/packing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/attn.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/diagnostics.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/lifecycle.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/liger.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/loraplus.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/memory.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/rl.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/rl_train.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/rng.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/rollout_samples.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/sft.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/sft_train.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/teacher.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/tokenizer_align.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/wandb_log.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker_entrypoint.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/adapter.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/archive.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/archive_policy.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/base.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/evaluations.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/loader.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/pull.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/envs/registry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/lora_rank.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/multimodal.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/opd_retry_contract.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/opd_validation.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_auth.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_deadline.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_hf_artifacts.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_hf_retry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_http.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_instance.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_instance_bootstrap.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_instance_poll.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_instance_provider.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_poll.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_worker.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/allocator.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/base.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/api.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/auth.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/gpus.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/jobs/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/jobs/builders.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/pricing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/realized.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/api.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/auth.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/cost.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/gpus.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/jobs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/keys.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/pricing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/slots.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/train/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/train/endpoints.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/api.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/auth.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/jobs/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/jobs/builders.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/pricing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/weight_cache_preload.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/py.typed +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/runner/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/runner/checkpoints.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/runner/deploy.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/runner/lifecycle.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/runner/verified_revisions.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/schema/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/schema/fields.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/serve/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/serve/deploy.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/serve/export.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/serve/preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/serve/pricing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/serve/urls.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/__main__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/_deps.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/_internal_client.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/_locks.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/_runtime.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/app.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/auth.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/billing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/billing_retry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/checkpoints.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/db.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/environment_registry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/envs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/projects.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/reconcile.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/repo_cleanup.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/routes/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/routes/envs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/routes/meta.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/routes/runs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/routes/serving.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/server/run_registry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/spec.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/thinking.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/infisical-entrypoint.sh +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/scripts/build_dev_dist.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/scripts/scrub_history.sh +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/_helpers/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/_helpers/runner.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/_helpers/specs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/_helpers/vast.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/conftest.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/fixtures/math_eval.jsonl +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/fixtures/math_train.jsonl +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/live/__init__.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/live/conftest.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/live/test_lambda_live.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/live/test_runpod_live.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/live/test_vast_live.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_accounting_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_agent_flash_cli_contract.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_algorithms.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_allocator.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_async_uploads.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_backend_jobspec_contract.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_base_model_provenance.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_billing_retry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cancel_remote.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_catalog_consistency.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_charge_pricing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_checkpoints.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_commands.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_commands_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_credential_shadowing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_errors.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_estimate.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_gpus_flag.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_help.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_main_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_managed.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_render_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_render_theme.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_traces.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cli_wandb_warning.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_client.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_client_server_integration.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_client_stream_reads.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_config_overrides.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_controlled_experiment_repairs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cost_analytical.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cost_equation.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cost_estimate.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cost_hardware.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cost_models.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_cost_rewards.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_deploy_latency.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_dev_channel.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_endpoint_name.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_cache_evict.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_delete.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_download.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_download_api.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_evaluations.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_no_install.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_publish.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_pull.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_pull_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_pull_loader_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_pull_managed_control_plane.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_push.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_rate_limit_resolve.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_ref_pinning.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_env_test.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_envs_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_export.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_flash_mvp.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_flash_worker.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_flashinfer_cache_dirs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_github_urlopen_retry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_gpu_type_single_field.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_gpus.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_grpo_mask_aware.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_grpo_params.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_grpo_resident_sizing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_health_liveness.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_hf_retry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_idle_endpoint_reaper.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_instance_bootstrap_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_internal_client.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_jobs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_kernel_fingerprint.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_kv_util.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_lambda_api_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_lambda_runner.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_logging.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_login_perms.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_lora_rank_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_lora_rank_preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_managed_config_fields.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_managed_hf_repo.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_metrics_schema_agent_contract.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_mig_guard.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_multi_gpu_gate.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_multimodal_input_grads.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_multimodal_training.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_named_reward_metrics.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_oom_escalate_gpu.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_opd.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_opd_resume_safety.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_opd_train.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_open_model_policy.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_orchestrator_flash.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_packing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_packing_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_poll_helpers.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_projects.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_provider_preflight_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_provider_routing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_provider_teardown_robustness.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_providers_symmetry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_realized_cost.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_repo_cleanup.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_resolve_params_b.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_resume_on_retry.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_reward_profile.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_rl_train.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_rollout_samples.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_runmgmt.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_runpod_api_delete.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_runpod_key_fingerprint.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_runpod_key_waterfall.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_runpod_slots.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_serve.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_serve_reasoning_content.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_api.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_app_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_auth_singleflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_billing.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_checkpoints_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_db.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_envs_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_locks_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_server_standalone.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_serving_context_preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_serving_contract.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_serving_pricing_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_serving_schema_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_sft_chunked_nll.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_sft_example_selection.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_sft_gc_off.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_sft_max_context.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_sft_train.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_spec_and_validation.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_step_metrics.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_structured_outputs.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_thinking_config.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_train_context_preflight.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_training_controls.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_update_check.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vast_api.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vast_api_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vast_offers.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vast_provider_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vast_runner.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_verified_revisions.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_verifiers.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_version.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vl_warmstart_adapter_keys.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_vram_architecture.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_wandb_link.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_wandb_log_coverage.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_wandb_naming.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_warmstart_adapter_download.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_warmstart_cross_repo.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_warmstart_error_attribution.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_weight_cache.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_worker_dryrun.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_worker_hardexit.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_worker_image.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_worker_init_heartbeat.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_worker_stack.py +0 -0
- {freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/tests/test_worker_thinking.py +0 -0
|
@@ -268,7 +268,7 @@ print('worker stack OK | torch', torch.__version__, '| cudnn', cudnn, '| triton'
|
|
|
268
268
|
# flash's, so a job that sets WANDB_API_KEY loses its curves and run link unless wandb is importable
|
|
269
269
|
# in here; resolve_verl_loggers() degrades to console when it is not, which is the right behaviour
|
|
270
270
|
# for a foreign FLASH_VERL_PYTHON but silently drops W&B on the default image (codex[bot]).
|
|
271
|
-
ARG VERL_SPEC=verl[vllm]@git+https://github.com/freesolo-co/verl@
|
|
271
|
+
ARG VERL_SPEC=verl[vllm]@git+https://github.com/freesolo-co/verl@1bea7d6825bbb9d2164e86e379b3680e7c53bb8a
|
|
272
272
|
ENV FLASH_VERL_PYTHON=/opt/verl-venv/bin/python
|
|
273
273
|
RUN printf '%s\n' "numpy==2.2.6" "xgrammar==0.1.25" "vllm==0.19.1" > /tmp/verl-overrides.txt \
|
|
274
274
|
&& uv venv --seed /opt/verl-venv \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: freesolo-flash-dev
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.78
|
|
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
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/backend_common.py
RENAMED
|
@@ -29,13 +29,13 @@ from http.server import ThreadingHTTPServer
|
|
|
29
29
|
|
|
30
30
|
from flash.diagnostics import sanitize_diagnostic
|
|
31
31
|
|
|
32
|
-
# verl 0.8.0 exactly, plus the truncation-mask
|
|
33
|
-
# base: the opd plugin patches 0.8.0 internals and imports
|
|
34
|
-
# deleted after 0.8.0, and opd's exact-version gate reads the
|
|
35
|
-
# release value.
|
|
32
|
+
# verl 0.8.0 exactly, plus the truncation-mask, 3d position-id, and ulysses fused-label fixes.
|
|
33
|
+
# it must stay on the 0.8.0 base: the opd plugin patches 0.8.0 internals and imports
|
|
34
|
+
# verl.trainer.main_ppo_sync, which verl deleted after 0.8.0, and opd's exact-version gate reads the
|
|
35
|
+
# version file this branch pins to the release value.
|
|
36
36
|
VERL_REQUIREMENT_NAME = "verl"
|
|
37
37
|
VERL_REQUIREMENT_URL = (
|
|
38
|
-
"git+https://github.com/freesolo-co/verl@
|
|
38
|
+
"git+https://github.com/freesolo-co/verl@1bea7d6825bbb9d2164e86e379b3680e7c53bb8a"
|
|
39
39
|
)
|
|
40
40
|
# the pin, as the venv stamp records it. the provisioning install asks for the [vllm] extra of this
|
|
41
41
|
# same commit; the stamp stays extra-free so it identifies the verl a venv holds, not how it was
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "freesolo-flash-dev"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.78"
|
|
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).
|
|
@@ -123,7 +123,7 @@ artifacts = ["flash/py.typed"]
|
|
|
123
123
|
# auto-published by .github/workflows/publish-dev.yml: a push to `dev` whose version isn't yet on
|
|
124
124
|
# PyPI publishes it; pushes that don't change it find it already published and no-op. So cutting a
|
|
125
125
|
# dev-channel release = bump this (and [project].version) and merge to `dev`.
|
|
126
|
-
version = "1.0.
|
|
126
|
+
version = "1.0.78"
|
|
127
127
|
|
|
128
128
|
[tool.pytest.ini_options]
|
|
129
129
|
pythonpath = ["."]
|
|
@@ -371,7 +371,7 @@ def test_resolve_verl_python_installs_pinned_gpu_dependencies(monkeypatch, tmp_p
|
|
|
371
371
|
assert "cp312" in vc.FLASH_ATTN_SPEC
|
|
372
372
|
install = calls[1]
|
|
373
373
|
assert vc.VERL_REQUIREMENT == (
|
|
374
|
-
"verl @ git+https://github.com/freesolo-co/verl@
|
|
374
|
+
"verl @ git+https://github.com/freesolo-co/verl@1bea7d6825bbb9d2164e86e379b3680e7c53bb8a"
|
|
375
375
|
)
|
|
376
376
|
assert any(vc.VERL_REQUIREMENT_URL in arg for arg in install)
|
|
377
377
|
assert "liger-kernel" in install
|
|
@@ -548,6 +548,16 @@ def test_flash_attn_spec_stays_in_lockstep_with_the_worker_image():
|
|
|
548
548
|
)
|
|
549
549
|
|
|
550
550
|
|
|
551
|
+
def test_verl_spec_stays_in_lockstep_with_the_worker_image():
|
|
552
|
+
# the default image exports FLASH_VERL_PYTHON, so its baked interpreter bypasses the fallback
|
|
553
|
+
# resolver entirely. both paths must pin the same commit or live workers miss dependency fixes.
|
|
554
|
+
dockerfile = pathlib.Path(__file__).resolve().parents[1] / "Dockerfile.worker"
|
|
555
|
+
expected = f"ARG VERL_SPEC=verl[vllm]@{vc.VERL_REQUIREMENT_URL}"
|
|
556
|
+
assert expected in dockerfile.read_text(), (
|
|
557
|
+
"Dockerfile.worker's VERL_SPEC drifted from backend_common.VERL_REQUIREMENT_URL"
|
|
558
|
+
)
|
|
559
|
+
|
|
560
|
+
|
|
551
561
|
def test_the_venv_stamp_records_the_pin_not_the_install_extras(monkeypatch, tmp_path):
|
|
552
562
|
# the stamp gates rebuilds. if it recorded the extra-bearing spec while the pin stayed bare,
|
|
553
563
|
# every later call would see a mismatch and rebuild the venv from scratch on a paid pod.
|
|
@@ -652,14 +662,14 @@ def test_verl_pin_matches_the_version_opd_requires_exactly():
|
|
|
652
662
|
|
|
653
663
|
assert plugin._STRUCTURED_RUNTIME_EXACT_VERSIONS["verl"] == "0.8.0"
|
|
654
664
|
# asserting the constant alone would let a newer-base commit land silently, so bind the pinned
|
|
655
|
-
# commit itself to that version. this is the sha of the truncation-mask and 3d position
|
|
656
|
-
# commits cherry-picked onto the v0.8.0 tag, plus the agent-loop position-id pad
|
|
657
|
-
#
|
|
658
|
-
# verl/version/version still reads 0.8.0
|
|
659
|
-
#
|
|
665
|
+
# commit itself to that version. this is the sha of the truncation-mask and 3d position-id
|
|
666
|
+
# commits cherry-picked onto the v0.8.0 tag, plus the agent-loop position-id pad, fused-label
|
|
667
|
+
# shape fix, and qwen3.5 shift-label ownership fix. moving the pin must be deliberate, with the
|
|
668
|
+
# base re-verified. at 1bea7d68, verl/version/version still reads 0.8.0 and
|
|
669
|
+
# verl/trainer/main_ppo_sync.py is still present.
|
|
660
670
|
_, _, ref = vc.VERL_REQUIREMENT.partition("git+")
|
|
661
671
|
_, _, commit = ref.rpartition("@")
|
|
662
|
-
assert commit == "
|
|
672
|
+
assert commit == "1bea7d6825bbb9d2164e86e379b3680e7c53bb8a"
|
|
663
673
|
|
|
664
674
|
|
|
665
675
|
def test_resolve_verl_python_installs_wandb_best_effort_when_requested(monkeypatch, tmp_path):
|
|
@@ -48,8 +48,13 @@ def test_oversized_catalog_models_carry_disk_floors():
|
|
|
48
48
|
"""Models whose transient download peak exceeds the shared cache need per-job disk floors."""
|
|
49
49
|
from flash.catalog import MODELS
|
|
50
50
|
|
|
51
|
-
disk_floor_models = {
|
|
51
|
+
disk_floor_models = {
|
|
52
|
+
"Qwen/Qwen3.5-9B",
|
|
53
|
+
"Qwen/Qwen3.6-27B",
|
|
54
|
+
"Qwen/Qwen3.6-35B-A3B",
|
|
55
|
+
}
|
|
52
56
|
assert all(m.min_disk_gb == 0 for m in MODELS.values() if m.id not in disk_floor_models)
|
|
57
|
+
assert MODELS["Qwen/Qwen3.5-9B"].min_disk_gb == 120
|
|
53
58
|
assert MODELS["Qwen/Qwen3.6-27B"].min_disk_gb == 160
|
|
54
59
|
assert MODELS["Qwen/Qwen3.6-35B-A3B"].min_disk_gb == 200
|
|
55
60
|
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/ISSUE_TEMPLATE/bug_report.yml
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/ISSUE_TEMPLATE/feature_request.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/bake-kernel-cache.yml
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/main-source-guard.yml
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/notify-tests-repo.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/.github/workflows/version-parity.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
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/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
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/multiturn_reward_scoring.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/grpo_multiturn.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/kernel_warmup.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/multiturn_glue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_multiturn.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/opd_structured.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/diagnostics.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/lifecycle.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/perf/loraplus.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/rollout_samples.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/engine/worker/tokenizer_align.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
|
|
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.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_instance_bootstrap.py
RENAMED
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/_instance_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/jobs/__init__.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/jobs/builders.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/preflight.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/lambdalabs/pricing.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/train/__init__.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/runpod/train/endpoints.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/jobs/__init__.py
RENAMED
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/vast/jobs/builders.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{freesolo_flash_dev-1.0.77 → freesolo_flash_dev-1.0.78}/flash/providers/weight_cache_preload.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|