Skip to content

Commit 2d15d7a

Browse files
committed
Merge remote-tracking branch 'origin/main' into feature/train-hosted-full-finetune
# Conflicts: # packages/prime/src/prime_cli/api/rl.py # packages/prime/src/prime_cli/commands/rl.py
2 parents 2fe14da + d5d49dc commit 2d15d7a

130 files changed

Lines changed: 41106 additions & 2120 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# THIS IS AUTOGENERATED. DO NOT EDIT MANUALLY
2+
version = 1
3+
name = "prime-cli"
4+
5+
[setup]
6+
script = "uv sync"

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Default owners for all repository changes.
2+
* @JannikSt @d42me @kcoopermiller @willccbb @burnpiro @JohannesHa

.github/workflows/ci.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ jobs:
3939
"packages/prime/src/prime_cli/__init__.py"
4040
"packages/prime-sandboxes/src/prime_sandboxes/__init__.py"
4141
"packages/prime-evals/src/prime_evals/__init__.py"
42-
"packages/prime-mcp-server/src/prime_mcp/__init__.py"
4342
)
4443
4544
BUMPED_FILES=""
@@ -78,7 +77,7 @@ jobs:
7877
runs-on: ubuntu-latest
7978
strategy:
8079
matrix:
81-
python-version: ["3.10", "3.11", "3.12"]
80+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
8281
steps:
8382
- uses: actions/checkout@v4
8483

@@ -107,7 +106,7 @@ jobs:
107106
runs-on: ubuntu-latest
108107
strategy:
109108
matrix:
110-
python-version: ["3.11", "3.12"]
109+
python-version: ["3.11", "3.12", "3.13", "3.14"]
111110
steps:
112111
- uses: actions/checkout@v4
113112

.github/workflows/release-evals.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ on:
1616
jobs:
1717
release:
1818
runs-on: ubuntu-latest
19+
environment: pypi-prod
1920
permissions:
2021
contents: write
2122
packages: write
23+
id-token: write
2224
steps:
2325
- uses: actions/checkout@v4
2426
with:
@@ -60,11 +62,6 @@ jobs:
6062
run: |
6163
uv build --out-dir dist
6264
63-
# Install twine for publishing
64-
uv venv
65-
source .venv/bin/activate
66-
uv pip install twine
67-
6865
- name: Create tag
6966
if: steps.check_tag.outputs.exists != 'true'
7067
run: |
@@ -76,10 +73,6 @@ jobs:
7673
7774
- name: Publish to PyPI
7875
if: steps.check_tag.outputs.exists != 'true' || inputs.force_release == 'true'
79-
working-directory: packages/prime-evals
80-
env:
81-
TWINE_USERNAME: __token__
82-
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
83-
run: |
84-
source .venv/bin/activate
85-
twine upload dist/*
76+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
77+
with:
78+
packages-dir: packages/prime-evals/dist

.github/workflows/release-mcp.yml

Lines changed: 0 additions & 85 deletions
This file was deleted.

.github/workflows/release-prime.yml

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ on:
1717
jobs:
1818
tag-and-release:
1919
runs-on: ubuntu-latest
20+
environment: pypi-prod
2021
permissions:
2122
contents: write
2223
packages: write
24+
id-token: write
2325
outputs:
2426
version: ${{ steps.version.outputs.version }}
2527
release_created: ${{ steps.release_status.outputs.created }}
@@ -103,11 +105,6 @@ jobs:
103105
run: |
104106
uv build --out-dir dist
105107
106-
# Install twine for publishing
107-
uv venv
108-
source .venv/bin/activate
109-
uv pip install twine
110-
111108
- name: Upload build artifacts
112109
if: steps.check_tag.outputs.exists != 'true'
113110
uses: actions/upload-artifact@v4
@@ -124,16 +121,12 @@ jobs:
124121
files: packages/prime/dist/*
125122
generate_release_notes: true
126123

127-
# Publish to PyPI
124+
# Publish to PyPI via Trusted Publishing (OIDC)
128125
- name: Publish to PyPI
129126
if: steps.check_tag.outputs.exists != 'true'
130-
working-directory: packages/prime
131-
env:
132-
TWINE_USERNAME: __token__
133-
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
134-
run: |
135-
source .venv/bin/activate
136-
twine upload dist/*
127+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
128+
with:
129+
packages-dir: packages/prime/dist
137130

138131
- name: Notify Slack
139132
if: steps.check_tag.outputs.exists != 'true'

.github/workflows/release-sandboxes.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ on:
1616
jobs:
1717
release:
1818
runs-on: ubuntu-latest
19+
environment: pypi-prod
1920
permissions:
2021
contents: write
2122
packages: write
23+
id-token: write
2224
steps:
2325
- uses: actions/checkout@v4
2426
with:
@@ -60,11 +62,6 @@ jobs:
6062
run: |
6163
uv build --out-dir dist
6264
63-
# Install twine for publishing
64-
uv venv
65-
source .venv/bin/activate
66-
uv pip install twine
67-
6865
- name: Create tag
6966
if: steps.check_tag.outputs.exists != 'true'
7067
run: |
@@ -76,10 +73,6 @@ jobs:
7673
7774
- name: Publish to PyPI
7875
if: steps.check_tag.outputs.exists != 'true' || inputs.force_release == 'true'
79-
working-directory: packages/prime-sandboxes
80-
env:
81-
TWINE_USERNAME: __token__
82-
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
83-
run: |
84-
source .venv/bin/activate
85-
twine upload dist/*
76+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
77+
with:
78+
packages-dir: packages/prime-sandboxes/dist

.github/workflows/release-tunnel.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ on:
1616
jobs:
1717
release:
1818
runs-on: ubuntu-latest
19+
environment: pypi-prod
1920
permissions:
2021
contents: write
2122
packages: write
23+
id-token: write
2224
steps:
2325
- uses: actions/checkout@v4
2426
with:
@@ -60,11 +62,6 @@ jobs:
6062
run: |
6163
uv build --out-dir dist
6264
63-
# Install twine for publishing
64-
uv venv
65-
source .venv/bin/activate
66-
uv pip install twine
67-
6865
- name: Create tag
6966
if: steps.check_tag.outputs.exists != 'true'
7067
run: |
@@ -76,10 +73,6 @@ jobs:
7673
7774
- name: Publish to PyPI
7875
if: steps.check_tag.outputs.exists != 'true' || inputs.force_release == 'true'
79-
working-directory: packages/prime-tunnel
80-
env:
81-
TWINE_USERNAME: __token__
82-
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
83-
run: |
84-
source .venv/bin/activate
85-
twine upload dist/*
76+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
77+
with:
78+
packages-dir: packages/prime-tunnel/dist

README.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Prime Intellect CLI & SDKs
2020
[![Python versions](https://img.shields.io/pypi/pyversions/prime?cacheSeconds=60)](https://pypi.org/project/prime/)
2121
[![Downloads](https://img.shields.io/pypi/dm/prime)](https://pypi.org/project/prime/)
2222

23-
Command line interface and SDKs for managing Prime Intellect GPU resources, sandboxes, and environments.
23+
Command line interface and SDKs for Prime Lab, Hosted Training, GPU resources, sandboxes, and environments.
2424
</div>
2525

2626
## Quick Start
@@ -35,6 +35,16 @@ uv tool install prime
3535
# Authenticate
3636
prime login
3737

38+
# Set up a Lab workspace for environments, evals, GEPA, and Hosted Training
39+
prime lab setup
40+
41+
# See available Hosted Training models, capacity, and pricing
42+
prime train models
43+
44+
# Generate and launch a Hosted Training config
45+
prime train init
46+
prime train rl.toml
47+
3848
# Browse verified environments
3949
prime env list
4050

@@ -44,6 +54,8 @@ prime availability list
4454

4555
## Features
4656

57+
- **Lab Workspaces** - Set up local verifiers workspaces for environments, evals, GEPA, and training
58+
- **Hosted Training** - Train models against verifiers environments and inspect runs, logs, metrics, and checkpoints
4759
- **Environments** - Access hundreds of verified environments on our community hub
4860
- **Evaluations** - Push and manage evaluation results
4961
- **GPU Resource Management** - Query and filter available GPU resources
@@ -124,6 +136,9 @@ prime env list
124136
# View environment details
125137
prime env info <environment-name>
126138

139+
# Inspect environment source without downloading the archive
140+
prime env inspect <environment-name>
141+
127142
# Install an environment locally
128143
prime env install <environment-name>
129144

@@ -132,6 +147,30 @@ prime env init my-environment
132147
prime env push my-environment
133148
```
134149

150+
### Lab and Hosted Training
151+
152+
Prime Lab connects verifiers environments to evaluations, GEPA prompt optimization, and Hosted Training. Start with `prime lab setup` to create a local workspace with starter configs, then use `prime train models` to choose a Hosted Training model with current capacity and pricing.
153+
154+
```bash
155+
# Set up a Lab workspace
156+
prime lab setup
157+
158+
# List trainable models, capacity, and token pricing
159+
prime train models
160+
161+
# Generate a Hosted Training config
162+
prime train init
163+
164+
# Launch the run from the generated config
165+
prime train rl.toml
166+
167+
# Inspect and manage Hosted Training runs
168+
prime train list
169+
prime train logs <run-id> -f
170+
prime train metrics <run-id>
171+
prime train checkpoints <run-id>
172+
```
173+
135174
### GPU Resources
136175

137176
```bash

packages/prime-evals/src/prime_evals/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
SamplesResponse,
3535
)
3636

37-
__version__ = "0.2.0"
37+
__version__ = "0.2.2"
3838

3939
__all__ = [
4040
# Core HTTP Client & Config

0 commit comments

Comments
 (0)