🎨 增加并发访问
This commit is contained in:
52
src/kiro/model/events/tool_use.rs
Normal file
52
src/kiro/model/events/tool_use.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
//! 工具使用事件
|
||||
//!
|
||||
//! 处理 toolUseEvent 类型的事件
|
||||
|
||||
use serde::Deserialize;
|
||||
|
||||
use crate::kiro::parser::error::ParseResult;
|
||||
use crate::kiro::parser::frame::Frame;
|
||||
|
||||
use super::base::EventPayload;
|
||||
|
||||
/// 工具使用事件
|
||||
///
|
||||
/// 包含工具调用的流式数据
|
||||
#[derive(Debug, Clone, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct ToolUseEvent {
|
||||
/// 工具名称
|
||||
pub name: String,
|
||||
/// 工具调用 ID
|
||||
pub tool_use_id: String,
|
||||
/// 工具输入数据 (JSON 字符串,可能是流式的部分数据)
|
||||
#[serde(default)]
|
||||
pub input: String,
|
||||
/// 是否是最后一个块
|
||||
#[serde(default)]
|
||||
pub stop: bool,
|
||||
}
|
||||
|
||||
impl EventPayload for ToolUseEvent {
|
||||
fn from_frame(frame: &Frame) -> ParseResult<Self> {
|
||||
frame.payload_as_json()
|
||||
}
|
||||
}
|
||||
|
||||
impl std::fmt::Display for ToolUseEvent {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
if self.stop {
|
||||
write!(
|
||||
f,
|
||||
"ToolUse[{}] (id={}, complete): {}",
|
||||
self.name, self.tool_use_id, self.input
|
||||
)
|
||||
} else {
|
||||
write!(
|
||||
f,
|
||||
"ToolUse[{}] (id={}, partial): {}",
|
||||
self.name, self.tool_use_id, self.input
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user