feat(flow): 新增流式执行模式与SSE支持

新增流式执行模式,通过SSE实时推送节点执行事件与日志
重构HTTP执行器与中间件,提取通用HTTP客户端组件
优化前端测试面板,支持流式模式切换与实时日志展示
更新依赖版本并修复密码哈希的随机数生成器问题
修复前端节点类型映射问题,确保Code节点表单可用
This commit is contained in:
2025-09-21 01:48:24 +08:00
parent 296f0ae9f6
commit dd7857940f
24 changed files with 1695 additions and 885 deletions

View File

@ -14,14 +14,29 @@ pub enum ExecutionMode {
impl Default for ExecutionMode { fn default() -> Self { ExecutionMode::Sync } }
// 新增:流式事件(用于 SSE
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")] // 带判别字段,便于前端识别事件类型
pub enum StreamEvent {
#[serde(rename = "node")]
Node { node_id: String, logs: Vec<String>, ctx: serde_json::Value },
#[serde(rename = "done")]
Done { ok: bool, ctx: serde_json::Value, logs: Vec<String> },
#[serde(rename = "error")]
Error { message: String },
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DriveOptions {
#[serde(default)]
pub max_steps: usize,
#[serde(default)]
pub execution_mode: ExecutionMode,
// 新增:事件通道(仅运行时使用,不做序列化/反序列化)
#[serde(default, skip_serializing, skip_deserializing)]
pub event_tx: Option<tokio::sync::mpsc::Sender<StreamEvent>>,
}
impl Default for DriveOptions {
fn default() -> Self { Self { max_steps: 10_000, execution_mode: ExecutionMode::Sync } }
fn default() -> Self { Self { max_steps: 10_000, execution_mode: ExecutionMode::Sync, event_tx: None } }
}