diff --git a/cmd/olliesrv/internal/fs/spec.go b/cmd/olliesrv/internal/fs/spec.go index a6d598d..fa861b5 100644 --- a/cmd/olliesrv/internal/fs/spec.go +++ b/cmd/olliesrv/internal/fs/spec.go @@ -361,6 +361,9 @@ func buildAgentChildren(a *agent.Agent, s *session.Session) []virtfs.FsNodeDecl chatStat := func() os.FileInfo { return &SyntheticFileInfo{Name_: "chat", Mode_: 0444, Size_: 64 * 1024} } + stats := func(_ []string) ([]byte, error) { + return []byte("usage=" + a.UsageStr() + "\ncost=" + a.CostStr() + "\nctxsz=" + a.CtxSz() + "\n"), nil + } return []virtfs.FsNodeDecl{ virtfs.FileNode("prompt", 0666, @@ -756,15 +759,16 @@ func buildAgentChildren(a *agent.Agent, s *session.Session) []virtfs.FsNodeDecl "systemprompt": func(_ []string) ([]byte, error) { return []byte(a.SystemPrompt() + "\n"), nil }, + "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 help\n"), nil + return []byte("stop compact clear inject agent model models tools tool_load tool_unload cwd proc name backend systemprompt stats help\n"), nil }, }, data) }), ), virtfs.FileNode("stats", 0444, virtfs.Read(func() ([]byte, error) { - return []byte("usage=" + a.UsageStr() + "\ncost=" + a.CostStr() + "\nctxsz=" + a.CtxSz() + "\n"), nil + return stats(nil) }), ), virtfs.FileNode("name", 0666, @@ -777,10 +781,10 @@ func buildAgentChildren(a *agent.Agent, s *session.Session) []virtfs.FsNodeDecl a.SetName(newName) session.PersistSession(s.Name()) return nil - }), - ), - virtfs.FileNode("id", 0444, - virtfs.Read(func() ([]byte, error) { return []byte(a.ID() + "\n"), nil }), - ), - } + }), + ), + virtfs.FileNode("id", 0444, + virtfs.Read(func() ([]byte, error) { return []byte(a.ID() + "\n"), nil }), + ), } +}