Authentication System: - Add credentials crate with keyring (OS keychain) and file fallback storage - Add auth-manager crate for unified auth across providers - Implement API key login flow for Anthropic, OpenAI, and Ollama Cloud - Add CLI commands: login, logout, auth (status) - Store credentials securely in macOS Keychain / GNOME Keyring / Windows Credential Manager API Key Helpers: - Support for password manager integration (1Password, Bitwarden, pass, AWS Secrets, Vault) - Command-based helpers with TTL caching - Priority chain: env vars → helpers → cache → stored credentials Background Token Refresh: - Automatic OAuth token refresh before expiration - Configurable check interval and refresh threshold MCP OAuth Support: - Add OAuth config to MCP server definitions - Support for SSE/HTTP transport with OAuth - Token storage with mcp: prefix Bug Fixes: - Fix keyring crate requiring explicit backend features (was using mock store) - Fix provider index not updated on credential store - Add User-Agent headers to avoid Cloudflare blocks 🤖 Generated with [Claude Code](https://claude.ai/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
[package]
|
|
name = "owlen"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[dependencies]
|
|
clap = { version = "4.5", features = ["derive"] }
|
|
tokio = { version = "1.39", features = ["macros", "rt-multi-thread"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
color-eyre = "0.6"
|
|
agent-core = { path = "../../core/agent" }
|
|
llm-core = { path = "../../llm/core" }
|
|
llm-ollama = { path = "../../llm/ollama" }
|
|
llm-anthropic = { path = "../../llm/anthropic" }
|
|
llm-openai = { path = "../../llm/openai" }
|
|
tools-fs = { path = "../../tools/fs" }
|
|
tools-bash = { path = "../../tools/bash" }
|
|
tools-slash = { path = "../../tools/slash" }
|
|
auth-manager = { path = "../../platform/auth" }
|
|
config-agent = { package = "config-agent", path = "../../platform/config" }
|
|
permissions = { path = "../../platform/permissions" }
|
|
hooks = { path = "../../platform/hooks" }
|
|
plugins = { path = "../../platform/plugins" }
|
|
ui = { path = "../ui" }
|
|
atty = "0.2"
|
|
futures-util = "0.3.31"
|
|
rpassword = "7"
|
|
open = "5"
|
|
|
|
[dev-dependencies]
|
|
assert_cmd = "2.0"
|
|
predicates = "3.1"
|
|
httpmock = "0.7"
|
|
tokio = { version = "1.39", features = ["macros", "rt-multi-thread"] }
|
|
tempfile = "3.23.0"
|