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