#!/data/data/com.termux/files/usr/bin/bash # Codex 订阅引擎(dsh 的替代)。用法:run-codex.sh "prompt" # 认证:手机上 `codex login --device-auth`(ChatGPT 订阅),token 落在 ~/.codex/auth.json,不进 git。 # stdout=最终答案(codex exec 的进度走 stderr),与 dsh headless 同形,调用方不用改解析。 # 本机无 bwrap/Landlock:admin 与 dsh 一致免沙箱;member/chat 是陌生人/抓取内容=不可信输入, # 用 read-only 沙箱 + 无网络(ponytail: codex 无「零工具」开关,read-only 仍能读文件;上限=可读到手机上的文件, # 若在意就保持 member 走 dsh no-tools)。 set -euo pipefail export PREFIX="${PREFIX:-/data/data/com.termux/files/usr}" export HOME="${HOME:-/data/data/com.termux/files/home}" export PATH="$PREFIX/bin:$PATH" export TMPDIR="$PREFIX/tmp"; mkdir -p "$TMPDIR" MODE="$1"; P="$2" case "$MODE" in admin) exec codex exec --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox "$P" ;; member) SOUL="$HOME/pixelphone/SOUL.md" [ -r "$SOUL" ] && P="$(cat "$SOUL") $P" exec codex exec --skip-git-repo-check --sandbox read-only "$P" ;; chat) exec codex exec --skip-git-repo-check --sandbox read-only "$P" ;; *) echo "mode must be admin|member|chat" >&2; exit 2 ;; esac