starforge-core 0.3.2__tar.gz → 0.3.3__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 (265) hide show
  1. starforge_core-0.3.3/PKG-INFO +95 -0
  2. starforge_core-0.3.3/README.md +65 -0
  3. {starforge_core-0.3.2 → starforge_core-0.3.3}/pyproject.toml +2 -1
  4. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/__init__.py +1 -1
  5. {starforge_core-0.3.2 → starforge_core-0.3.3}/uv.lock +1 -1
  6. starforge_core-0.3.2/PKG-INFO +0 -28
  7. {starforge_core-0.3.2 → starforge_core-0.3.3}/.gitignore +0 -0
  8. {starforge_core-0.3.2 → starforge_core-0.3.3}/gitlab-ci.example.yml +0 -0
  9. {starforge_core-0.3.2 → starforge_core-0.3.3}/pytest.ini +0 -0
  10. {starforge_core-0.3.2 → starforge_core-0.3.3}/scripts/build_and_check.sh +0 -0
  11. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/artifacts.py +0 -0
  12. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/benchmarks/__init__.py +0 -0
  13. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/benchmarks/runners.py +0 -0
  14. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/bootstrap.py +0 -0
  15. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/capsule.py +0 -0
  16. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/capsule_runner.py +0 -0
  17. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/__init__.py +0 -0
  18. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/api_client.py +0 -0
  19. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/auth.py +0 -0
  20. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/catalog.py +0 -0
  21. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/cli.py +0 -0
  22. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/cli_ui.py +0 -0
  23. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/client_device.py +0 -0
  24. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/__init__.py +0 -0
  25. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/admin.py +0 -0
  26. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/bench.py +0 -0
  27. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/common.py +0 -0
  28. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/corpus.py +0 -0
  29. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/dataset.py +0 -0
  30. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/exp.py +0 -0
  31. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/init.py +0 -0
  32. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/jobs.py +0 -0
  33. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/login.py +0 -0
  34. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/plugin.py +0 -0
  35. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/recipe.py +0 -0
  36. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/serve.py +0 -0
  37. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/submit.py +0 -0
  38. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/commands/sweep.py +0 -0
  39. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/config_resolve.py +0 -0
  40. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/data_prep.py +0 -0
  41. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/new_experiment.py +0 -0
  42. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/packing.py +0 -0
  43. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/plugins_lock.py +0 -0
  44. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/recipe_lock.py +0 -0
  45. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/repo.py +0 -0
  46. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/agent-run.py.tmpl +0 -0
  47. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/custom-framework/train.sh +0 -0
  48. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/experiment-template/.gitkeep +0 -0
  49. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/experiment-template/README.md +0 -0
  50. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/experiment-template/config.yaml +0 -0
  51. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/common/README.md +0 -0
  52. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/common/__init__.py +0 -0
  53. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/README.md +0 -0
  54. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/README.md +0 -0
  55. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/distillation_math.yaml +0 -0
  56. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/grpo_lora.yaml +0 -0
  57. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/grpo_math_1B.yaml +0 -0
  58. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/grpo_megatron.yaml +0 -0
  59. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/grpo_noncolocated.yaml +0 -0
  60. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/grpo_sliding_puzzle.yaml +0 -0
  61. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/ppo_math_1B.yaml +0 -0
  62. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/rm.yaml +0 -0
  63. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/base/sft.yaml +0 -0
  64. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/models/README.md +0 -0
  65. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/models/qwen3.5-4b.yaml +0 -0
  66. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/configs/models/qwen3.5-9b.yaml +0 -0
  67. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/scaffold/project/gitignore +0 -0
  68. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/cli/spec_builder.py +0 -0
  69. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/config_resolve.py +0 -0
  70. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/__init__.py +0 -0
  71. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/binding.py +0 -0
  72. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/env.py +0 -0
  73. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/errors.py +0 -0
  74. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/names.py +0 -0
  75. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/spec.py +0 -0
  76. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/contract/topology.py +0 -0
  77. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/datasets.py +0 -0
  78. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/distributed/__init__.py +0 -0
  79. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/distributed/coordinator.py +0 -0
  80. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/distributed/protocol.py +0 -0
  81. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/distributed/ray_runtime.py +0 -0
  82. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/fatal_logs.py +0 -0
  83. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/__init__.py +0 -0
  84. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/actions.py +0 -0
  85. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/base.py +0 -0
  86. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/custom.py +0 -0
  87. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/evalkit.py +0 -0
  88. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/nemo_rl.py +0 -0
  89. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/observability.py +0 -0
  90. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/openrlhf.py +0 -0
  91. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/registry.py +0 -0
  92. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/runtime.py +0 -0
  93. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/trl.py +0 -0
  94. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/frameworks/verl.py +0 -0
  95. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/launcher.py +0 -0
  96. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/lifecycle/__init__.py +0 -0
  97. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/lifecycle/benchmark_eval.py +0 -0
  98. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/lifecycle/export_complete.py +0 -0
  99. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/lifecycle/nemo_eval.py +0 -0
  100. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/lifecycle/nemo_export.py +0 -0
  101. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/lifecycle/verl_eval.py +0 -0
  102. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/log_forward.py +0 -0
  103. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/log_normalize.py +0 -0
  104. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/metrics.py +0 -0
  105. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/__init__.py +0 -0
  106. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/env_probe.py +0 -0
  107. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/hardware_monitor.py +0 -0
  108. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/hw_probe.py +0 -0
  109. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/job_nodes.py +0 -0
  110. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/sampling.py +0 -0
  111. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/sink.py +0 -0
  112. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/observability/util.py +0 -0
  113. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/package_bootstrap.py +0 -0
  114. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/pkce.py +0 -0
  115. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/plugins.py +0 -0
  116. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/__init__.py +0 -0
  117. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/custom/custom/recipe.yaml +0 -0
  118. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/custom/custom/template/README.md +0 -0
  119. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/custom/custom/template/train.sh +0 -0
  120. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/evalkit/benchmark/recipe.yaml +0 -0
  121. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/evalkit/benchmark/template/README.md +0 -0
  122. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/distillation/recipe.yaml +0 -0
  123. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/distillation/template/README.md +0 -0
  124. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/distillation/template/config.yaml +0 -0
  125. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/dpo/recipe.yaml +0 -0
  126. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/dpo/template/README.md +0 -0
  127. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/dpo/template/config.yaml +0 -0
  128. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/grpo/recipe.yaml +0 -0
  129. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/grpo/template/README.md +0 -0
  130. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/grpo/template/config.yaml +0 -0
  131. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/grpo-lora/recipe.yaml +0 -0
  132. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/grpo-lora/template/README.md +0 -0
  133. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/grpo-lora/template/config.yaml +0 -0
  134. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/maxrl/recipe.yaml +0 -0
  135. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/maxrl/template/README.md +0 -0
  136. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/maxrl/template/config.yaml +0 -0
  137. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/maxrl/template/run.py +0 -0
  138. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/opsd/recipe.yaml +0 -0
  139. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/opsd/template/README.md +0 -0
  140. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/opsd/template/config.yaml +0 -0
  141. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/opsd/template/run.py +0 -0
  142. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/ppo/recipe.yaml +0 -0
  143. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/ppo/template/README.md +0 -0
  144. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/ppo/template/config.yaml +0 -0
  145. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/rm/recipe.yaml +0 -0
  146. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/rm/template/README.md +0 -0
  147. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/rm/template/config.yaml +0 -0
  148. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/sft/recipe.yaml +0 -0
  149. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/sft/template/README.md +0 -0
  150. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/nemo-rl/sft/template/config.yaml +0 -0
  151. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/dpo/recipe.yaml +0 -0
  152. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/dpo/template/README.md +0 -0
  153. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/dpo/template/config.yaml +0 -0
  154. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/dpo/template/eval.py +0 -0
  155. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/grpo/recipe.yaml +0 -0
  156. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/grpo/template/README.md +0 -0
  157. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/grpo/template/config.yaml +0 -0
  158. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/grpo/template/eval.py +0 -0
  159. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/ppo/recipe.yaml +0 -0
  160. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/ppo/template/README.md +0 -0
  161. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/ppo/template/config.yaml +0 -0
  162. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/ppo/template/eval.py +0 -0
  163. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/reinforce-baseline/recipe.yaml +0 -0
  164. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/reinforce-baseline/template/README.md +0 -0
  165. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/reinforce-baseline/template/config.yaml +0 -0
  166. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/reinforce-baseline/template/eval.py +0 -0
  167. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/rm/recipe.yaml +0 -0
  168. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/rm/template/README.md +0 -0
  169. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/rm/template/config.yaml +0 -0
  170. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/rm/template/eval.py +0 -0
  171. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/sft/recipe.yaml +0 -0
  172. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/sft/template/README.md +0 -0
  173. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/sft/template/config.yaml +0 -0
  174. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/openrlhf/sft/template/eval.py +0 -0
  175. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/dpo/recipe.yaml +0 -0
  176. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/dpo/template/README.md +0 -0
  177. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/dpo/template/config.yaml +0 -0
  178. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/dpo/template/eval.py +0 -0
  179. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/dpo/template/train.py +0 -0
  180. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/grpo/recipe.yaml +0 -0
  181. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/grpo/template/README.md +0 -0
  182. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/grpo/template/config.yaml +0 -0
  183. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/grpo/template/eval.py +0 -0
  184. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/grpo/template/train.py +0 -0
  185. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/kto/recipe.yaml +0 -0
  186. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/kto/template/README.md +0 -0
  187. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/kto/template/config.yaml +0 -0
  188. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/kto/template/eval.py +0 -0
  189. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/kto/template/train.py +0 -0
  190. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/opsd/recipe.yaml +0 -0
  191. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/opsd/template/README.md +0 -0
  192. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/opsd/template/config.yaml +0 -0
  193. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/opsd/template/eval.py +0 -0
  194. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/opsd/template/train.py +0 -0
  195. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rloo/recipe.yaml +0 -0
  196. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rloo/template/README.md +0 -0
  197. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rloo/template/config.yaml +0 -0
  198. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rloo/template/eval.py +0 -0
  199. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rloo/template/train.py +0 -0
  200. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rm/recipe.yaml +0 -0
  201. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rm/template/README.md +0 -0
  202. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rm/template/config.yaml +0 -0
  203. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rm/template/eval.py +0 -0
  204. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/rm/template/train.py +0 -0
  205. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/sft/recipe.yaml +0 -0
  206. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/sft/template/README.md +0 -0
  207. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/sft/template/config.yaml +0 -0
  208. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/sft/template/eval.py +0 -0
  209. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/trl/sft/template/train.py +0 -0
  210. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/grpo/recipe.yaml +0 -0
  211. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/grpo/template/README.md +0 -0
  212. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/grpo/template/config.yaml +0 -0
  213. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/grpo/template/eval.py +0 -0
  214. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/sft/recipe.yaml +0 -0
  215. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/sft/template/README.md +0 -0
  216. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/sft/template/config.yaml +0 -0
  217. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/catalog/verl/sft/template/eval.py +0 -0
  218. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/duration.py +0 -0
  219. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/recipes/model.py +0 -0
  220. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/report.py +0 -0
  221. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/reporter.py +0 -0
  222. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/sandbox.py +0 -0
  223. {starforge_core-0.3.2 → starforge_core-0.3.3}/starforge/verl_ipc.py +0 -0
  224. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_architecture_boundaries.py +0 -0
  225. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_artifacts.py +0 -0
  226. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_bootstrap.py +0 -0
  227. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_capsule.py +0 -0
  228. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_config_validate.py +0 -0
  229. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_contract_env_golden.py +0 -0
  230. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_contract_spec.py +0 -0
  231. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_contract_topology.py +0 -0
  232. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_custom_adapter.py +0 -0
  233. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_datasets.py +0 -0
  234. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_distributed_coordinator.py +0 -0
  235. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_env_nodes_probe.py +0 -0
  236. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_env_probe.py +0 -0
  237. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_evalkit.py +0 -0
  238. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_fatal_logs.py +0 -0
  239. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_framework_adapters.py +0 -0
  240. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_framework_observability.py +0 -0
  241. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_framework_runtime.py +0 -0
  242. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_hw_probe.py +0 -0
  243. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_image_fingerprint.py +0 -0
  244. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_job_hw_scope.py +0 -0
  245. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_job_nodes.py +0 -0
  246. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_launcher.py +0 -0
  247. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_lifecycle_commands.py +0 -0
  248. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_log_forward.py +0 -0
  249. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_log_normalize.py +0 -0
  250. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_metrics.py +0 -0
  251. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_nemo_rl_adapter.py +0 -0
  252. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_observability_util.py +0 -0
  253. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_openrlhf_adapter.py +0 -0
  254. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_package_data.py +0 -0
  255. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_process_group_plan.py +0 -0
  256. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_recipes.py +0 -0
  257. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_report.py +0 -0
  258. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_reporter.py +0 -0
  259. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_runner.py +0 -0
  260. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_runtime_artifacts.py +0 -0
  261. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_sandbox.py +0 -0
  262. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_training_duration.py +0 -0
  263. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_trl_adapter.py +0 -0
  264. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_verl_adapter.py +0 -0
  265. {starforge_core-0.3.2 → starforge_core-0.3.3}/tests/test_verl_ipc.py +0 -0
@@ -0,0 +1,95 @@
1
+ Metadata-Version: 2.5
2
+ Name: starforge-core
3
+ Version: 0.3.3
4
+ Summary: StarForge client: JobSpec / recipe contract, job-side runner, and sf CLI.
5
+ Project-URL: Homepage, https://github.com/wccdev/starforge
6
+ Project-URL: Documentation, https://github.com/wccdev/starforge
7
+ Project-URL: Repository, https://github.com/wccdev/starforge
8
+ Keywords: grpo,llm,post-training,rlhf,sft,starforge
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: packaging>=24
20
+ Requires-Dist: pyyaml>=6
21
+ Requires-Dist: typer>=0.12
22
+ Provides-Extra: data
23
+ Requires-Dist: datasets>=2.18; extra == 'data'
24
+ Provides-Extra: dev
25
+ Requires-Dist: fastapi>=0.110; extra == 'dev'
26
+ Requires-Dist: httpx>=0.27; extra == 'dev'
27
+ Requires-Dist: pytest>=8; extra == 'dev'
28
+ Requires-Dist: ruff>=0.5; extra == 'dev'
29
+ Description-Content-Type: text/markdown
30
+
31
+ # starforge-core
32
+
33
+ Client for StarForge. You get the `sf` command and a Python package named `starforge`.
34
+
35
+ Use this to scaffold a lab, lock a post-training method, and submit jobs to a StarForge console. The control plane is a separate install, `starforge-server`. Training images do not need this whole package; the server injects a runner that carries the kernel only.
36
+
37
+ ## Install
38
+
39
+ ```bash
40
+ pip install starforge-core
41
+ # or
42
+ uv tool install starforge-core
43
+
44
+ sf --help
45
+ ```
46
+
47
+ Python 3.10 or newer. Import name is `starforge`, not `starforge_core`.
48
+
49
+ `pip install starforge-core[data]` adds HuggingFace `datasets` for local prepare scripts.
50
+
51
+ ## Start a lab
52
+
53
+ Do not clone the platform repo. This package writes a project for you:
54
+
55
+ ```bash
56
+ sf init my-lab --yes
57
+ cd my-lab
58
+ sf login --server https://<your-console>
59
+ sf new my-grpo --method nemo-rl/grpo
60
+ sf validate my-grpo
61
+ sf submit my-grpo --profile h200:8
62
+ sf job logs
63
+ ```
64
+
65
+ `sf methods` lists the catalog on the server you logged into. Methods look like `nemo-rl/grpo`, `verl/sft`, `trl/kto`, `openrlhf/ppo`, `evalkit/benchmark`, `custom/custom`.
66
+
67
+ Examples live in `starforge-tutorial`. Day-to-day work should be your own `sf init` tree.
68
+
69
+ ## Python
70
+
71
+ Catalog methods already forward framework logs. Custom `train.sh` jobs that want console curves call:
72
+
73
+ ```python
74
+ from starforge.report import init, log, finish
75
+
76
+ init()
77
+ log({"loss": 0.12}, step=1)
78
+ finish()
79
+ ```
80
+
81
+ `starforge.spec_to_env` is the JobSpec to environment mapping used on both the client and the job. `starforge.get_recipe` / `starforge.recipe_names` read the bundled catalog.
82
+
83
+ ## What this package contains
84
+
85
+ - `sf` CLI: init, login, experiments, submit, sweep, jobs, datasets, plugins, bench, serve
86
+ - JobSpec types and `spec_to_env`
87
+ - Recipe catalog and framework adapters (NeMo-RL, verl, TRL, OpenRLHF, evalkit, custom)
88
+ - Job-side reporter (`starforge.report`)
89
+
90
+ Cluster credentials stay on the server. Your laptop keeps an access token under `~/.forge/`.
91
+
92
+ ## Docs and source
93
+
94
+ - Platform repo: https://github.com/wccdev/starforge
95
+ - User docs: `mintlify/` in that repo (English and 简体中文)
@@ -0,0 +1,65 @@
1
+ # starforge-core
2
+
3
+ Client for StarForge. You get the `sf` command and a Python package named `starforge`.
4
+
5
+ Use this to scaffold a lab, lock a post-training method, and submit jobs to a StarForge console. The control plane is a separate install, `starforge-server`. Training images do not need this whole package; the server injects a runner that carries the kernel only.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pip install starforge-core
11
+ # or
12
+ uv tool install starforge-core
13
+
14
+ sf --help
15
+ ```
16
+
17
+ Python 3.10 or newer. Import name is `starforge`, not `starforge_core`.
18
+
19
+ `pip install starforge-core[data]` adds HuggingFace `datasets` for local prepare scripts.
20
+
21
+ ## Start a lab
22
+
23
+ Do not clone the platform repo. This package writes a project for you:
24
+
25
+ ```bash
26
+ sf init my-lab --yes
27
+ cd my-lab
28
+ sf login --server https://<your-console>
29
+ sf new my-grpo --method nemo-rl/grpo
30
+ sf validate my-grpo
31
+ sf submit my-grpo --profile h200:8
32
+ sf job logs
33
+ ```
34
+
35
+ `sf methods` lists the catalog on the server you logged into. Methods look like `nemo-rl/grpo`, `verl/sft`, `trl/kto`, `openrlhf/ppo`, `evalkit/benchmark`, `custom/custom`.
36
+
37
+ Examples live in `starforge-tutorial`. Day-to-day work should be your own `sf init` tree.
38
+
39
+ ## Python
40
+
41
+ Catalog methods already forward framework logs. Custom `train.sh` jobs that want console curves call:
42
+
43
+ ```python
44
+ from starforge.report import init, log, finish
45
+
46
+ init()
47
+ log({"loss": 0.12}, step=1)
48
+ finish()
49
+ ```
50
+
51
+ `starforge.spec_to_env` is the JobSpec to environment mapping used on both the client and the job. `starforge.get_recipe` / `starforge.recipe_names` read the bundled catalog.
52
+
53
+ ## What this package contains
54
+
55
+ - `sf` CLI: init, login, experiments, submit, sweep, jobs, datasets, plugins, bench, serve
56
+ - JobSpec types and `spec_to_env`
57
+ - Recipe catalog and framework adapters (NeMo-RL, verl, TRL, OpenRLHF, evalkit, custom)
58
+ - Job-side reporter (`starforge.report`)
59
+
60
+ Cluster credentials stay on the server. Your laptop keeps an access token under `~/.forge/`.
61
+
62
+ ## Docs and source
63
+
64
+ - Platform repo: https://github.com/wccdev/starforge
65
+ - User docs: `mintlify/` in that repo (English and 简体中文)
@@ -1,8 +1,9 @@
1
1
  # Researcher client: contract kernel + sf CLI. Control plane is starforge-server.
2
2
  [project]
3
3
  name = "starforge-core"
4
- version = "0.3.2"
4
+ version = "0.3.3"
5
5
  description = "StarForge client: JobSpec / recipe contract, job-side runner, and sf CLI."
6
+ readme = "README.md"
6
7
  requires-python = ">=3.10"
7
8
  keywords = ["llm", "post-training", "rlhf", "grpo", "sft", "starforge"]
8
9
  classifiers = [
@@ -5,7 +5,7 @@
5
5
  """
6
6
  from __future__ import annotations
7
7
 
8
- __version__ = "0.3.2"
8
+ __version__ = "0.3.3"
9
9
 
10
10
  from .contract import (
11
11
  API_VERSION,
@@ -168,7 +168,7 @@ wheels = [
168
168
 
169
169
  [[package]]
170
170
  name = "starforge-core"
171
- version = "0.3.2"
171
+ version = "0.3.3"
172
172
  source = { editable = "." }
173
173
  dependencies = [
174
174
  { name = "packaging" },
@@ -1,28 +0,0 @@
1
- Metadata-Version: 2.5
2
- Name: starforge-core
3
- Version: 0.3.2
4
- Summary: StarForge client: JobSpec / recipe contract, job-side runner, and sf CLI.
5
- Project-URL: Homepage, https://github.com/wccdev/starforge
6
- Project-URL: Documentation, https://github.com/wccdev/starforge
7
- Project-URL: Repository, https://github.com/wccdev/starforge
8
- Keywords: grpo,llm,post-training,rlhf,sft,starforge
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Environment :: Console
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Intended Audience :: Science/Research
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
- Requires-Python: >=3.10
19
- Requires-Dist: packaging>=24
20
- Requires-Dist: pyyaml>=6
21
- Requires-Dist: typer>=0.12
22
- Provides-Extra: data
23
- Requires-Dist: datasets>=2.18; extra == 'data'
24
- Provides-Extra: dev
25
- Requires-Dist: fastapi>=0.110; extra == 'dev'
26
- Requires-Dist: httpx>=0.27; extra == 'dev'
27
- Requires-Dist: pytest>=8; extra == 'dev'
28
- Requires-Dist: ruff>=0.5; extra == 'dev'