refactor(runtime): streamline request handling and improve tool preparation methods

This commit is contained in:
mlogclub
2026-04-19 11:19:51 +08:00
parent 92712d882a
commit 680793f527
9 changed files with 184 additions and 128 deletions
@@ -1,5 +1,7 @@
package runtime
import "cs-agent/internal/ai/runtime/registry"
func newPrepareService(catalog *toolCatalog) *prepareService {
return &prepareService{catalog: catalog}
}
@@ -8,30 +10,16 @@ type prepareService struct {
catalog *toolCatalog
}
func (s *prepareService) prepareToolsForRun(req *Request) error {
if req == nil || req.ToolSet != nil || s.catalog == nil {
return nil
func (s *prepareService) prepareToolsForRun(req Request) (*registry.ToolSet, error) {
if req.ToolSet != nil {
return req.ToolSet, nil
}
toolSet, err := s.catalog.resolveForRun(req)
if err != nil {
return err
}
if toolSet != nil {
req.ToolSet = toolSet
}
return nil
return s.catalog.resolveForRun(req)
}
func (s *prepareService) prepareToolsForResume(req *ResumeRequest) error {
if req == nil || req.ToolSet != nil || s.catalog == nil {
return nil
func (s *prepareService) prepareToolsForResume(req ResumeRequest) (*registry.ToolSet, error) {
if req.ToolSet != nil {
return req.ToolSet, nil
}
toolSet, err := s.catalog.resolveForResume(req)
if err != nil {
return err
}
if toolSet != nil {
req.ToolSet = toolSet
}
return nil
return s.catalog.resolveForResume(req)
}