freesolo-flash-dev 1.4.11__tar.gz → 1.4.13__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 (1080) hide show
  1. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/bake-kernel-cache.yml +31 -24
  2. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/CHANGELOG.md +4 -0
  3. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/PKG-INFO +1 -1
  4. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/bake_kernel_cache.py +74 -39
  5. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/bake_sandbox_entry.py +16 -24
  6. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docs/azure-artifacts.md +31 -44
  7. freesolo_flash_dev-1.4.13/docs/azure-migration-evidence-20261102.json +17 -0
  8. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/adapters/artifacts.py +1 -1
  9. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/adapters/config.py +2 -2
  10. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/adapters/lora_rank.py +4 -8
  11. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/artifacts/api.py +16 -10
  12. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/artifacts/storage.py +12 -5
  13. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/setup.py +2 -2
  14. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/serve_parser.py +10 -9
  15. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/scaffold/TRAINING.md +1 -1
  16. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/core/spec.py +1 -1
  17. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/entry/worker.py +3 -3
  18. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/artifacts.py +7 -5
  19. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/heartbeat.py +9 -9
  20. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/model/adapter.py +4 -4
  21. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/sft_train.py +2 -2
  22. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/sft_train_runner.py +3 -3
  23. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/setup/checkpoints.py +1 -1
  24. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/setup/config.py +1 -1
  25. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/diagnostics.py +1 -1
  26. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/bootstrap.py +12 -12
  27. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/pip.py +1 -1
  28. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/instances/poll_instance.py +19 -19
  29. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/instances/terminal_artifacts.py +3 -3
  30. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/net/worker.py +4 -22
  31. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/artifacts/channel.py +1 -1
  32. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/prefetch.py +1 -1
  33. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/accounting/artifacts.py +4 -4
  34. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/preparation.py +1 -1
  35. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/state.py +1 -1
  36. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/results/checkpoints.py +4 -4
  37. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/lifecycle.py +1 -1
  38. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/materialize.py +1 -1
  39. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/contract/errors.py +1 -1
  40. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/adapter_check.py +1 -1
  41. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/deploy.py +3 -1
  42. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/download.py +1 -1
  43. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/asgi/app.py +1 -1
  44. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/ops/repo_cleanup.py +4 -23
  45. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/checkpoints.py +5 -5
  46. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/runs.py +1 -1
  47. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/runtime.py +4 -4
  48. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/meta.py +1 -1
  49. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/serving.py +1 -1
  50. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/app/README.md +1 -1
  51. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/promotion/canary.py +1 -1
  52. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/hub.py +2 -2
  53. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/lora_engine.py +1 -1
  54. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/adapter_routes.py +1 -1
  55. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/pyproject.toml +6 -10
  56. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_azure_artifacts.py +74 -0
  57. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_backend_common.py +1 -1
  58. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_bake_kernel_cache.py +105 -18
  59. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_bake_sandbox_entry.py +9 -5
  60. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoints.py +21 -2
  61. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_flash_worker.py +1 -1
  62. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_checkpoint_durability.py +1 -1
  63. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_params.py +1 -1
  64. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_instance_bootstrap_coverage.py +1 -1
  65. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_managed_hf_repo.py +4 -5
  66. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_modal_prefetch_snapshot.py +12 -0
  67. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_orchestrator_flash.py +20 -31
  68. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_repo_cleanup.py +4 -6
  69. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_api.py +5 -5
  70. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_standalone.py +1 -4
  71. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_train.py +2 -2
  72. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_warmstart_adapter_download.py +23 -16
  73. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_warmstart_cross_repo.py +1 -1
  74. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_worker_dryrun.py +1 -1
  75. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_worker_init_heartbeat.py +8 -8
  76. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_worker_stack.py +5 -7
  77. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/uv.lock +1 -1
  78. freesolo_flash_dev-1.4.11/scripts/migrate_recent_hf_artifacts.py +0 -352
  79. freesolo_flash_dev-1.4.11/tests/test_recent_artifact_migration.py +0 -195
  80. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.dockerignore +0 -0
  81. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.env.example +0 -0
  82. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/CODEOWNERS +0 -0
  83. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  84. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  85. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  86. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  87. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/dependabot.yml +0 -0
  88. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/scripts/ci_sharding.py +0 -0
  89. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/scripts/notify_tests_repo.py +0 -0
  90. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/auto-rebake.yml +0 -0
  91. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/ci.yml +0 -0
  92. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/deploy-deepinfer.yml +0 -0
  93. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/deploy-modal-dev.yml +0 -0
  94. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/deploy-modal.yml +0 -0
  95. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/dev-kernel-cache.yml +0 -0
  96. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/main-source-guard.yml +0 -0
  97. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/notify-tests-repo.yml +0 -0
  98. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/production-kernel-cache-ready.yml +0 -0
  99. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/publish-dev.yml +0 -0
  100. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/publish-image.yml +0 -0
  101. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/publish-serving-image.yml +0 -0
  102. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/publish.yml +0 -0
  103. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/version-parity.yml +0 -0
  104. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.github/workflows/worker-image.yml +0 -0
  105. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/.gitignore +0 -0
  106. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/CODE_OF_CONDUCT.md +0 -0
  107. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/CONTRIBUTING.md +0 -0
  108. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/Dockerfile +0 -0
  109. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/Dockerfile.serve +0 -0
  110. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/Dockerfile.worker +0 -0
  111. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/LICENSE +0 -0
  112. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/NOTICE +0 -0
  113. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/README.md +0 -0
  114. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/SECURITY.md +0 -0
  115. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/SELF_HOSTING.md +0 -0
  116. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/build/kernel_cache/.gitignore +0 -0
  117. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/build/kernel_cache/.keep +0 -0
  118. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/deploy/infisical/README.md +0 -0
  119. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/deploy/infisical/entrypoint.sh +0 -0
  120. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/Dockerfile.kernelcache +0 -0
  121. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/Dockerfile.kernelcache.relayer +0 -0
  122. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/extract_cudart_fix.py +0 -0
  123. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/kernel_fingerprint.py +0 -0
  124. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docker/patch_vllm_moe_lora.py +0 -0
  125. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/docs/azure-serving-qualification-20261102.json +0 -0
  126. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/__init__.py +0 -0
  127. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/__init__.py +0 -0
  128. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/background.py +0 -0
  129. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/channel.py +0 -0
  130. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/diagnostics.py +0 -0
  131. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/fileio.py +0 -0
  132. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/http.py +0 -0
  133. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/http_deadline.py +0 -0
  134. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/logging.py +0 -0
  135. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/openai_sse.py +0 -0
  136. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/paths.py +0 -0
  137. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/_internal/version.py +0 -0
  138. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/adapters/__init__.py +0 -0
  139. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/adapters/fused_experts.py +0 -0
  140. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/adapters/targets.py +0 -0
  141. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/artifacts/__init__.py +0 -0
  142. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/artifacts/config.py +0 -0
  143. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/artifacts/errors.py +0 -0
  144. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/artifacts/manifest.py +0 -0
  145. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/__init__.py +0 -0
  146. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/__main__.py +0 -0
  147. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/__init__.py +0 -0
  148. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/__init__.py +0 -0
  149. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/__init__.py +0 -0
  150. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/imports.py +0 -0
  151. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/list.py +0 -0
  152. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/push.py +0 -0
  153. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/retained.py +0 -0
  154. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/ops/setup_wandb.py +0 -0
  155. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/__init__.py +0 -0
  156. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/episode.py +0 -0
  157. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/eval.py +0 -0
  158. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/eval_args.py +0 -0
  159. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/evaluations.py +0 -0
  160. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/params.py +0 -0
  161. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/test.py +0 -0
  162. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/env/testing/warnings.py +0 -0
  163. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/__init__.py +0 -0
  164. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/account.py +0 -0
  165. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/catalog.py +0 -0
  166. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/deploy.py +0 -0
  167. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/log_follow.py +0 -0
  168. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/prompt_budget.py +0 -0
  169. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/runs.py +0 -0
  170. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/traces.py +0 -0
  171. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/train.py +0 -0
  172. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/ops/worker_output.py +0 -0
  173. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/serving/__init__.py +0 -0
  174. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/serving/deploy.py +0 -0
  175. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/serving/identity.py +0 -0
  176. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/serving/status.py +0 -0
  177. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/commands/serving/undeploy.py +0 -0
  178. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/__init__.py +0 -0
  179. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/account.py +0 -0
  180. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/custom.py +0 -0
  181. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/env.py +0 -0
  182. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/errors.py +0 -0
  183. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/main.py +0 -0
  184. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/models.py +0 -0
  185. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/traces.py +0 -0
  186. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/parsing/training.py +0 -0
  187. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/scaffold/__init__.py +0 -0
  188. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/__init__.py +0 -0
  189. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/cost.py +0 -0
  190. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/env_panels.py +0 -0
  191. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/heartbeat.py +0 -0
  192. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/render.py +0 -0
  193. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/tables.py +0 -0
  194. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cli/ui/tty.py +0 -0
  195. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/__init__.py +0 -0
  196. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/config.py +0 -0
  197. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/freesolo_api.py +0 -0
  198. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/http.py +0 -0
  199. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/runtime_secrets.py +0 -0
  200. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/shapes.py +0 -0
  201. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/specs.py +0 -0
  202. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/client/streaming.py +0 -0
  203. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/__init__.py +0 -0
  204. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/image_descriptors.py +0 -0
  205. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/multimodal.py +0 -0
  206. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/processor.py +0 -0
  207. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/reasoning_normalization.py +0 -0
  208. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/stop_tokens.py +0 -0
  209. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/structured_options.py +0 -0
  210. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/structured_outputs.py +0 -0
  211. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/content/thinking.py +0 -0
  212. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/core/__init__.py +0 -0
  213. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/core/catalog.py +0 -0
  214. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/core/grpo.py +0 -0
  215. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/core/spec_persistence.py +0 -0
  216. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cost/__init__.py +0 -0
  217. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cost/analytical.py +0 -0
  218. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cost/currency.py +0 -0
  219. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cost/facts.py +0 -0
  220. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cost/spec.py +0 -0
  221. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/cost/types.py +0 -0
  222. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/__init__.py +0 -0
  223. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/async_client.py +0 -0
  224. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/backend.py +0 -0
  225. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/billing.py +0 -0
  226. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/checkpoints.py +0 -0
  227. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/client.py +0 -0
  228. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/controller.py +0 -0
  229. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/managed.py +0 -0
  230. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/server.py +0 -0
  231. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/session.py +0 -0
  232. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/starter.py +0 -0
  233. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/types.py +0 -0
  234. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/validation.py +0 -0
  235. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/custom/worker.py +0 -0
  236. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/__init__.py +0 -0
  237. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/__init__.py +0 -0
  238. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/kv_sizing.py +0 -0
  239. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/model_config_probe.py +0 -0
  240. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/prompt_budget.py +0 -0
  241. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/recipe.py +0 -0
  242. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/steps.py +0 -0
  243. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/plan/vram.py +0 -0
  244. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/__init__.py +0 -0
  245. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/dataset_profile.py +0 -0
  246. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/image_tokens.py +0 -0
  247. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/reasoning_render.py +0 -0
  248. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/sft_image_rows.py +0 -0
  249. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/sft_rows.py +0 -0
  250. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/sft_tools.py +0 -0
  251. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/sft_workload.py +0 -0
  252. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/tokenizer.py +0 -0
  253. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/profiling/workload_profile.py +0 -0
  254. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/result/__init__.py +0 -0
  255. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/result/accounting.py +0 -0
  256. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/result/rollout_samples.py +0 -0
  257. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/support/__init__.py +0 -0
  258. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/support/checkpoint_transport.py +0 -0
  259. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/support/huggingface.py +0 -0
  260. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/support/model_snapshot.py +0 -0
  261. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/support/verl_checkpoint.py +0 -0
  262. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/support/worker_entrypoint.py +0 -0
  263. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/__init__.py +0 -0
  264. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/__main__.py +0 -0
  265. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/entry/__init__.py +0 -0
  266. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/entry/rl.py +0 -0
  267. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/__init__.py +0 -0
  268. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/cpu_handoff.py +0 -0
  269. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/prefetch.py +0 -0
  270. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/transfer.py +0 -0
  271. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/io/wandb_log.py +0 -0
  272. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/model/__init__.py +0 -0
  273. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/model/chatml_mask.py +0 -0
  274. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/model/decoding.py +0 -0
  275. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/model/lora.py +0 -0
  276. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/model/packing.py +0 -0
  277. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/perf/__init__.py +0 -0
  278. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/perf/diagnostics.py +0 -0
  279. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/perf/lifecycle.py +0 -0
  280. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/perf/memory.py +0 -0
  281. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/perf/model_size.py +0 -0
  282. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/runtime/__init__.py +0 -0
  283. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
  284. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/runtime/phases.py +0 -0
  285. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/runtime/rng.py +0 -0
  286. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/runtime/state.py +0 -0
  287. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/__init__.py +0 -0
  288. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/__init__.py +0 -0
  289. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/__init__.py +0 -0
  290. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/agents.yaml +0 -0
  291. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/batch.py +0 -0
  292. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/compact_checkpoint.py +0 -0
  293. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/configuration.py +0 -0
  294. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/engine.py +0 -0
  295. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/flashinfer_cache.py +0 -0
  296. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/glue.py +0 -0
  297. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/launch.py +0 -0
  298. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/model.py +0 -0
  299. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/observations.py +0 -0
  300. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/options.py +0 -0
  301. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/prompt_media.py +0 -0
  302. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/queue.py +0 -0
  303. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/readiness.py +0 -0
  304. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/reference.py +0 -0
  305. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/registration.py +0 -0
  306. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/replay.py +0 -0
  307. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/replay_guard.py +0 -0
  308. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/rollout.py +0 -0
  309. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/rollout_contract.py +0 -0
  310. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/startup.py +0 -0
  311. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/tracking.py +0 -0
  312. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/trainer.py +0 -0
  313. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/upstream.py +0 -0
  314. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/vllm_worker.py +0 -0
  315. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/child/worker.py +0 -0
  316. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/lifecycle/__init__.py +0 -0
  317. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/lifecycle/finalize.py +0 -0
  318. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/lifecycle/ledger.py +0 -0
  319. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/lifecycle/persistence.py +0 -0
  320. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/lifecycle/step_timing.py +0 -0
  321. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/lifecycle/timing.py +0 -0
  322. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/rollout/__init__.py +0 -0
  323. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/rollout/contract.py +0 -0
  324. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/rollout/episode.py +0 -0
  325. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/rollout/generation.py +0 -0
  326. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/rollout/identity.py +0 -0
  327. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/core/rollout/lifecycle.py +0 -0
  328. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/__init__.py +0 -0
  329. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/backend_common.py +0 -0
  330. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/prompt_rows.py +0 -0
  331. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/rl_train.py +0 -0
  332. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/rl_train_runner.py +0 -0
  333. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/entry/score_batcher.py +0 -0
  334. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/__init__.py +0 -0
  335. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/__init__.py +0 -0
  336. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/contract.py +0 -0
  337. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/credit.py +0 -0
  338. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/entry.py +0 -0
  339. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/identity.py +0 -0
  340. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/metrics.py +0 -0
  341. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
  342. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/reward.py +0 -0
  343. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/rollout.py +0 -0
  344. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/trainer.py +0 -0
  345. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/child/transport.py +0 -0
  346. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/launch/__init__.py +0 -0
  347. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/launch/checkpoints.py +0 -0
  348. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/launch/config.py +0 -0
  349. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/launch/inputs.py +0 -0
  350. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/launch/verl_config.py +0 -0
  351. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/rollout/__init__.py +0 -0
  352. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/rollout/identity.py +0 -0
  353. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/rollout/multi_turn.py +0 -0
  354. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/rollout/scoring.py +0 -0
  355. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/rl/rollout/single_turn.py +0 -0
  356. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/__init__.py +0 -0
  357. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/child/dataset.py +0 -0
  358. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/child/entry.py +0 -0
  359. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/child/loop.py +0 -0
  360. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/child/schedule.py +0 -0
  361. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/child/trainer.py +0 -0
  362. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/train/sft/setup/__init__.py +0 -0
  363. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/__init__.py +0 -0
  364. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/adapter_merger.py +0 -0
  365. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/capabilities.py +0 -0
  366. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/checkpoints.py +0 -0
  367. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/child_io.py +0 -0
  368. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/parallelism.py +0 -0
  369. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/engine/worker/verl/parent_work.py +0 -0
  370. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/__init__.py +0 -0
  371. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/loading/__init__.py +0 -0
  372. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/loading/adapter.py +0 -0
  373. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/loading/base.py +0 -0
  374. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/loading/loader.py +0 -0
  375. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/loading/pull.py +0 -0
  376. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/loading/staged.py +0 -0
  377. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/__init__.py +0 -0
  378. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/cache_security.py +0 -0
  379. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/cache_storage.py +0 -0
  380. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/dataset_selection.py +0 -0
  381. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/evaluations.py +0 -0
  382. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/identity.py +0 -0
  383. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/meta/namespace_listing.py +0 -0
  384. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/package/__init__.py +0 -0
  385. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/package/direct_tokens.py +0 -0
  386. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/package/limits.py +0 -0
  387. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/package/unpack.py +0 -0
  388. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/registry/__init__.py +0 -0
  389. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/registry/azure.py +0 -0
  390. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/registry/packages.py +0 -0
  391. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/scoring/__init__.py +0 -0
  392. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/scoring/context.py +0 -0
  393. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/envs/scoring/response.py +0 -0
  394. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/__init__.py +0 -0
  395. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/__init__.py +0 -0
  396. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/__init__.py +0 -0
  397. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/attempt.py +0 -0
  398. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/console.py +0 -0
  399. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/processes.py +0 -0
  400. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/bootstrapping/secrets.py +0 -0
  401. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/instances/__init__.py +0 -0
  402. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/instances/instance.py +0 -0
  403. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/instances/poll.py +0 -0
  404. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/net/__init__.py +0 -0
  405. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/net/auth.py +0 -0
  406. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/net/deadline.py +0 -0
  407. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/_lifecycle/net/http.py +0 -0
  408. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/artifacts/__init__.py +0 -0
  409. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/artifacts/weight_cache.py +0 -0
  410. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/__init__.py +0 -0
  411. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/allocator.py +0 -0
  412. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/base.py +0 -0
  413. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/fit_errors.py +0 -0
  414. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/preflight.py +0 -0
  415. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/registry.py +0 -0
  416. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/core/sharding.py +0 -0
  417. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/__init__.py +0 -0
  418. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/api.py +0 -0
  419. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/auth.py +0 -0
  420. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/checkpoint_upload.py +0 -0
  421. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/handles.py +0 -0
  422. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/jobs.py +0 -0
  423. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/pricing.py +0 -0
  424. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/provider.py +0 -0
  425. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/providers/modal/startup.py +0 -0
  426. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/py.typed +0 -0
  427. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/__init__.py +0 -0
  428. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/accounting/__init__.py +0 -0
  429. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/accounting/costs.py +0 -0
  430. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/accounting/weight_cache.py +0 -0
  431. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/__init__.py +0 -0
  432. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/attempts.py +0 -0
  433. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/claim_lock.py +0 -0
  434. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/cleanup.py +0 -0
  435. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/deadlines.py +0 -0
  436. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/reporting.py +0 -0
  437. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/runtime_credentials.py +0 -0
  438. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/status.py +0 -0
  439. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/lifecycle/submit.py +0 -0
  440. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/results/__init__.py +0 -0
  441. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/results/deployments.py +0 -0
  442. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/__init__.py +0 -0
  443. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/attach.py +0 -0
  444. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/deploy.py +0 -0
  445. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/errors.py +0 -0
  446. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/execution.py +0 -0
  447. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/recovery.py +0 -0
  448. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/retry_decision.py +0 -0
  449. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runner/supervise/transitions.py +0 -0
  450. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runtime_capsule/__init__.py +0 -0
  451. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runtime_capsule/build.py +0 -0
  452. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runtime_capsule/manifest.py +0 -0
  453. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/runtime_capsule/profiles.py +0 -0
  454. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/schema/__init__.py +0 -0
  455. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/schema/custom.py +0 -0
  456. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/schema/fields.py +0 -0
  457. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/__init__.py +0 -0
  458. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/__init__.py +0 -0
  459. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/__main__.py +0 -0
  460. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/bootstrap.py +0 -0
  461. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/chat_stream.py +0 -0
  462. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/http.py +0 -0
  463. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/hydration_credentials.py +0 -0
  464. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/launch.py +0 -0
  465. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/manifest.py +0 -0
  466. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/openai.py +0 -0
  467. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/app/progress.py +0 -0
  468. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/contract/__init__.py +0 -0
  469. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/contract/protocol.py +0 -0
  470. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/contract/provenance.py +0 -0
  471. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/contract/responses.py +0 -0
  472. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/contract/urls.py +0 -0
  473. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/__init__.py +0 -0
  474. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/_canonical.py +0 -0
  475. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/_serialization.py +0 -0
  476. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/_urls.py +0 -0
  477. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/credentials.py +0 -0
  478. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/planning.py +0 -0
  479. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/control/types.py +0 -0
  480. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/__init__.py +0 -0
  481. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/export.py +0 -0
  482. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/preflight.py +0 -0
  483. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/profiles.py +0 -0
  484. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/readiness.py +0 -0
  485. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/deployment/resolve.py +0 -0
  486. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/__init__.py +0 -0
  487. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/common/__init__.py +0 -0
  488. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/common/records.py +0 -0
  489. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/__init__.py +0 -0
  490. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/execution/__init__.py +0 -0
  491. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/execution/deployment.py +0 -0
  492. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/execution/lifecycle.py +0 -0
  493. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/execution/operations.py +0 -0
  494. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/execution/sdk.py +0 -0
  495. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/planning/__init__.py +0 -0
  496. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/planning/plan.py +0 -0
  497. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/planning/resources.py +0 -0
  498. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/planning/wrapper.py +0 -0
  499. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/readiness_checks/__init__.py +0 -0
  500. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/readiness_checks/probe.py +0 -0
  501. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/readiness_checks/readiness.py +0 -0
  502. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/provisioning/modal/readiness_checks/teardown.py +0 -0
  503. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/__init__.py +0 -0
  504. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/openai.py +0 -0
  505. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/runtime_support.py +0 -0
  506. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/schema_types.py +0 -0
  507. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/streaming.py +0 -0
  508. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/text_scan.py +0 -0
  509. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/thinking.py +0 -0
  510. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/tool_calls.py +0 -0
  511. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/tool_template.py +0 -0
  512. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/transport.py +0 -0
  513. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/request/validation.py +0 -0
  514. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/__init__.py +0 -0
  515. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/adapters.py +0 -0
  516. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/cache_admission.py +0 -0
  517. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/cache_retention.py +0 -0
  518. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/cache_scheduler.py +0 -0
  519. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/engine.py +0 -0
  520. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/errors.py +0 -0
  521. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/hub.py +0 -0
  522. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/multimodal.py +0 -0
  523. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/prompt.py +0 -0
  524. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/prompt_cache.py +0 -0
  525. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/reasoning_tools.py +0 -0
  526. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/sampling.py +0 -0
  527. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/structured_outputs.py +0 -0
  528. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/token_batch.py +0 -0
  529. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/token_prefix_cache.py +0 -0
  530. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/tool_calls.py +0 -0
  531. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serve/runtime/types.py +0 -0
  532. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/__init__.py +0 -0
  533. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/__main__.py +0 -0
  534. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/asgi/__init__.py +0 -0
  535. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/asgi/cli.py +0 -0
  536. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/billing/__init__.py +0 -0
  537. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/billing/charges.py +0 -0
  538. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/billing/retry.py +0 -0
  539. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/__init__.py +0 -0
  540. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/ops/__init__.py +0 -0
  541. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/ops/serving_resources.py +0 -0
  542. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/__init__.py +0 -0
  543. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/blob_envs.py +0 -0
  544. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/env_files.py +0 -0
  545. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/environment_registry.py +0 -0
  546. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/envs.py +0 -0
  547. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/domain/registry/projects.py +0 -0
  548. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/__init__.py +0 -0
  549. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/auth.py +0 -0
  550. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/db.py +0 -0
  551. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/deployment_jobs.py +0 -0
  552. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/deployment_state.py +0 -0
  553. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/deps.py +0 -0
  554. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/internal_client.py +0 -0
  555. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/locks.py +0 -0
  556. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/platform/plane_lease.py +0 -0
  557. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/__init__.py +0 -0
  558. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/adapter_download.py +0 -0
  559. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/custom.py +0 -0
  560. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/env_files.py +0 -0
  561. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/envs.py +0 -0
  562. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/runs.py +0 -0
  563. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/serving_chat.py +0 -0
  564. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/serving_completion.py +0 -0
  565. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/serving_errors.py +0 -0
  566. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/serving_revisions.py +0 -0
  567. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/server/routes/serving_smoke.py +0 -0
  568. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/__init__.py +0 -0
  569. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/app/GPU_QUALIFICATION.md +0 -0
  570. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/app/__init__.py +0 -0
  571. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/app/modal_app.py +0 -0
  572. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/app/timeouts.py +0 -0
  573. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/__init__.py +0 -0
  574. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/README.md +0 -0
  575. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/__init__.py +0 -0
  576. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/autoscaling.py +0 -0
  577. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/client.py +0 -0
  578. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/events.py +0 -0
  579. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/http.py +0 -0
  580. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/modal_app.py +0 -0
  581. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/render.py +0 -0
  582. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/retries.py +0 -0
  583. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/app/rollout.py +0 -0
  584. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/contract/__init__.py +0 -0
  585. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/contract/config.py +0 -0
  586. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/contract/errors.py +0 -0
  587. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/contract/protocol.py +0 -0
  588. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/contract/tokenizer.py +0 -0
  589. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/native/__init__.py +0 -0
  590. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/native/engram_transport.py +0 -0
  591. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/native/image.py +0 -0
  592. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/native/patches.py +0 -0
  593. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/native/transport.py +0 -0
  594. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/__init__.py +0 -0
  595. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/bridge.py +0 -0
  596. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/kernel_cache.py +0 -0
  597. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/prefill_scheduler.py +0 -0
  598. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/prefix_cache.py +0 -0
  599. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/provenance.py +0 -0
  600. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/routing.py +0 -0
  601. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/snapshots.py +0 -0
  602. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/tiered_cache.py +0 -0
  603. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/warmup.py +0 -0
  604. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/deepinfer/runtime/worker.py +0 -0
  605. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/promotion/__init__.py +0 -0
  606. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/promotion/accounting_smoke_test.py +0 -0
  607. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/promotion/evidence.py +0 -0
  608. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/promotion/gate.py +0 -0
  609. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/__init__.py +0 -0
  610. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/accounting/__init__.py +0 -0
  611. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/accounting/usage.py +0 -0
  612. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/accounting/usage_facts.py +0 -0
  613. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/accounting/usage_outbox.py +0 -0
  614. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/accounting/usage_retry.py +0 -0
  615. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/__init__.py +0 -0
  616. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/boot.py +0 -0
  617. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/errors.py +0 -0
  618. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/generation.py +0 -0
  619. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/lora_entries.py +0 -0
  620. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/model_config.py +0 -0
  621. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/prequant_config.py +0 -0
  622. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/reasoning_usage.py +0 -0
  623. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/support.py +0 -0
  624. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/text_tokenizer.py +0 -0
  625. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/engine/warmup.py +0 -0
  626. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/__init__.py +0 -0
  627. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/authorization_transport.py +0 -0
  628. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/body_limit.py +0 -0
  629. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/context.py +0 -0
  630. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/headers.py +0 -0
  631. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/inference_routes.py +0 -0
  632. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/key_rate_limit.py +0 -0
  633. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/rate_limit.py +0 -0
  634. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/router.py +0 -0
  635. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/routing.py +0 -0
  636. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/http/stream_response.py +0 -0
  637. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/__init__.py +0 -0
  638. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/cache_namespace.py +0 -0
  639. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/multimodal.py +0 -0
  640. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/openai_request.py +0 -0
  641. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/openai_stream.py +0 -0
  642. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/provenance.py +0 -0
  643. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/requests.py +0 -0
  644. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/responses.py +0 -0
  645. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/schemas.py +0 -0
  646. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/streaming.py +0 -0
  647. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/io/structured_outputs.py +0 -0
  648. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/__init__.py +0 -0
  649. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/access.py +0 -0
  650. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/lookup.py +0 -0
  651. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/persisted_columns.py +0 -0
  652. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/persistence.py +0 -0
  653. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/registration.py +0 -0
  654. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/registry.py +0 -0
  655. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/settings.py +0 -0
  656. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/supabase_rest.py +0 -0
  657. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/store/undeploy.py +0 -0
  658. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/stream_channel/__init__.py +0 -0
  659. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/stream_channel/_tasks.py +0 -0
  660. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/stream_channel/client.py +0 -0
  661. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/stream_channel/engine.py +0 -0
  662. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/serving/src/stream_channel/protocol.py +0 -0
  663. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/snapshot/__init__.py +0 -0
  664. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/flash/snapshot/archive.py +0 -0
  665. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/build_dev_dist.py +0 -0
  666. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/check_dev_release.py +0 -0
  667. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/check_file_size.py +0 -0
  668. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/check_function_size.py +0 -0
  669. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/check_rollout_identity_actor.py +0 -0
  670. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/check_source_layout.py +0 -0
  671. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/check_verl_pin_exists.py +0 -0
  672. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/fixtures/custom_algorithm.py +0 -0
  673. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/fixtures/modal_environment/dataset/train.jsonl +0 -0
  674. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/fixtures/modal_environment/environment.py +0 -0
  675. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/fixtures/modal_environment/evaluations.py +0 -0
  676. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/qualify_serving_profile.py +0 -0
  677. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/smoke_custom_training.py +0 -0
  678. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/smoke_modal_sft.py +0 -0
  679. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/scripts/smoke_modal_training.py +0 -0
  680. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/serve_launch.py +0 -0
  681. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/__init__.py +0 -0
  682. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/__init__.py +0 -0
  683. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/billing_precheck.py +0 -0
  684. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/chat_provenance.py +0 -0
  685. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/chat_transport.py +0 -0
  686. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/deployments.py +0 -0
  687. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/managed_chat.py +0 -0
  688. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/modal.py +0 -0
  689. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/profile.py +0 -0
  690. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/runner.py +0 -0
  691. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/server_api_plugin.py +0 -0
  692. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/source_snapshot.py +0 -0
  693. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/specs.py +0 -0
  694. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/_helpers/wire_headers.py +0 -0
  695. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/capture_image_sft_processor_oracle.py +0 -0
  696. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/capture_qwen38_27b_metadata.py +0 -0
  697. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/conftest.py +0 -0
  698. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/fixtures/image_sft_processor_oracle.json +0 -0
  699. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/fixtures/qwen35_9b_target_metadata.json +0 -0
  700. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/fixtures/qwen38_27b_target_metadata.json +0 -0
  701. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/fixtures/vllm_023_moe_lora/lora_context.py.gz +0 -0
  702. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/fixtures/vllm_023_moe_lora/modular_kernel.py.gz +0 -0
  703. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/fixtures/vllm_023_moe_lora/triton_moe.py.gz +0 -0
  704. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/live/__init__.py +0 -0
  705. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/live/conftest.py +0 -0
  706. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/live/test_sft_thinking_render_live.py +0 -0
  707. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/checkpoint_fixtures.py +0 -0
  708. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/conftest.py +0 -0
  709. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_adapter_hub.py +0 -0
  710. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_artifact_protections.py +0 -0
  711. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_authorization_transport.py +0 -0
  712. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_base_model_serving.py +0 -0
  713. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_chat_auth.py +0 -0
  714. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_chat_authorizer.py +0 -0
  715. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_checkpoint_fingerprint_validation.py +0 -0
  716. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_checkpoint_identity_repairs.py +0 -0
  717. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_checkpoint_model_validation.py +0 -0
  718. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_checkpoint_revocation.py +0 -0
  719. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer.py +0 -0
  720. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_autoscaling.py +0 -0
  721. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_deadline.py +0 -0
  722. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_hosted.py +0 -0
  723. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_http_deadline.py +0 -0
  724. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_kernel_cache.py +0 -0
  725. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_latency.py +0 -0
  726. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_optimizations.py +0 -0
  727. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_parallel.py +0 -0
  728. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_prefill_scheduler.py +0 -0
  729. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_provenance.py +0 -0
  730. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_retention.py +0 -0
  731. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_retries.py +0 -0
  732. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_rollout.py +0 -0
  733. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_routing.py +0 -0
  734. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_deepinfer_tiering.py +0 -0
  735. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_engine_error_status.py +0 -0
  736. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_fp8_config.py +0 -0
  737. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_immutable_engine.py +0 -0
  738. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_immutable_revisions.py +0 -0
  739. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_immutable_schemas.py +0 -0
  740. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_inference_duration.py +0 -0
  741. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_internal_header_integrity.py +0 -0
  742. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_key_rate_limit.py +0 -0
  743. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_key_rate_limit_review.py +0 -0
  744. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_kv_namespace.py +0 -0
  745. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_latency_admission.py +0 -0
  746. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_mirror_sampling_parity.py +0 -0
  747. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_modal_deploy_identity.py +0 -0
  748. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_modal_image_paths.py +0 -0
  749. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_model_config.py +0 -0
  750. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_multimodal.py +0 -0
  751. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_openai_stream_options.py +0 -0
  752. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_per_model_gpu.py +0 -0
  753. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_persistence.py +0 -0
  754. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_pre_first_disconnect.py +0 -0
  755. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_prequant_config.py +0 -0
  756. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_promotion_accounting_smoke.py +0 -0
  757. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_promotion_canary.py +0 -0
  758. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_promotion_evidence.py +0 -0
  759. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_promotion_gate.py +0 -0
  760. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_qwen_warmup.py +0 -0
  761. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_rate_limit.py +0 -0
  762. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_reasoning_usage.py +0 -0
  763. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_registration_endpoint.py +0 -0
  764. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_registry.py +0 -0
  765. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_registry_coverage.py +0 -0
  766. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_request_body_limit.py +0 -0
  767. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_router.py +0 -0
  768. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_router_coverage.py +0 -0
  769. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_router_edge_coverage.py +0 -0
  770. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_schemas_coverage.py +0 -0
  771. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_serve_reasoning_split.py +0 -0
  772. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_serve_structured_outputs.py +0 -0
  773. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_serve_thinking.py +0 -0
  774. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_settings.py +0 -0
  775. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_stream_channel.py +0 -0
  776. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_stream_response_disconnect.py +0 -0
  777. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_stream_wait_cleanup.py +0 -0
  778. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_structured_outputs.py +0 -0
  779. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_structured_outputs_coverage.py +0 -0
  780. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_supabase_rest_coverage.py +0 -0
  781. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_token_prefix_cache.py +0 -0
  782. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_usage_delivery_concurrency.py +0 -0
  783. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_usage_integrity.py +0 -0
  784. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_usage_outbox.py +0 -0
  785. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving/test_usage_reporter.py +0 -0
  786. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving_conformance/__init__.py +0 -0
  787. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving_conformance/conftest.py +0 -0
  788. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/serving_conformance/test_contract.py +0 -0
  789. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_accounting_coverage.py +0 -0
  790. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_adapter_download.py +0 -0
  791. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_adapter_shard_completeness.py +0 -0
  792. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_agent_flash_cli_contract.py +0 -0
  793. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_algorithms.py +0 -0
  794. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_allocator.py +0 -0
  795. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_authenticated_redirects.py +0 -0
  796. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_azure_environment_registry.py +0 -0
  797. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_backend_jobspec_contract.py +0 -0
  798. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_background_supervisor.py +0 -0
  799. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_base_environment_integrity.py +0 -0
  800. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_base_model_provenance.py +0 -0
  801. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_billing_response_integrity.py +0 -0
  802. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_billing_retry.py +0 -0
  803. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_bootstrap_process_groups.py +0 -0
  804. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_bootstrap_reentry.py +0 -0
  805. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_bootstrap_worker_cleanup.py +0 -0
  806. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_build_context_contract.py +0 -0
  807. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cache_admission.py +0 -0
  808. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cache_retention.py +0 -0
  809. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cache_scheduler.py +0 -0
  810. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_capture_qwen38_metadata.py +0 -0
  811. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_catalog_consistency.py +0 -0
  812. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_catalog_only_models.py +0 -0
  813. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_charge_pricing.py +0 -0
  814. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_chat_foundations.py +0 -0
  815. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_chat_stop_tokens.py +0 -0
  816. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_chat_worker_isolation.py +0 -0
  817. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_cancellation.py +0 -0
  818. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_deployment_inventory_api.py +0 -0
  819. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_deployments.py +0 -0
  820. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_lifecycle.py +0 -0
  821. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_listing_integrity.py +0 -0
  822. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_storage_overlap.py +0 -0
  823. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_checkpoint_transport.py +0 -0
  824. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_ci_sharding.py +0 -0
  825. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_commands.py +0 -0
  826. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_commands_coverage.py +0 -0
  827. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_credential_shadowing.py +0 -0
  828. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_errors.py +0 -0
  829. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_estimate.py +0 -0
  830. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_gpus_flag.py +0 -0
  831. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_help.py +0 -0
  832. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_main_coverage.py +0 -0
  833. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_managed.py +0 -0
  834. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_render_coverage.py +0 -0
  835. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_render_theme.py +0 -0
  836. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_serve_deploy.py +0 -0
  837. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_serve_status.py +0 -0
  838. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_serve_undeploy.py +0 -0
  839. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_traces.py +0 -0
  840. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cli_wandb_warning.py +0 -0
  841. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_client.py +0 -0
  842. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_client_deadline_integrity.py +0 -0
  843. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_client_import_purity.py +0 -0
  844. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_client_server_integration.py +0 -0
  845. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_client_stream_reads.py +0 -0
  846. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_compact_checkpoint.py +0 -0
  847. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_config_env_vars.py +0 -0
  848. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_config_overrides.py +0 -0
  849. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_console_upload.py +0 -0
  850. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_controlled_experiment_repairs.py +0 -0
  851. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cost_analytical.py +0 -0
  852. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cost_currency.py +0 -0
  853. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cost_equation.py +0 -0
  854. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cost_estimate.py +0 -0
  855. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cost_hardware.py +0 -0
  856. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cost_models.py +0 -0
  857. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_cpu_checkpoint_handoff.py +0 -0
  858. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_checkpoints.py +0 -0
  859. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_client.py +0 -0
  860. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_gpu_selection.py +0 -0
  861. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_gradients.py +0 -0
  862. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_managed.py +0 -0
  863. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_session.py +0 -0
  864. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_custom_worker.py +0 -0
  865. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_dataset_profile.py +0 -0
  866. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_deploy_latency.py +0 -0
  867. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_deployment_cleanup_resilience.py +0 -0
  868. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_deployment_generation_completion.py +0 -0
  869. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_deployment_registration_cleanup.py +0 -0
  870. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_dev_channel.py +0 -0
  871. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_dev_publish_decision.py +0 -0
  872. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_disk_gb.py +0 -0
  873. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_cache_evict.py +0 -0
  874. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_delete.py +0 -0
  875. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_download.py +0 -0
  876. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_download_api.py +0 -0
  877. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_evaluations.py +0 -0
  878. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_list_api.py +0 -0
  879. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_list_cli.py +0 -0
  880. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_list_registry.py +0 -0
  881. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_no_install.py +0 -0
  882. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_publish.py +0 -0
  883. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_pull.py +0 -0
  884. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_pull_coverage.py +0 -0
  885. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_pull_loader_coverage.py +0 -0
  886. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_pull_managed_control_plane.py +0 -0
  887. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_push.py +0 -0
  888. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_rate_limit_resolve.py +0 -0
  889. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_ref_pinning.py +0 -0
  890. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_env_test.py +0 -0
  891. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_environment_cache_integrity.py +0 -0
  892. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_environment_publish_integrity.py +0 -0
  893. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_envs_coverage.py +0 -0
  894. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_export.py +0 -0
  895. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_flash_mvp.py +0 -0
  896. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_flashinfer_aot_cache.py +0 -0
  897. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_flashinfer_cache_dirs.py +0 -0
  898. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_freesolo_api_transport.py +0 -0
  899. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_fused_expert_warmstart.py +0 -0
  900. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_generation_eos.py +0 -0
  901. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_github_urlopen_retry.py +0 -0
  902. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_gpu_type_single_field.py +0 -0
  903. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_gpus.py +0 -0
  904. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_metric_stream.py +0 -0
  905. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_resident_sizing.py +0 -0
  906. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_reward_batching.py +0 -0
  907. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_reward_context.py +0 -0
  908. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_rollout_contract.py +0 -0
  909. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_grpo_rollout_identity.py +0 -0
  910. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_health_liveness.py +0 -0
  911. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_heartbeat_startup_cleanup.py +0 -0
  912. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_hf_retry.py +0 -0
  913. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_hosted_adapter_admission.py +0 -0
  914. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_image_environment_capability.py +0 -0
  915. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_image_incremental_processor.py +0 -0
  916. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_image_sft_markers.py +0 -0
  917. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_image_sft_processor_parity.py +0 -0
  918. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_image_tokens.py +0 -0
  919. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_infisical_secrets.py +0 -0
  920. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_internal_client.py +0 -0
  921. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_kernel_bake_build_contracts.py +0 -0
  922. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_kernel_cache.py +0 -0
  923. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_kernel_fingerprint.py +0 -0
  924. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_kv_util.py +0 -0
  925. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_local_credential_integrity.py +0 -0
  926. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_logging.py +0 -0
  927. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_login_perms.py +0 -0
  928. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_lora_rank_coverage.py +0 -0
  929. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_lora_rank_nested_rung.py +0 -0
  930. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_lora_rank_preflight.py +0 -0
  931. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_lora_targeting.py +0 -0
  932. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_lora_targeting_pinned_verl.py +0 -0
  933. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_managed_config_fields.py +0 -0
  934. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_metrics_schema_agent_contract.py +0 -0
  935. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_mig_guard.py +0 -0
  936. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_mirror_sampling_parity.py +0 -0
  937. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_modal_api_loop.py +0 -0
  938. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_modal_provider.py +0 -0
  939. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_modal_startup.py +0 -0
  940. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_modal_training_lifecycle.py +0 -0
  941. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_modal_weight_warm.py +0 -0
  942. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_multi_gpu_gate.py +0 -0
  943. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_multimodal_boundary_integrity.py +0 -0
  944. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_multimodal_training.py +0 -0
  945. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_named_reward_metrics.py +0 -0
  946. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_notify_tests_repo.py +0 -0
  947. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_offline_http.py +0 -0
  948. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_oom_escalate_gpu.py +0 -0
  949. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_packing.py +0 -0
  950. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_packing_coverage.py +0 -0
  951. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_persisted_spec_envelope.py +0 -0
  952. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_plane_lease.py +0 -0
  953. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_poll_helpers.py +0 -0
  954. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_preflight.py +0 -0
  955. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_processor_chat_template.py +0 -0
  956. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_projects.py +0 -0
  957. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_prompt_budget.py +0 -0
  958. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_qwen9b_base.py +0 -0
  959. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_removed_algorithms.py +0 -0
  960. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_removed_training_settings.py +0 -0
  961. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_replay_guard.py +0 -0
  962. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_resolve_params_b.py +0 -0
  963. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_resume_on_retry.py +0 -0
  964. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_retry_decision.py +0 -0
  965. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_reward_server_cleanup.py +0 -0
  966. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_rl_train.py +0 -0
  967. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_rollout_engine_prompt.py +0 -0
  968. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_rollout_samples.py +0 -0
  969. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_run_log_integrity.py +0 -0
  970. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_run_registry_lifecycle.py +0 -0
  971. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_runmgmt.py +0 -0
  972. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_runtime_capsule.py +0 -0
  973. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_runtime_credentials.py +0 -0
  974. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_runtime_secret_integrity.py +0 -0
  975. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_schema_boundary_integrity.py +0 -0
  976. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve.py +0 -0
  977. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_app_bootstrap_http.py +0 -0
  978. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_app_launch.py +0 -0
  979. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_app_manifest.py +0 -0
  980. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_app_materialize.py +0 -0
  981. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_app_packaging.py +0 -0
  982. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_app_progress.py +0 -0
  983. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_cache_resource_cleanup.py +0 -0
  984. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_chat_transport.py +0 -0
  985. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_control.py +0 -0
  986. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_docs.py +0 -0
  987. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_modal_contract_lock.py +0 -0
  988. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_modal_sdk.py +0 -0
  989. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_modal_sdk_deadlines.py +0 -0
  990. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_modal_teardown_identity.py +0 -0
  991. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_profile_qualification.py +0 -0
  992. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_profiles.py +0 -0
  993. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_provisioning_common.py +0 -0
  994. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_provisioning_modal.py +0 -0
  995. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_reasoning_content.py +0 -0
  996. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_resolve_provenance.py +0 -0
  997. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_runtime_adapters.py +0 -0
  998. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_runtime_engine.py +0 -0
  999. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_runtime_hub.py +0 -0
  1000. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_runtime_package.py +0 -0
  1001. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serve_runtime_types.py +0 -0
  1002. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_app_coverage.py +0 -0
  1003. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_auth_singleflight.py +0 -0
  1004. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_billing.py +0 -0
  1005. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_checkpoints_coverage.py +0 -0
  1006. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_db.py +0 -0
  1007. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_envs_coverage.py +0 -0
  1008. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_locks_coverage.py +0 -0
  1009. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_managed_chat_requests.py +0 -0
  1010. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_server_serving_resources.py +0 -0
  1011. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serving_conformance_gate.py +0 -0
  1012. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serving_context_preflight.py +0 -0
  1013. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serving_contract.py +0 -0
  1014. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serving_input_integrity.py +0 -0
  1015. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serving_schema_coverage.py +0 -0
  1016. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_serving_unavailable_errors.py +0 -0
  1017. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_batch_prefetch.py +0 -0
  1018. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_cancel_profile_pricing.py +0 -0
  1019. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_chunked_nll.py +0 -0
  1020. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_cost_reduction.py +0 -0
  1021. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_dataset_lazy_images.py +0 -0
  1022. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_dataset_nulls.py +0 -0
  1023. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_example_selection.py +0 -0
  1024. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_gc_off.py +0 -0
  1025. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_max_context.py +0 -0
  1026. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_memory_policy.py +0 -0
  1027. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_step_floor.py +0 -0
  1028. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_tools.py +0 -0
  1029. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_warmup_schedule.py +0 -0
  1030. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_sft_workload.py +0 -0
  1031. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_smoke_content_integrity.py +0 -0
  1032. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_source_attestation_flow.py +0 -0
  1033. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_source_layout.py +0 -0
  1034. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_source_snapshot.py +0 -0
  1035. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_spec_and_validation.py +0 -0
  1036. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_spec_contract_bytes.py +0 -0
  1037. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_staged_environment.py +0 -0
  1038. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_status_reporting.py +0 -0
  1039. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_status_updates.py +0 -0
  1040. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_step_floor.py +0 -0
  1041. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_step_metrics.py +0 -0
  1042. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_step_timing.py +0 -0
  1043. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_structured_option_safety.py +0 -0
  1044. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_structured_outputs.py +0 -0
  1045. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_structured_runtime_options.py +0 -0
  1046. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_submission_outcome.py +0 -0
  1047. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_terminal_artifacts.py +0 -0
  1048. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_thinking_config.py +0 -0
  1049. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_thinking_tool_calls.py +0 -0
  1050. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_tool_call_exact_parsing.py +0 -0
  1051. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_tool_scalar_unions.py +0 -0
  1052. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_train_context_preflight.py +0 -0
  1053. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_training_controls.py +0 -0
  1054. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_training_phases.py +0 -0
  1055. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_transfer_queue_init.py +0 -0
  1056. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_type_comment_prose.py +0 -0
  1057. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_upstream_rollout_contract.py +0 -0
  1058. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_upstream_runtime_policy.py +0 -0
  1059. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_upstream_verl_contract.py +0 -0
  1060. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_verifiers.py +0 -0
  1061. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_verl_checkpoint_export.py +0 -0
  1062. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_verl_child_plugins.py +0 -0
  1063. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_verl_silence_watchdog.py +0 -0
  1064. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_version.py +0 -0
  1065. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_versioned_rollout_contract.py +0 -0
  1066. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_vl_warmstart_adapter_keys.py +0 -0
  1067. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_vllm_moe_lora_backport.py +0 -0
  1068. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_vram_architecture.py +0 -0
  1069. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_wandb_link.py +0 -0
  1070. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_wandb_naming.py +0 -0
  1071. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_warmstart_error_attribution.py +0 -0
  1072. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_warmstart_image_adapters.py +0 -0
  1073. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_watchdog_startup_cleanup.py +0 -0
  1074. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_weight_cache.py +0 -0
  1075. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_worker_hardexit.py +0 -0
  1076. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_worker_image.py +0 -0
  1077. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_worker_thinking.py +0 -0
  1078. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_workflow_contracts.py +0 -0
  1079. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_workload_profile.py +0 -0
  1080. {freesolo_flash_dev-1.4.11 → freesolo_flash_dev-1.4.13}/tests/test_zero2_sharding_gate.py +0 -0
@@ -2,7 +2,7 @@ name: flash worker kernel-cache (per-arch)
2
2
 
3
3
  # Builds per-SM worker images with compiled kernel caches baked in to reuse matching kernels
4
4
  # on cold workers. Each matrix leg:
5
- # 1. offloads the warmup to a Modal GPU of that arch (GH runners have none) -> build/kernel_cache,
5
+ # 1. offloads the warmup to a Modal GPU of that arch (GH runners have none) -> base-source/build/kernel_cache,
6
6
  # 2. builds docker/Dockerfile.kernelcache -> ghcr.io/freesolo-co/flash-worker:cu128-<sm>,
7
7
  # 3. pushes it. After live qualification, record its immutable digest in QUALIFIED_WORKER_IMAGES
8
8
  # (flash/providers/_lifecycle/net/worker.py); publishing a tag does not enable it for workers.
@@ -10,12 +10,9 @@ name: flash worker kernel-cache (per-arch)
10
10
  # Depends on the base ghcr.io/freesolo-co/flash-worker:cu128 image existing (worker-image.yml) — the
11
11
  # warmup runs INSIDE it so the cache matches the image's pinned torch/triton/fla/liger toolchain.
12
12
  #
13
- # Secrets: MODAL_TOKEN_ID + MODAL_TOKEN_SECRET (the warmup GPU sandbox) + HF_TOKEN (the temp dataset that ferries code + the
14
- # cache artifact) are native repo Actions secrets, synced from Infisical (prod:/flash-ci) by the
15
- # github-ci-flash Secret Sync; the GHCR push uses the default GITHUB_TOKEN. Heavy + paid,
16
- # but UNGATED: the fingerprint detection in auto-rebake.yml decides WHEN this runs (only on a real
17
- # kernel-toolchain change), so there is no manual approval step. Invoked by hand (workflow_dispatch)
18
- # OR automatically by auto-rebake.yml (workflow_call) when the kernel toolchain changed.
13
+ # Modal credentials launch the warmup sandbox. A dedicated Azure build identity writes
14
+ # only the build-artifacts container and issues bounded sandbox SAS credentials.
15
+ # GHCR publication uses GITHUB_TOKEN. Automatic invocation remains fingerprint-gated.
19
16
 
20
17
  on:
21
18
  workflow_dispatch:
@@ -199,13 +196,22 @@ jobs:
199
196
  echo "revision=$(echo "$cfg" | jq -r '.config.Labels["org.opencontainers.image.revision"] // ""')" >> "$GITHUB_OUTPUT"
200
197
  fi
201
198
 
202
- # Pin the checkout to the base's source commit so the warmed flash code matches the base exactly
203
- # (the cache is content-keyed by the code that compiled it). Falls back to the event sha if the
204
- # base predates the revision label.
205
- - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
199
+ # Transport and its dependencies follow this workflow, even when manually rebaking an
200
+ # older image whose helper still required Hugging Face artifact credentials.
201
+ - name: Checkout bake transport
202
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
203
+ if: steps.gate.outputs.run == 'true'
204
+ with:
205
+ ref: ${{ github.workflow_sha }}
206
+ path: bake-tools
207
+
208
+ # Only the warmup source and thin image recipe follow the base image's source revision.
209
+ - name: Checkout base warmup source
210
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
206
211
  if: steps.gate.outputs.run == 'true'
207
212
  with:
208
213
  ref: ${{ steps.base.outputs.revision || github.sha }}
214
+ path: base-source
209
215
 
210
216
  - name: Install uv
211
217
  if: steps.gate.outputs.run == 'true'
@@ -218,29 +224,30 @@ jobs:
218
224
  # marks the whole job red even though the bake + push already succeeded.
219
225
  enable-cache: false
220
226
 
221
- - name: Sync deps (flash + modal + hf)
227
+ - name: Sync deps (flash + modal + Azure)
222
228
  if: steps.gate.outputs.run == 'true'
223
- run: uv sync --extra server
229
+ run: uv sync --project bake-tools --extra server --locked
224
230
 
225
- # MODAL_TOKEN_ID + MODAL_TOKEN_SECRET (the warmup GPU sandbox) + HF_TOKEN (the temp dataset that ferries code/cache) are
226
- # native repo Actions secrets, synced from Infisical (prod:/flash-ci) by the github-ci-flash
227
- # Secret Sync. No Infisical CLI/login at job time -- Infisical stays the source of truth and
228
- # rotations propagate via the sync. BASE_IMAGE
229
- # is digest-pinned so the warm runs inside the EXACT base the per-arch tag will sit on.
230
- - name: Warm kernels on a Modal ${{ matrix.sm }} GPU -> build/kernel_cache
231
+ # The digest-pinned base keeps the warmup toolchain identical to the published image.
232
+ - name: Warm kernels on a Modal ${{ matrix.sm }} GPU -> base-source/build/kernel_cache
231
233
  if: steps.gate.outputs.run == 'true'
232
234
  env:
233
235
  MODAL_TOKEN_ID: ${{ secrets.MODAL_TOKEN_ID }}
234
236
  MODAL_TOKEN_SECRET: ${{ secrets.MODAL_TOKEN_SECRET }}
235
- HF_TOKEN: ${{ secrets.HF_TOKEN }}
237
+ FLASH_ARTIFACT_BLOB_ACCOUNT_URL: https://freesoloenvs.blob.core.windows.net
238
+ FLASH_ARTIFACT_BLOB_CONTAINER: build-artifacts
239
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
240
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_BUILD_CLIENT_ID }}
241
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_BUILD_CLIENT_SECRET }}
236
242
  BASE_IMAGE: ${{ steps.base.outputs.ref }}
237
243
  BAKE_DEADLINE_MINUTES: ${{ inputs.deadline_minutes }}
238
244
  run: |
239
- uv run python docker/bake_kernel_cache.py \
245
+ uv run --project bake-tools --locked python bake-tools/docker/bake_kernel_cache.py \
240
246
  --arch "${{ matrix.arch }}" --sm "${{ matrix.sm }}" \
241
247
  --image "$BASE_IMAGE" \
248
+ --source-root base-source \
242
249
  --deadline-min "$BAKE_DEADLINE_MINUTES" \
243
- --out build/kernel_cache
250
+ --out base-source/build/kernel_cache
244
251
 
245
252
  - name: Free disk space
246
253
  if: steps.gate.outputs.run == 'true'
@@ -263,8 +270,8 @@ jobs:
263
270
  if: steps.gate.outputs.run == 'true'
264
271
  uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
265
272
  with:
266
- context: .
267
- file: docker/Dockerfile.kernelcache
273
+ context: base-source
274
+ file: base-source/docker/Dockerfile.kernelcache
268
275
  push: true
269
276
  tags: ghcr.io/freesolo-co/flash-worker:${{ inputs.target_tag_prefix || 'cu128' }}-${{ matrix.sm }}
270
277
  provenance: false
@@ -18,6 +18,10 @@ This file starts at 1.1.35. Earlier releases are not reconstructed here; use
18
18
 
19
19
  ## Unreleased
20
20
 
21
+ - Correct artifact diagnostics, generated training guidance, and internal documentation to name
22
+ Azure storage. Upstream model/tokenizer downloads and explicit Hugging Face exports remain
23
+ supported; legacy serialized storage-field names remain compatible.
24
+
21
25
  ### Removed
22
26
 
23
27
  - Removed built-in OPD completely: training workers, managed teacher API and ledger, configuration,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: freesolo-flash-dev
3
- Version: 1.4.11
3
+ Version: 1.4.13
4
4
  Summary: Flash — managed LoRA post-training (SFT/GRPO) 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
@@ -27,17 +27,16 @@ def log(msg: str) -> None:
27
27
  print(f"[bake-ci] {msg}", flush=True)
28
28
 
29
29
 
30
- def _upload_flash_code(api, repo: str, token: str) -> None:
31
- """Mirror the worker's upload_code: push the running flash package to code/flash (exact mirror)."""
32
- import flash
30
+ def _upload_flash_code(api, repo: str, source_root) -> None:
31
+ """Upload the base-pinned warmup package without importing it into the transport process."""
32
+ from pathlib import Path
33
33
 
34
- pkg_dir = os.path.realpath(os.path.dirname(os.path.abspath(flash.__file__)))
34
+ pkg_dir = Path(source_root).resolve() / "flash"
35
+ if not (pkg_dir / "engine/worker/runtime/kernel_warmup.py").is_file():
36
+ raise ValueError("bake source must contain the base image's Flash warmup package")
35
37
  api.create_repo(repo_id=repo, repo_type="dataset", private=True, exist_ok=True)
36
- # mirror upload_code: force private even if the id pre-existed as a public repo, before any
37
- # flash source is uploaded.
38
- api.update_repo_settings(repo_id=repo, repo_type="dataset", private=True)
39
38
  api.upload_folder(
40
- folder_path=pkg_dir,
39
+ folder_path=str(pkg_dir),
41
40
  path_in_repo="code/flash",
42
41
  repo_id=repo,
43
42
  repo_type="dataset",
@@ -47,11 +46,39 @@ def _upload_flash_code(api, repo: str, token: str) -> None:
47
46
  log(f"uploaded flash code -> {repo}:code/flash (from {pkg_dir})")
48
47
 
49
48
 
50
- def main() -> int:
49
+ def _bake_image(modal, image_ref, entry):
50
+ """Seed the same standalone Azure client used by managed worker bootstrap."""
51
51
  from pathlib import Path
52
52
 
53
- from huggingface_hub import HfApi, snapshot_download
53
+ import flash.artifacts
54
+
55
+ image = (
56
+ modal.Image.from_registry(image_ref)
57
+ .pip_install("azure-storage-blob==12.31.1", "azure-identity==1.27.0")
58
+ .add_local_file(str(entry), "/opt/flash/bake.py", copy=True)
59
+ )
60
+ package = Path(flash.artifacts.__file__).parent
61
+ for module in ("api", "config", "manifest", "storage"):
62
+ image = image.add_local_file(
63
+ str(package / f"{module}.py"), f"/opt/flash/artifact_{module}.py", copy=True
64
+ )
65
+ return image
66
+
67
+
68
+ def _delete_artifacts(repo):
69
+ from flash.artifacts.config import open_container
70
+ from flash.artifacts.manifest import repo_prefix
71
+
72
+ with open_container() as container:
73
+ for blob in container.list_blobs(name_starts_with=repo_prefix(repo) + "/"):
74
+ container.delete_blob(blob.name)
54
75
 
76
+
77
+ def main() -> int:
78
+ from pathlib import Path
79
+
80
+ from flash.artifacts.api import ArtifactStore, download_snapshot
81
+ from flash.artifacts.config import runtime_environment
55
82
  from flash.providers.modal import api as modal_api
56
83
 
57
84
  parser = argparse.ArgumentParser(description="Bake worker kernels on Modal")
@@ -59,17 +86,23 @@ def main() -> int:
59
86
  parser.add_argument("--sm", required=True, choices=tuple(GPU_BY_SM))
60
87
  parser.add_argument("--image", required=True)
61
88
  parser.add_argument("--out", default="build/kernel_cache")
89
+ parser.add_argument(
90
+ "--source-root",
91
+ type=Path,
92
+ default=Path(__file__).resolve().parents[1],
93
+ help="Checkout matching the base image; transport runs from this helper's checkout",
94
+ )
62
95
  parser.add_argument("--deadline-min", type=int, default=90)
63
96
  parser.add_argument("--run-id", default="")
64
97
  args = parser.parse_args()
65
98
  if not 1 <= args.deadline_min <= 1440:
66
99
  parser.error("deadline must be between 1 and 1440 minutes")
67
- token = os.environ["HF_TOKEN"]
68
- hf = HfApi(token=token)
100
+ artifacts = ArtifactStore()
101
+ worker_secrets = runtime_environment()
102
+ if not worker_secrets:
103
+ raise RuntimeError("Azure build artifact storage is not configured")
69
104
  suffix = args.run_id or f"{int(time.time())}-{uuid.uuid4().hex[:8]}"
70
- repo = (
71
- f"{os.environ.get('FLASH_HF_NAMESPACE', ARTIFACT_NAMESPACE)}/kernel-bake-{args.sm}-{suffix}"
72
- )
105
+ repo = f"{os.environ.get('FLASH_ARTIFACT_NAMESPACE', ARTIFACT_NAMESPACE)}/kernel-bake-{args.sm}-{suffix}"
73
106
  entry = Path(__file__).with_name("bake_sandbox_entry.py")
74
107
 
75
108
  async def bake(modal, client):
@@ -79,9 +112,7 @@ def main() -> int:
79
112
  create_if_missing=True,
80
113
  client=client,
81
114
  )
82
- image = modal.Image.from_registry(args.image).add_local_file(
83
- str(entry), "/opt/flash/bake.py", copy=True
84
- )
115
+ image = _bake_image(modal, args.image, entry)
85
116
  sandbox = await modal.Sandbox.create.aio(
86
117
  "python",
87
118
  "-u",
@@ -97,7 +128,7 @@ def main() -> int:
97
128
  memory=(32768, 131072),
98
129
  secrets=[
99
130
  modal.Secret.from_dict(
100
- {"BAKE_HF_REPO": repo, "BAKE_ARCH": args.arch, "HF_TOKEN": token}
131
+ {"BAKE_ARTIFACT_REPO": repo, "BAKE_ARCH": args.arch, **worker_secrets}
101
132
  )
102
133
  ],
103
134
  client=client,
@@ -116,37 +147,41 @@ def main() -> int:
116
147
  await sandbox.terminate.aio(wait=True)
117
148
 
118
149
  try:
119
- _upload_flash_code(hf, repo, token)
150
+ _upload_flash_code(artifacts, repo, args.source_root)
120
151
  modal_api.call(bake, timeout=args.deadline_min * 60 + 120)
121
- if not _status_present(hf, repo, retries=3):
152
+ if not _status_present(artifacts, repo, retries=3):
122
153
  raise RuntimeError("kernel warmup finished without its completion marker")
123
154
  import tempfile
124
155
 
125
156
  with tempfile.TemporaryDirectory(prefix="flash-kernel-") as temp:
126
- snapshot_download(
157
+ download_snapshot(
127
158
  repo_id=repo,
128
159
  repo_type="dataset",
129
160
  allow_patterns=["out/**"],
130
161
  local_dir=temp,
131
- token=token,
132
162
  )
133
- shutil.copytree(Path(temp) / "out", args.out, dirs_exist_ok=True)
134
- archive = Path(args.out) / "kernel_cache.tar.gz"
135
- if archive.exists():
136
- _extract_cache_archive(archive, Path(args.out))
137
- archive.unlink()
138
- # The base image can contain an older warmup.log inside its cache tree. Keep the
139
- # current subprocess log authoritative after archive extraction.
140
- log_path = Path(temp) / "out" / "bake-warmup.log"
141
- if log_path.exists():
142
- shutil.copy2(log_path, Path(args.out) / "bake-warmup.log")
143
- shutil.copy2(log_path, Path(args.out) / "warmup.log")
144
- return _verify(args.out, args.sm)
163
+ staging = Path(temp) / "out"
164
+ status = (staging / "STATUS").read_text()
165
+ if status != f"rc=0\narch={args.arch}\n":
166
+ raise RuntimeError("kernel warmup returned an invalid completion marker")
167
+ archive = staging / "kernel_cache.tar.gz"
168
+ current_log = (staging / "bake-warmup.log").read_bytes()
169
+ _extract_cache_archive(archive, staging)
170
+ archive.unlink()
171
+ # A cache may contain an older log. Keep this run's subprocess log authoritative.
172
+ (staging / "bake-warmup.log").write_bytes(current_log)
173
+ (staging / "warmup.log").write_bytes(current_log)
174
+ result = _verify(str(staging), args.sm)
175
+ if result == 0:
176
+ shutil.copytree(staging, args.out, dirs_exist_ok=True)
177
+ return result
145
178
  finally:
146
179
  try:
147
- hf.delete_repo(repo_id=repo, repo_type="dataset")
180
+ _delete_artifacts(repo)
148
181
  except Exception:
149
- log(f"WARNING: could not delete temporary repository {repo}; remove it manually")
182
+ log(
183
+ f"WARNING: could not delete temporary Azure artifacts for {repo}; remove it manually"
184
+ )
150
185
 
151
186
 
152
187
  def _extract_cache_archive(archive_path, destination) -> None:
@@ -168,13 +203,13 @@ def _extract_cache_archive(archive_path, destination) -> None:
168
203
 
169
204
 
170
205
  def _status_present(api, repo: str, retries: int = 1) -> bool:
171
- """Authoritative out/STATUS check, retried to ride out a transient HF list error."""
206
+ """Authoritative out/STATUS check, retried to ride out a transient Azure read error."""
172
207
  for i in range(retries):
173
208
  try:
174
209
  if "out/STATUS" in api.list_repo_files(repo, repo_type="dataset"):
175
210
  return True
176
211
  except Exception as e:
177
- log(f"hf list err (status recheck {i + 1}/{retries}): {str(e)[:100]}")
212
+ log(f"artifact status recheck {i + 1}/{retries}: {type(e).__name__}")
178
213
  if i < retries - 1:
179
214
  time.sleep(5)
180
215
  return False
@@ -1,16 +1,9 @@
1
- """Sandbox-side entry for the kernel-cache bake (runs INSIDE the cu128 worker image on a GPU sandbox).
1
+ """Warm kernels using private Azure source and output artifacts.
2
2
 
3
- The published worker image ships DEPS only — the flash code (incl. kernel_warmup.py) is fetched from
4
- HF at runtime, exactly like a real worker. So this entry:
5
- 1. snapshot_downloads the flash package (code/**) the CI helper uploaded to a temp HF dataset,
6
- 2. warms kernels at their final /opt/flash/kernelcache path in the training interpreter,
7
- 3. replays an exported copy, then uploads the verified archive back under out/,
8
- 4. writes an out/STATUS marker LAST so the helper knows the run finished (and its rc).
9
-
10
- It is invoked by the CI helper via the sandbox command. Env:
11
- BAKE_HF_REPO the temp HF dataset (private) holding code/** and receiving out/
12
- BAKE_ARCH TORCH_CUDA_ARCH_LIST target, e.g. "9.0"
13
- HF_TOKEN write token for BAKE_HF_REPO
3
+ The CI helper seeds the standalone Azure client into the sandbox image. The entry
4
+ fetches code/**, compiles and replays the exported cache, then publishes out/STATUS
5
+ last. BAKE_ARTIFACT_REPO names the disposable namespace; BAKE_ARCH selects CUDA.
6
+ Only a bounded Azure container SAS reaches the sandbox.
14
7
  """
15
8
 
16
9
  import io
@@ -36,18 +29,16 @@ def _replace_cache_with_exported_copy(cache_dir: str, archive_path: str) -> None
36
29
 
37
30
 
38
31
  def main() -> int:
39
- os.environ["HF_HUB_DISABLE_XET"] = "1"
40
- from huggingface_hub import HfApi, snapshot_download
32
+ from artifact_api import ArtifactStore, download_snapshot
41
33
 
42
- repo = os.environ["BAKE_HF_REPO"]
43
- token = os.environ["HF_TOKEN"]
34
+ repo = os.environ["BAKE_ARTIFACT_REPO"]
44
35
  arch = os.environ.get("BAKE_ARCH", "")
45
- api = HfApi(token=token)
36
+ api = ArtifactStore()
46
37
 
47
38
  # Upload a STARTED marker FIRST -- before the code download / warmup -- so a CI-side
48
39
  # timeout can tell whether this entrypoint even ran. Present on a timeout = the warmup started (so it
49
40
  # hung or was slow); absent = the pod ran the wrong entrypoint, OR this upload itself failed while
50
- # the warmup is still running. Retry a few times so a transient HF blip doesn't drop the marker and
41
+ # the warmup is still running. Retry a few times so a transient Azure error doesn't drop the marker and
51
42
  # make the helper misread a slow run as a wrong entrypoint.
52
43
  started_uploaded = False
53
44
  for attempt in range(3):
@@ -63,7 +54,10 @@ def main() -> int:
63
54
  break
64
55
  except Exception as e:
65
56
  # keep the "out/STARTED" token in the line so it greps the same as the success/WARNING lines
66
- print(f"[bake] out/STARTED upload attempt {attempt + 1}/3 failed: {e}", flush=True)
57
+ print(
58
+ f"[bake] out/STARTED upload attempt {attempt + 1}/3 failed: {type(e).__name__}",
59
+ flush=True,
60
+ )
67
61
  if attempt < 2: # no point sleeping after the last attempt
68
62
  time.sleep(3)
69
63
  if not started_uploaded:
@@ -72,12 +66,11 @@ def main() -> int:
72
66
  print("[bake] WARNING: out/STARTED never uploaded; warmup still proceeds", flush=True)
73
67
 
74
68
  # the flash code the helper uploaded (upload_code -> code/flash); run the warmup from it.
75
- snapshot_download(
69
+ download_snapshot(
76
70
  repo_id=repo,
77
71
  repo_type="dataset",
78
72
  allow_patterns=["code/**"],
79
73
  local_dir="/runcode",
80
- token=token,
81
74
  )
82
75
 
83
76
  env = {**os.environ, "PYTHONPATH": "/runcode/code"}
@@ -124,8 +117,7 @@ def main() -> int:
124
117
  with open(os.path.join(cache_dir, "cache_validation.json"), "w") as output:
125
118
  json.dump(validation, output)
126
119
  print(f"[bake] kernel_warmup rc={rc}", flush=True)
127
- # Hub repositories reject nested .cache paths (FlashInfer uses one). Transport the exact
128
- # directory layout as an archive, compiled at its final image path, without a second tree copy.
120
+ # Preserve nested cache paths and their absolute compilation locations in one archive.
129
121
  try:
130
122
  with tarfile.open(CACHE_ARCHIVE, "w:gz", compresslevel=1) as archive:
131
123
  archive.add(cache_dir, arcname=".")
@@ -143,7 +135,7 @@ def main() -> int:
143
135
  )
144
136
  except Exception as e:
145
137
  rc = 1
146
- print(f"[bake] artifact upload failed: {e}", flush=True)
138
+ print(f"[bake] artifact upload failed: {type(e).__name__}", flush=True)
147
139
  # STATUS marker LAST: its presence is the helper's completion signal.
148
140
  api.upload_file(
149
141
  path_or_fileobj=io.BytesIO(f"rc={rc}\narch={arch}\n".encode()),
@@ -50,52 +50,39 @@ revision data; physical reclamation of unreferenced objects is intentionally not
50
50
  part of this cutover. Do not attach an age-only Blob lifecycle deletion policy:
51
51
  it can delete objects still referenced by pinned checkpoints.
52
52
 
53
+ ## Kernel-cache builds
54
+
55
+ Kernel-cache CI uses the separate private `build-artifacts` container. Its dedicated
56
+ identity has Blob Data Contributor on that container and Blob Delegator on the
57
+ account. GitHub uses `AZURE_BUILD_CLIENT_ID` and `AZURE_BUILD_CLIENT_SECRET`, with
58
+ the existing tenant setting. It cannot access dev or production training artifacts.
59
+ The GPU sandbox receives only a bounded SAS; the CI identity deletes its disposable
60
+ source/cache namespace afterward. Hugging Face is no longer used for build transport.
61
+
53
62
  ## Three-day migration
54
63
 
55
- The migration tool is the only Hugging Face reader for Flash-owned storage. It is
56
- an operator tool, never imported by the runtime. It freezes a rolling **72-hour**
57
- UTC window when the plan is created. It selects files by their authoritative
58
- last-commit timestamps at pinned source revisions. A checkpoint is selected as a
59
- whole by its newest file, so an upload crossing the cutoff does not lose shards.
60
- Older checkpoints are excluded even when their repository has a recent heartbeat.
61
- Unknown timestamps fail the plan rather than widening the window.
62
-
63
- 1. Drain active training runs and pause submissions on the old release. Back up
64
- the private run records and checkpoint/serving registry. Export the registry's
65
- immutable artifact pins into `serving-references.json`, an array of
66
- `{"repo":"Freesolo-Co/flashrun-...","revision":"<40-hex>","path":"sft/<run>/checkpoints/step-1/adapter"}`. Use `[]` only
67
- after confirming no registry pins need preservation. Nonterminal run-state source,
68
- environment, warm-start, and custom-resume pins are collected automatically.
69
- 2. Create a plan for each controller/container. Keep the plan outside Git:
70
-
71
- ```sh
72
- PYTHONPATH=. python scripts/migrate_recent_hf_artifacts.py plan /secure/recent-artifacts.json \
73
- --run-state-directory /backup/.flash/runs \
74
- --references /secure/serving-references.json
75
- ```
76
-
77
- 3. Review its UTC cutoff/end, repositories, exact revisions, paths, sizes, and
78
- source hashes. A required pin outside the window is an explicit planning error;
79
- retire that binding or run before proceeding. Do not silently broaden the
80
- three-day window. Stop source writes while planning and copying; otherwise
81
- create a fresh plan after the final drain.
82
- 4. With the intended Azure destination configured, apply the reviewed inventory:
83
-
84
- ```sh
85
- PYTHONPATH=. python scripts/migrate_recent_hf_artifacts.py apply /secure/recent-artifacts.json
86
- ```
87
-
88
- Every file is checked against its pinned Git/LFS identity, streamed to Azure,
89
- downloaded again, and verified before its manifest and original-revision alias
90
- are published. The operation can be rerun. It never overwrites an existing
91
- Azure head and never deletes source Hub data. Inspect the `.verified.json`
92
- report before cutover. Reusing a destination with an existing head preserves
93
- that head; reconcile deliberately if it predates the reviewed inventory.
94
- 5. Deploy the matching Flash controller, worker source, and serving changes, plus
95
- the Freesolo companion. Check the selected run's logs, checkpoint listing,
96
- adapter download/export, a paid SFT save/resume, custom restore, and serving
97
- generation in dev before promoting. The Modal image extension installs the
98
- Azure SDK even when a qualified base image predates this release.
64
+ The one-time importer was retired after the final inventory was published and
65
+ verified. The completed window is **2026-10-30 04:33:53.792845 UTC through
66
+ 2026-11-02 04:33:53.792845 UTC**. Files were selected by authoritative last-commit
67
+ timestamps at pinned revisions; whole checkpoints were selected by their newest
68
+ file, so the cutoff did not split checkpoint shards.
69
+
70
+ The import verified 11,159 distinct repository/content objects (601,802,167,791
71
+ bytes), then published and read back 629 revision snapshots covering 29,321 file
72
+ entries. Original Hub revision aliases preserve existing checkpoint bindings.
73
+ 673 staged objects outside the final referenced inventory were removed only after
74
+ checking every published manifest. Source Hugging Face data was not deleted.
75
+
76
+ The private inventory and per-object verification receipts remain with the migration
77
+ operator. The importer can be recovered from the pre-cleanup Git revision for an
78
+ explicitly reviewed recovery; it is no longer shipped with Flash. See
79
+ [the migration evidence](azure-migration-evidence-20261102.json).
80
+
81
+ Deployment is a separate step: keep submissions paused while switching the matching
82
+ Flash controller, serving release, and Freesolo configuration. Verify production
83
+ checkpoint downloads and generation before reopening submissions. Dev SFT and
84
+ custom save/resume, exact checkpoint/optimizer restoration, downloads, and hosted
85
+ serving already passed before the production drain.
99
86
 
100
87
  Archived worker source from before this cutover is retained only as data. The new
101
88
  bootstrap refuses to execute its retired HF backend. Start a new run from a migrated
@@ -0,0 +1,17 @@
1
+ {
2
+ "window": {
3
+ "cutoff": "2026-10-30T04:33:53.792845+00:00",
4
+ "end": "2026-11-02T04:33:53.792845+00:00"
5
+ },
6
+ "container": "artifacts",
7
+ "snapshots": 629,
8
+ "repositories": 423,
9
+ "manifest_file_entries": 29321,
10
+ "verified_distinct_objects": 11159,
11
+ "verified_distinct_bytes": 601802167791,
12
+ "errors": 0,
13
+ "aliases_manifests_heads_read_back": true,
14
+ "unreferenced_staging_objects_removed": 673,
15
+ "unreferenced_staging_bytes_removed": 41242800594,
16
+ "source_hugging_face_data_deleted": false
17
+ }
@@ -115,7 +115,7 @@ def _index_shard_names(names: set[str], suffix: str) -> set[str]:
115
115
 
116
116
 
117
117
  # The largest attempt identity any artifact name may carry. An attempt number reaches a filename and
118
- # an HF path, so it is bounded rather than merely nonnegative: an unbounded int would still format,
118
+ # an artifact path, so it is bounded rather than merely nonnegative: an unbounded int would still format,
119
119
  # and the resulting name is the one thing a later reader has to match exactly.
120
120
  MAX_ATTEMPT_ID = (1 << 63) - 1
121
121
 
@@ -6,7 +6,7 @@ actually serve? Answering it separately let them drift -- customer-owned resolut
6
6
  config that hosted admission accepted, so the same artifact was refused before provisioning on one
7
7
  path and refused inside the paid container on the other.
8
8
 
9
- Every rule here is decidable from the config alone. Nothing in this module reads the hub, the
9
+ Every rule here is decidable from the config alone. Nothing in this module reads artifact storage, the
10
10
  filesystem, or a provider, so a verdict costs a caller nothing beyond the bytes it already holds.
11
11
  That is why it sits beside the rank and target rules rather than under a deployment path: the
12
12
  GPU-side materializer revalidates a cache entry it already holds, and it needs the same verdict
@@ -44,7 +44,7 @@ class _DuplicateConfigKey(AdapterConfigError):
44
44
  def parse_declared_adapter_config(raw: bytes, *, source: str) -> DeclaredAdapterConfig:
45
45
  """read one adapter's declared provenance, or refuse the bytes.
46
46
 
47
- ``source`` names the file in every message, so a caller that fetched the config from the hub and
47
+ ``source`` names the file in every message, so a caller that fetched the config from artifact storage and
48
48
  one that read it off disk both report a location the reader can go look at.
49
49
  """
50
50
 
@@ -105,13 +105,9 @@ def _positive_int(value: Any, *, source: str, field: str) -> int:
105
105
 
106
106
 
107
107
  def _file_identity(file_info: Any) -> str:
108
- # the producer is `ArtifactStore.list_repo_tree`, which yields `ArtifactFile` -- whose `__init__` always
109
- # sets `path`/`size`/`blob_id` and builds `lfs` as a `BlobLfsInfo` (field `sha256`, no `oid`).
110
- # verified at the declared floor `huggingface-hub>=1.2.0` and at the installed 1.27.0, so the
111
- # mapping-shaped `lfs` and the `lfs.oid` spelling have no producer in the supported range.
112
- # `getattr` stays only on `lfs` itself, which is legitimately optional (non-LFS files), and on
113
- # the entry object, because a listing also yields `RepoFolder` -- no size, no blob_id -- which
114
- # must fail closed rather than hash to a folder's tree id.
108
+ # Azure ArtifactFile entries carry path, size and the content digest in blob_id.
109
+ # lfs.sha256 remains accepted for saved source metadata from before the migration.
110
+ # reject entries without file identity rather than hashing a folder or missing metadata.
115
111
  lfs = getattr(file_info, "lfs", None)
116
112
  oid = getattr(lfs, "sha256", None)
117
113
  size = getattr(lfs, "size", None)
@@ -487,7 +483,7 @@ def inspect_adapter_config(
487
483
  def load_artifact_adapter_config(
488
484
  adapter_ref: str, token: str | None = None, revision: str | None = None
489
485
  ) -> Mapping[str, Any]:
490
- """Read ``adapter_config.json`` for a Flash adapter ref from Hugging Face datasets."""
486
+ """Read ``adapter_config.json`` for a Flash adapter ref from private Azure storage."""
491
487
  repo, filename = adapter_config_path_from_ref(adapter_ref)
492
488
  try:
493
489
  from flash.artifacts.api import download_file
@@ -70,16 +70,17 @@ class ArtifactStore:
70
70
  revision = store.commit(repo_id, {})
71
71
  return SimpleNamespace(oid=revision)
72
72
 
73
- def update_repo_settings(self, repo_id, *, repo_type="dataset", private=True):
74
- if not private:
75
- raise ValueError("Flash artifact storage is private")
76
- with open_container(self.token) as container:
77
- if container.get_container_properties().public_access:
78
- raise ValueError("Flash artifact container must deny public access")
79
-
80
73
  def upload_file(
81
- self, *, path_or_fileobj, path_in_repo, repo_id, repo_type="dataset", commit_message=None
74
+ self,
75
+ *,
76
+ path_or_fileobj,
77
+ path_in_repo,
78
+ repo_id,
79
+ repo_type="dataset",
80
+ commit_message=None,
81
+ immutable=False,
82
82
  ):
83
+ # immutable=True is reserved for finalized files that cannot change until this call returns.
83
84
  validate_path(path_in_repo)
84
85
  with tempfile.TemporaryDirectory(prefix="flash-artifact-upload-") as temporary:
85
86
  source = path_or_fileobj
@@ -94,7 +95,10 @@ class ArtifactStore:
94
95
  shutil.copyfileobj(path_or_fileobj, output, length=1024 * 1024)
95
96
  with open_container(self.token) as container:
96
97
  store = BlobArtifacts(container)
97
- entry = {**store.put_file(repo_id, source), "modified": time.time()}
98
+ entry = {
99
+ **store.put_file(repo_id, source, immutable=immutable),
100
+ "modified": time.time(),
101
+ }
98
102
  revision = store.commit(repo_id, {path_in_repo: entry})
99
103
  return SimpleNamespace(oid=revision)
100
104
 
@@ -110,7 +114,9 @@ class ArtifactStore:
110
114
  delete_patterns=None,
111
115
  commit_message=None,
112
116
  parent_commit=None,
117
+ immutable=False,
113
118
  ):
119
+ # immutable=True requires the caller to keep every file stable for the entire publication.
114
120
  if path_in_repo:
115
121
  validate_path(path_in_repo)
116
122
  root = Path(folder_path).resolve()
@@ -131,7 +137,7 @@ class ArtifactStore:
131
137
  ):
132
138
  continue
133
139
  additions[prefix + relative] = {
134
- **store.put_file(repo_id, path),
140
+ **store.put_file(repo_id, path, immutable=immutable),
135
141
  "modified": time.time(),
136
142
  }
137
143
  revision = store.commit(