pub mod names {
pub const GRAPH_INVOKE: &str = "juncture.graph.invoke";
pub const GRAPH_COMPLETE: &str = "juncture.graph.complete";
pub const SUPERSTEP: &str = "juncture.superstep";
pub const NODE_EXECUTE: &str = "juncture.node.execute";
pub const LLM_CALL: &str = "juncture.llm.call";
pub const TOOL_CALL: &str = "juncture.tool.call";
pub const CHECKPOINT_PUT: &str = "juncture.checkpoint.put";
}
pub mod attrs {
pub const THREAD_ID: &str = "juncture.thread.id";
pub const GRAPH_NAME: &str = "juncture.graph.name";
pub const RUN_ID: &str = "juncture.run.id";
pub const RECURSION_LIMIT: &str = "juncture.recursion.limit";
pub const STEP: &str = "juncture.step";
pub const STEP_NODES: &str = "juncture.step.nodes";
pub const STEP_DURATION_MS: &str = "juncture.step.duration_ms";
pub const NODE_NAME: &str = "juncture.node.name";
pub const NODE_DURATION_MS: &str = "juncture.node.duration_ms";
pub const NODE_ERROR: &str = "juncture.node.error";
pub const NODE_OUTPUT_TYPE: &str = "juncture.node.output_type";
pub const LLM_MODEL: &str = "juncture.llm.model";
pub const LLM_PROVIDER: &str = "juncture.llm.provider";
pub const TOKENS_INPUT: &str = "juncture.tokens.input";
pub const TOKENS_OUTPUT: &str = "juncture.tokens.output";
pub const COST_USD: &str = "juncture.cost.usd";
pub const TOTAL_STEPS: &str = "juncture.graph.total_steps";
pub const TOTAL_TOKENS: &str = "juncture.graph.total_tokens";
pub const LLM_HAS_TOOL_CALLS: &str = "juncture.llm.has_tool_calls";
pub const LLM_STOP_REASON: &str = "juncture.llm.stop_reason";
pub const TOOL_NAME: &str = "juncture.tool.name";
pub const TOOL_DURATION_MS: &str = "juncture.tool.duration_ms";
pub const TOOL_ERROR: &str = "juncture.tool.error";
pub const CHECKPOINT_ID: &str = "juncture.checkpoint.id";
pub const CHECKPOINT_SOURCE: &str = "juncture.checkpoint.source";
pub const CHECKPOINT_STEP: &str = "juncture.checkpoint.step";
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_span_names_format() {
assert!(names::GRAPH_INVOKE.starts_with("juncture."));
assert!(names::GRAPH_COMPLETE.starts_with("juncture."));
assert!(names::SUPERSTEP.starts_with("juncture."));
assert!(names::NODE_EXECUTE.starts_with("juncture."));
assert!(names::LLM_CALL.starts_with("juncture."));
assert!(names::TOOL_CALL.starts_with("juncture."));
assert!(names::CHECKPOINT_PUT.starts_with("juncture."));
}
#[test]
fn test_attributes_format() {
assert!(attrs::THREAD_ID.starts_with("juncture."));
assert!(attrs::GRAPH_NAME.starts_with("juncture."));
assert!(attrs::STEP.starts_with("juncture."));
assert!(attrs::NODE_NAME.starts_with("juncture."));
assert!(attrs::LLM_MODEL.starts_with("juncture."));
assert!(attrs::TOOL_NAME.starts_with("juncture."));
assert!(attrs::CHECKPOINT_ID.starts_with("juncture."));
assert!(attrs::TOTAL_STEPS.starts_with("juncture."));
assert!(attrs::TOTAL_TOKENS.starts_with("juncture."));
}
}