[workspace] members = ["crates/*"] resolver = "2" [workspace.package] version = "1.2.0" edition = "2021" authors = ["coso"] repository = "https://github.com/aiclientproxy/lime" homepage = "https://github.com/aiclientproxy/lime" [workspace.dependencies] # 项目内 crate 依赖 lime-core = { path = "crates/core" } lime-config = { path = "crates/config" } lime-infra = { path = "crates/infra" } lime-providers = { path = "crates/providers" } lime-services = { path = "crates/services" } lime-terminal = { path = "crates/terminal" } lime-credential = { path = "crates/credential" } lime-websocket = { path = "crates/websocket" } lime-processor = { path = "crates/processor" } lime-server-utils = { path = "crates/server-utils" } lime-server = { path = "crates/server" } lime-skills = { path = "crates/skills" } lime-mcp = { path = "crates/mcp" } lime-agent = { path = "crates/agent" } lime-scheduler = { path = "crates/scheduler" } lime-memory = { path = "crates/memory" } lime-embedding = { path = "crates/embedding" } lime-gateway = { path = "crates/gateway" } lime-browser-runtime = { path = "crates/browser-runtime" } lime-media-runtime = { path = "crates/media-runtime" } voice-core = { path = "crates/voice-core" } # 序列化 serde = { version = "1", features = ["derive"] } serde_json = "1" serde_yaml = "0.9" serde_urlencoded = "0.7" # 异步运行时 tokio = { version = "1", features = ["full"] } tokio-util = "0.7" futures = "0.3" async-stream = "0.3" async-trait = "0.1" clap = { version = "4.5", features = ["derive"] } # 错误处理 anyhow = "1" thiserror = "1" # 日志 tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } sentry = "0.43" # HTTP 服务器 axum = { version = "0.7", features = ["ws"] } axum-server = { version = "0.7", features = ["tls-rustls"] } tower = "0.5" tower-http = { version = "0.6", features = ["limit", "cors", "timeout"] } # HTTP 客户端 reqwest = { version = "0.12", features = ["json", "stream", "gzip", "brotli", "deflate"] } # 数据库 rusqlite = { version = "0.31", features = ["bundled", "backup"] } # 时间和 UUID chrono = { version = "0.4", features = ["serde"] } chrono-tz = "0.10" uuid = { version = "1", features = ["v4"] } # Cron 调度 cron = "0.15" # 工具库 dirs = "5" regex = "1" md5 = "0.7" jsonwebtoken = "9.3.1" urlencoding = "2" subtle = "2.5" flate2 = "1" tar = "0.4" fs2 = "0.4" indexmap = { version = "2", features = ["serde"] } zip = "0.6" dashmap = "5" notify = { version = "6", default-features = false, features = ["macos_fsevent"] } parking_lot = "0.12" tiktoken-rs = "0.6" base64 = "0.22" bytes = "1" rand = "0.8" sha2 = "0.10" open = "5" url = "2" once_cell = "1" arboard = "3" glob = "0.3.3" hex = "0.4.3" scopeguard = "1" sysinfo = "0.32" whoami = "1" # 音频 cpal = "0.15" # TLS rustls-pemfile = "2" # 终端 portable-pty = "0.8" # SSH ssh2 = { version = "0.9", features = ["vendored-openssl"] } # 系统交互 mouse_position = "0.1.4" window-vibrancy = "0.7.1" if-addrs = "0.13" enigo = "0.3" # Aster Agent Framework # 默认固定到远程 Git tag,避免 CI/CD 与其他开发环境依赖本地绝对路径。 # 如需联调本地 aster-rust,请运行: # npm run setup:local-aster -- /path/to/aster-rust # 脚本会在仓库根 .cargo/config.toml 写入本地 patch 覆盖;该文件已被 .gitignore 忽略。 aster = { package = "aster-core", git = "https://github.com/astercloud/aster-rust", tag = "v0.26.0" } aster-models = { git = "https://github.com/astercloud/aster-rust", tag = "v0.26.0" } # MCP (Model Context Protocol) rmcp = { version = "0.12.0", features = ["client", "transport-io", "transport-child-process"] } # Tauri tauri = { version = "2.10.3", features = ["tray-icon", "image-png", "unstable", "macos-private-api"] } tauri-build = { version = "2", features = [] } tauri-plugin-shell = "2.3" tauri-plugin-autostart = "2.3" tauri-plugin-dialog = "2.5.0" tauri-plugin-single-instance = "2.3" tauri-plugin-global-shortcut = "2.3" tauri-plugin-updater = "2" # 测试 proptest = "1" tempfile = "3" # Windows 平台依赖 [workspace.dependencies.windows] version = "0.56" features = [ "Win32_Foundation", "Win32_System_Registry", "Win32_System_Threading", "Win32_System_ProcessStatus", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", "Win32_System_LibraryLoader", "Win32_System_Memory", "Win32_System_Diagnostics_ToolHelp", "Win32_Security", ] [workspace.dependencies.winapi] version = "0.3" features = [ "winuser", "winreg", "processthreadsapi", "handleapi", "shellapi", "psapi", "tlhelp32", ] [workspace.dependencies.winreg] version = "0.52" # macOS 平台依赖 [workspace.dependencies.cocoa] version = "0.26" [workspace.dependencies.objc] version = "0.2" [workspace.dependencies.tauri-plugin-deep-link] version = "2.4" [package] name = "lime" version = "1.2.0" description = "AI API Proxy Desktop App" authors = ["you"] edition = "2021" repository = "https://github.com/aiclientproxy/lime" homepage = "https://github.com/aiclientproxy/lime" [lib] name = "lime_lib" crate-type = ["lib", "cdylib", "staticlib"] [build-dependencies] tauri-build.workspace = true [dependencies] # 项目内 crate lime-core.workspace = true lime-config.workspace = true lime-infra.workspace = true lime-providers.workspace = true lime-services.workspace = true lime-terminal.workspace = true lime-credential.workspace = true lime-websocket.workspace = true lime-processor.workspace = true lime-server-utils.workspace = true lime-server.workspace = true lime-skills.workspace = true lime-mcp.workspace = true lime-gateway.workspace = true lime-agent.workspace = true lime-scheduler.workspace = true lime-memory.workspace = true lime-embedding.workspace = true lime-browser-runtime.workspace = true lime-media-runtime.workspace = true voice-core.workspace = true # Tauri tauri.workspace = true tauri-plugin-shell.workspace = true tauri-plugin-autostart.workspace = true tauri-plugin-dialog.workspace = true tauri-plugin-single-instance.workspace = true tauri-plugin-global-shortcut.workspace = true tauri-plugin-updater.workspace = true tauri-plugin-deep-link.workspace = true # 序列化 serde.workspace = true serde_json.workspace = true serde_yaml.workspace = true serde_urlencoded.workspace = true # 异步运行时 tokio.workspace = true tokio-util.workspace = true futures.workspace = true async-stream.workspace = true async-trait.workspace = true # 错误处理 anyhow.workspace = true thiserror.workspace = true # 日志 tracing.workspace = true tracing-subscriber.workspace = true sentry.workspace = true # HTTP 服务器 axum.workspace = true axum-server.workspace = true tower.workspace = true tower-http.workspace = true rustls-pemfile.workspace = true # HTTP 客户端 reqwest.workspace = true # 数据库 rusqlite.workspace = true # 时间和 UUID chrono.workspace = true chrono-tz.workspace = true uuid.workspace = true # Cron 调度 cron.workspace = true # 工具库 dirs.workspace = true regex.workspace = true md5.workspace = true jsonwebtoken.workspace = true urlencoding.workspace = true subtle.workspace = true flate2.workspace = true tar.workspace = true fs2.workspace = true indexmap.workspace = true zip.workspace = true dashmap.workspace = true notify.workspace = true parking_lot.workspace = true tiktoken-rs.workspace = true base64.workspace = true bytes.workspace = true rand.workspace = true sha2.workspace = true open.workspace = true url.workspace = true once_cell.workspace = true arboard.workspace = true glob.workspace = true hex.workspace = true scopeguard.workspace = true sysinfo.workspace = true whoami.workspace = true tempfile.workspace = true # 终端 portable-pty.workspace = true # SSH ssh2.workspace = true # 系统交互 mouse_position.workspace = true window-vibrancy.workspace = true if-addrs.workspace = true enigo.workspace = true # 音频 cpal.workspace = true # Aster Agent Framework aster.workspace = true # MCP (Model Context Protocol) rmcp.workspace = true # Windows specific dependencies for browser interceptor and machine ID management [target.'cfg(windows)'.dependencies] windows.workspace = true winapi.workspace = true winreg.workspace = true # macOS specific dependencies for browser interceptor [target.'cfg(target_os = "macos")'.dependencies] cocoa.workspace = true objc.workspace = true [dev-dependencies] proptest.workspace = true tempfile.workspace = true [features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"] # 本地 Whisper 语音识别(编译很慢,CI 默认不启用) local-whisper = ["lime-services/local-whisper"] notification = [] # 预留特性:系统通知功能