diff --git a/cmd/olliesrv/internal/fs/spec.go b/cmd/olliesrv/internal/fs/spec.go index 3292176..19b728c 100644 --- a/cmd/olliesrv/internal/fs/spec.go +++ b/cmd/olliesrv/internal/fs/spec.go @@ -946,6 +946,16 @@ func buildAgentChildren(a *agent.Agent, s *session.Session) []virtfs.FsNodeDecl a.Interrupt(agent.ErrInterrupted) return []byte("ok\n"), nil }, + "detach": func(_ []string) ([]byte, error) { + ts := a.ToolServer() + if ts == nil { + return nil, fmt.Errorf("no tool server") + } + if !ts.Detach() { + return nil, fmt.Errorf("no foreground process to detach") + } + return []byte("ok\n"), nil + }, "compact": func(_ []string) ([]byte, error) { if err := a.Compact(s.Ctx); err != nil { return nil, err @@ -1185,7 +1195,7 @@ func buildAgentChildren(a *agent.Agent, s *session.Session) []virtfs.FsNodeDecl }, "stats": stats, "help": func(_ []string) ([]byte, error) { - return []byte("stop compact clear inject agent model models tools tool_load tool_unload cwd proc name backend systemprompt peeradd peerdel peers stats help\n"), nil + return []byte("stop detach compact clear inject agent model models tools tool_load tool_unload cwd proc name backend systemprompt peeradd peerdel peers stats help\n"), nil }, }, data) }),