Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,27 @@ license = "Apache-2.0"
description = "Music-domain ACP agent: theory, production, industry, culture and live shows, backed by any OpenAI-compatible chat completions API"
repository = "https://github.com/splitfireai/splitfire-agent"

[features]
default = ["cli"]
# The `splitfire-agent` binary: its terminal UI, plus the MCP stub the integration tests run.
# A host embedding the library turns this off.
cli = ["dep:ed-acp-tui", "ed-mcp/test-server"]

[[bin]]
name = "splitfire-agent"
path = "src/main.rs"
required-features = ["cli"]

[[bin]]
name = "mcp_stdio_stub"
path = "src/bin/mcp_stdio_stub.rs"
required-features = ["cli"]

[dependencies]
# Onde Agent Platform: the ACP server, terminal UI and MCP layer, from the onde-ed workspace.
ed-acp = { version = "1.1.0" }
ed-acp-tui = { version = "1.1.0" }
ed-mcp = { version = "1.1.0", features = ["test-server"] }
ed-acp-tui = { version = "1.1.0", optional = true }
ed-mcp = { version = "1.1.0" }
agent-client-protocol = "2.2"
anyhow = "1.0.104"
async-trait = "0.1"
Expand Down
15 changes: 15 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//! SplitFire as a library: the music agent's [`Profile`](ed_acp::Profile), for hosts that
//! embed it instead of launching the `splitfire-agent` binary.
//!
//! A host serves [`SplitFire`] with `ed_acp::serve` over an in-memory channel and runs an ACP
//! client on the other end, which keeps the agent inside an app sandbox that can't spawn it as
//! a subprocess. Build with `default-features = false` to leave out the terminal UI.

mod audio;
pub mod profile;
mod prompt;
mod theory;
mod tools;

pub use ed_acp;
pub use profile::{DEMUCS, INFO, SplitFire};
8 changes: 1 addition & 7 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,14 @@
//! it speaks ACP over stdio. Set ONDE_API_KEY (`app-id:app-secret`) or run `--setup`.
//! SPLITFIRE_YOLO=1 skips permission prompts. Logs go to stderr (RUST_LOG).

mod audio;
mod profile;
mod prompt;
mod theory;
mod tools;

use std::io::IsTerminal;
use std::path::PathBuf;
use std::sync::Arc;

use ed_acp::{LlmConfig, ServeOptions, cli};
use ed_acp_tui::TuiConfig;

use profile::{INFO, SplitFire};
use splitfire_agent::{INFO, SplitFire};

const USAGE: &str = "\
Usage: splitfire-agent [--acp] [--yolo] [--list-models] [--root <path>...] [--setup] [--version]
Expand Down
Loading