Metadata-Version: 2.4
Name: freesolo-agent
Version: 0.1.12
Summary: Thin CLI for queuing Freesolo backend training jobs.
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: freesolo>=0.2.26
Requires-Dist: httpx>=0.27.0

# Freesolo CLI

Interactive command-line client for Freesolo training jobs.

The CLI:

- prompts for setup input
- verifies a Freesolo API key
- enqueues `/api/training/jobs`
- polls `/api/training/jobs/{job_id}` until the worker finishes

## Install

```bash
pip install freesolo-agent
```

This installs the `freesolo` command.

## Setup

Run:

```bash
freesolo setup
```

The CLI prompts for:

- Freesolo API key
- operation: `draft`, `optimize`, `training`, or `poll`
- source repository URL for `draft`
- the latest stored organization job to continue for `optimize` and `training`
- optional branch and worker environment variables for `draft`

For private repositories, install the Freesolo GitHub App when prompted:

```text
https://github.com/apps/freesolo-agent/installations/new
```

The CLI prints progress while the backend job is queued and running. When the
job finishes, it prints a short summary with the job id, repo, commit, and
changed files when available. Full job details and richer summaries live in the
Freesolo platform at https://freesolo.co.

## Operations

`draft` creates the initial Freesolo training contract from a source repo. It
returns a `targetRepoUrl` for the generated training repo.

`optimize` generates repo-level training files and keeps running bounded
strategy-discovery experiments for the latest job in a draft chain. One optimize
job is instructed to run at most 5 heavy experiments concurrently, with each
experiment capped at 1 hour.

`training` tunes the optimizer-selected GEPA, SFT, and RL script/config
combination for the latest job in a draft chain after that chain has a
successful or user-stopped optimize job.

`poll` lists recent organization jobs and watches the selected job until it
finishes. It does not enqueue new work.
