diff --git a/main_test.go b/main_test.go index 191ff2a..fca56ed 100644 --- a/main_test.go +++ b/main_test.go @@ -35,7 +35,7 @@ func newNoopCore(id string) *session.Session { NewBackend: func(name string) (backend.Backend, error) { return backend.NewNoop(name, "default"), nil }, - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }) } @@ -59,7 +59,7 @@ func newBlockingCore(id string) *session.Session { NewBackend: func(name string) (backend.Backend, error) { return backend.NewNoop(name, "default"), nil }, - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }) } @@ -81,7 +81,7 @@ func newContentCore(id, content string) *session.Session { NewBackend: func(name string) (backend.Backend, error) { return backend.NewNoop(name, "default"), nil }, - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }) } @@ -128,7 +128,7 @@ func newTestSessionManagerWithCore(t *testing.T) *mgr.Manager { NewBackend: func(name string) (backend.Backend, error) { return backend.NewNoop(name, "default"), nil }, - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }), nil }, }) @@ -864,7 +864,7 @@ func TestSessionFileStoreMakePublishMultipleEvents(t *testing.T) { AgentName: "default", CWD: "/tmp", SessionID: "s1", - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -1160,7 +1160,7 @@ func TestSessionManagerCreateSessionEnvExpansion(t *testing.T) { AgentName: agentName, CWD: cwd, SessionID: sessionID, - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }), nil }, }) @@ -1185,7 +1185,7 @@ func TestSessionManagerCreateSessionTildeExpansion(t *testing.T) { AgentName: agentName, CWD: cwd, SessionID: sessionID, - NewDispatcher: func() tools.Dispatcher { return tools.NewDispatcher() }, + NewToolServer: func() tools.Server { return nil }, }), nil }, }) diff --git a/mgr/create.go b/mgr/create.go index c528e72..e12aea8 100644 --- a/mgr/create.go +++ b/mgr/create.go @@ -130,7 +130,7 @@ func (s *Manager) CreateSession(args []string) (string, error) { if s.cfg.SkillsRegistry != nil { execOpts = append(execOpts, execute.WithSkillsRegistry(s.cfg.SkillsRegistry)) } - var newDisp func() tools.Dispatcher + var newToolServer func() tools.Server var remoteEnv []string // extra env vars from remote host info if remoteTarget != "" { // Dial eagerly so we get HostInfo for prompt resolution. @@ -144,18 +144,14 @@ func (s *Manager) CreateSession(args []string) (string, error) { if dialErr != nil { return "", fmt.Errorf("remote dial: %w", dialErr) } - newDisp = tools.NewDispatcherFunc(map[string]func() tools.Server{ - "execute": func() tools.Server { return rsrv }, - }) + newToolServer = func() tools.Server { return rsrv } remoteEnv = []string{ "PRIME_CWD=" + cwd, "PRIME_PLATFORM=" + rsrv.Info.Platform, "PRIME_IS_GIT_REPO=" + fmt.Sprintf("%v", rsrv.Info.IsGitRepo), } } else { - newDisp = tools.NewDispatcherFunc(map[string]func() tools.Server{ - "execute": execute.Decl(cwd, execOpts...), - }) + newToolServer = execute.Decl(cwd, execOpts...) } var promptEnv []string @@ -197,8 +193,8 @@ func (s *Manager) CreateSession(args []string) (string, error) { } envBlock := prompts.Environment(cwd, platform, isGitRepo, "") - disp := newDisp() - rt := agent.BuildRuntime(cfg, disp, cwd, env, sysPrompt, opModel, envBlock) + toolSrv := newToolServer() + rt := agent.BuildRuntime(cfg, toolSrv, cwd, env, sysPrompt, opModel, envBlock) // sessPtr is set after NewSession; the ReadPlanStep closure captures it. core = session.New(session.Config{ @@ -211,7 +207,7 @@ func (s *Manager) CreateSession(args []string) (string, error) { CWD: cwd, Remote: remoteTarget, Runtime: rt, - NewDispatcher: newDisp, + NewToolServer: newToolServer, PromptEnvExtra: promptEnv, BaseLayers: []string{sysPrompt, opModel, envBlock}, Log: s.cfg.Sink.NewLogger("core"), diff --git a/mgr/persist.go b/mgr/persist.go index e4573fc..ee47752 100644 --- a/mgr/persist.go +++ b/mgr/persist.go @@ -132,7 +132,7 @@ func (s *Manager) restoreSession(ps *agent.PersistedAgent) error { } uname := s.nextUname() - var newDisp func() tools.Dispatcher + var newToolServer func() tools.Server var promptEnv []string remoteTarget := ps.Remote @@ -144,9 +144,7 @@ func (s *Manager) restoreSession(ps *agent.PersistedAgent) error { if dialErr != nil { return fmt.Errorf("remote dial: %w", dialErr) } - newDisp = tools.NewDispatcherFunc(map[string]func() tools.Server{ - "execute": func() tools.Server { return rsrv }, - }) + newToolServer = func() tools.Server { return rsrv } promptEnv = []string{ "PRIME_CWD=" + cwd, "PRIME_PLATFORM=" + rsrv.Info.Platform, @@ -168,9 +166,7 @@ func (s *Manager) restoreSession(ps *agent.PersistedAgent) error { if s.cfg.SkillsRegistry != nil { execOpts = append(execOpts, execute.WithSkillsRegistry(s.cfg.SkillsRegistry)) } - newDisp = tools.NewDispatcherFunc(map[string]func() tools.Server{ - "execute": execute.Decl(cwd, execOpts...), - }) + newToolServer = execute.Decl(cwd, execOpts...) promptEnv = agent.PromptEnv(cwd) } @@ -204,8 +200,8 @@ func (s *Manager) restoreSession(ps *agent.PersistedAgent) error { } envBlock := prompts.Environment(cwd, platform, isGitRepo, "") - disp := newDisp() - rt := agent.BuildRuntime(cfg, disp, cwd, env, sysPrompt, opModel, envBlock) + toolSrv := newToolServer() + rt := agent.BuildRuntime(cfg, toolSrv, cwd, env, sysPrompt, opModel, envBlock) restoredSession := agent.RestoreHistory(ps) @@ -221,7 +217,7 @@ func (s *Manager) restoreSession(ps *agent.PersistedAgent) error { Remote: remoteTarget, History: restoredSession, Runtime: rt, - NewDispatcher: newDisp, + NewToolServer: newToolServer, PromptEnvExtra: promptEnv, BaseLayers: []string{sysPrompt, opModel, envBlock}, Log: s.cfg.Sink.NewLogger("core"),