freesolo-flash-dev 1.2.112__tar.gz → 1.2.115__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.2.115/CHANGELOG.md +196 -0
- freesolo_flash_dev-1.2.115/Dockerfile.worker +477 -0
- freesolo_flash_dev-1.2.115/PKG-INFO +346 -0
- freesolo_flash_dev-1.2.115/README.md +263 -0
- freesolo_flash_dev-1.2.115/SELF_HOSTING.md +499 -0
- freesolo_flash_dev-1.2.115/docs/serving-contract.md +192 -0
- freesolo_flash_dev-1.2.115/flash/cli/__init__.py +941 -0
- freesolo_flash_dev-1.2.115/flash/cli/commands/__init__.py +973 -0
- freesolo_flash_dev-1.2.115/flash/cli/commands/env/setup.py +979 -0
- freesolo_flash_dev-1.2.115/flash/cli/commands/train_cost.py +408 -0
- freesolo_flash_dev-1.2.115/flash/cli/scaffold/TRAINING.md +1815 -0
- freesolo_flash_dev-1.2.115/flash/cli/ui/render.py +834 -0
- freesolo_flash_dev-1.2.115/flash/content/multimodal.py +892 -0
- freesolo_flash_dev-1.2.115/flash/content/reasoning_normalization.py +67 -0
- freesolo_flash_dev-1.2.115/flash/content/thinking.py +95 -0
- freesolo_flash_dev-1.2.115/flash/core/catalog.py +537 -0
- freesolo_flash_dev-1.2.115/flash/cost/analytical.py +946 -0
- freesolo_flash_dev-1.2.115/flash/cost/currency.py +25 -0
- freesolo_flash_dev-1.2.115/flash/cost/spec.py +278 -0
- freesolo_flash_dev-1.2.115/flash/cost/types.py +353 -0
- freesolo_flash_dev-1.2.115/flash/engine/plan/recipe.py +219 -0
- freesolo_flash_dev-1.2.115/flash/engine/plan/vram.py +991 -0
- freesolo_flash_dev-1.2.115/flash/engine/profiling/sft_image_rows.py +234 -0
- freesolo_flash_dev-1.2.115/flash/engine/profiling/sft_workload.py +982 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/backend_common.py +998 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/entry/opd.py +166 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/opd_train.py +525 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/opd_train_runner.py +783 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/perf/memory.py +112 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/core/child/__init__.py +9 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/core/child/glue.py +917 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/core/prompt_rows.py +98 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/bridge.py +983 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/gkd.py +171 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/overrides.py +521 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/prompt_preparation.py +213 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/prompts.py +161 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/scoring.py +84 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/state.py +107 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/rl/inputs.py +602 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/rl/multi_turn.py +823 -0
- freesolo_flash_dev-1.2.115/flash/engine/worker/train/rl/verl_config.py +811 -0
- freesolo_flash_dev-1.2.115/flash/envs/base.py +221 -0
- freesolo_flash_dev-1.2.115/flash/providers/artifacts/weight_cache.py +862 -0
- freesolo_flash_dev-1.2.115/flash/runner/costs.py +399 -0
- freesolo_flash_dev-1.2.115/flash/runner/preparation.py +612 -0
- freesolo_flash_dev-1.2.115/flash/runner/status.py +436 -0
- freesolo_flash_dev-1.2.115/flash/runner/submit.py +350 -0
- freesolo_flash_dev-1.2.115/flash/runner/supervise/lifecycle.py +353 -0
- freesolo_flash_dev-1.2.115/flash/runner/supervise/retry_decision.py +206 -0
- freesolo_flash_dev-1.2.115/flash/runner/supervise/seed_submission.py +901 -0
- freesolo_flash_dev-1.2.115/flash/schema/__init__.py +924 -0
- freesolo_flash_dev-1.2.115/flash/serve/deploy.py +957 -0
- freesolo_flash_dev-1.2.115/flash/serve/profiles.py +373 -0
- freesolo_flash_dev-1.2.115/flash/server/billing/charges.py +128 -0
- freesolo_flash_dev-1.2.115/flash/server/platform/runtime.py +801 -0
- freesolo_flash_dev-1.2.115/flash/serving/README.md +321 -0
- freesolo_flash_dev-1.2.115/flash/serving/modal_app.py +808 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/adapter_routes.py +265 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/context.py +167 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/engine_boot.py +226 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/lora_engine.py +989 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/model_config.py +202 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/prequant_config.py +35 -0
- freesolo_flash_dev-1.2.115/flash/serving/src/undeploy.py +277 -0
- freesolo_flash_dev-1.2.115/pyproject.toml +324 -0
- freesolo_flash_dev-1.2.115/tests/_helpers/specs.py +24 -0
- freesolo_flash_dev-1.2.115/tests/capture_qwen38_27b_metadata.py +180 -0
- freesolo_flash_dev-1.2.115/tests/fixtures/image_sft_processor_oracle.json +1 -0
- freesolo_flash_dev-1.2.115/tests/fixtures/qwen35_9b_target_metadata.json +114 -0
- freesolo_flash_dev-1.2.115/tests/fixtures/qwen38_27b_target_metadata.json +289 -0
- freesolo_flash_dev-1.2.115/tests/live/test_sft_thinking_render_live.py +286 -0
- freesolo_flash_dev-1.2.115/tests/serving/conftest.py +199 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_base_model_serving.py +244 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_chat_auth.py +262 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_chat_authorizer.py +530 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_checkpoint_model_validation.py +217 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_fp8_config.py +169 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_immutable_engine.py +330 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_immutable_revisions.py +1493 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_immutable_schemas.py +147 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_model_config.py +168 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_multimodal.py +1148 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_per_model_gpu.py +824 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_persistence.py +268 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_pre_first_disconnect.py +419 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_prequant_config.py +42 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_registry_coverage.py +65 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_router.py +2049 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_router_coverage.py +282 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_router_edge_coverage.py +308 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_schemas_coverage.py +188 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_serve_reasoning_split.py +270 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_serve_structured_outputs.py +735 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_serve_thinking.py +172 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_structured_outputs.py +397 -0
- freesolo_flash_dev-1.2.115/tests/serving/test_usage_reporter.py +1134 -0
- freesolo_flash_dev-1.2.115/tests/serving_conformance/test_contract.py +786 -0
- freesolo_flash_dev-1.2.115/tests/test_agent_flash_cli_contract.py +297 -0
- freesolo_flash_dev-1.2.115/tests/test_algorithms.py +124 -0
- freesolo_flash_dev-1.2.115/tests/test_allocator.py +2437 -0
- freesolo_flash_dev-1.2.115/tests/test_backend_common.py +4902 -0
- freesolo_flash_dev-1.2.115/tests/test_backend_jobspec_contract.py +171 -0
- freesolo_flash_dev-1.2.115/tests/test_billing_retry.py +722 -0
- freesolo_flash_dev-1.2.115/tests/test_cancel_remote.py +2184 -0
- freesolo_flash_dev-1.2.115/tests/test_capture_qwen38_metadata.py +68 -0
- freesolo_flash_dev-1.2.115/tests/test_catalog_consistency.py +217 -0
- freesolo_flash_dev-1.2.115/tests/test_catalog_only_models.py +88 -0
- freesolo_flash_dev-1.2.115/tests/test_charge_pricing.py +771 -0
- freesolo_flash_dev-1.2.115/tests/test_checkpoints.py +686 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_commands.py +5442 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_errors.py +285 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_estimate.py +1233 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_gpus_flag.py +350 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_managed.py +147 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_render_coverage.py +643 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_render_theme.py +1774 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_serve_deploy.py +1028 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_serve_status.py +367 -0
- freesolo_flash_dev-1.2.115/tests/test_cli_serve_undeploy.py +476 -0
- freesolo_flash_dev-1.2.115/tests/test_client.py +1411 -0
- freesolo_flash_dev-1.2.115/tests/test_client_server_integration.py +348 -0
- freesolo_flash_dev-1.2.115/tests/test_config_overrides.py +100 -0
- freesolo_flash_dev-1.2.115/tests/test_controlled_experiment_repairs.py +503 -0
- freesolo_flash_dev-1.2.115/tests/test_cost_analytical.py +467 -0
- freesolo_flash_dev-1.2.115/tests/test_cost_currency.py +11 -0
- freesolo_flash_dev-1.2.115/tests/test_cost_estimate.py +1021 -0
- freesolo_flash_dev-1.2.115/tests/test_cost_hardware.py +685 -0
- freesolo_flash_dev-1.2.115/tests/test_cost_models.py +219 -0
- freesolo_flash_dev-1.2.115/tests/test_dataset_profile.py +904 -0
- freesolo_flash_dev-1.2.115/tests/test_disk_gb.py +210 -0
- freesolo_flash_dev-1.2.115/tests/test_env_publish.py +1962 -0
- freesolo_flash_dev-1.2.115/tests/test_env_rate_limit_resolve.py +332 -0
- freesolo_flash_dev-1.2.115/tests/test_env_ref_pinning.py +73 -0
- freesolo_flash_dev-1.2.115/tests/test_export.py +1579 -0
- freesolo_flash_dev-1.2.115/tests/test_flash_mvp.py +131 -0
- freesolo_flash_dev-1.2.115/tests/test_flash_worker.py +1527 -0
- freesolo_flash_dev-1.2.115/tests/test_fused_expert_warmstart.py +1893 -0
- freesolo_flash_dev-1.2.115/tests/test_gpu_type_single_field.py +195 -0
- freesolo_flash_dev-1.2.115/tests/test_gpus.py +537 -0
- freesolo_flash_dev-1.2.115/tests/test_grpo_params.py +734 -0
- freesolo_flash_dev-1.2.115/tests/test_grpo_resident_sizing.py +193 -0
- freesolo_flash_dev-1.2.115/tests/test_grpo_rollout_contract.py +486 -0
- freesolo_flash_dev-1.2.115/tests/test_image_environment_capability.py +92 -0
- freesolo_flash_dev-1.2.115/tests/test_image_incremental_processor.py +583 -0
- freesolo_flash_dev-1.2.115/tests/test_image_sft_processor_parity.py +549 -0
- freesolo_flash_dev-1.2.115/tests/test_image_tokens.py +459 -0
- freesolo_flash_dev-1.2.115/tests/test_jobs.py +7246 -0
- freesolo_flash_dev-1.2.115/tests/test_kv_util.py +318 -0
- freesolo_flash_dev-1.2.115/tests/test_lambda_runner.py +4164 -0
- freesolo_flash_dev-1.2.115/tests/test_lora_rank_preflight.py +705 -0
- freesolo_flash_dev-1.2.115/tests/test_lora_targeting.py +780 -0
- freesolo_flash_dev-1.2.115/tests/test_managed_config_fields.py +164 -0
- freesolo_flash_dev-1.2.115/tests/test_managed_hf_repo.py +102 -0
- freesolo_flash_dev-1.2.115/tests/test_metrics_schema_agent_contract.py +174 -0
- freesolo_flash_dev-1.2.115/tests/test_multi_gpu_gate.py +1631 -0
- freesolo_flash_dev-1.2.115/tests/test_multimodal_training.py +1203 -0
- freesolo_flash_dev-1.2.115/tests/test_opd.py +1892 -0
- freesolo_flash_dev-1.2.115/tests/test_opd_resume_safety.py +1405 -0
- freesolo_flash_dev-1.2.115/tests/test_opd_train.py +9578 -0
- freesolo_flash_dev-1.2.115/tests/test_orchestrator_flash.py +484 -0
- freesolo_flash_dev-1.2.115/tests/test_packing.py +285 -0
- freesolo_flash_dev-1.2.115/tests/test_packing_coverage.py +179 -0
- freesolo_flash_dev-1.2.115/tests/test_persisted_spec_envelope.py +93 -0
- freesolo_flash_dev-1.2.115/tests/test_prompt_budget.py +397 -0
- freesolo_flash_dev-1.2.115/tests/test_provider_routing.py +2851 -0
- freesolo_flash_dev-1.2.115/tests/test_providers_symmetry.py +447 -0
- freesolo_flash_dev-1.2.115/tests/test_realized_cost.py +443 -0
- freesolo_flash_dev-1.2.115/tests/test_resolve_params_b.py +75 -0
- freesolo_flash_dev-1.2.115/tests/test_resume_on_retry.py +1202 -0
- freesolo_flash_dev-1.2.115/tests/test_rl_train.py +9533 -0
- freesolo_flash_dev-1.2.115/tests/test_runmgmt.py +3239 -0
- freesolo_flash_dev-1.2.115/tests/test_serve.py +1969 -0
- freesolo_flash_dev-1.2.115/tests/test_serve_app_manifest.py +299 -0
- freesolo_flash_dev-1.2.115/tests/test_serve_app_materialize.py +1088 -0
- freesolo_flash_dev-1.2.115/tests/test_serve_resolve_provenance.py +493 -0
- freesolo_flash_dev-1.2.115/tests/test_server_api.py +10888 -0
- freesolo_flash_dev-1.2.115/tests/test_server_billing.py +884 -0
- freesolo_flash_dev-1.2.115/tests/test_server_envs_coverage.py +2378 -0
- freesolo_flash_dev-1.2.115/tests/test_server_standalone.py +1101 -0
- freesolo_flash_dev-1.2.115/tests/test_serving_conformance_gate.py +91 -0
- freesolo_flash_dev-1.2.115/tests/test_serving_context_preflight.py +36 -0
- freesolo_flash_dev-1.2.115/tests/test_serving_contract.py +1019 -0
- freesolo_flash_dev-1.2.115/tests/test_sft_chunked_nll.py +37 -0
- freesolo_flash_dev-1.2.115/tests/test_sft_gc_off.py +450 -0
- freesolo_flash_dev-1.2.115/tests/test_sft_max_context.py +95 -0
- freesolo_flash_dev-1.2.115/tests/test_sft_step_floor.py +90 -0
- freesolo_flash_dev-1.2.115/tests/test_sft_train.py +5279 -0
- freesolo_flash_dev-1.2.115/tests/test_sft_workload.py +1503 -0
- freesolo_flash_dev-1.2.115/tests/test_source_attestation_flow.py +189 -0
- freesolo_flash_dev-1.2.115/tests/test_spec_and_validation.py +2439 -0
- freesolo_flash_dev-1.2.115/tests/test_spec_contract_bytes.py +346 -0
- freesolo_flash_dev-1.2.115/tests/test_staged_environment.py +916 -0
- freesolo_flash_dev-1.2.115/tests/test_step_floor.py +334 -0
- freesolo_flash_dev-1.2.115/tests/test_structured_outputs.py +227 -0
- freesolo_flash_dev-1.2.115/tests/test_teacher_broker.py +2354 -0
- freesolo_flash_dev-1.2.115/tests/test_thinking_config.py +117 -0
- freesolo_flash_dev-1.2.115/tests/test_train_context_preflight.py +118 -0
- freesolo_flash_dev-1.2.115/tests/test_training_controls.py +600 -0
- freesolo_flash_dev-1.2.115/tests/test_vast_offers.py +416 -0
- freesolo_flash_dev-1.2.115/tests/test_vast_runner.py +2882 -0
- freesolo_flash_dev-1.2.115/tests/test_verifiers.py +2928 -0
- freesolo_flash_dev-1.2.115/tests/test_verl_child_plugins.py +796 -0
- freesolo_flash_dev-1.2.115/tests/test_vram_architecture.py +231 -0
- freesolo_flash_dev-1.2.115/tests/test_wandb_naming.py +167 -0
- freesolo_flash_dev-1.2.115/tests/test_warmstart_cross_repo.py +1612 -0
- freesolo_flash_dev-1.2.115/tests/test_warmstart_image_adapters.py +222 -0
- freesolo_flash_dev-1.2.115/tests/test_weight_cache.py +4907 -0
- freesolo_flash_dev-1.2.115/tests/test_worker_stack.py +2222 -0
- freesolo_flash_dev-1.2.115/tests/test_worker_thinking.py +248 -0
- freesolo_flash_dev-1.2.115/tests/test_workload_profile.py +282 -0
- freesolo_flash_dev-1.2.115/tests/test_zero2_sharding_gate.py +266 -0
- freesolo_flash_dev-1.2.115/uv.lock +5817 -0
- freesolo_flash_dev-1.2.112/CHANGELOG.md +0 -189
- freesolo_flash_dev-1.2.112/Dockerfile.worker +0 -477
- freesolo_flash_dev-1.2.112/PKG-INFO +0 -342
- freesolo_flash_dev-1.2.112/README.md +0 -259
- freesolo_flash_dev-1.2.112/SELF_HOSTING.md +0 -495
- freesolo_flash_dev-1.2.112/docs/serving-contract.md +0 -191
- freesolo_flash_dev-1.2.112/flash/cli/__init__.py +0 -943
- freesolo_flash_dev-1.2.112/flash/cli/commands/__init__.py +0 -973
- freesolo_flash_dev-1.2.112/flash/cli/commands/env/setup.py +0 -979
- freesolo_flash_dev-1.2.112/flash/cli/commands/train_cost.py +0 -410
- freesolo_flash_dev-1.2.112/flash/cli/scaffold/TRAINING.md +0 -1820
- freesolo_flash_dev-1.2.112/flash/cli/ui/render.py +0 -827
- freesolo_flash_dev-1.2.112/flash/content/multimodal.py +0 -889
- freesolo_flash_dev-1.2.112/flash/content/thinking.py +0 -62
- freesolo_flash_dev-1.2.112/flash/core/catalog.py +0 -693
- freesolo_flash_dev-1.2.112/flash/cost/analytical.py +0 -973
- freesolo_flash_dev-1.2.112/flash/cost/spec.py +0 -278
- freesolo_flash_dev-1.2.112/flash/cost/types.py +0 -352
- freesolo_flash_dev-1.2.112/flash/engine/plan/recipe.py +0 -219
- freesolo_flash_dev-1.2.112/flash/engine/plan/vram.py +0 -998
- freesolo_flash_dev-1.2.112/flash/engine/profiling/sft_image_rows.py +0 -226
- freesolo_flash_dev-1.2.112/flash/engine/profiling/sft_workload.py +0 -976
- freesolo_flash_dev-1.2.112/flash/engine/worker/backend_common.py +0 -998
- freesolo_flash_dev-1.2.112/flash/engine/worker/entry/opd.py +0 -164
- freesolo_flash_dev-1.2.112/flash/engine/worker/opd_train.py +0 -531
- freesolo_flash_dev-1.2.112/flash/engine/worker/opd_train_runner.py +0 -992
- freesolo_flash_dev-1.2.112/flash/engine/worker/perf/memory.py +0 -117
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/core/child/glue.py +0 -899
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/bridge.py +0 -987
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/gkd.py +0 -170
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/overrides.py +0 -521
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/prompts.py +0 -162
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/scoring.py +0 -88
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/state.py +0 -96
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/rl/inputs.py +0 -595
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/rl/multi_turn.py +0 -819
- freesolo_flash_dev-1.2.112/flash/engine/worker/train/rl/verl_config.py +0 -811
- freesolo_flash_dev-1.2.112/flash/envs/base.py +0 -221
- freesolo_flash_dev-1.2.112/flash/providers/artifacts/weight_cache.py +0 -863
- freesolo_flash_dev-1.2.112/flash/runner/costs.py +0 -351
- freesolo_flash_dev-1.2.112/flash/runner/preparation.py +0 -597
- freesolo_flash_dev-1.2.112/flash/runner/status.py +0 -433
- freesolo_flash_dev-1.2.112/flash/runner/submit.py +0 -350
- freesolo_flash_dev-1.2.112/flash/runner/supervise/lifecycle.py +0 -391
- freesolo_flash_dev-1.2.112/flash/runner/supervise/retry_decision.py +0 -211
- freesolo_flash_dev-1.2.112/flash/runner/supervise/seed_submission.py +0 -954
- freesolo_flash_dev-1.2.112/flash/schema/__init__.py +0 -924
- freesolo_flash_dev-1.2.112/flash/serve/deploy.py +0 -953
- freesolo_flash_dev-1.2.112/flash/serve/profiles.py +0 -410
- freesolo_flash_dev-1.2.112/flash/server/billing/charges.py +0 -134
- freesolo_flash_dev-1.2.112/flash/server/platform/runtime.py +0 -799
- freesolo_flash_dev-1.2.112/flash/serving/README.md +0 -324
- freesolo_flash_dev-1.2.112/flash/serving/modal_app.py +0 -803
- freesolo_flash_dev-1.2.112/flash/serving/src/adapter_routes.py +0 -262
- freesolo_flash_dev-1.2.112/flash/serving/src/context.py +0 -162
- freesolo_flash_dev-1.2.112/flash/serving/src/engine_boot.py +0 -173
- freesolo_flash_dev-1.2.112/flash/serving/src/lora_engine.py +0 -962
- freesolo_flash_dev-1.2.112/flash/serving/src/model_config.py +0 -257
- freesolo_flash_dev-1.2.112/flash/serving/src/prequant_config.py +0 -50
- freesolo_flash_dev-1.2.112/flash/serving/src/undeploy.py +0 -272
- freesolo_flash_dev-1.2.112/pyproject.toml +0 -324
- freesolo_flash_dev-1.2.112/tests/_helpers/specs.py +0 -24
- freesolo_flash_dev-1.2.112/tests/fixtures/image_sft_processor_oracle.json +0 -1
- freesolo_flash_dev-1.2.112/tests/fixtures/qwen35_08b_target_metadata.json +0 -101
- freesolo_flash_dev-1.2.112/tests/live/test_sft_thinking_render_live.py +0 -285
- freesolo_flash_dev-1.2.112/tests/serving/conftest.py +0 -196
- freesolo_flash_dev-1.2.112/tests/serving/test_base_model_serving.py +0 -244
- freesolo_flash_dev-1.2.112/tests/serving/test_chat_auth.py +0 -262
- freesolo_flash_dev-1.2.112/tests/serving/test_chat_authorizer.py +0 -530
- freesolo_flash_dev-1.2.112/tests/serving/test_checkpoint_model_validation.py +0 -217
- freesolo_flash_dev-1.2.112/tests/serving/test_fp8_config.py +0 -169
- freesolo_flash_dev-1.2.112/tests/serving/test_immutable_engine.py +0 -330
- freesolo_flash_dev-1.2.112/tests/serving/test_immutable_revisions.py +0 -1464
- freesolo_flash_dev-1.2.112/tests/serving/test_immutable_schemas.py +0 -147
- freesolo_flash_dev-1.2.112/tests/serving/test_model_config.py +0 -197
- freesolo_flash_dev-1.2.112/tests/serving/test_multimodal.py +0 -1147
- freesolo_flash_dev-1.2.112/tests/serving/test_per_model_gpu.py +0 -877
- freesolo_flash_dev-1.2.112/tests/serving/test_persistence.py +0 -268
- freesolo_flash_dev-1.2.112/tests/serving/test_pre_first_disconnect.py +0 -419
- freesolo_flash_dev-1.2.112/tests/serving/test_prequant_config.py +0 -54
- freesolo_flash_dev-1.2.112/tests/serving/test_registry_coverage.py +0 -65
- freesolo_flash_dev-1.2.112/tests/serving/test_router.py +0 -2031
- freesolo_flash_dev-1.2.112/tests/serving/test_router_coverage.py +0 -282
- freesolo_flash_dev-1.2.112/tests/serving/test_router_edge_coverage.py +0 -308
- freesolo_flash_dev-1.2.112/tests/serving/test_schemas_coverage.py +0 -188
- freesolo_flash_dev-1.2.112/tests/serving/test_serve_reasoning_split.py +0 -270
- freesolo_flash_dev-1.2.112/tests/serving/test_serve_structured_outputs.py +0 -721
- freesolo_flash_dev-1.2.112/tests/serving/test_serve_thinking.py +0 -172
- freesolo_flash_dev-1.2.112/tests/serving/test_structured_outputs.py +0 -397
- freesolo_flash_dev-1.2.112/tests/serving/test_usage_reporter.py +0 -1129
- freesolo_flash_dev-1.2.112/tests/serving_conformance/__init__.py +0 -0
- freesolo_flash_dev-1.2.112/tests/serving_conformance/test_contract.py +0 -786
- freesolo_flash_dev-1.2.112/tests/test_agent_flash_cli_contract.py +0 -297
- freesolo_flash_dev-1.2.112/tests/test_algorithms.py +0 -124
- freesolo_flash_dev-1.2.112/tests/test_allocator.py +0 -2885
- freesolo_flash_dev-1.2.112/tests/test_backend_common.py +0 -4902
- freesolo_flash_dev-1.2.112/tests/test_backend_jobspec_contract.py +0 -171
- freesolo_flash_dev-1.2.112/tests/test_billing_retry.py +0 -688
- freesolo_flash_dev-1.2.112/tests/test_cancel_remote.py +0 -2178
- freesolo_flash_dev-1.2.112/tests/test_catalog_consistency.py +0 -184
- freesolo_flash_dev-1.2.112/tests/test_catalog_only_models.py +0 -88
- freesolo_flash_dev-1.2.112/tests/test_charge_pricing.py +0 -591
- freesolo_flash_dev-1.2.112/tests/test_checkpoints.py +0 -686
- freesolo_flash_dev-1.2.112/tests/test_cli_commands.py +0 -5442
- freesolo_flash_dev-1.2.112/tests/test_cli_errors.py +0 -284
- freesolo_flash_dev-1.2.112/tests/test_cli_estimate.py +0 -1210
- freesolo_flash_dev-1.2.112/tests/test_cli_gpus_flag.py +0 -350
- freesolo_flash_dev-1.2.112/tests/test_cli_managed.py +0 -147
- freesolo_flash_dev-1.2.112/tests/test_cli_render_coverage.py +0 -638
- freesolo_flash_dev-1.2.112/tests/test_cli_render_theme.py +0 -1774
- freesolo_flash_dev-1.2.112/tests/test_cli_serve_deploy.py +0 -969
- freesolo_flash_dev-1.2.112/tests/test_cli_serve_status.py +0 -344
- freesolo_flash_dev-1.2.112/tests/test_cli_serve_undeploy.py +0 -453
- freesolo_flash_dev-1.2.112/tests/test_client.py +0 -1411
- freesolo_flash_dev-1.2.112/tests/test_client_server_integration.py +0 -348
- freesolo_flash_dev-1.2.112/tests/test_config_overrides.py +0 -100
- freesolo_flash_dev-1.2.112/tests/test_controlled_experiment_repairs.py +0 -485
- freesolo_flash_dev-1.2.112/tests/test_cost_analytical.py +0 -438
- freesolo_flash_dev-1.2.112/tests/test_cost_estimate.py +0 -1003
- freesolo_flash_dev-1.2.112/tests/test_cost_hardware.py +0 -685
- freesolo_flash_dev-1.2.112/tests/test_cost_models.py +0 -219
- freesolo_flash_dev-1.2.112/tests/test_dataset_profile.py +0 -904
- freesolo_flash_dev-1.2.112/tests/test_disk_gb.py +0 -210
- freesolo_flash_dev-1.2.112/tests/test_env_publish.py +0 -1962
- freesolo_flash_dev-1.2.112/tests/test_env_rate_limit_resolve.py +0 -332
- freesolo_flash_dev-1.2.112/tests/test_env_ref_pinning.py +0 -73
- freesolo_flash_dev-1.2.112/tests/test_export.py +0 -1579
- freesolo_flash_dev-1.2.112/tests/test_flash_mvp.py +0 -131
- freesolo_flash_dev-1.2.112/tests/test_flash_worker.py +0 -1527
- freesolo_flash_dev-1.2.112/tests/test_fused_expert_warmstart.py +0 -1894
- freesolo_flash_dev-1.2.112/tests/test_gpu_type_single_field.py +0 -195
- freesolo_flash_dev-1.2.112/tests/test_gpus.py +0 -576
- freesolo_flash_dev-1.2.112/tests/test_grpo_params.py +0 -734
- freesolo_flash_dev-1.2.112/tests/test_grpo_resident_sizing.py +0 -193
- freesolo_flash_dev-1.2.112/tests/test_grpo_rollout_contract.py +0 -485
- freesolo_flash_dev-1.2.112/tests/test_image_environment_capability.py +0 -92
- freesolo_flash_dev-1.2.112/tests/test_image_incremental_processor.py +0 -583
- freesolo_flash_dev-1.2.112/tests/test_image_sft_processor_parity.py +0 -549
- freesolo_flash_dev-1.2.112/tests/test_image_tokens.py +0 -459
- freesolo_flash_dev-1.2.112/tests/test_jobs.py +0 -7277
- freesolo_flash_dev-1.2.112/tests/test_kv_util.py +0 -318
- freesolo_flash_dev-1.2.112/tests/test_lambda_runner.py +0 -4160
- freesolo_flash_dev-1.2.112/tests/test_lora_rank_preflight.py +0 -689
- freesolo_flash_dev-1.2.112/tests/test_lora_targeting.py +0 -780
- freesolo_flash_dev-1.2.112/tests/test_managed_config_fields.py +0 -164
- freesolo_flash_dev-1.2.112/tests/test_managed_hf_repo.py +0 -102
- freesolo_flash_dev-1.2.112/tests/test_metrics_schema_agent_contract.py +0 -174
- freesolo_flash_dev-1.2.112/tests/test_multi_gpu_gate.py +0 -1633
- freesolo_flash_dev-1.2.112/tests/test_multimodal_training.py +0 -1203
- freesolo_flash_dev-1.2.112/tests/test_opd.py +0 -1827
- freesolo_flash_dev-1.2.112/tests/test_opd_resume_safety.py +0 -1405
- freesolo_flash_dev-1.2.112/tests/test_opd_train.py +0 -9322
- freesolo_flash_dev-1.2.112/tests/test_orchestrator_flash.py +0 -484
- freesolo_flash_dev-1.2.112/tests/test_packing.py +0 -285
- freesolo_flash_dev-1.2.112/tests/test_packing_coverage.py +0 -179
- freesolo_flash_dev-1.2.112/tests/test_persisted_spec_envelope.py +0 -93
- freesolo_flash_dev-1.2.112/tests/test_prompt_budget.py +0 -392
- freesolo_flash_dev-1.2.112/tests/test_provider_routing.py +0 -2938
- freesolo_flash_dev-1.2.112/tests/test_providers_symmetry.py +0 -447
- freesolo_flash_dev-1.2.112/tests/test_realized_cost.py +0 -443
- freesolo_flash_dev-1.2.112/tests/test_resolve_params_b.py +0 -45
- freesolo_flash_dev-1.2.112/tests/test_resume_on_retry.py +0 -1202
- freesolo_flash_dev-1.2.112/tests/test_rl_train.py +0 -9316
- freesolo_flash_dev-1.2.112/tests/test_runmgmt.py +0 -3162
- freesolo_flash_dev-1.2.112/tests/test_serve.py +0 -1965
- freesolo_flash_dev-1.2.112/tests/test_serve_app_manifest.py +0 -299
- freesolo_flash_dev-1.2.112/tests/test_serve_app_materialize.py +0 -1088
- freesolo_flash_dev-1.2.112/tests/test_serve_resolve_provenance.py +0 -493
- freesolo_flash_dev-1.2.112/tests/test_server_api.py +0 -10862
- freesolo_flash_dev-1.2.112/tests/test_server_billing.py +0 -884
- freesolo_flash_dev-1.2.112/tests/test_server_envs_coverage.py +0 -2378
- freesolo_flash_dev-1.2.112/tests/test_server_standalone.py +0 -1101
- freesolo_flash_dev-1.2.112/tests/test_serving_conformance_gate.py +0 -91
- freesolo_flash_dev-1.2.112/tests/test_serving_context_preflight.py +0 -39
- freesolo_flash_dev-1.2.112/tests/test_serving_contract.py +0 -1019
- freesolo_flash_dev-1.2.112/tests/test_sft_chunked_nll.py +0 -37
- freesolo_flash_dev-1.2.112/tests/test_sft_gc_off.py +0 -421
- freesolo_flash_dev-1.2.112/tests/test_sft_max_context.py +0 -95
- freesolo_flash_dev-1.2.112/tests/test_sft_startup_block.py +0 -133
- freesolo_flash_dev-1.2.112/tests/test_sft_train.py +0 -5275
- freesolo_flash_dev-1.2.112/tests/test_sft_workload.py +0 -1499
- freesolo_flash_dev-1.2.112/tests/test_source_attestation_flow.py +0 -189
- freesolo_flash_dev-1.2.112/tests/test_spec_and_validation.py +0 -2401
- freesolo_flash_dev-1.2.112/tests/test_spec_contract_bytes.py +0 -346
- freesolo_flash_dev-1.2.112/tests/test_staged_environment.py +0 -916
- freesolo_flash_dev-1.2.112/tests/test_step_floor.py +0 -319
- freesolo_flash_dev-1.2.112/tests/test_structured_outputs.py +0 -227
- freesolo_flash_dev-1.2.112/tests/test_teacher_broker.py +0 -2354
- freesolo_flash_dev-1.2.112/tests/test_thinking_config.py +0 -117
- freesolo_flash_dev-1.2.112/tests/test_train_context_preflight.py +0 -133
- freesolo_flash_dev-1.2.112/tests/test_training_controls.py +0 -600
- freesolo_flash_dev-1.2.112/tests/test_vast_offers.py +0 -416
- freesolo_flash_dev-1.2.112/tests/test_vast_runner.py +0 -2882
- freesolo_flash_dev-1.2.112/tests/test_verifiers.py +0 -2910
- freesolo_flash_dev-1.2.112/tests/test_verl_child_plugins.py +0 -771
- freesolo_flash_dev-1.2.112/tests/test_vram_architecture.py +0 -291
- freesolo_flash_dev-1.2.112/tests/test_wandb_naming.py +0 -167
- freesolo_flash_dev-1.2.112/tests/test_warmstart_cross_repo.py +0 -1563
- freesolo_flash_dev-1.2.112/tests/test_warmstart_image_adapters.py +0 -222
- freesolo_flash_dev-1.2.112/tests/test_weight_cache.py +0 -4881
- freesolo_flash_dev-1.2.112/tests/test_worker_stack.py +0 -2222
- freesolo_flash_dev-1.2.112/tests/test_worker_thinking.py +0 -125
- freesolo_flash_dev-1.2.112/tests/test_workload_profile.py +0 -282
- freesolo_flash_dev-1.2.112/tests/test_zero2_sharding_gate.py +0 -266
- freesolo_flash_dev-1.2.112/uv.lock +0 -5816
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.dockerignore +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.env.example +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/CODEOWNERS +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/dependabot.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/auto-rebake.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/bake-kernel-cache.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/ci.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/deploy-modal-dev.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/deploy-modal.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/dev-kernel-cache.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/main-source-guard.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/notify-tests-repo.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/production-kernel-cache-ready.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/publish-dev.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/publish-image.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/publish-serving-image.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/publish.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/version-parity.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.github/workflows/worker-image.yml +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/.gitignore +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/CODE_OF_CONDUCT.md +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/CONTRIBUTING.md +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/Dockerfile +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/Dockerfile.serve +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/LICENSE +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/NOTICE +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/SECURITY.md +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/build/kernel_cache/.gitignore +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/build/kernel_cache/.keep +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/deploy/infisical/README.md +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/deploy/infisical/entrypoint.sh +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/Dockerfile.kernelcache +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/Dockerfile.kernelcache.relayer +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/bake_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/bake_pod_entry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/extract_cudart_fix.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/kernel_fingerprint.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/docker/make_rp_handler.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/_internal/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/_internal/channel.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/_internal/diagnostics.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/_internal/fileio.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/_internal/logging.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/_internal/paths.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/adapters/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/adapters/artifacts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/adapters/fused_experts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/adapters/lora_rank.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/adapters/targets.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/__main__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/deploy.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/episode.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/eval.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/eval_args.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/imports.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/list.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/push.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/retained.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/setup_wandb.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/test.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/test_evaluations.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/test_params.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/env/test_warnings.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/log_follow.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/prompt_budget.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/serve_deploy.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/serve_identity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/serve_status.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/serve_undeploy.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/traces.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/commands/worker_output.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/errors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/scaffold/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/serve_parser.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/ui/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/ui/cost.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/ui/env_panels.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/ui/heartbeat.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/ui/tables.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cli/ui/tty.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/config.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/freesolo_api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/http.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/runtime_secrets.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/shapes.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/specs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/client/streaming.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/content/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/content/image_descriptors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/content/structured_outputs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/core/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/core/grpo.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/core/spec.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/core/spec_persistence.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cost/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/cost/facts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/huggingface.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/plan/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/plan/kv_sizing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/plan/model_config_probe.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/plan/prompt_budget.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/plan/steps.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/profiling/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/profiling/dataset_profile.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/profiling/image_tokens.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/profiling/reasoning_render.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/profiling/tokenizer.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/profiling/workload_profile.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/result/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/result/accounting.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/result/rollout_samples.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/__main__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/entry/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/entry/rl.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/entry/sft.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/io/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/io/heartbeat.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/io/hf.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/io/prefetch.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/io/wandb_log.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/model/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/model/adapter.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/model/chatml_mask.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/model/decoding.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/model/lora.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/model/packing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/perf/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/perf/diagnostics.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/perf/lifecycle.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/perf/liger.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/rl_train.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/rl_train_runner.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/runtime/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/runtime/pkg_proxy.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/runtime/rng.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/score_batcher.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/sft_train.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/sft_train_runner.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/teacher/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/teacher/client.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/teacher/encoding.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/teacher/tokenizer_align.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/core/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/core/checkpoint_lifecycle.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/core/child/runtime.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/core/step_timing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/finalize.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/engine/worker/train/core/child → freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/batching.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/bridge_failures.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.115/flash/engine/worker/train/opd/child}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/bridge.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/entry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/multiturn.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/plugin.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/replay_guard.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/runtime.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/child/structured.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/failures.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/multiturn_media.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/multiturn_validation.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/reporting.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/opd/validation.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/engine/worker/train/opd/child → freesolo_flash_dev-1.2.115/flash/engine/worker/train/rl}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/checkpoints.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.115/flash/engine/worker/train/rl/child}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/child/entry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/child/patches.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/child/plugin.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/config.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/identity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/reward_module.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/scoring.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/rl/single_turn.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/engine/worker/train/rl/child → freesolo_flash_dev-1.2.115/flash/engine/worker/train/sft}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/sft/checkpoints.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/sft/child/entry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/sft/child/plugin.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/train/sft/config.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/capabilities.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/checkpoints.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/child_io.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/diagnostics.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/parallelism.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/parent_work.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker/verl/process_census.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/engine/worker_entrypoint.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/adapter.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/cache_security.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/dataset_selection.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/evaluations.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/identity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/loader.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/namespace_listing.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/engine/worker/train/sft → freesolo_flash_dev-1.2.115/flash/envs/package}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/package/direct_tokens.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/package/limits.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/package/unpack.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/pull.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/envs/staged.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/envs/package → freesolo_flash_dev-1.2.115/flash/providers/_lifecycle}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/auth.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/bootstrap.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/bootstrap_console.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/bootstrap_pip.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/bootstrap_secrets.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/deadline.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/host/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/host/deadline_sleep.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/host/failmark.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/host/hostlog.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/http.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/instance.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/poll.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/poll_instance.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/provider.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/terminal_artifacts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/_lifecycle/worker.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/allocator.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/providers/_lifecycle → freesolo_flash_dev-1.2.115/flash/providers/artifacts}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/artifacts/hf.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/artifacts/preload_runpod.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/base.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/fit_errors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/auth.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/gpus.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/jobs/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/jobs/builders.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/jobs/reap.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/preflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/lambda_/pricing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/preflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/realized.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/auth.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/cost.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/gpus.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/job_execution.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/jobs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/preflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/pricing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/resources.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/serverless/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/runpod/serverless/endpoints.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/sharding.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/auth.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/jobs/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/jobs/builders.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/preflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/providers/vast/pricing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/py.typed +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/artifacts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/attempts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/deadlines.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/reconciliation.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/providers/artifacts → freesolo_flash_dev-1.2.115/flash/runner/results}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/results/checkpoints.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/results/verified_revisions.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/runner/results → freesolo_flash_dev-1.2.115/flash/runner/supervise}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/supervise/attach.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/supervise/deploy.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/supervise/recovery.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/supervise/transitions.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runner/weight_cache.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runtime_capsule/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runtime_capsule/build.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runtime_capsule/manifest.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/runtime_capsule/profiles.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/schema/fields.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/adapter_check.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/__main__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/bootstrap.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/http.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/launch.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/manifest.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/materialize.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/openai.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/app/progress.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/contract.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/_canonical.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/_serialization.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/_urls.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/credentials.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/planning.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/control/types.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/errors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/export.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/preflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_common.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_deployment.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_lifecycle.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_plan.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_probe.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_readiness.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_resources.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_sdk.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_teardown.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_modal_wrapper.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_lifecycle.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_mutations.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_plan.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_probe.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_protocol.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_readiness.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_resources.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/_runpod_transport.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/modal.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/provisioning/runpod.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/request_validation.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/resolve.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/responses.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/adapters.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/engine.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/errors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/multimodal.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/prompt.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/structured_outputs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime/types.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/runtime_support.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/streaming.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/thinking.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serve/urls.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/__main__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/app.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/runner/supervise → freesolo_flash_dev-1.2.115/flash/server/billing}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/billing/retry.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/server/billing → freesolo_flash_dev-1.2.115/flash/server/domain}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/checkpoints.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/environment_registry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/envs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/projects.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/reconcile.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/repo_cleanup.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/run_registry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/serving_resources.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/teacher_broker.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/teacher_errors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/domain/teacher_requests.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/server/domain → freesolo_flash_dev-1.2.115/flash/server/platform}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/platform/auth.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/platform/db.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/platform/deps.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/platform/internal_client.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/platform/locks.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/envs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/meta.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/runs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/serving.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/serving_completion.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/serving_revisions.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/serving_smoke.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/server/routes/teacher.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/server/platform → freesolo_flash_dev-1.2.115/flash/serving}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/body_limit.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/engine_errors.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/engine_support.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/http_headers.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/inference_routes.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/lookup.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/lora_entries.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/multimodal.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/persisted_columns.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/persistence.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/registration.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/registry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/responses.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/router.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/routing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/schemas.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/serving_io.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/settings.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/streaming.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/structured_outputs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/supabase_rest.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/serving/src/usage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/source_snapshot.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/serving → freesolo_flash_dev-1.2.115/flash/teacher}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/teacher/limits.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/teacher/provider_status.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/flash/teacher/retry_contract.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/scripts/build_dev_dist.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/scripts/check_file_size.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/scripts/check_function_size.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/scripts/check_rollout_identity_actor.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/scripts/check_verl_pin_exists.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/scripts/scrub_history.sh +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/serve_launch.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/_helpers/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/_helpers/profile.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/_helpers/runner.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/_helpers/source_snapshot.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/_helpers/teacher.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/_helpers/vast.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/capture_image_sft_processor_oracle.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/conftest.py +0 -0
- {freesolo_flash_dev-1.2.112/flash/teacher → freesolo_flash_dev-1.2.115/tests/live}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/live/conftest.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/live/test_lambda_live.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/live/test_runpod_live.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/live/test_vast_live.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_engine_error_status.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_modal_deploy_identity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_modal_image_paths.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_openai_stream_options.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_registry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_request_body_limit.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_settings.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_structured_outputs_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving/test_supabase_rest_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112/tests/live → freesolo_flash_dev-1.2.115/tests/serving_conformance}/__init__.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/serving_conformance/conftest.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_accounting_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_adapter_shard_completeness.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_bake_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_base_model_provenance.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_build_context_contract.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_checkpoint_lifecycle.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cli_commands_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cli_credential_shadowing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cli_help.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cli_main_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cli_traces.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cli_wandb_warning.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_client_import_purity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_client_stream_reads.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_config_env_vars.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_console_upload.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_cost_equation.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_deploy_alias_move_warning.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_deploy_latency.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_dev_channel.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_endpoint_name.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_cache_evict.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_delete.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_download.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_download_api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_evaluations.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_list_api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_list_cli.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_list_hub.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_no_install.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_pull.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_pull_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_pull_loader_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_pull_managed_control_plane.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_push.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_env_test.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_envs_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_flashinfer_cache_dirs.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_freesolo_api_transport.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_github_urlopen_retry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_grpo_process_census.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_grpo_reward_batching.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_grpo_rollout_identity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_health_liveness.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_hf_retry.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_idle_endpoint_reaper.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_image_sft_markers.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_infisical_secrets.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_instance_bootstrap_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_internal_client.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_kernel_cache.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_kernel_fingerprint.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_lambda_api_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_logging.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_login_perms.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_lora_rank_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_lora_rank_nested_rung.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_lora_targeting_pinned_verl.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_mig_guard.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_named_reward_metrics.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_oom_escalate_gpu.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_opd_limits.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_opd_multiturn_eos_boundary.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_opd_multiturn_failure_exit.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_opd_replay_guard.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_parasail_teacher.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_poll_helpers.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_preflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_projects.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_provider_preflight_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_provider_teardown_robustness.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_repo_cleanup.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_rollout_samples.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_runpod_api_delete.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_runpod_key_fingerprint.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_runpod_key_waterfall.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_runtime_capsule.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_app_bootstrap_http.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_app_launch.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_app_packaging.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_control.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_modal_sdk.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_modal_sdk_deadlines.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_modal_teardown_identity.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_profiles.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_provisioning_common.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_provisioning_modal.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_provisioning_runpod.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_reasoning_content.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_runtime_adapters.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_runtime_engine.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_runtime_package.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serve_runtime_types.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_server_app_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_server_auth_singleflight.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_server_checkpoints_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_server_db.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_server_locks_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_server_serving_resources.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_serving_schema_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_sft_example_selection.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_source_snapshot.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_step_metrics.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_step_timing.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_teacher_encoding_contract.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_terminal_artifacts.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_type_comment_prose.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_vast_api.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_vast_api_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_vast_provider_coverage.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_verified_revisions.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_verl_checkpoint_export.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_verl_silence_watchdog.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_version.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_vl_warmstart_adapter_keys.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_wandb_link.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_warmstart_adapter_download.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_warmstart_error_attribution.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_worker_dryrun.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_worker_hardexit.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_worker_image.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_worker_init_heartbeat.py +0 -0
- {freesolo_flash_dev-1.2.112 → freesolo_flash_dev-1.2.115}/tests/test_workflow_contracts.py +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Notable changes to `freesolo-flash`. The dev-channel package `freesolo-flash-dev` ships in
|
|
4
|
+
lockstep at the same version.
|
|
5
|
+
|
|
6
|
+
Releases happen by merging a version bump from `dev` into `main`, which publishes to PyPI
|
|
7
|
+
(`.github/workflows/publish.yml`). Versions are `MAJOR.MINOR.PATCH`.
|
|
8
|
+
|
|
9
|
+
This file starts at 1.1.35. Earlier releases are not reconstructed here; use
|
|
10
|
+
`git log` for anything before that.
|
|
11
|
+
|
|
12
|
+
## Unreleased
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- A `flash-cli` console script, the same entry point as `flash` under a name nothing else
|
|
17
|
+
claims. The `server` and `dev` extras install `runpod-flash`, which declares its own `flash`
|
|
18
|
+
script; whichever distribution is installed last wins, so on a control-plane host
|
|
19
|
+
`pip install 'freesolo-flash[server]'` could leave `flash` running RunPod's CLI, which exits 0
|
|
20
|
+
and does nothing. `flash` is unchanged and remains correct on a base (client-only) install.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Active training and hosted serving now expose exactly `Qwen/Qwen3.5-9B`,
|
|
25
|
+
`Qwen/Qwen3.8-27B`, and `Qwen/Qwen3.6-35B-A3B`. Qwen3.8 uses the immutable BF16 revision
|
|
26
|
+
`1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0` and official native block-FP8 serving revision
|
|
27
|
+
`017b9c7af6b5689d5dd426a76e0bc077eb5ca20a`. The Qwen3.5 0.8B, 2B, and 4B tiers and
|
|
28
|
+
`Qwen/Qwen3.6-27B` cannot activate, while historical status, accepted billing retry,
|
|
29
|
+
cancellation, cleanup, hosted revocation, and exact identity-based undeploy remain available.
|
|
30
|
+
Qwen3.6 27B adapters are not compatible with Qwen3.8. Customer-owned serving remains 9B-only.
|
|
31
|
+
- `[train] init_from_adapter` now works for every source/target algorithm pair. SFT was rejected as
|
|
32
|
+
a warm-start target, so an adapter could be continued only by GRPO or OPD; that restriction
|
|
33
|
+
described the retired trl SFT backend, and the verl backend that replaced it loads a warm-start
|
|
34
|
+
adapter exactly like the other two. All nine combinations of `sft`, `grpo`, and `opd` are
|
|
35
|
+
supported, including same-algorithm continuation. A warm-started SFT run also inherits its
|
|
36
|
+
source's base-model pin instead of resolving its own, so it stays deployable and no longer breaks
|
|
37
|
+
when the base model's hub tip moves.
|
|
38
|
+
- Managed attempts now pin, verify, and report one immutable Flash source archive across retries and recovery.
|
|
39
|
+
- Multi-turn GRPO now clones each sibling rollout from the task state that produced its prepared
|
|
40
|
+
prompt. Environments that record randomized episode choices on the task during `start_episode`
|
|
41
|
+
are stepped and scored against the same episode the model saw, without sharing mutable state
|
|
42
|
+
between sibling rollouts.
|
|
43
|
+
- A RunPod attempt's stall window is now measured from evidence timestamps rather than from when
|
|
44
|
+
the control plane happened to look at it. The window was seeded from the moment polling started
|
|
45
|
+
and was reset again by the first status read, and a heartbeat was credited at the time it was
|
|
46
|
+
read rather than the time it was written. Every one of those is a wall-clock reading, so each
|
|
47
|
+
reattach handed a worker that was already wedged a complete fresh setup window, and a supervisor
|
|
48
|
+
that reattached repeatedly could keep a dead worker on a paid GPU until the run's wall deadline.
|
|
49
|
+
The window is now anchored to the persisted launch, a heartbeat is credited at its own timestamp
|
|
50
|
+
clamped to that launch, and only a genuine status transition counts as progress. Instance
|
|
51
|
+
polling (Vast/Lambda) already worked this way; this brings RunPod onto the same rule. A job that
|
|
52
|
+
is still queued is unaffected: the capacity wait keeps its own exemption, so a worker granted
|
|
53
|
+
late still gets its full cold-start budget.
|
|
54
|
+
- An attempt's terminal artifacts (its strict marker plus `metrics.json`) are now interpreted by
|
|
55
|
+
one shared protocol instead of being decoded separately by live instance polling and by each
|
|
56
|
+
recovery path. The two decoders disagreed about identical bytes. A marker that could not be tied
|
|
57
|
+
to the attempt was a terminal failure to the live poller but indistinguishable from "no marker
|
|
58
|
+
yet" to recovery, so the same corrupt artifact produced a different story depending on which
|
|
59
|
+
layer happened to observe it; recovery now names it rather than logging silence. Neither path
|
|
60
|
+
ever adopted such a marker as completed work, and neither does now. Recovery also computed a
|
|
61
|
+
fresh observation window for the marker and then another for `metrics.json`, so the real ceiling
|
|
62
|
+
was their sum and moved with however long the first read took; both reads now share one window,
|
|
63
|
+
which makes the bound the cutoff rather than the sum.
|
|
64
|
+
- CI runs the offline test suite on both supported interpreters (3.11 and 3.12) rather than
|
|
65
|
+
3.11 alone, and sets `HF_HUB_OFFLINE` / `TRANSFORMERS_OFFLINE` so a test that reaches the
|
|
66
|
+
network fails deterministically instead of depending on runner connectivity.
|
|
67
|
+
- Every GitHub Action is pinned to a commit SHA rather than a mutable tag.
|
|
68
|
+
- `mypy` runs in CI as an advisory (non-blocking) job.
|
|
69
|
+
|
|
70
|
+
### Fixed
|
|
71
|
+
|
|
72
|
+
- Completed verl children now finish each captured W&B run before the W&B service shuts down,
|
|
73
|
+
avoiding teardown tracebacks, and `flash env setup` now gives every starter config explicit W&B
|
|
74
|
+
project and folder-derived run metadata.
|
|
75
|
+
|
|
76
|
+
- An ordered `[gpu] type` list is now priced over every class it declares acceptable, not just the
|
|
77
|
+
first. Allocation cost-ranks the whole set, so quoting the head alone priced a shape the run may
|
|
78
|
+
never be given — an authored `["B200", "H100"]` quoted roughly 3x the H100 the allocator would
|
|
79
|
+
really rent, and the submit-time affordability check runs on that estimate, so a run the
|
|
80
|
+
organization could afford could be refused before allocation ever got to choose. A single
|
|
81
|
+
authored class is still a hard pin, and a no-fit rejection now names every acceptable class
|
|
82
|
+
rather than whichever happened to be written first.
|
|
83
|
+
|
|
84
|
+
- A provider preference that exhausts every configured provider no longer falls back to quoting
|
|
85
|
+
hardware this plane cannot rent. The final fallback dropped the restriction and ranked the
|
|
86
|
+
registered RunPod pool regardless of credentials, so a vast-only plane could quote a B200: the
|
|
87
|
+
estimate passed affordability and the run was recorded, only for live allocation to fail. The
|
|
88
|
+
quote now raises against the eligible set, which names the real constraint.
|
|
89
|
+
|
|
90
|
+
- A GitHub token that is invalid, expired, or missing a scope now fails during preparation instead
|
|
91
|
+
of after a GPU is rented. Non-rate-limit 401 and 403 responses were left as untyped errors, which
|
|
92
|
+
the submit-time preflight treats as a transient blip worth deferring, so the run proceeded
|
|
93
|
+
through affordability and allocation and hit the same permanent credential error on the worker.
|
|
94
|
+
They are now classified permanent, like 404 and 422. The rate-limit 403 is still transient.
|
|
95
|
+
|
|
96
|
+
- A slow heartbeat upload no longer stalls every other heartbeat behind it. The throttle clock only
|
|
97
|
+
advances once a commit lands, so during a slow HuggingFace commit other callers still saw an
|
|
98
|
+
upload as due and blocked on the upload lock for up to its acquire timeout — 30s, or 120s on a
|
|
99
|
+
critical stage — which stalled the liveness daemon and delayed leaving the wrapped stage by the
|
|
100
|
+
same window. A throttled heartbeat now skips while a commit is in flight, since that commit
|
|
101
|
+
already carries the stage's state. Terminal, error, initial, and forced step commits still queue
|
|
102
|
+
and land: they carry state no later heartbeat would repair.
|
|
103
|
+
|
|
104
|
+
- A GRPO or OPD run whose rollout actor exited hard no longer wedges on a paid GPU until the
|
|
105
|
+
wall-time limit. The actor's `os._exit` bypassed verl's own prompt handler, so the prompt
|
|
106
|
+
stayed `running` forever and verl's unbounded replay poll waited on it at ~0% utilization. The
|
|
107
|
+
child now writes durable failure evidence, marks the prompt failed, cleans up, and only then
|
|
108
|
+
exits, and replay sampling fails the step on an explicit failure tag or a positively dead
|
|
109
|
+
actor instead of returning a survivor-only batch that would silently train on fewer rollouts
|
|
110
|
+
than were collected. A child that reaches the fit loop and then stops producing distinct
|
|
111
|
+
output, while the parent has no teacher or environment work in flight, is torn down with a
|
|
112
|
+
named cause rather than running silently to the limit; repeated identical lines count as
|
|
113
|
+
silence, and authoritative OOM, host-RAM, and infrastructure evidence still classifies the
|
|
114
|
+
exit first.
|
|
115
|
+
- `flash models deploy` now warns before it moves the shared `<run-id>` model id onto a
|
|
116
|
+
different checkpoint. Every checkpoint of a run is served under that one id, so deploying
|
|
117
|
+
`<run-id>/step-50` while `step-100` was live silently changed what `<run-id>` served for
|
|
118
|
+
everyone using it — which made "deploy a second checkpoint to compare" a destructive
|
|
119
|
+
operation on the first, and read as a serving regression rather than the deploy that caused
|
|
120
|
+
it. The warning names both checkpoints and points at `flash models chat <run-id>/step-N`,
|
|
121
|
+
which addresses a checkpoint directly and does not depend on where the id points. It is
|
|
122
|
+
advisory: the deploy still proceeds, the pre-deploy read is abandoned outright once it exceeds
|
|
123
|
+
a few seconds so no shape of slow plane can hold a deploy behind it, and a control plane that
|
|
124
|
+
cannot answer (or answers with a checkpoint step this client cannot read) does not fail the
|
|
125
|
+
command. A deployment whose activation outcome was never settled still warns, but without
|
|
126
|
+
naming a checkpoint: that record's step describes the incoming attempt rather than what the id
|
|
127
|
+
currently serves, and the authoritative target is server-side only, so the warning says the
|
|
128
|
+
live checkpoint cannot be determined and points at `flash models deployments`.
|
|
129
|
+
|
|
130
|
+
- A response deadline did not actually bound a response that arrived slowly. The deadline is
|
|
131
|
+
checked between reads, but each read asked for a fixed number of bytes and blocked until all of
|
|
132
|
+
them arrived, so a peer trickling a short body kept one read inside the socket timeout
|
|
133
|
+
indefinitely and the check never ran: a 2s deadline took 12s on a 42-byte body, and 61s when
|
|
134
|
+
the socket timeout was the client default. Reading whatever has already arrived lets the check
|
|
135
|
+
run, which bounds every stall shape. This affected `flash env list`, whose deadline exists to
|
|
136
|
+
stop a slow environment hub hanging the command, as well as the new pre-deploy read.
|
|
137
|
+
|
|
138
|
+
- A response deadline could still be overrun by a read that began near its end. The socket timeout
|
|
139
|
+
is installed once, when the request opens, and time spent connecting and waiting for headers is
|
|
140
|
+
charged to the deadline but not to that timeout, so a peer that delayed its headers and then
|
|
141
|
+
stalled mid-body held the call open past the deadline: 3.5s against a 2s budget. Each read now
|
|
142
|
+
re-caps the socket to the remaining budget, so the two bounds agree instead of stacking. On a
|
|
143
|
+
body still arriving this surfaces as a timeout rather than the "stalled" message; both bound the
|
|
144
|
+
call, and which one wins is a race not worth depending on.
|
|
145
|
+
|
|
146
|
+
- Commands printed for the operator to run (the resume/cancel hand-off after `flash train`,
|
|
147
|
+
usage strings, `next:` hints) now name the executable actually invoked rather than always
|
|
148
|
+
`flash`. On a host where `runpod-flash` owns the `flash` script, the printed
|
|
149
|
+
`flash runs cancel <run-id>` exited 0 without cancelling, leaving a run billing while the
|
|
150
|
+
operator believed they had stopped it. Reached through the `python -m flash.cli` escape hatch,
|
|
151
|
+
the printed command now names the interpreter that is actually running, rather than a bare
|
|
152
|
+
`python` that is absent on a python3-only host and may resolve to a different environment
|
|
153
|
+
inside a virtualenv.
|
|
154
|
+
|
|
155
|
+
- `flash env setup` scaffolded hosted-only environment instructions on every plane. A
|
|
156
|
+
self-hosted plane cannot publish to Freesolo's managed environment hub, so the generated
|
|
157
|
+
configs left `[environment] id` empty (which fails validation) beside a `flash env push`
|
|
158
|
+
command that could not work. Against a self-hosted plane the scaffold now emits the
|
|
159
|
+
`github:owner/repo@ref:path` id form, which such a plane resolves directly. Output against
|
|
160
|
+
the managed plane is unchanged.
|
|
161
|
+
|
|
162
|
+
- `flash-server` reported missing operator configuration as an unhandled ASGI startup
|
|
163
|
+
exception, so the actionable message arrived under ~20 frames of starlette/contextlib. The
|
|
164
|
+
refusing half of the preflight now runs before uvicorn starts, and `flash-server` prints
|
|
165
|
+
`error: ...` and exits 3 (uvicorn's `STARTUP_FAILURE`, which this path already used, so
|
|
166
|
+
supervision keying on it is unaffected). The advisory warnings still come from the lifespan
|
|
167
|
+
alone, so a booted plane logs them once.
|
|
168
|
+
- `flash env test` blamed the reward function for a gold answer that scored zero, when the
|
|
169
|
+
gold completion is equally likely to be at fault: with no `sft_completion` hook the replayed
|
|
170
|
+
answer is the dataset row's raw `output`, so a dataset whose `output` is a bare value fails a
|
|
171
|
+
grader that (correctly) requires a wrapper. The warning now names both candidates and prints
|
|
172
|
+
the exact text it scored, verbatim rather than through the whitespace-collapsing, 200-character
|
|
173
|
+
preview that hid the formatting faults it exists to reveal. The scaffolded `environment.py`
|
|
174
|
+
documents that `output` is also the gold assistant turn SFT trains on, and that per-row scorer
|
|
175
|
+
state belongs in `metadata`.
|
|
176
|
+
- `flash env test` labelled the replayed dataset turns as the text that scored zero, but a
|
|
177
|
+
multi-turn environment whose `step_episode` returns a `final_response_text` has that override
|
|
178
|
+
replace the episode's response before scoring, so the diagnostic named text the grader never
|
|
179
|
+
saw. It now reports what the scorer actually received, captured at the scoring call.
|
|
180
|
+
- An environment that overrode its answer to the empty string had `flash env test` report the
|
|
181
|
+
replayed turns instead: the captured text was tested for truth, so a graded `""` was
|
|
182
|
+
indistinguishable from an episode that never reached the scorer. The override propagates on
|
|
183
|
+
`is not None`, so `""` really is what the grader saw -- and an empty answer explains a zero
|
|
184
|
+
reward on its own, making it the reading a reader most needs named rather than hidden.
|
|
185
|
+
- A crashed scorer went unreported on an `echo` episode -- a row with no gold answer to replay,
|
|
186
|
+
which is also the case that leaves the GRPO gate with nothing to count. `flash env test` could
|
|
187
|
+
exit `overall: PASS` with every reward coming from a scorer that never ran. The scorer's error is
|
|
188
|
+
now surfaced for any policy.
|
|
189
|
+
- A scorer that crashed behind the SDK's guard reached `flash env test` as a bare `0.000000`,
|
|
190
|
+
indistinguishable from a judged-wrong answer, because the adapter kept only
|
|
191
|
+
`RewardResult.score`. The new `FreesoloEnvironment.reward_with_error` returns the reward and the
|
|
192
|
+
discarded error from a single scoring call, so a missing runtime dependency names itself without
|
|
193
|
+
re-scoring the episode -- which would bill a paid judge twice and, for a non-deterministic
|
|
194
|
+
scorer, could report an error that did not produce the printed reward.
|
|
195
|
+
- Two tests resolved Hugging Face model metadata over the network and passed only on a
|
|
196
|
+
connected runner. They now stub the resolver like their siblings already did.
|