Metadata-Version: 2.4
Name: freesolo-agent
Version: 0.1.11
Summary: Thin CLI for queuing Freesolo backend training jobs.
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: freesolo>=0.2.6
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
- uploads a local dataset file or folder when one is provided
- 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, dataset file or folder path, 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 and checks repo-level training files for the latest job in a
draft chain.

`training` runs the long training workflow for the latest job in a draft chain
after that chain has at least one successful optimize job.

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