diff --git a/README.md b/README.md index d38d02c..9fb8bff 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ It gives you one place to manage repositories, issue-driven worktrees, embedded ### Agent Chat - Interactive chat sessions with ACP agents (Claude, Codex, Pi, Gemini, and more via acpx) -- OpenAI-compatible provider support: Ollama, LM Studio, OpenRouter, OpenAI, and any `/v1/chat/completions` endpoint +- OpenAI-compatible provider support: Ollama, LM Studio, OpenRouter, Requesty, OpenAI, and any `/v1/chat/completions` endpoint - Streaming responses via SSE for OpenAI-compatible providers and JSONL for ACP agents - Automatic model discovery: probes `/v1/models` at startup for configured providers - Model selector with per-provider sections and distinct icons (ACP vs API) diff --git a/crates/arbor-daemon-client/src/types.rs b/crates/arbor-daemon-client/src/types.rs index 311a0ac..2f0b598 100644 --- a/crates/arbor-daemon-client/src/types.rs +++ b/crates/arbor-daemon-client/src/types.rs @@ -254,7 +254,7 @@ pub struct AgentChatSessionDto { pub enum AgentChatTransport { /// ACP agent via acpx CLI subprocess. Acp, - /// OpenAI-compatible HTTP API (Ollama, LM Studio, OpenRouter, etc.). + /// OpenAI-compatible HTTP API (Ollama, LM Studio, OpenRouter, Requesty, etc.). OpenAiChat { base_url: String, api_key: Option, diff --git a/crates/arbor-gui/src/app_config.rs b/crates/arbor-gui/src/app_config.rs index 3cbade0..9c5f3a2 100644 --- a/crates/arbor-gui/src/app_config.rs +++ b/crates/arbor-gui/src/app_config.rs @@ -41,7 +41,7 @@ const DEFAULT_CONFIG_CONTENT: &str = r#"# Arbor configuration # key = "copilot" # command = "copilot --allow-all" -# OpenAI-compatible providers (Ollama, LM Studio, OpenRouter, etc.) +# OpenAI-compatible providers (Ollama, LM Studio, OpenRouter, Requesty, etc.) # Arbor probes /v1/models at startup when fetch_models = true. # # [[providers]] @@ -67,6 +67,13 @@ const DEFAULT_CONFIG_CONTENT: &str = r#"# Arbor configuration # fetch_models = true # # [[providers]] +# name = "Requesty" +# kind = "openai-compatible" +# base_url = "https://router.requesty.ai/v1" +# api_key_env = "REQUESTY_API_KEY" +# fetch_models = true +# +# [[providers]] # name = "OpenAI" # kind = "openai-compatible" # base_url = "https://api.openai.com/v1" diff --git a/crates/arbor-httpd/src/agent_chat.rs b/crates/arbor-httpd/src/agent_chat.rs index 7767064..907acfb 100644 --- a/crates/arbor-httpd/src/agent_chat.rs +++ b/crates/arbor-httpd/src/agent_chat.rs @@ -4,7 +4,7 @@ //! - **ACP** (Agent Client Protocol): spawns agent CLI processes via `acpx`, //! parses their JSONL stdout into structured events. //! - **OpenAI-compatible**: sends HTTP requests to `/v1/chat/completions` -//! endpoints (Ollama, LM Studio, OpenRouter, OpenAI, etc.) and streams SSE +//! endpoints (Ollama, LM Studio, OpenRouter, Requesty, OpenAI, etc.) and streams SSE //! responses. //! //! Events from both transports are broadcast over a `tokio::sync::broadcast` @@ -49,7 +49,7 @@ pub(crate) enum AgentChatStatus { pub(crate) enum AgentChatTransport { /// ACP agent via acpx CLI subprocess. Acp, - /// OpenAI-compatible HTTP API (Ollama, LM Studio, OpenRouter, etc.). + /// OpenAI-compatible HTTP API (Ollama, LM Studio, OpenRouter, Requesty, etc.). OpenAiChat { base_url: String, api_key: Option,