diff --git a/data/scripts/o b/data/scripts/o index e6db6e5..eaa815e 100755 --- a/data/scripts/o +++ b/data/scripts/o @@ -33,7 +33,7 @@ ROOT_ENTRIES="session bypass agents backends models help ctl eventwait complete SESSION_FILES="env paused connected ctl name id bypass" # Agent-level files (exist under session/{name}/agent/{name}/) -AGENT_FILES="prompt fifo chat chat.raw statewait log plan cfg ctl cwd stats systemprompt tools name id proc" +AGENT_FILES="prompt fifo chat chat.raw statewait log plan cfg ctl stats systemprompt tools name id proc" is_root_path() { local path="$1" diff --git a/fs/handlers.go b/fs/handlers.go index 79d5a6b..8e32dda 100644 --- a/fs/handlers.go +++ b/fs/handlers.go @@ -731,30 +731,17 @@ func requestAgentCtl(ctx HandlerCtx, data []byte) ([]byte, error) { if len(args) == 0 { return []byte(ctx.Agent.Cwd() + "\n"), nil } - ctx.Agent.SetCWD(paths.ExpandHome(strings.Join(args, " "))) - return []byte(strings.Join(args, " ") + "\n"), nil + dir := paths.ExpandHome(strings.Join(args, " ")) + if _, err := os.Stat(dir); err != nil { + return nil, fmt.Errorf("cwd: %w", err) + } + ctx.Agent.SetCWD(dir) + return []byte(dir + "\n"), nil default: return nil, fmt.Errorf("unknown ctl command: %s", cmd) } } -func readAgentCwd(ctx HandlerCtx) ([]byte, error) { - return []byte(ctx.Agent.Cwd() + "\n"), nil -} - -func writeAgentCwd(ctx HandlerCtx, data []byte) error { - input := strings.TrimSpace(string(data)) - if input == "" { - return nil - } - input = paths.ExpandHome(input) - if _, err := os.Stat(input); err != nil { - return fmt.Errorf("cwd: %w", err) - } - ctx.Agent.SetCWD(input) - return nil -} - func readAgentStats(ctx HandlerCtx) ([]byte, error) { s := "usage=" + ctx.Agent.UsageStr() + "\n" + "cost=" + ctx.Agent.CostStr() + "\n" + diff --git a/fs/spec.go b/fs/spec.go index 2539f90..0be00d2 100644 --- a/fs/spec.go +++ b/fs/spec.go @@ -269,12 +269,6 @@ FileNode("generate", 0666, Request(requestAgentCtl), ), - FileNode("cwd", 0666, - Doc("Agent working directory. Read: current path. Write: change directory."), - Read(readAgentCwd), - Write(writeAgentCwd), - ), - FileNode("stats", 0444, Doc("Agent statistics. Key=value lines: usage=, cost=, ctxsz=."), Read(readAgentStats),