frontends: update to spec file; remove individual session file reads
tui/session: IsIdle reads spec and parses state= key. scripts/s/sh, sh.rc: add spec_get helper; is_idle, /cwd, /model, /agent, /backend read via spec_get; writes go to spec as key=value. el/ellie.el: ellie--state reads spec with string-match on state=. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
908db7fbdd
commit
127e518dae
22
scripts/s/sh
22
scripts/s/sh
|
|
@ -25,8 +25,12 @@ fn die {
|
|||
echo $* >[1=2]
|
||||
exit 1
|
||||
}
|
||||
fn spec_get {
|
||||
awk -F= -v k=$1 '$1==k{gsub(/^[ \t]+|[ \t]+$/,"",$2); print $2; exit}' $S/spec >[2]/dev/null
|
||||
}
|
||||
|
||||
fn is_idle {
|
||||
state=`{cat $S/state >[2]/dev/null | tr -d '[:space:]'}
|
||||
state=`{spec_get state}
|
||||
test $state = idle
|
||||
}
|
||||
|
||||
|
|
@ -208,26 +212,26 @@ while(true) {
|
|||
case /clear
|
||||
echo clear > $S/ctl
|
||||
case /cwd
|
||||
cat $S/cwd >[2]/dev/null
|
||||
spec_get cwd
|
||||
echo
|
||||
case '/cwd *'
|
||||
newcwd=`{printf '%s\n' $"input | sed 's,^/cwd ,,'}
|
||||
printf 'cwd %s\n' $newcwd > $S/ctl
|
||||
printf 'cwd=%s\n' $newcwd > $S/spec
|
||||
case /agent
|
||||
cat $S/agent >[2]/dev/null
|
||||
spec_get agent
|
||||
echo
|
||||
case '/agent *'
|
||||
printf '%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/agent
|
||||
printf 'agent=%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/spec
|
||||
case /model
|
||||
cat $S/model >[2]/dev/null
|
||||
spec_get model
|
||||
echo
|
||||
case '/model *'
|
||||
printf '%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/model
|
||||
printf 'model=%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/spec
|
||||
case /backend
|
||||
cat $S/backend >[2]/dev/null
|
||||
spec_get backend
|
||||
echo
|
||||
case '/backend *'
|
||||
printf '%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/backend
|
||||
printf 'backend=%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/spec
|
||||
case /models
|
||||
cat $S/models >[2]/dev/null
|
||||
case /backends
|
||||
|
|
|
|||
|
|
@ -25,8 +25,12 @@ fn die {
|
|||
echo $* >[1=2]
|
||||
exit 1
|
||||
}
|
||||
fn spec_get {
|
||||
awk -F= -v k=$1 '$1==k{gsub(/^[ \t]+|[ \t]+$/,"",$2); print $2; exit}' $S/spec >[2]/dev/null
|
||||
}
|
||||
|
||||
fn is_idle {
|
||||
state=`{cat $S/state >[2]/dev/null | tr -d '[:space:]'}
|
||||
state=`{spec_get state}
|
||||
test $state = idle
|
||||
}
|
||||
|
||||
|
|
@ -208,26 +212,26 @@ while(true) {
|
|||
case /clear
|
||||
echo clear > $S/ctl
|
||||
case /cwd
|
||||
cat $S/cwd >[2]/dev/null
|
||||
spec_get cwd
|
||||
echo
|
||||
case '/cwd *'
|
||||
newcwd=`{printf '%s\n' $"input | sed 's,^/cwd ,,'}
|
||||
printf 'cwd %s\n' $newcwd > $S/ctl
|
||||
printf 'cwd=%s\n' $newcwd > $S/spec
|
||||
case /agent
|
||||
cat $S/agent >[2]/dev/null
|
||||
spec_get agent
|
||||
echo
|
||||
case '/agent *'
|
||||
printf '%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/agent
|
||||
printf 'agent=%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/spec
|
||||
case /model
|
||||
cat $S/model >[2]/dev/null
|
||||
spec_get model
|
||||
echo
|
||||
case '/model *'
|
||||
printf '%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/model
|
||||
printf 'model=%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/spec
|
||||
case /backend
|
||||
cat $S/backend >[2]/dev/null
|
||||
spec_get backend
|
||||
echo
|
||||
case '/backend *'
|
||||
printf '%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/backend
|
||||
printf 'backend=%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/spec
|
||||
case /models
|
||||
cat $S/models >[2]/dev/null
|
||||
case /backends
|
||||
|
|
|
|||
Loading…
Reference in New Issue