1 [workspace]
2 resolver = "3"
3 members = ["crates/cli"]
4
5 [workspace.package]
6 version = "1.7.0"
7 edition = "2024"
8 license = "Apache-2.0"
9 repository = "https://github.com/getsigit/sigit"
10 homepage = "https://sigit.si/code"
11 documentation = "https://github.com/getsigit/sigit"
12 authors = ["Seto Elkahfi <seto@sigit.si>", "paydii <193906237+paydii@users.noreply.github.com>", "keypair34 <216233964+keypair34@users.noreply.github.com>"]
13
14 [workspace.dependencies]
15 # ACP protocol SDK
16 agent-client-protocol = { version = "2.2", features = ["unstable_session_fork"] }
17
18 # MCP client (rmcp underneath), shared with the other Onde agents
19 ed-mcp = "1.2.0"
20
21 # Onde Inference engine (local LLM)
22 # onde = { path = "../onde" }
23 onde = "1.3.1"
24
25 # Async runtime
26 tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "io-std", "io-util", "sync", "time", "process"] }
27 tokio-util = { version = "0.7", features = ["compat"] }
28 futures = "0.3"
29
30 # TUI (interactive chat mode)
31 # `unstable-rendered-line-info` exposes `Paragraph::line_count`, which we use to
32 # pin the message view to the bottom using the exact wrapped-row count (the same
33 # WordWrapper that rendering uses) rather than a hand-rolled estimate.
34 ratatui = { version = "0.30", default-features = false, features = ["crossterm", "layout-cache", "unstable-rendered-line-info"] }
35 crossterm = { version = "0.29", features = ["event-stream"] }
36
37 # Utilities
38 anyhow = "1"
39 libc = "0.2"
40 log = "0.4"
41 tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
42 serde = { version = "1", features = ["derive"] }
43 serde_json = "1"
44 toml = "0.8"
45 async-trait = "0.1"
46 regex = "1"
47 reqwest = { version = "0.13", default-features = false, features = ["blocking", "form", "json", "rustls", "stream"] }
48 uuid = { version = "1", features = ["v4"] }
49 rpassword = "7"
50 # Browser sign-in: PKCE needs a SHA-256 and base64url, the verifier and state
51 # need a CSPRNG. All three already came in through the dependency graph.
52 base64 = "0.22"
53 rand = "0.9"
54 sha2 = "0.10"
55
56 # ACP `resource_link` blocks carry file URIs. Parsing them with `url` decodes
57 # percent escapes and maps Windows drive paths, which hand-stripping `file://`
58 # did not. Already in the graph through reqwest.
59 url = "2"
60
61 # Release binaries ship to five registries, and the NuGet package bundles all
62 # six targets in a single archive, so binary size is a distribution constraint
63 # rather than a nicety. Stripping symbols takes the macOS arm64 binary from
64 # ~102 MB to ~88 MB. The Homebrew tarball already stripped by hand in
65 # release-github.yml; this makes every channel match.
66 [profile.release]
67 strip = "symbols"