freesolo-flash-dev 1.2.116__tar.gz → 1.2.117__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 (1375) hide show
  1. freesolo_flash_dev-1.2.117/.env.example +130 -0
  2. freesolo_flash_dev-1.2.117/.github/workflows/auto-rebake.yml +284 -0
  3. freesolo_flash_dev-1.2.117/.github/workflows/bake-kernel-cache.yml +259 -0
  4. freesolo_flash_dev-1.2.117/.github/workflows/ci.yml +203 -0
  5. freesolo_flash_dev-1.2.117/.github/workflows/deploy-modal-dev.yml +347 -0
  6. freesolo_flash_dev-1.2.117/.github/workflows/deploy-modal.yml +375 -0
  7. freesolo_flash_dev-1.2.117/.github/workflows/publish-image.yml +110 -0
  8. freesolo_flash_dev-1.2.117/.github/workflows/publish-serving-image.yml +213 -0
  9. freesolo_flash_dev-1.2.117/.github/workflows/worker-image.yml +169 -0
  10. freesolo_flash_dev-1.2.117/CHANGELOG.md +199 -0
  11. freesolo_flash_dev-1.2.117/CONTRIBUTING.md +136 -0
  12. freesolo_flash_dev-1.2.117/Dockerfile.worker +477 -0
  13. freesolo_flash_dev-1.2.117/PKG-INFO +346 -0
  14. freesolo_flash_dev-1.2.117/docker/kernel_fingerprint.py +333 -0
  15. freesolo_flash_dev-1.2.117/docker/make_rp_handler.py +58 -0
  16. freesolo_flash_dev-1.2.117/flash/__init__.py +5 -0
  17. freesolo_flash_dev-1.2.117/flash/_internal/channel.py +166 -0
  18. freesolo_flash_dev-1.2.117/flash/_internal/diagnostics.py +170 -0
  19. freesolo_flash_dev-1.2.117/flash/_internal/version.py +10 -0
  20. freesolo_flash_dev-1.2.117/flash/adapters/lora_rank.py +615 -0
  21. freesolo_flash_dev-1.2.117/flash/cli/__init__.py +1 -0
  22. freesolo_flash_dev-1.2.117/flash/cli/__main__.py +6 -0
  23. freesolo_flash_dev-1.2.117/flash/cli/commands/__init__.py +1 -0
  24. freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops/imports.py +369 -0
  25. freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops/list.py +91 -0
  26. freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops/push.py +726 -0
  27. freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops/retained.py +156 -0
  28. freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops/setup.py +979 -0
  29. freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing/episode.py +307 -0
  30. freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing/eval.py +990 -0
  31. freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing/evaluations.py +195 -0
  32. freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing/params.py +256 -0
  33. freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing/test.py +833 -0
  34. freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing/warnings.py +393 -0
  35. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/account.py +255 -0
  36. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/catalog.py +46 -0
  37. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/deploy.py +903 -0
  38. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/log_follow.py +208 -0
  39. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/runs.py +410 -0
  40. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/traces.py +217 -0
  41. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/train.py +513 -0
  42. freesolo_flash_dev-1.2.117/flash/cli/commands/ops/worker_output.py +160 -0
  43. freesolo_flash_dev-1.2.117/flash/cli/commands/serving/deploy.py +332 -0
  44. freesolo_flash_dev-1.2.117/flash/cli/commands/serving/identity.py +282 -0
  45. freesolo_flash_dev-1.2.117/flash/cli/commands/serving/status.py +102 -0
  46. freesolo_flash_dev-1.2.117/flash/cli/commands/serving/undeploy.py +177 -0
  47. freesolo_flash_dev-1.2.117/flash/cli/parsing/account.py +56 -0
  48. freesolo_flash_dev-1.2.117/flash/cli/parsing/env.py +261 -0
  49. freesolo_flash_dev-1.2.117/flash/cli/parsing/main.py +349 -0
  50. freesolo_flash_dev-1.2.117/flash/cli/parsing/models.py +131 -0
  51. freesolo_flash_dev-1.2.117/flash/cli/parsing/serve_parser.py +220 -0
  52. freesolo_flash_dev-1.2.117/flash/cli/parsing/traces.py +53 -0
  53. freesolo_flash_dev-1.2.117/flash/cli/parsing/training.py +109 -0
  54. freesolo_flash_dev-1.2.117/flash/cli/scaffold/TRAINING.md +1815 -0
  55. freesolo_flash_dev-1.2.117/flash/cli/ui/cost.py +70 -0
  56. freesolo_flash_dev-1.2.117/flash/cli/ui/heartbeat.py +497 -0
  57. freesolo_flash_dev-1.2.117/flash/cli/ui/render.py +795 -0
  58. freesolo_flash_dev-1.2.117/flash/cli/ui/tables.py +155 -0
  59. freesolo_flash_dev-1.2.117/flash/client/__init__.py +91 -0
  60. freesolo_flash_dev-1.2.117/flash/client/freesolo_api.py +241 -0
  61. freesolo_flash_dev-1.2.117/flash/client/http.py +916 -0
  62. freesolo_flash_dev-1.2.117/flash/content/multimodal.py +892 -0
  63. freesolo_flash_dev-1.2.117/flash/core/spec.py +863 -0
  64. freesolo_flash_dev-1.2.117/flash/core/spec_persistence.py +109 -0
  65. freesolo_flash_dev-1.2.117/flash/cost/analytical.py +949 -0
  66. freesolo_flash_dev-1.2.117/flash/cost/facts.py +214 -0
  67. freesolo_flash_dev-1.2.117/flash/cost/types.py +353 -0
  68. freesolo_flash_dev-1.2.117/flash/engine/plan/model_config_probe.py +130 -0
  69. freesolo_flash_dev-1.2.117/flash/engine/plan/steps.py +141 -0
  70. freesolo_flash_dev-1.2.117/flash/engine/plan/vram.py +991 -0
  71. freesolo_flash_dev-1.2.117/flash/engine/profiling/dataset_profile.py +353 -0
  72. freesolo_flash_dev-1.2.117/flash/engine/profiling/image_tokens.py +300 -0
  73. freesolo_flash_dev-1.2.117/flash/engine/profiling/sft_workload.py +982 -0
  74. freesolo_flash_dev-1.2.117/flash/engine/profiling/tokenizer.py +29 -0
  75. freesolo_flash_dev-1.2.117/flash/engine/support/verl_checkpoint.py +168 -0
  76. freesolo_flash_dev-1.2.117/flash/engine/support/worker_entrypoint.py +22 -0
  77. freesolo_flash_dev-1.2.117/flash/engine/worker/__init__.py +1 -0
  78. freesolo_flash_dev-1.2.117/flash/engine/worker/__main__.py +4 -0
  79. freesolo_flash_dev-1.2.117/flash/engine/worker/entry/opd.py +166 -0
  80. freesolo_flash_dev-1.2.117/flash/engine/worker/entry/rl.py +14 -0
  81. freesolo_flash_dev-1.2.117/flash/engine/worker/entry/sft.py +204 -0
  82. freesolo_flash_dev-1.2.117/flash/engine/worker/entry/worker.py +225 -0
  83. freesolo_flash_dev-1.2.117/flash/engine/worker/io/heartbeat.py +741 -0
  84. freesolo_flash_dev-1.2.117/flash/engine/worker/io/hf.py +589 -0
  85. freesolo_flash_dev-1.2.117/flash/engine/worker/io/prefetch.py +290 -0
  86. freesolo_flash_dev-1.2.117/flash/engine/worker/io/wandb_log.py +20 -0
  87. freesolo_flash_dev-1.2.117/flash/engine/worker/model/adapter.py +173 -0
  88. freesolo_flash_dev-1.2.117/flash/engine/worker/model/decoding.py +52 -0
  89. freesolo_flash_dev-1.2.117/flash/engine/worker/perf/lifecycle.py +413 -0
  90. freesolo_flash_dev-1.2.117/flash/engine/worker/runtime/state.py +122 -0
  91. freesolo_flash_dev-1.2.117/flash/engine/worker/teacher/client.py +875 -0
  92. freesolo_flash_dev-1.2.117/flash/engine/worker/train/core/lifecycle/finalize.py +113 -0
  93. freesolo_flash_dev-1.2.117/flash/engine/worker/train/core/lifecycle/ledger.py +143 -0
  94. freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry/opd_train.py +246 -0
  95. freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry/opd_train_runner.py +797 -0
  96. freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry/rl_train.py +377 -0
  97. freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry/rl_train_runner.py +934 -0
  98. freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry/sft_train.py +675 -0
  99. freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry/sft_train_runner.py +949 -0
  100. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/bridging/batching.py +205 -0
  101. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/bridging/bridge.py +976 -0
  102. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/bridging/failures.py +117 -0
  103. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/bridging/prompts.py +164 -0
  104. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/bridging/scoring.py +88 -0
  105. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/multiturn/validation.py +80 -0
  106. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/failures.py +434 -0
  107. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/overrides.py +522 -0
  108. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/progress.py +160 -0
  109. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/prompt_preparation.py +217 -0
  110. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/protocol.py +22 -0
  111. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/reporting.py +94 -0
  112. freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration/state.py +111 -0
  113. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/launch/checkpoints.py +634 -0
  114. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/launch/config.py +61 -0
  115. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/launch/inputs.py +605 -0
  116. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/launch/verl_config.py +814 -0
  117. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/rollout/multi_turn.py +825 -0
  118. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/rollout/scoring.py +73 -0
  119. freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/rollout/single_turn.py +247 -0
  120. freesolo_flash_dev-1.2.117/flash/engine/worker/train/sft/setup/__init__.py +0 -0
  121. freesolo_flash_dev-1.2.117/flash/engine/worker/train/sft/setup/checkpoints.py +307 -0
  122. freesolo_flash_dev-1.2.117/flash/engine/worker/train/sft/setup/config.py +294 -0
  123. freesolo_flash_dev-1.2.117/flash/engine/worker/verl/capabilities.py +929 -0
  124. freesolo_flash_dev-1.2.117/flash/engine/worker/verl/checkpoints.py +879 -0
  125. freesolo_flash_dev-1.2.117/flash/engine/worker/verl/diagnostics.py +513 -0
  126. freesolo_flash_dev-1.2.117/flash/engine/worker/verl/parallelism.py +77 -0
  127. freesolo_flash_dev-1.2.117/flash/envs/__init__.py +9 -0
  128. freesolo_flash_dev-1.2.117/flash/envs/loading/__init__.py +0 -0
  129. freesolo_flash_dev-1.2.117/flash/envs/loading/adapter.py +727 -0
  130. freesolo_flash_dev-1.2.117/flash/envs/loading/base.py +221 -0
  131. freesolo_flash_dev-1.2.117/flash/envs/loading/loader.py +985 -0
  132. freesolo_flash_dev-1.2.117/flash/envs/loading/pull.py +223 -0
  133. freesolo_flash_dev-1.2.117/flash/envs/loading/staged.py +490 -0
  134. freesolo_flash_dev-1.2.117/flash/envs/meta/__init__.py +0 -0
  135. freesolo_flash_dev-1.2.117/flash/envs/meta/cache_security.py +189 -0
  136. freesolo_flash_dev-1.2.117/flash/envs/meta/evaluations.py +620 -0
  137. freesolo_flash_dev-1.2.117/flash/envs/meta/identity.py +267 -0
  138. freesolo_flash_dev-1.2.117/flash/envs/meta/namespace_listing.py +75 -0
  139. freesolo_flash_dev-1.2.117/flash/envs/package/__init__.py +0 -0
  140. freesolo_flash_dev-1.2.117/flash/providers/__init__.py +1 -0
  141. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/__init__.py +0 -0
  142. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/bootstrapping/__init__.py +0 -0
  143. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/bootstrapping/bootstrap.py +961 -0
  144. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/instances/__init__.py +0 -0
  145. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/instances/instance.py +401 -0
  146. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/instances/poll.py +470 -0
  147. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/instances/poll_instance.py +719 -0
  148. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/instances/provider.py +187 -0
  149. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/instances/terminal_artifacts.py +268 -0
  150. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/net/__init__.py +0 -0
  151. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/net/http.py +206 -0
  152. freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/net/worker.py +366 -0
  153. freesolo_flash_dev-1.2.117/flash/providers/artifacts/__init__.py +0 -0
  154. freesolo_flash_dev-1.2.117/flash/providers/artifacts/hf.py +581 -0
  155. freesolo_flash_dev-1.2.117/flash/providers/artifacts/preload_runpod.py +525 -0
  156. freesolo_flash_dev-1.2.117/flash/providers/artifacts/weight_cache.py +864 -0
  157. freesolo_flash_dev-1.2.117/flash/providers/core/__init__.py +0 -0
  158. freesolo_flash_dev-1.2.117/flash/providers/core/allocator.py +987 -0
  159. freesolo_flash_dev-1.2.117/flash/providers/core/base.py +950 -0
  160. freesolo_flash_dev-1.2.117/flash/providers/core/fit_errors.py +414 -0
  161. freesolo_flash_dev-1.2.117/flash/providers/core/preflight.py +214 -0
  162. freesolo_flash_dev-1.2.117/flash/providers/core/realized.py +65 -0
  163. freesolo_flash_dev-1.2.117/flash/providers/core/registry.py +87 -0
  164. freesolo_flash_dev-1.2.117/flash/providers/core/sharding.py +111 -0
  165. freesolo_flash_dev-1.2.117/flash/providers/lambda_/__init__.py +1 -0
  166. freesolo_flash_dev-1.2.117/flash/providers/lambda_/client/__init__.py +0 -0
  167. freesolo_flash_dev-1.2.117/flash/providers/lambda_/client/api.py +322 -0
  168. freesolo_flash_dev-1.2.117/flash/providers/lambda_/client/auth.py +15 -0
  169. freesolo_flash_dev-1.2.117/flash/providers/lambda_/client/gpus.py +104 -0
  170. freesolo_flash_dev-1.2.117/flash/providers/lambda_/client/preflight.py +15 -0
  171. freesolo_flash_dev-1.2.117/flash/providers/lambda_/client/pricing.py +57 -0
  172. freesolo_flash_dev-1.2.117/flash/providers/lambda_/execution/__init__.py +1 -0
  173. freesolo_flash_dev-1.2.117/flash/providers/lambda_/execution/provider.py +208 -0
  174. freesolo_flash_dev-1.2.117/flash/providers/lambda_/jobs/__init__.py +973 -0
  175. freesolo_flash_dev-1.2.117/flash/providers/lambda_/jobs/builders.py +121 -0
  176. freesolo_flash_dev-1.2.117/flash/providers/runpod/__init__.py +1 -0
  177. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/__init__.py +0 -0
  178. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/api.py +457 -0
  179. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/auth.py +109 -0
  180. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/cost.py +52 -0
  181. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/gpus.py +83 -0
  182. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/preflight.py +24 -0
  183. freesolo_flash_dev-1.2.117/flash/providers/runpod/client/pricing.py +19 -0
  184. freesolo_flash_dev-1.2.117/flash/providers/runpod/execution/__init__.py +0 -0
  185. freesolo_flash_dev-1.2.117/flash/providers/runpod/execution/job_execution.py +457 -0
  186. freesolo_flash_dev-1.2.117/flash/providers/runpod/execution/jobs.py +243 -0
  187. freesolo_flash_dev-1.2.117/flash/providers/runpod/execution/polling.py +562 -0
  188. freesolo_flash_dev-1.2.117/flash/providers/runpod/execution/provider.py +221 -0
  189. freesolo_flash_dev-1.2.117/flash/providers/runpod/execution/resources.py +256 -0
  190. freesolo_flash_dev-1.2.117/flash/providers/runpod/serverless/__init__.py +0 -0
  191. freesolo_flash_dev-1.2.117/flash/providers/runpod/serverless/endpoints.py +960 -0
  192. freesolo_flash_dev-1.2.117/flash/providers/vast/__init__.py +1 -0
  193. freesolo_flash_dev-1.2.117/flash/providers/vast/client/__init__.py +0 -0
  194. freesolo_flash_dev-1.2.117/flash/providers/vast/client/api.py +473 -0
  195. freesolo_flash_dev-1.2.117/flash/providers/vast/client/auth.py +16 -0
  196. freesolo_flash_dev-1.2.117/flash/providers/vast/client/preflight.py +17 -0
  197. freesolo_flash_dev-1.2.117/flash/providers/vast/client/pricing.py +187 -0
  198. freesolo_flash_dev-1.2.117/flash/providers/vast/execution/__init__.py +1 -0
  199. freesolo_flash_dev-1.2.117/flash/providers/vast/execution/provider.py +214 -0
  200. freesolo_flash_dev-1.2.117/flash/providers/vast/jobs/__init__.py +956 -0
  201. freesolo_flash_dev-1.2.117/flash/providers/vast/jobs/builders.py +227 -0
  202. freesolo_flash_dev-1.2.117/flash/py.typed +0 -0
  203. freesolo_flash_dev-1.2.117/flash/runner/__init__.py +1 -0
  204. freesolo_flash_dev-1.2.117/flash/runner/accounting/__init__.py +0 -0
  205. freesolo_flash_dev-1.2.117/flash/runner/accounting/artifacts.py +254 -0
  206. freesolo_flash_dev-1.2.117/flash/runner/accounting/costs.py +407 -0
  207. freesolo_flash_dev-1.2.117/flash/runner/accounting/reconciliation.py +444 -0
  208. freesolo_flash_dev-1.2.117/flash/runner/accounting/weight_cache.py +84 -0
  209. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/__init__.py +0 -0
  210. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/attempts.py +151 -0
  211. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/deadlines.py +100 -0
  212. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/preparation.py +633 -0
  213. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/reporting.py +262 -0
  214. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/state.py +399 -0
  215. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/status.py +438 -0
  216. freesolo_flash_dev-1.2.117/flash/runner/lifecycle/submit.py +356 -0
  217. freesolo_flash_dev-1.2.117/flash/runner/results/__init__.py +0 -0
  218. freesolo_flash_dev-1.2.117/flash/runner/results/checkpoints.py +121 -0
  219. freesolo_flash_dev-1.2.117/flash/runner/results/verified_revisions.py +169 -0
  220. freesolo_flash_dev-1.2.117/flash/runner/supervise/__init__.py +0 -0
  221. freesolo_flash_dev-1.2.117/flash/runner/supervise/attach.py +911 -0
  222. freesolo_flash_dev-1.2.117/flash/runner/supervise/deploy.py +819 -0
  223. freesolo_flash_dev-1.2.117/flash/runner/supervise/errors.py +9 -0
  224. freesolo_flash_dev-1.2.117/flash/runner/supervise/lifecycle.py +360 -0
  225. freesolo_flash_dev-1.2.117/flash/runner/supervise/recovery.py +641 -0
  226. freesolo_flash_dev-1.2.117/flash/runner/supervise/seed_submission.py +895 -0
  227. freesolo_flash_dev-1.2.117/flash/runner/supervise/transitions.py +339 -0
  228. freesolo_flash_dev-1.2.117/flash/runtime_capsule/profiles.py +66 -0
  229. freesolo_flash_dev-1.2.117/flash/schema/__init__.py +925 -0
  230. freesolo_flash_dev-1.2.117/flash/schema/fields.py +444 -0
  231. freesolo_flash_dev-1.2.117/flash/serve/app/http.py +407 -0
  232. freesolo_flash_dev-1.2.117/flash/serve/app/manifest.py +655 -0
  233. freesolo_flash_dev-1.2.117/flash/serve/app/materialize.py +998 -0
  234. freesolo_flash_dev-1.2.117/flash/serve/app/openai.py +246 -0
  235. freesolo_flash_dev-1.2.117/flash/serve/contract/__init__.py +0 -0
  236. freesolo_flash_dev-1.2.117/flash/serve/contract/errors.py +73 -0
  237. freesolo_flash_dev-1.2.117/flash/serve/contract/responses.py +107 -0
  238. freesolo_flash_dev-1.2.117/flash/serve/contract/urls.py +138 -0
  239. freesolo_flash_dev-1.2.117/flash/serve/control/types.py +877 -0
  240. freesolo_flash_dev-1.2.117/flash/serve/deployment/__init__.py +0 -0
  241. freesolo_flash_dev-1.2.117/flash/serve/deployment/adapter_check.py +179 -0
  242. freesolo_flash_dev-1.2.117/flash/serve/deployment/deploy.py +783 -0
  243. freesolo_flash_dev-1.2.117/flash/serve/deployment/export.py +589 -0
  244. freesolo_flash_dev-1.2.117/flash/serve/deployment/resolve.py +399 -0
  245. freesolo_flash_dev-1.2.117/flash/serve/provisioning/__init__.py +35 -0
  246. freesolo_flash_dev-1.2.117/flash/serve/provisioning/common/__init__.py +0 -0
  247. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/__init__.py +0 -0
  248. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/execution/__init__.py +0 -0
  249. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/execution/deployment.py +644 -0
  250. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/execution/lifecycle.py +116 -0
  251. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/execution/operations.py +623 -0
  252. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/execution/sdk.py +851 -0
  253. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/planning/__init__.py +0 -0
  254. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/planning/plan.py +304 -0
  255. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/planning/resources.py +266 -0
  256. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/readiness_checks/__init__.py +0 -0
  257. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/readiness_checks/probe.py +135 -0
  258. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/readiness_checks/readiness.py +245 -0
  259. freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/readiness_checks/teardown.py +186 -0
  260. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/__init__.py +0 -0
  261. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/lifecycle.py +83 -0
  262. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/operations.py +992 -0
  263. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/plan.py +221 -0
  264. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/probe.py +74 -0
  265. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/readiness.py +683 -0
  266. freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/resources.py +316 -0
  267. freesolo_flash_dev-1.2.117/flash/serve/request/__init__.py +0 -0
  268. freesolo_flash_dev-1.2.117/flash/serve/request/openai.py +294 -0
  269. freesolo_flash_dev-1.2.117/flash/serve/request/streaming.py +260 -0
  270. freesolo_flash_dev-1.2.117/flash/serve/request/thinking.py +226 -0
  271. freesolo_flash_dev-1.2.117/flash/serve/request/transport.py +489 -0
  272. freesolo_flash_dev-1.2.117/flash/serve/request/validation.py +641 -0
  273. freesolo_flash_dev-1.2.117/flash/serve/runtime/adapters.py +276 -0
  274. freesolo_flash_dev-1.2.117/flash/serve/runtime/engine.py +617 -0
  275. freesolo_flash_dev-1.2.117/flash/serve/runtime/multimodal.py +77 -0
  276. freesolo_flash_dev-1.2.117/flash/serve/runtime/structured_outputs.py +18 -0
  277. freesolo_flash_dev-1.2.117/flash/server/__main__.py +6 -0
  278. freesolo_flash_dev-1.2.117/flash/server/asgi/__init__.py +0 -0
  279. freesolo_flash_dev-1.2.117/flash/server/asgi/app.py +433 -0
  280. freesolo_flash_dev-1.2.117/flash/server/asgi/cli.py +69 -0
  281. freesolo_flash_dev-1.2.117/flash/server/billing/__init__.py +0 -0
  282. freesolo_flash_dev-1.2.117/flash/server/billing/retry.py +127 -0
  283. freesolo_flash_dev-1.2.117/flash/server/domain/__init__.py +0 -0
  284. freesolo_flash_dev-1.2.117/flash/server/domain/ops/__init__.py +0 -0
  285. freesolo_flash_dev-1.2.117/flash/server/domain/ops/reconcile.py +146 -0
  286. freesolo_flash_dev-1.2.117/flash/server/domain/ops/repo_cleanup.py +385 -0
  287. freesolo_flash_dev-1.2.117/flash/server/domain/registry/__init__.py +0 -0
  288. freesolo_flash_dev-1.2.117/flash/server/domain/registry/checkpoints.py +111 -0
  289. freesolo_flash_dev-1.2.117/flash/server/domain/registry/environment_registry.py +246 -0
  290. freesolo_flash_dev-1.2.117/flash/server/domain/registry/envs.py +796 -0
  291. freesolo_flash_dev-1.2.117/flash/server/domain/registry/runs.py +182 -0
  292. freesolo_flash_dev-1.2.117/flash/server/domain/teacher/__init__.py +0 -0
  293. freesolo_flash_dev-1.2.117/flash/server/domain/teacher/broker.py +900 -0
  294. freesolo_flash_dev-1.2.117/flash/server/domain/teacher/requests.py +212 -0
  295. freesolo_flash_dev-1.2.117/flash/server/platform/__init__.py +0 -0
  296. freesolo_flash_dev-1.2.117/flash/server/platform/deps.py +254 -0
  297. freesolo_flash_dev-1.2.117/flash/server/platform/internal_client.py +194 -0
  298. freesolo_flash_dev-1.2.117/flash/server/platform/locks.py +79 -0
  299. freesolo_flash_dev-1.2.117/flash/server/platform/runtime.py +799 -0
  300. freesolo_flash_dev-1.2.117/flash/server/routes/envs.py +205 -0
  301. freesolo_flash_dev-1.2.117/flash/server/routes/runs.py +553 -0
  302. freesolo_flash_dev-1.2.117/flash/server/routes/serving.py +894 -0
  303. freesolo_flash_dev-1.2.117/flash/server/routes/serving_completion.py +467 -0
  304. freesolo_flash_dev-1.2.117/flash/server/routes/serving_revisions.py +350 -0
  305. freesolo_flash_dev-1.2.117/flash/server/routes/serving_smoke.py +672 -0
  306. freesolo_flash_dev-1.2.117/flash/server/routes/teacher.py +139 -0
  307. freesolo_flash_dev-1.2.117/flash/serving/__init__.py +0 -0
  308. freesolo_flash_dev-1.2.117/flash/serving/app/README.md +323 -0
  309. freesolo_flash_dev-1.2.117/flash/serving/app/__init__.py +1 -0
  310. freesolo_flash_dev-1.2.117/flash/serving/app/modal_app.py +784 -0
  311. freesolo_flash_dev-1.2.117/flash/serving/src/accounting/__init__.py +0 -0
  312. freesolo_flash_dev-1.2.117/flash/serving/src/accounting/usage.py +215 -0
  313. freesolo_flash_dev-1.2.117/flash/serving/src/accounting/usage_facts.py +54 -0
  314. freesolo_flash_dev-1.2.117/flash/serving/src/accounting/usage_outbox.py +986 -0
  315. freesolo_flash_dev-1.2.117/flash/serving/src/engine/__init__.py +0 -0
  316. freesolo_flash_dev-1.2.117/flash/serving/src/engine/boot.py +226 -0
  317. freesolo_flash_dev-1.2.117/flash/serving/src/engine/errors.py +105 -0
  318. freesolo_flash_dev-1.2.117/flash/serving/src/engine/lora_engine.py +976 -0
  319. freesolo_flash_dev-1.2.117/flash/serving/src/engine/lora_entries.py +50 -0
  320. freesolo_flash_dev-1.2.117/flash/serving/src/engine/model_config.py +204 -0
  321. freesolo_flash_dev-1.2.117/flash/serving/src/engine/support.py +242 -0
  322. freesolo_flash_dev-1.2.117/flash/serving/src/http/__init__.py +0 -0
  323. freesolo_flash_dev-1.2.117/flash/serving/src/http/adapter_routes.py +266 -0
  324. freesolo_flash_dev-1.2.117/flash/serving/src/http/context.py +225 -0
  325. freesolo_flash_dev-1.2.117/flash/serving/src/http/inference_routes.py +332 -0
  326. freesolo_flash_dev-1.2.117/flash/serving/src/http/router.py +144 -0
  327. freesolo_flash_dev-1.2.117/flash/serving/src/http/routing.py +145 -0
  328. freesolo_flash_dev-1.2.117/flash/serving/src/io/__init__.py +0 -0
  329. freesolo_flash_dev-1.2.117/flash/serving/src/io/multimodal.py +109 -0
  330. freesolo_flash_dev-1.2.117/flash/serving/src/io/provenance.py +69 -0
  331. freesolo_flash_dev-1.2.117/flash/serving/src/io/requests.py +35 -0
  332. freesolo_flash_dev-1.2.117/flash/serving/src/io/responses.py +250 -0
  333. freesolo_flash_dev-1.2.117/flash/serving/src/io/schemas.py +482 -0
  334. freesolo_flash_dev-1.2.117/flash/serving/src/io/streaming.py +482 -0
  335. freesolo_flash_dev-1.2.117/flash/serving/src/io/structured_outputs.py +25 -0
  336. freesolo_flash_dev-1.2.117/flash/serving/src/store/__init__.py +0 -0
  337. freesolo_flash_dev-1.2.117/flash/serving/src/store/access.py +94 -0
  338. freesolo_flash_dev-1.2.117/flash/serving/src/store/lookup.py +118 -0
  339. freesolo_flash_dev-1.2.117/flash/serving/src/store/persistence.py +310 -0
  340. freesolo_flash_dev-1.2.117/flash/serving/src/store/registration.py +228 -0
  341. freesolo_flash_dev-1.2.117/flash/serving/src/store/registry.py +176 -0
  342. freesolo_flash_dev-1.2.117/flash/serving/src/store/supabase_rest.py +50 -0
  343. freesolo_flash_dev-1.2.117/flash/serving/src/store/undeploy.py +277 -0
  344. freesolo_flash_dev-1.2.117/flash/snapshot/__init__.py +1 -0
  345. freesolo_flash_dev-1.2.117/flash/snapshot/archive.py +387 -0
  346. freesolo_flash_dev-1.2.117/flash/teacher/__init__.py +0 -0
  347. freesolo_flash_dev-1.2.117/pyproject.toml +325 -0
  348. freesolo_flash_dev-1.2.117/scripts/check_source_layout.py +292 -0
  349. freesolo_flash_dev-1.2.117/scripts/check_verl_pin_exists.py +80 -0
  350. freesolo_flash_dev-1.2.117/tests/_helpers/managed_chat.py +49 -0
  351. freesolo_flash_dev-1.2.117/tests/_helpers/profile.py +203 -0
  352. freesolo_flash_dev-1.2.117/tests/_helpers/runner.py +53 -0
  353. freesolo_flash_dev-1.2.117/tests/conftest.py +499 -0
  354. freesolo_flash_dev-1.2.117/tests/live/__init__.py +0 -0
  355. freesolo_flash_dev-1.2.117/tests/live/test_lambda_live.py +51 -0
  356. freesolo_flash_dev-1.2.117/tests/live/test_runpod_live.py +36 -0
  357. freesolo_flash_dev-1.2.117/tests/live/test_vast_live.py +56 -0
  358. freesolo_flash_dev-1.2.117/tests/serving/conftest.py +262 -0
  359. freesolo_flash_dev-1.2.117/tests/serving/test_base_model_serving.py +294 -0
  360. freesolo_flash_dev-1.2.117/tests/serving/test_chat_auth.py +264 -0
  361. freesolo_flash_dev-1.2.117/tests/serving/test_chat_authorizer.py +525 -0
  362. freesolo_flash_dev-1.2.117/tests/serving/test_checkpoint_model_validation.py +218 -0
  363. freesolo_flash_dev-1.2.117/tests/serving/test_engine_error_status.py +225 -0
  364. freesolo_flash_dev-1.2.117/tests/serving/test_fp8_config.py +169 -0
  365. freesolo_flash_dev-1.2.117/tests/serving/test_immutable_engine.py +332 -0
  366. freesolo_flash_dev-1.2.117/tests/serving/test_immutable_revisions.py +1503 -0
  367. freesolo_flash_dev-1.2.117/tests/serving/test_immutable_schemas.py +147 -0
  368. freesolo_flash_dev-1.2.117/tests/serving/test_modal_deploy_identity.py +112 -0
  369. freesolo_flash_dev-1.2.117/tests/serving/test_modal_image_paths.py +220 -0
  370. freesolo_flash_dev-1.2.117/tests/serving/test_model_config.py +168 -0
  371. freesolo_flash_dev-1.2.117/tests/serving/test_multimodal.py +1148 -0
  372. freesolo_flash_dev-1.2.117/tests/serving/test_per_model_gpu.py +818 -0
  373. freesolo_flash_dev-1.2.117/tests/serving/test_persistence.py +268 -0
  374. freesolo_flash_dev-1.2.117/tests/serving/test_pre_first_disconnect.py +475 -0
  375. freesolo_flash_dev-1.2.117/tests/serving/test_prequant_config.py +42 -0
  376. freesolo_flash_dev-1.2.117/tests/serving/test_registry.py +308 -0
  377. freesolo_flash_dev-1.2.117/tests/serving/test_registry_coverage.py +65 -0
  378. freesolo_flash_dev-1.2.117/tests/serving/test_request_body_limit.py +183 -0
  379. freesolo_flash_dev-1.2.117/tests/serving/test_router.py +1550 -0
  380. freesolo_flash_dev-1.2.117/tests/serving/test_router_coverage.py +294 -0
  381. freesolo_flash_dev-1.2.117/tests/serving/test_router_edge_coverage.py +303 -0
  382. freesolo_flash_dev-1.2.117/tests/serving/test_schemas_coverage.py +188 -0
  383. freesolo_flash_dev-1.2.117/tests/serving/test_serve_reasoning_split.py +276 -0
  384. freesolo_flash_dev-1.2.117/tests/serving/test_serve_structured_outputs.py +776 -0
  385. freesolo_flash_dev-1.2.117/tests/serving/test_serve_thinking.py +153 -0
  386. freesolo_flash_dev-1.2.117/tests/serving/test_settings.py +93 -0
  387. freesolo_flash_dev-1.2.117/tests/serving/test_structured_outputs.py +397 -0
  388. freesolo_flash_dev-1.2.117/tests/serving/test_structured_outputs_coverage.py +22 -0
  389. freesolo_flash_dev-1.2.117/tests/serving/test_supabase_rest_coverage.py +62 -0
  390. freesolo_flash_dev-1.2.117/tests/serving/test_usage_outbox.py +1934 -0
  391. freesolo_flash_dev-1.2.117/tests/serving/test_usage_reporter.py +936 -0
  392. freesolo_flash_dev-1.2.117/tests/serving_conformance/__init__.py +0 -0
  393. freesolo_flash_dev-1.2.117/tests/serving_conformance/conftest.py +162 -0
  394. freesolo_flash_dev-1.2.117/tests/serving_conformance/test_contract.py +786 -0
  395. freesolo_flash_dev-1.2.117/tests/test_adapter_shard_completeness.py +376 -0
  396. freesolo_flash_dev-1.2.117/tests/test_agent_flash_cli_contract.py +291 -0
  397. freesolo_flash_dev-1.2.117/tests/test_allocator.py +2461 -0
  398. freesolo_flash_dev-1.2.117/tests/test_backend_common.py +4906 -0
  399. freesolo_flash_dev-1.2.117/tests/test_bake_kernel_cache.py +165 -0
  400. freesolo_flash_dev-1.2.117/tests/test_billing_retry.py +712 -0
  401. freesolo_flash_dev-1.2.117/tests/test_cancel_remote.py +2214 -0
  402. freesolo_flash_dev-1.2.117/tests/test_catalog_consistency.py +217 -0
  403. freesolo_flash_dev-1.2.117/tests/test_catalog_only_models.py +88 -0
  404. freesolo_flash_dev-1.2.117/tests/test_charge_pricing.py +791 -0
  405. freesolo_flash_dev-1.2.117/tests/test_chat_foundations.py +371 -0
  406. freesolo_flash_dev-1.2.117/tests/test_checkpoint_lifecycle.py +132 -0
  407. freesolo_flash_dev-1.2.117/tests/test_checkpoints.py +690 -0
  408. freesolo_flash_dev-1.2.117/tests/test_cli_commands.py +5451 -0
  409. freesolo_flash_dev-1.2.117/tests/test_cli_commands_coverage.py +581 -0
  410. freesolo_flash_dev-1.2.117/tests/test_cli_credential_shadowing.py +162 -0
  411. freesolo_flash_dev-1.2.117/tests/test_cli_errors.py +285 -0
  412. freesolo_flash_dev-1.2.117/tests/test_cli_estimate.py +1230 -0
  413. freesolo_flash_dev-1.2.117/tests/test_cli_gpus_flag.py +350 -0
  414. freesolo_flash_dev-1.2.117/tests/test_cli_help.py +211 -0
  415. freesolo_flash_dev-1.2.117/tests/test_cli_main_coverage.py +19 -0
  416. freesolo_flash_dev-1.2.117/tests/test_cli_render_coverage.py +643 -0
  417. freesolo_flash_dev-1.2.117/tests/test_cli_render_theme.py +1775 -0
  418. freesolo_flash_dev-1.2.117/tests/test_cli_serve_deploy.py +1071 -0
  419. freesolo_flash_dev-1.2.117/tests/test_cli_serve_status.py +394 -0
  420. freesolo_flash_dev-1.2.117/tests/test_cli_serve_undeploy.py +521 -0
  421. freesolo_flash_dev-1.2.117/tests/test_cli_traces.py +709 -0
  422. freesolo_flash_dev-1.2.117/tests/test_cli_wandb_warning.py +123 -0
  423. freesolo_flash_dev-1.2.117/tests/test_client.py +1411 -0
  424. freesolo_flash_dev-1.2.117/tests/test_client_import_purity.py +235 -0
  425. freesolo_flash_dev-1.2.117/tests/test_client_server_integration.py +347 -0
  426. freesolo_flash_dev-1.2.117/tests/test_config_env_vars.py +412 -0
  427. freesolo_flash_dev-1.2.117/tests/test_console_upload.py +145 -0
  428. freesolo_flash_dev-1.2.117/tests/test_controlled_experiment_repairs.py +503 -0
  429. freesolo_flash_dev-1.2.117/tests/test_cost_analytical.py +467 -0
  430. freesolo_flash_dev-1.2.117/tests/test_cost_equation.py +26 -0
  431. freesolo_flash_dev-1.2.117/tests/test_cost_estimate.py +1022 -0
  432. freesolo_flash_dev-1.2.117/tests/test_cost_hardware.py +685 -0
  433. freesolo_flash_dev-1.2.117/tests/test_cost_models.py +219 -0
  434. freesolo_flash_dev-1.2.117/tests/test_deploy_alias_move_warning.py +554 -0
  435. freesolo_flash_dev-1.2.117/tests/test_deploy_latency.py +426 -0
  436. freesolo_flash_dev-1.2.117/tests/test_dev_channel.py +749 -0
  437. freesolo_flash_dev-1.2.117/tests/test_disk_gb.py +211 -0
  438. freesolo_flash_dev-1.2.117/tests/test_endpoint_name.py +45 -0
  439. freesolo_flash_dev-1.2.117/tests/test_env_cache_evict.py +515 -0
  440. freesolo_flash_dev-1.2.117/tests/test_env_delete.py +148 -0
  441. freesolo_flash_dev-1.2.117/tests/test_env_download.py +109 -0
  442. freesolo_flash_dev-1.2.117/tests/test_env_download_api.py +95 -0
  443. freesolo_flash_dev-1.2.117/tests/test_env_evaluations.py +4337 -0
  444. freesolo_flash_dev-1.2.117/tests/test_env_list_api.py +117 -0
  445. freesolo_flash_dev-1.2.117/tests/test_env_list_cli.py +102 -0
  446. freesolo_flash_dev-1.2.117/tests/test_env_list_hub.py +213 -0
  447. freesolo_flash_dev-1.2.117/tests/test_env_no_install.py +85 -0
  448. freesolo_flash_dev-1.2.117/tests/test_env_publish.py +1962 -0
  449. freesolo_flash_dev-1.2.117/tests/test_env_pull.py +1255 -0
  450. freesolo_flash_dev-1.2.117/tests/test_env_pull_coverage.py +167 -0
  451. freesolo_flash_dev-1.2.117/tests/test_env_pull_loader_coverage.py +332 -0
  452. freesolo_flash_dev-1.2.117/tests/test_env_pull_managed_control_plane.py +174 -0
  453. freesolo_flash_dev-1.2.117/tests/test_env_push.py +1733 -0
  454. freesolo_flash_dev-1.2.117/tests/test_env_rate_limit_resolve.py +334 -0
  455. freesolo_flash_dev-1.2.117/tests/test_env_ref_pinning.py +73 -0
  456. freesolo_flash_dev-1.2.117/tests/test_env_test.py +3436 -0
  457. freesolo_flash_dev-1.2.117/tests/test_envs_coverage.py +117 -0
  458. freesolo_flash_dev-1.2.117/tests/test_export.py +1579 -0
  459. freesolo_flash_dev-1.2.117/tests/test_flash_mvp.py +133 -0
  460. freesolo_flash_dev-1.2.117/tests/test_flash_worker.py +1530 -0
  461. freesolo_flash_dev-1.2.117/tests/test_fused_expert_warmstart.py +1894 -0
  462. freesolo_flash_dev-1.2.117/tests/test_github_urlopen_retry.py +365 -0
  463. freesolo_flash_dev-1.2.117/tests/test_gpu_type_single_field.py +198 -0
  464. freesolo_flash_dev-1.2.117/tests/test_gpus.py +541 -0
  465. freesolo_flash_dev-1.2.117/tests/test_grpo_params.py +767 -0
  466. freesolo_flash_dev-1.2.117/tests/test_grpo_resident_sizing.py +193 -0
  467. freesolo_flash_dev-1.2.117/tests/test_grpo_reward_batching.py +334 -0
  468. freesolo_flash_dev-1.2.117/tests/test_grpo_rollout_contract.py +484 -0
  469. freesolo_flash_dev-1.2.117/tests/test_grpo_rollout_identity.py +824 -0
  470. freesolo_flash_dev-1.2.117/tests/test_idle_endpoint_reaper.py +554 -0
  471. freesolo_flash_dev-1.2.117/tests/test_image_environment_capability.py +92 -0
  472. freesolo_flash_dev-1.2.117/tests/test_instance_bootstrap_coverage.py +2635 -0
  473. freesolo_flash_dev-1.2.117/tests/test_jobs.py +7330 -0
  474. freesolo_flash_dev-1.2.117/tests/test_kernel_fingerprint.py +367 -0
  475. freesolo_flash_dev-1.2.117/tests/test_lambda_api_coverage.py +510 -0
  476. freesolo_flash_dev-1.2.117/tests/test_lambda_runner.py +4169 -0
  477. freesolo_flash_dev-1.2.117/tests/test_login_perms.py +342 -0
  478. freesolo_flash_dev-1.2.117/tests/test_lora_rank_preflight.py +710 -0
  479. freesolo_flash_dev-1.2.117/tests/test_lora_targeting.py +780 -0
  480. freesolo_flash_dev-1.2.117/tests/test_lora_targeting_pinned_verl.py +240 -0
  481. freesolo_flash_dev-1.2.117/tests/test_managed_hf_repo.py +96 -0
  482. freesolo_flash_dev-1.2.117/tests/test_multi_gpu_gate.py +1639 -0
  483. freesolo_flash_dev-1.2.117/tests/test_multimodal_training.py +1208 -0
  484. freesolo_flash_dev-1.2.117/tests/test_named_reward_metrics.py +93 -0
  485. freesolo_flash_dev-1.2.117/tests/test_oom_escalate_gpu.py +973 -0
  486. freesolo_flash_dev-1.2.117/tests/test_opd.py +1894 -0
  487. freesolo_flash_dev-1.2.117/tests/test_opd_multiturn_eos_boundary.py +75 -0
  488. freesolo_flash_dev-1.2.117/tests/test_opd_multiturn_failure_exit.py +449 -0
  489. freesolo_flash_dev-1.2.117/tests/test_opd_resume_safety.py +1528 -0
  490. freesolo_flash_dev-1.2.117/tests/test_opd_train.py +9722 -0
  491. freesolo_flash_dev-1.2.117/tests/test_orchestrator_flash.py +484 -0
  492. freesolo_flash_dev-1.2.117/tests/test_packing_coverage.py +179 -0
  493. freesolo_flash_dev-1.2.117/tests/test_parasail_teacher.py +1440 -0
  494. freesolo_flash_dev-1.2.117/tests/test_persisted_spec_envelope.py +94 -0
  495. freesolo_flash_dev-1.2.117/tests/test_poll_helpers.py +262 -0
  496. freesolo_flash_dev-1.2.117/tests/test_preflight.py +290 -0
  497. freesolo_flash_dev-1.2.117/tests/test_projects.py +652 -0
  498. freesolo_flash_dev-1.2.117/tests/test_prompt_budget.py +397 -0
  499. freesolo_flash_dev-1.2.117/tests/test_provider_preflight_coverage.py +59 -0
  500. freesolo_flash_dev-1.2.117/tests/test_provider_routing.py +2902 -0
  501. freesolo_flash_dev-1.2.117/tests/test_provider_teardown_robustness.py +152 -0
  502. freesolo_flash_dev-1.2.117/tests/test_providers_symmetry.py +464 -0
  503. freesolo_flash_dev-1.2.117/tests/test_realized_cost.py +445 -0
  504. freesolo_flash_dev-1.2.117/tests/test_repo_cleanup.py +621 -0
  505. freesolo_flash_dev-1.2.117/tests/test_resolve_params_b.py +75 -0
  506. freesolo_flash_dev-1.2.117/tests/test_resume_on_retry.py +1419 -0
  507. freesolo_flash_dev-1.2.117/tests/test_rl_train.py +10466 -0
  508. freesolo_flash_dev-1.2.117/tests/test_rollout_samples.py +364 -0
  509. freesolo_flash_dev-1.2.117/tests/test_runmgmt.py +3208 -0
  510. freesolo_flash_dev-1.2.117/tests/test_runpod_api_delete.py +155 -0
  511. freesolo_flash_dev-1.2.117/tests/test_runpod_key_fingerprint.py +401 -0
  512. freesolo_flash_dev-1.2.117/tests/test_runpod_key_waterfall.py +391 -0
  513. freesolo_flash_dev-1.2.117/tests/test_runtime_capsule.py +434 -0
  514. freesolo_flash_dev-1.2.117/tests/test_serve.py +1555 -0
  515. freesolo_flash_dev-1.2.117/tests/test_serve_app_packaging.py +227 -0
  516. freesolo_flash_dev-1.2.117/tests/test_serve_chat_transport.py +782 -0
  517. freesolo_flash_dev-1.2.117/tests/test_serve_modal_sdk.py +1047 -0
  518. freesolo_flash_dev-1.2.117/tests/test_serve_modal_sdk_deadlines.py +126 -0
  519. freesolo_flash_dev-1.2.117/tests/test_serve_modal_teardown_identity.py +105 -0
  520. freesolo_flash_dev-1.2.117/tests/test_serve_profiles.py +359 -0
  521. freesolo_flash_dev-1.2.117/tests/test_serve_provisioning_common.py +404 -0
  522. freesolo_flash_dev-1.2.117/tests/test_serve_provisioning_modal.py +2932 -0
  523. freesolo_flash_dev-1.2.117/tests/test_serve_provisioning_runpod.py +4630 -0
  524. freesolo_flash_dev-1.2.117/tests/test_serve_reasoning_content.py +638 -0
  525. freesolo_flash_dev-1.2.117/tests/test_serve_resolve_provenance.py +498 -0
  526. freesolo_flash_dev-1.2.117/tests/test_serve_runtime_package.py +101 -0
  527. freesolo_flash_dev-1.2.117/tests/test_server_api.py +10004 -0
  528. freesolo_flash_dev-1.2.117/tests/test_server_app_coverage.py +267 -0
  529. freesolo_flash_dev-1.2.117/tests/test_server_billing.py +886 -0
  530. freesolo_flash_dev-1.2.117/tests/test_server_checkpoints_coverage.py +77 -0
  531. freesolo_flash_dev-1.2.117/tests/test_server_db.py +485 -0
  532. freesolo_flash_dev-1.2.117/tests/test_server_envs_coverage.py +2377 -0
  533. freesolo_flash_dev-1.2.117/tests/test_server_managed_chat_requests.py +847 -0
  534. freesolo_flash_dev-1.2.117/tests/test_server_managed_chat_revisions.py +744 -0
  535. freesolo_flash_dev-1.2.117/tests/test_server_serving_resources.py +215 -0
  536. freesolo_flash_dev-1.2.117/tests/test_server_standalone.py +1098 -0
  537. freesolo_flash_dev-1.2.117/tests/test_serving_conformance_gate.py +91 -0
  538. freesolo_flash_dev-1.2.117/tests/test_serving_contract.py +1017 -0
  539. freesolo_flash_dev-1.2.117/tests/test_serving_schema_coverage.py +201 -0
  540. freesolo_flash_dev-1.2.117/tests/test_sft_chunked_nll.py +37 -0
  541. freesolo_flash_dev-1.2.117/tests/test_sft_max_context.py +95 -0
  542. freesolo_flash_dev-1.2.117/tests/test_sft_train.py +5330 -0
  543. freesolo_flash_dev-1.2.117/tests/test_sft_workload.py +1503 -0
  544. freesolo_flash_dev-1.2.117/tests/test_source_attestation_flow.py +196 -0
  545. freesolo_flash_dev-1.2.117/tests/test_source_layout.py +230 -0
  546. freesolo_flash_dev-1.2.117/tests/test_source_snapshot.py +210 -0
  547. freesolo_flash_dev-1.2.117/tests/test_spec_and_validation.py +2448 -0
  548. freesolo_flash_dev-1.2.117/tests/test_spec_contract_bytes.py +346 -0
  549. freesolo_flash_dev-1.2.117/tests/test_staged_environment.py +921 -0
  550. freesolo_flash_dev-1.2.117/tests/test_step_metrics.py +514 -0
  551. freesolo_flash_dev-1.2.117/tests/test_step_timing.py +414 -0
  552. freesolo_flash_dev-1.2.117/tests/test_teacher_broker.py +2358 -0
  553. freesolo_flash_dev-1.2.117/tests/test_terminal_artifacts.py +195 -0
  554. freesolo_flash_dev-1.2.117/tests/test_training_controls.py +597 -0
  555. freesolo_flash_dev-1.2.117/tests/test_vast_api.py +773 -0
  556. freesolo_flash_dev-1.2.117/tests/test_vast_api_coverage.py +307 -0
  557. freesolo_flash_dev-1.2.117/tests/test_vast_offers.py +416 -0
  558. freesolo_flash_dev-1.2.117/tests/test_vast_provider_coverage.py +132 -0
  559. freesolo_flash_dev-1.2.117/tests/test_vast_runner.py +2893 -0
  560. freesolo_flash_dev-1.2.117/tests/test_verified_revisions.py +237 -0
  561. freesolo_flash_dev-1.2.117/tests/test_verifiers.py +2931 -0
  562. freesolo_flash_dev-1.2.117/tests/test_verl_checkpoint_export.py +598 -0
  563. freesolo_flash_dev-1.2.117/tests/test_verl_child_plugins.py +799 -0
  564. freesolo_flash_dev-1.2.117/tests/test_verl_silence_watchdog.py +224 -0
  565. freesolo_flash_dev-1.2.117/tests/test_vram_architecture.py +231 -0
  566. freesolo_flash_dev-1.2.117/tests/test_wandb_link.py +394 -0
  567. freesolo_flash_dev-1.2.117/tests/test_wandb_naming.py +167 -0
  568. freesolo_flash_dev-1.2.117/tests/test_warmstart_adapter_download.py +320 -0
  569. freesolo_flash_dev-1.2.117/tests/test_warmstart_cross_repo.py +1611 -0
  570. freesolo_flash_dev-1.2.117/tests/test_warmstart_error_attribution.py +63 -0
  571. freesolo_flash_dev-1.2.117/tests/test_warmstart_image_adapters.py +222 -0
  572. freesolo_flash_dev-1.2.117/tests/test_weight_cache.py +4919 -0
  573. freesolo_flash_dev-1.2.117/tests/test_worker_dryrun.py +175 -0
  574. freesolo_flash_dev-1.2.117/tests/test_worker_hardexit.py +304 -0
  575. freesolo_flash_dev-1.2.117/tests/test_worker_image.py +42 -0
  576. freesolo_flash_dev-1.2.117/tests/test_worker_init_heartbeat.py +1732 -0
  577. freesolo_flash_dev-1.2.117/tests/test_worker_stack.py +2241 -0
  578. freesolo_flash_dev-1.2.117/tests/test_worker_thinking.py +248 -0
  579. freesolo_flash_dev-1.2.117/tests/test_zero2_sharding_gate.py +266 -0
  580. freesolo_flash_dev-1.2.117/uv.lock +5817 -0
  581. freesolo_flash_dev-1.2.116/.env.example +0 -130
  582. freesolo_flash_dev-1.2.116/.github/workflows/auto-rebake.yml +0 -284
  583. freesolo_flash_dev-1.2.116/.github/workflows/bake-kernel-cache.yml +0 -259
  584. freesolo_flash_dev-1.2.116/.github/workflows/ci.yml +0 -198
  585. freesolo_flash_dev-1.2.116/.github/workflows/deploy-modal-dev.yml +0 -347
  586. freesolo_flash_dev-1.2.116/.github/workflows/deploy-modal.yml +0 -375
  587. freesolo_flash_dev-1.2.116/.github/workflows/publish-image.yml +0 -110
  588. freesolo_flash_dev-1.2.116/.github/workflows/publish-serving-image.yml +0 -213
  589. freesolo_flash_dev-1.2.116/.github/workflows/worker-image.yml +0 -169
  590. freesolo_flash_dev-1.2.116/CHANGELOG.md +0 -196
  591. freesolo_flash_dev-1.2.116/CONTRIBUTING.md +0 -136
  592. freesolo_flash_dev-1.2.116/Dockerfile.worker +0 -477
  593. freesolo_flash_dev-1.2.116/PKG-INFO +0 -346
  594. freesolo_flash_dev-1.2.116/docker/kernel_fingerprint.py +0 -333
  595. freesolo_flash_dev-1.2.116/docker/make_rp_handler.py +0 -58
  596. freesolo_flash_dev-1.2.116/flash/__init__.py +0 -13
  597. freesolo_flash_dev-1.2.116/flash/_internal/channel.py +0 -166
  598. freesolo_flash_dev-1.2.116/flash/_internal/diagnostics.py +0 -170
  599. freesolo_flash_dev-1.2.116/flash/adapters/lora_rank.py +0 -615
  600. freesolo_flash_dev-1.2.116/flash/cli/__init__.py +0 -941
  601. freesolo_flash_dev-1.2.116/flash/cli/__main__.py +0 -6
  602. freesolo_flash_dev-1.2.116/flash/cli/commands/__init__.py +0 -973
  603. freesolo_flash_dev-1.2.116/flash/cli/commands/deploy.py +0 -824
  604. freesolo_flash_dev-1.2.116/flash/cli/commands/env/episode.py +0 -307
  605. freesolo_flash_dev-1.2.116/flash/cli/commands/env/eval.py +0 -990
  606. freesolo_flash_dev-1.2.116/flash/cli/commands/env/imports.py +0 -369
  607. freesolo_flash_dev-1.2.116/flash/cli/commands/env/list.py +0 -91
  608. freesolo_flash_dev-1.2.116/flash/cli/commands/env/push.py +0 -726
  609. freesolo_flash_dev-1.2.116/flash/cli/commands/env/retained.py +0 -156
  610. freesolo_flash_dev-1.2.116/flash/cli/commands/env/setup.py +0 -979
  611. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test.py +0 -833
  612. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test_evaluations.py +0 -195
  613. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test_params.py +0 -256
  614. freesolo_flash_dev-1.2.116/flash/cli/commands/env/test_warnings.py +0 -393
  615. freesolo_flash_dev-1.2.116/flash/cli/commands/log_follow.py +0 -207
  616. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_deploy.py +0 -326
  617. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_identity.py +0 -279
  618. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_status.py +0 -100
  619. freesolo_flash_dev-1.2.116/flash/cli/commands/serve_undeploy.py +0 -175
  620. freesolo_flash_dev-1.2.116/flash/cli/commands/traces.py +0 -217
  621. freesolo_flash_dev-1.2.116/flash/cli/commands/train_cost.py +0 -408
  622. freesolo_flash_dev-1.2.116/flash/cli/commands/worker_output.py +0 -159
  623. freesolo_flash_dev-1.2.116/flash/cli/scaffold/TRAINING.md +0 -1815
  624. freesolo_flash_dev-1.2.116/flash/cli/serve_parser.py +0 -220
  625. freesolo_flash_dev-1.2.116/flash/cli/ui/cost.py +0 -73
  626. freesolo_flash_dev-1.2.116/flash/cli/ui/heartbeat.py +0 -499
  627. freesolo_flash_dev-1.2.116/flash/cli/ui/render.py +0 -834
  628. freesolo_flash_dev-1.2.116/flash/cli/ui/tables.py +0 -165
  629. freesolo_flash_dev-1.2.116/flash/client/__init__.py +0 -91
  630. freesolo_flash_dev-1.2.116/flash/client/freesolo_api.py +0 -241
  631. freesolo_flash_dev-1.2.116/flash/client/http.py +0 -916
  632. freesolo_flash_dev-1.2.116/flash/content/multimodal.py +0 -892
  633. freesolo_flash_dev-1.2.116/flash/core/spec.py +0 -863
  634. freesolo_flash_dev-1.2.116/flash/core/spec_persistence.py +0 -109
  635. freesolo_flash_dev-1.2.116/flash/cost/analytical.py +0 -946
  636. freesolo_flash_dev-1.2.116/flash/cost/facts.py +0 -214
  637. freesolo_flash_dev-1.2.116/flash/cost/types.py +0 -353
  638. freesolo_flash_dev-1.2.116/flash/engine/plan/model_config_probe.py +0 -130
  639. freesolo_flash_dev-1.2.116/flash/engine/plan/steps.py +0 -141
  640. freesolo_flash_dev-1.2.116/flash/engine/plan/vram.py +0 -991
  641. freesolo_flash_dev-1.2.116/flash/engine/profiling/dataset_profile.py +0 -349
  642. freesolo_flash_dev-1.2.116/flash/engine/profiling/image_tokens.py +0 -300
  643. freesolo_flash_dev-1.2.116/flash/engine/profiling/sft_workload.py +0 -982
  644. freesolo_flash_dev-1.2.116/flash/engine/profiling/tokenizer.py +0 -29
  645. freesolo_flash_dev-1.2.116/flash/engine/verl_checkpoint.py +0 -142
  646. freesolo_flash_dev-1.2.116/flash/engine/worker/__init__.py +0 -538
  647. freesolo_flash_dev-1.2.116/flash/engine/worker/__main__.py +0 -4
  648. freesolo_flash_dev-1.2.116/flash/engine/worker/entry/opd.py +0 -166
  649. freesolo_flash_dev-1.2.116/flash/engine/worker/entry/rl.py +0 -14
  650. freesolo_flash_dev-1.2.116/flash/engine/worker/entry/sft.py +0 -204
  651. freesolo_flash_dev-1.2.116/flash/engine/worker/io/heartbeat.py +0 -732
  652. freesolo_flash_dev-1.2.116/flash/engine/worker/io/hf.py +0 -588
  653. freesolo_flash_dev-1.2.116/flash/engine/worker/io/prefetch.py +0 -290
  654. freesolo_flash_dev-1.2.116/flash/engine/worker/io/wandb_log.py +0 -20
  655. freesolo_flash_dev-1.2.116/flash/engine/worker/model/adapter.py +0 -167
  656. freesolo_flash_dev-1.2.116/flash/engine/worker/model/decoding.py +0 -51
  657. freesolo_flash_dev-1.2.116/flash/engine/worker/opd_train.py +0 -525
  658. freesolo_flash_dev-1.2.116/flash/engine/worker/opd_train_runner.py +0 -791
  659. freesolo_flash_dev-1.2.116/flash/engine/worker/perf/lifecycle.py +0 -413
  660. freesolo_flash_dev-1.2.116/flash/engine/worker/rl_train.py +0 -566
  661. freesolo_flash_dev-1.2.116/flash/engine/worker/rl_train_runner.py +0 -767
  662. freesolo_flash_dev-1.2.116/flash/engine/worker/runtime/pkg_proxy.py +0 -24
  663. freesolo_flash_dev-1.2.116/flash/engine/worker/sft_train.py +0 -704
  664. freesolo_flash_dev-1.2.116/flash/engine/worker/sft_train_runner.py +0 -936
  665. freesolo_flash_dev-1.2.116/flash/engine/worker/teacher/client.py +0 -875
  666. freesolo_flash_dev-1.2.116/flash/engine/worker/train/core/checkpoint_lifecycle.py +0 -143
  667. freesolo_flash_dev-1.2.116/flash/engine/worker/train/finalize.py +0 -97
  668. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/batching.py +0 -216
  669. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/bridge.py +0 -983
  670. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/bridge_failures.py +0 -117
  671. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/failures.py +0 -429
  672. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/multiturn_validation.py +0 -80
  673. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/overrides.py +0 -522
  674. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/prompt_preparation.py +0 -213
  675. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/prompts.py +0 -161
  676. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/reporting.py +0 -94
  677. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/scoring.py +0 -84
  678. freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/state.py +0 -111
  679. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/checkpoints.py +0 -353
  680. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/config.py +0 -61
  681. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/inputs.py +0 -606
  682. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/multi_turn.py +0 -823
  683. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/scoring.py +0 -73
  684. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/single_turn.py +0 -245
  685. freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/verl_config.py +0 -812
  686. freesolo_flash_dev-1.2.116/flash/engine/worker/train/sft/checkpoints.py +0 -307
  687. freesolo_flash_dev-1.2.116/flash/engine/worker/train/sft/config.py +0 -294
  688. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/capabilities.py +0 -929
  689. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/checkpoints.py +0 -838
  690. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/diagnostics.py +0 -513
  691. freesolo_flash_dev-1.2.116/flash/engine/worker/verl/parallelism.py +0 -76
  692. freesolo_flash_dev-1.2.116/flash/engine/worker_entrypoint.py +0 -22
  693. freesolo_flash_dev-1.2.116/flash/envs/__init__.py +0 -9
  694. freesolo_flash_dev-1.2.116/flash/envs/adapter.py +0 -727
  695. freesolo_flash_dev-1.2.116/flash/envs/base.py +0 -221
  696. freesolo_flash_dev-1.2.116/flash/envs/cache_security.py +0 -189
  697. freesolo_flash_dev-1.2.116/flash/envs/evaluations.py +0 -620
  698. freesolo_flash_dev-1.2.116/flash/envs/identity.py +0 -267
  699. freesolo_flash_dev-1.2.116/flash/envs/loader.py +0 -985
  700. freesolo_flash_dev-1.2.116/flash/envs/namespace_listing.py +0 -75
  701. freesolo_flash_dev-1.2.116/flash/envs/pull.py +0 -223
  702. freesolo_flash_dev-1.2.116/flash/envs/staged.py +0 -490
  703. freesolo_flash_dev-1.2.116/flash/providers/__init__.py +0 -87
  704. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap.py +0 -961
  705. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/http.py +0 -206
  706. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/instance.py +0 -401
  707. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/poll.py +0 -470
  708. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/poll_instance.py +0 -719
  709. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/provider.py +0 -187
  710. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/terminal_artifacts.py +0 -268
  711. freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/worker.py +0 -366
  712. freesolo_flash_dev-1.2.116/flash/providers/allocator.py +0 -985
  713. freesolo_flash_dev-1.2.116/flash/providers/artifacts/hf.py +0 -578
  714. freesolo_flash_dev-1.2.116/flash/providers/artifacts/preload_runpod.py +0 -524
  715. freesolo_flash_dev-1.2.116/flash/providers/artifacts/weight_cache.py +0 -862
  716. freesolo_flash_dev-1.2.116/flash/providers/base.py +0 -959
  717. freesolo_flash_dev-1.2.116/flash/providers/fit_errors.py +0 -414
  718. freesolo_flash_dev-1.2.116/flash/providers/lambda_/__init__.py +0 -208
  719. freesolo_flash_dev-1.2.116/flash/providers/lambda_/api.py +0 -322
  720. freesolo_flash_dev-1.2.116/flash/providers/lambda_/auth.py +0 -15
  721. freesolo_flash_dev-1.2.116/flash/providers/lambda_/gpus.py +0 -104
  722. freesolo_flash_dev-1.2.116/flash/providers/lambda_/jobs/__init__.py +0 -970
  723. freesolo_flash_dev-1.2.116/flash/providers/lambda_/jobs/builders.py +0 -121
  724. freesolo_flash_dev-1.2.116/flash/providers/lambda_/preflight.py +0 -15
  725. freesolo_flash_dev-1.2.116/flash/providers/lambda_/pricing.py +0 -57
  726. freesolo_flash_dev-1.2.116/flash/providers/preflight.py +0 -214
  727. freesolo_flash_dev-1.2.116/flash/providers/realized.py +0 -65
  728. freesolo_flash_dev-1.2.116/flash/providers/runpod/__init__.py +0 -221
  729. freesolo_flash_dev-1.2.116/flash/providers/runpod/api.py +0 -457
  730. freesolo_flash_dev-1.2.116/flash/providers/runpod/auth.py +0 -109
  731. freesolo_flash_dev-1.2.116/flash/providers/runpod/cost.py +0 -52
  732. freesolo_flash_dev-1.2.116/flash/providers/runpod/gpus.py +0 -83
  733. freesolo_flash_dev-1.2.116/flash/providers/runpod/job_execution.py +0 -801
  734. freesolo_flash_dev-1.2.116/flash/providers/runpod/jobs.py +0 -483
  735. freesolo_flash_dev-1.2.116/flash/providers/runpod/preflight.py +0 -24
  736. freesolo_flash_dev-1.2.116/flash/providers/runpod/pricing.py +0 -19
  737. freesolo_flash_dev-1.2.116/flash/providers/runpod/resources.py +0 -268
  738. freesolo_flash_dev-1.2.116/flash/providers/runpod/serverless/__init__.py +0 -24
  739. freesolo_flash_dev-1.2.116/flash/providers/runpod/serverless/endpoints.py +0 -960
  740. freesolo_flash_dev-1.2.116/flash/providers/sharding.py +0 -114
  741. freesolo_flash_dev-1.2.116/flash/providers/vast/__init__.py +0 -214
  742. freesolo_flash_dev-1.2.116/flash/providers/vast/api.py +0 -473
  743. freesolo_flash_dev-1.2.116/flash/providers/vast/auth.py +0 -16
  744. freesolo_flash_dev-1.2.116/flash/providers/vast/jobs/__init__.py +0 -953
  745. freesolo_flash_dev-1.2.116/flash/providers/vast/jobs/builders.py +0 -227
  746. freesolo_flash_dev-1.2.116/flash/providers/vast/preflight.py +0 -17
  747. freesolo_flash_dev-1.2.116/flash/providers/vast/pricing.py +0 -187
  748. freesolo_flash_dev-1.2.116/flash/runner/__init__.py +0 -896
  749. freesolo_flash_dev-1.2.116/flash/runner/artifacts.py +0 -251
  750. freesolo_flash_dev-1.2.116/flash/runner/attempts.py +0 -146
  751. freesolo_flash_dev-1.2.116/flash/runner/costs.py +0 -399
  752. freesolo_flash_dev-1.2.116/flash/runner/deadlines.py +0 -97
  753. freesolo_flash_dev-1.2.116/flash/runner/preparation.py +0 -612
  754. freesolo_flash_dev-1.2.116/flash/runner/reconciliation.py +0 -449
  755. freesolo_flash_dev-1.2.116/flash/runner/results/checkpoints.py +0 -121
  756. freesolo_flash_dev-1.2.116/flash/runner/results/verified_revisions.py +0 -169
  757. freesolo_flash_dev-1.2.116/flash/runner/status.py +0 -436
  758. freesolo_flash_dev-1.2.116/flash/runner/submit.py +0 -350
  759. freesolo_flash_dev-1.2.116/flash/runner/supervise/attach.py +0 -904
  760. freesolo_flash_dev-1.2.116/flash/runner/supervise/deploy.py +0 -859
  761. freesolo_flash_dev-1.2.116/flash/runner/supervise/lifecycle.py +0 -353
  762. freesolo_flash_dev-1.2.116/flash/runner/supervise/recovery.py +0 -641
  763. freesolo_flash_dev-1.2.116/flash/runner/supervise/seed_submission.py +0 -901
  764. freesolo_flash_dev-1.2.116/flash/runner/supervise/transitions.py +0 -328
  765. freesolo_flash_dev-1.2.116/flash/runner/weight_cache.py +0 -81
  766. freesolo_flash_dev-1.2.116/flash/runtime_capsule/profiles.py +0 -66
  767. freesolo_flash_dev-1.2.116/flash/schema/__init__.py +0 -924
  768. freesolo_flash_dev-1.2.116/flash/schema/fields.py +0 -444
  769. freesolo_flash_dev-1.2.116/flash/serve/_chat_transport.py +0 -350
  770. freesolo_flash_dev-1.2.116/flash/serve/adapter_check.py +0 -184
  771. freesolo_flash_dev-1.2.116/flash/serve/app/http.py +0 -407
  772. freesolo_flash_dev-1.2.116/flash/serve/app/manifest.py +0 -655
  773. freesolo_flash_dev-1.2.116/flash/serve/app/materialize.py +0 -998
  774. freesolo_flash_dev-1.2.116/flash/serve/app/openai.py +0 -246
  775. freesolo_flash_dev-1.2.116/flash/serve/control/types.py +0 -877
  776. freesolo_flash_dev-1.2.116/flash/serve/deploy.py +0 -965
  777. freesolo_flash_dev-1.2.116/flash/serve/errors.py +0 -73
  778. freesolo_flash_dev-1.2.116/flash/serve/export.py +0 -589
  779. freesolo_flash_dev-1.2.116/flash/serve/openai_request.py +0 -294
  780. freesolo_flash_dev-1.2.116/flash/serve/provisioning/__init__.py +0 -35
  781. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_deployment.py +0 -640
  782. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_lifecycle.py +0 -112
  783. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_plan.py +0 -305
  784. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_probe.py +0 -136
  785. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_readiness.py +0 -237
  786. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_resources.py +0 -267
  787. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_sdk.py +0 -848
  788. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_teardown.py +0 -179
  789. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_lifecycle.py +0 -84
  790. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_plan.py +0 -222
  791. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_probe.py +0 -74
  792. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_readiness.py +0 -678
  793. freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_resources.py +0 -317
  794. freesolo_flash_dev-1.2.116/flash/serve/provisioning/modal.py +0 -624
  795. freesolo_flash_dev-1.2.116/flash/serve/provisioning/runpod.py +0 -993
  796. freesolo_flash_dev-1.2.116/flash/serve/request_validation.py +0 -641
  797. freesolo_flash_dev-1.2.116/flash/serve/resolve.py +0 -399
  798. freesolo_flash_dev-1.2.116/flash/serve/responses.py +0 -107
  799. freesolo_flash_dev-1.2.116/flash/serve/runtime/adapters.py +0 -276
  800. freesolo_flash_dev-1.2.116/flash/serve/runtime/engine.py +0 -617
  801. freesolo_flash_dev-1.2.116/flash/serve/runtime/multimodal.py +0 -77
  802. freesolo_flash_dev-1.2.116/flash/serve/runtime/structured_outputs.py +0 -18
  803. freesolo_flash_dev-1.2.116/flash/serve/streaming.py +0 -260
  804. freesolo_flash_dev-1.2.116/flash/serve/thinking.py +0 -226
  805. freesolo_flash_dev-1.2.116/flash/serve/urls.py +0 -148
  806. freesolo_flash_dev-1.2.116/flash/server/__main__.py +0 -73
  807. freesolo_flash_dev-1.2.116/flash/server/app.py +0 -431
  808. freesolo_flash_dev-1.2.116/flash/server/billing/retry.py +0 -126
  809. freesolo_flash_dev-1.2.116/flash/server/domain/checkpoints.py +0 -111
  810. freesolo_flash_dev-1.2.116/flash/server/domain/environment_registry.py +0 -246
  811. freesolo_flash_dev-1.2.116/flash/server/domain/envs.py +0 -796
  812. freesolo_flash_dev-1.2.116/flash/server/domain/reconcile.py +0 -144
  813. freesolo_flash_dev-1.2.116/flash/server/domain/repo_cleanup.py +0 -385
  814. freesolo_flash_dev-1.2.116/flash/server/domain/run_registry.py +0 -181
  815. freesolo_flash_dev-1.2.116/flash/server/domain/teacher_broker.py +0 -898
  816. freesolo_flash_dev-1.2.116/flash/server/domain/teacher_requests.py +0 -212
  817. freesolo_flash_dev-1.2.116/flash/server/platform/deps.py +0 -251
  818. freesolo_flash_dev-1.2.116/flash/server/platform/internal_client.py +0 -194
  819. freesolo_flash_dev-1.2.116/flash/server/platform/locks.py +0 -79
  820. freesolo_flash_dev-1.2.116/flash/server/platform/runtime.py +0 -801
  821. freesolo_flash_dev-1.2.116/flash/server/routes/envs.py +0 -205
  822. freesolo_flash_dev-1.2.116/flash/server/routes/runs.py +0 -552
  823. freesolo_flash_dev-1.2.116/flash/server/routes/serving.py +0 -902
  824. freesolo_flash_dev-1.2.116/flash/server/routes/serving_completion.py +0 -473
  825. freesolo_flash_dev-1.2.116/flash/server/routes/serving_revisions.py +0 -349
  826. freesolo_flash_dev-1.2.116/flash/server/routes/serving_smoke.py +0 -672
  827. freesolo_flash_dev-1.2.116/flash/server/routes/teacher.py +0 -139
  828. freesolo_flash_dev-1.2.116/flash/serving/README.md +0 -323
  829. freesolo_flash_dev-1.2.116/flash/serving/modal_app.py +0 -780
  830. freesolo_flash_dev-1.2.116/flash/serving/src/adapter_routes.py +0 -265
  831. freesolo_flash_dev-1.2.116/flash/serving/src/context.py +0 -225
  832. freesolo_flash_dev-1.2.116/flash/serving/src/engine_boot.py +0 -226
  833. freesolo_flash_dev-1.2.116/flash/serving/src/engine_errors.py +0 -105
  834. freesolo_flash_dev-1.2.116/flash/serving/src/engine_support.py +0 -242
  835. freesolo_flash_dev-1.2.116/flash/serving/src/inference_routes.py +0 -333
  836. freesolo_flash_dev-1.2.116/flash/serving/src/lookup.py +0 -118
  837. freesolo_flash_dev-1.2.116/flash/serving/src/lora_engine.py +0 -976
  838. freesolo_flash_dev-1.2.116/flash/serving/src/lora_entries.py +0 -50
  839. freesolo_flash_dev-1.2.116/flash/serving/src/model_config.py +0 -202
  840. freesolo_flash_dev-1.2.116/flash/serving/src/multimodal.py +0 -79
  841. freesolo_flash_dev-1.2.116/flash/serving/src/persistence.py +0 -310
  842. freesolo_flash_dev-1.2.116/flash/serving/src/registration.py +0 -197
  843. freesolo_flash_dev-1.2.116/flash/serving/src/registry.py +0 -176
  844. freesolo_flash_dev-1.2.116/flash/serving/src/responses.py +0 -230
  845. freesolo_flash_dev-1.2.116/flash/serving/src/router.py +0 -141
  846. freesolo_flash_dev-1.2.116/flash/serving/src/routing.py +0 -145
  847. freesolo_flash_dev-1.2.116/flash/serving/src/schemas.py +0 -482
  848. freesolo_flash_dev-1.2.116/flash/serving/src/serving_io.py +0 -279
  849. freesolo_flash_dev-1.2.116/flash/serving/src/streaming.py +0 -476
  850. freesolo_flash_dev-1.2.116/flash/serving/src/structured_outputs.py +0 -25
  851. freesolo_flash_dev-1.2.116/flash/serving/src/supabase_rest.py +0 -50
  852. freesolo_flash_dev-1.2.116/flash/serving/src/undeploy.py +0 -277
  853. freesolo_flash_dev-1.2.116/flash/serving/src/usage.py +0 -215
  854. freesolo_flash_dev-1.2.116/flash/serving/src/usage_facts.py +0 -54
  855. freesolo_flash_dev-1.2.116/flash/serving/src/usage_outbox.py +0 -986
  856. freesolo_flash_dev-1.2.116/flash/source_snapshot.py +0 -387
  857. freesolo_flash_dev-1.2.116/pyproject.toml +0 -324
  858. freesolo_flash_dev-1.2.116/scripts/check_verl_pin_exists.py +0 -80
  859. freesolo_flash_dev-1.2.116/tests/_helpers/managed_chat.py +0 -44
  860. freesolo_flash_dev-1.2.116/tests/_helpers/profile.py +0 -196
  861. freesolo_flash_dev-1.2.116/tests/_helpers/runner.py +0 -64
  862. freesolo_flash_dev-1.2.116/tests/conftest.py +0 -499
  863. freesolo_flash_dev-1.2.116/tests/live/test_lambda_live.py +0 -51
  864. freesolo_flash_dev-1.2.116/tests/live/test_runpod_live.py +0 -36
  865. freesolo_flash_dev-1.2.116/tests/live/test_vast_live.py +0 -56
  866. freesolo_flash_dev-1.2.116/tests/serving/conftest.py +0 -230
  867. freesolo_flash_dev-1.2.116/tests/serving/test_base_model_serving.py +0 -308
  868. freesolo_flash_dev-1.2.116/tests/serving/test_chat_auth.py +0 -264
  869. freesolo_flash_dev-1.2.116/tests/serving/test_chat_authorizer.py +0 -540
  870. freesolo_flash_dev-1.2.116/tests/serving/test_checkpoint_model_validation.py +0 -218
  871. freesolo_flash_dev-1.2.116/tests/serving/test_engine_error_status.py +0 -225
  872. freesolo_flash_dev-1.2.116/tests/serving/test_fp8_config.py +0 -169
  873. freesolo_flash_dev-1.2.116/tests/serving/test_immutable_engine.py +0 -330
  874. freesolo_flash_dev-1.2.116/tests/serving/test_immutable_revisions.py +0 -1497
  875. freesolo_flash_dev-1.2.116/tests/serving/test_immutable_schemas.py +0 -147
  876. freesolo_flash_dev-1.2.116/tests/serving/test_modal_deploy_identity.py +0 -112
  877. freesolo_flash_dev-1.2.116/tests/serving/test_modal_image_paths.py +0 -217
  878. freesolo_flash_dev-1.2.116/tests/serving/test_model_config.py +0 -168
  879. freesolo_flash_dev-1.2.116/tests/serving/test_multimodal.py +0 -1155
  880. freesolo_flash_dev-1.2.116/tests/serving/test_per_model_gpu.py +0 -835
  881. freesolo_flash_dev-1.2.116/tests/serving/test_persistence.py +0 -268
  882. freesolo_flash_dev-1.2.116/tests/serving/test_pre_first_disconnect.py +0 -472
  883. freesolo_flash_dev-1.2.116/tests/serving/test_prequant_config.py +0 -42
  884. freesolo_flash_dev-1.2.116/tests/serving/test_registry.py +0 -308
  885. freesolo_flash_dev-1.2.116/tests/serving/test_registry_coverage.py +0 -65
  886. freesolo_flash_dev-1.2.116/tests/serving/test_request_body_limit.py +0 -183
  887. freesolo_flash_dev-1.2.116/tests/serving/test_router.py +0 -1550
  888. freesolo_flash_dev-1.2.116/tests/serving/test_router_coverage.py +0 -253
  889. freesolo_flash_dev-1.2.116/tests/serving/test_router_edge_coverage.py +0 -303
  890. freesolo_flash_dev-1.2.116/tests/serving/test_schemas_coverage.py +0 -188
  891. freesolo_flash_dev-1.2.116/tests/serving/test_serve_reasoning_split.py +0 -276
  892. freesolo_flash_dev-1.2.116/tests/serving/test_serve_structured_outputs.py +0 -793
  893. freesolo_flash_dev-1.2.116/tests/serving/test_serve_thinking.py +0 -172
  894. freesolo_flash_dev-1.2.116/tests/serving/test_settings.py +0 -93
  895. freesolo_flash_dev-1.2.116/tests/serving/test_structured_outputs.py +0 -397
  896. freesolo_flash_dev-1.2.116/tests/serving/test_structured_outputs_coverage.py +0 -22
  897. freesolo_flash_dev-1.2.116/tests/serving/test_supabase_rest_coverage.py +0 -62
  898. freesolo_flash_dev-1.2.116/tests/serving/test_usage_outbox.py +0 -1934
  899. freesolo_flash_dev-1.2.116/tests/serving/test_usage_reporter.py +0 -952
  900. freesolo_flash_dev-1.2.116/tests/serving_conformance/conftest.py +0 -162
  901. freesolo_flash_dev-1.2.116/tests/serving_conformance/test_contract.py +0 -786
  902. freesolo_flash_dev-1.2.116/tests/test_adapter_shard_completeness.py +0 -376
  903. freesolo_flash_dev-1.2.116/tests/test_agent_flash_cli_contract.py +0 -297
  904. freesolo_flash_dev-1.2.116/tests/test_allocator.py +0 -2437
  905. freesolo_flash_dev-1.2.116/tests/test_backend_common.py +0 -4904
  906. freesolo_flash_dev-1.2.116/tests/test_bake_kernel_cache.py +0 -165
  907. freesolo_flash_dev-1.2.116/tests/test_billing_retry.py +0 -722
  908. freesolo_flash_dev-1.2.116/tests/test_cancel_remote.py +0 -2184
  909. freesolo_flash_dev-1.2.116/tests/test_catalog_consistency.py +0 -217
  910. freesolo_flash_dev-1.2.116/tests/test_catalog_only_models.py +0 -88
  911. freesolo_flash_dev-1.2.116/tests/test_charge_pricing.py +0 -771
  912. freesolo_flash_dev-1.2.116/tests/test_chat_foundations.py +0 -371
  913. freesolo_flash_dev-1.2.116/tests/test_checkpoint_lifecycle.py +0 -132
  914. freesolo_flash_dev-1.2.116/tests/test_checkpoints.py +0 -686
  915. freesolo_flash_dev-1.2.116/tests/test_cli_commands.py +0 -5442
  916. freesolo_flash_dev-1.2.116/tests/test_cli_commands_coverage.py +0 -566
  917. freesolo_flash_dev-1.2.116/tests/test_cli_credential_shadowing.py +0 -160
  918. freesolo_flash_dev-1.2.116/tests/test_cli_errors.py +0 -285
  919. freesolo_flash_dev-1.2.116/tests/test_cli_estimate.py +0 -1233
  920. freesolo_flash_dev-1.2.116/tests/test_cli_gpus_flag.py +0 -350
  921. freesolo_flash_dev-1.2.116/tests/test_cli_help.py +0 -206
  922. freesolo_flash_dev-1.2.116/tests/test_cli_main_coverage.py +0 -19
  923. freesolo_flash_dev-1.2.116/tests/test_cli_render_coverage.py +0 -643
  924. freesolo_flash_dev-1.2.116/tests/test_cli_render_theme.py +0 -1774
  925. freesolo_flash_dev-1.2.116/tests/test_cli_serve_deploy.py +0 -1028
  926. freesolo_flash_dev-1.2.116/tests/test_cli_serve_status.py +0 -367
  927. freesolo_flash_dev-1.2.116/tests/test_cli_serve_undeploy.py +0 -476
  928. freesolo_flash_dev-1.2.116/tests/test_cli_traces.py +0 -709
  929. freesolo_flash_dev-1.2.116/tests/test_cli_wandb_warning.py +0 -122
  930. freesolo_flash_dev-1.2.116/tests/test_client.py +0 -1411
  931. freesolo_flash_dev-1.2.116/tests/test_client_import_purity.py +0 -197
  932. freesolo_flash_dev-1.2.116/tests/test_client_server_integration.py +0 -348
  933. freesolo_flash_dev-1.2.116/tests/test_config_env_vars.py +0 -407
  934. freesolo_flash_dev-1.2.116/tests/test_console_upload.py +0 -145
  935. freesolo_flash_dev-1.2.116/tests/test_controlled_experiment_repairs.py +0 -503
  936. freesolo_flash_dev-1.2.116/tests/test_cost_analytical.py +0 -467
  937. freesolo_flash_dev-1.2.116/tests/test_cost_equation.py +0 -26
  938. freesolo_flash_dev-1.2.116/tests/test_cost_estimate.py +0 -1021
  939. freesolo_flash_dev-1.2.116/tests/test_cost_hardware.py +0 -685
  940. freesolo_flash_dev-1.2.116/tests/test_cost_models.py +0 -219
  941. freesolo_flash_dev-1.2.116/tests/test_deploy_alias_move_warning.py +0 -554
  942. freesolo_flash_dev-1.2.116/tests/test_deploy_latency.py +0 -424
  943. freesolo_flash_dev-1.2.116/tests/test_dev_channel.py +0 -702
  944. freesolo_flash_dev-1.2.116/tests/test_disk_gb.py +0 -210
  945. freesolo_flash_dev-1.2.116/tests/test_endpoint_name.py +0 -45
  946. freesolo_flash_dev-1.2.116/tests/test_env_cache_evict.py +0 -515
  947. freesolo_flash_dev-1.2.116/tests/test_env_delete.py +0 -148
  948. freesolo_flash_dev-1.2.116/tests/test_env_download.py +0 -109
  949. freesolo_flash_dev-1.2.116/tests/test_env_download_api.py +0 -95
  950. freesolo_flash_dev-1.2.116/tests/test_env_evaluations.py +0 -4227
  951. freesolo_flash_dev-1.2.116/tests/test_env_list_api.py +0 -117
  952. freesolo_flash_dev-1.2.116/tests/test_env_list_cli.py +0 -102
  953. freesolo_flash_dev-1.2.116/tests/test_env_list_hub.py +0 -213
  954. freesolo_flash_dev-1.2.116/tests/test_env_no_install.py +0 -85
  955. freesolo_flash_dev-1.2.116/tests/test_env_publish.py +0 -1962
  956. freesolo_flash_dev-1.2.116/tests/test_env_pull.py +0 -1255
  957. freesolo_flash_dev-1.2.116/tests/test_env_pull_coverage.py +0 -167
  958. freesolo_flash_dev-1.2.116/tests/test_env_pull_loader_coverage.py +0 -332
  959. freesolo_flash_dev-1.2.116/tests/test_env_pull_managed_control_plane.py +0 -174
  960. freesolo_flash_dev-1.2.116/tests/test_env_push.py +0 -1733
  961. freesolo_flash_dev-1.2.116/tests/test_env_rate_limit_resolve.py +0 -332
  962. freesolo_flash_dev-1.2.116/tests/test_env_ref_pinning.py +0 -73
  963. freesolo_flash_dev-1.2.116/tests/test_env_test.py +0 -3436
  964. freesolo_flash_dev-1.2.116/tests/test_envs_coverage.py +0 -117
  965. freesolo_flash_dev-1.2.116/tests/test_export.py +0 -1579
  966. freesolo_flash_dev-1.2.116/tests/test_flash_mvp.py +0 -131
  967. freesolo_flash_dev-1.2.116/tests/test_flash_worker.py +0 -1527
  968. freesolo_flash_dev-1.2.116/tests/test_fused_expert_warmstart.py +0 -1893
  969. freesolo_flash_dev-1.2.116/tests/test_github_urlopen_retry.py +0 -365
  970. freesolo_flash_dev-1.2.116/tests/test_gpu_type_single_field.py +0 -195
  971. freesolo_flash_dev-1.2.116/tests/test_gpus.py +0 -537
  972. freesolo_flash_dev-1.2.116/tests/test_grpo_params.py +0 -734
  973. freesolo_flash_dev-1.2.116/tests/test_grpo_resident_sizing.py +0 -193
  974. freesolo_flash_dev-1.2.116/tests/test_grpo_reward_batching.py +0 -324
  975. freesolo_flash_dev-1.2.116/tests/test_grpo_rollout_contract.py +0 -486
  976. freesolo_flash_dev-1.2.116/tests/test_grpo_rollout_identity.py +0 -824
  977. freesolo_flash_dev-1.2.116/tests/test_idle_endpoint_reaper.py +0 -509
  978. freesolo_flash_dev-1.2.116/tests/test_image_environment_capability.py +0 -92
  979. freesolo_flash_dev-1.2.116/tests/test_instance_bootstrap_coverage.py +0 -2635
  980. freesolo_flash_dev-1.2.116/tests/test_jobs.py +0 -7246
  981. freesolo_flash_dev-1.2.116/tests/test_kernel_fingerprint.py +0 -366
  982. freesolo_flash_dev-1.2.116/tests/test_lambda_api_coverage.py +0 -510
  983. freesolo_flash_dev-1.2.116/tests/test_lambda_runner.py +0 -4164
  984. freesolo_flash_dev-1.2.116/tests/test_login_perms.py +0 -346
  985. freesolo_flash_dev-1.2.116/tests/test_lora_rank_preflight.py +0 -705
  986. freesolo_flash_dev-1.2.116/tests/test_lora_targeting.py +0 -780
  987. freesolo_flash_dev-1.2.116/tests/test_lora_targeting_pinned_verl.py +0 -240
  988. freesolo_flash_dev-1.2.116/tests/test_managed_hf_repo.py +0 -102
  989. freesolo_flash_dev-1.2.116/tests/test_multi_gpu_gate.py +0 -1631
  990. freesolo_flash_dev-1.2.116/tests/test_multimodal_training.py +0 -1203
  991. freesolo_flash_dev-1.2.116/tests/test_named_reward_metrics.py +0 -93
  992. freesolo_flash_dev-1.2.116/tests/test_oom_escalate_gpu.py +0 -965
  993. freesolo_flash_dev-1.2.116/tests/test_opd.py +0 -1892
  994. freesolo_flash_dev-1.2.116/tests/test_opd_multiturn_eos_boundary.py +0 -75
  995. freesolo_flash_dev-1.2.116/tests/test_opd_multiturn_failure_exit.py +0 -449
  996. freesolo_flash_dev-1.2.116/tests/test_opd_resume_safety.py +0 -1530
  997. freesolo_flash_dev-1.2.116/tests/test_opd_train.py +0 -9689
  998. freesolo_flash_dev-1.2.116/tests/test_orchestrator_flash.py +0 -484
  999. freesolo_flash_dev-1.2.116/tests/test_packing_coverage.py +0 -179
  1000. freesolo_flash_dev-1.2.116/tests/test_parasail_teacher.py +0 -1440
  1001. freesolo_flash_dev-1.2.116/tests/test_persisted_spec_envelope.py +0 -93
  1002. freesolo_flash_dev-1.2.116/tests/test_poll_helpers.py +0 -262
  1003. freesolo_flash_dev-1.2.116/tests/test_preflight.py +0 -290
  1004. freesolo_flash_dev-1.2.116/tests/test_projects.py +0 -649
  1005. freesolo_flash_dev-1.2.116/tests/test_prompt_budget.py +0 -397
  1006. freesolo_flash_dev-1.2.116/tests/test_provider_preflight_coverage.py +0 -59
  1007. freesolo_flash_dev-1.2.116/tests/test_provider_routing.py +0 -2851
  1008. freesolo_flash_dev-1.2.116/tests/test_provider_teardown_robustness.py +0 -152
  1009. freesolo_flash_dev-1.2.116/tests/test_providers_symmetry.py +0 -447
  1010. freesolo_flash_dev-1.2.116/tests/test_realized_cost.py +0 -443
  1011. freesolo_flash_dev-1.2.116/tests/test_repo_cleanup.py +0 -621
  1012. freesolo_flash_dev-1.2.116/tests/test_resolve_params_b.py +0 -75
  1013. freesolo_flash_dev-1.2.116/tests/test_resume_on_retry.py +0 -1393
  1014. freesolo_flash_dev-1.2.116/tests/test_rl_train.py +0 -9560
  1015. freesolo_flash_dev-1.2.116/tests/test_rollout_samples.py +0 -364
  1016. freesolo_flash_dev-1.2.116/tests/test_runmgmt.py +0 -3239
  1017. freesolo_flash_dev-1.2.116/tests/test_runpod_api_delete.py +0 -155
  1018. freesolo_flash_dev-1.2.116/tests/test_runpod_key_fingerprint.py +0 -400
  1019. freesolo_flash_dev-1.2.116/tests/test_runpod_key_waterfall.py +0 -391
  1020. freesolo_flash_dev-1.2.116/tests/test_runtime_capsule.py +0 -434
  1021. freesolo_flash_dev-1.2.116/tests/test_serve.py +0 -1548
  1022. freesolo_flash_dev-1.2.116/tests/test_serve_app_packaging.py +0 -227
  1023. freesolo_flash_dev-1.2.116/tests/test_serve_chat_transport.py +0 -769
  1024. freesolo_flash_dev-1.2.116/tests/test_serve_modal_sdk.py +0 -1047
  1025. freesolo_flash_dev-1.2.116/tests/test_serve_modal_sdk_deadlines.py +0 -126
  1026. freesolo_flash_dev-1.2.116/tests/test_serve_modal_teardown_identity.py +0 -105
  1027. freesolo_flash_dev-1.2.116/tests/test_serve_profiles.py +0 -359
  1028. freesolo_flash_dev-1.2.116/tests/test_serve_provisioning_common.py +0 -404
  1029. freesolo_flash_dev-1.2.116/tests/test_serve_provisioning_modal.py +0 -2929
  1030. freesolo_flash_dev-1.2.116/tests/test_serve_provisioning_runpod.py +0 -4630
  1031. freesolo_flash_dev-1.2.116/tests/test_serve_reasoning_content.py +0 -629
  1032. freesolo_flash_dev-1.2.116/tests/test_serve_resolve_provenance.py +0 -493
  1033. freesolo_flash_dev-1.2.116/tests/test_serve_runtime_package.py +0 -101
  1034. freesolo_flash_dev-1.2.116/tests/test_server_api.py +0 -10082
  1035. freesolo_flash_dev-1.2.116/tests/test_server_app_coverage.py +0 -267
  1036. freesolo_flash_dev-1.2.116/tests/test_server_billing.py +0 -884
  1037. freesolo_flash_dev-1.2.116/tests/test_server_checkpoints_coverage.py +0 -77
  1038. freesolo_flash_dev-1.2.116/tests/test_server_db.py +0 -487
  1039. freesolo_flash_dev-1.2.116/tests/test_server_envs_coverage.py +0 -2378
  1040. freesolo_flash_dev-1.2.116/tests/test_server_managed_chat_requests.py +0 -794
  1041. freesolo_flash_dev-1.2.116/tests/test_server_managed_chat_revisions.py +0 -696
  1042. freesolo_flash_dev-1.2.116/tests/test_server_serving_resources.py +0 -217
  1043. freesolo_flash_dev-1.2.116/tests/test_server_standalone.py +0 -1101
  1044. freesolo_flash_dev-1.2.116/tests/test_serving_conformance_gate.py +0 -91
  1045. freesolo_flash_dev-1.2.116/tests/test_serving_contract.py +0 -1019
  1046. freesolo_flash_dev-1.2.116/tests/test_serving_schema_coverage.py +0 -201
  1047. freesolo_flash_dev-1.2.116/tests/test_sft_chunked_nll.py +0 -37
  1048. freesolo_flash_dev-1.2.116/tests/test_sft_max_context.py +0 -95
  1049. freesolo_flash_dev-1.2.116/tests/test_sft_train.py +0 -5302
  1050. freesolo_flash_dev-1.2.116/tests/test_sft_workload.py +0 -1503
  1051. freesolo_flash_dev-1.2.116/tests/test_source_attestation_flow.py +0 -189
  1052. freesolo_flash_dev-1.2.116/tests/test_source_snapshot.py +0 -201
  1053. freesolo_flash_dev-1.2.116/tests/test_spec_and_validation.py +0 -2439
  1054. freesolo_flash_dev-1.2.116/tests/test_spec_contract_bytes.py +0 -346
  1055. freesolo_flash_dev-1.2.116/tests/test_staged_environment.py +0 -916
  1056. freesolo_flash_dev-1.2.116/tests/test_step_metrics.py +0 -385
  1057. freesolo_flash_dev-1.2.116/tests/test_step_timing.py +0 -404
  1058. freesolo_flash_dev-1.2.116/tests/test_teacher_broker.py +0 -2354
  1059. freesolo_flash_dev-1.2.116/tests/test_terminal_artifacts.py +0 -195
  1060. freesolo_flash_dev-1.2.116/tests/test_training_controls.py +0 -600
  1061. freesolo_flash_dev-1.2.116/tests/test_vast_api.py +0 -773
  1062. freesolo_flash_dev-1.2.116/tests/test_vast_api_coverage.py +0 -307
  1063. freesolo_flash_dev-1.2.116/tests/test_vast_offers.py +0 -416
  1064. freesolo_flash_dev-1.2.116/tests/test_vast_provider_coverage.py +0 -131
  1065. freesolo_flash_dev-1.2.116/tests/test_vast_runner.py +0 -2882
  1066. freesolo_flash_dev-1.2.116/tests/test_verified_revisions.py +0 -233
  1067. freesolo_flash_dev-1.2.116/tests/test_verifiers.py +0 -2928
  1068. freesolo_flash_dev-1.2.116/tests/test_verl_checkpoint_export.py +0 -598
  1069. freesolo_flash_dev-1.2.116/tests/test_verl_child_plugins.py +0 -796
  1070. freesolo_flash_dev-1.2.116/tests/test_verl_silence_watchdog.py +0 -223
  1071. freesolo_flash_dev-1.2.116/tests/test_vram_architecture.py +0 -231
  1072. freesolo_flash_dev-1.2.116/tests/test_wandb_link.py +0 -393
  1073. freesolo_flash_dev-1.2.116/tests/test_wandb_naming.py +0 -167
  1074. freesolo_flash_dev-1.2.116/tests/test_warmstart_adapter_download.py +0 -321
  1075. freesolo_flash_dev-1.2.116/tests/test_warmstart_cross_repo.py +0 -1612
  1076. freesolo_flash_dev-1.2.116/tests/test_warmstart_error_attribution.py +0 -60
  1077. freesolo_flash_dev-1.2.116/tests/test_warmstart_image_adapters.py +0 -222
  1078. freesolo_flash_dev-1.2.116/tests/test_weight_cache.py +0 -4907
  1079. freesolo_flash_dev-1.2.116/tests/test_worker_dryrun.py +0 -171
  1080. freesolo_flash_dev-1.2.116/tests/test_worker_hardexit.py +0 -298
  1081. freesolo_flash_dev-1.2.116/tests/test_worker_image.py +0 -42
  1082. freesolo_flash_dev-1.2.116/tests/test_worker_init_heartbeat.py +0 -1705
  1083. freesolo_flash_dev-1.2.116/tests/test_worker_stack.py +0 -2222
  1084. freesolo_flash_dev-1.2.116/tests/test_worker_thinking.py +0 -248
  1085. freesolo_flash_dev-1.2.116/tests/test_zero2_sharding_gate.py +0 -266
  1086. freesolo_flash_dev-1.2.116/uv.lock +0 -5817
  1087. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.dockerignore +0 -0
  1088. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/CODEOWNERS +0 -0
  1089. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  1090. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  1091. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  1092. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  1093. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/dependabot.yml +0 -0
  1094. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/dev-kernel-cache.yml +0 -0
  1095. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/main-source-guard.yml +0 -0
  1096. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/notify-tests-repo.yml +0 -0
  1097. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/production-kernel-cache-ready.yml +0 -0
  1098. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/publish-dev.yml +0 -0
  1099. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/publish.yml +0 -0
  1100. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.github/workflows/version-parity.yml +0 -0
  1101. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/.gitignore +0 -0
  1102. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/CODE_OF_CONDUCT.md +0 -0
  1103. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/Dockerfile +0 -0
  1104. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/Dockerfile.serve +0 -0
  1105. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/LICENSE +0 -0
  1106. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/NOTICE +0 -0
  1107. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/README.md +0 -0
  1108. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/SECURITY.md +0 -0
  1109. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/SELF_HOSTING.md +0 -0
  1110. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/build/kernel_cache/.gitignore +0 -0
  1111. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/build/kernel_cache/.keep +0 -0
  1112. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/deploy/infisical/README.md +0 -0
  1113. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/deploy/infisical/entrypoint.sh +0 -0
  1114. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/docker/Dockerfile.kernelcache +0 -0
  1115. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/docker/Dockerfile.kernelcache.relayer +0 -0
  1116. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/docker/bake_kernel_cache.py +0 -0
  1117. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/docker/bake_pod_entry.py +0 -0
  1118. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/docker/extract_cudart_fix.py +0 -0
  1119. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/docs/serving-contract.md +0 -0
  1120. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/_internal/__init__.py +0 -0
  1121. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/_internal/fileio.py +0 -0
  1122. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/_internal/logging.py +0 -0
  1123. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/_internal/openai_sse.py +0 -0
  1124. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/_internal/paths.py +0 -0
  1125. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/adapters/__init__.py +0 -0
  1126. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/adapters/artifacts.py +0 -0
  1127. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/adapters/fused_experts.py +0 -0
  1128. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/adapters/targets.py +0 -0
  1129. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cli/commands/env/__init__.py +0 -0
  1130. {freesolo_flash_dev-1.2.116/flash/cli/ui → freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops}/__init__.py +0 -0
  1131. {freesolo_flash_dev-1.2.116/flash/cli/commands/env → freesolo_flash_dev-1.2.117/flash/cli/commands/env/ops}/setup_wandb.py +0 -0
  1132. {freesolo_flash_dev-1.2.116/flash/content → freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing}/__init__.py +0 -0
  1133. {freesolo_flash_dev-1.2.116/flash/cli/commands/env → freesolo_flash_dev-1.2.117/flash/cli/commands/env/testing}/eval_args.py +0 -0
  1134. {freesolo_flash_dev-1.2.116/flash/core → freesolo_flash_dev-1.2.117/flash/cli/commands/ops}/__init__.py +0 -0
  1135. {freesolo_flash_dev-1.2.116/flash/cli/commands → freesolo_flash_dev-1.2.117/flash/cli/commands/ops}/prompt_budget.py +0 -0
  1136. {freesolo_flash_dev-1.2.116/flash/engine/plan → freesolo_flash_dev-1.2.117/flash/cli/commands/serving}/__init__.py +0 -0
  1137. {freesolo_flash_dev-1.2.116/flash/engine/profiling → freesolo_flash_dev-1.2.117/flash/cli/parsing}/__init__.py +0 -0
  1138. {freesolo_flash_dev-1.2.116/flash/cli → freesolo_flash_dev-1.2.117/flash/cli/parsing}/errors.py +0 -0
  1139. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cli/scaffold/__init__.py +0 -0
  1140. {freesolo_flash_dev-1.2.116/flash/engine/result → freesolo_flash_dev-1.2.117/flash/cli/ui}/__init__.py +0 -0
  1141. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cli/ui/env_panels.py +0 -0
  1142. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cli/ui/tty.py +0 -0
  1143. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/client/config.py +0 -0
  1144. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/client/runtime_secrets.py +0 -0
  1145. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/client/shapes.py +0 -0
  1146. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/client/specs.py +0 -0
  1147. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/client/streaming.py +0 -0
  1148. {freesolo_flash_dev-1.2.116/flash/engine/worker/entry → freesolo_flash_dev-1.2.117/flash/content}/__init__.py +0 -0
  1149. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/content/image_descriptors.py +0 -0
  1150. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/content/reasoning_normalization.py +0 -0
  1151. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/content/structured_outputs.py +0 -0
  1152. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/content/thinking.py +0 -0
  1153. {freesolo_flash_dev-1.2.116/flash/engine/worker/io → freesolo_flash_dev-1.2.117/flash/core}/__init__.py +0 -0
  1154. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/core/catalog.py +0 -0
  1155. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/core/grpo.py +0 -0
  1156. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cost/__init__.py +0 -0
  1157. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cost/currency.py +0 -0
  1158. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/cost/spec.py +0 -0
  1159. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/__init__.py +0 -0
  1160. {freesolo_flash_dev-1.2.116/flash/engine/worker/model → freesolo_flash_dev-1.2.117/flash/engine/plan}/__init__.py +0 -0
  1161. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/plan/kv_sizing.py +0 -0
  1162. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/plan/prompt_budget.py +0 -0
  1163. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/plan/recipe.py +0 -0
  1164. {freesolo_flash_dev-1.2.116/flash/engine/worker/runtime → freesolo_flash_dev-1.2.117/flash/engine/profiling}/__init__.py +0 -0
  1165. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/profiling/reasoning_render.py +0 -0
  1166. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/profiling/sft_image_rows.py +0 -0
  1167. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/profiling/workload_profile.py +0 -0
  1168. {freesolo_flash_dev-1.2.116/flash/engine/worker/teacher → freesolo_flash_dev-1.2.117/flash/engine/result}/__init__.py +0 -0
  1169. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/result/accounting.py +0 -0
  1170. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/result/rollout_samples.py +0 -0
  1171. {freesolo_flash_dev-1.2.116/flash/engine/worker/train → freesolo_flash_dev-1.2.117/flash/engine/support}/__init__.py +0 -0
  1172. {freesolo_flash_dev-1.2.116/flash/engine → freesolo_flash_dev-1.2.117/flash/engine/support}/huggingface.py +0 -0
  1173. {freesolo_flash_dev-1.2.116/flash/engine → freesolo_flash_dev-1.2.117/flash/engine/support}/verl_policy.py +0 -0
  1174. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/core → freesolo_flash_dev-1.2.117/flash/engine/worker/entry}/__init__.py +0 -0
  1175. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.117/flash/engine/worker/io}/__init__.py +0 -0
  1176. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/child → freesolo_flash_dev-1.2.117/flash/engine/worker/model}/__init__.py +0 -0
  1177. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/model/chatml_mask.py +0 -0
  1178. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/model/lora.py +0 -0
  1179. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/model/packing.py +0 -0
  1180. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/perf/__init__.py +0 -0
  1181. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/perf/diagnostics.py +0 -0
  1182. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/perf/liger.py +0 -0
  1183. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/perf/memory.py +0 -0
  1184. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.117/flash/engine/worker/runtime}/__init__.py +0 -0
  1185. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/runtime/kernel_warmup.py +0 -0
  1186. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/runtime/rng.py +0 -0
  1187. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl/child → freesolo_flash_dev-1.2.117/flash/engine/worker/teacher}/__init__.py +0 -0
  1188. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/teacher/encoding.py +0 -0
  1189. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/teacher/tokenizer_align.py +0 -0
  1190. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/sft → freesolo_flash_dev-1.2.117/flash/engine/worker/train}/__init__.py +0 -0
  1191. {freesolo_flash_dev-1.2.116/flash/envs/package → freesolo_flash_dev-1.2.117/flash/engine/worker/train/core}/__init__.py +0 -0
  1192. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/core/child/__init__.py +0 -0
  1193. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/core/child/glue.py +0 -0
  1194. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/core/child/runtime.py +0 -0
  1195. {freesolo_flash_dev-1.2.116/flash/providers/_lifecycle → freesolo_flash_dev-1.2.117/flash/engine/worker/train/core/lifecycle}/__init__.py +0 -0
  1196. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/core → freesolo_flash_dev-1.2.117/flash/engine/worker/train/core/lifecycle}/step_timing.py +0 -0
  1197. {freesolo_flash_dev-1.2.116/flash/providers/artifacts → freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry}/__init__.py +0 -0
  1198. {freesolo_flash_dev-1.2.116/flash/engine/worker → freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry}/backend_common.py +0 -0
  1199. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/core → freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry}/prompt_rows.py +0 -0
  1200. {freesolo_flash_dev-1.2.116/flash/engine/worker → freesolo_flash_dev-1.2.117/flash/engine/worker/train/entry}/score_batcher.py +0 -0
  1201. {freesolo_flash_dev-1.2.116/flash/runner/results → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd}/__init__.py +0 -0
  1202. {freesolo_flash_dev-1.2.116/flash/runner/supervise → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/bridging}/__init__.py +0 -0
  1203. {freesolo_flash_dev-1.2.116/flash/server/billing → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/child}/__init__.py +0 -0
  1204. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/bridge.py +0 -0
  1205. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/entry.py +0 -0
  1206. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/multiturn.py +0 -0
  1207. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/plugin.py +0 -0
  1208. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/replay_guard.py +0 -0
  1209. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/runtime.py +0 -0
  1210. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/opd/child/structured.py +0 -0
  1211. {freesolo_flash_dev-1.2.116/flash/server/domain → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/multiturn}/__init__.py +0 -0
  1212. /freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd/multiturn_media.py → /freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/multiturn/media.py +0 -0
  1213. {freesolo_flash_dev-1.2.116/flash/server/platform → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration}/__init__.py +0 -0
  1214. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration}/gkd.py +0 -0
  1215. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/opd → freesolo_flash_dev-1.2.117/flash/engine/worker/train/opd/orchestration}/validation.py +0 -0
  1216. {freesolo_flash_dev-1.2.116/flash/serving → freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl}/__init__.py +0 -0
  1217. {freesolo_flash_dev-1.2.116/flash/teacher → freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/child}/__init__.py +0 -0
  1218. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/rl/child/entry.py +0 -0
  1219. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/rl/child/multiturn.py +0 -0
  1220. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/rl/child/patches.py +0 -0
  1221. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/rl/child/plugin.py +0 -0
  1222. {freesolo_flash_dev-1.2.116/tests/live → freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/launch}/__init__.py +0 -0
  1223. {freesolo_flash_dev-1.2.116/tests/serving_conformance → freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/rollout}/__init__.py +0 -0
  1224. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/rollout}/identity.py +0 -0
  1225. {freesolo_flash_dev-1.2.116/flash/engine/worker/train/rl → freesolo_flash_dev-1.2.117/flash/engine/worker/train/rl/rollout}/reward_module.py +0 -0
  1226. /freesolo_flash_dev-1.2.116/flash/py.typed → /freesolo_flash_dev-1.2.117/flash/engine/worker/train/sft/__init__.py +0 -0
  1227. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/sft/child/entry.py +0 -0
  1228. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/train/sft/child/plugin.py +0 -0
  1229. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/verl/__init__.py +0 -0
  1230. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/verl/child_io.py +0 -0
  1231. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/verl/parent_work.py +0 -0
  1232. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/engine/worker/verl/process_census.py +0 -0
  1233. {freesolo_flash_dev-1.2.116/flash/envs → freesolo_flash_dev-1.2.117/flash/envs/meta}/dataset_selection.py +0 -0
  1234. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/envs/package/direct_tokens.py +0 -0
  1235. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/envs/package/limits.py +0 -0
  1236. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/envs/package/unpack.py +0 -0
  1237. /freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap_console.py → /freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/bootstrapping/console.py +0 -0
  1238. /freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap_pip.py → /freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/bootstrapping/pip.py +0 -0
  1239. /freesolo_flash_dev-1.2.116/flash/providers/_lifecycle/bootstrap_secrets.py → /freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/bootstrapping/secrets.py +0 -0
  1240. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/providers/_lifecycle/host/__init__.py +0 -0
  1241. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/providers/_lifecycle/host/deadline_sleep.py +0 -0
  1242. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/providers/_lifecycle/host/failmark.py +0 -0
  1243. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/providers/_lifecycle/host/hostlog.py +0 -0
  1244. {freesolo_flash_dev-1.2.116/flash/providers/_lifecycle → freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/net}/auth.py +0 -0
  1245. {freesolo_flash_dev-1.2.116/flash/providers/_lifecycle → freesolo_flash_dev-1.2.117/flash/providers/_lifecycle/net}/deadline.py +0 -0
  1246. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/providers/lambda_/jobs/reap.py +0 -0
  1247. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/runner/supervise/retry_decision.py +0 -0
  1248. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/runtime_capsule/__init__.py +0 -0
  1249. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/runtime_capsule/build.py +0 -0
  1250. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/runtime_capsule/manifest.py +0 -0
  1251. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/__init__.py +0 -0
  1252. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/app/__init__.py +0 -0
  1253. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/app/__main__.py +0 -0
  1254. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/app/bootstrap.py +0 -0
  1255. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/app/launch.py +0 -0
  1256. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/app/progress.py +0 -0
  1257. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.117/flash/serve/contract}/profiles.py +0 -0
  1258. /freesolo_flash_dev-1.2.116/flash/serve/contract.py → /freesolo_flash_dev-1.2.117/flash/serve/contract/protocol.py +0 -0
  1259. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.117/flash/serve/contract}/provenance.py +0 -0
  1260. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/control/__init__.py +0 -0
  1261. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/control/_canonical.py +0 -0
  1262. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/control/_serialization.py +0 -0
  1263. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/control/_urls.py +0 -0
  1264. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/control/credentials.py +0 -0
  1265. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/control/planning.py +0 -0
  1266. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.117/flash/serve/deployment}/preflight.py +0 -0
  1267. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.117/flash/serve/deployment}/readiness.py +0 -0
  1268. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_common.py → /freesolo_flash_dev-1.2.117/flash/serve/provisioning/common/records.py +0 -0
  1269. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_modal_wrapper.py → /freesolo_flash_dev-1.2.117/flash/serve/provisioning/modal/planning/wrapper.py +0 -0
  1270. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_mutations.py → /freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/mutations.py +0 -0
  1271. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_protocol.py → /freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/protocol.py +0 -0
  1272. /freesolo_flash_dev-1.2.116/flash/serve/provisioning/_runpod_transport.py → /freesolo_flash_dev-1.2.117/flash/serve/provisioning/runpod/transport.py +0 -0
  1273. {freesolo_flash_dev-1.2.116/flash/serve → freesolo_flash_dev-1.2.117/flash/serve/request}/runtime_support.py +0 -0
  1274. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/runtime/__init__.py +0 -0
  1275. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/runtime/errors.py +0 -0
  1276. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/runtime/prompt.py +0 -0
  1277. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serve/runtime/types.py +0 -0
  1278. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/server/__init__.py +0 -0
  1279. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/server/billing/charges.py +0 -0
  1280. {freesolo_flash_dev-1.2.116/flash/server/domain → freesolo_flash_dev-1.2.117/flash/server/domain/ops}/serving_resources.py +0 -0
  1281. {freesolo_flash_dev-1.2.116/flash/server/domain → freesolo_flash_dev-1.2.117/flash/server/domain/registry}/projects.py +0 -0
  1282. /freesolo_flash_dev-1.2.116/flash/server/domain/teacher_errors.py → /freesolo_flash_dev-1.2.117/flash/server/domain/teacher/errors.py +0 -0
  1283. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/server/platform/auth.py +0 -0
  1284. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/server/platform/db.py +0 -0
  1285. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/server/routes/__init__.py +0 -0
  1286. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/server/routes/meta.py +0 -0
  1287. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/serving/src/__init__.py +0 -0
  1288. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.117/flash/serving/src/engine}/prequant_config.py +0 -0
  1289. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.117/flash/serving/src/http}/body_limit.py +0 -0
  1290. /freesolo_flash_dev-1.2.116/flash/serving/src/http_headers.py → /freesolo_flash_dev-1.2.117/flash/serving/src/http/headers.py +0 -0
  1291. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.117/flash/serving/src/store}/persisted_columns.py +0 -0
  1292. {freesolo_flash_dev-1.2.116/flash/serving/src → freesolo_flash_dev-1.2.117/flash/serving/src/store}/settings.py +0 -0
  1293. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/teacher/limits.py +0 -0
  1294. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/teacher/provider_status.py +0 -0
  1295. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/flash/teacher/retry_contract.py +0 -0
  1296. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/scripts/build_dev_dist.py +0 -0
  1297. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/scripts/check_file_size.py +0 -0
  1298. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/scripts/check_function_size.py +0 -0
  1299. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/scripts/check_rollout_identity_actor.py +0 -0
  1300. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/scripts/scrub_history.sh +0 -0
  1301. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/serve_launch.py +0 -0
  1302. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/__init__.py +0 -0
  1303. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/__init__.py +0 -0
  1304. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/chat_provenance.py +0 -0
  1305. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/chat_transport.py +0 -0
  1306. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/server_api_plugin.py +0 -0
  1307. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/source_snapshot.py +0 -0
  1308. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/specs.py +0 -0
  1309. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/teacher.py +0 -0
  1310. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/_helpers/vast.py +0 -0
  1311. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/capture_image_sft_processor_oracle.py +0 -0
  1312. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/capture_qwen38_27b_metadata.py +0 -0
  1313. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/fixtures/image_sft_processor_oracle.json +0 -0
  1314. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/fixtures/qwen35_9b_target_metadata.json +0 -0
  1315. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/fixtures/qwen38_27b_target_metadata.json +0 -0
  1316. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/live/conftest.py +0 -0
  1317. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/live/test_sft_thinking_render_live.py +0 -0
  1318. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/serving/test_openai_stream_options.py +0 -0
  1319. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_accounting_coverage.py +0 -0
  1320. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_algorithms.py +0 -0
  1321. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_backend_jobspec_contract.py +0 -0
  1322. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_base_model_provenance.py +0 -0
  1323. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_build_context_contract.py +0 -0
  1324. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_capture_qwen38_metadata.py +0 -0
  1325. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_cli_managed.py +0 -0
  1326. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_client_stream_reads.py +0 -0
  1327. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_config_overrides.py +0 -0
  1328. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_cost_currency.py +0 -0
  1329. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_dataset_profile.py +0 -0
  1330. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_flashinfer_cache_dirs.py +0 -0
  1331. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_freesolo_api_transport.py +0 -0
  1332. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_grpo_process_census.py +0 -0
  1333. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_health_liveness.py +0 -0
  1334. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_hf_retry.py +0 -0
  1335. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_image_incremental_processor.py +0 -0
  1336. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_image_sft_markers.py +0 -0
  1337. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_image_sft_processor_parity.py +0 -0
  1338. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_image_tokens.py +0 -0
  1339. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_infisical_secrets.py +0 -0
  1340. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_internal_client.py +0 -0
  1341. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_kernel_cache.py +0 -0
  1342. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_kv_util.py +0 -0
  1343. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_logging.py +0 -0
  1344. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_lora_rank_coverage.py +0 -0
  1345. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_lora_rank_nested_rung.py +0 -0
  1346. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_managed_config_fields.py +0 -0
  1347. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_metrics_schema_agent_contract.py +0 -0
  1348. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_mig_guard.py +0 -0
  1349. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_opd_limits.py +0 -0
  1350. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_opd_replay_guard.py +0 -0
  1351. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_packing.py +0 -0
  1352. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_app_bootstrap_http.py +0 -0
  1353. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_app_launch.py +0 -0
  1354. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_app_manifest.py +0 -0
  1355. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_app_materialize.py +0 -0
  1356. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_control.py +0 -0
  1357. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_runtime_adapters.py +0 -0
  1358. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_runtime_engine.py +0 -0
  1359. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serve_runtime_types.py +0 -0
  1360. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_server_auth_singleflight.py +0 -0
  1361. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_server_locks_coverage.py +0 -0
  1362. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_serving_context_preflight.py +0 -0
  1363. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_sft_example_selection.py +0 -0
  1364. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_sft_gc_off.py +0 -0
  1365. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_sft_step_floor.py +0 -0
  1366. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_step_floor.py +0 -0
  1367. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_structured_outputs.py +0 -0
  1368. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_teacher_encoding_contract.py +0 -0
  1369. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_thinking_config.py +0 -0
  1370. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_train_context_preflight.py +0 -0
  1371. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_type_comment_prose.py +0 -0
  1372. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_version.py +0 -0
  1373. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_vl_warmstart_adapter_keys.py +0 -0
  1374. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/tests/test_workflow_contracts.py +0 -0
  1375. {freesolo_flash_dev-1.2.116 → freesolo_flash_dev-1.2.117}/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 }}