# OpenAI Provider Implementation
# Decision: Implements the core LlmProvider trait for OpenAI API
# Decision: Uses OpenAI's chat completion API with streaming support

[package]
name = "everruns-openai"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
documentation = "https://docs.rs/everruns-openai"
description = "OpenAI (GPT) provider for Everruns agents"
readme = "README.md"
keywords = ["agent", "llm", "ai", "openai", "gpt"]
categories = ["api-bindings", "asynchronous"]

[dependencies]
# Core dependencies
anyhow.workspace = true
async-trait.workspace = true

# Async runtime
tokio.workspace = true
futures.workspace = true

# HTTP client
reqwest = { workspace = true, features = ["multipart"] }
eventsource-stream.workspace = true

# Serialization
serde.workspace = true
serde_json.workspace = true

# Date/time
chrono.workspace = true
base64.workspace = true

# Tracing
tracing.workspace = true
inventory.workspace = true

# Internal dependencies
# default-features = false sheds core's heavy optional subtrees
# (telemetry/OTLP, a2a gRPC, web-fetch/fetchkit) that this provider does not
# need, keeping the standalone crate's dependency tree small.
everruns-core = { path = "../core", version = "0.16.2", default-features = false }

[dev-dependencies]
tokio = { workspace = true, features = ["full", "test-util"] }
wiremock = "0.6"
