freesolo-flash-dev 1.2.131__tar.gz → 1.2.133__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.131 → freesolo_flash_dev-1.2.133}/.github/workflows/auto-rebake.yml +2 -2
  2. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/bake-kernel-cache.yml +3 -3
  3. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/ci.yml +3 -4
  4. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/deploy-modal-dev.yml +2 -2
  5. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/deploy-modal.yml +32 -8
  6. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/publish-dev.yml +1 -1
  7. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/publish-image.yml +2 -2
  8. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/publish-serving-image.yml +2 -2
  9. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/publish.yml +1 -1
  10. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/worker-image.yml +2 -2
  11. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/PKG-INFO +4 -4
  12. freesolo_flash_dev-1.2.133/flash/adapters/config.py +136 -0
  13. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/render.py +2 -2
  14. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/dataset_profile.py +27 -59
  15. freesolo_flash_dev-1.2.133/flash/providers/_lifecycle/bootstrapping/attempt.py +92 -0
  16. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/bootstrapping/bootstrap.py +30 -61
  17. freesolo_flash_dev-1.2.133/flash/providers/_lifecycle/bootstrapping/preload.py +68 -0
  18. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/reporting.py +44 -28
  19. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/state.py +3 -7
  20. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runtime_capsule/profiles.py +3 -1
  21. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/launch.py +76 -24
  22. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/materialize.py +25 -48
  23. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/adapter_check.py +33 -17
  24. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/deploy.py +1 -1
  25. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/resolve.py +43 -120
  26. freesolo_flash_dev-1.2.133/flash/serve/provisioning/modal/planning/wrapper.py +38 -0
  27. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/sampling.py +3 -0
  28. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/asgi/app.py +10 -0
  29. freesolo_flash_dev-1.2.133/flash/server/billing/charges.py +288 -0
  30. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/registry/runs.py +4 -0
  31. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/auth.py +80 -69
  32. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/runs.py +46 -23
  33. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/app/README.md +22 -8
  34. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/app/modal_app.py +11 -21
  35. freesolo_flash_dev-1.2.133/flash/serving/app/timeouts.py +13 -0
  36. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/promotion/canary.py +2 -0
  37. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/promotion/gate.py +11 -10
  38. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/accounting/usage_facts.py +1 -1
  39. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/accounting/usage_outbox.py +28 -14
  40. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/generation.py +3 -3
  41. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/support.py +1 -1
  42. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/openai_stream.py +35 -21
  43. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/pyproject.toml +7 -7
  44. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/check_source_layout.py +8 -21
  45. freesolo_flash_dev-1.2.133/tests/_helpers/billing_precheck.py +130 -0
  46. freesolo_flash_dev-1.2.133/tests/serving/test_inference_duration.py +338 -0
  47. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_mirror_sampling_parity.py +59 -4
  48. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_per_model_gpu.py +17 -0
  49. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_promotion_canary.py +25 -0
  50. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_promotion_gate.py +24 -1
  51. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_router.py +22 -2
  52. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_serve_structured_outputs.py +4 -1
  53. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_usage_outbox.py +193 -23
  54. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_usage_reporter.py +9 -15
  55. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving_conformance/test_contract.py +1 -0
  56. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_authenticated_redirects.py +28 -5
  57. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_billing_retry.py +2 -4
  58. freesolo_flash_dev-1.2.133/tests/test_bootstrap_reentry.py +213 -0
  59. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_client_server_integration.py +8 -2
  60. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_dataset_profile.py +459 -1
  61. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_deploy_latency.py +12 -1
  62. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_download_api.py +1 -2
  63. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_publish.py +3 -0
  64. freesolo_flash_dev-1.2.133/tests/test_hosted_adapter_admission.py +197 -0
  65. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_instance_bootstrap_coverage.py +16 -4
  66. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lambda_runner.py +8 -0
  67. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_mirror_sampling_parity.py +27 -3
  68. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_run_registry_lifecycle.py +25 -0
  69. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve.py +15 -3
  70. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_app_launch.py +327 -8
  71. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_app_materialize.py +22 -10
  72. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_modal_sdk.py +127 -3
  73. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_modal_sdk_deadlines.py +13 -4
  74. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_resolve_provenance.py +4 -4
  75. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_runtime_engine.py +1 -1
  76. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_runtime_package.py +14 -1
  77. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_api.py +165 -337
  78. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_app_coverage.py +70 -0
  79. freesolo_flash_dev-1.2.133/tests/test_server_auth_singleflight.py +289 -0
  80. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_billing.py +250 -145
  81. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serving_contract.py +15 -3
  82. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_source_layout.py +6 -18
  83. freesolo_flash_dev-1.2.133/tests/test_status_reporting.py +79 -0
  84. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_workflow_contracts.py +96 -8
  85. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/uv.lock +337 -335
  86. freesolo_flash_dev-1.2.131/flash/serve/provisioning/modal/planning/wrapper.py +0 -43
  87. freesolo_flash_dev-1.2.131/flash/server/billing/charges.py +0 -135
  88. freesolo_flash_dev-1.2.131/tests/test_server_auth_singleflight.py +0 -82
  89. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.dockerignore +0 -0
  90. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.env.example +0 -0
  91. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/CODEOWNERS +0 -0
  92. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  93. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  94. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  95. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  96. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/dependabot.yml +0 -0
  97. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/dev-kernel-cache.yml +0 -0
  98. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/main-source-guard.yml +0 -0
  99. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/notify-tests-repo.yml +0 -0
  100. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/production-kernel-cache-ready.yml +0 -0
  101. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.github/workflows/version-parity.yml +0 -0
  102. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/.gitignore +0 -0
  103. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/CHANGELOG.md +0 -0
  104. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/CODE_OF_CONDUCT.md +0 -0
  105. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/CONTRIBUTING.md +0 -0
  106. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/Dockerfile +0 -0
  107. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/Dockerfile.serve +0 -0
  108. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/Dockerfile.worker +0 -0
  109. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/LICENSE +0 -0
  110. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/NOTICE +0 -0
  111. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/README.md +0 -0
  112. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/SECURITY.md +0 -0
  113. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/SELF_HOSTING.md +0 -0
  114. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/build/kernel_cache/.gitignore +0 -0
  115. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/build/kernel_cache/.keep +0 -0
  116. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/deploy/infisical/README.md +0 -0
  117. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/deploy/infisical/entrypoint.sh +0 -0
  118. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/Dockerfile.kernelcache +0 -0
  119. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/Dockerfile.kernelcache.relayer +0 -0
  120. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/bake_kernel_cache.py +0 -0
  121. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/bake_pod_entry.py +0 -0
  122. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/extract_cudart_fix.py +0 -0
  123. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/kernel_fingerprint.py +0 -0
  124. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/make_rp_handler.py +0 -0
  125. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docker/patch_vllm_moe_lora.py +0 -0
  126. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docs/hosted-inference-load-testing.md +0 -0
  127. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/docs/serving-contract.md +0 -0
  128. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/__init__.py +0 -0
  129. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/__init__.py +0 -0
  130. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/channel.py +0 -0
  131. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/diagnostics.py +0 -0
  132. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/fileio.py +0 -0
  133. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/http.py +0 -0
  134. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/logging.py +0 -0
  135. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/openai_sse.py +0 -0
  136. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/paths.py +0 -0
  137. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/_internal/version.py +0 -0
  138. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/adapters/__init__.py +0 -0
  139. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/adapters/artifacts.py +0 -0
  140. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/adapters/fused_experts.py +0 -0
  141. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/adapters/lora_rank.py +0 -0
  142. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/adapters/targets.py +0 -0
  143. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/__init__.py +0 -0
  144. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/__main__.py +0 -0
  145. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/__init__.py +0 -0
  146. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/__init__.py +0 -0
  147. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/__init__.py +0 -0
  148. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/imports.py +0 -0
  149. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/list.py +0 -0
  150. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/push.py +0 -0
  151. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/retained.py +0 -0
  152. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/setup.py +0 -0
  153. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/ops/setup_wandb.py +0 -0
  154. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/__init__.py +0 -0
  155. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/episode.py +0 -0
  156. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/eval.py +0 -0
  157. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/eval_args.py +0 -0
  158. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/evaluations.py +0 -0
  159. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/params.py +0 -0
  160. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/test.py +0 -0
  161. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/env/testing/warnings.py +0 -0
  162. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/__init__.py +0 -0
  163. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/account.py +0 -0
  164. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/catalog.py +0 -0
  165. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/deploy.py +0 -0
  166. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/log_follow.py +0 -0
  167. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/prompt_budget.py +0 -0
  168. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/runs.py +0 -0
  169. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/traces.py +0 -0
  170. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/train.py +0 -0
  171. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/ops/worker_output.py +0 -0
  172. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/serving/__init__.py +0 -0
  173. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/serving/deploy.py +0 -0
  174. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/serving/identity.py +0 -0
  175. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/serving/status.py +0 -0
  176. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/commands/serving/undeploy.py +0 -0
  177. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/__init__.py +0 -0
  178. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/account.py +0 -0
  179. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/env.py +0 -0
  180. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/errors.py +0 -0
  181. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/main.py +0 -0
  182. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/models.py +0 -0
  183. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/serve_parser.py +0 -0
  184. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/traces.py +0 -0
  185. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/parsing/training.py +0 -0
  186. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/scaffold/TRAINING.md +0 -0
  187. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/scaffold/__init__.py +0 -0
  188. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/__init__.py +0 -0
  189. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/cost.py +0 -0
  190. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/env_panels.py +0 -0
  191. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/heartbeat.py +0 -0
  192. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/tables.py +0 -0
  193. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cli/ui/tty.py +0 -0
  194. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/__init__.py +0 -0
  195. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/config.py +0 -0
  196. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/freesolo_api.py +0 -0
  197. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/http.py +0 -0
  198. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/runtime_secrets.py +0 -0
  199. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/shapes.py +0 -0
  200. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/specs.py +0 -0
  201. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/client/streaming.py +0 -0
  202. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/content/__init__.py +0 -0
  203. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/content/image_descriptors.py +0 -0
  204. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/content/multimodal.py +0 -0
  205. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/content/reasoning_normalization.py +0 -0
  206. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/content/structured_outputs.py +0 -0
  207. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/content/thinking.py +0 -0
  208. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/core/__init__.py +0 -0
  209. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/core/catalog.py +0 -0
  210. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/core/grpo.py +0 -0
  211. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/core/spec.py +0 -0
  212. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/core/spec_persistence.py +0 -0
  213. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cost/__init__.py +0 -0
  214. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cost/analytical.py +0 -0
  215. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cost/currency.py +0 -0
  216. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cost/facts.py +0 -0
  217. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cost/spec.py +0 -0
  218. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/cost/types.py +0 -0
  219. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/__init__.py +0 -0
  220. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/__init__.py +0 -0
  221. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/kv_sizing.py +0 -0
  222. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/model_config_probe.py +0 -0
  223. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/prompt_budget.py +0 -0
  224. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/recipe.py +0 -0
  225. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/steps.py +0 -0
  226. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/plan/vram.py +0 -0
  227. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/__init__.py +0 -0
  228. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/image_tokens.py +0 -0
  229. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/reasoning_render.py +0 -0
  230. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/sft_image_rows.py +0 -0
  231. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/sft_workload.py +0 -0
  232. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/tokenizer.py +0 -0
  233. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/profiling/workload_profile.py +0 -0
  234. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/result/__init__.py +0 -0
  235. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/result/accounting.py +0 -0
  236. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/result/rollout_samples.py +0 -0
  237. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/support/__init__.py +0 -0
  238. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/support/huggingface.py +0 -0
  239. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/support/verl_checkpoint.py +0 -0
  240. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/support/verl_policy.py +0 -0
  241. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/support/worker_entrypoint.py +0 -0
  242. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/__init__.py +0 -0
  243. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/__main__.py +0 -0
  244. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/entry/__init__.py +0 -0
  245. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/entry/opd.py +0 -0
  246. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/entry/rl.py +0 -0
  247. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/entry/sft.py +0 -0
  248. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/entry/worker.py +0 -0
  249. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/io/__init__.py +0 -0
  250. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/io/heartbeat.py +0 -0
  251. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/io/hf.py +0 -0
  252. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/io/prefetch.py +0 -0
  253. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/io/wandb_log.py +0 -0
  254. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/model/__init__.py +0 -0
  255. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/model/adapter.py +0 -0
  256. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/model/chatml_mask.py +0 -0
  257. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/model/decoding.py +0 -0
  258. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/model/lora.py +0 -0
  259. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/model/packing.py +0 -0
  260. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/perf/__init__.py +0 -0
  261. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/perf/diagnostics.py +0 -0
  262. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/perf/lifecycle.py +0 -0
  263. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/perf/liger.py +0 -0
  264. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/perf/memory.py +0 -0
  265. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/runtime/__init__.py +0 -0
  266. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
  267. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/runtime/rng.py +0 -0
  268. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/runtime/state.py +0 -0
  269. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/teacher/__init__.py +0 -0
  270. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/teacher/client.py +0 -0
  271. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/teacher/encoding.py +0 -0
  272. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/teacher/tokenizer_align.py +0 -0
  273. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/__init__.py +0 -0
  274. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/__init__.py +0 -0
  275. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/child/__init__.py +0 -0
  276. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/child/glue.py +0 -0
  277. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/child/runtime.py +0 -0
  278. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/lifecycle/__init__.py +0 -0
  279. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/lifecycle/finalize.py +0 -0
  280. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/lifecycle/ledger.py +0 -0
  281. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/core/lifecycle/step_timing.py +0 -0
  282. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/__init__.py +0 -0
  283. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/backend_common.py +0 -0
  284. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/opd_train.py +0 -0
  285. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/opd_train_runner.py +0 -0
  286. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/prompt_rows.py +0 -0
  287. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/rl_train.py +0 -0
  288. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/rl_train_runner.py +0 -0
  289. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/score_batcher.py +0 -0
  290. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/sft_train.py +0 -0
  291. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/entry/sft_train_runner.py +0 -0
  292. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/__init__.py +0 -0
  293. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/bridging/__init__.py +0 -0
  294. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/bridging/batching.py +0 -0
  295. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/bridging/bridge.py +0 -0
  296. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/bridging/failures.py +0 -0
  297. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/bridging/prompts.py +0 -0
  298. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/bridging/scoring.py +0 -0
  299. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/__init__.py +0 -0
  300. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/bridge.py +0 -0
  301. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/entry.py +0 -0
  302. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/multiturn.py +0 -0
  303. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/plugin.py +0 -0
  304. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/replay_guard.py +0 -0
  305. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/runtime.py +0 -0
  306. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/structured.py +0 -0
  307. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/child/tensors.py +0 -0
  308. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/multiturn/__init__.py +0 -0
  309. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/multiturn/media.py +0 -0
  310. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/multiturn/validation.py +0 -0
  311. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/__init__.py +0 -0
  312. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/failures.py +0 -0
  313. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/gkd.py +0 -0
  314. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/overrides.py +0 -0
  315. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/progress.py +0 -0
  316. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/prompt_preparation.py +0 -0
  317. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/protocol.py +0 -0
  318. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/reporting.py +0 -0
  319. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/state.py +0 -0
  320. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/opd/orchestration/validation.py +0 -0
  321. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/__init__.py +0 -0
  322. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/child/__init__.py +0 -0
  323. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/child/entry.py +0 -0
  324. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
  325. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/child/patches.py +0 -0
  326. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/child/plugin.py +0 -0
  327. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/launch/__init__.py +0 -0
  328. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/launch/checkpoints.py +0 -0
  329. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/launch/config.py +0 -0
  330. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/launch/inputs.py +0 -0
  331. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/launch/verl_config.py +0 -0
  332. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/rollout/__init__.py +0 -0
  333. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/rollout/identity.py +0 -0
  334. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/rollout/multi_turn.py +0 -0
  335. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/rollout/reward_module.py +0 -0
  336. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/rollout/scoring.py +0 -0
  337. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/rl/rollout/single_turn.py +0 -0
  338. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/sft/__init__.py +0 -0
  339. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/sft/child/entry.py +0 -0
  340. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/sft/child/plugin.py +0 -0
  341. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/sft/setup/__init__.py +0 -0
  342. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/sft/setup/checkpoints.py +0 -0
  343. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/train/sft/setup/config.py +0 -0
  344. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/__init__.py +0 -0
  345. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/capabilities.py +0 -0
  346. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/checkpoints.py +0 -0
  347. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/child_io.py +0 -0
  348. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/diagnostics.py +0 -0
  349. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/parallelism.py +0 -0
  350. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/parent_work.py +0 -0
  351. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/engine/worker/verl/process_census.py +0 -0
  352. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/__init__.py +0 -0
  353. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/loading/__init__.py +0 -0
  354. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/loading/adapter.py +0 -0
  355. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/loading/base.py +0 -0
  356. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/loading/loader.py +0 -0
  357. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/loading/pull.py +0 -0
  358. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/loading/staged.py +0 -0
  359. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/meta/__init__.py +0 -0
  360. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/meta/cache_security.py +0 -0
  361. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/meta/dataset_selection.py +0 -0
  362. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/meta/evaluations.py +0 -0
  363. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/meta/identity.py +0 -0
  364. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/meta/namespace_listing.py +0 -0
  365. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/package/__init__.py +0 -0
  366. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/package/direct_tokens.py +0 -0
  367. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/package/limits.py +0 -0
  368. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/envs/package/unpack.py +0 -0
  369. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/__init__.py +0 -0
  370. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/__init__.py +0 -0
  371. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/bootstrapping/__init__.py +0 -0
  372. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/bootstrapping/console.py +0 -0
  373. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/bootstrapping/pip.py +0 -0
  374. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/bootstrapping/processes.py +0 -0
  375. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/bootstrapping/secrets.py +0 -0
  376. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/host/__init__.py +0 -0
  377. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/host/deadline_sleep.py +0 -0
  378. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/host/failmark.py +0 -0
  379. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/host/hostlog.py +0 -0
  380. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/instances/__init__.py +0 -0
  381. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/instances/instance.py +0 -0
  382. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/instances/poll.py +0 -0
  383. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/instances/poll_instance.py +0 -0
  384. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/instances/provider.py +0 -0
  385. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/instances/terminal_artifacts.py +0 -0
  386. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/net/__init__.py +0 -0
  387. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/net/auth.py +0 -0
  388. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/net/deadline.py +0 -0
  389. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/net/http.py +0 -0
  390. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/_lifecycle/net/worker.py +0 -0
  391. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/artifacts/__init__.py +0 -0
  392. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/artifacts/hf.py +0 -0
  393. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/artifacts/preload_runpod.py +0 -0
  394. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/artifacts/weight_cache.py +0 -0
  395. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/__init__.py +0 -0
  396. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/allocator.py +0 -0
  397. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/base.py +0 -0
  398. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/fit_errors.py +0 -0
  399. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/preflight.py +0 -0
  400. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/realized.py +0 -0
  401. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/registry.py +0 -0
  402. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/core/sharding.py +0 -0
  403. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/__init__.py +0 -0
  404. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/client/__init__.py +0 -0
  405. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/client/api.py +0 -0
  406. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/client/auth.py +0 -0
  407. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/client/gpus.py +0 -0
  408. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/client/preflight.py +0 -0
  409. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/client/pricing.py +0 -0
  410. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/execution/__init__.py +0 -0
  411. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/execution/provider.py +0 -0
  412. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/jobs/__init__.py +0 -0
  413. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/jobs/builders.py +0 -0
  414. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/lambda_/jobs/reap.py +0 -0
  415. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/__init__.py +0 -0
  416. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/__init__.py +0 -0
  417. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/api.py +0 -0
  418. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/auth.py +0 -0
  419. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/cost.py +0 -0
  420. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/gpus.py +0 -0
  421. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/preflight.py +0 -0
  422. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/client/pricing.py +0 -0
  423. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/execution/__init__.py +0 -0
  424. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/execution/job_execution.py +0 -0
  425. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/execution/jobs.py +0 -0
  426. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/execution/polling.py +0 -0
  427. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/execution/provider.py +0 -0
  428. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/execution/resources.py +0 -0
  429. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/serverless/__init__.py +0 -0
  430. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/serverless/endpoints.py +0 -0
  431. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/runpod/serverless/naming.py +0 -0
  432. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/__init__.py +0 -0
  433. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/client/__init__.py +0 -0
  434. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/client/api.py +0 -0
  435. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/client/auth.py +0 -0
  436. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/client/preflight.py +0 -0
  437. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/client/pricing.py +0 -0
  438. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/client/result.py +0 -0
  439. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/execution/__init__.py +0 -0
  440. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/execution/provider.py +0 -0
  441. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/jobs/__init__.py +0 -0
  442. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/providers/vast/jobs/builders.py +0 -0
  443. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/py.typed +0 -0
  444. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/__init__.py +0 -0
  445. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/accounting/__init__.py +0 -0
  446. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/accounting/artifacts.py +0 -0
  447. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/accounting/costs.py +0 -0
  448. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/accounting/reconciliation.py +0 -0
  449. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/accounting/weight_cache.py +0 -0
  450. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/__init__.py +0 -0
  451. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/attempts.py +0 -0
  452. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/claim_lock.py +0 -0
  453. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/deadlines.py +0 -0
  454. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/preparation.py +0 -0
  455. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/status.py +0 -0
  456. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/lifecycle/submit.py +0 -0
  457. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/results/__init__.py +0 -0
  458. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/results/checkpoints.py +0 -0
  459. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/results/verified_revisions.py +0 -0
  460. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/__init__.py +0 -0
  461. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/attach.py +0 -0
  462. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/attach_reconcile.py +0 -0
  463. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/attempt_supervision.py +0 -0
  464. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/deploy.py +0 -0
  465. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/errors.py +0 -0
  466. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/lifecycle.py +0 -0
  467. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/recovery.py +0 -0
  468. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/retry_decision.py +0 -0
  469. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runner/supervise/transitions.py +0 -0
  470. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runtime_capsule/__init__.py +0 -0
  471. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runtime_capsule/build.py +0 -0
  472. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/runtime_capsule/manifest.py +0 -0
  473. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/schema/__init__.py +0 -0
  474. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/schema/fields.py +0 -0
  475. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/__init__.py +0 -0
  476. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/__init__.py +0 -0
  477. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/__main__.py +0 -0
  478. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/bootstrap.py +0 -0
  479. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/chat_stream.py +0 -0
  480. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/http.py +0 -0
  481. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/manifest.py +0 -0
  482. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/openai.py +0 -0
  483. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/app/progress.py +0 -0
  484. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/contract/__init__.py +0 -0
  485. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/contract/errors.py +0 -0
  486. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/contract/protocol.py +0 -0
  487. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/contract/provenance.py +0 -0
  488. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/contract/responses.py +0 -0
  489. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/contract/urls.py +0 -0
  490. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/__init__.py +0 -0
  491. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/_canonical.py +0 -0
  492. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/_serialization.py +0 -0
  493. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/_urls.py +0 -0
  494. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/credentials.py +0 -0
  495. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/planning.py +0 -0
  496. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/control/types.py +0 -0
  497. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/__init__.py +0 -0
  498. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/export.py +0 -0
  499. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/preflight.py +0 -0
  500. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/profiles.py +0 -0
  501. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/deployment/readiness.py +0 -0
  502. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/__init__.py +0 -0
  503. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/common/__init__.py +0 -0
  504. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/common/records.py +0 -0
  505. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/__init__.py +0 -0
  506. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/execution/__init__.py +0 -0
  507. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/execution/deployment.py +0 -0
  508. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/execution/lifecycle.py +0 -0
  509. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/execution/operations.py +0 -0
  510. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/execution/sdk.py +0 -0
  511. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/planning/__init__.py +0 -0
  512. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/planning/plan.py +0 -0
  513. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/planning/resources.py +0 -0
  514. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/readiness_checks/__init__.py +0 -0
  515. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/readiness_checks/probe.py +0 -0
  516. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/readiness_checks/readiness.py +0 -0
  517. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/provisioning/modal/readiness_checks/teardown.py +0 -0
  518. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/__init__.py +0 -0
  519. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/openai.py +0 -0
  520. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/runtime_support.py +0 -0
  521. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/streaming.py +0 -0
  522. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/text_scan.py +0 -0
  523. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/thinking.py +0 -0
  524. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/tool_calls.py +0 -0
  525. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/tool_template.py +0 -0
  526. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/transport.py +0 -0
  527. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/request/validation.py +0 -0
  528. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/__init__.py +0 -0
  529. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/adapters.py +0 -0
  530. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/engine.py +0 -0
  531. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/errors.py +0 -0
  532. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/multimodal.py +0 -0
  533. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/prompt.py +0 -0
  534. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/structured_outputs.py +0 -0
  535. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/tool_calls.py +0 -0
  536. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serve/runtime/types.py +0 -0
  537. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/__init__.py +0 -0
  538. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/__main__.py +0 -0
  539. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/asgi/__init__.py +0 -0
  540. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/asgi/cli.py +0 -0
  541. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/billing/__init__.py +0 -0
  542. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/billing/retry.py +0 -0
  543. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/__init__.py +0 -0
  544. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/ops/__init__.py +0 -0
  545. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/ops/reconcile.py +0 -0
  546. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/ops/repo_cleanup.py +0 -0
  547. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/ops/serving_resources.py +0 -0
  548. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/registry/__init__.py +0 -0
  549. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/registry/checkpoints.py +0 -0
  550. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/registry/environment_registry.py +0 -0
  551. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/registry/envs.py +0 -0
  552. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/registry/projects.py +0 -0
  553. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/teacher/__init__.py +0 -0
  554. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/teacher/broker.py +0 -0
  555. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/teacher/errors.py +0 -0
  556. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/domain/teacher/requests.py +0 -0
  557. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/__init__.py +0 -0
  558. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/db.py +0 -0
  559. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/deps.py +0 -0
  560. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/internal_client.py +0 -0
  561. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/locks.py +0 -0
  562. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/platform/runtime.py +0 -0
  563. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/__init__.py +0 -0
  564. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/envs.py +0 -0
  565. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/meta.py +0 -0
  566. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/serving.py +0 -0
  567. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/serving_chat.py +0 -0
  568. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/serving_completion.py +0 -0
  569. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/serving_revisions.py +0 -0
  570. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/serving_smoke.py +0 -0
  571. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/server/routes/teacher.py +0 -0
  572. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/__init__.py +0 -0
  573. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/app/__init__.py +0 -0
  574. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/__init__.py +0 -0
  575. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/__main__.py +0 -0
  576. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/artifacts.py +0 -0
  577. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/cli.py +0 -0
  578. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/metrics.py +0 -0
  579. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/protocol.py +0 -0
  580. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/runner.py +0 -0
  581. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/schedule.py +0 -0
  582. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/loadtest/schema.py +0 -0
  583. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/promotion/__init__.py +0 -0
  584. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/promotion/evidence.py +0 -0
  585. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/__init__.py +0 -0
  586. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/accounting/__init__.py +0 -0
  587. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/accounting/usage.py +0 -0
  588. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/accounting/usage_retry.py +0 -0
  589. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/__init__.py +0 -0
  590. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/boot.py +0 -0
  591. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/errors.py +0 -0
  592. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/lora_engine.py +0 -0
  593. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/lora_entries.py +0 -0
  594. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/model_config.py +0 -0
  595. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/engine/prequant_config.py +0 -0
  596. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/__init__.py +0 -0
  597. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/adapter_routes.py +0 -0
  598. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/body_limit.py +0 -0
  599. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/context.py +0 -0
  600. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/headers.py +0 -0
  601. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/inference_routes.py +0 -0
  602. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/router.py +0 -0
  603. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/http/routing.py +0 -0
  604. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/__init__.py +0 -0
  605. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/multimodal.py +0 -0
  606. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/openai_request.py +0 -0
  607. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/provenance.py +0 -0
  608. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/requests.py +0 -0
  609. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/responses.py +0 -0
  610. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/schemas.py +0 -0
  611. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/streaming.py +0 -0
  612. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/io/structured_outputs.py +0 -0
  613. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/__init__.py +0 -0
  614. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/access.py +0 -0
  615. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/lookup.py +0 -0
  616. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/persisted_columns.py +0 -0
  617. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/persistence.py +0 -0
  618. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/registration.py +0 -0
  619. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/registry.py +0 -0
  620. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/settings.py +0 -0
  621. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/supabase_rest.py +0 -0
  622. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/store/undeploy.py +0 -0
  623. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/stream_channel/__init__.py +0 -0
  624. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/stream_channel/_tasks.py +0 -0
  625. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/stream_channel/client.py +0 -0
  626. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/stream_channel/engine.py +0 -0
  627. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/serving/src/stream_channel/protocol.py +0 -0
  628. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/snapshot/__init__.py +0 -0
  629. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/snapshot/archive.py +0 -0
  630. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/teacher/__init__.py +0 -0
  631. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/teacher/limits.py +0 -0
  632. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/teacher/provider_status.py +0 -0
  633. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/flash/teacher/retry_contract.py +0 -0
  634. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/build_dev_dist.py +0 -0
  635. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/check_file_size.py +0 -0
  636. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/check_function_size.py +0 -0
  637. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/check_rollout_identity_actor.py +0 -0
  638. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/check_verl_pin_exists.py +0 -0
  639. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/qualify_serving_profile.py +0 -0
  640. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/scripts/scrub_history.sh +0 -0
  641. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/serve_launch.py +0 -0
  642. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/__init__.py +0 -0
  643. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/__init__.py +0 -0
  644. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/chat_provenance.py +0 -0
  645. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/chat_transport.py +0 -0
  646. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/managed_chat.py +0 -0
  647. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/profile.py +0 -0
  648. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/runner.py +0 -0
  649. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/server_api_plugin.py +0 -0
  650. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/source_snapshot.py +0 -0
  651. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/specs.py +0 -0
  652. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/teacher.py +0 -0
  653. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/vast.py +0 -0
  654. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/_helpers/wire_headers.py +0 -0
  655. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/capture_image_sft_processor_oracle.py +0 -0
  656. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/capture_qwen38_27b_metadata.py +0 -0
  657. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/conftest.py +0 -0
  658. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/fixtures/image_sft_processor_oracle.json +0 -0
  659. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/fixtures/qwen35_9b_target_metadata.json +0 -0
  660. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/fixtures/qwen38_27b_target_metadata.json +0 -0
  661. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/fixtures/vllm_023_moe_lora/lora_context.py.gz +0 -0
  662. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/fixtures/vllm_023_moe_lora/modular_kernel.py.gz +0 -0
  663. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/fixtures/vllm_023_moe_lora/triton_moe.py.gz +0 -0
  664. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/live/__init__.py +0 -0
  665. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/live/conftest.py +0 -0
  666. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/live/test_lambda_live.py +0 -0
  667. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/live/test_runpod_live.py +0 -0
  668. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/live/test_sft_thinking_render_live.py +0 -0
  669. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/live/test_vast_live.py +0 -0
  670. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/checkpoint_fixtures.py +0 -0
  671. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/conftest.py +0 -0
  672. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/hosted_loadtest_fake_scenario.json +0 -0
  673. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_base_model_serving.py +0 -0
  674. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_chat_auth.py +0 -0
  675. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_chat_authorizer.py +0 -0
  676. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_checkpoint_identity_repairs.py +0 -0
  677. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_checkpoint_model_validation.py +0 -0
  678. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_engine_error_status.py +0 -0
  679. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_fp8_config.py +0 -0
  680. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_immutable_engine.py +0 -0
  681. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_immutable_revisions.py +0 -0
  682. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_immutable_schemas.py +0 -0
  683. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_loadtest_artifacts.py +0 -0
  684. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_loadtest_metrics.py +0 -0
  685. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_loadtest_protocol.py +0 -0
  686. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_loadtest_runner.py +0 -0
  687. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_loadtest_schedule.py +0 -0
  688. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_loadtest_schema.py +0 -0
  689. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_modal_deploy_identity.py +0 -0
  690. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_modal_image_paths.py +0 -0
  691. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_model_config.py +0 -0
  692. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_multimodal.py +0 -0
  693. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_openai_stream_options.py +0 -0
  694. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_persistence.py +0 -0
  695. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_pre_first_disconnect.py +0 -0
  696. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_prequant_config.py +0 -0
  697. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_promotion_evidence.py +0 -0
  698. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_registry.py +0 -0
  699. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_registry_coverage.py +0 -0
  700. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_request_body_limit.py +0 -0
  701. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_router_coverage.py +0 -0
  702. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_router_edge_coverage.py +0 -0
  703. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_schemas_coverage.py +0 -0
  704. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_serve_reasoning_split.py +0 -0
  705. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_serve_thinking.py +0 -0
  706. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_settings.py +0 -0
  707. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_stream_channel.py +0 -0
  708. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_structured_outputs.py +0 -0
  709. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_structured_outputs_coverage.py +0 -0
  710. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving/test_supabase_rest_coverage.py +0 -0
  711. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving_conformance/__init__.py +0 -0
  712. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/serving_conformance/conftest.py +0 -0
  713. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_accounting_coverage.py +0 -0
  714. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_adapter_shard_completeness.py +0 -0
  715. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_agent_flash_cli_contract.py +0 -0
  716. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_algorithms.py +0 -0
  717. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_allocator.py +0 -0
  718. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_backend_common.py +0 -0
  719. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_backend_jobspec_contract.py +0 -0
  720. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_bake_kernel_cache.py +0 -0
  721. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_base_model_provenance.py +0 -0
  722. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_bootstrap_process_groups.py +0 -0
  723. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_build_context_contract.py +0 -0
  724. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cancel_remote.py +0 -0
  725. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_capture_qwen38_metadata.py +0 -0
  726. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_catalog_consistency.py +0 -0
  727. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_catalog_only_models.py +0 -0
  728. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_charge_pricing.py +0 -0
  729. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_chat_foundations.py +0 -0
  730. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_checkpoint_lifecycle.py +0 -0
  731. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_checkpoints.py +0 -0
  732. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_commands.py +0 -0
  733. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_commands_coverage.py +0 -0
  734. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_credential_shadowing.py +0 -0
  735. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_errors.py +0 -0
  736. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_estimate.py +0 -0
  737. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_gpus_flag.py +0 -0
  738. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_help.py +0 -0
  739. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_main_coverage.py +0 -0
  740. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_managed.py +0 -0
  741. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_render_coverage.py +0 -0
  742. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_render_theme.py +0 -0
  743. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_serve_deploy.py +0 -0
  744. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_serve_status.py +0 -0
  745. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_serve_undeploy.py +0 -0
  746. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_traces.py +0 -0
  747. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cli_wandb_warning.py +0 -0
  748. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_client.py +0 -0
  749. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_client_import_purity.py +0 -0
  750. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_client_stream_reads.py +0 -0
  751. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_config_env_vars.py +0 -0
  752. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_config_overrides.py +0 -0
  753. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_console_upload.py +0 -0
  754. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_controlled_experiment_repairs.py +0 -0
  755. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cost_analytical.py +0 -0
  756. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cost_currency.py +0 -0
  757. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cost_equation.py +0 -0
  758. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cost_estimate.py +0 -0
  759. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cost_hardware.py +0 -0
  760. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_cost_models.py +0 -0
  761. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_dev_channel.py +0 -0
  762. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_disk_gb.py +0 -0
  763. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_endpoint_name.py +0 -0
  764. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_cache_evict.py +0 -0
  765. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_delete.py +0 -0
  766. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_download.py +0 -0
  767. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_evaluations.py +0 -0
  768. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_git_auth.py +0 -0
  769. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_list_api.py +0 -0
  770. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_list_cli.py +0 -0
  771. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_list_hub.py +0 -0
  772. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_no_install.py +0 -0
  773. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_pull.py +0 -0
  774. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_pull_coverage.py +0 -0
  775. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_pull_loader_coverage.py +0 -0
  776. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_pull_managed_control_plane.py +0 -0
  777. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_push.py +0 -0
  778. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_rate_limit_resolve.py +0 -0
  779. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_ref_pinning.py +0 -0
  780. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_env_test.py +0 -0
  781. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_envs_coverage.py +0 -0
  782. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_export.py +0 -0
  783. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_flash_mvp.py +0 -0
  784. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_flash_worker.py +0 -0
  785. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_flashinfer_cache_dirs.py +0 -0
  786. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_freesolo_api_transport.py +0 -0
  787. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_fused_expert_warmstart.py +0 -0
  788. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_github_urlopen_retry.py +0 -0
  789. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_gpu_type_single_field.py +0 -0
  790. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_gpus.py +0 -0
  791. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_checkpoint_durability.py +0 -0
  792. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_params.py +0 -0
  793. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_process_census.py +0 -0
  794. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_resident_sizing.py +0 -0
  795. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_reward_batching.py +0 -0
  796. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_rollout_contract.py +0 -0
  797. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_grpo_rollout_identity.py +0 -0
  798. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_health_liveness.py +0 -0
  799. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_hf_retry.py +0 -0
  800. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_idle_endpoint_reaper.py +0 -0
  801. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_image_environment_capability.py +0 -0
  802. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_image_incremental_processor.py +0 -0
  803. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_image_sft_markers.py +0 -0
  804. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_image_sft_processor_parity.py +0 -0
  805. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_image_tokens.py +0 -0
  806. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_infisical_secrets.py +0 -0
  807. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_internal_client.py +0 -0
  808. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_jobs.py +0 -0
  809. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_kernel_cache.py +0 -0
  810. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_kernel_fingerprint.py +0 -0
  811. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_kv_util.py +0 -0
  812. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lambda_api_coverage.py +0 -0
  813. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_logging.py +0 -0
  814. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_login_perms.py +0 -0
  815. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lora_rank_coverage.py +0 -0
  816. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lora_rank_nested_rung.py +0 -0
  817. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lora_rank_preflight.py +0 -0
  818. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lora_targeting.py +0 -0
  819. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_lora_targeting_pinned_verl.py +0 -0
  820. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_loraplus_config.py +0 -0
  821. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_managed_config_fields.py +0 -0
  822. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_managed_hf_repo.py +0 -0
  823. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_metrics_schema_agent_contract.py +0 -0
  824. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_mig_guard.py +0 -0
  825. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_multi_gpu_gate.py +0 -0
  826. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_multimodal_training.py +0 -0
  827. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_named_reward_metrics.py +0 -0
  828. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_oom_escalate_gpu.py +0 -0
  829. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd.py +0 -0
  830. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd_limits.py +0 -0
  831. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd_multiturn_eos_boundary.py +0 -0
  832. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd_multiturn_failure_exit.py +0 -0
  833. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd_replay_guard.py +0 -0
  834. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd_resume_safety.py +0 -0
  835. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_opd_train.py +0 -0
  836. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_orchestrator_flash.py +0 -0
  837. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_packing.py +0 -0
  838. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_packing_coverage.py +0 -0
  839. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_parasail_teacher.py +0 -0
  840. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_persisted_spec_envelope.py +0 -0
  841. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_poll_helpers.py +0 -0
  842. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_preflight.py +0 -0
  843. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_projects.py +0 -0
  844. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_prompt_budget.py +0 -0
  845. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_provider_preflight_coverage.py +0 -0
  846. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_provider_routing.py +0 -0
  847. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_provider_teardown_robustness.py +0 -0
  848. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_providers_symmetry.py +0 -0
  849. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_realized_cost.py +0 -0
  850. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_repo_cleanup.py +0 -0
  851. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_resolve_params_b.py +0 -0
  852. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_resume_on_retry.py +0 -0
  853. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_retry_decision.py +0 -0
  854. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_rl_train.py +0 -0
  855. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_rollout_samples.py +0 -0
  856. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_runmgmt.py +0 -0
  857. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_runpod_api_delete.py +0 -0
  858. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_runpod_key_fingerprint.py +0 -0
  859. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_runpod_key_waterfall.py +0 -0
  860. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_runtime_capsule.py +0 -0
  861. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_app_bootstrap_http.py +0 -0
  862. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_app_manifest.py +0 -0
  863. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_app_packaging.py +0 -0
  864. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_app_progress.py +0 -0
  865. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_chat_transport.py +0 -0
  866. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_control.py +0 -0
  867. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_docs.py +0 -0
  868. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_modal_contract_lock.py +0 -0
  869. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_modal_teardown_identity.py +0 -0
  870. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_profile_qualification.py +0 -0
  871. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_profiles.py +0 -0
  872. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_provisioning_common.py +0 -0
  873. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_provisioning_modal.py +0 -0
  874. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_reasoning_content.py +0 -0
  875. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_runtime_adapters.py +0 -0
  876. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serve_runtime_types.py +0 -0
  877. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_checkpoints_coverage.py +0 -0
  878. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_db.py +0 -0
  879. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_envs_coverage.py +0 -0
  880. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_locks_coverage.py +0 -0
  881. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_managed_chat_requests.py +0 -0
  882. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_serving_resources.py +0 -0
  883. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_server_standalone.py +0 -0
  884. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serving_conformance_gate.py +0 -0
  885. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serving_context_preflight.py +0 -0
  886. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_serving_schema_coverage.py +0 -0
  887. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_chunked_nll.py +0 -0
  888. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_example_selection.py +0 -0
  889. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_gc_off.py +0 -0
  890. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_max_context.py +0 -0
  891. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_step_floor.py +0 -0
  892. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_train.py +0 -0
  893. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_sft_workload.py +0 -0
  894. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_source_attestation_flow.py +0 -0
  895. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_source_snapshot.py +0 -0
  896. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_spec_and_validation.py +0 -0
  897. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_spec_contract_bytes.py +0 -0
  898. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_staged_environment.py +0 -0
  899. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_step_floor.py +0 -0
  900. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_step_metrics.py +0 -0
  901. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_step_timing.py +0 -0
  902. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_structured_outputs.py +0 -0
  903. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_teacher_broker.py +0 -0
  904. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_teacher_encoding_contract.py +0 -0
  905. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_terminal_artifacts.py +0 -0
  906. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_thinking_config.py +0 -0
  907. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_tool_call_exact_parsing.py +0 -0
  908. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_train_context_preflight.py +0 -0
  909. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_training_controls.py +0 -0
  910. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_type_comment_prose.py +0 -0
  911. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vast_api.py +0 -0
  912. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vast_api_coverage.py +0 -0
  913. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vast_offers.py +0 -0
  914. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vast_provider_coverage.py +0 -0
  915. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vast_result.py +0 -0
  916. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vast_runner.py +0 -0
  917. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_verified_revisions.py +0 -0
  918. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_verifiers.py +0 -0
  919. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_verl_checkpoint_export.py +0 -0
  920. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_verl_child_plugins.py +0 -0
  921. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_verl_silence_watchdog.py +0 -0
  922. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_version.py +0 -0
  923. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vl_warmstart_adapter_keys.py +0 -0
  924. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vllm_moe_lora_backport.py +0 -0
  925. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_vram_architecture.py +0 -0
  926. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_wandb_link.py +0 -0
  927. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_wandb_naming.py +0 -0
  928. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_warmstart_adapter_download.py +0 -0
  929. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_warmstart_cross_repo.py +0 -0
  930. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_warmstart_error_attribution.py +0 -0
  931. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_warmstart_image_adapters.py +0 -0
  932. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_weight_cache.py +0 -0
  933. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_worker_dryrun.py +0 -0
  934. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_worker_hardexit.py +0 -0
  935. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_worker_image.py +0 -0
  936. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_worker_init_heartbeat.py +0 -0
  937. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_worker_stack.py +0 -0
  938. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_worker_thinking.py +0 -0
  939. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_workload_profile.py +0 -0
  940. {freesolo_flash_dev-1.2.131 → freesolo_flash_dev-1.2.133}/tests/test_zero2_sharding_gate.py +0 -0
@@ -232,7 +232,7 @@ jobs:
232
232
  sudo docker image prune -af || true
233
233
  df -h /
234
234
 
235
- - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
235
+ - uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
236
236
 
237
237
  - name: Log in to GHCR
238
238
  uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
@@ -255,7 +255,7 @@ jobs:
255
255
  fi
256
256
 
257
257
  - name: Re-layer cache onto the fresh base (no GPU)
258
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
258
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
259
259
  with:
260
260
  context: .
261
261
  file: docker/Dockerfile.kernelcache.relayer
@@ -195,7 +195,7 @@ jobs:
195
195
 
196
196
  - name: Install uv
197
197
  if: steps.gate.outputs.run == 'true'
198
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
198
+ uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
199
199
  with:
200
200
  # pin the installed binary as well as the action implementation.
201
201
  version: "0.12.5"
@@ -237,7 +237,7 @@ jobs:
237
237
  sudo docker image prune -af || true
238
238
  df -h /
239
239
 
240
- - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
240
+ - uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
241
241
  if: steps.gate.outputs.run == 'true'
242
242
 
243
243
  # thin layer FROM the SAME base the warmup ran inside -> the cache toolchain always matches the
@@ -245,7 +245,7 @@ jobs:
245
245
  # published base and bake a cache that silently won't load). GHCR auth from the login step above.
246
246
  - name: Build + push baked per-sm image (thin layer on the warmed base)
247
247
  if: steps.gate.outputs.run == 'true'
248
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
248
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
249
249
  with:
250
250
  context: .
251
251
  file: docker/Dockerfile.kernelcache
@@ -33,7 +33,7 @@ jobs:
33
33
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
34
34
 
35
35
  - name: Install uv
36
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
36
+ uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
37
37
  with:
38
38
  # pin the installed binary as well as the action implementation.
39
39
  version: "0.12.5"
@@ -60,8 +60,7 @@ jobs:
60
60
  - name: Function size check
61
61
  run: uv run python scripts/check_function_size.py
62
62
 
63
- # Keep the source hierarchy reviewable: no directory may exceed ten tracked files, and package
64
- # roots may mix subdirectories only with the three required marker files.
63
+ # Package roots may mix subdirectories only with semantic package marker files.
65
64
  - name: Source layout check
66
65
  run: uv run python scripts/check_source_layout.py
67
66
 
@@ -163,7 +162,7 @@ jobs:
163
162
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
164
163
 
165
164
  - name: Install uv
166
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
165
+ uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
167
166
  with:
168
167
  # pin the installed binary as well as the action implementation.
169
168
  version: "0.12.5"
@@ -98,7 +98,7 @@ jobs:
98
98
  with:
99
99
  python-version: "3.12"
100
100
 
101
- - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
101
+ - uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
102
102
  if: steps.gate.outputs.deploy == 'true'
103
103
  with:
104
104
  # pin the installed binary as well as the action implementation.
@@ -114,7 +114,7 @@ jobs:
114
114
  # pinned to the exact client pyproject declares; see deploy-modal.yml for why an
115
115
  # unbounded range is unsafe for the deploy path.
116
116
  # exact pins keep the deploy client bootstrap reproducible across runner image changes.
117
- uv pip install --system "modal==1.5.4" "python-dotenv==1.2.3"
117
+ uv pip install --system "modal==1.6.1" "python-dotenv==1.2.3"
118
118
 
119
119
  - name: Verify development deployment inputs
120
120
  if: steps.gate.outputs.deploy == 'true'
@@ -11,6 +11,7 @@ name: Deploy serving Modal app
11
11
  # FREESOLO_INTERNAL_KEY - shared platform internal key (backend + serving)
12
12
  # PLATFORM_BACKEND_URL - platform backend base URL
13
13
  # SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY - serving startup hydration (durable adapter registry)
14
+ # required Actions variable: SERVING_CANARY_ORG_ID - existing internal organization billed for probes
14
15
  # modal_app.py reads these from the environment (load_dotenv only supplements os.environ), so no
15
16
  # .env file is written in CI. the "Verify required runtime secrets" step below hard-fails the deploy
16
17
  # if a required secret is absent, preventing a broken production config with external chat failures,
@@ -40,13 +41,13 @@ jobs:
40
41
  if: github.ref == 'refs/heads/main'
41
42
  runs-on: ubuntu-latest
42
43
  # the job's own bounded waits now sum well past the old 30: two 300s readiness polls, the remote
43
- # image build, a 420s canary that pays a GPU cold start, a 180s accounting deadline, and on the
44
- # failure path a SECOND `modal deploy` plus a 300s restore poll. 60 minutes clears that worst
44
+ # image build, a 3360s canary that pays a GPU cold start, a 180s accounting deadline, and on the
45
+ # failure path a SECOND `modal deploy` plus a 300s restore poll. 90 minutes clears that worst
45
46
  # case with room while keeping a wedged deploy from holding the runner for GitHub's 6-hour
46
47
  # default. the headroom is specifically for the rollback: a job killed partway through the
47
48
  # restore leaves the broken release live with no second attempt, which is the one outcome this
48
49
  # workflow exists to prevent.
49
- timeout-minutes: 60
50
+ timeout-minutes: 90
50
51
  # serialize serving deploys across runs because each deploy mutates the live app. github can still
51
52
  # replace a pending run, so the gate compares against the sha reported by the deployed app rather
52
53
  # than assuming every push predecessor was deployed.
@@ -75,6 +76,7 @@ jobs:
75
76
  # (empty => default *.modal.run url), so non-prod/fork/local workspaces stay deployable. This
76
77
  # domain is verified in the production Modal workspace, so prod keeps serving on serve.freesolo.co.
77
78
  SERVING_CUSTOM_DOMAIN: serve.freesolo.co
79
+ SERVING_CANARY_ORG_ID: ${{ vars.SERVING_CANARY_ORG_ID }}
78
80
 
79
81
  steps:
80
82
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -168,7 +170,7 @@ jobs:
168
170
  # pinned to the exact client pyproject declares and the provisioning path was validated
169
171
  # against: deploy behaviour (app lifecycle, tags, lookup) is client-version sensitive, so
170
172
  # an unbounded range lets a future release change deploys with no diff here.
171
- python -m pip install "modal==1.5.4" "python-dotenv==1.2.3"
173
+ python -m pip install "modal==1.6.1" "python-dotenv==1.2.3"
172
174
 
173
175
  - name: Verify Modal auth is configured
174
176
  if: steps.gate.outputs.deploy == 'true'
@@ -198,7 +200,7 @@ jobs:
198
200
  if [ -z "$SUPABASE_SERVICE_ROLE_KEY" ]; then
199
201
  missing="$missing SUPABASE_SERVICE_ROLE_KEY"
200
202
  fi
201
- required="FREESOLO_INTERNAL_KEY PLATFORM_BACKEND_URL"
203
+ required="FREESOLO_INTERNAL_KEY PLATFORM_BACKEND_URL SERVING_CANARY_ORG_ID"
202
204
  for name in $required; do
203
205
  # indirect expansion: the secrets are exported into the env via the job-level `env:` block.
204
206
  if [ -z "${!name}" ]; then
@@ -206,10 +208,21 @@ jobs:
206
208
  fi
207
209
  done
208
210
  if [ -n "$missing" ]; then
209
- echo "::error::Refusing to deploy serving to prod: missing required secret(s):${missing}. Set them in repo Settings -> Secrets and variables -> Actions."
211
+ echo "::error::Refusing to deploy serving to prod: missing required setting(s):${missing}. Set them in repo Settings -> Secrets and variables -> Actions."
210
212
  exit 1
211
213
  fi
212
- echo "All required serving runtime secrets are present."
214
+ # reject malformed attribution before replacing the live app.
215
+ python - <<'PY'
216
+ import os
217
+ import sys
218
+ import uuid
219
+
220
+ try:
221
+ uuid.UUID(os.environ["SERVING_CANARY_ORG_ID"].strip())
222
+ except ValueError:
223
+ sys.exit("::error::SERVING_CANARY_ORG_ID must be an existing internal organization UUID.")
224
+ PY
225
+ echo "All required serving runtime secrets and canary settings are present."
213
226
 
214
227
  - name: Wait for production adapter schema readiness
215
228
  if: steps.gate.outputs.deploy == 'true'
@@ -411,6 +424,7 @@ jobs:
411
424
  # durably. this step is the only thing standing between "the process booted" and "the
412
425
  # release can actually serve", so a failure here must not be promoted.
413
426
  SERVING_BASE_URL: https://serve.freesolo.co
427
+ SERVING_CANARY_ORG_ID: ${{ vars.SERVING_CANARY_ORG_ID }}
414
428
  FREESOLO_INTERNAL_KEY: ${{ secrets.FREESOLO_INTERNAL_KEY }}
415
429
  SUPABASE_URL: ${{ secrets.SUPABASE_URL }}
416
430
  SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
@@ -456,10 +470,20 @@ jobs:
456
470
  echo "Promotion failed; restoring ${PREVIOUS_SHA}."
457
471
  git checkout --quiet --force "$PREVIOUS_SHA"
458
472
 
473
+ # resolve the entrypoint in the restored tree, including releases before the source move.
474
+ if [ -f flash/serving/app/modal_app.py ]; then
475
+ rollback_app=flash/serving/app/modal_app.py
476
+ elif [ -f flash/serving/modal_app.py ]; then
477
+ rollback_app=flash/serving/modal_app.py
478
+ else
479
+ echo "::error::Previous release has no supported serving entrypoint. Restore production manually."
480
+ exit 1
481
+ fi
482
+
459
483
  # the restored app must report the RESTORED sha, deployed from the restored tree.
460
484
  FREESOLO_DEPLOYMENT_SHA="$PREVIOUS_SHA" \
461
485
  FREESOLO_DEPLOYMENT_ID="$ROLLBACK_DEPLOYMENT_ID" \
462
- modal deploy flash/serving/app/modal_app.py
486
+ modal deploy "$rollback_app"
463
487
 
464
488
  response_file="$(mktemp)"
465
489
  trap 'rm -f "$response_file"' EXIT
@@ -136,7 +136,7 @@ jobs:
136
136
 
137
137
  - name: Install uv
138
138
  if: steps.decide.outputs.publish == 'true'
139
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
139
+ uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
140
140
  with:
141
141
  # pin the installed binary as well as the action implementation.
142
142
  version: "0.12.5"
@@ -43,7 +43,7 @@ jobs:
43
43
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
44
44
 
45
45
  - name: Set up Docker Buildx
46
- uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
46
+ uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
47
47
 
48
48
  - name: Log in to GHCR
49
49
  uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
@@ -98,7 +98,7 @@ jobs:
98
98
  # published here still runs on a plain --env-file. The Dockerfile defaults the argument
99
99
  # to false, so `docker build .` from a checkout stays vendor-free.
100
100
  - name: Build and push
101
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
101
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
102
102
  with:
103
103
  context: .
104
104
  file: ./Dockerfile
@@ -150,7 +150,7 @@ jobs:
150
150
 
151
151
  - name: Set up Docker Buildx
152
152
  if: steps.gate.outputs.publish == 'true'
153
- uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
153
+ uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
154
154
 
155
155
  - name: Log in to GHCR
156
156
  if: steps.gate.outputs.publish == 'true'
@@ -184,7 +184,7 @@ jobs:
184
184
  - name: Build and push
185
185
  if: steps.gate.outputs.publish == 'true'
186
186
  id: build
187
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
187
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
188
188
  with:
189
189
  context: .
190
190
  file: ./Dockerfile.serve
@@ -202,7 +202,7 @@ jobs:
202
202
 
203
203
  - name: Install uv
204
204
  if: github.event_name == 'workflow_dispatch' || steps.changes.outputs.package_changed == 'true'
205
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
205
+ uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
206
206
  with:
207
207
  # pin the installed binary as well as the action implementation.
208
208
  version: "0.12.5"
@@ -129,7 +129,7 @@ jobs:
129
129
  sudo docker image prune -af || true
130
130
  df -h /
131
131
 
132
- - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
132
+ - uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
133
133
 
134
134
  - name: Log in to GHCR
135
135
  uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
@@ -140,7 +140,7 @@ jobs:
140
140
 
141
141
  - name: Build + push worker image
142
142
  id: image
143
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
143
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
144
144
  with:
145
145
  context: .
146
146
  file: Dockerfile.worker
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: freesolo-flash-dev
3
- Version: 1.2.131
3
+ Version: 1.2.133
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
@@ -29,7 +29,7 @@ Requires-Dist: pillow>=11; extra == 'dev'
29
29
  Requires-Dist: pytest>=9.0.3; extra == 'dev'
30
30
  Requires-Dist: referencing>=0.28.4; extra == 'dev'
31
31
  Requires-Dist: regex>=2024.11.6; extra == 'dev'
32
- Requires-Dist: ruff<0.17,>=0.6; extra == 'dev'
32
+ Requires-Dist: ruff<0.18,>=0.6; extra == 'dev'
33
33
  Requires-Dist: runpod-flash<2,>=1.19; extra == 'dev'
34
34
  Requires-Dist: tiktoken>=0.12; extra == 'dev'
35
35
  Requires-Dist: tokenizers>=0.22; extra == 'dev'
@@ -63,7 +63,7 @@ Requires-Dist: freesolo>=0.4.2; extra == 'server'
63
63
  Requires-Dist: httpx>=0.27; extra == 'server'
64
64
  Requires-Dist: huggingface-hub>=1.2.0; extra == 'server'
65
65
  Requires-Dist: jsonschema>=4.23; extra == 'server'
66
- Requires-Dist: modal==1.5.4; extra == 'server'
66
+ Requires-Dist: modal==1.6.1; extra == 'server'
67
67
  Requires-Dist: pillow>=11; extra == 'server'
68
68
  Requires-Dist: referencing>=0.28.4; extra == 'server'
69
69
  Requires-Dist: regex>=2024.11.6; extra == 'server'
@@ -73,7 +73,7 @@ Requires-Dist: uvicorn<1,>=0.52; extra == 'server'
73
73
  Provides-Extra: serving
74
74
  Requires-Dist: fastapi<1,>=0.136; extra == 'serving'
75
75
  Requires-Dist: httpx>=0.27.0; extra == 'serving'
76
- Requires-Dist: modal==1.5.4; extra == 'serving'
76
+ Requires-Dist: modal==1.6.1; extra == 'serving'
77
77
  Requires-Dist: orjson>=3.10.0; extra == 'serving'
78
78
  Requires-Dist: pillow>=11; extra == 'serving'
79
79
  Requires-Dist: pydantic-settings>=2.6.0; extra == 'serving'
@@ -0,0 +1,136 @@
1
+ """one strict reader for the bytes of an ``adapter_config.json``.
2
+
3
+ Three boundaries admit an adapter by reading this one file, and all three are gated on the same
4
+ question: do these exact bytes describe a LoRA adapter that the engine about to load them can
5
+ actually serve? Answering it separately let them drift -- customer-owned resolution rejected a
6
+ config that hosted admission accepted, so the same artifact was refused before provisioning on one
7
+ path and refused inside the paid container on the other.
8
+
9
+ Every rule here is decidable from the config alone. Nothing in this module reads the hub, the
10
+ filesystem, or a provider, so a verdict costs a caller nothing beyond the bytes it already holds.
11
+ That is why it sits beside the rank and target rules rather than under a deployment path: the
12
+ GPU-side materializer revalidates a cache entry it already holds, and it needs the same verdict
13
+ without importing anything that resolves or deploys.
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ import json
19
+ from dataclasses import dataclass
20
+ from typing import Any
21
+
22
+ from flash.adapters.lora_rank import rank_from_adapter_config
23
+ from flash.serve.contract.protocol import reject_non_finite_json_constant
24
+
25
+
26
+ class AdapterConfigError(ValueError):
27
+ """these ``adapter_config.json`` bytes cannot describe a servable LoRA adapter."""
28
+
29
+
30
+ @dataclass(frozen=True)
31
+ class DeclaredAdapterConfig:
32
+ """what an adapter stamps about itself, after every deterministic rule has passed."""
33
+
34
+ config: dict[str, Any]
35
+ lora_rank: int
36
+ base_model: str
37
+ base_revision: str | None
38
+
39
+
40
+ class _DuplicateConfigKey(AdapterConfigError):
41
+ """raised through ``json.loads``, so it stays a ValueError for any caller expecting one."""
42
+
43
+
44
+ def parse_declared_adapter_config(raw: bytes, *, source: str) -> DeclaredAdapterConfig:
45
+ """read one adapter's declared provenance, or refuse the bytes.
46
+
47
+ ``source`` names the file in every message, so a caller that fetched the config from the hub and
48
+ one that read it off disk both report a location the reader can go look at.
49
+ """
50
+
51
+ config = _strict_object(raw, source=source)
52
+ try:
53
+ rank = rank_from_adapter_config(config, source=source)
54
+ except ValueError as exc:
55
+ raise AdapterConfigError(f"{source} declares no usable lora rank: {exc}") from exc
56
+
57
+ peft_type = config.get("peft_type")
58
+ if peft_type != "LORA":
59
+ raise AdapterConfigError(f"{source} peft_type must be LORA, not {peft_type!r}")
60
+ task_type = config.get("task_type")
61
+ if task_type not in {None, "CAUSAL_LM"}:
62
+ raise AdapterConfigError(
63
+ f"{source} task_type must be absent or CAUSAL_LM, not {task_type!r}"
64
+ )
65
+ modules_to_save = config.get("modules_to_save")
66
+ if modules_to_save is not None and modules_to_save != []:
67
+ raise AdapterConfigError(f"{source} modules_to_save adapters are not supported")
68
+
69
+ # the engine compares `base_model_name_or_path` for equality, so an absent, empty, or
70
+ # non-string one can never match and the deployment is already doomed. skipping the check
71
+ # instead deferred a certain failure until after a provider had allocated and started billing.
72
+ base_model = _text(config, "base_model_name_or_path", source=source)
73
+ if base_model is None:
74
+ raise AdapterConfigError(f"{source} declares no base_model_name_or_path")
75
+ revision = config.get("revision")
76
+ if revision is not None and not isinstance(revision, str):
77
+ raise AdapterConfigError(f"{source} revision must be a string when present")
78
+ return DeclaredAdapterConfig(
79
+ config=config,
80
+ lora_rank=rank,
81
+ base_model=base_model,
82
+ base_revision=_text(config, "revision", source=source),
83
+ )
84
+
85
+
86
+ def _strict_object(raw: bytes, *, source: str) -> dict[str, Any]:
87
+ """decode exactly the way the gpu-side materializer does, from the same bytes.
88
+
89
+ handing the bytes straight to ``json.load`` instead lets it auto-detect utf-16 and accept a bom
90
+ (rfc 4627), so a config the container refuses outright parsed cleanly at admission -- and the
91
+ deployment failed only after the provider resources had been allocated. duplicate keys are the
92
+ same case: plain decoding takes the last value, so a config declaring ``r`` twice would be
93
+ admitted against one rank and then rejected inside the container this check exists to avoid
94
+ paying for.
95
+ """
96
+
97
+ try:
98
+ config = json.loads(
99
+ raw.decode("utf-8"),
100
+ object_pairs_hook=_reject_duplicate_keys,
101
+ parse_constant=reject_non_finite_json_constant,
102
+ )
103
+ except _DuplicateConfigKey as exc:
104
+ raise AdapterConfigError(f"{source} contains a duplicate key") from exc
105
+ except (UnicodeDecodeError, ValueError) as exc:
106
+ raise AdapterConfigError(f"{source} is not readable json") from exc
107
+ if not isinstance(config, dict):
108
+ raise AdapterConfigError(f"{source} must be a json object")
109
+ return config
110
+
111
+
112
+ def _reject_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]:
113
+ result: dict[str, Any] = {}
114
+ for key, value in pairs:
115
+ if key in result:
116
+ raise _DuplicateConfigKey(f"{key!r} appears twice")
117
+ result[key] = value
118
+ return result
119
+
120
+
121
+ def _text(config: dict[str, Any], key: str, *, source: str) -> str | None:
122
+ """read a config string exactly as the engine will compare it.
123
+
124
+ the engine compares these raw bytes for equality, so a value that matches only after stripping
125
+ is admitted here and then rejected inside the paid container -- the outcome this reader exists
126
+ to prevent. normalizing the padding away instead would be worse for ``revision``, which the
127
+ resolver *adopts* into the immutable manifest: that would launder a padded string into the record
128
+ rather than surface it. rejecting keeps the admission-time and container-time verdicts identical.
129
+ """
130
+
131
+ value = config.get(key)
132
+ if not isinstance(value, str):
133
+ return None
134
+ if value != value.strip():
135
+ raise AdapterConfigError(f"{source} {key} has surrounding whitespace: {value!r}")
136
+ return value or None
@@ -484,9 +484,9 @@ def _humanize_ts(value) -> str | None:
484
484
  """Format an epoch seconds value as a compact UTC timestamp, leaving non-numbers alone."""
485
485
  if not isinstance(value, (int, float)) or value <= 0:
486
486
  return None
487
- import datetime
487
+ import datetime as dt
488
488
 
489
- return datetime.datetime.fromtimestamp(value, datetime.UTC).strftime("%Y-%m-%d %H:%M UTC")
489
+ return dt.datetime.fromtimestamp(value, dt.UTC).strftime("%Y-%m-%d %H:%M UTC")
490
490
 
491
491
 
492
492
  def gpu_label(spec: dict, remote: dict) -> str:
@@ -189,96 +189,64 @@ def _selected_dataset_path(base_dir: Path, params: dict[str, Any]) -> Path:
189
189
  )
190
190
 
191
191
 
192
- def _read_jsonl_rows(path: Path, *, max_examples: int) -> tuple[int, list[dict[str, Any]]]:
193
- source_examples = 0
194
- values = []
195
- missing = []
196
- with path.open(encoding="utf-8") as handle:
197
- for line in handle:
198
- if not line.strip():
199
- continue
200
- row = json.loads(line)
201
- if not isinstance(row, dict):
202
- raise TypeError("dataset row is not an object")
203
- if _CANONICAL_INPUT_KEY not in row and len(missing) < 10:
204
- missing.append(source_examples)
205
- source_examples += 1
206
- if max_examples <= 0 or len(values) < max_examples:
207
- values.append(row)
208
- if missing:
209
- raise ValueError(
210
- "Freesolo dataset records must contain an input field; missing at row indexes "
211
- f"{missing}"
212
- )
213
- return source_examples, values
214
-
215
-
216
192
  def _validate_dataset_rows(
217
193
  values: object,
218
194
  *,
219
195
  invalid_message: str,
220
- empty_message: str,
221
196
  max_examples: int,
197
+ empty_message: str | None = None,
222
198
  ) -> tuple[int, list[dict[str, Any]]]:
223
199
  if not isinstance(values, list) or not all(isinstance(row, dict) for row in values):
224
200
  raise PackagedDatasetUnavailable(invalid_message)
225
- source_examples = len(values)
226
- missing = [index for index, row in enumerate(values) if _CANONICAL_INPUT_KEY not in row]
201
+ rows = values
202
+ source_examples = len(rows)
203
+ missing = [
204
+ index
205
+ for index, row in enumerate(rows)
206
+ if _CANONICAL_INPUT_KEY not in row or row.get(_CANONICAL_INPUT_KEY) is None
207
+ ]
227
208
  if missing:
228
209
  raise ValueError(
229
210
  "Freesolo dataset records must contain an input field; missing at row indexes "
230
211
  f"{missing[:10]}"
231
212
  )
232
- selected = values[:max_examples] if max_examples > 0 else values
233
- if not selected:
213
+ selected = rows[:max_examples] if max_examples > 0 else rows
214
+ if not selected and empty_message is not None:
234
215
  raise PackagedDatasetUnavailable(empty_message)
235
216
  return source_examples, [dict(row) for row in selected]
236
217
 
237
218
 
238
219
  def _read_dataset_rows(path: Path, *, max_examples: int) -> tuple[int, list[dict[str, Any]]]:
220
+ from freesolo.datasets.records import load_records
221
+
222
+ invalid_message = (
223
+ f"environment dataset file {path.name!r} must contain JSON object or string rows. Add a "
224
+ "valid dataset/train.jsonl to the environment package."
225
+ )
239
226
  try:
240
227
  if path.stat().st_size > _MAX_PROFILE_DATASET_BYTES:
241
228
  raise PackagedDatasetUnavailable(
242
229
  f"environment dataset file {path.name!r} exceeds the 32 MiB control-plane profiling "
243
230
  "limit. Reduce the packaged training dataset."
244
231
  )
245
- if path.suffix.lower() == ".jsonl":
246
- source_examples, values = _read_jsonl_rows(path, max_examples=max_examples)
247
- elif path.suffix.lower() == ".json":
248
- loaded = json.loads(path.read_text(encoding="utf-8"))
249
- values = loaded.get("records") if isinstance(loaded, dict) else loaded
250
- source_examples, values = _validate_dataset_rows(
251
- values,
252
- invalid_message=(
253
- f"environment dataset file {path.name!r} must contain JSON object rows. Add a "
254
- "valid dataset/train.jsonl to the environment package."
255
- ),
256
- empty_message=(
257
- f"environment dataset file {path.name!r} contains no rows. Add training rows to "
258
- "dataset/train.jsonl in the environment package."
259
- ),
260
- max_examples=max_examples,
261
- )
262
- else:
263
- raise ValueError("dataset file must end in .jsonl or .json")
232
+ if path.suffix.lower() not in {".jsonl", ".json"}:
233
+ raise PackagedDatasetUnavailable("dataset file must end in .jsonl or .json")
234
+ # use the worker's decoder; it materializes all rows before profiling selects a prefix.
235
+ rows = load_records(path)
264
236
  except PackagedDatasetUnavailable:
265
237
  raise
266
- except TypeError as exc:
267
- raise PackagedDatasetUnavailable(
268
- f"environment dataset file {path.name!r} must contain JSON object rows. Add a valid "
269
- "dataset/train.jsonl to the environment package."
270
- ) from exc
271
238
  except (OSError, UnicodeError, json.JSONDecodeError) as exc:
272
239
  raise PackagedDatasetUnavailable(
273
240
  f"environment dataset file {path.name!r} is not readable JSON. Add a valid "
274
241
  "dataset/train.jsonl to the environment package."
275
242
  ) from exc
276
- if not values:
277
- raise PackagedDatasetUnavailable(
278
- f"environment dataset file {path.name!r} contains no rows. Add training rows to "
279
- "dataset/train.jsonl in the environment package."
280
- )
281
- return source_examples, [dict(row) for row in values]
243
+ except (TypeError, ValueError) as exc:
244
+ raise PackagedDatasetUnavailable(invalid_message) from exc
245
+ return _validate_dataset_rows(
246
+ rows,
247
+ invalid_message=invalid_message,
248
+ max_examples=max_examples,
249
+ )
282
250
 
283
251
 
284
252
  def profile_packaged_sft_dataset(