o: add bypass command to inspect pending request

o sess bypass - shows id, agent, cwd, cmd without resolving

Workflow: bypass -> review -> approve/deny
This commit is contained in:
Levi Neely 2026-10-06 14:58:22 +02:00
parent 7b6ddc1b1a
commit d8b24ae26d
1 changed files with 29 additions and 2 deletions

View File

@ -41,7 +41,7 @@ CTX_SESSION="" # Session name if in session/agent context
CTX_AGENT="" # Agent name if in agent context
# ── Known commands (to distinguish from context) ─────────────────
COMMANDS="read write rdwr ls new ctl prompt log tui env generate overview approve deny help"
COMMANDS="read write rdwr ls new ctl prompt log tui env generate overview bypass approve deny help"
is_command() {
local arg="$1"
@ -275,6 +275,30 @@ cmd_log() {
ollie-9p read "${PREFIX}/log" | tail -n "$lines"
}
cmd_bypass() {
if [[ -z "$CTX_SESSION" ]]; then
echo "error: bypass requires session context" >&2
echo " usage: o <session> bypass" >&2
exit 1
fi
local bypass_path="session/$CTX_SESSION/bypass"
local pending
pending=$(ollie-9p read "$bypass_path" 2>/dev/null || true)
if [[ -z "$pending" ]]; then
echo "no pending bypass request"
return 0
fi
local id cmd cwd agent
id=$(echo "$pending" | jq -r '.id' 2>/dev/null)
cmd=$(echo "$pending" | jq -r '.cmd' 2>/dev/null)
cwd=$(echo "$pending" | jq -r '.cwd' 2>/dev/null)
agent=$(echo "$pending" | jq -r '.env.OLLIE_UNAME // "unknown"' 2>/dev/null)
echo "id: $id"
echo "agent: $agent"
echo "cwd: $cwd"
echo "cmd: $cmd"
}
cmd_approve() {
if [[ -z "$CTX_SESSION" ]]; then
echo "error: approve requires session context" >&2
@ -468,6 +492,7 @@ Commands (availability depends on context):
Session level (o <session> ...):
ls List session contents (agents, config)
ctl <cmd> Session control (kill, pause, resume)
bypass Show pending bypass request details
approve [id] Approve pending bypass request
deny [id] Deny pending bypass request
read/write <path> Access session files
@ -479,6 +504,7 @@ Commands (availability depends on context):
prompt Interactive multi-line prompt REPL
log [-n N] Show last N lines of agent log
tui Launch tmux layout
bypass Show pending bypass request (session-level)
approve [id] Approve pending bypass request (session-level)
deny [id] Deny pending bypass request (session-level)
read/write <path> Access agent files (chat, cfg, etc.)
@ -497,9 +523,9 @@ Examples:
o myproj ls # list session contents
o myproj/coding prompt # interactive prompt
o myproj/coding read chat # read chat stream
o myproj bypass # show pending bypass details
o myproj approve # approve pending bypass
o myproj approve 42 # approve specific request by id
o myproj/coding approve # same (bypass is per-session)
o generate "explain monads" # one-shot, no session
EOF
}
@ -521,6 +547,7 @@ dispatch_cmd() {
tui) cmd_tui "$@" ;;
env) cmd_env "$@" ;;
overview) cmd_overview "$@" ;;
bypass) cmd_bypass "$@" ;;
approve) cmd_approve "$@" ;;
deny) cmd_deny "$@" ;;
help|-h|--help) cmd_help ;;