diff --git a/server-rs/crates/api-server/src/editor_agent/api.rs b/server-rs/crates/api-server/src/editor_agent/api.rs index 527f0a1bb..0ee0c8e3d 100644 --- a/server-rs/crates/api-server/src/editor_agent/api.rs +++ b/server-rs/crates/api-server/src/editor_agent/api.rs @@ -567,6 +567,7 @@ pub async fn confirm_editor_agent_tool_call( let context = context::build_tool_context(&document); let generation_inputs = |title: &str, value: &str| { Some(json!({ + // TODO extract const "source": "editor-agent", "conversationId": conversation.conversation_id, "toolCallMessageId": message_id, diff --git a/server-rs/crates/api-server/src/editor_agent/reconcile.rs b/server-rs/crates/api-server/src/editor_agent/reconcile.rs index 552a2b3f1..e0447aa1f 100644 --- a/server-rs/crates/api-server/src/editor_agent/reconcile.rs +++ b/server-rs/crates/api-server/src/editor_agent/reconcile.rs @@ -110,6 +110,7 @@ fn reconcile_completed_editor_agent_tool_call( let response = result_payload_json .ok_or_else(|| "生成任务缺少结果数据".to_string()) .and_then(|payload| serde_json::from_str::(payload).map_err(|e| e.to_string()))? + // TODO extract const .get("editor-agent-tool-call-result") .cloned() .ok_or_else(|| "生成任务缺少 Agent 工具调用结果".to_string())?; diff --git a/server-rs/crates/api-server/src/external_generation_worker.rs b/server-rs/crates/api-server/src/external_generation_worker.rs index 1b6915d29..0f59ede8c 100644 --- a/server-rs/crates/api-server/src/external_generation_worker.rs +++ b/server-rs/crates/api-server/src/external_generation_worker.rs @@ -1079,6 +1079,7 @@ fn editor_generation_result_payload_json( // The Agent needs this compact result to restore its tool-call card. Other jobs keep // master's metadata-only completion payload to avoid turning the queue into an asset API. object.insert( + // TODO extract const "editor-agent-tool-call-result".to_string(), compact_editor_generation_result(response.clone()), ); @@ -1098,7 +1099,8 @@ fn is_editor_agent_generation_job(job: &ExternalGenerationJobRecord) -> bool { payload .pointer("/generationInputs/source") .and_then(Value::as_str) - .is_some_and(|source| source.trim() == "editor-agent-tool-call-result") + // TODO extract const + .is_some_and(|source| source.trim() == "editor-agent") }) }