main
toml 60 lines 2.3 KB
Raw
1 [package]
2 name = "splitfire-agent"
3 version = "1.2.2"
4 edition = "2024"
5 license = "Apache-2.0"
6 description = "Music-domain ACP agent: theory, production, industry, culture and live shows, backed by any OpenAI-compatible chat completions API"
7 repository = "https://github.com/splitfireai/splitfire-agent"
8
9 [features]
10 default = ["cli"]
11 # The `splitfire-agent` binary: its terminal UI, plus the MCP stub the integration tests run.
12 # A host embedding the library turns this off.
13 cli = ["dep:ed-acp-tui", "ed-mcp/test-server"]
14 # The `embed` module: the SplitFire-only pieces a Tauri host needs beside `ed-acp-tauri`
15 # (key fetch, the SplitFire MCP server, the iOS prompt/toolset trimming). Off by default so
16 # the plain library and the binary don't pull in `reqwest`.
17 embed = ["dep:reqwest"]
18
19 [[bin]]
20 name = "splitfire-agent"
21 path = "src/main.rs"
22 required-features = ["cli"]
23
24 [[bin]]
25 name = "mcp_stdio_stub"
26 path = "src/bin/mcp_stdio_stub.rs"
27 required-features = ["cli"]
28
29 [dependencies]
30 # Onde Agent Platform: the ACP server, terminal UI and MCP layer, from the onde-ed workspace.
31 ed-acp = { version = "1.3.3" }
32 ed-acp-tui = { version = "1.3.3", optional = true }
33 ed-mcp = { version = "1.3.3" }
34 agent-client-protocol = "2.2"
35 anyhow = "1.0.104"
36 async-trait = "0.1"
37 directories = "6.0.0"
38 ebur128 = "0.1.10"
39 realfft = "3.5.0"
40 serde = { version = "1.0.229", features = ["derive"] }
41 serde_json = "1.0.151"
42 symphonia = { version = "0.6.1", features = ["mp3", "flac", "ogg", "vorbis", "wav", "pcm", "aac", "isomp4", "aiff", "alac", "mkv"] }
43 tokio = { version = "1.53.1", features = ["full"] }
44 tracing = "0.1.44"
45 uuid = { version = "1.27.0", features = ["v4"] }
46
47 [dev-dependencies]
48 ed-acp-testkit = { version = "1.3.3" }
49 base64 = "0.23.1"
50 hound = "3.5.1"
51
52 # Only for `embed::fetch_key` and `embed::splitfire_mcp`, gated behind the `embed` feature.
53 # reqwest 0.13's `rustls` is the aws-lc provider, whose C code doesn't build for arm64_32
54 # (and `ring` asserts 64-bit pointers on aarch64), so watchOS uses `native-tls`, which is
55 # Security.framework.
56 [target.'cfg(not(target_os = "watchos"))'.dependencies]
57 reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"], optional = true }
58
59 [target.'cfg(target_os = "watchos")'.dependencies]
60 reqwest = { version = "0.13", default-features = false, features = ["json", "native-tls"], optional = true }