Metadata-Version: 2.4
Name: freesolo
Version: 0.2.49
Summary: Environment and dataset helpers for Freesolo-generated repos.
Requires-Python: >=3.10
Requires-Dist: typing-extensions>=4.8.0
Provides-Extra: bson
Requires-Dist: pymongo>=4.0.0; extra == 'bson'
Description-Content-Type: text/markdown

# freesolo

`freesolo` is the published Python SDK surface for generated repos:
environments and datasets used for evaluation and task definition.

It is intentionally narrow:

- `freesolo.environments`
- `freesolo.datasets`

Everything else (evaluation, tracing, and internal helpers) is kept in the
repository for internal workflows but is not part of the public SDK contract.

## Install

```bash
pip install freesolo
```

From source:

```bash
cd freesolo-sdk
export PYTHONPATH="$PWD/pypi"
```

## Dataset Contract

Dataset records use `input` and optional `output`.

```json
{"id": "example-1", "input": "Say yes.", "output": "yes"}
```

The SDK does not accept aliases such as `prompt`, `query`, `task`,
`ground_truth`, `expected_output`, or `completion`.

## Environment Contract

Environments are Python modules that expose `load_environment()` and return an
`EnvironmentSingleTurn` or `EnvironmentMultiTurn` instance. Environment code
uses `TaskExample.input` and `TaskExample.output` when building prompts and
scoring responses.

The SDK does not handle remote artifact publishing or resolution.

## Example

```python
from freesolo.datasets import load_dataset
from freesolo.environments import load_environment

dataset = load_dataset("support.jsonl")
environment = load_environment("freesolo/environment.py:load_environment")

print(len(dataset.examples))
print(type(environment).__name__)
```

## API Guidance

Use `freesolo.datasets` for task examples and `freesolo.environments` for environment
loading/scoring interfaces.

- No command-line help surface is published as part of the SDK contract.
- Hidden modules remain available in source history for internal tooling only.
