From 24b76d2065987469fe90f9bc3e094dd31014e54d Mon Sep 17 00:00:00 2001 From: Fini Date: Fri, 22 May 2026 22:56:27 +0800 Subject: [PATCH] feat(orchestrator): DesignRequest carries design_md --- crates/op-host-desktop/src/chat_orchestrator.rs | 1 + crates/op-orchestrator/src/plan.rs | 1 + crates/op-orchestrator/src/plan_normalize.rs | 1 + crates/op-orchestrator/src/prompt.rs | 1 + crates/op-orchestrator/src/run.rs | 1 + crates/op-orchestrator/src/subagent.rs | 1 + crates/op-orchestrator/src/types.rs | 2 ++ crates/op-orchestrator/src/variables.rs | 1 + 8 files changed, 9 insertions(+) diff --git a/crates/op-host-desktop/src/chat_orchestrator.rs b/crates/op-host-desktop/src/chat_orchestrator.rs index 19926c9e3..81633bafa 100644 --- a/crates/op-host-desktop/src/chat_orchestrator.rs +++ b/crates/op-host-desktop/src/chat_orchestrator.rs @@ -173,6 +173,7 @@ pub async fn run_design_request( prompt, model, provider: provider_id, + design_md: state.doc.design_md.clone(), }; let mut sink = DesktopDocSink::new(state); Orchestrator::new() diff --git a/crates/op-orchestrator/src/plan.rs b/crates/op-orchestrator/src/plan.rs index 613d0e3c3..b2c996187 100644 --- a/crates/op-orchestrator/src/plan.rs +++ b/crates/op-orchestrator/src/plan.rs @@ -196,6 +196,7 @@ mod tests { prompt: prompt.into(), model: None, provider: None, + design_md: None, } } diff --git a/crates/op-orchestrator/src/plan_normalize.rs b/crates/op-orchestrator/src/plan_normalize.rs index 93559b996..560066fb2 100644 --- a/crates/op-orchestrator/src/plan_normalize.rs +++ b/crates/op-orchestrator/src/plan_normalize.rs @@ -55,6 +55,7 @@ mod tests { prompt: "x".into(), model: None, provider: None, + design_md: None, } } diff --git a/crates/op-orchestrator/src/prompt.rs b/crates/op-orchestrator/src/prompt.rs index 2c53fdfa3..3bafa022d 100644 --- a/crates/op-orchestrator/src/prompt.rs +++ b/crates/op-orchestrator/src/prompt.rs @@ -106,6 +106,7 @@ mod tests { prompt: "a pricing page".into(), model: Some("claude".into()), provider: None, + design_md: None, } } diff --git a/crates/op-orchestrator/src/run.rs b/crates/op-orchestrator/src/run.rs index 6efc530bb..0adddd720 100644 --- a/crates/op-orchestrator/src/run.rs +++ b/crates/op-orchestrator/src/run.rs @@ -214,6 +214,7 @@ mod tests { prompt: "a landing page".into(), model: None, provider: None, + design_md: None, } } diff --git a/crates/op-orchestrator/src/subagent.rs b/crates/op-orchestrator/src/subagent.rs index 41f689c61..094902ce4 100644 --- a/crates/op-orchestrator/src/subagent.rs +++ b/crates/op-orchestrator/src/subagent.rs @@ -85,6 +85,7 @@ mod tests { prompt: "a page".into(), model: None, provider: None, + design_md: None, } } diff --git a/crates/op-orchestrator/src/types.rs b/crates/op-orchestrator/src/types.rs index 53bf6b836..7ca350e92 100644 --- a/crates/op-orchestrator/src/types.rs +++ b/crates/op-orchestrator/src/types.rs @@ -149,6 +149,8 @@ pub struct DesignRequest { pub prompt: String, pub model: Option, pub provider: Option, + /// 当前文档的 design.md(若有)—— 规划 prompt 据此走 design.md 分支。 + pub design_md: Option, } #[cfg(test)] diff --git a/crates/op-orchestrator/src/variables.rs b/crates/op-orchestrator/src/variables.rs index d1648a1a7..8434eff9e 100644 --- a/crates/op-orchestrator/src/variables.rs +++ b/crates/op-orchestrator/src/variables.rs @@ -45,6 +45,7 @@ mod tests { prompt: "a page".into(), model: None, provider: None, + design_md: None, }); assert!(seed_commands(&plan).is_empty()); let sink = VecDocSink::new();