nucel-agent-opencode 0.1.1

OpenCode provider for Nucel agent-sdk — HTTP client to OpenCode server
Documentation
# nucel-agent-opencode

OpenCode provider for [Nucel Agent SDK](https://github.com/nucel-dev/agent-sdk) — HTTP client to the OpenCode server.

## Features

- **HTTP client** — connects to `opencode serve` via REST API
- **Session management** — create sessions, send prompts, get responses
- **Native resume** — OpenCode supports resuming existing sessions by ID
- **MCP support** — OpenCode's MCP integration is available
- **Budget enforcement** — automatic cost checks before each query
- **Directory header** — sends `x-opencode-directory` header for context

## How it works

OpenCode runs as a server (`opencode serve` on `:4096`). This provider:
1. Creates a session via `POST /session`
2. Sends prompts via `POST /session/{id}/prompt`
3. Parses the response's `parts` array for text content
4. Tracks cost from the `cost` field in responses

## Usage

```toml
[dependencies]
nucel-agent-sdk = "0.1"
```

```rust
use nucel_agent_sdk::{OpencodeExecutor, AgentExecutor, SpawnConfig};

let executor = OpencodeExecutor::new(); // default: http://127.0.0.1:4096

// Or custom URL
let executor = OpencodeExecutor::with_base_url("http://my-server:8080");

// Spawn and query
let session = executor.spawn(
    std::path::Path::new("/my/repo"),
    "Fix the failing tests",
    &SpawnConfig {
        model: Some("claude-sonnet-4".into()),
        budget_usd: Some(5.0),
        ..Default::default()
    },
).await?;

// Follow-up query (uses existing session)
let resp = session.query("Now add more tests").await?;
println!("{}", resp.content);

session.close().await?;
```

## Server Requirements

- OpenCode installed: `npm install -g opencode`
- Server running: `opencode serve` (default port 4096)

## License

Apache-2.0