freesolo-flash-dev 1.2.133__tar.gz → 1.2.134__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (940) hide show
  1. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/PKG-INFO +1 -1
  2. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/core/spec.py +0 -21
  3. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/recipe.py +0 -1
  4. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/support/verl_checkpoint.py +2 -6
  5. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/opd_train_runner.py +0 -6
  6. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/rl_train_runner.py +0 -1
  7. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/sft_train.py +3 -8
  8. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/sft_train_runner.py +5 -34
  9. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/failures.py +1 -5
  10. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/overrides.py +3 -4
  11. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/state.py +0 -3
  12. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/launch/checkpoints.py +0 -5
  13. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/launch/inputs.py +0 -4
  14. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/launch/verl_config.py +1 -2
  15. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/sft/child/plugin.py +0 -46
  16. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/sft/setup/config.py +4 -10
  17. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/capabilities.py +3 -5
  18. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/checkpoints.py +1 -13
  19. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/instances/poll_instance.py +8 -7
  20. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/net/deadline.py +0 -15
  21. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/artifacts/hf.py +13 -13
  22. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/artifacts/weight_cache.py +4 -5
  23. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/jobs/__init__.py +21 -22
  24. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/execution/job_execution.py +6 -7
  25. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/execution/polling.py +3 -10
  26. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/execution/provider.py +4 -5
  27. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/execution/resources.py +2 -7
  28. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/jobs/__init__.py +19 -20
  29. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/accounting/reconciliation.py +1 -1
  30. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/attempts.py +1 -4
  31. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/state.py +1 -0
  32. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/status.py +30 -0
  33. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/attach.py +9 -22
  34. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/attach_reconcile.py +2 -2
  35. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/attempt_supervision.py +16 -13
  36. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/deploy.py +1 -1
  37. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/lifecycle.py +3 -24
  38. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/recovery.py +3 -19
  39. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/schema/__init__.py +0 -8
  40. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/launch.py +117 -115
  41. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/deploy.py +15 -32
  42. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/asgi/app.py +33 -144
  43. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/billing/retry.py +1 -1
  44. freesolo_flash_dev-1.2.134/flash/server/platform/deployment_jobs.py +81 -0
  45. freesolo_flash_dev-1.2.134/flash/server/platform/deployment_state.py +65 -0
  46. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/deps.py +4 -4
  47. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/runtime.py +4 -4
  48. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/runs.py +8 -6
  49. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/serving.py +53 -169
  50. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/serving_chat.py +3 -3
  51. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/serving_completion.py +42 -58
  52. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/serving_revisions.py +11 -3
  53. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/serving_smoke.py +4 -19
  54. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/pyproject.toml +2 -2
  55. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/billing_precheck.py +3 -2
  56. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_backend_common.py +3 -26
  57. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_billing_retry.py +2 -2
  58. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_bootstrap_reentry.py +1 -1
  59. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cancel_remote.py +4 -3
  60. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_charge_pricing.py +2 -2
  61. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_client_server_integration.py +3 -2
  62. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_flash_worker.py +2 -3
  63. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_checkpoint_durability.py +3 -18
  64. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_idle_endpoint_reaper.py +38 -23
  65. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_instance_bootstrap_coverage.py +0 -38
  66. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_jobs.py +53 -65
  67. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lambda_api_coverage.py +2 -2
  68. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lambda_runner.py +86 -54
  69. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lora_targeting.py +2 -2
  70. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd_resume_safety.py +17 -10
  71. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd_train.py +8 -54
  72. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_provider_routing.py +2 -4
  73. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_provider_teardown_robustness.py +1 -1
  74. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_realized_cost.py +2 -3
  75. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_resume_on_retry.py +23 -55
  76. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_rl_train.py +0 -6
  77. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_runmgmt.py +30 -36
  78. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve.py +47 -0
  79. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_app_launch.py +146 -79
  80. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_api.py +228 -287
  81. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_app_coverage.py +34 -33
  82. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_billing.py +8 -13
  83. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_envs_coverage.py +106 -97
  84. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_managed_chat_requests.py +8 -11
  85. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_standalone.py +9 -6
  86. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serving_schema_coverage.py +18 -17
  87. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_train.py +42 -272
  88. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_spec_and_validation.py +0 -2
  89. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_staged_environment.py +3 -3
  90. freesolo_flash_dev-1.2.134/tests/test_status_updates.py +118 -0
  91. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vast_offers.py +2 -0
  92. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vast_provider_coverage.py +1 -1
  93. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vast_runner.py +42 -26
  94. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_weight_cache.py +61 -31
  95. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/uv.lock +1 -1
  96. freesolo_flash_dev-1.2.133/flash/engine/support/verl_policy.py +0 -20
  97. freesolo_flash_dev-1.2.133/tests/test_loraplus_config.py +0 -97
  98. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.dockerignore +0 -0
  99. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.env.example +0 -0
  100. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/CODEOWNERS +0 -0
  101. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  102. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  103. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  104. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  105. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/dependabot.yml +0 -0
  106. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/auto-rebake.yml +0 -0
  107. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/bake-kernel-cache.yml +0 -0
  108. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/ci.yml +0 -0
  109. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/deploy-modal-dev.yml +0 -0
  110. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/deploy-modal.yml +0 -0
  111. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/dev-kernel-cache.yml +0 -0
  112. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/main-source-guard.yml +0 -0
  113. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/notify-tests-repo.yml +0 -0
  114. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/production-kernel-cache-ready.yml +0 -0
  115. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/publish-dev.yml +0 -0
  116. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/publish-image.yml +0 -0
  117. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/publish-serving-image.yml +0 -0
  118. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/publish.yml +0 -0
  119. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/version-parity.yml +0 -0
  120. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.github/workflows/worker-image.yml +0 -0
  121. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/.gitignore +0 -0
  122. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/CHANGELOG.md +0 -0
  123. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/CODE_OF_CONDUCT.md +0 -0
  124. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/CONTRIBUTING.md +0 -0
  125. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/Dockerfile +0 -0
  126. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/Dockerfile.serve +0 -0
  127. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/Dockerfile.worker +0 -0
  128. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/LICENSE +0 -0
  129. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/NOTICE +0 -0
  130. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/README.md +0 -0
  131. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/SECURITY.md +0 -0
  132. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/SELF_HOSTING.md +0 -0
  133. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/build/kernel_cache/.gitignore +0 -0
  134. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/build/kernel_cache/.keep +0 -0
  135. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/deploy/infisical/README.md +0 -0
  136. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/deploy/infisical/entrypoint.sh +0 -0
  137. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/Dockerfile.kernelcache +0 -0
  138. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/Dockerfile.kernelcache.relayer +0 -0
  139. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/bake_kernel_cache.py +0 -0
  140. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/bake_pod_entry.py +0 -0
  141. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/extract_cudart_fix.py +0 -0
  142. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/kernel_fingerprint.py +0 -0
  143. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/make_rp_handler.py +0 -0
  144. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docker/patch_vllm_moe_lora.py +0 -0
  145. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docs/hosted-inference-load-testing.md +0 -0
  146. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/docs/serving-contract.md +0 -0
  147. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/__init__.py +0 -0
  148. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/__init__.py +0 -0
  149. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/channel.py +0 -0
  150. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/diagnostics.py +0 -0
  151. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/fileio.py +0 -0
  152. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/http.py +0 -0
  153. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/logging.py +0 -0
  154. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/openai_sse.py +0 -0
  155. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/paths.py +0 -0
  156. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/_internal/version.py +0 -0
  157. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/adapters/__init__.py +0 -0
  158. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/adapters/artifacts.py +0 -0
  159. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/adapters/config.py +0 -0
  160. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/adapters/fused_experts.py +0 -0
  161. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/adapters/lora_rank.py +0 -0
  162. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/adapters/targets.py +0 -0
  163. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/__init__.py +0 -0
  164. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/__main__.py +0 -0
  165. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/__init__.py +0 -0
  166. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/__init__.py +0 -0
  167. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/__init__.py +0 -0
  168. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/imports.py +0 -0
  169. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/list.py +0 -0
  170. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/push.py +0 -0
  171. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/retained.py +0 -0
  172. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/setup.py +0 -0
  173. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/ops/setup_wandb.py +0 -0
  174. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/__init__.py +0 -0
  175. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/episode.py +0 -0
  176. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/eval.py +0 -0
  177. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/eval_args.py +0 -0
  178. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/evaluations.py +0 -0
  179. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/params.py +0 -0
  180. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/test.py +0 -0
  181. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/env/testing/warnings.py +0 -0
  182. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/__init__.py +0 -0
  183. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/account.py +0 -0
  184. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/catalog.py +0 -0
  185. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/deploy.py +0 -0
  186. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/log_follow.py +0 -0
  187. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/prompt_budget.py +0 -0
  188. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/runs.py +0 -0
  189. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/traces.py +0 -0
  190. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/train.py +0 -0
  191. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/ops/worker_output.py +0 -0
  192. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/serving/__init__.py +0 -0
  193. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/serving/deploy.py +0 -0
  194. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/serving/identity.py +0 -0
  195. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/serving/status.py +0 -0
  196. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/commands/serving/undeploy.py +0 -0
  197. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/__init__.py +0 -0
  198. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/account.py +0 -0
  199. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/env.py +0 -0
  200. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/errors.py +0 -0
  201. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/main.py +0 -0
  202. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/models.py +0 -0
  203. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/serve_parser.py +0 -0
  204. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/traces.py +0 -0
  205. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/parsing/training.py +0 -0
  206. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/scaffold/TRAINING.md +0 -0
  207. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/scaffold/__init__.py +0 -0
  208. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/__init__.py +0 -0
  209. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/cost.py +0 -0
  210. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/env_panels.py +0 -0
  211. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/heartbeat.py +0 -0
  212. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/render.py +0 -0
  213. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/tables.py +0 -0
  214. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cli/ui/tty.py +0 -0
  215. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/__init__.py +0 -0
  216. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/config.py +0 -0
  217. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/freesolo_api.py +0 -0
  218. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/http.py +0 -0
  219. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/runtime_secrets.py +0 -0
  220. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/shapes.py +0 -0
  221. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/specs.py +0 -0
  222. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/client/streaming.py +0 -0
  223. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/content/__init__.py +0 -0
  224. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/content/image_descriptors.py +0 -0
  225. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/content/multimodal.py +0 -0
  226. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/content/reasoning_normalization.py +0 -0
  227. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/content/structured_outputs.py +0 -0
  228. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/content/thinking.py +0 -0
  229. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/core/__init__.py +0 -0
  230. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/core/catalog.py +0 -0
  231. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/core/grpo.py +0 -0
  232. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/core/spec_persistence.py +0 -0
  233. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cost/__init__.py +0 -0
  234. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cost/analytical.py +0 -0
  235. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cost/currency.py +0 -0
  236. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cost/facts.py +0 -0
  237. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cost/spec.py +0 -0
  238. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/cost/types.py +0 -0
  239. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/__init__.py +0 -0
  240. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/__init__.py +0 -0
  241. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/kv_sizing.py +0 -0
  242. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/model_config_probe.py +0 -0
  243. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/prompt_budget.py +0 -0
  244. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/steps.py +0 -0
  245. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/plan/vram.py +0 -0
  246. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/__init__.py +0 -0
  247. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/dataset_profile.py +0 -0
  248. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/image_tokens.py +0 -0
  249. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/reasoning_render.py +0 -0
  250. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/sft_image_rows.py +0 -0
  251. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/sft_workload.py +0 -0
  252. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/tokenizer.py +0 -0
  253. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/profiling/workload_profile.py +0 -0
  254. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/result/__init__.py +0 -0
  255. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/result/accounting.py +0 -0
  256. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/result/rollout_samples.py +0 -0
  257. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/support/__init__.py +0 -0
  258. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/support/huggingface.py +0 -0
  259. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/support/worker_entrypoint.py +0 -0
  260. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/__init__.py +0 -0
  261. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/__main__.py +0 -0
  262. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/entry/__init__.py +0 -0
  263. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/entry/opd.py +0 -0
  264. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/entry/rl.py +0 -0
  265. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/entry/sft.py +0 -0
  266. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/entry/worker.py +0 -0
  267. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/io/__init__.py +0 -0
  268. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/io/heartbeat.py +0 -0
  269. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/io/hf.py +0 -0
  270. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/io/prefetch.py +0 -0
  271. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/io/wandb_log.py +0 -0
  272. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/model/__init__.py +0 -0
  273. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/model/adapter.py +0 -0
  274. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/model/chatml_mask.py +0 -0
  275. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/model/decoding.py +0 -0
  276. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/model/lora.py +0 -0
  277. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/model/packing.py +0 -0
  278. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/perf/__init__.py +0 -0
  279. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/perf/diagnostics.py +0 -0
  280. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/perf/lifecycle.py +0 -0
  281. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/perf/liger.py +0 -0
  282. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/perf/memory.py +0 -0
  283. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/runtime/__init__.py +0 -0
  284. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
  285. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/runtime/rng.py +0 -0
  286. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/runtime/state.py +0 -0
  287. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/teacher/__init__.py +0 -0
  288. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/teacher/client.py +0 -0
  289. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/teacher/encoding.py +0 -0
  290. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/teacher/tokenizer_align.py +0 -0
  291. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/__init__.py +0 -0
  292. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/__init__.py +0 -0
  293. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/child/__init__.py +0 -0
  294. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/child/glue.py +0 -0
  295. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/child/runtime.py +0 -0
  296. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/lifecycle/__init__.py +0 -0
  297. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/lifecycle/finalize.py +0 -0
  298. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/lifecycle/ledger.py +0 -0
  299. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/core/lifecycle/step_timing.py +0 -0
  300. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/__init__.py +0 -0
  301. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/backend_common.py +0 -0
  302. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/opd_train.py +0 -0
  303. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/prompt_rows.py +0 -0
  304. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/rl_train.py +0 -0
  305. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/entry/score_batcher.py +0 -0
  306. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/__init__.py +0 -0
  307. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/bridging/__init__.py +0 -0
  308. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/bridging/batching.py +0 -0
  309. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/bridging/bridge.py +0 -0
  310. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/bridging/failures.py +0 -0
  311. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/bridging/prompts.py +0 -0
  312. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/bridging/scoring.py +0 -0
  313. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/__init__.py +0 -0
  314. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/bridge.py +0 -0
  315. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/entry.py +0 -0
  316. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/multiturn.py +0 -0
  317. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/plugin.py +0 -0
  318. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/replay_guard.py +0 -0
  319. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/runtime.py +0 -0
  320. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/structured.py +0 -0
  321. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/child/tensors.py +0 -0
  322. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/multiturn/__init__.py +0 -0
  323. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/multiturn/media.py +0 -0
  324. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/multiturn/validation.py +0 -0
  325. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/__init__.py +0 -0
  326. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/gkd.py +0 -0
  327. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/progress.py +0 -0
  328. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/prompt_preparation.py +0 -0
  329. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/protocol.py +0 -0
  330. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/reporting.py +0 -0
  331. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/opd/orchestration/validation.py +0 -0
  332. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/__init__.py +0 -0
  333. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/child/__init__.py +0 -0
  334. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/child/entry.py +0 -0
  335. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
  336. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/child/patches.py +0 -0
  337. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/child/plugin.py +0 -0
  338. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/launch/__init__.py +0 -0
  339. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/launch/config.py +0 -0
  340. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/rollout/__init__.py +0 -0
  341. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/rollout/identity.py +0 -0
  342. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/rollout/multi_turn.py +0 -0
  343. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/rollout/reward_module.py +0 -0
  344. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/rollout/scoring.py +0 -0
  345. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/rl/rollout/single_turn.py +0 -0
  346. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/sft/__init__.py +0 -0
  347. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/sft/child/entry.py +0 -0
  348. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/sft/setup/__init__.py +0 -0
  349. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/train/sft/setup/checkpoints.py +0 -0
  350. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/__init__.py +0 -0
  351. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/child_io.py +0 -0
  352. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/diagnostics.py +0 -0
  353. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/parallelism.py +0 -0
  354. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/parent_work.py +0 -0
  355. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/engine/worker/verl/process_census.py +0 -0
  356. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/__init__.py +0 -0
  357. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/loading/__init__.py +0 -0
  358. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/loading/adapter.py +0 -0
  359. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/loading/base.py +0 -0
  360. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/loading/loader.py +0 -0
  361. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/loading/pull.py +0 -0
  362. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/loading/staged.py +0 -0
  363. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/meta/__init__.py +0 -0
  364. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/meta/cache_security.py +0 -0
  365. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/meta/dataset_selection.py +0 -0
  366. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/meta/evaluations.py +0 -0
  367. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/meta/identity.py +0 -0
  368. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/meta/namespace_listing.py +0 -0
  369. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/package/__init__.py +0 -0
  370. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/package/direct_tokens.py +0 -0
  371. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/package/limits.py +0 -0
  372. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/envs/package/unpack.py +0 -0
  373. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/__init__.py +0 -0
  374. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/__init__.py +0 -0
  375. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/__init__.py +0 -0
  376. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/attempt.py +0 -0
  377. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/bootstrap.py +0 -0
  378. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/console.py +0 -0
  379. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/pip.py +0 -0
  380. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/preload.py +0 -0
  381. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/processes.py +0 -0
  382. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/bootstrapping/secrets.py +0 -0
  383. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/host/__init__.py +0 -0
  384. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/host/deadline_sleep.py +0 -0
  385. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/host/failmark.py +0 -0
  386. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/host/hostlog.py +0 -0
  387. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/instances/__init__.py +0 -0
  388. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/instances/instance.py +0 -0
  389. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/instances/poll.py +0 -0
  390. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/instances/provider.py +0 -0
  391. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/instances/terminal_artifacts.py +0 -0
  392. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/net/__init__.py +0 -0
  393. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/net/auth.py +0 -0
  394. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/net/http.py +0 -0
  395. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/_lifecycle/net/worker.py +0 -0
  396. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/artifacts/__init__.py +0 -0
  397. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/artifacts/preload_runpod.py +0 -0
  398. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/__init__.py +0 -0
  399. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/allocator.py +0 -0
  400. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/base.py +0 -0
  401. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/fit_errors.py +0 -0
  402. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/preflight.py +0 -0
  403. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/realized.py +0 -0
  404. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/registry.py +0 -0
  405. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/core/sharding.py +0 -0
  406. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/__init__.py +0 -0
  407. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/client/__init__.py +0 -0
  408. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/client/api.py +0 -0
  409. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/client/auth.py +0 -0
  410. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/client/gpus.py +0 -0
  411. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/client/preflight.py +0 -0
  412. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/client/pricing.py +0 -0
  413. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/execution/__init__.py +0 -0
  414. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/execution/provider.py +0 -0
  415. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/jobs/builders.py +0 -0
  416. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/lambda_/jobs/reap.py +0 -0
  417. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/__init__.py +0 -0
  418. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/__init__.py +0 -0
  419. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/api.py +0 -0
  420. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/auth.py +0 -0
  421. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/cost.py +0 -0
  422. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/gpus.py +0 -0
  423. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/preflight.py +0 -0
  424. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/client/pricing.py +0 -0
  425. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/execution/__init__.py +0 -0
  426. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/execution/jobs.py +0 -0
  427. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/serverless/__init__.py +0 -0
  428. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/serverless/endpoints.py +0 -0
  429. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/runpod/serverless/naming.py +0 -0
  430. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/__init__.py +0 -0
  431. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/client/__init__.py +0 -0
  432. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/client/api.py +0 -0
  433. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/client/auth.py +0 -0
  434. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/client/preflight.py +0 -0
  435. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/client/pricing.py +0 -0
  436. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/client/result.py +0 -0
  437. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/execution/__init__.py +0 -0
  438. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/execution/provider.py +0 -0
  439. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/providers/vast/jobs/builders.py +0 -0
  440. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/py.typed +0 -0
  441. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/__init__.py +0 -0
  442. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/accounting/__init__.py +0 -0
  443. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/accounting/artifacts.py +0 -0
  444. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/accounting/costs.py +0 -0
  445. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/accounting/weight_cache.py +0 -0
  446. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/__init__.py +0 -0
  447. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/claim_lock.py +0 -0
  448. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/deadlines.py +0 -0
  449. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/preparation.py +0 -0
  450. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/reporting.py +0 -0
  451. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/lifecycle/submit.py +0 -0
  452. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/results/__init__.py +0 -0
  453. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/results/checkpoints.py +0 -0
  454. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/results/verified_revisions.py +0 -0
  455. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/__init__.py +0 -0
  456. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/errors.py +0 -0
  457. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/retry_decision.py +0 -0
  458. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runner/supervise/transitions.py +0 -0
  459. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runtime_capsule/__init__.py +0 -0
  460. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runtime_capsule/build.py +0 -0
  461. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runtime_capsule/manifest.py +0 -0
  462. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/runtime_capsule/profiles.py +0 -0
  463. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/schema/fields.py +0 -0
  464. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/__init__.py +0 -0
  465. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/__init__.py +0 -0
  466. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/__main__.py +0 -0
  467. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/bootstrap.py +0 -0
  468. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/chat_stream.py +0 -0
  469. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/http.py +0 -0
  470. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/manifest.py +0 -0
  471. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/materialize.py +0 -0
  472. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/openai.py +0 -0
  473. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/app/progress.py +0 -0
  474. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/contract/__init__.py +0 -0
  475. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/contract/errors.py +0 -0
  476. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/contract/protocol.py +0 -0
  477. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/contract/provenance.py +0 -0
  478. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/contract/responses.py +0 -0
  479. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/contract/urls.py +0 -0
  480. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/__init__.py +0 -0
  481. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/_canonical.py +0 -0
  482. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/_serialization.py +0 -0
  483. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/_urls.py +0 -0
  484. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/credentials.py +0 -0
  485. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/planning.py +0 -0
  486. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/control/types.py +0 -0
  487. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/__init__.py +0 -0
  488. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/adapter_check.py +0 -0
  489. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/export.py +0 -0
  490. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/preflight.py +0 -0
  491. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/profiles.py +0 -0
  492. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/readiness.py +0 -0
  493. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/deployment/resolve.py +0 -0
  494. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/__init__.py +0 -0
  495. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/common/__init__.py +0 -0
  496. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/common/records.py +0 -0
  497. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/__init__.py +0 -0
  498. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/execution/__init__.py +0 -0
  499. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/execution/deployment.py +0 -0
  500. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/execution/lifecycle.py +0 -0
  501. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/execution/operations.py +0 -0
  502. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/execution/sdk.py +0 -0
  503. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/planning/__init__.py +0 -0
  504. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/planning/plan.py +0 -0
  505. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/planning/resources.py +0 -0
  506. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/planning/wrapper.py +0 -0
  507. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/readiness_checks/__init__.py +0 -0
  508. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/readiness_checks/probe.py +0 -0
  509. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/readiness_checks/readiness.py +0 -0
  510. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/provisioning/modal/readiness_checks/teardown.py +0 -0
  511. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/__init__.py +0 -0
  512. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/openai.py +0 -0
  513. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/runtime_support.py +0 -0
  514. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/streaming.py +0 -0
  515. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/text_scan.py +0 -0
  516. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/thinking.py +0 -0
  517. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/tool_calls.py +0 -0
  518. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/tool_template.py +0 -0
  519. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/transport.py +0 -0
  520. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/request/validation.py +0 -0
  521. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/__init__.py +0 -0
  522. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/adapters.py +0 -0
  523. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/engine.py +0 -0
  524. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/errors.py +0 -0
  525. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/multimodal.py +0 -0
  526. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/prompt.py +0 -0
  527. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/sampling.py +0 -0
  528. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/structured_outputs.py +0 -0
  529. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/tool_calls.py +0 -0
  530. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serve/runtime/types.py +0 -0
  531. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/__init__.py +0 -0
  532. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/__main__.py +0 -0
  533. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/asgi/__init__.py +0 -0
  534. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/asgi/cli.py +0 -0
  535. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/billing/__init__.py +0 -0
  536. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/billing/charges.py +0 -0
  537. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/__init__.py +0 -0
  538. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/ops/__init__.py +0 -0
  539. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/ops/reconcile.py +0 -0
  540. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/ops/repo_cleanup.py +0 -0
  541. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/ops/serving_resources.py +0 -0
  542. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/registry/__init__.py +0 -0
  543. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/registry/checkpoints.py +0 -0
  544. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/registry/environment_registry.py +0 -0
  545. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/registry/envs.py +0 -0
  546. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/registry/projects.py +0 -0
  547. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/registry/runs.py +0 -0
  548. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/teacher/__init__.py +0 -0
  549. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/teacher/broker.py +0 -0
  550. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/teacher/errors.py +0 -0
  551. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/domain/teacher/requests.py +0 -0
  552. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/__init__.py +0 -0
  553. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/auth.py +0 -0
  554. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/db.py +0 -0
  555. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/internal_client.py +0 -0
  556. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/platform/locks.py +0 -0
  557. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/__init__.py +0 -0
  558. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/envs.py +0 -0
  559. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/meta.py +0 -0
  560. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/server/routes/teacher.py +0 -0
  561. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/__init__.py +0 -0
  562. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/app/README.md +0 -0
  563. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/app/__init__.py +0 -0
  564. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/app/modal_app.py +0 -0
  565. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/app/timeouts.py +0 -0
  566. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/__init__.py +0 -0
  567. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/__main__.py +0 -0
  568. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/artifacts.py +0 -0
  569. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/cli.py +0 -0
  570. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/metrics.py +0 -0
  571. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/protocol.py +0 -0
  572. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/runner.py +0 -0
  573. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/schedule.py +0 -0
  574. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/loadtest/schema.py +0 -0
  575. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/promotion/__init__.py +0 -0
  576. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/promotion/canary.py +0 -0
  577. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/promotion/evidence.py +0 -0
  578. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/promotion/gate.py +0 -0
  579. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/__init__.py +0 -0
  580. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/accounting/__init__.py +0 -0
  581. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/accounting/usage.py +0 -0
  582. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/accounting/usage_facts.py +0 -0
  583. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/accounting/usage_outbox.py +0 -0
  584. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/accounting/usage_retry.py +0 -0
  585. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/__init__.py +0 -0
  586. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/boot.py +0 -0
  587. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/errors.py +0 -0
  588. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/generation.py +0 -0
  589. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/lora_engine.py +0 -0
  590. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/lora_entries.py +0 -0
  591. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/model_config.py +0 -0
  592. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/prequant_config.py +0 -0
  593. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/engine/support.py +0 -0
  594. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/__init__.py +0 -0
  595. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/adapter_routes.py +0 -0
  596. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/body_limit.py +0 -0
  597. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/context.py +0 -0
  598. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/headers.py +0 -0
  599. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/inference_routes.py +0 -0
  600. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/router.py +0 -0
  601. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/http/routing.py +0 -0
  602. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/__init__.py +0 -0
  603. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/multimodal.py +0 -0
  604. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/openai_request.py +0 -0
  605. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/openai_stream.py +0 -0
  606. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/provenance.py +0 -0
  607. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/requests.py +0 -0
  608. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/responses.py +0 -0
  609. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/schemas.py +0 -0
  610. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/streaming.py +0 -0
  611. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/io/structured_outputs.py +0 -0
  612. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/__init__.py +0 -0
  613. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/access.py +0 -0
  614. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/lookup.py +0 -0
  615. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/persisted_columns.py +0 -0
  616. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/persistence.py +0 -0
  617. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/registration.py +0 -0
  618. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/registry.py +0 -0
  619. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/settings.py +0 -0
  620. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/supabase_rest.py +0 -0
  621. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/store/undeploy.py +0 -0
  622. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/stream_channel/__init__.py +0 -0
  623. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/stream_channel/_tasks.py +0 -0
  624. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/stream_channel/client.py +0 -0
  625. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/stream_channel/engine.py +0 -0
  626. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/serving/src/stream_channel/protocol.py +0 -0
  627. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/snapshot/__init__.py +0 -0
  628. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/snapshot/archive.py +0 -0
  629. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/teacher/__init__.py +0 -0
  630. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/teacher/limits.py +0 -0
  631. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/teacher/provider_status.py +0 -0
  632. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/flash/teacher/retry_contract.py +0 -0
  633. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/build_dev_dist.py +0 -0
  634. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/check_file_size.py +0 -0
  635. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/check_function_size.py +0 -0
  636. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/check_rollout_identity_actor.py +0 -0
  637. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/check_source_layout.py +0 -0
  638. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/check_verl_pin_exists.py +0 -0
  639. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/qualify_serving_profile.py +0 -0
  640. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/scripts/scrub_history.sh +0 -0
  641. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/serve_launch.py +0 -0
  642. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/__init__.py +0 -0
  643. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/__init__.py +0 -0
  644. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/chat_provenance.py +0 -0
  645. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/chat_transport.py +0 -0
  646. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/managed_chat.py +0 -0
  647. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/profile.py +0 -0
  648. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/runner.py +0 -0
  649. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/server_api_plugin.py +0 -0
  650. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/source_snapshot.py +0 -0
  651. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/specs.py +0 -0
  652. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/teacher.py +0 -0
  653. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/vast.py +0 -0
  654. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/_helpers/wire_headers.py +0 -0
  655. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/capture_image_sft_processor_oracle.py +0 -0
  656. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/capture_qwen38_27b_metadata.py +0 -0
  657. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/conftest.py +0 -0
  658. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/fixtures/image_sft_processor_oracle.json +0 -0
  659. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/fixtures/qwen35_9b_target_metadata.json +0 -0
  660. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/fixtures/qwen38_27b_target_metadata.json +0 -0
  661. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/fixtures/vllm_023_moe_lora/lora_context.py.gz +0 -0
  662. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/fixtures/vllm_023_moe_lora/modular_kernel.py.gz +0 -0
  663. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/fixtures/vllm_023_moe_lora/triton_moe.py.gz +0 -0
  664. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/live/__init__.py +0 -0
  665. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/live/conftest.py +0 -0
  666. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/live/test_lambda_live.py +0 -0
  667. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/live/test_runpod_live.py +0 -0
  668. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/live/test_sft_thinking_render_live.py +0 -0
  669. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/live/test_vast_live.py +0 -0
  670. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/checkpoint_fixtures.py +0 -0
  671. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/conftest.py +0 -0
  672. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/hosted_loadtest_fake_scenario.json +0 -0
  673. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_base_model_serving.py +0 -0
  674. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_chat_auth.py +0 -0
  675. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_chat_authorizer.py +0 -0
  676. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_checkpoint_identity_repairs.py +0 -0
  677. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_checkpoint_model_validation.py +0 -0
  678. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_engine_error_status.py +0 -0
  679. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_fp8_config.py +0 -0
  680. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_immutable_engine.py +0 -0
  681. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_immutable_revisions.py +0 -0
  682. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_immutable_schemas.py +0 -0
  683. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_inference_duration.py +0 -0
  684. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_loadtest_artifacts.py +0 -0
  685. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_loadtest_metrics.py +0 -0
  686. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_loadtest_protocol.py +0 -0
  687. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_loadtest_runner.py +0 -0
  688. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_loadtest_schedule.py +0 -0
  689. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_loadtest_schema.py +0 -0
  690. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_mirror_sampling_parity.py +0 -0
  691. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_modal_deploy_identity.py +0 -0
  692. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_modal_image_paths.py +0 -0
  693. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_model_config.py +0 -0
  694. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_multimodal.py +0 -0
  695. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_openai_stream_options.py +0 -0
  696. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_per_model_gpu.py +0 -0
  697. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_persistence.py +0 -0
  698. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_pre_first_disconnect.py +0 -0
  699. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_prequant_config.py +0 -0
  700. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_promotion_canary.py +0 -0
  701. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_promotion_evidence.py +0 -0
  702. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_promotion_gate.py +0 -0
  703. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_registry.py +0 -0
  704. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_registry_coverage.py +0 -0
  705. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_request_body_limit.py +0 -0
  706. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_router.py +0 -0
  707. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_router_coverage.py +0 -0
  708. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_router_edge_coverage.py +0 -0
  709. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_schemas_coverage.py +0 -0
  710. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_serve_reasoning_split.py +0 -0
  711. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_serve_structured_outputs.py +0 -0
  712. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_serve_thinking.py +0 -0
  713. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_settings.py +0 -0
  714. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_stream_channel.py +0 -0
  715. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_structured_outputs.py +0 -0
  716. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_structured_outputs_coverage.py +0 -0
  717. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_supabase_rest_coverage.py +0 -0
  718. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_usage_outbox.py +0 -0
  719. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving/test_usage_reporter.py +0 -0
  720. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving_conformance/__init__.py +0 -0
  721. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving_conformance/conftest.py +0 -0
  722. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/serving_conformance/test_contract.py +0 -0
  723. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_accounting_coverage.py +0 -0
  724. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_adapter_shard_completeness.py +0 -0
  725. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_agent_flash_cli_contract.py +0 -0
  726. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_algorithms.py +0 -0
  727. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_allocator.py +0 -0
  728. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_authenticated_redirects.py +0 -0
  729. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_backend_jobspec_contract.py +0 -0
  730. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_bake_kernel_cache.py +0 -0
  731. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_base_model_provenance.py +0 -0
  732. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_bootstrap_process_groups.py +0 -0
  733. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_build_context_contract.py +0 -0
  734. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_capture_qwen38_metadata.py +0 -0
  735. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_catalog_consistency.py +0 -0
  736. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_catalog_only_models.py +0 -0
  737. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_chat_foundations.py +0 -0
  738. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_checkpoint_lifecycle.py +0 -0
  739. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_checkpoints.py +0 -0
  740. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_commands.py +0 -0
  741. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_commands_coverage.py +0 -0
  742. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_credential_shadowing.py +0 -0
  743. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_errors.py +0 -0
  744. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_estimate.py +0 -0
  745. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_gpus_flag.py +0 -0
  746. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_help.py +0 -0
  747. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_main_coverage.py +0 -0
  748. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_managed.py +0 -0
  749. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_render_coverage.py +0 -0
  750. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_render_theme.py +0 -0
  751. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_serve_deploy.py +0 -0
  752. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_serve_status.py +0 -0
  753. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_serve_undeploy.py +0 -0
  754. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_traces.py +0 -0
  755. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cli_wandb_warning.py +0 -0
  756. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_client.py +0 -0
  757. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_client_import_purity.py +0 -0
  758. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_client_stream_reads.py +0 -0
  759. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_config_env_vars.py +0 -0
  760. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_config_overrides.py +0 -0
  761. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_console_upload.py +0 -0
  762. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_controlled_experiment_repairs.py +0 -0
  763. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cost_analytical.py +0 -0
  764. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cost_currency.py +0 -0
  765. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cost_equation.py +0 -0
  766. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cost_estimate.py +0 -0
  767. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cost_hardware.py +0 -0
  768. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_cost_models.py +0 -0
  769. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_dataset_profile.py +0 -0
  770. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_deploy_latency.py +0 -0
  771. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_dev_channel.py +0 -0
  772. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_disk_gb.py +0 -0
  773. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_endpoint_name.py +0 -0
  774. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_cache_evict.py +0 -0
  775. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_delete.py +0 -0
  776. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_download.py +0 -0
  777. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_download_api.py +0 -0
  778. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_evaluations.py +0 -0
  779. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_git_auth.py +0 -0
  780. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_list_api.py +0 -0
  781. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_list_cli.py +0 -0
  782. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_list_hub.py +0 -0
  783. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_no_install.py +0 -0
  784. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_publish.py +0 -0
  785. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_pull.py +0 -0
  786. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_pull_coverage.py +0 -0
  787. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_pull_loader_coverage.py +0 -0
  788. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_pull_managed_control_plane.py +0 -0
  789. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_push.py +0 -0
  790. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_rate_limit_resolve.py +0 -0
  791. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_ref_pinning.py +0 -0
  792. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_env_test.py +0 -0
  793. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_envs_coverage.py +0 -0
  794. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_export.py +0 -0
  795. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_flash_mvp.py +0 -0
  796. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_flashinfer_cache_dirs.py +0 -0
  797. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_freesolo_api_transport.py +0 -0
  798. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_fused_expert_warmstart.py +0 -0
  799. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_github_urlopen_retry.py +0 -0
  800. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_gpu_type_single_field.py +0 -0
  801. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_gpus.py +0 -0
  802. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_params.py +0 -0
  803. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_process_census.py +0 -0
  804. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_resident_sizing.py +0 -0
  805. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_reward_batching.py +0 -0
  806. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_rollout_contract.py +0 -0
  807. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_grpo_rollout_identity.py +0 -0
  808. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_health_liveness.py +0 -0
  809. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_hf_retry.py +0 -0
  810. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_hosted_adapter_admission.py +0 -0
  811. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_image_environment_capability.py +0 -0
  812. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_image_incremental_processor.py +0 -0
  813. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_image_sft_markers.py +0 -0
  814. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_image_sft_processor_parity.py +0 -0
  815. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_image_tokens.py +0 -0
  816. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_infisical_secrets.py +0 -0
  817. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_internal_client.py +0 -0
  818. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_kernel_cache.py +0 -0
  819. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_kernel_fingerprint.py +0 -0
  820. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_kv_util.py +0 -0
  821. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_logging.py +0 -0
  822. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_login_perms.py +0 -0
  823. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lora_rank_coverage.py +0 -0
  824. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lora_rank_nested_rung.py +0 -0
  825. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lora_rank_preflight.py +0 -0
  826. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_lora_targeting_pinned_verl.py +0 -0
  827. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_managed_config_fields.py +0 -0
  828. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_managed_hf_repo.py +0 -0
  829. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_metrics_schema_agent_contract.py +0 -0
  830. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_mig_guard.py +0 -0
  831. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_mirror_sampling_parity.py +0 -0
  832. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_multi_gpu_gate.py +0 -0
  833. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_multimodal_training.py +0 -0
  834. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_named_reward_metrics.py +0 -0
  835. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_oom_escalate_gpu.py +0 -0
  836. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd.py +0 -0
  837. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd_limits.py +0 -0
  838. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd_multiturn_eos_boundary.py +0 -0
  839. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd_multiturn_failure_exit.py +0 -0
  840. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_opd_replay_guard.py +0 -0
  841. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_orchestrator_flash.py +0 -0
  842. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_packing.py +0 -0
  843. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_packing_coverage.py +0 -0
  844. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_parasail_teacher.py +0 -0
  845. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_persisted_spec_envelope.py +0 -0
  846. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_poll_helpers.py +0 -0
  847. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_preflight.py +0 -0
  848. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_projects.py +0 -0
  849. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_prompt_budget.py +0 -0
  850. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_provider_preflight_coverage.py +0 -0
  851. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_providers_symmetry.py +0 -0
  852. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_repo_cleanup.py +0 -0
  853. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_resolve_params_b.py +0 -0
  854. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_retry_decision.py +0 -0
  855. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_rollout_samples.py +0 -0
  856. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_run_registry_lifecycle.py +0 -0
  857. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_runpod_api_delete.py +0 -0
  858. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_runpod_key_fingerprint.py +0 -0
  859. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_runpod_key_waterfall.py +0 -0
  860. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_runtime_capsule.py +0 -0
  861. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_app_bootstrap_http.py +0 -0
  862. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_app_manifest.py +0 -0
  863. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_app_materialize.py +0 -0
  864. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_app_packaging.py +0 -0
  865. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_app_progress.py +0 -0
  866. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_chat_transport.py +0 -0
  867. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_control.py +0 -0
  868. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_docs.py +0 -0
  869. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_modal_contract_lock.py +0 -0
  870. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_modal_sdk.py +0 -0
  871. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_modal_sdk_deadlines.py +0 -0
  872. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_modal_teardown_identity.py +0 -0
  873. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_profile_qualification.py +0 -0
  874. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_profiles.py +0 -0
  875. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_provisioning_common.py +0 -0
  876. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_provisioning_modal.py +0 -0
  877. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_reasoning_content.py +0 -0
  878. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_resolve_provenance.py +0 -0
  879. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_runtime_adapters.py +0 -0
  880. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_runtime_engine.py +0 -0
  881. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_runtime_package.py +0 -0
  882. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serve_runtime_types.py +0 -0
  883. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_auth_singleflight.py +0 -0
  884. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_checkpoints_coverage.py +0 -0
  885. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_db.py +0 -0
  886. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_locks_coverage.py +0 -0
  887. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_server_serving_resources.py +0 -0
  888. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serving_conformance_gate.py +0 -0
  889. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serving_context_preflight.py +0 -0
  890. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_serving_contract.py +0 -0
  891. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_chunked_nll.py +0 -0
  892. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_example_selection.py +0 -0
  893. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_gc_off.py +0 -0
  894. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_max_context.py +0 -0
  895. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_step_floor.py +0 -0
  896. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_sft_workload.py +0 -0
  897. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_source_attestation_flow.py +0 -0
  898. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_source_layout.py +0 -0
  899. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_source_snapshot.py +0 -0
  900. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_spec_contract_bytes.py +0 -0
  901. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_status_reporting.py +0 -0
  902. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_step_floor.py +0 -0
  903. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_step_metrics.py +0 -0
  904. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_step_timing.py +0 -0
  905. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_structured_outputs.py +0 -0
  906. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_teacher_broker.py +0 -0
  907. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_teacher_encoding_contract.py +0 -0
  908. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_terminal_artifacts.py +0 -0
  909. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_thinking_config.py +0 -0
  910. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_tool_call_exact_parsing.py +0 -0
  911. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_train_context_preflight.py +0 -0
  912. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_training_controls.py +0 -0
  913. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_type_comment_prose.py +0 -0
  914. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vast_api.py +0 -0
  915. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vast_api_coverage.py +0 -0
  916. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vast_result.py +0 -0
  917. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_verified_revisions.py +0 -0
  918. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_verifiers.py +0 -0
  919. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_verl_checkpoint_export.py +0 -0
  920. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_verl_child_plugins.py +0 -0
  921. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_verl_silence_watchdog.py +0 -0
  922. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_version.py +0 -0
  923. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vl_warmstart_adapter_keys.py +0 -0
  924. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vllm_moe_lora_backport.py +0 -0
  925. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_vram_architecture.py +0 -0
  926. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_wandb_link.py +0 -0
  927. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_wandb_naming.py +0 -0
  928. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_warmstart_adapter_download.py +0 -0
  929. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_warmstart_cross_repo.py +0 -0
  930. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_warmstart_error_attribution.py +0 -0
  931. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_warmstart_image_adapters.py +0 -0
  932. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_worker_dryrun.py +0 -0
  933. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_worker_hardexit.py +0 -0
  934. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_worker_image.py +0 -0
  935. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_worker_init_heartbeat.py +0 -0
  936. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_worker_stack.py +0 -0
  937. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_worker_thinking.py +0 -0
  938. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_workflow_contracts.py +0 -0
  939. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_workload_profile.py +0 -0
  940. {freesolo_flash_dev-1.2.133 → freesolo_flash_dev-1.2.134}/tests/test_zero2_sharding_gate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: freesolo-flash-dev
3
- Version: 1.2.133
3
+ Version: 1.2.134
4
4
  Summary: Flash — managed LoRA post-training (SFT/GRPO/OPD) for Freesolo environments, driven by the `flash` CLI
5
5
  Project-URL: Homepage, https://github.com/freesolo-co/flash
6
6
  Project-URL: Repository, https://github.com/freesolo-co/flash
@@ -20,7 +20,6 @@ detail. See their docstrings before changing either.
20
20
  from __future__ import annotations
21
21
 
22
22
  import json
23
- import math
24
23
  import os
25
24
  from dataclasses import asdict, dataclass, field, fields
26
25
  from typing import Any, Literal
@@ -366,9 +365,6 @@ class TrainSpec:
366
365
  hf_repo: str = ""
367
366
  # None -> worker's tuned recipe default.
368
367
  learning_rate: float | None = field(default=None, metadata={"introduced_in": "0.2.0"})
369
- # sft only: none preserves a legacy persisted run's 16x optimizer. new configs freeze the
370
- # recipe default at parse time; 1 uses equal adapter learning rates.
371
- loraplus_ratio: float | None = field(default=None, metadata={"introduced_in": "1.2.131"})
372
368
  # sft only. the packaged-dataset estimate resolves this against the selected row count into
373
369
  # examples_per_update (packed) or pins the optimizer batch to 1 (unpacked). grpo/opd have no
374
370
  # profile, so they take prompts_per_step instead and reject this key: the two are not the same
@@ -403,17 +399,6 @@ class TrainSpec:
403
399
  )
404
400
 
405
401
  def __post_init__(self) -> None:
406
- if self.loraplus_ratio is not None:
407
- ratio = self.loraplus_ratio
408
- if isinstance(ratio, bool) or not isinstance(ratio, (int, float)):
409
- raise TypeError("train.loraplus_ratio must be a number")
410
- try:
411
- ratio = float(ratio)
412
- except OverflowError as exc:
413
- raise ValueError("train.loraplus_ratio must be a finite number >= 1") from exc
414
- if not math.isfinite(ratio) or ratio < 1:
415
- raise ValueError("train.loraplus_ratio must be a finite number >= 1")
416
- object.__setattr__(self, "loraplus_ratio", ratio)
417
402
  if not self.lora_alpha:
418
403
  object.__setattr__(self, "lora_alpha", 2 * self.lora_rank)
419
404
  max_steps = parse_max_steps(self.max_steps)
@@ -581,8 +566,6 @@ class JobSpec:
581
566
  project: str = ""
582
567
 
583
568
  def __post_init__(self) -> None:
584
- if self.train.loraplus_ratio is not None and self.algorithm != "sft":
585
- raise ValueError("train.loraplus_ratio only applies to sft")
586
569
  object.__setattr__(self, "seed", parse_seed(self.seed))
587
570
  object.__setattr__(self, "model_revision", _model_revision(self.model_revision))
588
571
  for field_name in ("model_revision_auto", "model_revision_force_pin"):
@@ -698,9 +681,6 @@ class JobSpec:
698
681
  differently, so removing either pop would break existing digests.
699
682
  """
700
683
  data = asdict(self)
701
- # preserve historical preparation digests when the new option was not authored.
702
- if data["train"]["loraplus_ratio"] is None:
703
- data["train"].pop("loraplus_ratio")
704
684
  # missing and unset are the same internal state. omitting the empty value preserves that state
705
685
  # without serializing it into an explicit empty preference, which every parser rejects.
706
686
  if not data["gpu"].get("providers"):
@@ -806,7 +786,6 @@ class JobSpec:
806
786
  init_from_adapter_revision=str(train.get("init_from_adapter_revision") or ""),
807
787
  hf_repo=str(train.get("hf_repo") or ""),
808
788
  learning_rate=opt_float(train.get("learning_rate")),
809
- loraplus_ratio=train.get("loraplus_ratio"),
810
789
  batch_size=opt_int(train.get("batch_size")),
811
790
  prompts_per_step=opt_int(train.get("prompts_per_step")),
812
791
  max_context_tokens=opt_int(train.get("max_context_tokens")),
@@ -170,7 +170,6 @@ class SFTConfig:
170
170
  max_seq_len: int = 1024
171
171
  max_seq_len_thinking: int = 2048
172
172
  learning_rate: float = 1e-4
173
- loraplus_ratio: float = 1.0
174
173
  warmup_frac: float = 0.03
175
174
  effective_batch: int = 32
176
175
  num_epochs: int = 2
@@ -8,7 +8,6 @@ from collections.abc import Iterable
8
8
  from dataclasses import dataclass
9
9
 
10
10
  from flash._internal.fileio import reject_duplicate_keys
11
- from flash.engine.support.verl_policy import FsdpGeneration
12
11
 
13
12
  VERL_FSDP_CONFIG_FILE = "fsdp_config.json"
14
13
  _MAX_NATIVE_FSDP_WORLD_SIZE = 8
@@ -78,7 +77,6 @@ def inspect_fsdp_checkpoint_manifest(
78
77
  stamp_raw: bytes | str | None,
79
78
  files: Iterable[FsdpManifestFile],
80
79
  *,
81
- expected_generation: FsdpGeneration,
82
80
  expected_world_size: int | None,
83
81
  ) -> FsdpCheckpointInspection:
84
82
  """validate the exact canonical native shard set for one stamped actor directory."""
@@ -90,13 +88,11 @@ def inspect_fsdp_checkpoint_manifest(
90
88
  rejection_reason="invalid or missing fsdp stamp",
91
89
  )
92
90
  generation, width = stamp
93
- if generation != expected_generation:
91
+ if generation != 2:
94
92
  return FsdpCheckpointInspection(
95
93
  loadable=False,
96
94
  width=width,
97
- rejection_reason=(
98
- f"fsdp generation mismatch (stamped {generation}, expected {expected_generation})"
99
- ),
95
+ rejection_reason=f"fsdp generation mismatch (stamped {generation}, expected 2)",
100
96
  )
101
97
  if expected_world_size is not None and width != expected_world_size:
102
98
  return FsdpCheckpointInspection(
@@ -28,7 +28,6 @@ from flash.engine.plan import steps as _steps
28
28
  from flash.engine.plan.recipe import RECIPE
29
29
  from flash.engine.plan.steps import rl_data_parallel_cards
30
30
  from flash.engine.profiling.sft_workload import _materialize_verl_images
31
- from flash.engine.support.verl_policy import _resolve_fsdp_generation
32
31
  from flash.engine.worker.entry import opd as _opd_entry
33
32
  from flash.engine.worker.train.core.child.runtime import TEXT_LORA_TARGET_SHIM
34
33
  from flash.engine.worker.train.entry.prompt_rows import canonical_prompt_messages
@@ -187,7 +186,6 @@ def _prepare_workload(
187
186
  if isinstance(target_modules, set | frozenset):
188
187
  target_modules = sorted(target_modules)
189
188
  target_parameters = tuple(targeting.target_parameters) if targeting.target_parameters else None
190
- fsdp_generation = _resolve_fsdp_generation("opd", target_parameters)
191
189
  lora_rank = int(lora_config.r)
192
190
  return _WorkloadState(
193
191
  prompts_per_step,
@@ -209,7 +207,6 @@ def _prepare_workload(
209
207
  int(lora_config.lora_alpha),
210
208
  target_modules,
211
209
  target_parameters,
212
- fsdp_generation,
213
210
  targeting.exclude_modules,
214
211
  _sft._warmstart_adapter_path(
215
212
  request.model_id,
@@ -260,8 +257,6 @@ def _materialize_child_files(
260
257
  # the same count this attempt hands verl as n_gpus_per_node, which is the data-parallel
261
258
  # width: ulysses is pinned to 1, so every rank is a dp rank.
262
259
  world_size=gpu_count,
263
- # native state is generation-specific, so use the same resolved policy as the child config.
264
- expected_fsdp_generation=workload.fsdp_generation,
265
260
  )
266
261
  bridge = _opd_bridge._TeacherAlignmentBridge(
267
262
  prompts=prompt_state.prompts,
@@ -399,7 +394,6 @@ def _build_base_config(
399
394
  "target_modules": workload.target_modules,
400
395
  "exclude_modules": None,
401
396
  "target_parameters": workload.target_parameters,
402
- "fsdp_generation": workload.fsdp_generation,
403
397
  "lora_adapter_path": workload.warmstart_adapter,
404
398
  "learning_rate": knobs.learning_rate,
405
399
  "local_dir": workload.local_dir,
@@ -309,7 +309,6 @@ def _prepare_rl_files(inp, prompts):
309
309
  resume_step = rl_checkpoints._restore_verl_resume(
310
310
  local_dir,
311
311
  world_size=int(inp["dp_cards"]),
312
- expected_fsdp_generation=inp["fsdp_generation"],
313
312
  required_steps=tuple(inp["save_at_steps"]),
314
313
  )
315
314
  train_pq = os.path.join(workdir, "train.parquet")
@@ -355,8 +355,7 @@ def _sft_liger_config() -> dict[str, bool]:
355
355
 
356
356
 
357
357
  # re-exported so the child-render helpers stay reachable as `sft_train.<name>`: the other
358
- # trainers import `_hydra_val` from here, and the sft tests import the renderers and the
359
- # LoRA+ marker from here.
358
+ # trainers import `_hydra_val` from here, and the sft tests import the renderers.
360
359
  # the runner resolves patched seams through this parent module at call time, so these imports must
361
360
  # remain attributes of `sft_train` rather than direct imports in the split module.
362
361
  from flash.engine.plan.recipe import RECIPE # noqa: E402,F401
@@ -394,7 +393,6 @@ from flash.engine.worker.train.sft.setup.checkpoints import ( # noqa: E402,F401
394
393
  _VerlCheckpointWatcher,
395
394
  )
396
395
  from flash.engine.worker.train.sft.setup.config import ( # noqa: E402,F401
397
- _LORAPLUS_READY_MARKER,
398
396
  _REQUIRED_OVERRIDE_KEYS,
399
397
  _VERL_OPTIMIZER_IMPL,
400
398
  _VERL_OPTIMIZER_NAME,
@@ -485,9 +483,6 @@ def _write_sft_result(options, data, model, child, progress, verified, outputs)
485
483
  "loss_curve": progress.loss_curve[:400],
486
484
  "peak_gpu_gb": device_peak_gpu_gb,
487
485
  "device_peak_gpu_gb": device_peak_gpu_gb,
488
- "loraplus_optim": _VERL_OPTIMIZER_NAME,
489
- "loraplus_applied": progress.loraplus_applied,
490
- "loraplus_ratio": options.loraplus_ratio,
491
486
  "verl_backend": "fsdp2",
492
487
  # sft shards by DATA -- see ULYSSES_SEQUENCE_PARALLEL_SIZE for why. fsdp splits the batch
493
488
  # across the ranks actually LAUNCHED, which is the allocated card count only when the
@@ -585,7 +580,7 @@ def run_sft_train(spec=None) -> None:
585
580
  child = _prepare_sft_child(
586
581
  options, data, model, capabilities, use_remove_padding, gdn_reset_arch
587
582
  )
588
- child_progress = _prepare_sft_progress(options, data, model, child)
583
+ child_progress = _prepare_sft_progress(data, model, child)
589
584
  progress = child_progress.values
590
585
 
591
586
  def on_line(line: str) -> None:
@@ -606,7 +601,7 @@ def run_sft_train(spec=None) -> None:
606
601
  if child.resume_step < model.update_horizon:
607
602
  child.watcher.start()
608
603
  # check save completeness only after normal training completion. callback failures occur before
609
- # return_code assignment; checking anyway would replace the real zero-grad or lora+ diagnosis
604
+ # return_code assignment; checking anyway would replace the real zero-grad or runtime-patch diagnosis
610
605
  # with a missing-save error. opd_train uses the same guard.
611
606
  training_completed = False
612
607
  try:
@@ -25,7 +25,6 @@ from flash.adapters.fused_experts import lora_target_parameters
25
25
  from flash.adapters.targets import resolve_lora_targeting
26
26
  from flash.core.catalog import get_model
27
27
  from flash.engine.plan.steps import sft_data_parallel_cards, widest_usable_dp_width
28
- from flash.engine.support.verl_policy import _resolve_fsdp_generation
29
28
  from flash.engine.worker.train.core.child.runtime import TEXT_LORA_TARGET_SHIM
30
29
  from flash.engine.worker.train.entry import sft_train as _sft_train
31
30
  from flash.engine.worker.verl.parallelism import ULYSSES_SEQUENCE_PARALLEL_SIZE
@@ -33,7 +32,6 @@ from flash.providers.core.base import rentable_gpu_counts
33
32
 
34
33
  RECIPE = _sft_train.RECIPE
35
34
  _MAX_ZERO_GRAD_STEPS = _sft_train._MAX_ZERO_GRAD_STEPS
36
- _LORAPLUS_READY_MARKER = _sft_train._LORAPLUS_READY_MARKER
37
35
  _VERL_OPTIMIZER_IMPL = _sft_train._VERL_OPTIMIZER_IMPL
38
36
  _VERL_OPTIMIZER_NAME = _sft_train._VERL_OPTIMIZER_NAME
39
37
  build_sft_overrides = _sft_train.build_sft_overrides
@@ -69,7 +67,6 @@ class _SftOptions:
69
67
  model_revision: str
70
68
  epochs: int
71
69
  learning_rate: float
72
- loraplus_ratio: float
73
70
  effective_batch: int
74
71
  max_steps: int
75
72
  save_at_steps: tuple[int, ...]
@@ -146,8 +143,6 @@ class _SftProgress:
146
143
  observed_grad_norms: list[float]
147
144
  loss_curve: list[float]
148
145
  train_tokens: int
149
- loraplus_applied: bool
150
- loraplus_ratio: float
151
146
  wandb_link: dict[str, str | None]
152
147
  # what the child plugin must prove applied; verified at the first optimizer step and again at
153
148
  # child exit.
@@ -188,9 +183,6 @@ def _resolve_sft_options(spec) -> _SftOptions:
188
183
  model_id = spec.model if spec else RECIPE.hf_model_id
189
184
  model_revision = getattr(spec, "model_revision", "") if spec else ""
190
185
  train_spec = spec.train if spec else None
191
- # new authored sft specs persist their ratio. an unset stored value predates the option and
192
- # must retain the 16x optimizer groups used by its checkpoint, including across further retries.
193
- default_loraplus_ratio = 16.0 if train_spec is not None else RECIPE.sft.loraplus_ratio
194
186
 
195
187
  def train_opt(name, default):
196
188
  value = getattr(train_spec, name, None) if train_spec else None
@@ -219,7 +211,6 @@ def _resolve_sft_options(spec) -> _SftOptions:
219
211
  model_revision=model_revision,
220
212
  epochs=int(train_opt("epochs", RECIPE.sft.num_epochs)),
221
213
  learning_rate=float(train_opt("learning_rate", RECIPE.sft.learning_rate)),
222
- loraplus_ratio=float(train_opt("loraplus_ratio", default_loraplus_ratio)),
223
214
  effective_batch=int(train_opt("batch_size", RECIPE.sft.effective_batch)),
224
215
  max_steps=int(train_opt("max_steps", 0) or 0),
225
216
  save_at_steps=tuple(getattr(train_spec, "save_at_steps", ()) or ()),
@@ -593,8 +584,6 @@ def _write_sft_child_shims(
593
584
  {
594
585
  "marker_file": shim_markers,
595
586
  "seed": int(seed),
596
- "loraplus_ratio": options.loraplus_ratio,
597
- "loraplus_ready_marker": _LORAPLUS_READY_MARKER,
598
587
  "save_at_steps": list(options.save_at_steps),
599
588
  "total_steps": int(model.update_horizon),
600
589
  "reentrant_gradient_checkpointing": bool(model.reentrant_gradient_checkpointing),
@@ -638,7 +627,6 @@ def _prepare_sft_child(
638
627
  # take the RAISING gate there rather than the soft form.
639
628
  world_size, micro_batch = _resolve_sft_width_and_micro_batch(options, data, model)
640
629
  target_parameters = lora_target_parameters(options.model_id)
641
- fsdp_generation = _resolve_fsdp_generation("sft", target_parameters)
642
630
  config = {
643
631
  "train_files": data.train_file,
644
632
  "train_batch_size": model.train_batch_size,
@@ -652,7 +640,6 @@ def _prepare_sft_child(
652
640
  "target_modules": model.target_modules,
653
641
  "exclude_modules": None,
654
642
  "target_parameters": target_parameters,
655
- "fsdp_generation": fsdp_generation,
656
643
  "lora_adapter_path": model.warmstart_adapter,
657
644
  "ulysses_sp_size": ULYSSES_SEQUENCE_PARALLEL_SIZE,
658
645
  "lr": options.learning_rate,
@@ -706,7 +693,6 @@ def _prepare_sft_child(
706
693
  resume_step = _sft_train._restore_verl_resume(
707
694
  options.paths.local_dir,
708
695
  world_size=world_size,
709
- expected_fsdp_generation=fsdp_generation,
710
696
  )
711
697
  watcher = _sft_train._VerlCheckpointWatcher(
712
698
  local_dir=options.paths.local_dir,
@@ -763,9 +749,7 @@ def _prepare_sft_child(
763
749
  )
764
750
 
765
751
 
766
- def _prepare_sft_progress(
767
- options: _SftOptions, data: _SftData, model: _SftModelSetup, child: _SftChild
768
- ) -> _SftProgress:
752
+ def _prepare_sft_progress(data: _SftData, model: _SftModelSetup, child: _SftChild) -> _SftProgress:
769
753
  resume_step = child.resume_step
770
754
  progress = {"step": resume_step, "loss": None, "grad_norm": None, "lr": None}
771
755
  # consecutive steps seen with grad_norm == 0.0 at a nonzero lr. one step can legitimately be
@@ -792,12 +776,10 @@ def _prepare_sft_progress(
792
776
  observed_grad_norms=observed_grad_norms,
793
777
  loss_curve=[],
794
778
  train_tokens=train_tokens,
795
- loraplus_applied=options.loraplus_ratio > 1 and resume_step >= model.update_horizon,
796
- loraplus_ratio=options.loraplus_ratio,
797
779
  wandb_link={},
798
780
  shim_markers=child.shim_markers,
799
781
  expected_shims=child.expected_shims,
800
- # like loraplus_applied above: a resume already at the horizon never launches the child,
782
+ # a resume already at the horizon never launches the child,
801
783
  # so there is no marker file to verify and nothing left for the shims to patch.
802
784
  shims_verified=resume_step >= model.update_horizon,
803
785
  )
@@ -838,26 +820,17 @@ def _invoke_sft_child(child: _SftChild, callbacks: _SftProgressCallbacks, on_lin
838
820
  def _consume_sft_marker_line(progress: _SftProgress, line: str) -> bool:
839
821
  """Fold a child log line's non-metric markers in; answer whether it is an optimizer step.
840
822
 
841
- False means the caller has nothing further to do with the line. A True answer additionally
842
- asserts the lora+ shim landed before the first step, because a run that reaches an optimizer
843
- update without it is training plain lora at the lora+ learning rate.
823
+ False means the caller has nothing further to do with the line. Before the first optimizer
824
+ step, verify that the required child runtime patches applied.
844
825
  """
845
- if _LORAPLUS_READY_MARKER in line:
846
- progress.loraplus_applied = True
847
826
  link = _sft_train.parse_wandb_link(line)
848
827
  if link is not None:
849
828
  progress.wandb_link.update(link)
850
829
  if _sft_train.verl_step_number(line) is None:
851
830
  return False
852
- # the marker set first: a skipped sitecustomize also loses the lora+ shim, and "no fragment
853
- # ran at all" is the root cause worth reporting over its lora+ symptom.
854
831
  if progress.expected_shims and not progress.shims_verified:
855
832
  verify_applied_shim_markers(progress.shim_markers, progress.expected_shims)
856
833
  progress.shims_verified = True
857
- if progress.loraplus_ratio > 1 and not progress.loraplus_applied:
858
- raise RuntimeError(
859
- "verl reached an optimizer step before the required lora+ shim succeeded"
860
- )
861
834
  return True
862
835
 
863
836
 
@@ -918,12 +891,10 @@ def _finish_sft_child(
918
891
  raise RuntimeError(f"verl SFT subprocess exited with status {return_code}")
919
892
  # belt and braces behind the first-step check in _consume_sft_marker_line, for a child whose
920
893
  # step lines the parent never parsed. shims_verified starts True when the child is not
921
- # launched at all (resume already at the horizon), exactly like loraplus_applied above.
894
+ # launched at all (resume already at the horizon).
922
895
  if progress.expected_shims and not progress.shims_verified:
923
896
  verify_applied_shim_markers(progress.shim_markers, progress.expected_shims)
924
897
  progress.shims_verified = True
925
- if progress.loraplus_ratio > 1 and not progress.loraplus_applied:
926
- raise RuntimeError("required lora+ shim did not emit its success marker")
927
898
  return train_wall, device_peak_gpu_gb
928
899
 
929
900
 
@@ -21,7 +21,6 @@ from pathlib import Path
21
21
  import flash.engine.worker.io.hf as _worker_hf
22
22
  import flash.engine.worker.perf as _worker_perf
23
23
  import flash.engine.worker.runtime.state as _worker_state
24
- from flash.engine.support.verl_policy import FsdpGeneration
25
24
  from flash.engine.worker.train.entry.sft_train import (
26
25
  SHIM_FRAGMENT_FAILED_EXIT_CODE,
27
26
  _export_checkpoint_adapter,
@@ -378,7 +377,6 @@ def _restore_verl_resume(
378
377
  prompt_pool_fingerprint: str,
379
378
  update_horizon: int,
380
379
  world_size: int,
381
- expected_fsdp_generation: FsdpGeneration,
382
380
  ) -> tuple[int, dict | None]:
383
381
  revision = _worker_state.OPD_RESUME_REVISION or None
384
382
  # no `prefer`: opd pins an exact commit via OPD_RESUME_REVISION with fail_closed, and
@@ -402,7 +400,6 @@ def _restore_verl_resume(
402
400
  inspection = inspect_resume_checkpoint(
403
401
  resume,
404
402
  world_size=world_size,
405
- expected_fsdp_generation=expected_fsdp_generation,
406
403
  )
407
404
  if not inspection.loadable:
408
405
  raise RuntimeError(
@@ -410,12 +407,11 @@ def _restore_verl_resume(
410
407
  f"checkpoint {os.path.basename(resume)}, rejected because "
411
408
  f"{inspection.diagnostic()}. restarting from step 0 would violate the pinned-resume "
412
409
  "contract, so this attempt refuses to train; relaunch from a compatible complete "
413
- f"fsdp{expected_fsdp_generation} checkpoint."
410
+ "fsdp2 checkpoint."
414
411
  )
415
412
  elif not resume_topology_matches(
416
413
  resume,
417
414
  world_size=world_size,
418
- expected_fsdp_generation=expected_fsdp_generation,
419
415
  job_label="OPD",
420
416
  ):
421
417
  return 0, None
@@ -39,7 +39,6 @@ _REQUIRED_OVERRIDE_KEYS = (
39
39
  "lora_rank",
40
40
  "lora_alpha",
41
41
  "target_modules",
42
- "fsdp_generation",
43
42
  "learning_rate",
44
43
  "local_dir",
45
44
  "save_freq",
@@ -150,9 +149,9 @@ def _actor_rollout_overrides(config: dict, *, max_tokens: int) -> list[str]:
150
149
  # absent -> True, verl's own default: a config built without the gate must render the
151
150
  # lower-memory strategy, never fall into zero-2 by omission.
152
151
  f"actor_rollout_ref.actor.fsdp_config.reshard_after_forward={_hydra_val(bool(config.get('reshard_after_forward', True)))}",
153
- # dense opd stays on the live-validated fsdp1 path. fused-expert target_parameters requires
154
- # fsdp2 so peft can parametrize named tensors. reshard_after_forward remains independent.
155
- *actor_fsdp_strategy_overrides(config["fsdp_generation"]),
152
+ # dense and fused-expert opd both use fsdp2, matching sft and grpo. the independent
153
+ # reshard_after_forward setting still selects zero-2 or zero-3.
154
+ *actor_fsdp_strategy_overrides(),
156
155
  # store the frozen base in bf16, not verl's fp32 yaml default. shared with the rl driver.
157
156
  *trainer_dtype_overrides(),
158
157
  "actor_rollout_ref.rollout.name=vllm",
@@ -5,8 +5,6 @@ from __future__ import annotations
5
5
  from dataclasses import dataclass
6
6
  from typing import Any
7
7
 
8
- from flash.engine.support.verl_policy import FsdpGeneration
9
-
10
8
 
11
9
  @dataclass(frozen=True)
12
10
  class _BridgePrompt:
@@ -65,7 +63,6 @@ class _WorkloadState:
65
63
  lora_alpha: int
66
64
  target_modules: Any
67
65
  target_parameters: tuple[str, ...] | None
68
- fsdp_generation: FsdpGeneration
69
66
  exclude_modules: str | None
70
67
  warmstart_adapter: str | None
71
68
 
@@ -16,7 +16,6 @@ import flash.engine.worker.verl.checkpoints as verl_checkpoints
16
16
  from flash._internal.fileio import reject_duplicate_keys
17
17
  from flash.adapters.artifacts import MAX_ATTEMPT_ID, has_loadable_adapter_weights
18
18
  from flash.engine.support.verl_checkpoint import FsdpCheckpointInspection
19
- from flash.engine.support.verl_policy import FsdpGeneration
20
19
  from flash.engine.worker.io.heartbeat import join_while_draining
21
20
  from flash.engine.worker.train.core.lifecycle.ledger import CheckpointLedger
22
21
  from flash.engine.worker.train.entry.backend_common import (
@@ -516,7 +515,6 @@ def _restore_verl_resume(
516
515
  local_dir: str,
517
516
  *,
518
517
  world_size: int,
519
- expected_fsdp_generation: FsdpGeneration,
520
518
  required_steps: tuple[int, ...] = (),
521
519
  ) -> int:
522
520
  """stage this run's current-contract native checkpoint and its internal adapter store."""
@@ -551,7 +549,6 @@ def _restore_verl_resume(
551
549
 
552
550
  resume, inspection = verl_checkpoints.select_verl_resume_checkpoint(
553
551
  world_size=world_size,
554
- expected_fsdp_generation=expected_fsdp_generation,
555
552
  accept=accept,
556
553
  )
557
554
  if not resume:
@@ -564,7 +561,6 @@ def _restore_verl_resume(
564
561
  local_dir,
565
562
  job_label="GRPO",
566
563
  world_size=world_size,
567
- expected_fsdp_generation=expected_fsdp_generation,
568
564
  inspection=inspection,
569
565
  )
570
566
  referenced = accepted.get(resume)
@@ -579,7 +575,6 @@ def _restore_verl_resume(
579
575
  local_dir,
580
576
  job_label="GRPO",
581
577
  world_size=world_size,
582
- expected_fsdp_generation=expected_fsdp_generation,
583
578
  inspection=inspection,
584
579
  )
585
580
 
@@ -36,7 +36,6 @@ from flash.engine.plan.steps import (
36
36
  rl_data_parallel_cards,
37
37
  validate_save_steps,
38
38
  )
39
- from flash.engine.support.verl_policy import _resolve_fsdp_generation
40
39
  from flash.engine.worker.io.heartbeat import liveness_heartbeat
41
40
  from flash.engine.worker.runtime.rng import backend_seed, seed_training_rngs
42
41
  from flash.engine.worker.train.core.child.glue import validate_glue_template
@@ -398,7 +397,6 @@ def _assemble_grpo_inputs(
398
397
  schedule,
399
398
  prompt_opened_thinking,
400
399
  warmstart_adapter,
401
- fsdp_generation,
402
400
  pinned,
403
401
  ):
404
402
  return {
@@ -456,7 +454,6 @@ def _assemble_grpo_inputs(
456
454
  "lora_rank": options["lora_rank"],
457
455
  "lora_alpha": options["lora_alpha"],
458
456
  "warmstart_adapter": warmstart_adapter,
459
- "fsdp_generation": fsdp_generation,
460
457
  "epochs": schedule["epochs"],
461
458
  "verl_total_epochs": schedule["verl_total_epochs"],
462
459
  "steps": schedule["steps"],
@@ -600,6 +597,5 @@ def _resolve_grpo_inputs():
600
597
  schedule=schedule,
601
598
  prompt_opened_thinking=prompt_opened_thinking,
602
599
  warmstart_adapter=warmstart_adapter,
603
- fsdp_generation=_resolve_fsdp_generation("grpo", targeting.target_parameters),
604
600
  pinned=pinned,
605
601
  )
@@ -303,7 +303,7 @@ def _actor_overrides(cfg: dict) -> list[str]:
303
303
  f"actor_rollout_ref.actor.fsdp_config.reshard_after_forward={_hydra_val(bool(cfg.get('reshard_after_forward', True)))}",
304
304
  # grpo requires fsdp2 for dense and fused-expert actors. reshard_after_forward above still
305
305
  # independently selects zero-2 or zero-3, so the allocator's memory decision is unchanged.
306
- *actor_fsdp_strategy_overrides(cfg["fsdp_generation"]),
306
+ *actor_fsdp_strategy_overrides(),
307
307
  # store the frozen base in bf16, not verl's fp32 yaml default. shared with the opd driver.
308
308
  *trainer_dtype_overrides(),
309
309
  ]
@@ -639,7 +639,6 @@ def _build_verl_training_cfg(
639
639
  # the catalog id, never model_path: fused routed-expert parameters are part of the same
640
640
  # resolved target surface and must not be derived from the local snapshot path.
641
641
  "target_parameters": targeting.target_parameters,
642
- "fsdp_generation": inp["fsdp_generation"],
643
642
  "multimodal": bool(inp.get("multimodal")),
644
643
  "lr": inp["lr"],
645
644
  "group_size": inp["group_size"],
@@ -2,8 +2,6 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from importlib import import_module
6
-
7
5
  if __name__ == "flash_sft_plugin":
8
6
  import flash_verl_runtime as runtime
9
7
  else:
@@ -100,46 +98,6 @@ def _install_reentrant_checkpointing(*, multimodal: bool) -> None:
100
98
  FSDPEngine._build_module = build_reentrant_module
101
99
 
102
100
 
103
- def _install_loraplus(ratio: float, ready_marker: str) -> None:
104
- if ratio <= 1:
105
- return
106
- from peft.optimizers import create_loraplus_optimizer
107
- from verl.workers.engine.fsdp.transformer_impl import FSDPEngine
108
-
109
- def build_loraplus_optimizer(self, module):
110
- config = self.optimizer_config
111
- optimizer_cls = getattr(import_module(config.optimizer_impl), config.optimizer)
112
- optimizer_kwargs = {"lr": config.lr, "weight_decay": config.weight_decay}
113
- if "adam" in config.optimizer.lower() or "ademamix" in config.optimizer.lower():
114
- optimizer_kwargs["betas"] = config.betas
115
- if config.override_optimizer_config:
116
- optimizer_kwargs.update(config.override_optimizer_config)
117
- try:
118
- optimizer = create_loraplus_optimizer(
119
- model=module,
120
- optimizer_cls=optimizer_cls,
121
- optimizer_kwargs=optimizer_kwargs,
122
- loraplus_lr_ratio=ratio,
123
- loraplus_weight_decay=config.weight_decay,
124
- )
125
- except TypeError:
126
- optimizer = create_loraplus_optimizer(
127
- model=module,
128
- optimizer_cls=optimizer_cls,
129
- lr=config.lr,
130
- loraplus_lr_ratio=ratio,
131
- loraplus_weight_decay=config.weight_decay,
132
- **{key: value for key, value in optimizer_kwargs.items() if key != "lr"},
133
- )
134
- print(
135
- f"{ready_marker} ratio={ratio:g} optimizer={optimizer_cls.__name__}",
136
- flush=True,
137
- )
138
- return optimizer
139
-
140
- FSDPEngine._build_optimizer = build_loraplus_optimizer
141
-
142
-
143
101
  def _install_core(config: dict) -> None:
144
102
  seed = int(config["seed"])
145
103
  _install_exact_dataloaders()
@@ -150,10 +108,6 @@ def _install_core(config: dict) -> None:
150
108
  runtime.install_checkpoint_handler_filter(save_at_steps, int(config["total_steps"]))
151
109
  if config.get("reentrant_gradient_checkpointing"):
152
110
  _install_reentrant_checkpointing(multimodal=bool(config.get("multimodal")))
153
- _install_loraplus(
154
- float(config.get("loraplus_ratio", 1.0)),
155
- str(config["loraplus_ready_marker"]),
156
- )
157
111
 
158
112
 
159
113
  def install() -> None:
@@ -2,18 +2,14 @@
2
2
 
3
3
  `build_sft_overrides` turns a resolved config dict into the hydra argv verl's sft trainer takes, and
4
4
  the `_render_*`/`render_*` helpers emit the child-side python that goes with it: the dataset module
5
- that reads flash's parquet, and the sitecustomize that patches verl in-process (tf32, gdn varlen,
6
- exact dataloader order, LoRA+). It is all string and dict construction -- no torch, no subprocess.
5
+ that reads flash's parquet. Child runtime patches are installed by the external SFT plugin.
6
+ It is all string and dict construction -- no torch, no subprocess.
7
7
 
8
8
  Split out of `flash.engine.worker.train.entry.sft_train` to keep that module under the file-size limit.
9
9
  """
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- # printed by the LoRA+ shim once it has installed itself, and matched on the child's stdout by the
14
- # parent: the shim runs inside verl, so this line is the only proof the optimizer grouping took.
15
- _LORAPLUS_READY_MARKER = "FLASH_LORAPLUS_READY"
16
-
17
13
  # every key `build_sft_overrides` requires its input to carry. an override the child never receives
18
14
  # is a silently-defaulted hyperparameter, so a missing key raises rather than falling back.
19
15
  _REQUIRED_OVERRIDE_KEYS = (
@@ -28,7 +24,6 @@ _REQUIRED_OVERRIDE_KEYS = (
28
24
  "lora_rank",
29
25
  "lora_alpha",
30
26
  "target_modules",
31
- "fsdp_generation",
32
27
  "ulysses_sp_size",
33
28
  "lr",
34
29
  "warmup_ratio",
@@ -71,8 +66,7 @@ def _hydra_val(value) -> str:
71
66
 
72
67
 
73
68
  # verl imports this optimizer by name in the torch-bearing worker process.
74
- # use fp32 adamw: bitsandbytes cannot update fsdp2 dtensors. fsdp1 is not an alternative because flattened
75
- # names make peft's lora+ grouping treat every parameter as one-dimensional and silently mis-group it.
69
+ # use fp32 adamw: bitsandbytes cannot update fsdp2 dtensors.
76
70
  _VERL_OPTIMIZER_IMPL = "torch.optim"
77
71
  _VERL_OPTIMIZER_NAME = "AdamW"
78
72
 
@@ -136,7 +130,7 @@ def build_sft_overrides(cfg: dict) -> list[str]:
136
130
  f"model.fused_kernel_options.impl_backend={cfg['fused_ce_backend']}",
137
131
  f"model.use_liger={_hydra_val(cfg.get('use_liger', False))}",
138
132
  f"model.enable_gradient_checkpointing={_hydra_val(cfg.get('gradient_checkpointing', True))}",
139
- f"engine.strategy={'fsdp2' if cfg['fsdp_generation'] == 2 else 'fsdp'}",
133
+ "engine.strategy=fsdp2",
140
134
  "engine.model_dtype=bfloat16",
141
135
  f"engine.seed={_hydra_val(cfg['seed'])}",
142
136
  f"engine.ulysses_sequence_parallel_size={_hydra_val(cfg['ulysses_sp_size'])}",
@@ -17,7 +17,6 @@ import shutil
17
17
  import subprocess
18
18
  from collections.abc import Sequence
19
19
 
20
- from flash.engine.support.verl_policy import FsdpGeneration
21
20
  from flash.engine.worker.train.entry.backend_common import (
22
21
  CAUSAL_CONV1D_REQUIREMENT,
23
22
  FLA_REQUIREMENT,
@@ -865,10 +864,9 @@ def rollout_layered_summon_overrides(target_parameters: Sequence[str] | None) ->
865
864
  return ["actor_rollout_ref.rollout.layered_summon=true"]
866
865
 
867
866
 
868
- def actor_fsdp_strategy_overrides(fsdp_generation: FsdpGeneration) -> list[str]:
869
- """render one explicit bare actor strategy override from the resolved private policy."""
870
- strategy = "fsdp2" if fsdp_generation == 2 else "fsdp"
871
- return [f"actor_rollout_ref.actor.strategy={strategy}"]
867
+ def actor_fsdp_strategy_overrides() -> list[str]:
868
+ """use fsdp2 for every actor, independent of model and lora targets."""
869
+ return ["actor_rollout_ref.actor.strategy=fsdp2"]
872
870
 
873
871
 
874
872
  def rollout_mm_processor_cache_overrides() -> list[str]: