Skip to main content

spice_framework/
lib.rs

1pub mod agent;
2pub mod assertion;
3pub mod error;
4pub mod mock;
5pub mod multi_turn;
6pub mod rbac;
7pub mod report;
8pub mod runner;
9pub mod test_case;
10pub mod toolkit;
11pub mod trace;
12
13pub use agent::{AgentConfig, AgentOutput, AgentUnderTest, ToolCall, Turn};
14pub use assertion::Assertion;
15pub use error::SpiceError;
16pub use mock::{MockAgent, MockMultiTurnResponse, MockResponse, MockTurn};
17pub use rbac::RbacMatrix;
18pub use report::{SuiteReport, TestReport};
19pub use runner::{Runner, RunnerConfig};
20pub use test_case::{TestCase, TestCaseBuilder, TestSuite};
21pub use toolkit::{ParamDef, PromptTemplate, ToolDef, Toolkit};
22
23/// Convenience function to start building a test case.
24pub fn test(id: impl Into<String>, user_message: impl Into<String>) -> TestCaseBuilder {
25    TestCaseBuilder::new(id, user_message)
26}
27
28/// Convenience function to create a test suite.
29pub fn suite(name: impl Into<String>, tests: Vec<TestCase>) -> TestSuite {
30    TestSuite {
31        name: name.into(),
32        tests,
33        ..Default::default()
34    }
35}