Version: 0.9.52.dev.260428
后端: 1. 工具结果结构化切流继续推进:schedule 读工具改为“父包 adapter + 子包 view builder”,`queue_pop_head` / `queue_skip_head` 脱离 legacy wrapper,`analyze_health` / `analyze_rhythm` 补齐 `schedule.analysis_result` 诊断卡片。 2. 非 schedule 工具补齐专属结果协议:`web_search` / `web_fetch`、`upsert_task_class`、`context_tools_add` / `context_tools_remove` 全部接入结构化 `ResultView`,注册表继续去 legacy wrapper,同时保持原始 `ObservationText` 供模型链路复用。 3. 工具展示细节继续收口:参数本地化补齐 `domain` / `packs` / `mode` / `all`,deliver 阶段补发段落分隔,避免 execute 与总结正文黏连。 前端: 4. `ToolCardRenderer` 升级为多协议通用渲染器,补齐 read / analysis / web / taskclass / context 卡片渲染、参数折叠区、未知协议兜底与操作明细展示。 5. `AssistantPanel` 修正 `tool_result` 结果回填与卡片布局宽度问题,并新增结构化卡片 fixture / mock 调试入口,便于整体验收。 仓库: 6. 更新工具结果结构化交接文档,补记第四批切流范围、当前切流点与后续收尾建议。
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/LoveLosita/smartflow/backend/newAgent/tools/schedule"
|
||||
toolcontextresult "github.com/LoveLosita/smartflow/backend/newAgent/tools/tool_context_result"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -473,6 +474,8 @@ func argumentDisplayRank(key string) int {
|
||||
switch strings.TrimSpace(key) {
|
||||
case "task_id", "task_ids", "task_item_id", "task_item_ids", "task_a", "task_b":
|
||||
return 10
|
||||
case "domain", "packs", "mode", "all":
|
||||
return 15
|
||||
case "status", "category":
|
||||
return 20
|
||||
case "day", "new_day", "day_start", "day_end", "day_scope", "day_of_week":
|
||||
@@ -585,6 +588,14 @@ func resolveArgumentLabelCN(key string) string {
|
||||
return "移动列表"
|
||||
case "reason":
|
||||
return "原因"
|
||||
case "domain":
|
||||
return "工具域"
|
||||
case "packs":
|
||||
return "工具包"
|
||||
case "mode":
|
||||
return "注入模式"
|
||||
case "all":
|
||||
return "清空全部"
|
||||
case "status":
|
||||
return "状态"
|
||||
case "category":
|
||||
@@ -692,6 +703,35 @@ func formatArgumentDisplay(
|
||||
if enabled, ok := toBool(value); ok {
|
||||
return formatBoolLabelCN(enabled)
|
||||
}
|
||||
case "domain":
|
||||
if text, ok := value.(string); ok {
|
||||
return fallbackText(toolcontextresult.ResolveDomainLabelCN(text), text)
|
||||
}
|
||||
case "packs":
|
||||
switch typed := value.(type) {
|
||||
case []string:
|
||||
return toolcontextresult.FormatPacksCN(typed)
|
||||
case []any:
|
||||
items := make([]string, 0, len(typed))
|
||||
for _, item := range typed {
|
||||
text := strings.TrimSpace(fmt.Sprintf("%v", item))
|
||||
if text == "" || text == "<nil>" {
|
||||
continue
|
||||
}
|
||||
items = append(items, text)
|
||||
}
|
||||
if len(items) > 0 {
|
||||
return toolcontextresult.FormatPacksCN(items)
|
||||
}
|
||||
case string:
|
||||
if strings.TrimSpace(typed) != "" {
|
||||
return toolcontextresult.FormatPacksCN(strings.Split(strings.TrimSpace(typed), ","))
|
||||
}
|
||||
}
|
||||
case "mode":
|
||||
if text, ok := value.(string); ok {
|
||||
return fallbackText(toolcontextresult.ResolveModeLabelCN(text), text)
|
||||
}
|
||||
case "status":
|
||||
if text, ok := value.(string); ok {
|
||||
return formatTargetPoolStatusCN(text)
|
||||
|
||||
Reference in New Issue
Block a user