2026-04-09 10:01:23 +08:00
|
|
|
package services
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
2026-04-09 11:58:04 +08:00
|
|
|
"fmt"
|
2026-04-09 10:01:23 +08:00
|
|
|
"strings"
|
|
|
|
|
|
2026-05-31 18:43:48 +08:00
|
|
|
"agent-desk/internal/pkg/dto/request"
|
|
|
|
|
"agent-desk/internal/pkg/dto/response"
|
|
|
|
|
"agent-desk/internal/pkg/errorsx"
|
2026-04-09 10:01:23 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var SkillRuntimeService = newSkillRuntimeService()
|
2026-04-09 11:58:04 +08:00
|
|
|
var SkillDebugRunHook func(ctx context.Context, req request.SkillDebugRunRequest) (*response.SkillDebugRunResponse, error)
|
2026-04-10 17:27:44 +08:00
|
|
|
var SkillDebugResumeHook func(ctx context.Context, req request.SkillDebugResumeRequest) (*response.SkillDebugRunResponse, error)
|
2026-04-09 10:01:23 +08:00
|
|
|
|
|
|
|
|
func newSkillRuntimeService() *skillRuntimeService {
|
|
|
|
|
return &skillRuntimeService{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type skillRuntimeService struct{}
|
|
|
|
|
|
|
|
|
|
func (s *skillRuntimeService) DebugRun(ctx context.Context, req request.SkillDebugRunRequest) (*response.SkillDebugRunResponse, error) {
|
|
|
|
|
if req.AIAgentID <= 0 {
|
2026-06-02 20:51:13 +08:00
|
|
|
return nil, errorsx.InvalidParamI18n("error.e0061")
|
2026-04-09 10:01:23 +08:00
|
|
|
}
|
2026-06-20 20:42:07 +08:00
|
|
|
if req.SkillDefinitionID <= 0 {
|
2026-06-02 20:51:13 +08:00
|
|
|
return nil, errorsx.InvalidParamI18n("error.e0071")
|
2026-04-09 10:01:23 +08:00
|
|
|
}
|
|
|
|
|
if strings.TrimSpace(req.UserMessage) == "" {
|
2026-06-02 20:51:13 +08:00
|
|
|
return nil, errorsx.InvalidParamI18n("error.e0078")
|
2026-04-09 10:01:23 +08:00
|
|
|
}
|
2026-04-09 11:58:04 +08:00
|
|
|
if SkillDebugRunHook == nil {
|
|
|
|
|
return nil, fmt.Errorf("skill debug runner is not initialized")
|
2026-04-09 10:01:23 +08:00
|
|
|
}
|
2026-04-09 11:58:04 +08:00
|
|
|
return SkillDebugRunHook(ctx, req)
|
2026-04-09 10:01:23 +08:00
|
|
|
}
|
2026-04-10 17:27:44 +08:00
|
|
|
|
|
|
|
|
func (s *skillRuntimeService) DebugResume(ctx context.Context, req request.SkillDebugResumeRequest) (*response.SkillDebugRunResponse, error) {
|
|
|
|
|
if req.AIAgentID <= 0 {
|
2026-06-02 20:51:13 +08:00
|
|
|
return nil, errorsx.InvalidParamI18n("error.e0061")
|
2026-04-10 17:27:44 +08:00
|
|
|
}
|
|
|
|
|
if strings.TrimSpace(req.CheckPointID) == "" {
|
2026-06-02 20:51:13 +08:00
|
|
|
return nil, errorsx.InvalidParamI18n("error.e0063")
|
2026-04-10 17:27:44 +08:00
|
|
|
}
|
|
|
|
|
if strings.TrimSpace(req.UserMessage) == "" {
|
2026-06-02 20:51:13 +08:00
|
|
|
return nil, errorsx.InvalidParamI18n("error.e0078")
|
2026-04-10 17:27:44 +08:00
|
|
|
}
|
|
|
|
|
if SkillDebugResumeHook == nil {
|
|
|
|
|
return nil, fmt.Errorf("skill debug resume runner is not initialized")
|
|
|
|
|
}
|
|
|
|
|
return SkillDebugResumeHook(ctx, req)
|
|
|
|
|
}
|