feat(flow): 新增流式执行模式与SSE支持
新增流式执行模式,通过SSE实时推送节点执行事件与日志 重构HTTP执行器与中间件,提取通用HTTP客户端组件 优化前端测试面板,支持流式模式切换与实时日志展示 更新依赖版本并修复密码哈希的随机数生成器问题 修复前端节点类型映射问题,确保Code节点表单可用
This commit is contained in:
@ -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 } }
|
||||
}
|
||||
Reference in New Issue
Block a user