simple-agents-ffi 0.2.22

C-compatible FFI bindings for SimpleAgents
Documentation
# simple-agents-ffi

C-compatible bindings for SimpleAgents.

## Build

```sh
cargo build -p simple-agents-ffi --release
```

The header is at `crates/simple-agents-ffi/include/simple_agents.h`.

## Usage

```c
#include "simple_agents.h"
#include <stdio.h>

int main() {
    SAClient *client = sa_client_new_from_env("openai");
    if (!client) {
        char *err = sa_last_error_message();
        fprintf(stderr, "Error: %s\n", err ? err : "unknown");
        sa_string_free(err);
        return 1;
    }

    char *response = sa_complete(client, "gpt-4", "Hello!", 128, 0.7f);
    if (!response) {
        char *err = sa_last_error_message();
        fprintf(stderr, "Error: %s\n", err ? err : "unknown");
        sa_string_free(err);
        sa_client_free(client);
        return 1;
    }

    printf("%s\n", response);
    sa_string_free(response);
    sa_client_free(client);
    return 0;
}
```

## Notes

- `sa_client_new_from_env` expects provider env vars (e.g. `OPENAI_API_KEY`).
- Pass `max_tokens <= 0` to omit max tokens.
- Pass `temperature < 0.0` to omit temperature.
- `sa_complete_messages_json` supports message arrays and returns structured JSON including tool calls, usage, and optional healing/coercion metadata (`mode`: `standard|healed_json|schema`).
- `sa_stream_messages` streams message-based responses through a callback, emitting JSON events (`chunk`, `error`, `done`).