From 470e85c0ffe3706b29c1d4e69df88c85f91d6b23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Mon, 14 Sep 2026 18:30:28 +0800 Subject: [PATCH] Add UI-specific prompt rendering for design assets in resource references --- .../src/agent/direct_codex_references.rs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_references.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_references.rs index f1b78b1ca..80e29e1e6 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_references.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_references.rs @@ -133,6 +133,23 @@ fn validate_resource_reference_id(value: &str) -> Result { Ok(resource_id.to_string()) } +/// Render the prompt context for a UI design asset. +/// +/// Keep this separate from the generic resource renderer so UI-specific +/// instructions/metadata can evolve without changing other asset kinds. +fn render_ui_design_reference_line( + asset: &GameCreationAppAssetManifestEntry, + resource_id: &str, + label: &str, + local_path: &str, + source: &str, +) -> String { + format!( + "- 素材 ID:{resource_id};名称:{label};类型:{};媒体类型:{};项目路径:{local_path};来源:{source}", + asset.kind, asset.media_type + ) +} + fn render_resource_reference_line( manifest: &GameCreationAppManifest, reference: &DirectCodexResourceReference, @@ -149,6 +166,19 @@ fn render_resource_reference_line( .unwrap_or_else(|| asset_display_label(asset)); let source = sanitize_reference_source(reference.source.as_deref()) .unwrap_or_else(|| "unknown".to_string()); + let is_ui_design = matches!( + asset.kind.to_ascii_lowercase().as_str(), + "ui" | "ui-design" | "ui-prototype" + ); + if is_ui_design { + return Ok(render_ui_design_reference_line( + asset, + &resource_id, + &label, + &local_path, + &source, + )); + } Ok(format!( "- 素材 ID:{resource_id};名称:{label};类型:{};媒体类型:{};项目路径:{local_path};来源:{source}", asset.kind, asset.media_type