Refactor agent instance initialization to consolidate component setup and remove unused code and helper functions.
This commit is contained in:
parent
a547cbfd85
commit
7a402c4972
4 changed files with 7 additions and 34 deletions
|
|
@ -48,20 +48,6 @@ func NewAgentInstance(
|
||||||
model := resolveAgentModel(agentCfg, defaults)
|
model := resolveAgentModel(agentCfg, defaults)
|
||||||
fallbacks := resolveAgentFallbacks(agentCfg, defaults)
|
fallbacks := resolveAgentFallbacks(agentCfg, defaults)
|
||||||
|
|
||||||
restrict := defaults.RestrictToWorkspace
|
|
||||||
toolsRegistry := tools.NewToolRegistry()
|
|
||||||
toolsRegistry.Register(tools.NewReadFileTool(workspace, restrict))
|
|
||||||
toolsRegistry.Register(tools.NewWriteFileTool(workspace, restrict))
|
|
||||||
toolsRegistry.Register(tools.NewListDirTool(workspace, restrict))
|
|
||||||
toolsRegistry.Register(tools.NewExecToolWithConfig(workspace, restrict, cfg))
|
|
||||||
toolsRegistry.Register(tools.NewEditFileTool(workspace, restrict))
|
|
||||||
toolsRegistry.Register(tools.NewAppendFileTool(workspace, restrict))
|
|
||||||
|
|
||||||
sessionsDir := filepath.Join(workspace, "sessions")
|
|
||||||
sessionsManager := session.NewSessionManager(sessionsDir)
|
|
||||||
|
|
||||||
contextBuilder := NewContextBuilder(workspace)
|
|
||||||
|
|
||||||
agentID := routing.DefaultAgentID
|
agentID := routing.DefaultAgentID
|
||||||
agentName := ""
|
agentName := ""
|
||||||
var subagents *config.SubagentsConfig
|
var subagents *config.SubagentsConfig
|
||||||
|
|
@ -73,9 +59,9 @@ func NewAgentInstance(
|
||||||
skillsFilter = agentCfg.Skills
|
skillsFilter = agentCfg.Skills
|
||||||
}
|
}
|
||||||
|
|
||||||
restrict = defaults.RestrictToWorkspace
|
restrict := defaults.RestrictToWorkspace
|
||||||
roContainer := isContainerReadOnlySandbox(cfg)
|
roContainer := isContainerReadOnlySandbox(cfg)
|
||||||
toolsRegistry = tools.NewToolRegistry()
|
toolsRegistry := tools.NewToolRegistry()
|
||||||
|
|
||||||
sandboxManager := sandbox.NewFromConfigWithAgent(workspace, restrict, cfg, agentID)
|
sandboxManager := sandbox.NewFromConfigWithAgent(workspace, restrict, cfg, agentID)
|
||||||
isSandboxAllowed := func(toolName string) bool {
|
isSandboxAllowed := func(toolName string) bool {
|
||||||
|
|
@ -103,10 +89,10 @@ func NewAgentInstance(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sessionsDir = filepath.Join(workspace, "sessions")
|
sessionsDir := filepath.Join(workspace, "sessions")
|
||||||
sessionsManager = session.NewSessionManager(sessionsDir)
|
sessionsManager := session.NewSessionManager(sessionsDir)
|
||||||
|
|
||||||
contextBuilder = NewContextBuilder(workspace)
|
contextBuilder := NewContextBuilder(workspace)
|
||||||
|
|
||||||
maxIter := defaults.MaxToolIterations
|
maxIter := defaults.MaxToolIterations
|
||||||
if maxIter == 0 {
|
if maxIter == 0 {
|
||||||
|
|
|
||||||
|
|
@ -75,8 +75,8 @@ func validateBindMounts(binds []string) error {
|
||||||
if err := validateBindSourcePath(bind, normalized); err != nil {
|
if err := validateBindSourcePath(bind, normalized); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if real := tryRealpathAbsolute(normalized); real != normalized {
|
if resolvedPath := tryRealpathAbsolute(normalized); resolvedPath != normalized {
|
||||||
if err := validateBindSourcePath(bind, real); err != nil {
|
if err := validateBindSourcePath(bind, resolvedPath); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -362,7 +362,3 @@ func DefaultConfig() *Config {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func int64Ptr(v int64) *int64 {
|
|
||||||
return &v
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -72,15 +72,6 @@ func (s *cronStubSandbox) ExecStream(
|
||||||
return &sandbox.ExecResult{Stdout: "ok", ExitCode: 0}, nil
|
return &sandbox.ExecResult{Stdout: "ok", ExitCode: 0}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type noopExecutor struct{}
|
|
||||||
|
|
||||||
func (n *noopExecutor) ProcessDirectWithChannel(
|
|
||||||
ctx context.Context,
|
|
||||||
content, sessionKey, channel, chatID string,
|
|
||||||
) (string, error) {
|
|
||||||
return "ok", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestCronTool_ExecuteJob_BlocksDangerousCommandViaGuard(t *testing.T) {
|
func TestCronTool_ExecuteJob_BlocksDangerousCommandViaGuard(t *testing.T) {
|
||||||
msgBus := bus.NewMessageBus()
|
msgBus := bus.NewMessageBus()
|
||||||
sb := &cronStubSandbox{}
|
sb := &cronStubSandbox{}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue