Metadata-Version: 2.4
Name: frankcode
Version: 0.1.1
Summary: Advanced multi-agent orchestrator for OpenCode
Author: joeyism
License: MIT
Project-URL: Homepage, https://github.com/joeyism/frankcode
Project-URL: Repository, https://github.com/joeyism/frankcode
Project-URL: Issues, https://github.com/joeyism/frankcode/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer[all]>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: pydantic>=2.0.0
Dynamic: license-file

# FrankCode

Advanced multi-agent orchestrator for OpenCode.

FrankCode acts as a wrapper and orchestration layer around OpenCode, managing specialized agent setups, safety plugins, verification passes, and environment configurations to accomplish complex development tasks safely and robustly.

## Requirements

Before installing FrankCode, ensure you have the following prerequisites installed on your system:

- **Python**: `>= 3.10`
- **Node.js & npm**: Required to install OpenCode plugins and manage the environment dynamically. FrankCode will attempt to automatically resolve Node via `nvm` if available.
- **OpenCode**: Make sure the `opencode` CLI is installed and available in your `PATH`.

## Installation

You can install FrankCode directly via pip:

```bash
pip install frankcode
```

Alternatively, to run from source:

```bash
git clone https://github.com/joeyism/frankcode.git
cd frankcode
pip install -e .
```

## Usage

FrankCode provides a simple CLI. To execute a task using the default multi-agent orchestrator:

```bash
frankcode "Create a new React component that fetches data from an API and displays it in a table"
```

### Options

- `--model`: Specify the LLM model to use (default: `google/gemini-3.1-pro-preview`).
- `--verbose`, `-v`: Show debug logs.
- `--no-verify`: Disable the autonomous verification and fix passes.
- `--clean`: Wipe the `.frankcode` execution environment before starting.

Example:

```bash
frankcode "Refactor the auth logic to use JWT" --model openai/gpt-5.4 --verbose
```

## How It Works

1. **Environment Setup**: FrankCode creates an isolated `.frankcode` directory to store logs, quarantine artifacts, and install specific OpenCode plugins dynamically.
2. **Execution**: Your prompt is passed into an enhanced OpenCode session. FrankCode actively monitors the process for infinite error loops or idle timeouts.
3. **Verification Loop (Optional but enabled by default)**: After the main task completes, an adversarial validation agent reads the outputs and devises independent tests. If the tests fail, FrankCode triggers a "fix pass" and repeats the verification.
4. **Cleanup**: Temporary artifacts generated during agent reasoning are quarantined.

## License

MIT License. See [LICENSE](LICENSE) for details.
