Version: 0.9.75.dev.260505
后端: 1.收口阶段 6 agent 结构迁移,将 newAgent 内核与 agentsvc 编排层迁入 services/agent - 切换 Agent 启动装配与 HTTP handler 直连 agent sv,移除旧 service agent bridge - 补齐 Agent 对 memory、task、task-class、schedule 的 RPC 适配与契约字段 - 扩展 schedule、task、task-class RPC/contract 支撑 Agent 查询、写入与 provider 切流 - 更新迁移文档、README 与相关注释,明确 agent 当前切流点和剩余 memory 迁移面
This commit is contained in:
143
backend/services/agent/tools/schedule_argument_format_helpers.go
Normal file
143
backend/services/agent/tools/schedule_argument_format_helpers.go
Normal file
@@ -0,0 +1,143 @@
|
||||
package agenttools
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/LoveLosita/smartflow/backend/services/agent/tools/schedule"
|
||||
)
|
||||
|
||||
// formatScheduleDayCN 为参数展示生成中文日期标签。
|
||||
//
|
||||
// 职责边界:
|
||||
// 1. 只服务父包 ArgumentView 的中文展示;
|
||||
// 2. 不参与 schedule.read_result 卡片构造,read 卡片已切到 schedule_read 子包;
|
||||
// 3. 当 state 缺失或日期映射不存在时,退回稳定的“第 N 天”文本。
|
||||
func formatScheduleDayCN(state *schedule.ScheduleState, day int) string {
|
||||
if day <= 0 {
|
||||
return "未知日期"
|
||||
}
|
||||
if state != nil {
|
||||
if week, dayOfWeek, ok := state.DayToWeekDay(day); ok {
|
||||
return fmt.Sprintf("第%d天(第%d周 %s)", day, week, formatScheduleWeekdayCN(dayOfWeek))
|
||||
}
|
||||
}
|
||||
return fmt.Sprintf("第%d天", day)
|
||||
}
|
||||
|
||||
func formatScheduleWeekdayCN(dayOfWeek int) string {
|
||||
switch dayOfWeek {
|
||||
case 1:
|
||||
return "周一"
|
||||
case 2:
|
||||
return "周二"
|
||||
case 3:
|
||||
return "周三"
|
||||
case 4:
|
||||
return "周四"
|
||||
case 5:
|
||||
return "周五"
|
||||
case 6:
|
||||
return "周六"
|
||||
case 7:
|
||||
return "周日"
|
||||
default:
|
||||
return fmt.Sprintf("周%d", dayOfWeek)
|
||||
}
|
||||
}
|
||||
|
||||
func formatScheduleWeekListCN(weeks []int) string {
|
||||
if len(weeks) == 0 {
|
||||
return "不限周次"
|
||||
}
|
||||
parts := make([]string, 0, len(weeks))
|
||||
for _, week := range weeks {
|
||||
if week <= 0 {
|
||||
continue
|
||||
}
|
||||
parts = append(parts, fmt.Sprintf("第%d周", week))
|
||||
}
|
||||
if len(parts) == 0 {
|
||||
return "不限周次"
|
||||
}
|
||||
return strings.Join(parts, "、")
|
||||
}
|
||||
|
||||
func formatScheduleSectionListCN(sections []int) string {
|
||||
if len(sections) == 0 {
|
||||
return "无"
|
||||
}
|
||||
parts := make([]string, 0, len(sections))
|
||||
for _, section := range sections {
|
||||
if section <= 0 {
|
||||
continue
|
||||
}
|
||||
parts = append(parts, fmt.Sprintf("第%d节", section))
|
||||
}
|
||||
if len(parts) == 0 {
|
||||
return "无"
|
||||
}
|
||||
return strings.Join(parts, "、")
|
||||
}
|
||||
|
||||
func formatTargetPoolStatusCN(status string) string {
|
||||
switch strings.ToLower(strings.TrimSpace(status)) {
|
||||
case "all":
|
||||
return "全部任务"
|
||||
case "existing":
|
||||
return "已安排任务"
|
||||
case "suggested":
|
||||
return "已预排任务"
|
||||
case "pending":
|
||||
return "待安排任务"
|
||||
default:
|
||||
return fallbackText(status, "任务池")
|
||||
}
|
||||
}
|
||||
|
||||
func formatSlotTypeLabelCN(slotType string) string {
|
||||
switch strings.ToLower(strings.TrimSpace(slotType)) {
|
||||
case "", "empty", "strict":
|
||||
return "纯空位"
|
||||
case "embedded_candidate", "embedded", "embed":
|
||||
return "可嵌入候选"
|
||||
default:
|
||||
return strings.TrimSpace(slotType)
|
||||
}
|
||||
}
|
||||
|
||||
func formatDayScopeLabelCN(scope string) string {
|
||||
switch strings.ToLower(strings.TrimSpace(scope)) {
|
||||
case "workday":
|
||||
return "工作日"
|
||||
case "weekend":
|
||||
return "周末"
|
||||
default:
|
||||
return "全部日期"
|
||||
}
|
||||
}
|
||||
|
||||
func formatBoolLabelCN(value bool) string {
|
||||
if value {
|
||||
return "是"
|
||||
}
|
||||
return "否"
|
||||
}
|
||||
|
||||
func formatWeekdayListCN(days []int) string {
|
||||
if len(days) == 0 {
|
||||
return "不限星期"
|
||||
}
|
||||
parts := make([]string, 0, len(days))
|
||||
for _, day := range days {
|
||||
parts = append(parts, formatScheduleWeekdayCN(day))
|
||||
}
|
||||
return strings.Join(parts, "、")
|
||||
}
|
||||
|
||||
func fallbackText(text string, fallback string) string {
|
||||
if strings.TrimSpace(text) == "" {
|
||||
return strings.TrimSpace(fallback)
|
||||
}
|
||||
return strings.TrimSpace(text)
|
||||
}
|
||||
Reference in New Issue
Block a user