freesolo-flash-dev 1.2.116__tar.gz → 1.2.118__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 (1389) hide show
  1. freesolo_flash_dev-1.2.118/.env.example +130 -0
  2. freesolo_flash_dev-1.2.118/.github/workflows/auto-rebake.yml +284 -0
  3. freesolo_flash_dev-1.2.118/.github/workflows/bake-kernel-cache.yml +259 -0
  4. freesolo_flash_dev-1.2.118/.github/workflows/ci.yml +203 -0
  5. freesolo_flash_dev-1.2.118/.github/workflows/deploy-modal-dev.yml +347 -0
  6. freesolo_flash_dev-1.2.118/.github/workflows/deploy-modal.yml +375 -0
  7. freesolo_flash_dev-1.2.118/.github/workflows/publish-image.yml +110 -0
  8. freesolo_flash_dev-1.2.118/.github/workflows/publish-serving-image.yml +213 -0
  9. freesolo_flash_dev-1.2.118/.github/workflows/worker-image.yml +169 -0
  10. freesolo_flash_dev-1.2.118/CHANGELOG.md +203 -0
  11. freesolo_flash_dev-1.2.118/CONTRIBUTING.md +136 -0
  12. freesolo_flash_dev-1.2.118/Dockerfile.worker +477 -0
  13. freesolo_flash_dev-1.2.118/PKG-INFO +346 -0
  14. freesolo_flash_dev-1.2.118/docker/kernel_fingerprint.py +333 -0
  15. freesolo_flash_dev-1.2.118/docker/make_rp_handler.py +58 -0
  16. freesolo_flash_dev-1.2.118/docs/serving-contract.md +216 -0
  17. freesolo_flash_dev-1.2.118/flash/__init__.py +5 -0
  18. freesolo_flash_dev-1.2.118/flash/_internal/channel.py +166 -0
  19. freesolo_flash_dev-1.2.118/flash/_internal/diagnostics.py +170 -0
  20. freesolo_flash_dev-1.2.118/flash/_internal/version.py +10 -0
  21. freesolo_flash_dev-1.2.118/flash/adapters/lora_rank.py +615 -0
  22. freesolo_flash_dev-1.2.118/flash/cli/__init__.py +1 -0
  23. freesolo_flash_dev-1.2.118/flash/cli/__main__.py +6 -0
  24. freesolo_flash_dev-1.2.118/flash/cli/commands/__init__.py +1 -0
  25. freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops/imports.py +369 -0
  26. freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops/list.py +91 -0
  27. freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops/push.py +726 -0
  28. freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops/retained.py +156 -0
  29. freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops/setup.py +979 -0
  30. freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing/episode.py +307 -0
  31. freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing/eval.py +990 -0
  32. freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing/evaluations.py +195 -0
  33. freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing/params.py +256 -0
  34. freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing/test.py +833 -0
  35. freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing/warnings.py +393 -0
  36. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/account.py +255 -0
  37. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/catalog.py +46 -0
  38. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/deploy.py +903 -0
  39. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/log_follow.py +208 -0
  40. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/runs.py +410 -0
  41. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/traces.py +217 -0
  42. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/train.py +513 -0
  43. freesolo_flash_dev-1.2.118/flash/cli/commands/ops/worker_output.py +160 -0
  44. freesolo_flash_dev-1.2.118/flash/cli/commands/serving/deploy.py +332 -0
  45. freesolo_flash_dev-1.2.118/flash/cli/commands/serving/identity.py +282 -0
  46. freesolo_flash_dev-1.2.118/flash/cli/commands/serving/status.py +102 -0
  47. freesolo_flash_dev-1.2.118/flash/cli/commands/serving/undeploy.py +177 -0
  48. freesolo_flash_dev-1.2.118/flash/cli/parsing/account.py +56 -0
  49. freesolo_flash_dev-1.2.118/flash/cli/parsing/env.py +261 -0
  50. freesolo_flash_dev-1.2.118/flash/cli/parsing/main.py +349 -0
  51. freesolo_flash_dev-1.2.118/flash/cli/parsing/models.py +131 -0
  52. freesolo_flash_dev-1.2.118/flash/cli/parsing/serve_parser.py +220 -0
  53. freesolo_flash_dev-1.2.118/flash/cli/parsing/traces.py +53 -0
  54. freesolo_flash_dev-1.2.118/flash/cli/parsing/training.py +109 -0
  55. freesolo_flash_dev-1.2.118/flash/cli/scaffold/TRAINING.md +1815 -0
  56. freesolo_flash_dev-1.2.118/flash/cli/ui/cost.py +70 -0
  57. freesolo_flash_dev-1.2.118/flash/cli/ui/heartbeat.py +497 -0
  58. freesolo_flash_dev-1.2.118/flash/cli/ui/render.py +795 -0
  59. freesolo_flash_dev-1.2.118/flash/cli/ui/tables.py +155 -0
  60. freesolo_flash_dev-1.2.118/flash/client/__init__.py +91 -0
  61. freesolo_flash_dev-1.2.118/flash/client/freesolo_api.py +241 -0
  62. freesolo_flash_dev-1.2.118/flash/client/http.py +916 -0
  63. freesolo_flash_dev-1.2.118/flash/content/multimodal.py +892 -0
  64. freesolo_flash_dev-1.2.118/flash/core/spec.py +863 -0
  65. freesolo_flash_dev-1.2.118/flash/core/spec_persistence.py +109 -0
  66. freesolo_flash_dev-1.2.118/flash/cost/analytical.py +949 -0
  67. freesolo_flash_dev-1.2.118/flash/cost/facts.py +214 -0
  68. freesolo_flash_dev-1.2.118/flash/cost/types.py +353 -0
  69. freesolo_flash_dev-1.2.118/flash/engine/plan/model_config_probe.py +130 -0
  70. freesolo_flash_dev-1.2.118/flash/engine/plan/steps.py +141 -0
  71. freesolo_flash_dev-1.2.118/flash/engine/plan/vram.py +991 -0
  72. freesolo_flash_dev-1.2.118/flash/engine/profiling/dataset_profile.py +353 -0
  73. freesolo_flash_dev-1.2.118/flash/engine/profiling/image_tokens.py +300 -0
  74. freesolo_flash_dev-1.2.118/flash/engine/profiling/sft_workload.py +982 -0
  75. freesolo_flash_dev-1.2.118/flash/engine/profiling/tokenizer.py +29 -0
  76. freesolo_flash_dev-1.2.118/flash/engine/support/verl_checkpoint.py +168 -0
  77. freesolo_flash_dev-1.2.118/flash/engine/support/worker_entrypoint.py +22 -0
  78. freesolo_flash_dev-1.2.118/flash/engine/worker/__init__.py +1 -0
  79. freesolo_flash_dev-1.2.118/flash/engine/worker/__main__.py +4 -0
  80. freesolo_flash_dev-1.2.118/flash/engine/worker/entry/opd.py +166 -0
  81. freesolo_flash_dev-1.2.118/flash/engine/worker/entry/rl.py +14 -0
  82. freesolo_flash_dev-1.2.118/flash/engine/worker/entry/sft.py +204 -0
  83. freesolo_flash_dev-1.2.118/flash/engine/worker/entry/worker.py +225 -0
  84. freesolo_flash_dev-1.2.118/flash/engine/worker/io/heartbeat.py +741 -0
  85. freesolo_flash_dev-1.2.118/flash/engine/worker/io/hf.py +589 -0
  86. freesolo_flash_dev-1.2.118/flash/engine/worker/io/prefetch.py +290 -0
  87. freesolo_flash_dev-1.2.118/flash/engine/worker/io/wandb_log.py +20 -0
  88. freesolo_flash_dev-1.2.118/flash/engine/worker/model/adapter.py +173 -0
  89. freesolo_flash_dev-1.2.118/flash/engine/worker/model/decoding.py +52 -0
  90. freesolo_flash_dev-1.2.118/flash/engine/worker/perf/lifecycle.py +413 -0
  91. freesolo_flash_dev-1.2.118/flash/engine/worker/runtime/state.py +122 -0
  92. freesolo_flash_dev-1.2.118/flash/engine/worker/teacher/client.py +875 -0
  93. freesolo_flash_dev-1.2.118/flash/engine/worker/train/core/lifecycle/finalize.py +113 -0
  94. freesolo_flash_dev-1.2.118/flash/engine/worker/train/core/lifecycle/ledger.py +143 -0
  95. freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry/opd_train.py +246 -0
  96. freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry/opd_train_runner.py +797 -0
  97. freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry/rl_train.py +377 -0
  98. freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry/rl_train_runner.py +934 -0
  99. freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry/sft_train.py +675 -0
  100. freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry/sft_train_runner.py +949 -0
  101. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/bridging/batching.py +205 -0
  102. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/bridging/bridge.py +976 -0
  103. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/bridging/failures.py +117 -0
  104. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/bridging/prompts.py +164 -0
  105. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/bridging/scoring.py +88 -0
  106. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/multiturn/validation.py +80 -0
  107. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/failures.py +434 -0
  108. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/overrides.py +522 -0
  109. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/progress.py +160 -0
  110. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/prompt_preparation.py +217 -0
  111. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/protocol.py +22 -0
  112. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/reporting.py +94 -0
  113. freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration/state.py +111 -0
  114. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/launch/checkpoints.py +642 -0
  115. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/launch/config.py +61 -0
  116. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/launch/inputs.py +605 -0
  117. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/launch/verl_config.py +814 -0
  118. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/rollout/multi_turn.py +825 -0
  119. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/rollout/scoring.py +73 -0
  120. freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/rollout/single_turn.py +247 -0
  121. freesolo_flash_dev-1.2.118/flash/engine/worker/train/sft/setup/__init__.py +0 -0
  122. freesolo_flash_dev-1.2.118/flash/engine/worker/train/sft/setup/checkpoints.py +307 -0
  123. freesolo_flash_dev-1.2.118/flash/engine/worker/train/sft/setup/config.py +294 -0
  124. freesolo_flash_dev-1.2.118/flash/engine/worker/verl/capabilities.py +929 -0
  125. freesolo_flash_dev-1.2.118/flash/engine/worker/verl/checkpoints.py +896 -0
  126. freesolo_flash_dev-1.2.118/flash/engine/worker/verl/diagnostics.py +513 -0
  127. freesolo_flash_dev-1.2.118/flash/engine/worker/verl/parallelism.py +77 -0
  128. freesolo_flash_dev-1.2.118/flash/envs/__init__.py +9 -0
  129. freesolo_flash_dev-1.2.118/flash/envs/loading/__init__.py +0 -0
  130. freesolo_flash_dev-1.2.118/flash/envs/loading/adapter.py +727 -0
  131. freesolo_flash_dev-1.2.118/flash/envs/loading/base.py +221 -0
  132. freesolo_flash_dev-1.2.118/flash/envs/loading/loader.py +985 -0
  133. freesolo_flash_dev-1.2.118/flash/envs/loading/pull.py +223 -0
  134. freesolo_flash_dev-1.2.118/flash/envs/loading/staged.py +490 -0
  135. freesolo_flash_dev-1.2.118/flash/envs/meta/__init__.py +0 -0
  136. freesolo_flash_dev-1.2.118/flash/envs/meta/cache_security.py +189 -0
  137. freesolo_flash_dev-1.2.118/flash/envs/meta/evaluations.py +620 -0
  138. freesolo_flash_dev-1.2.118/flash/envs/meta/identity.py +267 -0
  139. freesolo_flash_dev-1.2.118/flash/envs/meta/namespace_listing.py +75 -0
  140. freesolo_flash_dev-1.2.118/flash/envs/package/__init__.py +0 -0
  141. freesolo_flash_dev-1.2.118/flash/providers/__init__.py +1 -0
  142. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/__init__.py +0 -0
  143. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/bootstrapping/__init__.py +0 -0
  144. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/bootstrapping/bootstrap.py +961 -0
  145. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/instances/__init__.py +0 -0
  146. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/instances/instance.py +401 -0
  147. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/instances/poll.py +470 -0
  148. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/instances/poll_instance.py +719 -0
  149. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/instances/provider.py +187 -0
  150. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/instances/terminal_artifacts.py +268 -0
  151. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/net/__init__.py +0 -0
  152. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/net/http.py +206 -0
  153. freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/net/worker.py +366 -0
  154. freesolo_flash_dev-1.2.118/flash/providers/artifacts/__init__.py +0 -0
  155. freesolo_flash_dev-1.2.118/flash/providers/artifacts/hf.py +581 -0
  156. freesolo_flash_dev-1.2.118/flash/providers/artifacts/preload_runpod.py +525 -0
  157. freesolo_flash_dev-1.2.118/flash/providers/artifacts/weight_cache.py +864 -0
  158. freesolo_flash_dev-1.2.118/flash/providers/core/__init__.py +0 -0
  159. freesolo_flash_dev-1.2.118/flash/providers/core/allocator.py +987 -0
  160. freesolo_flash_dev-1.2.118/flash/providers/core/base.py +950 -0
  161. freesolo_flash_dev-1.2.118/flash/providers/core/fit_errors.py +414 -0
  162. freesolo_flash_dev-1.2.118/flash/providers/core/preflight.py +214 -0
  163. freesolo_flash_dev-1.2.118/flash/providers/core/realized.py +65 -0
  164. freesolo_flash_dev-1.2.118/flash/providers/core/registry.py +87 -0
  165. freesolo_flash_dev-1.2.118/flash/providers/core/sharding.py +111 -0
  166. freesolo_flash_dev-1.2.118/flash/providers/lambda_/__init__.py +1 -0
  167. freesolo_flash_dev-1.2.118/flash/providers/lambda_/client/__init__.py +0 -0
  168. freesolo_flash_dev-1.2.118/flash/providers/lambda_/client/api.py +322 -0
  169. freesolo_flash_dev-1.2.118/flash/providers/lambda_/client/auth.py +15 -0
  170. freesolo_flash_dev-1.2.118/flash/providers/lambda_/client/gpus.py +104 -0
  171. freesolo_flash_dev-1.2.118/flash/providers/lambda_/client/preflight.py +15 -0
  172. freesolo_flash_dev-1.2.118/flash/providers/lambda_/client/pricing.py +57 -0
  173. freesolo_flash_dev-1.2.118/flash/providers/lambda_/execution/__init__.py +1 -0
  174. freesolo_flash_dev-1.2.118/flash/providers/lambda_/execution/provider.py +208 -0
  175. freesolo_flash_dev-1.2.118/flash/providers/lambda_/jobs/__init__.py +973 -0
  176. freesolo_flash_dev-1.2.118/flash/providers/lambda_/jobs/builders.py +121 -0
  177. freesolo_flash_dev-1.2.118/flash/providers/runpod/__init__.py +1 -0
  178. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/__init__.py +0 -0
  179. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/api.py +457 -0
  180. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/auth.py +109 -0
  181. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/cost.py +52 -0
  182. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/gpus.py +83 -0
  183. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/preflight.py +24 -0
  184. freesolo_flash_dev-1.2.118/flash/providers/runpod/client/pricing.py +19 -0
  185. freesolo_flash_dev-1.2.118/flash/providers/runpod/execution/__init__.py +0 -0
  186. freesolo_flash_dev-1.2.118/flash/providers/runpod/execution/job_execution.py +457 -0
  187. freesolo_flash_dev-1.2.118/flash/providers/runpod/execution/jobs.py +243 -0
  188. freesolo_flash_dev-1.2.118/flash/providers/runpod/execution/polling.py +562 -0
  189. freesolo_flash_dev-1.2.118/flash/providers/runpod/execution/provider.py +221 -0
  190. freesolo_flash_dev-1.2.118/flash/providers/runpod/execution/resources.py +256 -0
  191. freesolo_flash_dev-1.2.118/flash/providers/runpod/serverless/__init__.py +0 -0
  192. freesolo_flash_dev-1.2.118/flash/providers/runpod/serverless/endpoints.py +960 -0
  193. freesolo_flash_dev-1.2.118/flash/providers/vast/__init__.py +1 -0
  194. freesolo_flash_dev-1.2.118/flash/providers/vast/client/__init__.py +0 -0
  195. freesolo_flash_dev-1.2.118/flash/providers/vast/client/api.py +473 -0
  196. freesolo_flash_dev-1.2.118/flash/providers/vast/client/auth.py +16 -0
  197. freesolo_flash_dev-1.2.118/flash/providers/vast/client/preflight.py +17 -0
  198. freesolo_flash_dev-1.2.118/flash/providers/vast/client/pricing.py +187 -0
  199. freesolo_flash_dev-1.2.118/flash/providers/vast/execution/__init__.py +1 -0
  200. freesolo_flash_dev-1.2.118/flash/providers/vast/execution/provider.py +214 -0
  201. freesolo_flash_dev-1.2.118/flash/providers/vast/jobs/__init__.py +956 -0
  202. freesolo_flash_dev-1.2.118/flash/providers/vast/jobs/builders.py +227 -0
  203. freesolo_flash_dev-1.2.118/flash/py.typed +0 -0
  204. freesolo_flash_dev-1.2.118/flash/runner/__init__.py +1 -0
  205. freesolo_flash_dev-1.2.118/flash/runner/accounting/__init__.py +0 -0
  206. freesolo_flash_dev-1.2.118/flash/runner/accounting/artifacts.py +254 -0
  207. freesolo_flash_dev-1.2.118/flash/runner/accounting/costs.py +407 -0
  208. freesolo_flash_dev-1.2.118/flash/runner/accounting/reconciliation.py +444 -0
  209. freesolo_flash_dev-1.2.118/flash/runner/accounting/weight_cache.py +84 -0
  210. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/__init__.py +0 -0
  211. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/attempts.py +151 -0
  212. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/deadlines.py +100 -0
  213. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/preparation.py +633 -0
  214. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/reporting.py +262 -0
  215. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/state.py +399 -0
  216. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/status.py +438 -0
  217. freesolo_flash_dev-1.2.118/flash/runner/lifecycle/submit.py +356 -0
  218. freesolo_flash_dev-1.2.118/flash/runner/results/__init__.py +0 -0
  219. freesolo_flash_dev-1.2.118/flash/runner/results/checkpoints.py +121 -0
  220. freesolo_flash_dev-1.2.118/flash/runner/results/verified_revisions.py +169 -0
  221. freesolo_flash_dev-1.2.118/flash/runner/supervise/__init__.py +0 -0
  222. freesolo_flash_dev-1.2.118/flash/runner/supervise/attach.py +911 -0
  223. freesolo_flash_dev-1.2.118/flash/runner/supervise/deploy.py +819 -0
  224. freesolo_flash_dev-1.2.118/flash/runner/supervise/errors.py +9 -0
  225. freesolo_flash_dev-1.2.118/flash/runner/supervise/lifecycle.py +360 -0
  226. freesolo_flash_dev-1.2.118/flash/runner/supervise/recovery.py +641 -0
  227. freesolo_flash_dev-1.2.118/flash/runner/supervise/seed_submission.py +895 -0
  228. freesolo_flash_dev-1.2.118/flash/runner/supervise/transitions.py +339 -0
  229. freesolo_flash_dev-1.2.118/flash/runtime_capsule/profiles.py +66 -0
  230. freesolo_flash_dev-1.2.118/flash/schema/__init__.py +925 -0
  231. freesolo_flash_dev-1.2.118/flash/schema/fields.py +444 -0
  232. freesolo_flash_dev-1.2.118/flash/serve/app/chat_stream.py +143 -0
  233. freesolo_flash_dev-1.2.118/flash/serve/app/http.py +331 -0
  234. freesolo_flash_dev-1.2.118/flash/serve/app/manifest.py +655 -0
  235. freesolo_flash_dev-1.2.118/flash/serve/app/materialize.py +998 -0
  236. freesolo_flash_dev-1.2.118/flash/serve/app/openai.py +273 -0
  237. freesolo_flash_dev-1.2.118/flash/serve/contract/__init__.py +0 -0
  238. freesolo_flash_dev-1.2.118/flash/serve/contract/errors.py +73 -0
  239. freesolo_flash_dev-1.2.118/flash/serve/contract/responses.py +107 -0
  240. freesolo_flash_dev-1.2.118/flash/serve/contract/urls.py +138 -0
  241. freesolo_flash_dev-1.2.118/flash/serve/control/types.py +877 -0
  242. freesolo_flash_dev-1.2.118/flash/serve/deployment/__init__.py +0 -0
  243. freesolo_flash_dev-1.2.118/flash/serve/deployment/adapter_check.py +179 -0
  244. freesolo_flash_dev-1.2.118/flash/serve/deployment/deploy.py +832 -0
  245. freesolo_flash_dev-1.2.118/flash/serve/deployment/export.py +589 -0
  246. freesolo_flash_dev-1.2.118/flash/serve/deployment/resolve.py +399 -0
  247. freesolo_flash_dev-1.2.118/flash/serve/provisioning/__init__.py +35 -0
  248. freesolo_flash_dev-1.2.118/flash/serve/provisioning/common/__init__.py +0 -0
  249. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/__init__.py +0 -0
  250. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/execution/__init__.py +0 -0
  251. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/execution/deployment.py +644 -0
  252. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/execution/lifecycle.py +116 -0
  253. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/execution/operations.py +623 -0
  254. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/execution/sdk.py +851 -0
  255. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/planning/__init__.py +0 -0
  256. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/planning/plan.py +304 -0
  257. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/planning/resources.py +266 -0
  258. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/readiness_checks/__init__.py +0 -0
  259. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/readiness_checks/probe.py +135 -0
  260. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/readiness_checks/readiness.py +245 -0
  261. freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/readiness_checks/teardown.py +186 -0
  262. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/__init__.py +0 -0
  263. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/lifecycle.py +83 -0
  264. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/operations.py +992 -0
  265. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/plan.py +221 -0
  266. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/probe.py +74 -0
  267. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/readiness.py +683 -0
  268. freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/resources.py +316 -0
  269. freesolo_flash_dev-1.2.118/flash/serve/request/__init__.py +0 -0
  270. freesolo_flash_dev-1.2.118/flash/serve/request/openai.py +353 -0
  271. freesolo_flash_dev-1.2.118/flash/serve/request/streaming.py +260 -0
  272. freesolo_flash_dev-1.2.118/flash/serve/request/thinking.py +226 -0
  273. freesolo_flash_dev-1.2.118/flash/serve/request/transport.py +537 -0
  274. freesolo_flash_dev-1.2.118/flash/serve/request/validation.py +641 -0
  275. freesolo_flash_dev-1.2.118/flash/serve/runtime/__init__.py +59 -0
  276. freesolo_flash_dev-1.2.118/flash/serve/runtime/adapters.py +276 -0
  277. freesolo_flash_dev-1.2.118/flash/serve/runtime/engine.py +700 -0
  278. freesolo_flash_dev-1.2.118/flash/serve/runtime/multimodal.py +77 -0
  279. freesolo_flash_dev-1.2.118/flash/serve/runtime/sampling.py +144 -0
  280. freesolo_flash_dev-1.2.118/flash/serve/runtime/structured_outputs.py +18 -0
  281. freesolo_flash_dev-1.2.118/flash/serve/runtime/types.py +565 -0
  282. freesolo_flash_dev-1.2.118/flash/server/__main__.py +6 -0
  283. freesolo_flash_dev-1.2.118/flash/server/asgi/__init__.py +0 -0
  284. freesolo_flash_dev-1.2.118/flash/server/asgi/app.py +433 -0
  285. freesolo_flash_dev-1.2.118/flash/server/asgi/cli.py +69 -0
  286. freesolo_flash_dev-1.2.118/flash/server/billing/__init__.py +0 -0
  287. freesolo_flash_dev-1.2.118/flash/server/billing/retry.py +127 -0
  288. freesolo_flash_dev-1.2.118/flash/server/domain/__init__.py +0 -0
  289. freesolo_flash_dev-1.2.118/flash/server/domain/ops/__init__.py +0 -0
  290. freesolo_flash_dev-1.2.118/flash/server/domain/ops/reconcile.py +146 -0
  291. freesolo_flash_dev-1.2.118/flash/server/domain/ops/repo_cleanup.py +385 -0
  292. freesolo_flash_dev-1.2.118/flash/server/domain/registry/__init__.py +0 -0
  293. freesolo_flash_dev-1.2.118/flash/server/domain/registry/checkpoints.py +111 -0
  294. freesolo_flash_dev-1.2.118/flash/server/domain/registry/environment_registry.py +246 -0
  295. freesolo_flash_dev-1.2.118/flash/server/domain/registry/envs.py +796 -0
  296. freesolo_flash_dev-1.2.118/flash/server/domain/registry/runs.py +182 -0
  297. freesolo_flash_dev-1.2.118/flash/server/domain/teacher/__init__.py +0 -0
  298. freesolo_flash_dev-1.2.118/flash/server/domain/teacher/broker.py +900 -0
  299. freesolo_flash_dev-1.2.118/flash/server/domain/teacher/requests.py +212 -0
  300. freesolo_flash_dev-1.2.118/flash/server/platform/__init__.py +0 -0
  301. freesolo_flash_dev-1.2.118/flash/server/platform/deps.py +254 -0
  302. freesolo_flash_dev-1.2.118/flash/server/platform/internal_client.py +194 -0
  303. freesolo_flash_dev-1.2.118/flash/server/platform/locks.py +79 -0
  304. freesolo_flash_dev-1.2.118/flash/server/platform/runtime.py +799 -0
  305. freesolo_flash_dev-1.2.118/flash/server/routes/envs.py +205 -0
  306. freesolo_flash_dev-1.2.118/flash/server/routes/runs.py +553 -0
  307. freesolo_flash_dev-1.2.118/flash/server/routes/serving.py +724 -0
  308. freesolo_flash_dev-1.2.118/flash/server/routes/serving_chat.py +269 -0
  309. freesolo_flash_dev-1.2.118/flash/server/routes/serving_completion.py +467 -0
  310. freesolo_flash_dev-1.2.118/flash/server/routes/serving_revisions.py +350 -0
  311. freesolo_flash_dev-1.2.118/flash/server/routes/serving_smoke.py +672 -0
  312. freesolo_flash_dev-1.2.118/flash/server/routes/teacher.py +139 -0
  313. freesolo_flash_dev-1.2.118/flash/serving/__init__.py +0 -0
  314. freesolo_flash_dev-1.2.118/flash/serving/app/README.md +323 -0
  315. freesolo_flash_dev-1.2.118/flash/serving/app/__init__.py +1 -0
  316. freesolo_flash_dev-1.2.118/flash/serving/app/modal_app.py +784 -0
  317. freesolo_flash_dev-1.2.118/flash/serving/src/accounting/__init__.py +0 -0
  318. freesolo_flash_dev-1.2.118/flash/serving/src/accounting/usage.py +215 -0
  319. freesolo_flash_dev-1.2.118/flash/serving/src/accounting/usage_facts.py +54 -0
  320. freesolo_flash_dev-1.2.118/flash/serving/src/accounting/usage_outbox.py +986 -0
  321. freesolo_flash_dev-1.2.118/flash/serving/src/engine/__init__.py +0 -0
  322. freesolo_flash_dev-1.2.118/flash/serving/src/engine/boot.py +226 -0
  323. freesolo_flash_dev-1.2.118/flash/serving/src/engine/errors.py +105 -0
  324. freesolo_flash_dev-1.2.118/flash/serving/src/engine/generation.py +316 -0
  325. freesolo_flash_dev-1.2.118/flash/serving/src/engine/lora_engine.py +767 -0
  326. freesolo_flash_dev-1.2.118/flash/serving/src/engine/lora_entries.py +50 -0
  327. freesolo_flash_dev-1.2.118/flash/serving/src/engine/model_config.py +204 -0
  328. freesolo_flash_dev-1.2.118/flash/serving/src/engine/support.py +242 -0
  329. freesolo_flash_dev-1.2.118/flash/serving/src/http/__init__.py +0 -0
  330. freesolo_flash_dev-1.2.118/flash/serving/src/http/adapter_routes.py +266 -0
  331. freesolo_flash_dev-1.2.118/flash/serving/src/http/context.py +227 -0
  332. freesolo_flash_dev-1.2.118/flash/serving/src/http/inference_routes.py +356 -0
  333. freesolo_flash_dev-1.2.118/flash/serving/src/http/router.py +144 -0
  334. freesolo_flash_dev-1.2.118/flash/serving/src/http/routing.py +145 -0
  335. freesolo_flash_dev-1.2.118/flash/serving/src/io/__init__.py +0 -0
  336. freesolo_flash_dev-1.2.118/flash/serving/src/io/multimodal.py +109 -0
  337. freesolo_flash_dev-1.2.118/flash/serving/src/io/openai_request.py +63 -0
  338. freesolo_flash_dev-1.2.118/flash/serving/src/io/openai_stream.py +458 -0
  339. freesolo_flash_dev-1.2.118/flash/serving/src/io/provenance.py +69 -0
  340. freesolo_flash_dev-1.2.118/flash/serving/src/io/requests.py +43 -0
  341. freesolo_flash_dev-1.2.118/flash/serving/src/io/responses.py +263 -0
  342. freesolo_flash_dev-1.2.118/flash/serving/src/io/schemas.py +482 -0
  343. freesolo_flash_dev-1.2.118/flash/serving/src/io/streaming.py +134 -0
  344. freesolo_flash_dev-1.2.118/flash/serving/src/io/structured_outputs.py +25 -0
  345. freesolo_flash_dev-1.2.118/flash/serving/src/store/__init__.py +0 -0
  346. freesolo_flash_dev-1.2.118/flash/serving/src/store/access.py +94 -0
  347. freesolo_flash_dev-1.2.118/flash/serving/src/store/lookup.py +118 -0
  348. freesolo_flash_dev-1.2.118/flash/serving/src/store/persistence.py +310 -0
  349. freesolo_flash_dev-1.2.118/flash/serving/src/store/registration.py +228 -0
  350. freesolo_flash_dev-1.2.118/flash/serving/src/store/registry.py +176 -0
  351. freesolo_flash_dev-1.2.118/flash/serving/src/store/supabase_rest.py +50 -0
  352. freesolo_flash_dev-1.2.118/flash/serving/src/store/undeploy.py +277 -0
  353. freesolo_flash_dev-1.2.118/flash/snapshot/__init__.py +1 -0
  354. freesolo_flash_dev-1.2.118/flash/snapshot/archive.py +387 -0
  355. freesolo_flash_dev-1.2.118/flash/teacher/__init__.py +0 -0
  356. freesolo_flash_dev-1.2.118/pyproject.toml +325 -0
  357. freesolo_flash_dev-1.2.118/scripts/check_source_layout.py +292 -0
  358. freesolo_flash_dev-1.2.118/scripts/check_verl_pin_exists.py +80 -0
  359. freesolo_flash_dev-1.2.118/tests/_helpers/managed_chat.py +49 -0
  360. freesolo_flash_dev-1.2.118/tests/_helpers/profile.py +203 -0
  361. freesolo_flash_dev-1.2.118/tests/_helpers/runner.py +53 -0
  362. freesolo_flash_dev-1.2.118/tests/conftest.py +499 -0
  363. freesolo_flash_dev-1.2.118/tests/live/__init__.py +0 -0
  364. freesolo_flash_dev-1.2.118/tests/live/test_lambda_live.py +51 -0
  365. freesolo_flash_dev-1.2.118/tests/live/test_runpod_live.py +36 -0
  366. freesolo_flash_dev-1.2.118/tests/live/test_vast_live.py +56 -0
  367. freesolo_flash_dev-1.2.118/tests/serving/conftest.py +262 -0
  368. freesolo_flash_dev-1.2.118/tests/serving/test_base_model_serving.py +294 -0
  369. freesolo_flash_dev-1.2.118/tests/serving/test_chat_auth.py +264 -0
  370. freesolo_flash_dev-1.2.118/tests/serving/test_chat_authorizer.py +525 -0
  371. freesolo_flash_dev-1.2.118/tests/serving/test_checkpoint_model_validation.py +218 -0
  372. freesolo_flash_dev-1.2.118/tests/serving/test_engine_error_status.py +225 -0
  373. freesolo_flash_dev-1.2.118/tests/serving/test_fp8_config.py +169 -0
  374. freesolo_flash_dev-1.2.118/tests/serving/test_immutable_engine.py +332 -0
  375. freesolo_flash_dev-1.2.118/tests/serving/test_immutable_revisions.py +1503 -0
  376. freesolo_flash_dev-1.2.118/tests/serving/test_immutable_schemas.py +147 -0
  377. freesolo_flash_dev-1.2.118/tests/serving/test_mirror_sampling_parity.py +396 -0
  378. freesolo_flash_dev-1.2.118/tests/serving/test_modal_deploy_identity.py +112 -0
  379. freesolo_flash_dev-1.2.118/tests/serving/test_modal_image_paths.py +220 -0
  380. freesolo_flash_dev-1.2.118/tests/serving/test_model_config.py +168 -0
  381. freesolo_flash_dev-1.2.118/tests/serving/test_multimodal.py +1150 -0
  382. freesolo_flash_dev-1.2.118/tests/serving/test_per_model_gpu.py +818 -0
  383. freesolo_flash_dev-1.2.118/tests/serving/test_persistence.py +268 -0
  384. freesolo_flash_dev-1.2.118/tests/serving/test_pre_first_disconnect.py +475 -0
  385. freesolo_flash_dev-1.2.118/tests/serving/test_prequant_config.py +42 -0
  386. freesolo_flash_dev-1.2.118/tests/serving/test_registry.py +308 -0
  387. freesolo_flash_dev-1.2.118/tests/serving/test_registry_coverage.py +65 -0
  388. freesolo_flash_dev-1.2.118/tests/serving/test_request_body_limit.py +183 -0
  389. freesolo_flash_dev-1.2.118/tests/serving/test_router.py +1656 -0
  390. freesolo_flash_dev-1.2.118/tests/serving/test_router_coverage.py +294 -0
  391. freesolo_flash_dev-1.2.118/tests/serving/test_router_edge_coverage.py +303 -0
  392. freesolo_flash_dev-1.2.118/tests/serving/test_schemas_coverage.py +188 -0
  393. freesolo_flash_dev-1.2.118/tests/serving/test_serve_reasoning_split.py +276 -0
  394. freesolo_flash_dev-1.2.118/tests/serving/test_serve_structured_outputs.py +810 -0
  395. freesolo_flash_dev-1.2.118/tests/serving/test_serve_thinking.py +153 -0
  396. freesolo_flash_dev-1.2.118/tests/serving/test_settings.py +93 -0
  397. freesolo_flash_dev-1.2.118/tests/serving/test_structured_outputs.py +397 -0
  398. freesolo_flash_dev-1.2.118/tests/serving/test_structured_outputs_coverage.py +22 -0
  399. freesolo_flash_dev-1.2.118/tests/serving/test_supabase_rest_coverage.py +62 -0
  400. freesolo_flash_dev-1.2.118/tests/serving/test_usage_outbox.py +1934 -0
  401. freesolo_flash_dev-1.2.118/tests/serving/test_usage_reporter.py +936 -0
  402. freesolo_flash_dev-1.2.118/tests/serving_conformance/__init__.py +0 -0
  403. freesolo_flash_dev-1.2.118/tests/serving_conformance/conftest.py +162 -0
  404. freesolo_flash_dev-1.2.118/tests/serving_conformance/test_contract.py +786 -0
  405. freesolo_flash_dev-1.2.118/tests/test_adapter_shard_completeness.py +376 -0
  406. freesolo_flash_dev-1.2.118/tests/test_agent_flash_cli_contract.py +291 -0
  407. freesolo_flash_dev-1.2.118/tests/test_allocator.py +2461 -0
  408. freesolo_flash_dev-1.2.118/tests/test_backend_common.py +4906 -0
  409. freesolo_flash_dev-1.2.118/tests/test_bake_kernel_cache.py +165 -0
  410. freesolo_flash_dev-1.2.118/tests/test_billing_retry.py +712 -0
  411. freesolo_flash_dev-1.2.118/tests/test_cancel_remote.py +2214 -0
  412. freesolo_flash_dev-1.2.118/tests/test_catalog_consistency.py +217 -0
  413. freesolo_flash_dev-1.2.118/tests/test_catalog_only_models.py +88 -0
  414. freesolo_flash_dev-1.2.118/tests/test_charge_pricing.py +791 -0
  415. freesolo_flash_dev-1.2.118/tests/test_chat_foundations.py +371 -0
  416. freesolo_flash_dev-1.2.118/tests/test_checkpoint_lifecycle.py +132 -0
  417. freesolo_flash_dev-1.2.118/tests/test_checkpoints.py +690 -0
  418. freesolo_flash_dev-1.2.118/tests/test_cli_commands.py +5451 -0
  419. freesolo_flash_dev-1.2.118/tests/test_cli_commands_coverage.py +581 -0
  420. freesolo_flash_dev-1.2.118/tests/test_cli_credential_shadowing.py +162 -0
  421. freesolo_flash_dev-1.2.118/tests/test_cli_errors.py +285 -0
  422. freesolo_flash_dev-1.2.118/tests/test_cli_estimate.py +1230 -0
  423. freesolo_flash_dev-1.2.118/tests/test_cli_gpus_flag.py +350 -0
  424. freesolo_flash_dev-1.2.118/tests/test_cli_help.py +211 -0
  425. freesolo_flash_dev-1.2.118/tests/test_cli_main_coverage.py +19 -0
  426. freesolo_flash_dev-1.2.118/tests/test_cli_render_coverage.py +643 -0
  427. freesolo_flash_dev-1.2.118/tests/test_cli_render_theme.py +1775 -0
  428. freesolo_flash_dev-1.2.118/tests/test_cli_serve_deploy.py +1071 -0
  429. freesolo_flash_dev-1.2.118/tests/test_cli_serve_status.py +394 -0
  430. freesolo_flash_dev-1.2.118/tests/test_cli_serve_undeploy.py +521 -0
  431. freesolo_flash_dev-1.2.118/tests/test_cli_traces.py +709 -0
  432. freesolo_flash_dev-1.2.118/tests/test_cli_wandb_warning.py +123 -0
  433. freesolo_flash_dev-1.2.118/tests/test_client.py +1411 -0
  434. freesolo_flash_dev-1.2.118/tests/test_client_import_purity.py +235 -0
  435. freesolo_flash_dev-1.2.118/tests/test_client_server_integration.py +347 -0
  436. freesolo_flash_dev-1.2.118/tests/test_config_env_vars.py +412 -0
  437. freesolo_flash_dev-1.2.118/tests/test_console_upload.py +145 -0
  438. freesolo_flash_dev-1.2.118/tests/test_controlled_experiment_repairs.py +503 -0
  439. freesolo_flash_dev-1.2.118/tests/test_cost_analytical.py +467 -0
  440. freesolo_flash_dev-1.2.118/tests/test_cost_equation.py +26 -0
  441. freesolo_flash_dev-1.2.118/tests/test_cost_estimate.py +1022 -0
  442. freesolo_flash_dev-1.2.118/tests/test_cost_hardware.py +685 -0
  443. freesolo_flash_dev-1.2.118/tests/test_cost_models.py +219 -0
  444. freesolo_flash_dev-1.2.118/tests/test_deploy_alias_move_warning.py +554 -0
  445. freesolo_flash_dev-1.2.118/tests/test_deploy_latency.py +426 -0
  446. freesolo_flash_dev-1.2.118/tests/test_dev_channel.py +749 -0
  447. freesolo_flash_dev-1.2.118/tests/test_disk_gb.py +211 -0
  448. freesolo_flash_dev-1.2.118/tests/test_endpoint_name.py +45 -0
  449. freesolo_flash_dev-1.2.118/tests/test_env_cache_evict.py +515 -0
  450. freesolo_flash_dev-1.2.118/tests/test_env_delete.py +148 -0
  451. freesolo_flash_dev-1.2.118/tests/test_env_download.py +109 -0
  452. freesolo_flash_dev-1.2.118/tests/test_env_download_api.py +95 -0
  453. freesolo_flash_dev-1.2.118/tests/test_env_evaluations.py +4337 -0
  454. freesolo_flash_dev-1.2.118/tests/test_env_list_api.py +117 -0
  455. freesolo_flash_dev-1.2.118/tests/test_env_list_cli.py +102 -0
  456. freesolo_flash_dev-1.2.118/tests/test_env_list_hub.py +213 -0
  457. freesolo_flash_dev-1.2.118/tests/test_env_no_install.py +85 -0
  458. freesolo_flash_dev-1.2.118/tests/test_env_publish.py +1962 -0
  459. freesolo_flash_dev-1.2.118/tests/test_env_pull.py +1255 -0
  460. freesolo_flash_dev-1.2.118/tests/test_env_pull_coverage.py +167 -0
  461. freesolo_flash_dev-1.2.118/tests/test_env_pull_loader_coverage.py +332 -0
  462. freesolo_flash_dev-1.2.118/tests/test_env_pull_managed_control_plane.py +174 -0
  463. freesolo_flash_dev-1.2.118/tests/test_env_push.py +1733 -0
  464. freesolo_flash_dev-1.2.118/tests/test_env_rate_limit_resolve.py +334 -0
  465. freesolo_flash_dev-1.2.118/tests/test_env_ref_pinning.py +73 -0
  466. freesolo_flash_dev-1.2.118/tests/test_env_test.py +3436 -0
  467. freesolo_flash_dev-1.2.118/tests/test_envs_coverage.py +117 -0
  468. freesolo_flash_dev-1.2.118/tests/test_export.py +1579 -0
  469. freesolo_flash_dev-1.2.118/tests/test_flash_mvp.py +133 -0
  470. freesolo_flash_dev-1.2.118/tests/test_flash_worker.py +1530 -0
  471. freesolo_flash_dev-1.2.118/tests/test_fused_expert_warmstart.py +1894 -0
  472. freesolo_flash_dev-1.2.118/tests/test_github_urlopen_retry.py +365 -0
  473. freesolo_flash_dev-1.2.118/tests/test_gpu_type_single_field.py +198 -0
  474. freesolo_flash_dev-1.2.118/tests/test_gpus.py +541 -0
  475. freesolo_flash_dev-1.2.118/tests/test_grpo_checkpoint_durability.py +1728 -0
  476. freesolo_flash_dev-1.2.118/tests/test_grpo_params.py +767 -0
  477. freesolo_flash_dev-1.2.118/tests/test_grpo_resident_sizing.py +193 -0
  478. freesolo_flash_dev-1.2.118/tests/test_grpo_reward_batching.py +334 -0
  479. freesolo_flash_dev-1.2.118/tests/test_grpo_rollout_contract.py +484 -0
  480. freesolo_flash_dev-1.2.118/tests/test_grpo_rollout_identity.py +824 -0
  481. freesolo_flash_dev-1.2.118/tests/test_idle_endpoint_reaper.py +554 -0
  482. freesolo_flash_dev-1.2.118/tests/test_image_environment_capability.py +92 -0
  483. freesolo_flash_dev-1.2.118/tests/test_instance_bootstrap_coverage.py +2635 -0
  484. freesolo_flash_dev-1.2.118/tests/test_jobs.py +7330 -0
  485. freesolo_flash_dev-1.2.118/tests/test_kernel_fingerprint.py +367 -0
  486. freesolo_flash_dev-1.2.118/tests/test_lambda_api_coverage.py +510 -0
  487. freesolo_flash_dev-1.2.118/tests/test_lambda_runner.py +4169 -0
  488. freesolo_flash_dev-1.2.118/tests/test_login_perms.py +342 -0
  489. freesolo_flash_dev-1.2.118/tests/test_lora_rank_preflight.py +710 -0
  490. freesolo_flash_dev-1.2.118/tests/test_lora_targeting.py +780 -0
  491. freesolo_flash_dev-1.2.118/tests/test_lora_targeting_pinned_verl.py +240 -0
  492. freesolo_flash_dev-1.2.118/tests/test_managed_hf_repo.py +96 -0
  493. freesolo_flash_dev-1.2.118/tests/test_mirror_sampling_parity.py +365 -0
  494. freesolo_flash_dev-1.2.118/tests/test_multi_gpu_gate.py +1639 -0
  495. freesolo_flash_dev-1.2.118/tests/test_multimodal_training.py +1208 -0
  496. freesolo_flash_dev-1.2.118/tests/test_named_reward_metrics.py +93 -0
  497. freesolo_flash_dev-1.2.118/tests/test_oom_escalate_gpu.py +973 -0
  498. freesolo_flash_dev-1.2.118/tests/test_opd.py +1894 -0
  499. freesolo_flash_dev-1.2.118/tests/test_opd_multiturn_eos_boundary.py +75 -0
  500. freesolo_flash_dev-1.2.118/tests/test_opd_multiturn_failure_exit.py +449 -0
  501. freesolo_flash_dev-1.2.118/tests/test_opd_resume_safety.py +1528 -0
  502. freesolo_flash_dev-1.2.118/tests/test_opd_train.py +9722 -0
  503. freesolo_flash_dev-1.2.118/tests/test_orchestrator_flash.py +484 -0
  504. freesolo_flash_dev-1.2.118/tests/test_packing_coverage.py +179 -0
  505. freesolo_flash_dev-1.2.118/tests/test_parasail_teacher.py +1440 -0
  506. freesolo_flash_dev-1.2.118/tests/test_persisted_spec_envelope.py +94 -0
  507. freesolo_flash_dev-1.2.118/tests/test_poll_helpers.py +262 -0
  508. freesolo_flash_dev-1.2.118/tests/test_preflight.py +290 -0
  509. freesolo_flash_dev-1.2.118/tests/test_projects.py +652 -0
  510. freesolo_flash_dev-1.2.118/tests/test_prompt_budget.py +397 -0
  511. freesolo_flash_dev-1.2.118/tests/test_provider_preflight_coverage.py +59 -0
  512. freesolo_flash_dev-1.2.118/tests/test_provider_routing.py +2902 -0
  513. freesolo_flash_dev-1.2.118/tests/test_provider_teardown_robustness.py +152 -0
  514. freesolo_flash_dev-1.2.118/tests/test_providers_symmetry.py +464 -0
  515. freesolo_flash_dev-1.2.118/tests/test_realized_cost.py +445 -0
  516. freesolo_flash_dev-1.2.118/tests/test_repo_cleanup.py +621 -0
  517. freesolo_flash_dev-1.2.118/tests/test_resolve_params_b.py +75 -0
  518. freesolo_flash_dev-1.2.118/tests/test_resume_on_retry.py +1541 -0
  519. freesolo_flash_dev-1.2.118/tests/test_rl_train.py +8787 -0
  520. freesolo_flash_dev-1.2.118/tests/test_rollout_samples.py +364 -0
  521. freesolo_flash_dev-1.2.118/tests/test_runmgmt.py +3208 -0
  522. freesolo_flash_dev-1.2.118/tests/test_runpod_api_delete.py +155 -0
  523. freesolo_flash_dev-1.2.118/tests/test_runpod_key_fingerprint.py +401 -0
  524. freesolo_flash_dev-1.2.118/tests/test_runpod_key_waterfall.py +391 -0
  525. freesolo_flash_dev-1.2.118/tests/test_runtime_capsule.py +434 -0
  526. freesolo_flash_dev-1.2.118/tests/test_serve.py +1555 -0
  527. freesolo_flash_dev-1.2.118/tests/test_serve_app_bootstrap_http.py +1246 -0
  528. freesolo_flash_dev-1.2.118/tests/test_serve_app_packaging.py +227 -0
  529. freesolo_flash_dev-1.2.118/tests/test_serve_chat_transport.py +800 -0
  530. freesolo_flash_dev-1.2.118/tests/test_serve_modal_sdk.py +1047 -0
  531. freesolo_flash_dev-1.2.118/tests/test_serve_modal_sdk_deadlines.py +126 -0
  532. freesolo_flash_dev-1.2.118/tests/test_serve_modal_teardown_identity.py +105 -0
  533. freesolo_flash_dev-1.2.118/tests/test_serve_profiles.py +359 -0
  534. freesolo_flash_dev-1.2.118/tests/test_serve_provisioning_common.py +404 -0
  535. freesolo_flash_dev-1.2.118/tests/test_serve_provisioning_modal.py +2932 -0
  536. freesolo_flash_dev-1.2.118/tests/test_serve_provisioning_runpod.py +4630 -0
  537. freesolo_flash_dev-1.2.118/tests/test_serve_reasoning_content.py +638 -0
  538. freesolo_flash_dev-1.2.118/tests/test_serve_resolve_provenance.py +498 -0
  539. freesolo_flash_dev-1.2.118/tests/test_serve_runtime_engine.py +910 -0
  540. freesolo_flash_dev-1.2.118/tests/test_serve_runtime_package.py +101 -0
  541. freesolo_flash_dev-1.2.118/tests/test_server_api.py +10004 -0
  542. freesolo_flash_dev-1.2.118/tests/test_server_app_coverage.py +267 -0
  543. freesolo_flash_dev-1.2.118/tests/test_server_billing.py +886 -0
  544. freesolo_flash_dev-1.2.118/tests/test_server_checkpoints_coverage.py +77 -0
  545. freesolo_flash_dev-1.2.118/tests/test_server_db.py +485 -0
  546. freesolo_flash_dev-1.2.118/tests/test_server_envs_coverage.py +2377 -0
  547. freesolo_flash_dev-1.2.118/tests/test_server_managed_chat_requests.py +864 -0
  548. freesolo_flash_dev-1.2.118/tests/test_server_managed_chat_revisions.py +744 -0
  549. freesolo_flash_dev-1.2.118/tests/test_server_serving_resources.py +215 -0
  550. freesolo_flash_dev-1.2.118/tests/test_server_standalone.py +1098 -0
  551. freesolo_flash_dev-1.2.118/tests/test_serving_conformance_gate.py +91 -0
  552. freesolo_flash_dev-1.2.118/tests/test_serving_contract.py +1017 -0
  553. freesolo_flash_dev-1.2.118/tests/test_serving_schema_coverage.py +201 -0
  554. freesolo_flash_dev-1.2.118/tests/test_sft_chunked_nll.py +37 -0
  555. freesolo_flash_dev-1.2.118/tests/test_sft_max_context.py +95 -0
  556. freesolo_flash_dev-1.2.118/tests/test_sft_train.py +5330 -0
  557. freesolo_flash_dev-1.2.118/tests/test_sft_workload.py +1503 -0
  558. freesolo_flash_dev-1.2.118/tests/test_source_attestation_flow.py +196 -0
  559. freesolo_flash_dev-1.2.118/tests/test_source_layout.py +230 -0
  560. freesolo_flash_dev-1.2.118/tests/test_source_snapshot.py +210 -0
  561. freesolo_flash_dev-1.2.118/tests/test_spec_and_validation.py +2448 -0
  562. freesolo_flash_dev-1.2.118/tests/test_spec_contract_bytes.py +346 -0
  563. freesolo_flash_dev-1.2.118/tests/test_staged_environment.py +921 -0
  564. freesolo_flash_dev-1.2.118/tests/test_step_metrics.py +514 -0
  565. freesolo_flash_dev-1.2.118/tests/test_step_timing.py +414 -0
  566. freesolo_flash_dev-1.2.118/tests/test_teacher_broker.py +2358 -0
  567. freesolo_flash_dev-1.2.118/tests/test_terminal_artifacts.py +195 -0
  568. freesolo_flash_dev-1.2.118/tests/test_training_controls.py +597 -0
  569. freesolo_flash_dev-1.2.118/tests/test_vast_api.py +773 -0
  570. freesolo_flash_dev-1.2.118/tests/test_vast_api_coverage.py +307 -0
  571. freesolo_flash_dev-1.2.118/tests/test_vast_offers.py +416 -0
  572. freesolo_flash_dev-1.2.118/tests/test_vast_provider_coverage.py +132 -0
  573. freesolo_flash_dev-1.2.118/tests/test_vast_runner.py +2893 -0
  574. freesolo_flash_dev-1.2.118/tests/test_verified_revisions.py +237 -0
  575. freesolo_flash_dev-1.2.118/tests/test_verifiers.py +2931 -0
  576. freesolo_flash_dev-1.2.118/tests/test_verl_checkpoint_export.py +598 -0
  577. freesolo_flash_dev-1.2.118/tests/test_verl_child_plugins.py +799 -0
  578. freesolo_flash_dev-1.2.118/tests/test_verl_silence_watchdog.py +224 -0
  579. freesolo_flash_dev-1.2.118/tests/test_vram_architecture.py +231 -0
  580. freesolo_flash_dev-1.2.118/tests/test_wandb_link.py +394 -0
  581. freesolo_flash_dev-1.2.118/tests/test_wandb_naming.py +167 -0
  582. freesolo_flash_dev-1.2.118/tests/test_warmstart_adapter_download.py +320 -0
  583. freesolo_flash_dev-1.2.118/tests/test_warmstart_cross_repo.py +1611 -0
  584. freesolo_flash_dev-1.2.118/tests/test_warmstart_error_attribution.py +63 -0
  585. freesolo_flash_dev-1.2.118/tests/test_warmstart_image_adapters.py +222 -0
  586. freesolo_flash_dev-1.2.118/tests/test_weight_cache.py +4919 -0
  587. freesolo_flash_dev-1.2.118/tests/test_worker_dryrun.py +175 -0
  588. freesolo_flash_dev-1.2.118/tests/test_worker_hardexit.py +304 -0
  589. freesolo_flash_dev-1.2.118/tests/test_worker_image.py +42 -0
  590. freesolo_flash_dev-1.2.118/tests/test_worker_init_heartbeat.py +1732 -0
  591. freesolo_flash_dev-1.2.118/tests/test_worker_stack.py +2241 -0
  592. freesolo_flash_dev-1.2.118/tests/test_worker_thinking.py +248 -0
  593. freesolo_flash_dev-1.2.118/tests/test_zero2_sharding_gate.py +266 -0
  594. freesolo_flash_dev-1.2.118/uv.lock +5817 -0
  595. freesolo_flash_dev-1.2.116/.env.example +0 -130
  596. freesolo_flash_dev-1.2.116/.github/workflows/auto-rebake.yml +0 -284
  597. freesolo_flash_dev-1.2.116/.github/workflows/bake-kernel-cache.yml +0 -259
  598. freesolo_flash_dev-1.2.116/.github/workflows/ci.yml +0 -198
  599. freesolo_flash_dev-1.2.116/.github/workflows/deploy-modal-dev.yml +0 -347
  600. freesolo_flash_dev-1.2.116/.github/workflows/deploy-modal.yml +0 -375
  601. freesolo_flash_dev-1.2.116/.github/workflows/publish-image.yml +0 -110
  602. freesolo_flash_dev-1.2.116/.github/workflows/publish-serving-image.yml +0 -213
  603. freesolo_flash_dev-1.2.116/.github/workflows/worker-image.yml +0 -169
  604. freesolo_flash_dev-1.2.116/CHANGELOG.md +0 -196
  605. freesolo_flash_dev-1.2.116/CONTRIBUTING.md +0 -136
  606. freesolo_flash_dev-1.2.116/Dockerfile.worker +0 -477
  607. freesolo_flash_dev-1.2.116/PKG-INFO +0 -346
  608. freesolo_flash_dev-1.2.116/docker/kernel_fingerprint.py +0 -333
  609. freesolo_flash_dev-1.2.116/docker/make_rp_handler.py +0 -58
  610. freesolo_flash_dev-1.2.116/docs/serving-contract.md +0 -192
  611. freesolo_flash_dev-1.2.116/flash/__init__.py +0 -13
  612. freesolo_flash_dev-1.2.116/flash/_internal/channel.py +0 -166
  613. freesolo_flash_dev-1.2.116/flash/_internal/diagnostics.py +0 -170
  614. freesolo_flash_dev-1.2.116/flash/adapters/lora_rank.py +0 -615
  615. freesolo_flash_dev-1.2.116/flash/cli/__init__.py +0 -941
  616. freesolo_flash_dev-1.2.116/flash/cli/__main__.py +0 -6
  617. freesolo_flash_dev-1.2.116/flash/cli/commands/__init__.py +0 -973
  618. freesolo_flash_dev-1.2.116/flash/cli/commands/deploy.py +0 -824
  619. freesolo_flash_dev-1.2.116/flash/cli/commands/env/episode.py +0 -307
  620. freesolo_flash_dev-1.2.116/flash/cli/commands/env/eval.py +0 -990
  621. freesolo_flash_dev-1.2.116/flash/cli/commands/env/imports.py +0 -369
  622. freesolo_flash_dev-1.2.116/flash/cli/commands/env/list.py +0 -91
  623. freesolo_flash_dev-1.2.116/flash/cli/commands/env/push.py +0 -726
  624. freesolo_flash_dev-1.2.116/flash/cli/commands/env/retained.py +0 -156
  625. freesolo_flash_dev-1.2.116/flash/cli/commands/env/setup.py +0 -979
  626. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test.py +0 -833
  627. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test_evaluations.py +0 -195
  628. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test_params.py +0 -256
  629. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test_warnings.py +0 -393
  630. freesolo_flash_dev-1.2.116/flash/cli/commands/log_follow.py +0 -207
  631. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_deploy.py +0 -326
  632. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_identity.py +0 -279
  633. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_status.py +0 -100
  634. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_undeploy.py +0 -175
  635. freesolo_flash_dev-1.2.116/flash/cli/commands/traces.py +0 -217
  636. freesolo_flash_dev-1.2.116/flash/cli/commands/train_cost.py +0 -408
  637. freesolo_flash_dev-1.2.116/flash/cli/commands/worker_output.py +0 -159
  638. freesolo_flash_dev-1.2.116/flash/cli/scaffold/TRAINING.md +0 -1815
  639. freesolo_flash_dev-1.2.116/flash/cli/serve_parser.py +0 -220
  640. freesolo_flash_dev-1.2.116/flash/cli/ui/cost.py +0 -73
  641. freesolo_flash_dev-1.2.116/flash/cli/ui/heartbeat.py +0 -499
  642. freesolo_flash_dev-1.2.116/flash/cli/ui/render.py +0 -834
  643. freesolo_flash_dev-1.2.116/flash/cli/ui/tables.py +0 -165
  644. freesolo_flash_dev-1.2.116/flash/client/__init__.py +0 -91
  645. freesolo_flash_dev-1.2.116/flash/client/freesolo_api.py +0 -241
  646. freesolo_flash_dev-1.2.116/flash/client/http.py +0 -916
  647. freesolo_flash_dev-1.2.116/flash/content/multimodal.py +0 -892
  648. freesolo_flash_dev-1.2.116/flash/core/spec.py +0 -863
  649. freesolo_flash_dev-1.2.116/flash/core/spec_persistence.py +0 -109
  650. freesolo_flash_dev-1.2.116/flash/cost/analytical.py +0 -946
  651. freesolo_flash_dev-1.2.116/flash/cost/facts.py +0 -214
  652. freesolo_flash_dev-1.2.116/flash/cost/types.py +0 -353
  653. freesolo_flash_dev-1.2.116/flash/engine/plan/model_config_probe.py +0 -130
  654. freesolo_flash_dev-1.2.116/flash/engine/plan/steps.py +0 -141
  655. freesolo_flash_dev-1.2.116/flash/engine/plan/vram.py +0 -991
  656. freesolo_flash_dev-1.2.116/flash/engine/profiling/dataset_profile.py +0 -349
  657. freesolo_flash_dev-1.2.116/flash/engine/profiling/image_tokens.py +0 -300
  658. freesolo_flash_dev-1.2.116/flash/engine/profiling/sft_workload.py +0 -982
  659. freesolo_flash_dev-1.2.116/flash/engine/profiling/tokenizer.py +0 -29
  660. freesolo_flash_dev-1.2.116/flash/engine/verl_checkpoint.py +0 -142
  661. freesolo_flash_dev-1.2.116/flash/engine/worker/__init__.py +0 -538
  662. freesolo_flash_dev-1.2.116/flash/engine/worker/__main__.py +0 -4
  663. freesolo_flash_dev-1.2.116/flash/engine/worker/entry/opd.py +0 -166
  664. freesolo_flash_dev-1.2.116/flash/engine/worker/entry/rl.py +0 -14
  665. freesolo_flash_dev-1.2.116/flash/engine/worker/entry/sft.py +0 -204
  666. freesolo_flash_dev-1.2.116/flash/engine/worker/io/heartbeat.py +0 -732
  667. freesolo_flash_dev-1.2.116/flash/engine/worker/io/hf.py +0 -588
  668. freesolo_flash_dev-1.2.116/flash/engine/worker/io/prefetch.py +0 -290
  669. freesolo_flash_dev-1.2.116/flash/engine/worker/io/wandb_log.py +0 -20
  670. freesolo_flash_dev-1.2.116/flash/engine/worker/model/adapter.py +0 -167
  671. freesolo_flash_dev-1.2.116/flash/engine/worker/model/decoding.py +0 -51
  672. freesolo_flash_dev-1.2.116/flash/engine/worker/opd_train.py +0 -525
  673. freesolo_flash_dev-1.2.116/flash/engine/worker/opd_train_runner.py +0 -791
  674. freesolo_flash_dev-1.2.116/flash/engine/worker/perf/lifecycle.py +0 -413
  675. freesolo_flash_dev-1.2.116/flash/engine/worker/rl_train.py +0 -566
  676. freesolo_flash_dev-1.2.116/flash/engine/worker/rl_train_runner.py +0 -767
  677. freesolo_flash_dev-1.2.116/flash/engine/worker/runtime/pkg_proxy.py +0 -24
  678. freesolo_flash_dev-1.2.116/flash/engine/worker/sft_train.py +0 -704
  679. freesolo_flash_dev-1.2.116/flash/engine/worker/sft_train_runner.py +0 -936
  680. freesolo_flash_dev-1.2.116/flash/engine/worker/teacher/client.py +0 -875
  681. freesolo_flash_dev-1.2.116/flash/engine/worker/train/core/checkpoint_lifecycle.py +0 -143
  682. freesolo_flash_dev-1.2.116/flash/engine/worker/train/finalize.py +0 -97
  683. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/batching.py +0 -216
  684. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/bridge.py +0 -983
  685. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/bridge_failures.py +0 -117
  686. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/failures.py +0 -429
  687. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/multiturn_validation.py +0 -80
  688. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/overrides.py +0 -522
  689. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/prompt_preparation.py +0 -213
  690. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/prompts.py +0 -161
  691. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/reporting.py +0 -94
  692. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/scoring.py +0 -84
  693. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/state.py +0 -111
  694. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/checkpoints.py +0 -353
  695. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/config.py +0 -61
  696. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/inputs.py +0 -606
  697. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/multi_turn.py +0 -823
  698. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/scoring.py +0 -73
  699. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/single_turn.py +0 -245
  700. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/verl_config.py +0 -812
  701. freesolo_flash_dev-1.2.116/flash/engine/worker/train/sft/checkpoints.py +0 -307
  702. freesolo_flash_dev-1.2.116/flash/engine/worker/train/sft/config.py +0 -294
  703. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/capabilities.py +0 -929
  704. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/checkpoints.py +0 -838
  705. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/diagnostics.py +0 -513
  706. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/parallelism.py +0 -76
  707. freesolo_flash_dev-1.2.116/flash/engine/worker_entrypoint.py +0 -22
  708. freesolo_flash_dev-1.2.116/flash/envs/__init__.py +0 -9
  709. freesolo_flash_dev-1.2.116/flash/envs/adapter.py +0 -727
  710. freesolo_flash_dev-1.2.116/flash/envs/base.py +0 -221
  711. freesolo_flash_dev-1.2.116/flash/envs/cache_security.py +0 -189
  712. freesolo_flash_dev-1.2.116/flash/envs/evaluations.py +0 -620
  713. freesolo_flash_dev-1.2.116/flash/envs/identity.py +0 -267
  714. freesolo_flash_dev-1.2.116/flash/envs/loader.py +0 -985
  715. freesolo_flash_dev-1.2.116/flash/envs/namespace_listing.py +0 -75
  716. freesolo_flash_dev-1.2.116/flash/envs/pull.py +0 -223
  717. freesolo_flash_dev-1.2.116/flash/envs/staged.py +0 -490
  718. freesolo_flash_dev-1.2.116/flash/providers/__init__.py +0 -87
  719. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap.py +0 -961
  720. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/http.py +0 -206
  721. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/instance.py +0 -401
  722. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/poll.py +0 -470
  723. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/poll_instance.py +0 -719
  724. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/provider.py +0 -187
  725. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/terminal_artifacts.py +0 -268
  726. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/worker.py +0 -366
  727. freesolo_flash_dev-1.2.116/flash/providers/allocator.py +0 -985
  728. freesolo_flash_dev-1.2.116/flash/providers/artifacts/hf.py +0 -578
  729. freesolo_flash_dev-1.2.116/flash/providers/artifacts/preload_runpod.py +0 -524
  730. freesolo_flash_dev-1.2.116/flash/providers/artifacts/weight_cache.py +0 -862
  731. freesolo_flash_dev-1.2.116/flash/providers/base.py +0 -959
  732. freesolo_flash_dev-1.2.116/flash/providers/fit_errors.py +0 -414
  733. freesolo_flash_dev-1.2.116/flash/providers/lambda_/__init__.py +0 -208
  734. freesolo_flash_dev-1.2.116/flash/providers/lambda_/api.py +0 -322
  735. freesolo_flash_dev-1.2.116/flash/providers/lambda_/auth.py +0 -15
  736. freesolo_flash_dev-1.2.116/flash/providers/lambda_/gpus.py +0 -104
  737. freesolo_flash_dev-1.2.116/flash/providers/lambda_/jobs/__init__.py +0 -970
  738. freesolo_flash_dev-1.2.116/flash/providers/lambda_/jobs/builders.py +0 -121
  739. freesolo_flash_dev-1.2.116/flash/providers/lambda_/preflight.py +0 -15
  740. freesolo_flash_dev-1.2.116/flash/providers/lambda_/pricing.py +0 -57
  741. freesolo_flash_dev-1.2.116/flash/providers/preflight.py +0 -214
  742. freesolo_flash_dev-1.2.116/flash/providers/realized.py +0 -65
  743. freesolo_flash_dev-1.2.116/flash/providers/runpod/__init__.py +0 -221
  744. freesolo_flash_dev-1.2.116/flash/providers/runpod/api.py +0 -457
  745. freesolo_flash_dev-1.2.116/flash/providers/runpod/auth.py +0 -109
  746. freesolo_flash_dev-1.2.116/flash/providers/runpod/cost.py +0 -52
  747. freesolo_flash_dev-1.2.116/flash/providers/runpod/gpus.py +0 -83
  748. freesolo_flash_dev-1.2.116/flash/providers/runpod/job_execution.py +0 -801
  749. freesolo_flash_dev-1.2.116/flash/providers/runpod/jobs.py +0 -483
  750. freesolo_flash_dev-1.2.116/flash/providers/runpod/preflight.py +0 -24
  751. freesolo_flash_dev-1.2.116/flash/providers/runpod/pricing.py +0 -19
  752. freesolo_flash_dev-1.2.116/flash/providers/runpod/resources.py +0 -268
  753. freesolo_flash_dev-1.2.116/flash/providers/runpod/serverless/__init__.py +0 -24
  754. freesolo_flash_dev-1.2.116/flash/providers/runpod/serverless/endpoints.py +0 -960
  755. freesolo_flash_dev-1.2.116/flash/providers/sharding.py +0 -114
  756. freesolo_flash_dev-1.2.116/flash/providers/vast/__init__.py +0 -214
  757. freesolo_flash_dev-1.2.116/flash/providers/vast/api.py +0 -473
  758. freesolo_flash_dev-1.2.116/flash/providers/vast/auth.py +0 -16
  759. freesolo_flash_dev-1.2.116/flash/providers/vast/jobs/__init__.py +0 -953
  760. freesolo_flash_dev-1.2.116/flash/providers/vast/jobs/builders.py +0 -227
  761. freesolo_flash_dev-1.2.116/flash/providers/vast/preflight.py +0 -17
  762. freesolo_flash_dev-1.2.116/flash/providers/vast/pricing.py +0 -187
  763. freesolo_flash_dev-1.2.116/flash/runner/__init__.py +0 -896
  764. freesolo_flash_dev-1.2.116/flash/runner/artifacts.py +0 -251
  765. freesolo_flash_dev-1.2.116/flash/runner/attempts.py +0 -146
  766. freesolo_flash_dev-1.2.116/flash/runner/costs.py +0 -399
  767. freesolo_flash_dev-1.2.116/flash/runner/deadlines.py +0 -97
  768. freesolo_flash_dev-1.2.116/flash/runner/preparation.py +0 -612
  769. freesolo_flash_dev-1.2.116/flash/runner/reconciliation.py +0 -449
  770. freesolo_flash_dev-1.2.116/flash/runner/results/checkpoints.py +0 -121
  771. freesolo_flash_dev-1.2.116/flash/runner/results/verified_revisions.py +0 -169
  772. freesolo_flash_dev-1.2.116/flash/runner/status.py +0 -436
  773. freesolo_flash_dev-1.2.116/flash/runner/submit.py +0 -350
  774. freesolo_flash_dev-1.2.116/flash/runner/supervise/attach.py +0 -904
  775. freesolo_flash_dev-1.2.116/flash/runner/supervise/deploy.py +0 -859
  776. freesolo_flash_dev-1.2.116/flash/runner/supervise/lifecycle.py +0 -353
  777. freesolo_flash_dev-1.2.116/flash/runner/supervise/recovery.py +0 -641
  778. freesolo_flash_dev-1.2.116/flash/runner/supervise/seed_submission.py +0 -901
  779. freesolo_flash_dev-1.2.116/flash/runner/supervise/transitions.py +0 -328
  780. freesolo_flash_dev-1.2.116/flash/runner/weight_cache.py +0 -81
  781. freesolo_flash_dev-1.2.116/flash/runtime_capsule/profiles.py +0 -66
  782. freesolo_flash_dev-1.2.116/flash/schema/__init__.py +0 -924
  783. freesolo_flash_dev-1.2.116/flash/schema/fields.py +0 -444
  784. freesolo_flash_dev-1.2.116/flash/serve/_chat_transport.py +0 -350
  785. freesolo_flash_dev-1.2.116/flash/serve/adapter_check.py +0 -184
  786. freesolo_flash_dev-1.2.116/flash/serve/app/http.py +0 -407
  787. freesolo_flash_dev-1.2.116/flash/serve/app/manifest.py +0 -655
  788. freesolo_flash_dev-1.2.116/flash/serve/app/materialize.py +0 -998
  789. freesolo_flash_dev-1.2.116/flash/serve/app/openai.py +0 -246
  790. freesolo_flash_dev-1.2.116/flash/serve/control/types.py +0 -877
  791. freesolo_flash_dev-1.2.116/flash/serve/deploy.py +0 -965
  792. freesolo_flash_dev-1.2.116/flash/serve/errors.py +0 -73
  793. freesolo_flash_dev-1.2.116/flash/serve/export.py +0 -589
  794. freesolo_flash_dev-1.2.116/flash/serve/openai_request.py +0 -294
  795. freesolo_flash_dev-1.2.116/flash/serve/provisioning/__init__.py +0 -35
  796. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_deployment.py +0 -640
  797. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_lifecycle.py +0 -112
  798. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_plan.py +0 -305
  799. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_probe.py +0 -136
  800. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_readiness.py +0 -237
  801. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_resources.py +0 -267
  802. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_sdk.py +0 -848
  803. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_teardown.py +0 -179
  804. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_lifecycle.py +0 -84
  805. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_plan.py +0 -222
  806. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_probe.py +0 -74
  807. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_readiness.py +0 -678
  808. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_resources.py +0 -317
  809. freesolo_flash_dev-1.2.116/flash/serve/provisioning/modal.py +0 -624
  810. freesolo_flash_dev-1.2.116/flash/serve/provisioning/runpod.py +0 -993
  811. freesolo_flash_dev-1.2.116/flash/serve/request_validation.py +0 -641
  812. freesolo_flash_dev-1.2.116/flash/serve/resolve.py +0 -399
  813. freesolo_flash_dev-1.2.116/flash/serve/responses.py +0 -107
  814. freesolo_flash_dev-1.2.116/flash/serve/runtime/__init__.py +0 -55
  815. freesolo_flash_dev-1.2.116/flash/serve/runtime/adapters.py +0 -276
  816. freesolo_flash_dev-1.2.116/flash/serve/runtime/engine.py +0 -617
  817. freesolo_flash_dev-1.2.116/flash/serve/runtime/multimodal.py +0 -77
  818. freesolo_flash_dev-1.2.116/flash/serve/runtime/structured_outputs.py +0 -18
  819. freesolo_flash_dev-1.2.116/flash/serve/runtime/types.py +0 -493
  820. freesolo_flash_dev-1.2.116/flash/serve/streaming.py +0 -260
  821. freesolo_flash_dev-1.2.116/flash/serve/thinking.py +0 -226
  822. freesolo_flash_dev-1.2.116/flash/serve/urls.py +0 -148
  823. freesolo_flash_dev-1.2.116/flash/server/__main__.py +0 -73
  824. freesolo_flash_dev-1.2.116/flash/server/app.py +0 -431
  825. freesolo_flash_dev-1.2.116/flash/server/billing/retry.py +0 -126
  826. freesolo_flash_dev-1.2.116/flash/server/domain/checkpoints.py +0 -111
  827. freesolo_flash_dev-1.2.116/flash/server/domain/environment_registry.py +0 -246
  828. freesolo_flash_dev-1.2.116/flash/server/domain/envs.py +0 -796
  829. freesolo_flash_dev-1.2.116/flash/server/domain/reconcile.py +0 -144
  830. freesolo_flash_dev-1.2.116/flash/server/domain/repo_cleanup.py +0 -385
  831. freesolo_flash_dev-1.2.116/flash/server/domain/run_registry.py +0 -181
  832. freesolo_flash_dev-1.2.116/flash/server/domain/teacher_broker.py +0 -898
  833. freesolo_flash_dev-1.2.116/flash/server/domain/teacher_requests.py +0 -212
  834. freesolo_flash_dev-1.2.116/flash/server/platform/deps.py +0 -251
  835. freesolo_flash_dev-1.2.116/flash/server/platform/internal_client.py +0 -194
  836. freesolo_flash_dev-1.2.116/flash/server/platform/locks.py +0 -79
  837. freesolo_flash_dev-1.2.116/flash/server/platform/runtime.py +0 -801
  838. freesolo_flash_dev-1.2.116/flash/server/routes/envs.py +0 -205
  839. freesolo_flash_dev-1.2.116/flash/server/routes/runs.py +0 -552
  840. freesolo_flash_dev-1.2.116/flash/server/routes/serving.py +0 -902
  841. freesolo_flash_dev-1.2.116/flash/server/routes/serving_completion.py +0 -473
  842. freesolo_flash_dev-1.2.116/flash/server/routes/serving_revisions.py +0 -349
  843. freesolo_flash_dev-1.2.116/flash/server/routes/serving_smoke.py +0 -672
  844. freesolo_flash_dev-1.2.116/flash/server/routes/teacher.py +0 -139
  845. freesolo_flash_dev-1.2.116/flash/serving/README.md +0 -323
  846. freesolo_flash_dev-1.2.116/flash/serving/modal_app.py +0 -780
  847. freesolo_flash_dev-1.2.116/flash/serving/src/adapter_routes.py +0 -265
  848. freesolo_flash_dev-1.2.116/flash/serving/src/context.py +0 -225
  849. freesolo_flash_dev-1.2.116/flash/serving/src/engine_boot.py +0 -226
  850. freesolo_flash_dev-1.2.116/flash/serving/src/engine_errors.py +0 -105
  851. freesolo_flash_dev-1.2.116/flash/serving/src/engine_support.py +0 -242
  852. freesolo_flash_dev-1.2.116/flash/serving/src/inference_routes.py +0 -333
  853. freesolo_flash_dev-1.2.116/flash/serving/src/lookup.py +0 -118
  854. freesolo_flash_dev-1.2.116/flash/serving/src/lora_engine.py +0 -976
  855. freesolo_flash_dev-1.2.116/flash/serving/src/lora_entries.py +0 -50
  856. freesolo_flash_dev-1.2.116/flash/serving/src/model_config.py +0 -202
  857. freesolo_flash_dev-1.2.116/flash/serving/src/multimodal.py +0 -79
  858. freesolo_flash_dev-1.2.116/flash/serving/src/persistence.py +0 -310
  859. freesolo_flash_dev-1.2.116/flash/serving/src/registration.py +0 -197
  860. freesolo_flash_dev-1.2.116/flash/serving/src/registry.py +0 -176
  861. freesolo_flash_dev-1.2.116/flash/serving/src/responses.py +0 -230
  862. freesolo_flash_dev-1.2.116/flash/serving/src/router.py +0 -141
  863. freesolo_flash_dev-1.2.116/flash/serving/src/routing.py +0 -145
  864. freesolo_flash_dev-1.2.116/flash/serving/src/schemas.py +0 -482
  865. freesolo_flash_dev-1.2.116/flash/serving/src/serving_io.py +0 -279
  866. freesolo_flash_dev-1.2.116/flash/serving/src/streaming.py +0 -476
  867. freesolo_flash_dev-1.2.116/flash/serving/src/structured_outputs.py +0 -25
  868. freesolo_flash_dev-1.2.116/flash/serving/src/supabase_rest.py +0 -50
  869. freesolo_flash_dev-1.2.116/flash/serving/src/undeploy.py +0 -277
  870. freesolo_flash_dev-1.2.116/flash/serving/src/usage.py +0 -215
  871. freesolo_flash_dev-1.2.116/flash/serving/src/usage_facts.py +0 -54
  872. freesolo_flash_dev-1.2.116/flash/serving/src/usage_outbox.py +0 -986
  873. freesolo_flash_dev-1.2.116/flash/source_snapshot.py +0 -387
  874. freesolo_flash_dev-1.2.116/pyproject.toml +0 -324
  875. freesolo_flash_dev-1.2.116/scripts/check_verl_pin_exists.py +0 -80
  876. freesolo_flash_dev-1.2.116/tests/_helpers/managed_chat.py +0 -44
  877. freesolo_flash_dev-1.2.116/tests/_helpers/profile.py +0 -196
  878. freesolo_flash_dev-1.2.116/tests/_helpers/runner.py +0 -64
  879. freesolo_flash_dev-1.2.116/tests/conftest.py +0 -499
  880. freesolo_flash_dev-1.2.116/tests/live/test_lambda_live.py +0 -51
  881. freesolo_flash_dev-1.2.116/tests/live/test_runpod_live.py +0 -36
  882. freesolo_flash_dev-1.2.116/tests/live/test_vast_live.py +0 -56
  883. freesolo_flash_dev-1.2.116/tests/serving/conftest.py +0 -230
  884. freesolo_flash_dev-1.2.116/tests/serving/test_base_model_serving.py +0 -308
  885. freesolo_flash_dev-1.2.116/tests/serving/test_chat_auth.py +0 -264
  886. freesolo_flash_dev-1.2.116/tests/serving/test_chat_authorizer.py +0 -540
  887. freesolo_flash_dev-1.2.116/tests/serving/test_checkpoint_model_validation.py +0 -218
  888. freesolo_flash_dev-1.2.116/tests/serving/test_engine_error_status.py +0 -225
  889. freesolo_flash_dev-1.2.116/tests/serving/test_fp8_config.py +0 -169
  890. freesolo_flash_dev-1.2.116/tests/serving/test_immutable_engine.py +0 -330
  891. freesolo_flash_dev-1.2.116/tests/serving/test_immutable_revisions.py +0 -1497
  892. freesolo_flash_dev-1.2.116/tests/serving/test_immutable_schemas.py +0 -147
  893. freesolo_flash_dev-1.2.116/tests/serving/test_modal_deploy_identity.py +0 -112
  894. freesolo_flash_dev-1.2.116/tests/serving/test_modal_image_paths.py +0 -217
  895. freesolo_flash_dev-1.2.116/tests/serving/test_model_config.py +0 -168
  896. freesolo_flash_dev-1.2.116/tests/serving/test_multimodal.py +0 -1155
  897. freesolo_flash_dev-1.2.116/tests/serving/test_per_model_gpu.py +0 -835
  898. freesolo_flash_dev-1.2.116/tests/serving/test_persistence.py +0 -268
  899. freesolo_flash_dev-1.2.116/tests/serving/test_pre_first_disconnect.py +0 -472
  900. freesolo_flash_dev-1.2.116/tests/serving/test_prequant_config.py +0 -42
  901. freesolo_flash_dev-1.2.116/tests/serving/test_registry.py +0 -308
  902. freesolo_flash_dev-1.2.116/tests/serving/test_registry_coverage.py +0 -65
  903. freesolo_flash_dev-1.2.116/tests/serving/test_request_body_limit.py +0 -183
  904. freesolo_flash_dev-1.2.116/tests/serving/test_router.py +0 -1550
  905. freesolo_flash_dev-1.2.116/tests/serving/test_router_coverage.py +0 -253
  906. freesolo_flash_dev-1.2.116/tests/serving/test_router_edge_coverage.py +0 -303
  907. freesolo_flash_dev-1.2.116/tests/serving/test_schemas_coverage.py +0 -188
  908. freesolo_flash_dev-1.2.116/tests/serving/test_serve_reasoning_split.py +0 -276
  909. freesolo_flash_dev-1.2.116/tests/serving/test_serve_structured_outputs.py +0 -793
  910. freesolo_flash_dev-1.2.116/tests/serving/test_serve_thinking.py +0 -172
  911. freesolo_flash_dev-1.2.116/tests/serving/test_settings.py +0 -93
  912. freesolo_flash_dev-1.2.116/tests/serving/test_structured_outputs.py +0 -397
  913. freesolo_flash_dev-1.2.116/tests/serving/test_structured_outputs_coverage.py +0 -22
  914. freesolo_flash_dev-1.2.116/tests/serving/test_supabase_rest_coverage.py +0 -62
  915. freesolo_flash_dev-1.2.116/tests/serving/test_usage_outbox.py +0 -1934
  916. freesolo_flash_dev-1.2.116/tests/serving/test_usage_reporter.py +0 -952
  917. freesolo_flash_dev-1.2.116/tests/serving_conformance/conftest.py +0 -162
  918. freesolo_flash_dev-1.2.116/tests/serving_conformance/test_contract.py +0 -786
  919. freesolo_flash_dev-1.2.116/tests/test_adapter_shard_completeness.py +0 -376
  920. freesolo_flash_dev-1.2.116/tests/test_agent_flash_cli_contract.py +0 -297
  921. freesolo_flash_dev-1.2.116/tests/test_allocator.py +0 -2437
  922. freesolo_flash_dev-1.2.116/tests/test_backend_common.py +0 -4904
  923. freesolo_flash_dev-1.2.116/tests/test_bake_kernel_cache.py +0 -165
  924. freesolo_flash_dev-1.2.116/tests/test_billing_retry.py +0 -722
  925. freesolo_flash_dev-1.2.116/tests/test_cancel_remote.py +0 -2184
  926. freesolo_flash_dev-1.2.116/tests/test_catalog_consistency.py +0 -217
  927. freesolo_flash_dev-1.2.116/tests/test_catalog_only_models.py +0 -88
  928. freesolo_flash_dev-1.2.116/tests/test_charge_pricing.py +0 -771
  929. freesolo_flash_dev-1.2.116/tests/test_chat_foundations.py +0 -371
  930. freesolo_flash_dev-1.2.116/tests/test_checkpoint_lifecycle.py +0 -132
  931. freesolo_flash_dev-1.2.116/tests/test_checkpoints.py +0 -686
  932. freesolo_flash_dev-1.2.116/tests/test_cli_commands.py +0 -5442
  933. freesolo_flash_dev-1.2.116/tests/test_cli_commands_coverage.py +0 -566
  934. freesolo_flash_dev-1.2.116/tests/test_cli_credential_shadowing.py +0 -160
  935. freesolo_flash_dev-1.2.116/tests/test_cli_errors.py +0 -285
  936. freesolo_flash_dev-1.2.116/tests/test_cli_estimate.py +0 -1233
  937. freesolo_flash_dev-1.2.116/tests/test_cli_gpus_flag.py +0 -350
  938. freesolo_flash_dev-1.2.116/tests/test_cli_help.py +0 -206
  939. freesolo_flash_dev-1.2.116/tests/test_cli_main_coverage.py +0 -19
  940. freesolo_flash_dev-1.2.116/tests/test_cli_render_coverage.py +0 -643
  941. freesolo_flash_dev-1.2.116/tests/test_cli_render_theme.py +0 -1774
  942. freesolo_flash_dev-1.2.116/tests/test_cli_serve_deploy.py +0 -1028
  943. freesolo_flash_dev-1.2.116/tests/test_cli_serve_status.py +0 -367
  944. freesolo_flash_dev-1.2.116/tests/test_cli_serve_undeploy.py +0 -476
  945. freesolo_flash_dev-1.2.116/tests/test_cli_traces.py +0 -709
  946. freesolo_flash_dev-1.2.116/tests/test_cli_wandb_warning.py +0 -122
  947. freesolo_flash_dev-1.2.116/tests/test_client.py +0 -1411
  948. freesolo_flash_dev-1.2.116/tests/test_client_import_purity.py +0 -197
  949. freesolo_flash_dev-1.2.116/tests/test_client_server_integration.py +0 -348
  950. freesolo_flash_dev-1.2.116/tests/test_config_env_vars.py +0 -407
  951. freesolo_flash_dev-1.2.116/tests/test_console_upload.py +0 -145
  952. freesolo_flash_dev-1.2.116/tests/test_controlled_experiment_repairs.py +0 -503
  953. freesolo_flash_dev-1.2.116/tests/test_cost_analytical.py +0 -467
  954. freesolo_flash_dev-1.2.116/tests/test_cost_equation.py +0 -26
  955. freesolo_flash_dev-1.2.116/tests/test_cost_estimate.py +0 -1021
  956. freesolo_flash_dev-1.2.116/tests/test_cost_hardware.py +0 -685
  957. freesolo_flash_dev-1.2.116/tests/test_cost_models.py +0 -219
  958. freesolo_flash_dev-1.2.116/tests/test_deploy_alias_move_warning.py +0 -554
  959. freesolo_flash_dev-1.2.116/tests/test_deploy_latency.py +0 -424
  960. freesolo_flash_dev-1.2.116/tests/test_dev_channel.py +0 -702
  961. freesolo_flash_dev-1.2.116/tests/test_disk_gb.py +0 -210
  962. freesolo_flash_dev-1.2.116/tests/test_endpoint_name.py +0 -45
  963. freesolo_flash_dev-1.2.116/tests/test_env_cache_evict.py +0 -515
  964. freesolo_flash_dev-1.2.116/tests/test_env_delete.py +0 -148
  965. freesolo_flash_dev-1.2.116/tests/test_env_download.py +0 -109
  966. freesolo_flash_dev-1.2.116/tests/test_env_download_api.py +0 -95
  967. freesolo_flash_dev-1.2.116/tests/test_env_evaluations.py +0 -4227
  968. freesolo_flash_dev-1.2.116/tests/test_env_list_api.py +0 -117
  969. freesolo_flash_dev-1.2.116/tests/test_env_list_cli.py +0 -102
  970. freesolo_flash_dev-1.2.116/tests/test_env_list_hub.py +0 -213
  971. freesolo_flash_dev-1.2.116/tests/test_env_no_install.py +0 -85
  972. freesolo_flash_dev-1.2.116/tests/test_env_publish.py +0 -1962
  973. freesolo_flash_dev-1.2.116/tests/test_env_pull.py +0 -1255
  974. freesolo_flash_dev-1.2.116/tests/test_env_pull_coverage.py +0 -167
  975. freesolo_flash_dev-1.2.116/tests/test_env_pull_loader_coverage.py +0 -332
  976. freesolo_flash_dev-1.2.116/tests/test_env_pull_managed_control_plane.py +0 -174
  977. freesolo_flash_dev-1.2.116/tests/test_env_push.py +0 -1733
  978. freesolo_flash_dev-1.2.116/tests/test_env_rate_limit_resolve.py +0 -332
  979. freesolo_flash_dev-1.2.116/tests/test_env_ref_pinning.py +0 -73
  980. freesolo_flash_dev-1.2.116/tests/test_env_test.py +0 -3436
  981. freesolo_flash_dev-1.2.116/tests/test_envs_coverage.py +0 -117
  982. freesolo_flash_dev-1.2.116/tests/test_export.py +0 -1579
  983. freesolo_flash_dev-1.2.116/tests/test_flash_mvp.py +0 -131
  984. freesolo_flash_dev-1.2.116/tests/test_flash_worker.py +0 -1527
  985. freesolo_flash_dev-1.2.116/tests/test_fused_expert_warmstart.py +0 -1893
  986. freesolo_flash_dev-1.2.116/tests/test_github_urlopen_retry.py +0 -365
  987. freesolo_flash_dev-1.2.116/tests/test_gpu_type_single_field.py +0 -195
  988. freesolo_flash_dev-1.2.116/tests/test_gpus.py +0 -537
  989. freesolo_flash_dev-1.2.116/tests/test_grpo_params.py +0 -734
  990. freesolo_flash_dev-1.2.116/tests/test_grpo_resident_sizing.py +0 -193
  991. freesolo_flash_dev-1.2.116/tests/test_grpo_reward_batching.py +0 -324
  992. freesolo_flash_dev-1.2.116/tests/test_grpo_rollout_contract.py +0 -486
  993. freesolo_flash_dev-1.2.116/tests/test_grpo_rollout_identity.py +0 -824
  994. freesolo_flash_dev-1.2.116/tests/test_idle_endpoint_reaper.py +0 -509
  995. freesolo_flash_dev-1.2.116/tests/test_image_environment_capability.py +0 -92
  996. freesolo_flash_dev-1.2.116/tests/test_instance_bootstrap_coverage.py +0 -2635
  997. freesolo_flash_dev-1.2.116/tests/test_jobs.py +0 -7246
  998. freesolo_flash_dev-1.2.116/tests/test_kernel_fingerprint.py +0 -366
  999. freesolo_flash_dev-1.2.116/tests/test_lambda_api_coverage.py +0 -510
  1000. freesolo_flash_dev-1.2.116/tests/test_lambda_runner.py +0 -4164
  1001. freesolo_flash_dev-1.2.116/tests/test_login_perms.py +0 -346
  1002. freesolo_flash_dev-1.2.116/tests/test_lora_rank_preflight.py +0 -705
  1003. freesolo_flash_dev-1.2.116/tests/test_lora_targeting.py +0 -780
  1004. freesolo_flash_dev-1.2.116/tests/test_lora_targeting_pinned_verl.py +0 -240
  1005. freesolo_flash_dev-1.2.116/tests/test_managed_hf_repo.py +0 -102
  1006. freesolo_flash_dev-1.2.116/tests/test_multi_gpu_gate.py +0 -1631
  1007. freesolo_flash_dev-1.2.116/tests/test_multimodal_training.py +0 -1203
  1008. freesolo_flash_dev-1.2.116/tests/test_named_reward_metrics.py +0 -93
  1009. freesolo_flash_dev-1.2.116/tests/test_oom_escalate_gpu.py +0 -965
  1010. freesolo_flash_dev-1.2.116/tests/test_opd.py +0 -1892
  1011. freesolo_flash_dev-1.2.116/tests/test_opd_multiturn_eos_boundary.py +0 -75
  1012. freesolo_flash_dev-1.2.116/tests/test_opd_multiturn_failure_exit.py +0 -449
  1013. freesolo_flash_dev-1.2.116/tests/test_opd_resume_safety.py +0 -1530
  1014. freesolo_flash_dev-1.2.116/tests/test_opd_train.py +0 -9689
  1015. freesolo_flash_dev-1.2.116/tests/test_orchestrator_flash.py +0 -484
  1016. freesolo_flash_dev-1.2.116/tests/test_packing_coverage.py +0 -179
  1017. freesolo_flash_dev-1.2.116/tests/test_parasail_teacher.py +0 -1440
  1018. freesolo_flash_dev-1.2.116/tests/test_persisted_spec_envelope.py +0 -93
  1019. freesolo_flash_dev-1.2.116/tests/test_poll_helpers.py +0 -262
  1020. freesolo_flash_dev-1.2.116/tests/test_preflight.py +0 -290
  1021. freesolo_flash_dev-1.2.116/tests/test_projects.py +0 -649
  1022. freesolo_flash_dev-1.2.116/tests/test_prompt_budget.py +0 -397
  1023. freesolo_flash_dev-1.2.116/tests/test_provider_preflight_coverage.py +0 -59
  1024. freesolo_flash_dev-1.2.116/tests/test_provider_routing.py +0 -2851
  1025. freesolo_flash_dev-1.2.116/tests/test_provider_teardown_robustness.py +0 -152
  1026. freesolo_flash_dev-1.2.116/tests/test_providers_symmetry.py +0 -447
  1027. freesolo_flash_dev-1.2.116/tests/test_realized_cost.py +0 -443
  1028. freesolo_flash_dev-1.2.116/tests/test_repo_cleanup.py +0 -621
  1029. freesolo_flash_dev-1.2.116/tests/test_resolve_params_b.py +0 -75
  1030. freesolo_flash_dev-1.2.116/tests/test_resume_on_retry.py +0 -1393
  1031. freesolo_flash_dev-1.2.116/tests/test_rl_train.py +0 -9560
  1032. freesolo_flash_dev-1.2.116/tests/test_rollout_samples.py +0 -364
  1033. freesolo_flash_dev-1.2.116/tests/test_runmgmt.py +0 -3239
  1034. freesolo_flash_dev-1.2.116/tests/test_runpod_api_delete.py +0 -155
  1035. freesolo_flash_dev-1.2.116/tests/test_runpod_key_fingerprint.py +0 -400
  1036. freesolo_flash_dev-1.2.116/tests/test_runpod_key_waterfall.py +0 -391
  1037. freesolo_flash_dev-1.2.116/tests/test_runtime_capsule.py +0 -434
  1038. freesolo_flash_dev-1.2.116/tests/test_serve.py +0 -1548
  1039. freesolo_flash_dev-1.2.116/tests/test_serve_app_bootstrap_http.py +0 -1239
  1040. freesolo_flash_dev-1.2.116/tests/test_serve_app_packaging.py +0 -227
  1041. freesolo_flash_dev-1.2.116/tests/test_serve_chat_transport.py +0 -769
  1042. freesolo_flash_dev-1.2.116/tests/test_serve_modal_sdk.py +0 -1047
  1043. freesolo_flash_dev-1.2.116/tests/test_serve_modal_sdk_deadlines.py +0 -126
  1044. freesolo_flash_dev-1.2.116/tests/test_serve_modal_teardown_identity.py +0 -105
  1045. freesolo_flash_dev-1.2.116/tests/test_serve_profiles.py +0 -359
  1046. freesolo_flash_dev-1.2.116/tests/test_serve_provisioning_common.py +0 -404
  1047. freesolo_flash_dev-1.2.116/tests/test_serve_provisioning_modal.py +0 -2929
  1048. freesolo_flash_dev-1.2.116/tests/test_serve_provisioning_runpod.py +0 -4630
  1049. freesolo_flash_dev-1.2.116/tests/test_serve_reasoning_content.py +0 -629
  1050. freesolo_flash_dev-1.2.116/tests/test_serve_resolve_provenance.py +0 -493
  1051. freesolo_flash_dev-1.2.116/tests/test_serve_runtime_engine.py +0 -864
  1052. freesolo_flash_dev-1.2.116/tests/test_serve_runtime_package.py +0 -101
  1053. freesolo_flash_dev-1.2.116/tests/test_server_api.py +0 -10082
  1054. freesolo_flash_dev-1.2.116/tests/test_server_app_coverage.py +0 -267
  1055. freesolo_flash_dev-1.2.116/tests/test_server_billing.py +0 -884
  1056. freesolo_flash_dev-1.2.116/tests/test_server_checkpoints_coverage.py +0 -77
  1057. freesolo_flash_dev-1.2.116/tests/test_server_db.py +0 -487
  1058. freesolo_flash_dev-1.2.116/tests/test_server_envs_coverage.py +0 -2378
  1059. freesolo_flash_dev-1.2.116/tests/test_server_managed_chat_requests.py +0 -794
  1060. freesolo_flash_dev-1.2.116/tests/test_server_managed_chat_revisions.py +0 -696
  1061. freesolo_flash_dev-1.2.116/tests/test_server_serving_resources.py +0 -217
  1062. freesolo_flash_dev-1.2.116/tests/test_server_standalone.py +0 -1101
  1063. freesolo_flash_dev-1.2.116/tests/test_serving_conformance_gate.py +0 -91
  1064. freesolo_flash_dev-1.2.116/tests/test_serving_contract.py +0 -1019
  1065. freesolo_flash_dev-1.2.116/tests/test_serving_schema_coverage.py +0 -201
  1066. freesolo_flash_dev-1.2.116/tests/test_sft_chunked_nll.py +0 -37
  1067. freesolo_flash_dev-1.2.116/tests/test_sft_max_context.py +0 -95
  1068. freesolo_flash_dev-1.2.116/tests/test_sft_train.py +0 -5302
  1069. freesolo_flash_dev-1.2.116/tests/test_sft_workload.py +0 -1503
  1070. freesolo_flash_dev-1.2.116/tests/test_source_attestation_flow.py +0 -189
  1071. freesolo_flash_dev-1.2.116/tests/test_source_snapshot.py +0 -201
  1072. freesolo_flash_dev-1.2.116/tests/test_spec_and_validation.py +0 -2439
  1073. freesolo_flash_dev-1.2.116/tests/test_spec_contract_bytes.py +0 -346
  1074. freesolo_flash_dev-1.2.116/tests/test_staged_environment.py +0 -916
  1075. freesolo_flash_dev-1.2.116/tests/test_step_metrics.py +0 -385
  1076. freesolo_flash_dev-1.2.116/tests/test_step_timing.py +0 -404
  1077. freesolo_flash_dev-1.2.116/tests/test_teacher_broker.py +0 -2354
  1078. freesolo_flash_dev-1.2.116/tests/test_terminal_artifacts.py +0 -195
  1079. freesolo_flash_dev-1.2.116/tests/test_training_controls.py +0 -600
  1080. freesolo_flash_dev-1.2.116/tests/test_vast_api.py +0 -773
  1081. freesolo_flash_dev-1.2.116/tests/test_vast_api_coverage.py +0 -307
  1082. freesolo_flash_dev-1.2.116/tests/test_vast_offers.py +0 -416
  1083. freesolo_flash_dev-1.2.116/tests/test_vast_provider_coverage.py +0 -131
  1084. freesolo_flash_dev-1.2.116/tests/test_vast_runner.py +0 -2882
  1085. freesolo_flash_dev-1.2.116/tests/test_verified_revisions.py +0 -233
  1086. freesolo_flash_dev-1.2.116/tests/test_verifiers.py +0 -2928
  1087. freesolo_flash_dev-1.2.116/tests/test_verl_checkpoint_export.py +0 -598
  1088. freesolo_flash_dev-1.2.116/tests/test_verl_child_plugins.py +0 -796
  1089. freesolo_flash_dev-1.2.116/tests/test_verl_silence_watchdog.py +0 -223
  1090. freesolo_flash_dev-1.2.116/tests/test_vram_architecture.py +0 -231
  1091. freesolo_flash_dev-1.2.116/tests/test_wandb_link.py +0 -393
  1092. freesolo_flash_dev-1.2.116/tests/test_wandb_naming.py +0 -167
  1093. freesolo_flash_dev-1.2.116/tests/test_warmstart_adapter_download.py +0 -321
  1094. freesolo_flash_dev-1.2.116/tests/test_warmstart_cross_repo.py +0 -1612
  1095. freesolo_flash_dev-1.2.116/tests/test_warmstart_error_attribution.py +0 -60
  1096. freesolo_flash_dev-1.2.116/tests/test_warmstart_image_adapters.py +0 -222
  1097. freesolo_flash_dev-1.2.116/tests/test_weight_cache.py +0 -4907
  1098. freesolo_flash_dev-1.2.116/tests/test_worker_dryrun.py +0 -171
  1099. freesolo_flash_dev-1.2.116/tests/test_worker_hardexit.py +0 -298
  1100. freesolo_flash_dev-1.2.116/tests/test_worker_image.py +0 -42
  1101. freesolo_flash_dev-1.2.116/tests/test_worker_init_heartbeat.py +0 -1705
  1102. freesolo_flash_dev-1.2.116/tests/test_worker_stack.py +0 -2222
  1103. freesolo_flash_dev-1.2.116/tests/test_worker_thinking.py +0 -248
  1104. freesolo_flash_dev-1.2.116/tests/test_zero2_sharding_gate.py +0 -266
  1105. freesolo_flash_dev-1.2.116/uv.lock +0 -5817
  1106. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.dockerignore +0 -0
  1107. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/CODEOWNERS +0 -0
  1108. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  1109. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  1110. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  1111. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  1112. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/dependabot.yml +0 -0
  1113. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/dev-kernel-cache.yml +0 -0
  1114. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/main-source-guard.yml +0 -0
  1115. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/notify-tests-repo.yml +0 -0
  1116. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/production-kernel-cache-ready.yml +0 -0
  1117. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/publish-dev.yml +0 -0
  1118. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/publish.yml +0 -0
  1119. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.github/workflows/version-parity.yml +0 -0
  1120. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/.gitignore +0 -0
  1121. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/CODE_OF_CONDUCT.md +0 -0
  1122. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/Dockerfile +0 -0
  1123. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/Dockerfile.serve +0 -0
  1124. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/LICENSE +0 -0
  1125. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/NOTICE +0 -0
  1126. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/README.md +0 -0
  1127. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/SECURITY.md +0 -0
  1128. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/SELF_HOSTING.md +0 -0
  1129. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/build/kernel_cache/.gitignore +0 -0
  1130. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/build/kernel_cache/.keep +0 -0
  1131. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/deploy/infisical/README.md +0 -0
  1132. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/deploy/infisical/entrypoint.sh +0 -0
  1133. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/docker/Dockerfile.kernelcache +0 -0
  1134. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/docker/Dockerfile.kernelcache.relayer +0 -0
  1135. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/docker/bake_kernel_cache.py +0 -0
  1136. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/docker/bake_pod_entry.py +0 -0
  1137. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/docker/extract_cudart_fix.py +0 -0
  1138. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/_internal/__init__.py +0 -0
  1139. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/_internal/fileio.py +0 -0
  1140. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/_internal/logging.py +0 -0
  1141. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/_internal/openai_sse.py +0 -0
  1142. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/_internal/paths.py +0 -0
  1143. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/adapters/__init__.py +0 -0
  1144. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/adapters/artifacts.py +0 -0
  1145. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/adapters/fused_experts.py +0 -0
  1146. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/adapters/targets.py +0 -0
  1147. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cli/commands/env/__init__.py +0 -0
  1148. {freesolo_flash_dev-1.2.116/flash/cli/ui → freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops}/__init__.py +0 -0
  1149. {freesolo_flash_dev-1.2.116/flash/cli/commands/env → freesolo_flash_dev-1.2.118/flash/cli/commands/env/ops}/setup_wandb.py +0 -0
  1150. {freesolo_flash_dev-1.2.116/flash/content → freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing}/__init__.py +0 -0
  1151. {freesolo_flash_dev-1.2.116/flash/cli/commands/env → freesolo_flash_dev-1.2.118/flash/cli/commands/env/testing}/eval_args.py +0 -0
  1152. {freesolo_flash_dev-1.2.116/flash/core → freesolo_flash_dev-1.2.118/flash/cli/commands/ops}/__init__.py +0 -0
  1153. {freesolo_flash_dev-1.2.116/flash/cli/commands → freesolo_flash_dev-1.2.118/flash/cli/commands/ops}/prompt_budget.py +0 -0
  1154. {freesolo_flash_dev-1.2.116/flash/engine/plan → freesolo_flash_dev-1.2.118/flash/cli/commands/serving}/__init__.py +0 -0
  1155. {freesolo_flash_dev-1.2.116/flash/engine/profiling → freesolo_flash_dev-1.2.118/flash/cli/parsing}/__init__.py +0 -0
  1156. {freesolo_flash_dev-1.2.116/flash/cli → freesolo_flash_dev-1.2.118/flash/cli/parsing}/errors.py +0 -0
  1157. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cli/scaffold/__init__.py +0 -0
  1158. {freesolo_flash_dev-1.2.116/flash/engine/result → freesolo_flash_dev-1.2.118/flash/cli/ui}/__init__.py +0 -0
  1159. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cli/ui/env_panels.py +0 -0
  1160. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cli/ui/tty.py +0 -0
  1161. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/client/config.py +0 -0
  1162. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/client/runtime_secrets.py +0 -0
  1163. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/client/shapes.py +0 -0
  1164. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/client/specs.py +0 -0
  1165. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/client/streaming.py +0 -0
  1166. {freesolo_flash_dev-1.2.116/flash/engine/worker/entry → freesolo_flash_dev-1.2.118/flash/content}/__init__.py +0 -0
  1167. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/content/image_descriptors.py +0 -0
  1168. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/content/reasoning_normalization.py +0 -0
  1169. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/content/structured_outputs.py +0 -0
  1170. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/content/thinking.py +0 -0
  1171. {freesolo_flash_dev-1.2.116/flash/engine/worker/io → freesolo_flash_dev-1.2.118/flash/core}/__init__.py +0 -0
  1172. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/core/catalog.py +0 -0
  1173. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/core/grpo.py +0 -0
  1174. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cost/__init__.py +0 -0
  1175. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cost/currency.py +0 -0
  1176. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/cost/spec.py +0 -0
  1177. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/__init__.py +0 -0
  1178. {freesolo_flash_dev-1.2.116/flash/engine/worker/model → freesolo_flash_dev-1.2.118/flash/engine/plan}/__init__.py +0 -0
  1179. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/plan/kv_sizing.py +0 -0
  1180. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/plan/prompt_budget.py +0 -0
  1181. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/plan/recipe.py +0 -0
  1182. {freesolo_flash_dev-1.2.116/flash/engine/worker/runtime → freesolo_flash_dev-1.2.118/flash/engine/profiling}/__init__.py +0 -0
  1183. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/profiling/reasoning_render.py +0 -0
  1184. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/profiling/sft_image_rows.py +0 -0
  1185. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/profiling/workload_profile.py +0 -0
  1186. {freesolo_flash_dev-1.2.116/flash/engine/worker/teacher → freesolo_flash_dev-1.2.118/flash/engine/result}/__init__.py +0 -0
  1187. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/result/accounting.py +0 -0
  1188. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/result/rollout_samples.py +0 -0
  1189. {freesolo_flash_dev-1.2.116/flash/engine/worker/train → freesolo_flash_dev-1.2.118/flash/engine/support}/__init__.py +0 -0
  1190. {freesolo_flash_dev-1.2.116/flash/engine → freesolo_flash_dev-1.2.118/flash/engine/support}/huggingface.py +0 -0
  1191. {freesolo_flash_dev-1.2.116/flash/engine → freesolo_flash_dev-1.2.118/flash/engine/support}/verl_policy.py +0 -0
  1192. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/core → freesolo_flash_dev-1.2.118/flash/engine/worker/entry}/__init__.py +0 -0
  1193. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.118/flash/engine/worker/io}/__init__.py +0 -0
  1194. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/child → freesolo_flash_dev-1.2.118/flash/engine/worker/model}/__init__.py +0 -0
  1195. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/model/chatml_mask.py +0 -0
  1196. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/model/lora.py +0 -0
  1197. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/model/packing.py +0 -0
  1198. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/perf/__init__.py +0 -0
  1199. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/perf/diagnostics.py +0 -0
  1200. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/perf/liger.py +0 -0
  1201. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/perf/memory.py +0 -0
  1202. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.118/flash/engine/worker/runtime}/__init__.py +0 -0
  1203. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
  1204. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/runtime/rng.py +0 -0
  1205. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/child → freesolo_flash_dev-1.2.118/flash/engine/worker/teacher}/__init__.py +0 -0
  1206. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/teacher/encoding.py +0 -0
  1207. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/teacher/tokenizer_align.py +0 -0
  1208. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/sft → freesolo_flash_dev-1.2.118/flash/engine/worker/train}/__init__.py +0 -0
  1209. {freesolo_flash_dev-1.2.116/flash/envs/package → freesolo_flash_dev-1.2.118/flash/engine/worker/train/core}/__init__.py +0 -0
  1210. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/core/child/__init__.py +0 -0
  1211. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/core/child/glue.py +0 -0
  1212. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/core/child/runtime.py +0 -0
  1213. {freesolo_flash_dev-1.2.116/flash/providers/_lifecycle → freesolo_flash_dev-1.2.118/flash/engine/worker/train/core/lifecycle}/__init__.py +0 -0
  1214. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/core → freesolo_flash_dev-1.2.118/flash/engine/worker/train/core/lifecycle}/step_timing.py +0 -0
  1215. {freesolo_flash_dev-1.2.116/flash/providers/artifacts → freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry}/__init__.py +0 -0
  1216. {freesolo_flash_dev-1.2.116/flash/engine/worker → freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry}/backend_common.py +0 -0
  1217. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/core → freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry}/prompt_rows.py +0 -0
  1218. {freesolo_flash_dev-1.2.116/flash/engine/worker → freesolo_flash_dev-1.2.118/flash/engine/worker/train/entry}/score_batcher.py +0 -0
  1219. {freesolo_flash_dev-1.2.116/flash/runner/results → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd}/__init__.py +0 -0
  1220. {freesolo_flash_dev-1.2.116/flash/runner/supervise → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/bridging}/__init__.py +0 -0
  1221. {freesolo_flash_dev-1.2.116/flash/server/billing → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/child}/__init__.py +0 -0
  1222. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/bridge.py +0 -0
  1223. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/entry.py +0 -0
  1224. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/multiturn.py +0 -0
  1225. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/plugin.py +0 -0
  1226. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/replay_guard.py +0 -0
  1227. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/runtime.py +0 -0
  1228. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/opd/child/structured.py +0 -0
  1229. {freesolo_flash_dev-1.2.116/flash/server/domain → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/multiturn}/__init__.py +0 -0
  1230. /freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/multiturn_media.py → /freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/multiturn/media.py +0 -0
  1231. {freesolo_flash_dev-1.2.116/flash/server/platform → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration}/__init__.py +0 -0
  1232. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration}/gkd.py +0 -0
  1233. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.118/flash/engine/worker/train/opd/orchestration}/validation.py +0 -0
  1234. {freesolo_flash_dev-1.2.116/flash/serving → freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl}/__init__.py +0 -0
  1235. {freesolo_flash_dev-1.2.116/flash/teacher → freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/child}/__init__.py +0 -0
  1236. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/rl/child/entry.py +0 -0
  1237. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
  1238. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/rl/child/patches.py +0 -0
  1239. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/rl/child/plugin.py +0 -0
  1240. {freesolo_flash_dev-1.2.116/tests/live → freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/launch}/__init__.py +0 -0
  1241. {freesolo_flash_dev-1.2.116/tests/serving_conformance → freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/rollout}/__init__.py +0 -0
  1242. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/rollout}/identity.py +0 -0
  1243. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.118/flash/engine/worker/train/rl/rollout}/reward_module.py +0 -0
  1244. /freesolo_flash_dev-1.2.116/flash/py.typed → /freesolo_flash_dev-1.2.118/flash/engine/worker/train/sft/__init__.py +0 -0
  1245. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/sft/child/entry.py +0 -0
  1246. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/train/sft/child/plugin.py +0 -0
  1247. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/verl/__init__.py +0 -0
  1248. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/verl/child_io.py +0 -0
  1249. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/verl/parent_work.py +0 -0
  1250. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/engine/worker/verl/process_census.py +0 -0
  1251. {freesolo_flash_dev-1.2.116/flash/envs → freesolo_flash_dev-1.2.118/flash/envs/meta}/dataset_selection.py +0 -0
  1252. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/envs/package/direct_tokens.py +0 -0
  1253. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/envs/package/limits.py +0 -0
  1254. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/envs/package/unpack.py +0 -0
  1255. /freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap_console.py → /freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/bootstrapping/console.py +0 -0
  1256. /freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap_pip.py → /freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/bootstrapping/pip.py +0 -0
  1257. /freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap_secrets.py → /freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/bootstrapping/secrets.py +0 -0
  1258. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/providers/_lifecycle/host/__init__.py +0 -0
  1259. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/providers/_lifecycle/host/deadline_sleep.py +0 -0
  1260. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/providers/_lifecycle/host/failmark.py +0 -0
  1261. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/providers/_lifecycle/host/hostlog.py +0 -0
  1262. {freesolo_flash_dev-1.2.116/flash/providers/_lifecycle → freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/net}/auth.py +0 -0
  1263. {freesolo_flash_dev-1.2.116/flash/providers/_lifecycle → freesolo_flash_dev-1.2.118/flash/providers/_lifecycle/net}/deadline.py +0 -0
  1264. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/providers/lambda_/jobs/reap.py +0 -0
  1265. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/runner/supervise/retry_decision.py +0 -0
  1266. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/runtime_capsule/__init__.py +0 -0
  1267. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/runtime_capsule/build.py +0 -0
  1268. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/runtime_capsule/manifest.py +0 -0
  1269. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/__init__.py +0 -0
  1270. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/app/__init__.py +0 -0
  1271. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/app/__main__.py +0 -0
  1272. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/app/bootstrap.py +0 -0
  1273. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/app/launch.py +0 -0
  1274. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/app/progress.py +0 -0
  1275. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.118/flash/serve/contract}/profiles.py +0 -0
  1276. /freesolo_flash_dev-1.2.116/flash/serve/contract.py → /freesolo_flash_dev-1.2.118/flash/serve/contract/protocol.py +0 -0
  1277. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.118/flash/serve/contract}/provenance.py +0 -0
  1278. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/control/__init__.py +0 -0
  1279. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/control/_canonical.py +0 -0
  1280. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/control/_serialization.py +0 -0
  1281. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/control/_urls.py +0 -0
  1282. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/control/credentials.py +0 -0
  1283. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/control/planning.py +0 -0
  1284. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.118/flash/serve/deployment}/preflight.py +0 -0
  1285. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.118/flash/serve/deployment}/readiness.py +0 -0
  1286. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_common.py → /freesolo_flash_dev-1.2.118/flash/serve/provisioning/common/records.py +0 -0
  1287. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_wrapper.py → /freesolo_flash_dev-1.2.118/flash/serve/provisioning/modal/planning/wrapper.py +0 -0
  1288. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_mutations.py → /freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/mutations.py +0 -0
  1289. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_protocol.py → /freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/protocol.py +0 -0
  1290. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_transport.py → /freesolo_flash_dev-1.2.118/flash/serve/provisioning/runpod/transport.py +0 -0
  1291. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.118/flash/serve/request}/runtime_support.py +0 -0
  1292. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/runtime/errors.py +0 -0
  1293. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serve/runtime/prompt.py +0 -0
  1294. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/server/__init__.py +0 -0
  1295. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/server/billing/charges.py +0 -0
  1296. {freesolo_flash_dev-1.2.116/flash/server/domain → freesolo_flash_dev-1.2.118/flash/server/domain/ops}/serving_resources.py +0 -0
  1297. {freesolo_flash_dev-1.2.116/flash/server/domain → freesolo_flash_dev-1.2.118/flash/server/domain/registry}/projects.py +0 -0
  1298. /freesolo_flash_dev-1.2.116/flash/server/domain/teacher_errors.py → /freesolo_flash_dev-1.2.118/flash/server/domain/teacher/errors.py +0 -0
  1299. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/server/platform/auth.py +0 -0
  1300. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/server/platform/db.py +0 -0
  1301. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/server/routes/__init__.py +0 -0
  1302. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/server/routes/meta.py +0 -0
  1303. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/serving/src/__init__.py +0 -0
  1304. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.118/flash/serving/src/engine}/prequant_config.py +0 -0
  1305. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.118/flash/serving/src/http}/body_limit.py +0 -0
  1306. /freesolo_flash_dev-1.2.116/flash/serving/src/http_headers.py → /freesolo_flash_dev-1.2.118/flash/serving/src/http/headers.py +0 -0
  1307. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.118/flash/serving/src/store}/persisted_columns.py +0 -0
  1308. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.118/flash/serving/src/store}/settings.py +0 -0
  1309. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/teacher/limits.py +0 -0
  1310. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/teacher/provider_status.py +0 -0
  1311. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/flash/teacher/retry_contract.py +0 -0
  1312. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/scripts/build_dev_dist.py +0 -0
  1313. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/scripts/check_file_size.py +0 -0
  1314. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/scripts/check_function_size.py +0 -0
  1315. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/scripts/check_rollout_identity_actor.py +0 -0
  1316. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/scripts/scrub_history.sh +0 -0
  1317. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/serve_launch.py +0 -0
  1318. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/__init__.py +0 -0
  1319. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/__init__.py +0 -0
  1320. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/chat_provenance.py +0 -0
  1321. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/chat_transport.py +0 -0
  1322. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/server_api_plugin.py +0 -0
  1323. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/source_snapshot.py +0 -0
  1324. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/specs.py +0 -0
  1325. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/teacher.py +0 -0
  1326. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/_helpers/vast.py +0 -0
  1327. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/capture_image_sft_processor_oracle.py +0 -0
  1328. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/capture_qwen38_27b_metadata.py +0 -0
  1329. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/fixtures/image_sft_processor_oracle.json +0 -0
  1330. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/fixtures/qwen35_9b_target_metadata.json +0 -0
  1331. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/fixtures/qwen38_27b_target_metadata.json +0 -0
  1332. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/live/conftest.py +0 -0
  1333. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/live/test_sft_thinking_render_live.py +0 -0
  1334. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/serving/test_openai_stream_options.py +0 -0
  1335. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_accounting_coverage.py +0 -0
  1336. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_algorithms.py +0 -0
  1337. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_backend_jobspec_contract.py +0 -0
  1338. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_base_model_provenance.py +0 -0
  1339. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_build_context_contract.py +0 -0
  1340. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_capture_qwen38_metadata.py +0 -0
  1341. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_cli_managed.py +0 -0
  1342. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_client_stream_reads.py +0 -0
  1343. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_config_overrides.py +0 -0
  1344. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_cost_currency.py +0 -0
  1345. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_dataset_profile.py +0 -0
  1346. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_flashinfer_cache_dirs.py +0 -0
  1347. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_freesolo_api_transport.py +0 -0
  1348. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_grpo_process_census.py +0 -0
  1349. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_health_liveness.py +0 -0
  1350. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_hf_retry.py +0 -0
  1351. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_image_incremental_processor.py +0 -0
  1352. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_image_sft_markers.py +0 -0
  1353. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_image_sft_processor_parity.py +0 -0
  1354. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_image_tokens.py +0 -0
  1355. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_infisical_secrets.py +0 -0
  1356. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_internal_client.py +0 -0
  1357. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_kernel_cache.py +0 -0
  1358. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_kv_util.py +0 -0
  1359. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_logging.py +0 -0
  1360. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_lora_rank_coverage.py +0 -0
  1361. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_lora_rank_nested_rung.py +0 -0
  1362. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_managed_config_fields.py +0 -0
  1363. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_metrics_schema_agent_contract.py +0 -0
  1364. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_mig_guard.py +0 -0
  1365. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_opd_limits.py +0 -0
  1366. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_opd_replay_guard.py +0 -0
  1367. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_packing.py +0 -0
  1368. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serve_app_launch.py +0 -0
  1369. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serve_app_manifest.py +0 -0
  1370. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serve_app_materialize.py +0 -0
  1371. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serve_control.py +0 -0
  1372. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serve_runtime_adapters.py +0 -0
  1373. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serve_runtime_types.py +0 -0
  1374. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_server_auth_singleflight.py +0 -0
  1375. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_server_locks_coverage.py +0 -0
  1376. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_serving_context_preflight.py +0 -0
  1377. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_sft_example_selection.py +0 -0
  1378. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_sft_gc_off.py +0 -0
  1379. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_sft_step_floor.py +0 -0
  1380. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_step_floor.py +0 -0
  1381. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_structured_outputs.py +0 -0
  1382. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_teacher_encoding_contract.py +0 -0
  1383. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_thinking_config.py +0 -0
  1384. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_train_context_preflight.py +0 -0
  1385. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_type_comment_prose.py +0 -0
  1386. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_version.py +0 -0
  1387. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_vl_warmstart_adapter_keys.py +0 -0
  1388. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_workflow_contracts.py +0 -0
  1389. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.118}/tests/test_workload_profile.py +0 -0
@@ -0,0 +1,130 @@
1
+ # flash control plane (operator-side). copy to .env and fill in.
2
+ # provider credentials live only here; clients never see them and authenticate
3
+ # with their api key.
4
+ #
5
+ # everything under "required" is checked by `flash/providers/core/preflight.py` at
6
+ # startup; `flash-server` refuses to serve if any of them is missing. settings
7
+ # that only degrade the plane (a single-account runpod pool, no `github_token`)
8
+ # warn at startup instead of blocking it.
9
+ #
10
+ # self-hosting? read the self-hosting guide first - the short version is the two lines
11
+ # below, and it is a much smaller list than this file suggests:
12
+ #
13
+ # FLASH_STANDALONE=1
14
+ # FREESOLO_INTERNAL_KEY=$(openssl rand -hex 32)
15
+ #
16
+ # IMPORTANT: `flash-server` does NOT read this file. It reads the process
17
+ # environment, so copying it to .env is not by itself enough — load it:
18
+ #
19
+ # set -a && . ./.env && set +a && flash-server # shell
20
+ # docker run --env-file .env ... # docker
21
+
22
+ # --- required: GPU substrate (AT LEAST ONE of the three) ---
23
+ # Flash allocates across RunPod, Lambda, and Vast. Configure the ones you have an
24
+ # account with; a provider whose key is unset is simply never considered, and the
25
+ # allocator ranks candidates only on the substrates you configured. One is enough
26
+ # to run. The preflight fails only when ALL THREE are missing.
27
+ #
28
+ # RunPod: one key, or several comma-separated for multi-account failover. A
29
+ # single-account pool works but cannot fail over or reap across accounts, so the
30
+ # preflight warns.
31
+ RUNPOD_API_KEY=
32
+ # Lambda Cloud API key.
33
+ LAMBDA_API_KEY=
34
+ # Vast.ai API key.
35
+ VAST_API_KEY=
36
+
37
+ # --- required: artifacts ---
38
+ # HuggingFace token with write access to the dataset repos flash creates for artifacts
39
+ # (code upload + streamed checkpoints/adapters). The repo is assigned by the control
40
+ # plane and scoped to the ENVIRONMENT, so runs sharing an environment share a repo and
41
+ # each run lands under its own prefix. It is not a user-authored field: the TOML parser
42
+ # rejects a [train] hf_repo set by hand.
43
+ HF_TOKEN=
44
+ # The HuggingFace user or org those artifact repos are created under. Defaults to
45
+ # Freesolo's namespace, which a self-hoster's token cannot write to - so on a
46
+ # self-hosted plane SET THIS to a namespace your HF_TOKEN owns, or every run fails at
47
+ # the code upload before training starts.
48
+ # FLASH_HF_NAMESPACE=your-hf-username
49
+
50
+ # --- required: control-plane auth ---
51
+ # The plane's own auth key. On a self-hosted (FLASH_STANDALONE=1) deployment this is
52
+ # the ONLY credential the plane accepts and is therefore the entire trust boundary -
53
+ # generate a high-entropy value and treat it like a root password:
54
+ #
55
+ # export FREESOLO_INTERNAL_KEY=$(openssl rand -hex 32)
56
+ #
57
+ # On a managed deployment it is the shared internal key that maps to a single service
58
+ # identity without a network call, alongside per-user keys verified against
59
+ # {FREESOLO_BASE_URL}/api/auth/verify.
60
+ FREESOLO_INTERNAL_KEY=
61
+
62
+ # --- optional: self-hosting ---
63
+ # Run without a Freesolo backend. Off by default. With it set, the plane stops calling
64
+ # out for project/environment/billing validation and trusts FREESOLO_INTERNAL_KEY as a
65
+ # single-tenant operator credential; external bearer tokens are REJECTED rather than
66
+ # accepted unverified. Single tenant - see SELF_HOSTING.md before enabling.
67
+ # FLASH_STANDALONE=1
68
+
69
+ # --- optional: deployment topology ---
70
+ # Where Flash keeps its local state: the saved login, the SQLite database, run records, and
71
+ # results. Defaults to ~/.flash (= /root/.flash for the container's default user, which is the
72
+ # path the Dockerfile declares as a VOLUME). Set this for a rootless container, a Kubernetes
73
+ # PVC, a read-only home directory, or a systemd unit with ProtectHome. Everything moves
74
+ # together, so point it at ONE durable location and mount a volume there.
75
+ # FLASH_DATA_DIR=/var/lib/flash
76
+ # Log verbosity for `flash-server`: DEBUG, INFO, WARNING, ERROR, CRITICAL. The server defaults
77
+ # to INFO -- provider resolution, capability revocation, reaper startup, and degraded-config
78
+ # warnings are all reported at INFO/WARNING. An unrecognized value falls back to the default
79
+ # rather than blocking startup.
80
+ # FLASH_LOG_LEVEL=INFO
81
+ # `text` (default) or `json`. JSON emits one object per line for a structured log sink. The
82
+ # same information is logged either way; only the punctuation differs.
83
+ # FLASH_LOG_FORMAT=text
84
+ # Bind address for `flash-server`. Defaults to 127.0.0.1; the container image passes 0.0.0.0
85
+ # explicitly. The --host and --port flags win over both of these.
86
+ # FLASH_SERVER_HOST=127.0.0.1
87
+ # Port for `flash-server`, default 8080. Must be 1-65535: an unusable value stops startup
88
+ # rather than silently binding the default, since a plane listening on the wrong port looks
89
+ # healthy and is unreachable.
90
+ # FLASH_SERVER_PORT=8080
91
+ # How long (seconds) to wait for a SQLite lock held by another writer, default 30. Raise it on
92
+ # networked storage, where a lock can be held far longer than on a local volume. This changes
93
+ # only patience: journal mode, synchronous, and foreign keys are correctness settings and are
94
+ # deliberately not configurable.
95
+ # FLASH_SQLITE_BUSY_TIMEOUT_SECONDS=30
96
+
97
+ # --- optional ---
98
+ # Server token for the environment repository. Without it, environments hosted in a
99
+ # private GitHub repo cannot be fetched; environments in public GitHub repos still work,
100
+ # so this warns at startup rather than blocking it. (A local directory is never a valid
101
+ # environment source - the GPU worker fetches the environment itself.)
102
+ GITHUB_TOKEN=
103
+ # the managed opd teacher credential stays on the control plane. submissions without it
104
+ # fail before gpu allocation; workers receive only an attempt-scoped broker capability.
105
+ PARASAIL_API_KEY=
106
+ # this plane's own public https origin, where gpu workers reach the teacher broker route. it is
107
+ # not the client's FLASH_API_URL / --api-url, which may be a private address (a tunnel, a vpn,
108
+ # http://your-plane:8080) that no rented worker can resolve. required for opd; a value workers
109
+ # cannot reach only surfaces after the gpu is allocated.
110
+ FLASH_PUBLIC_URL=https://flash.example.com
111
+ # Where to verify user keys. Defaults to https://api.freesolo.co when unset. Ignored
112
+ # under FLASH_STANDALONE=1, which verifies nothing over the network.
113
+ # FREESOLO_BASE_URL=
114
+ # Adapter serving is delegated to a multi-LoRA serving app (a Modal app that serves
115
+ # every adapter on one GPU per base model, scaling to zero when idle).
116
+ # `flash deploy`/`undeploy`/`chat` register/deregister/chat against it. Defaults to the
117
+ # hosted URL when unset; point it at your own deployment to self-host serving.
118
+ #
119
+ # Under FLASH_STANDALONE=1 there is NO default: those three commands error out until this
120
+ # is set to a backend YOU operate. Every serving request carries FREESOLO_INTERNAL_KEY,
121
+ # which on a self-hosted plane is the credential controlling that plane, so pointing it at
122
+ # a service you do not run would hand that credential over. Training never uses this.
123
+ #
124
+ # A Freesolo-hosted value is refused the same way an unset one is -- assigning the hosted
125
+ # URL here does not get you past the guard, it just produces the same error. Set it to
126
+ # YOUR serving deployment; the managed plane gets the hosted URL from the code default.
127
+ # FREESOLO_SERVING_URL=https://serving.example.internal
128
+ # The worker container image is not configurable: every provider runs the published
129
+ # ghcr.io/freesolo-co/flash-worker tags (per-GPU-arch kernel-cache variants, falling back to the
130
+ # base :cu128), selected by GPU class in flash/providers/_lifecycle/net/worker.py.
@@ -0,0 +1,284 @@
1
+ name: auto-rebake per-arch kernel cache
2
+
3
+ # Keeps the per-arch ghcr.io/freesolo-co/flash-worker:cu128-sm* images fresh whenever the :cu128 base
4
+ # is rebuilt. Each cu128-smXX is physically `FROM :cu128` + a baked mega-cache, so a new base leaves
5
+ # the per-arch tags pointing at the OLD base until rebaked. "Out of date" has two flavors, keyed off
6
+ # the fp_cache / fp_base labels worker-image.yml stamps on :cu128 (docker/kernel_fingerprint.py):
7
+ #
8
+ # * fp_cache changed -> promote a matching dev-ready cache by free re-layer. a real gpu re-warm is
9
+ # only the fail-safe when the required candidate is absent.
10
+ # * fp_cache same but fp_base changed -> the cache is still valid, the base just moved (FA wheel /
11
+ # causal-conv1d / rp_handler / a non-kernel dep) -> a FREE re-layer grafts the existing cache onto
12
+ # the fresh base (docker/Dockerfile.kernelcache.relayer), no GPU.
13
+ # * both same -> skip (this is the pure-flash-code case the old reminder over-fired on).
14
+ #
15
+ # The gate READS the published labels (authoritative for what was actually built, incl. a manual FA2
16
+ # override) rather than recomputing from the checkout, and aborts unless the base's revision label ==
17
+ # the build's head_sha (so a superseded base build or a `tag=...` dispatch that never touched :cu128
18
+ # can't trigger a stale rebake).
19
+
20
+ on:
21
+ workflow_run:
22
+ workflows: ["flash worker image"]
23
+ types: [completed]
24
+
25
+ permissions:
26
+ contents: read
27
+ packages: write
28
+ actions: read
29
+ issues: write
30
+
31
+ # Scope the group to the triggering base build's commit so a no-op completion (e.g. a tag=cu128-test
32
+ # worker-image run, whose head_sha differs) can't cancel an in-flight real bake. The revision guard
33
+ # already neutralizes superseded runs, so a global cancel-in-progress isn't needed.
34
+ concurrency:
35
+ group: auto-rebake-${{ github.event.workflow_run.head_sha }}
36
+ cancel-in-progress: true
37
+
38
+ env:
39
+ BASE: ghcr.io/freesolo-co/flash-worker:cu128
40
+
41
+ jobs:
42
+ gate:
43
+ # Upstream only -- see publish.yml. Guarded at the GATE rather than on each downstream job so
44
+ # one condition covers the whole chain: `gpu-warm` calls bake-kernel-cache.yml, which spends
45
+ # real GPU money, and `relayer` wants the org's larger runner. A fork can never reach either if
46
+ # the gate does not run.
47
+ if: >-
48
+ github.repository == 'freesolo-co/flash'
49
+ && github.event.workflow_run.conclusion == 'success'
50
+ runs-on: ubuntu-latest
51
+ # Registry metadata reads only (crane digest/config per arch); every recorded gate run
52
+ # finishes inside a minute. The cap bounds a hung GHCR call, not real work.
53
+ timeout-minutes: 15
54
+ outputs:
55
+ proceed: ${{ steps.base.outputs.proceed }}
56
+ relayer_matrix: ${{ steps.classify.outputs.relayer_matrix }}
57
+ gpu_sms: ${{ steps.classify.outputs.gpu_sms }}
58
+ fp_cache: ${{ steps.base.outputs.fp_cache }}
59
+ fp_base: ${{ steps.base.outputs.fp_base }}
60
+ base_ref: ${{ steps.base.outputs.base_ref }}
61
+ base_revision: ${{ steps.base.outputs.revision }}
62
+ steps:
63
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
64
+ with:
65
+ ref: ${{ github.event.workflow_run.head_sha }}
66
+
67
+ # Downloaded to disk and checksum-verified before extraction, rather than piped straight
68
+ # into tar: a piped stream is extracted as it arrives, so a corrupted or substituted
69
+ # artifact is already on PATH by the time anything could notice. Bump the version and the
70
+ # digest together (the vendor publishes checksums.txt alongside each release).
71
+ - name: Install crane
72
+ run: |
73
+ set -euo pipefail
74
+ ver=v0.20.2
75
+ sha=c14340087103ba9dadf61d45acd20675490fd0ccbd56ac7901fc1b502137f44b
76
+ curl -fsSL -o /tmp/crane.tar.gz \
77
+ "https://github.com/google/go-containerregistry/releases/download/${ver}/go-containerregistry_Linux_x86_64.tar.gz"
78
+ echo "${sha} /tmp/crane.tar.gz" | sha256sum -c -
79
+ sudo tar -xz -C /usr/local/bin -f /tmp/crane.tar.gz crane
80
+ rm -f /tmp/crane.tar.gz
81
+ crane version
82
+
83
+ - name: Log in to GHCR
84
+ uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
85
+ with:
86
+ registry: ghcr.io
87
+ username: ${{ github.actor }}
88
+ password: ${{ secrets.GITHUB_TOKEN }}
89
+
90
+ - name: Read base labels
91
+ id: base
92
+ env:
93
+ HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
94
+ run: |
95
+ # canonical digest ref (repo@sha256, no tag) so every tool (crane/docker/runpod) accepts it.
96
+ digest=$(crane digest "$BASE")
97
+ repo=${BASE%:*}
98
+ cfg=$(crane config "$repo@$digest")
99
+ fpc=$(echo "$cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_cache"] // ""')
100
+ fpb=$(echo "$cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_base"] // ""')
101
+ rev=$(echo "$cfg" | jq -r '.config.Labels["org.opencontainers.image.revision"] // ""')
102
+ echo "base_ref=$repo@$digest" >> "$GITHUB_OUTPUT"
103
+ echo "fp_cache=$fpc" >> "$GITHUB_OUTPUT"
104
+ echo "fp_base=$fpb" >> "$GITHUB_OUTPUT"
105
+ echo "revision=$rev" >> "$GITHUB_OUTPUT"
106
+ # Only proceed if this base IS the build that triggered us: its revision label must match the
107
+ # build's head_sha. Guards (a) a newer base that already superseded this run, and (b) a
108
+ # `tag=cu128-test` dispatch that never updated :cu128 (the workflow_run payload can't reveal
109
+ # the dispatch tag). An unlabeled base (pre-rollout) also no-ops here.
110
+ if [ -n "$fpc" ] && [ "$rev" = "$HEAD_SHA" ]; then
111
+ echo "proceed=true" >> "$GITHUB_OUTPUT"
112
+ echo "base $BASE@$digest is rev $rev (== head_sha) fp_cache=$fpc fp_base=$fpb"
113
+ else
114
+ echo "proceed=false" >> "$GITHUB_OUTPUT"
115
+ echo "::notice::auto-rebake no-op: base rev '$rev' != head_sha '$HEAD_SHA' (or base unlabeled)"
116
+ fi
117
+
118
+ - name: Classify arches
119
+ id: classify
120
+ if: steps.base.outputs.proceed == 'true'
121
+ env:
122
+ FP_CACHE: ${{ steps.base.outputs.fp_cache }}
123
+ FP_BASE: ${{ steps.base.outputs.fp_base }}
124
+ REV: ${{ steps.base.outputs.revision }}
125
+ run: |
126
+ # flash/providers/_lifecycle/net/worker.py is the single source of truth for the arch list; the bake
127
+ # matrix mirrors it. read the canonical assignment statically without importing flash.
128
+ arches=$(python3 docker/kernel_fingerprint.py --print-baked-arches)
129
+ relayer=(); gpu=()
130
+ summary="| arch | published fp_cache | published fp_base | action |\n|---|---|---|---|\n"
131
+ for sm in $arches; do
132
+ img="ghcr.io/freesolo-co/flash-worker:cu128-$sm"
133
+ if cfg=$(crane config "$img" 2>/dev/null); then
134
+ pc=$(echo "$cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_cache"] // ""')
135
+ pb=$(echo "$cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_base"] // ""')
136
+ else
137
+ pc="(missing)"; pb="(missing)"
138
+ fi
139
+ if [ "$pc" != "$FP_CACHE" ]; then
140
+ candidate="ghcr.io/freesolo-co/flash-worker:cu128-dev-ready-$sm"
141
+ candidate_pc=""; candidate_ref=""
142
+ if candidate_digest=$(crane digest "$candidate" 2>/dev/null); then
143
+ candidate_ref="${candidate%:*}@$candidate_digest"
144
+ fi
145
+ if [ -n "$candidate_ref" ] && candidate_cfg=$(crane config "$candidate_ref" 2>/dev/null); then
146
+ candidate_pc=$(echo "$candidate_cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_cache"] // ""')
147
+ fi
148
+ if [ "$candidate_pc" = "$FP_CACHE" ]; then
149
+ relayer+=("$(jq -cn --arg sm "$sm" --arg source "$candidate_ref" '{sm:$sm, source:$source}')")
150
+ action="promote dev cache (free)"
151
+ else
152
+ gpu+=("$sm"); action="gpu re-warm (candidate missing)"
153
+ fi
154
+ elif [ "$pb" != "$FP_BASE" ]; then
155
+ relayer+=("$(jq -cn --arg sm "$sm" --arg source "$img" '{sm:$sm, source:$source}')")
156
+ action="re-layer (free)"
157
+ else
158
+ action="up to date"
159
+ fi
160
+ echo "$sm: pc=$pc pb=$pb -> $action"
161
+ summary="$summary| $sm | \`$pc\` | \`$pb\` | $action |\n"
162
+ done
163
+ if [ ${#relayer[@]} -gt 0 ]; then
164
+ relayer_json=$(printf '%s\n' "${relayer[@]}" | jq -cs .)
165
+ else
166
+ relayer_json='[]'
167
+ fi
168
+ gpu_csv=$(IFS=,; echo "${gpu[*]}")
169
+ echo "relayer_matrix=$relayer_json" >> "$GITHUB_OUTPUT"
170
+ echo "gpu_sms=$gpu_csv" >> "$GITHUB_OUTPUT"
171
+ {
172
+ echo "### auto-rebake plan (base rev \`$REV\`, fp_cache \`$FP_CACHE\` fp_base \`$FP_BASE\`)"
173
+ echo ""
174
+ echo -e "$summary"
175
+ echo ""
176
+ echo "re-layer (free): \`$relayer_json\` | GPU re-warm (paid, auto-started): \`${gpu_csv:-none}\`"
177
+ } >> "$GITHUB_STEP_SUMMARY"
178
+
179
+ # FYI notification (not an action item -- the bake auto-runs). Keeps a heads-up + cost trail of
180
+ # which arches a paid GPU re-warm fired for.
181
+ - name: Notify GPU re-bake auto-started
182
+ if: steps.base.outputs.proceed == 'true' && steps.classify.outputs.gpu_sms != ''
183
+ env:
184
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
185
+ GPU_SMS: ${{ steps.classify.outputs.gpu_sms }}
186
+ REV: ${{ steps.base.outputs.revision }}
187
+ RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
188
+ run: |
189
+ title="kernel-cache: per-arch GPU re-bake auto-started"
190
+ body=$(printf 'The kernel toolchain changed (fp_cache), so a PAID GPU re-warm auto-started for these per-arch images (no approval needed):\n\n- arches: `%s`\n- base rev: `%s`\n\nTrack it in the run: %s' "$GPU_SMS" "$REV" "$RUN_URL")
191
+ # best-effort: a labeling/permission hiccup must never fail the gate. self-heal the label so
192
+ # no manual setup is needed, then reuse one open issue (comment) instead of spamming new ones.
193
+ gh label create kernel-rebake-pending --color B60205 --description "per-arch kernel cache GPU re-bake auto-started" 2>/dev/null || true
194
+ existing=$(gh issue list --label kernel-rebake-pending --state open --json number -q '.[0].number' 2>/dev/null || true)
195
+ if [ -n "${existing:-}" ]; then
196
+ gh issue comment "$existing" --body "$body" || true
197
+ else
198
+ gh issue create --title "$title" --body "$body" --label kernel-rebake-pending \
199
+ || gh issue create --title "$title" --body "$body" || true
200
+ fi
201
+
202
+ # FREE path: graft the existing valid cache onto the fresh base, no GPU. Runs automatically.
203
+ relayer:
204
+ needs: gate
205
+ if: needs.gate.outputs.proceed == 'true' && needs.gate.outputs.relayer_matrix != '[]' && needs.gate.outputs.relayer_matrix != ''
206
+ runs-on: ubuntu-24.04-8core
207
+ # The graft pulls two ~20GB images and pushes one. 21min is the slowest auto-rebake run on
208
+ # record; 60 covers a slow registry without holding the org's larger runner indefinitely.
209
+ timeout-minutes: 60
210
+ strategy:
211
+ fail-fast: false
212
+ matrix:
213
+ include: ${{ fromJson(needs.gate.outputs.relayer_matrix || '[]') }}
214
+ env:
215
+ BASE_REF: ${{ needs.gate.outputs.base_ref }}
216
+ FP_CACHE: ${{ needs.gate.outputs.fp_cache }}
217
+ FP_BASE: ${{ needs.gate.outputs.fp_base }}
218
+ BASE_REVISION: ${{ needs.gate.outputs.base_revision }}
219
+ steps:
220
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
221
+ with:
222
+ ref: ${{ github.event.workflow_run.head_sha }}
223
+
224
+ # The graft pulls two ~20GB images (old per-arch tag + fresh base); reclaim runner disk first.
225
+ - name: Free disk space
226
+ run: |
227
+ sudo rm -rf /usr/share/dotnet /opt/ghc /usr/local/.ghcup \
228
+ /usr/local/lib/android /opt/hostedtoolcache /usr/share/swift \
229
+ /usr/local/share/boost /usr/local/lib/node_modules \
230
+ /usr/local/share/powershell /usr/share/miniconda || true
231
+ sudo apt-get clean || true
232
+ sudo docker image prune -af || true
233
+ df -h /
234
+
235
+ - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
236
+
237
+ - name: Log in to GHCR
238
+ uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
239
+ with:
240
+ registry: ghcr.io
241
+ username: ${{ github.actor }}
242
+ password: ${{ secrets.GITHUB_TOKEN }}
243
+
244
+ # Pin OLDCACHE by digest so a concurrent overwrite of the source tag can't graft a wrong cache.
245
+ - name: Resolve old per-arch cache digest
246
+ id: old
247
+ run: |
248
+ img="${{ matrix.source }}"
249
+ if [[ "$img" == *@sha256:* ]]; then
250
+ echo "ref=$img" >> "$GITHUB_OUTPUT"
251
+ else
252
+ digest=$(docker buildx imagetools inspect "$img" --format '{{.Manifest.Digest}}')
253
+ # canonical digest ref (repo@sha256, no tag) for the FROM in the relayer build.
254
+ echo "ref=${img%:*}@$digest" >> "$GITHUB_OUTPUT"
255
+ fi
256
+
257
+ - name: Re-layer cache onto the fresh base (no GPU)
258
+ uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
259
+ with:
260
+ context: .
261
+ file: docker/Dockerfile.kernelcache.relayer
262
+ push: true
263
+ tags: ghcr.io/freesolo-co/flash-worker:cu128-${{ matrix.sm }}
264
+ provenance: false
265
+ build-args: |
266
+ BASE=${{ env.BASE_REF }}
267
+ OLDCACHE=${{ steps.old.outputs.ref }}
268
+ FP_CACHE=${{ env.FP_CACHE }}
269
+ FP_BASE=${{ env.FP_BASE }}
270
+ BASE_REVISION=${{ env.BASE_REVISION }}
271
+
272
+ # PAID path: re-warm the cache on a real GPU per arch. Runs automatically -- the fingerprint gate
273
+ # above is the only thing that decides it fires (only when fp_cache changed), so no manual approval.
274
+ gpu-warm:
275
+ needs: gate
276
+ if: needs.gate.outputs.proceed == 'true' && needs.gate.outputs.gpu_sms != ''
277
+ uses: ./.github/workflows/bake-kernel-cache.yml
278
+ with:
279
+ sms: ${{ needs.gate.outputs.gpu_sms }}
280
+ fp_cache: ${{ needs.gate.outputs.fp_cache }}
281
+ fp_base: ${{ needs.gate.outputs.fp_base }}
282
+ base_ref: ${{ needs.gate.outputs.base_ref }}
283
+ base_revision: ${{ needs.gate.outputs.base_revision }}
284
+ secrets: inherit
@@ -0,0 +1,259 @@
1
+ name: flash worker kernel-cache (per-arch)
2
+
3
+ # Builds per-SM worker images with the compiled-kernel mega-cache baked in, killing the ~10-15 min
4
+ # first-use JIT on a cold worker (the regression #194 reintroduced). Each matrix leg:
5
+ # 1. offloads the warmup to a RunPod GPU of that arch (GH runners have none) -> build/kernel_cache,
6
+ # 2. docker build --build-arg BUILD_KERNEL_CACHE=true -> ghcr.io/freesolo-co/flash-worker:cu128-<sm>,
7
+ # 3. pushes it. The allocator then selects the cu128-<sm> tag per GPU class for baked arches
8
+ # (see flash/providers/_lifecycle/net/worker.py).
9
+ #
10
+ # Depends on the base ghcr.io/freesolo-co/flash-worker:cu128 image existing (worker-image.yml) — the
11
+ # warmup runs INSIDE it so the cache matches the image's pinned torch/triton/fla/liger toolchain.
12
+ #
13
+ # Secrets: RUNPOD_API_KEY (the warmup GPU pod) + 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.
19
+
20
+ on:
21
+ workflow_dispatch:
22
+ inputs:
23
+ sms:
24
+ description: "comma-separated sm list to bake; default is all validated arches"
25
+ default: "sm80,sm86,sm89,sm90,sm120,sm100"
26
+ required: false
27
+ target_tag_prefix:
28
+ description: "target image tag before the -sm suffix"
29
+ default: "cu128"
30
+ required: false
31
+ # auto-rebake.yml calls this for the EXPENSIVE path (the cache is invalid and must be re-warmed on a
32
+ # real GPU). It passes the arch subset, the fingerprints to stamp, and a digest-pinned base so the
33
+ # warm runs inside the exact :cu128 the per-arch tag will sit on.
34
+ workflow_call:
35
+ inputs:
36
+ sms:
37
+ type: string
38
+ required: true
39
+ fp_cache:
40
+ type: string
41
+ required: false
42
+ default: ""
43
+ fp_base:
44
+ type: string
45
+ required: false
46
+ default: ""
47
+ base_ref:
48
+ type: string
49
+ required: false
50
+ default: "ghcr.io/freesolo-co/flash-worker:cu128"
51
+ base_revision:
52
+ type: string
53
+ required: false
54
+ default: ""
55
+ target_tag_prefix:
56
+ type: string
57
+ required: false
58
+ default: "cu128"
59
+
60
+ permissions:
61
+ contents: read
62
+ packages: write
63
+
64
+ jobs:
65
+ # Ungated: the PAID RunPod bake runs as soon as it's called/dispatched. The decision of WHEN to run
66
+ # lives in auto-rebake.yml's fingerprint gate (it only invokes this when fp_cache changed), so a
67
+ # second manual approval here would be redundant. Re-add an `approve` job with `environment: gpu-bake`
68
+ # (and `needs: approve`) if you ever want a human checkpoint back.
69
+ bake:
70
+ # Upstream only -- see publish.yml. "Ungated" above means no human APPROVAL step; it never meant
71
+ # any repository may start it. This workflow is directly dispatchable (`workflow_dispatch`), so
72
+ # a fork reaches it without passing auto-rebake's fingerprint gate, and it both requests the
73
+ # org-only `ubuntu-24.04-8core` runner (a label a fork has no runner for, so the job QUEUES
74
+ # instead of failing) and creates paid RunPod resources. `workflow_call` from auto-rebake still
75
+ # satisfies this, because a called workflow evaluates `github.repository` as the CALLER's repo.
76
+ if: github.repository == 'freesolo-co/flash'
77
+ runs-on: ubuntu-24.04-8core
78
+ # 47min is the slowest run on record (the rest sit at 12-23min); 120 absorbs a slow provider
79
+ # allocation without letting a hung bake hold the runner for the 6-hour default.
80
+ #
81
+ # This bounds the RUNNER, and only indirectly the spend. The rented pod is released by the
82
+ # `finally` in docker/bake_kernel_cache.py, so the pod outlives the timeout in exactly the case
83
+ # the timeout exists for: if the controller is wedged inside a blocking call, GitHub kills it
84
+ # and that `finally` may never complete, leaving a billed pod with nothing left to terminate it.
85
+ # Closing that needs a server-side pod lifetime or an out-of-band reaper -- a change to the bake
86
+ # tooling rather than to this workflow, so it is deliberately NOT bundled here. Until then, read
87
+ # this cap as "the runner stops waiting", not "the bill stops".
88
+ timeout-minutes: 120
89
+ strategy:
90
+ fail-fast: false
91
+ matrix:
92
+ include:
93
+ - {
94
+ sm: sm80,
95
+ arch: "8.0",
96
+ allowed_cuda: "",
97
+ }
98
+ - {
99
+ sm: sm86,
100
+ arch: "8.6",
101
+ allowed_cuda: "",
102
+ }
103
+ # the controller walks ordered same-sm secure-cloud gpu types from its per-sm map.
104
+ # preferred datacenter cards stay first, but one empty sku cannot strand this architecture
105
+ # on a stale image and send ordinary starts through jit.
106
+ - {
107
+ sm: sm89,
108
+ arch: "8.9",
109
+ allowed_cuda: "",
110
+ }
111
+ - {
112
+ sm: sm90,
113
+ arch: "9.0",
114
+ allowed_cuda: "",
115
+ }
116
+ # blackwell needs cuda-13 hosts to jit its ptx (matches min_cuda_for in the provider).
117
+ - {
118
+ sm: sm120,
119
+ arch: "12.0",
120
+ allowed_cuda: "13.0",
121
+ }
122
+ # datacenter blackwell is distinct from sm120. b200 is the only validated sm100 type.
123
+ - {
124
+ sm: sm100,
125
+ arch: "10.0",
126
+ allowed_cuda: "13.0",
127
+ }
128
+ steps:
129
+ # Gate FIRST (no checkout needed) so skipped arches do no crane / checkout / build work.
130
+ - name: Should bake ${{ matrix.sm }}?
131
+ id: gate
132
+ run: |
133
+ req="${{ inputs.sms || 'sm80,sm86,sm89,sm90,sm120,sm100' }}"
134
+ req="${req// /}" # tolerate spaces, e.g. "sm80, sm86"
135
+ case ",$req," in
136
+ *,${{ matrix.sm }},*) echo "run=true" >> "$GITHUB_OUTPUT" ;;
137
+ *) echo "run=false" >> "$GITHUB_OUTPUT"; echo "skipping ${{ matrix.sm }}" ;;
138
+ esac
139
+
140
+ # Downloaded to disk and checksum-verified before extraction, rather than piped straight
141
+ # into tar: a piped stream is extracted as it arrives, so a corrupted or substituted
142
+ # artifact is already on PATH by the time anything could notice. Bump the version and the
143
+ # digest together (the vendor publishes checksums.txt alongside each release).
144
+ - name: Install crane
145
+ if: steps.gate.outputs.run == 'true'
146
+ run: |
147
+ set -euo pipefail
148
+ ver=v0.20.2
149
+ sha=c14340087103ba9dadf61d45acd20675490fd0ccbd56ac7901fc1b502137f44b
150
+ curl -fsSL -o /tmp/crane.tar.gz \
151
+ "https://github.com/google/go-containerregistry/releases/download/${ver}/go-containerregistry_Linux_x86_64.tar.gz"
152
+ echo "${sha} /tmp/crane.tar.gz" | sha256sum -c -
153
+ sudo tar -xz -C /usr/local/bin -f /tmp/crane.tar.gz crane
154
+ rm -f /tmp/crane.tar.gz
155
+ crane version
156
+
157
+ - name: Log in to GHCR
158
+ if: steps.gate.outputs.run == 'true'
159
+ uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
160
+ with:
161
+ registry: ghcr.io
162
+ username: ${{ github.actor }}
163
+ password: ${{ secrets.GITHUB_TOKEN }}
164
+
165
+ # Resolve the base + fingerprints BEFORE checkout, so the checkout (hence the warmed flash code)
166
+ # is pinned to the EXACT commit the base was built from. auto-rebake passes everything (fast path);
167
+ # a manual dispatch READS the labels off the published base, so the per-arch image always matches
168
+ # the base it extends (same source of truth as the gate) instead of recomputing from the checkout.
169
+ - name: Resolve base + fingerprints
170
+ id: base
171
+ if: steps.gate.outputs.run == 'true'
172
+ run: |
173
+ if [ -n "${{ inputs.fp_cache }}" ]; then
174
+ echo "ref=${{ inputs.base_ref }}" >> "$GITHUB_OUTPUT"
175
+ echo "fp_cache=${{ inputs.fp_cache }}" >> "$GITHUB_OUTPUT"
176
+ echo "fp_base=${{ inputs.fp_base }}" >> "$GITHUB_OUTPUT"
177
+ echo "revision=${{ inputs.base_revision }}" >> "$GITHUB_OUTPUT"
178
+ else
179
+ base="${{ inputs.base_ref || 'ghcr.io/freesolo-co/flash-worker:cu128' }}"
180
+ digest=$(crane digest "$base"); repo=${base%:*}
181
+ cfg=$(crane config "$repo@$digest")
182
+ echo "ref=$repo@$digest" >> "$GITHUB_OUTPUT"
183
+ echo "fp_cache=$(echo "$cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_cache"] // ""')" >> "$GITHUB_OUTPUT"
184
+ echo "fp_base=$(echo "$cfg" | jq -r '.config.Labels["co.freesolo.flash.kernelcache.fp_base"] // ""')" >> "$GITHUB_OUTPUT"
185
+ echo "revision=$(echo "$cfg" | jq -r '.config.Labels["org.opencontainers.image.revision"] // ""')" >> "$GITHUB_OUTPUT"
186
+ fi
187
+
188
+ # Pin the checkout to the base's source commit so the warmed flash code matches the base exactly
189
+ # (the cache is content-keyed by the code that compiled it). Falls back to the event sha if the
190
+ # base predates the revision label.
191
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
192
+ if: steps.gate.outputs.run == 'true'
193
+ with:
194
+ ref: ${{ steps.base.outputs.revision || github.sha }}
195
+
196
+ - name: Install uv
197
+ if: steps.gate.outputs.run == 'true'
198
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
199
+ with:
200
+ # pin the installed binary as well as the action implementation.
201
+ version: "0.12.5"
202
+ # no cache: the post-run cache-prune calls `uv`, but the "Free disk space" step deletes
203
+ # /opt/hostedtoolcache (where setup-uv put uv), so the post step fails ("uv not found") and
204
+ # marks the whole job red even though the bake + push already succeeded.
205
+ enable-cache: false
206
+
207
+ - name: Sync deps (flash + runpod + hf)
208
+ if: steps.gate.outputs.run == 'true'
209
+ run: uv sync --extra server
210
+
211
+ # RUNPOD_API_KEY (the warmup GPU pod) + HF_TOKEN (the temp dataset that ferries code/cache) are
212
+ # native repo Actions secrets, synced from Infisical (prod:/flash-ci) by the github-ci-flash
213
+ # Secret Sync. No Infisical CLI/login at job time -- Infisical stays the source of truth and
214
+ # rotations propagate via the sync. BASE_IMAGE
215
+ # is digest-pinned so the warm runs inside the EXACT base the per-arch tag will sit on.
216
+ - name: Warm kernels on a RunPod ${{ matrix.sm }} GPU -> build/kernel_cache
217
+ if: steps.gate.outputs.run == 'true'
218
+ env:
219
+ RUNPOD_API_KEY: ${{ secrets.RUNPOD_API_KEY }}
220
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
221
+ BASE_IMAGE: ${{ steps.base.outputs.ref }}
222
+ run: |
223
+ uv run python docker/bake_kernel_cache.py \
224
+ --arch "${{ matrix.arch }}" --sm "${{ matrix.sm }}" \
225
+ --allowed-cuda "${{ matrix.allowed_cuda }}" \
226
+ --image "$BASE_IMAGE" \
227
+ --out build/kernel_cache
228
+
229
+ - name: Free disk space
230
+ if: steps.gate.outputs.run == 'true'
231
+ run: |
232
+ sudo rm -rf /usr/share/dotnet /opt/ghc /usr/local/.ghcup \
233
+ /usr/local/lib/android /opt/hostedtoolcache /usr/share/swift \
234
+ /usr/local/share/boost /usr/local/lib/node_modules \
235
+ /usr/local/share/powershell /usr/share/miniconda || true
236
+ sudo apt-get clean || true
237
+ sudo docker image prune -af || true
238
+ df -h /
239
+
240
+ - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
241
+ if: steps.gate.outputs.run == 'true'
242
+
243
+ # thin layer FROM the SAME base the warmup ran inside -> the cache toolchain always matches the
244
+ # shipped image (rebuilding the full Dockerfile.worker from the checkout could drift from the
245
+ # published base and bake a cache that silently won't load). GHCR auth from the login step above.
246
+ - name: Build + push baked per-sm image (thin layer on the warmed base)
247
+ if: steps.gate.outputs.run == 'true'
248
+ uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
249
+ with:
250
+ context: .
251
+ file: docker/Dockerfile.kernelcache
252
+ push: true
253
+ tags: ghcr.io/freesolo-co/flash-worker:${{ inputs.target_tag_prefix || 'cu128' }}-${{ matrix.sm }}
254
+ provenance: false
255
+ build-args: |
256
+ BASE=${{ steps.base.outputs.ref }}
257
+ FP_CACHE=${{ steps.base.outputs.fp_cache }}
258
+ FP_BASE=${{ steps.base.outputs.fp_base }}
259
+ BASE_REVISION=${{ steps.base.outputs.revision }}