| 1 | [package] |
| 2 | name = "sitiai" |
| 3 | version = "1.0.0" |
| 4 | description = "Siti AI — private, on-device personal assistant." |
| 5 | authors = ["PT Sigit Mitra Bangun <support@getsiti.5mb.app>"] |
| 6 | edition = "2021" |
| 7 | license = "Apache-2.0" |
| 8 | repository = "https://github.com/getsigit/siti" |
| 9 | homepage = "https://getsiti.5mb.app" |
| 10 | |
| 11 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
| 12 | |
| 13 | [lib] |
| 14 | # The `_lib` suffix may seem redundant but it is necessary |
| 15 | # to make the lib name unique and wouldn't conflict with the bin name. |
| 16 | # This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 |
| 17 | name = "sitiai_lib" |
| 18 | crate-type = ["staticlib", "cdylib", "rlib"] |
| 19 | |
| 20 | [build-dependencies] |
| 21 | tauri-build = { version = "2", features = [] } |
| 22 | |
| 23 | [dependencies] |
| 24 | tauri = { version = "2", features = [] } |
| 25 | tauri-plugin-log = "2" |
| 26 | tauri-plugin-opener = "2" |
| 27 | serde = { version = "1", features = ["derive"] } |
| 28 | serde_json = "1" |
| 29 | log = "0.4" |
| 30 | once_cell = "1" |
| 31 | tokio = { version = "1", features = ["macros", "rt"] } |
| 32 | # Ed, the agent SDK over the Onde inference engine: model lifecycle, history, |
| 33 | # streaming and the Tauri event bridge. Published crates: |
| 34 | # https://crates.io/crates/ed-agent and https://crates.io/crates/ed-agent-tauri. |
| 35 | ed-agent = "1.2.2" |
| 36 | ed-agent-tauri = "1.2.2" |
| 37 | # The engine Ed wraps. Siti still reaches it directly for the Hugging Face cache |
| 38 | # helpers (download checks, model removal) and the macOS ISQ load path. |
| 39 | onde = "1.3.2" |
| 40 | |
| 41 | # Apple App Group container lookup — used to redirect the HuggingFace model |
| 42 | # cache into the shared `group.com.ondeinference.apps` container. |
| 43 | [target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies] |
| 44 | objc2-foundation = { version = "0.3", features = [ |
| 45 | "NSFileManager", |
| 46 | "NSBundle", |
| 47 | "NSString", |
| 48 | ] } |
| 49 | |
| 50 | [profile.dev] |
| 51 | # GGUF inference is unusably slow at opt-level 0; 2 keeps dev builds bearable. |
| 52 | opt-level = 2 |
| 53 | incremental = false |
| 54 | |
| 55 | [profile.release] |
| 56 | opt-level = 3 |
| 57 | lto = "thin" |
| 58 | codegen-units = 1 |
| 59 | strip = "debuginfo" |
| 60 | |
| 61 | # Do NOT strip proc-macro / build-script dylibs. On beta macOS (Darwin 26/27) |
| 62 | # `strip = "debuginfo"` corrupts their Mach-O LINKEDIT ("mis-aligned LINKEDIT |
| 63 | # string pool"), so rustc can't dlopen them mid-build ("can't find crate for |
| 64 | # thiserror_impl"). The shipped app binary stays stripped via the profile above. |
| 65 | [profile.release.build-override] |
| 66 | strip = false |