Files
ai-agent/internal/controllers/dashboard/agent_run_log_controller.go
T

62 lines
2.1 KiB
Go
Raw Normal View History

package dashboard
2026-04-09 10:01:23 +08:00
import (
"cs-agent/internal/builders"
"cs-agent/internal/pkg/constants"
"cs-agent/internal/pkg/dto/response"
"cs-agent/internal/pkg/httpx"
2026-04-09 10:01:23 +08:00
"cs-agent/internal/services"
"cs-agent/internal/pkg/httpx/params"
"github.com/gin-gonic/gin"
2026-04-09 10:01:23 +08:00
"github.com/mlogclub/simple/web"
)
func AgentRunLogAnyList(ctx *gin.Context) {
if _, err := services.AuthService.RequirePermission(ctx, constants.PermissionConversationView); err != nil {
httpx.WriteJSON(ctx, err)
return
2026-04-09 10:01:23 +08:00
}
cnd := params.NewPagedSqlCnd(ctx,
2026-04-09 10:01:23 +08:00
params.QueryFilter{ParamName: "conversationId"},
params.QueryFilter{ParamName: "messageId"},
params.QueryFilter{ParamName: "aiAgentId"},
params.QueryFilter{ParamName: "plannedAction"},
params.QueryFilter{ParamName: "plannedSkillCode", Op: params.Like},
params.QueryFilter{ParamName: "graphToolCode"},
params.QueryFilter{ParamName: "interruptType"},
params.QueryFilter{ParamName: "resumeSource"},
params.QueryFilter{ParamName: "finalStatus"},
params.QueryFilter{ParamName: "handoffReason", Op: params.Like},
2026-04-09 10:01:23 +08:00
params.QueryFilter{ParamName: "finalAction"},
params.QueryFilter{ParamName: "userMessage", Op: params.Like},
).Desc("id")
if hitlStatus, _ := params.Get(ctx, "hitlStatus"); hitlStatus != "" && hitlStatus != "all" {
cnd = services.AgentRunLogService.ApplyHITLStatusFilter(cnd, hitlStatus)
}
queryParams := params.NewQueryParams(ctx)
2026-04-09 10:01:23 +08:00
queryParams.Cnd = *cnd
list, paging := services.AgentRunLogService.FindPageByParams(queryParams)
results := make([]response.AgentRunLogResponse, 0, len(list))
for _, item := range list {
results = append(results, builders.BuildAgentRunLog(&item))
}
httpx.WriteJSON(ctx, &web.PageResult{Results: results, Page: paging})
2026-04-09 10:01:23 +08:00
}
func AgentRunLogGetBy(ctx *gin.Context, id int64) {
if _, err := services.AuthService.RequirePermission(ctx, constants.PermissionConversationView); err != nil {
httpx.WriteJSON(ctx, err)
return
2026-04-09 10:01:23 +08:00
}
item := services.AgentRunLogService.Get(id)
if item == nil {
httpx.WriteJSON(ctx, web.JsonErrorMsg("Agent 运行日志不存在"))
return
2026-04-09 10:01:23 +08:00
}
httpx.WriteJSON(ctx, builders.BuildAgentRunLog(item))
2026-04-09 10:01:23 +08:00
}