feat(desktop): embed BoosAPI Desktop client as a subproject
Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
[workspace]
|
||||
members = [".", "crates/core", "crates/providers", "crates/gateway", "crates/migration", "crates/agent"]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.dependencies]
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
sea-orm = { version = "1", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"] }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
thiserror = "2"
|
||||
uuid = { version = "1", features = ["v4"] }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = "0.3"
|
||||
anyhow = "1"
|
||||
sqlite-vec = "0.1.8-alpha.1"
|
||||
libsqlite3-sys = "0.30"
|
||||
|
||||
[package]
|
||||
name = "boosapi"
|
||||
version = "0.0.1"
|
||||
description = "BoosApi - AI Chat Desktop App"
|
||||
authors = ["you"]
|
||||
license = "AGPL-3.0-only"
|
||||
edition = "2021"
|
||||
default-run = "BoosApi"
|
||||
|
||||
[lib]
|
||||
name = "boosapi_lib"
|
||||
crate-type = ["staticlib", "cdylib", "rlib"]
|
||||
|
||||
[[bin]]
|
||||
name = "BoosApi"
|
||||
path = "src/main.rs"
|
||||
|
||||
[build-dependencies]
|
||||
tauri-build = { version = "2", features = [] }
|
||||
|
||||
[dependencies]
|
||||
tauri = { version = "2", features = ["tray-icon", "image-png", "devtools"] }
|
||||
tauri-plugin-opener = "2"
|
||||
tauri-plugin-dialog = "2"
|
||||
tauri-plugin-fs = "2"
|
||||
tauri-plugin-autostart = "2"
|
||||
tauri-plugin-global-shortcut = "2"
|
||||
tauri-plugin-process = "2"
|
||||
tauri-plugin-updater = "2"
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
boosapi-core = { path = "crates/core" }
|
||||
boosapi-providers = { path = "crates/providers" }
|
||||
boosapi-agent = { path = "crates/agent" }
|
||||
open-agent-sdk = { path = "crates/open-agent-sdk" }
|
||||
boosapi-gateway = { path = "crates/gateway" }
|
||||
tokio = { workspace = true }
|
||||
sea-orm = { workspace = true }
|
||||
chrono = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
tracing-subscriber = { workspace = true }
|
||||
async-trait = "0.1"
|
||||
futures = "0.3"
|
||||
base64 = "0.22"
|
||||
rcgen = "0.13"
|
||||
rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs"] }
|
||||
tauri-plugin-mcp-bridge = "0.2"
|
||||
font-kit = "0.14"
|
||||
tauri-plugin-clipboard-manager = "2"
|
||||
reqwest = { version = "0.12", features = ["json"] }
|
||||
zip = "2"
|
||||
tempfile = "3"
|
||||
open = "5"
|
||||
urlencoding = "2"
|
||||
dirs = "5"
|
||||
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] }
|
||||
tauri-plugin-deep-link = "2.4.7"
|
||||
tauri-plugin-single-instance = { version = "=2.4.0", features = ["deep-link"] }
|
||||
|
||||
[target.'cfg(target_vendor = "apple")'.dependencies]
|
||||
objc2 = { version = "0.6", features = ["relax-sign-encoding"] }
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
windows-sys = { version = "0.59", features = [
|
||||
"Win32_UI_WindowsAndMessaging",
|
||||
"Win32_Foundation",
|
||||
] }
|
||||
|
||||
[profile.release]
|
||||
strip = true
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
opt-level = "s"
|
||||
Reference in New Issue
Block a user