o: add trailing session/agent args to prompt, tail, stop, kill, ctl
This commit is contained in:
parent
f1611fb50b
commit
0694f47376
|
|
@ -125,6 +125,17 @@ resolve_path() {
|
|||
|
||||
# ── Context requirements for specific commands ──────────────────
|
||||
|
||||
# Resolve session and agent from positional args or env vars.
|
||||
# Usage: resolve_context "$@" → returns (s, a) by modifying caller's vars.
|
||||
# Pass "$@" from the calling command; it shifts positional args.
|
||||
resolve_context() {
|
||||
local _s _a
|
||||
_s="${1:-${session:-}}"
|
||||
[[ -n "$1" ]] && shift
|
||||
_a="${1:-${agent:-}}"
|
||||
echo "$_s|$_a"
|
||||
}
|
||||
|
||||
require_session() {
|
||||
local s="${session:-}"
|
||||
if [[ -z "$s" ]]; then
|
||||
|
|
@ -240,16 +251,32 @@ cmd_ctl() {
|
|||
echo " commands: stop, compact, kill, clear, model <m>, backend <b>, cwd <d>" >&2
|
||||
exit 1
|
||||
fi
|
||||
local path
|
||||
path=$(agent_path) || exit 1
|
||||
echo "$*" | ollie-9p write "$path/ctl"
|
||||
local ctx s a
|
||||
ctx=$(resolve_context "$@") || exit 1
|
||||
s="${ctx%%|*}"
|
||||
a="${ctx##*|}"
|
||||
shift; shift
|
||||
if [[ -z "$s" || -z "$a" ]]; then
|
||||
echo "error: session and agent are required" >&2
|
||||
echo " usage: o ctl <command> [args...]" >&2
|
||||
echo " or: export session=<name> agent=<name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "$*" | ollie-9p write "session/$s/agent/$a/ctl"
|
||||
}
|
||||
|
||||
cmd_prompt() {
|
||||
local s a path
|
||||
s=$(require_session) || exit 1
|
||||
a=$(require_agent "$s") || exit 1
|
||||
path="session/$s/agent/$a"
|
||||
local ctx s a
|
||||
ctx=$(resolve_context "$@") || exit 1
|
||||
s="${ctx%%|*}"
|
||||
a="${ctx##*|}"
|
||||
if [[ -z "$s" || -z "$a" ]]; then
|
||||
echo "error: session and agent are required" >&2
|
||||
echo " usage: o prompt <session> <agent>" >&2
|
||||
echo " or: export session=<name> agent=<name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
local path="session/$s/agent/$a"
|
||||
|
||||
echo "[$s/$a]"
|
||||
echo "Type . on a blank line to send, Ctrl+D to exit."
|
||||
|
|
@ -335,9 +362,17 @@ cmd_prompt() {
|
|||
}
|
||||
|
||||
cmd_tail() {
|
||||
local path
|
||||
path=$(agent_path) || exit 1
|
||||
exec ollie-9p read "$path/chat"
|
||||
local ctx s a
|
||||
ctx=$(resolve_context "$@") || exit 1
|
||||
s="${ctx%%|*}"
|
||||
a="${ctx##*|}"
|
||||
if [[ -z "$s" || -z "$a" ]]; then
|
||||
echo "error: session and agent are required" >&2
|
||||
echo " usage: o tail <session> <agent>" >&2
|
||||
echo " or: export session=<name> agent=<name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
exec ollie-9p read "session/$s/agent/$a/chat"
|
||||
}
|
||||
|
||||
cmd_env() {
|
||||
|
|
@ -356,14 +391,27 @@ cmd_env() {
|
|||
}
|
||||
|
||||
cmd_stop() {
|
||||
local path
|
||||
path=$(agent_path) || exit 1
|
||||
echo "stop" | ollie-9p write "$path/ctl"
|
||||
local ctx s a
|
||||
ctx=$(resolve_context "$@") || exit 1
|
||||
s="${ctx%%|*}"
|
||||
a="${ctx##*|}"
|
||||
if [[ -z "$s" || -z "$a" ]]; then
|
||||
echo "error: session and agent are required" >&2
|
||||
echo " usage: o stop <session> <agent>" >&2
|
||||
echo " or: export session=<name> agent=<name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "stop" | ollie-9p write "session/$s/agent/$a/ctl"
|
||||
}
|
||||
|
||||
cmd_kill() {
|
||||
local s
|
||||
s=$(require_session) || exit 1
|
||||
local s="${1:-${session:-}}"
|
||||
if [[ -z "$s" ]]; then
|
||||
echo "error: no session set" >&2
|
||||
echo " usage: o kill <session>" >&2
|
||||
echo " or: export session=<name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "kill" | ollie-9p write "session/$s/ctl"
|
||||
}
|
||||
|
||||
|
|
@ -382,9 +430,10 @@ cmd_tui() {
|
|||
fi
|
||||
|
||||
# Accept optional positional args: o tui [session] [agent]
|
||||
s="${1:-${session:-}}"
|
||||
if [[ -n "$1" ]]; then shift; fi
|
||||
a="${1:-${agent:-}}"
|
||||
local ctx
|
||||
ctx=$(resolve_context "$@")
|
||||
s="${ctx%%|*}"
|
||||
a="${ctx##*|}"
|
||||
|
||||
if [[ -z "$s" ]]; then
|
||||
echo "error: no session set" >&2
|
||||
|
|
|
|||
Loading…
Reference in New Issue