@ai-dev-methodologies/rlp-desk 0.7.4 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/scripts/lib_ralph_desk.zsh +25 -11
- package/src/scripts/run_ralph_desk.zsh +100 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-dev-methodologies/rlp-desk",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5",
|
|
4
4
|
"description": "Fresh-context iterative loops for Claude Code — autonomous task completion with independent verification",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"postinstall": "node scripts/postinstall.js",
|
|
@@ -30,9 +30,9 @@ log_error() {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
# build_claude_cmd() — centralized claude CLI command builder
|
|
33
|
-
# Single source of truth for all claude invocation flags (--
|
|
33
|
+
# Single source of truth for all claude invocation flags (--mcp-config, DISABLE_OMC, --effort, etc.)
|
|
34
34
|
# Inspired by codex-plugin-cc companion pattern: CLI abstraction in one place.
|
|
35
|
-
# Args: $1=mode (tui|print) $2=model $3=prompt_file (print mode only) $4=output_log (print mode only)
|
|
35
|
+
# Args: $1=mode (tui|print) $2=model $3=prompt_file (print mode only) $4=output_log (print mode only) $5=effort (optional: low|medium|high|max)
|
|
36
36
|
# Output: complete command string on stdout
|
|
37
37
|
# Globals read: CLAUDE_BIN
|
|
38
38
|
build_claude_cmd() {
|
|
@@ -40,8 +40,12 @@ build_claude_cmd() {
|
|
|
40
40
|
local model="$2"
|
|
41
41
|
local prompt_file="${3:-}"
|
|
42
42
|
local output_log="${4:-}"
|
|
43
|
+
local effort="${5:-}"
|
|
43
44
|
|
|
44
45
|
local base="DISABLE_OMC=1 $CLAUDE_BIN --model $model --mcp-config '{\"mcpServers\":{}}' --strict-mcp-config --dangerously-skip-permissions"
|
|
46
|
+
if [[ -n "$effort" ]]; then
|
|
47
|
+
base="$base --effort $effort"
|
|
48
|
+
fi
|
|
45
49
|
case "$mode" in
|
|
46
50
|
tui)
|
|
47
51
|
echo "$base"
|
|
@@ -57,10 +61,12 @@ build_claude_cmd() {
|
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
# parse_model_flag() — parse unified --worker-model / --verifier-model value
|
|
60
|
-
# Colon format
|
|
61
|
-
#
|
|
64
|
+
# Colon format: claude models (haiku/sonnet/opus) with effort → claude engine + effort
|
|
65
|
+
# codex models (gpt-*/spark) with reasoning → codex engine + reasoning
|
|
66
|
+
# plain name → claude engine (no effort override)
|
|
62
67
|
# Usage: parse_model_flag <value> <role>
|
|
63
|
-
# Output (stdout): "engine model [
|
|
68
|
+
# Output (stdout): "engine model [reasoning_or_effort]"
|
|
69
|
+
# e.g. "codex gpt-5.4 medium" | "claude opus max" | "claude sonnet"
|
|
64
70
|
# Returns: 0 on success, 1 on invalid format (error written to stderr)
|
|
65
71
|
parse_model_flag() {
|
|
66
72
|
local value="$1"
|
|
@@ -68,16 +74,24 @@ parse_model_flag() {
|
|
|
68
74
|
local colon_count
|
|
69
75
|
colon_count=$(printf '%s' "$value" | tr -cd ':' | wc -c | tr -d ' ')
|
|
70
76
|
if (( colon_count > 1 )); then
|
|
71
|
-
echo "ERROR: Invalid --${role}-model format '${value}'. Use 'model:
|
|
77
|
+
echo "ERROR: Invalid --${role}-model format '${value}'. Use 'model:effort' (claude) or 'model:reasoning' (codex)." >&2
|
|
72
78
|
return 1
|
|
73
79
|
fi
|
|
74
80
|
if (( colon_count == 1 )); then
|
|
75
81
|
local model="${value%%:*}"
|
|
76
|
-
local
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
local level="${value##*:}"
|
|
83
|
+
# Detect engine by model name
|
|
84
|
+
case "$model" in
|
|
85
|
+
haiku|sonnet|opus)
|
|
86
|
+
echo "claude $model $level"
|
|
87
|
+
;;
|
|
88
|
+
spark)
|
|
89
|
+
echo "codex gpt-5.3-codex-spark $level"
|
|
90
|
+
;;
|
|
91
|
+
*)
|
|
92
|
+
echo "codex $model $level"
|
|
93
|
+
;;
|
|
94
|
+
esac
|
|
81
95
|
else
|
|
82
96
|
echo "claude $value"
|
|
83
97
|
fi
|
|
@@ -57,20 +57,34 @@ MAX_RESTARTS="${MAX_RESTARTS:-3}"
|
|
|
57
57
|
IDLE_NUDGE_THRESHOLD="${IDLE_NUDGE_THRESHOLD:-30}"
|
|
58
58
|
MAX_NUDGES="${MAX_NUDGES:-3}"
|
|
59
59
|
WITH_SELF_VERIFICATION="${WITH_SELF_VERIFICATION:-0}"
|
|
60
|
+
AUTONOMOUS_MODE="${AUTONOMOUS_MODE:-0}" # 1=don't stop on ambiguity, PRD is authoritative
|
|
60
61
|
|
|
61
|
-
# --- Engine Selection (auto-detect from model format
|
|
62
|
-
#
|
|
62
|
+
# --- Engine Selection (auto-detect from model format) ---
|
|
63
|
+
# claude models (haiku/sonnet/opus) with :effort → claude engine + effort
|
|
64
|
+
# codex models (gpt-*/spark) with :reasoning → codex engine + reasoning
|
|
65
|
+
# plain name → claude engine (no effort/reasoning)
|
|
63
66
|
_auto_detect_engine() {
|
|
64
|
-
local model_var="$1" engine_var="$2" codex_model_var="$3" codex_reasoning_var="$4"
|
|
67
|
+
local model_var="$1" engine_var="$2" codex_model_var="$3" codex_reasoning_var="$4" effort_var="${5:-}"
|
|
65
68
|
local model_val="${(P)model_var}"
|
|
66
69
|
if [[ "$model_val" == *:* ]]; then
|
|
67
70
|
local model_part="${model_val%%:*}"
|
|
68
|
-
local
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
local level_part="${model_val##*:}"
|
|
72
|
+
case "$model_part" in
|
|
73
|
+
haiku|sonnet|opus)
|
|
74
|
+
# Claude model with effort — keep engine as claude, store effort
|
|
75
|
+
eval "$engine_var=claude"
|
|
76
|
+
eval "$model_var=$model_part"
|
|
77
|
+
[[ -n "$effort_var" ]] && eval "$effort_var=$level_part"
|
|
78
|
+
;;
|
|
79
|
+
*)
|
|
80
|
+
# Codex model with reasoning
|
|
81
|
+
[[ "$model_part" == "spark" ]] && model_part="gpt-5.3-codex-spark"
|
|
82
|
+
eval "$engine_var=codex"
|
|
83
|
+
eval "$model_var=$model_part"
|
|
84
|
+
[[ -n "$codex_model_var" ]] && eval "$codex_model_var=$model_part"
|
|
85
|
+
[[ -n "$codex_reasoning_var" ]] && eval "$codex_reasoning_var=$level_part"
|
|
86
|
+
;;
|
|
87
|
+
esac
|
|
74
88
|
fi
|
|
75
89
|
}
|
|
76
90
|
|
|
@@ -78,10 +92,15 @@ WORKER_ENGINE="${WORKER_ENGINE:-claude}"
|
|
|
78
92
|
VERIFIER_ENGINE="${VERIFIER_ENGINE:-claude}"
|
|
79
93
|
FINAL_VERIFIER_ENGINE="${FINAL_VERIFIER_ENGINE:-claude}"
|
|
80
94
|
|
|
95
|
+
# Effort levels for Claude models (set by _auto_detect_engine or CLI --worker-model opus:max)
|
|
96
|
+
WORKER_EFFORT="${WORKER_EFFORT:-}"
|
|
97
|
+
VERIFIER_EFFORT="${VERIFIER_EFFORT:-}"
|
|
98
|
+
FINAL_VERIFIER_EFFORT="${FINAL_VERIFIER_EFFORT:-}"
|
|
99
|
+
|
|
81
100
|
# Auto-detect engine from model format for env var path (CLI path uses parse_model_flag)
|
|
82
|
-
_auto_detect_engine WORKER_MODEL WORKER_ENGINE WORKER_CODEX_MODEL WORKER_CODEX_REASONING
|
|
83
|
-
_auto_detect_engine VERIFIER_MODEL VERIFIER_ENGINE VERIFIER_CODEX_MODEL VERIFIER_CODEX_REASONING
|
|
84
|
-
_auto_detect_engine FINAL_VERIFIER_MODEL FINAL_VERIFIER_ENGINE "" ""
|
|
101
|
+
_auto_detect_engine WORKER_MODEL WORKER_ENGINE WORKER_CODEX_MODEL WORKER_CODEX_REASONING WORKER_EFFORT
|
|
102
|
+
_auto_detect_engine VERIFIER_MODEL VERIFIER_ENGINE VERIFIER_CODEX_MODEL VERIFIER_CODEX_REASONING VERIFIER_EFFORT
|
|
103
|
+
_auto_detect_engine FINAL_VERIFIER_MODEL FINAL_VERIFIER_ENGINE "" "" FINAL_VERIFIER_EFFORT
|
|
85
104
|
WORKER_CODEX_MODEL="${WORKER_CODEX_MODEL:-gpt-5.4}"
|
|
86
105
|
WORKER_CODEX_REASONING="${WORKER_CODEX_REASONING:-high}" # low|medium|high
|
|
87
106
|
VERIFIER_CODEX_MODEL="${VERIFIER_CODEX_MODEL:-gpt-5.4}"
|
|
@@ -697,7 +716,8 @@ create_session() {
|
|
|
697
716
|
"max_nudges": '"$MAX_NUDGES"',
|
|
698
717
|
"cb_threshold": '"$CB_THRESHOLD"',
|
|
699
718
|
"effective_cb_threshold": '"$EFFECTIVE_CB_THRESHOLD"',
|
|
700
|
-
"with_self_verification": '"$WITH_SELF_VERIFICATION"'
|
|
719
|
+
"with_self_verification": '"$WITH_SELF_VERIFICATION"',
|
|
720
|
+
"autonomous_mode": '"$AUTONOMOUS_MODE"'
|
|
701
721
|
}
|
|
702
722
|
}' | atomic_write "$SESSION_CONFIG"
|
|
703
723
|
|
|
@@ -1023,7 +1043,7 @@ restart_worker() {
|
|
|
1023
1043
|
if [[ "$WORKER_ENGINE" = "codex" ]]; then
|
|
1024
1044
|
safe_send_keys "$pane_id" "${CODEX_BIN:-codex} -m $WORKER_CODEX_MODEL -c model_reasoning_effort=\"$WORKER_CODEX_REASONING\" --disable plugins --dangerously-bypass-approvals-and-sandbox"
|
|
1025
1045
|
else
|
|
1026
|
-
safe_send_keys "$pane_id" "$(build_claude_cmd tui "$WORKER_MODEL")"
|
|
1046
|
+
safe_send_keys "$pane_id" "$(build_claude_cmd tui "$WORKER_MODEL" "" "" "$WORKER_EFFORT")"
|
|
1027
1047
|
fi
|
|
1028
1048
|
WORKER_RESTARTS[$iter]=$((restart_count + 1))
|
|
1029
1049
|
return 0
|
|
@@ -1153,6 +1173,19 @@ write_worker_trigger() {
|
|
|
1153
1173
|
echo "- Do NOT signal verify after individual stories"
|
|
1154
1174
|
fi
|
|
1155
1175
|
fi
|
|
1176
|
+
|
|
1177
|
+
# Autonomous mode: don't stop on ambiguity, PRD is authoritative
|
|
1178
|
+
if (( AUTONOMOUS_MODE )); then
|
|
1179
|
+
echo ""
|
|
1180
|
+
echo "---"
|
|
1181
|
+
echo "## AUTONOMOUS MODE"
|
|
1182
|
+
echo "Do NOT stop or ask questions when encountering ambiguity or document conflicts."
|
|
1183
|
+
echo "**Resolution priority**: PRD > test-spec > context > memory"
|
|
1184
|
+
echo "If documents disagree, follow PRD and proceed. Log any conflict you find by"
|
|
1185
|
+
echo "appending to \`$LOGS_DIR/conflict-log.jsonl\` in format:"
|
|
1186
|
+
echo ' {"iteration":N,"us_id":"US-NNN","source_a":"prd","source_b":"test-spec","conflict":"description","resolution":"followed PRD"}'
|
|
1187
|
+
echo "Do NOT wait for human input. Keep working."
|
|
1188
|
+
fi
|
|
1156
1189
|
} | atomic_write "$prompt_file"
|
|
1157
1190
|
|
|
1158
1191
|
# Write trigger script (DO NOT use exec -- breaks heartbeat cleanup)
|
|
@@ -1166,7 +1199,7 @@ write_worker_trigger() {
|
|
|
1166
1199
|
local engine_comment="# Run codex with fresh context (fallback trigger — TUI primary launch via launch_worker_codex)"
|
|
1167
1200
|
else
|
|
1168
1201
|
local engine_cmd
|
|
1169
|
-
engine_cmd=$(build_claude_cmd print "$WORKER_MODEL" "$prompt_file" "$output_log")
|
|
1202
|
+
engine_cmd=$(build_claude_cmd print "$WORKER_MODEL" "$prompt_file" "$output_log" "$WORKER_EFFORT")
|
|
1170
1203
|
local engine_comment="# Run claude with fresh context, no MCP/skills (governance.md s7 step 5)"
|
|
1171
1204
|
fi
|
|
1172
1205
|
|
|
@@ -1239,6 +1272,19 @@ write_verifier_trigger() {
|
|
|
1239
1272
|
echo "- **Note**: Skip re-verifying the above US. Focus on unverified stories."
|
|
1240
1273
|
fi
|
|
1241
1274
|
fi
|
|
1275
|
+
|
|
1276
|
+
# Autonomous mode: don't stop on ambiguity, PRD is authoritative
|
|
1277
|
+
if (( AUTONOMOUS_MODE )); then
|
|
1278
|
+
echo ""
|
|
1279
|
+
echo "---"
|
|
1280
|
+
echo "## AUTONOMOUS MODE"
|
|
1281
|
+
echo "Do NOT stop or ask questions when encountering ambiguity or document conflicts."
|
|
1282
|
+
echo "**Resolution priority**: PRD > test-spec > context > memory"
|
|
1283
|
+
echo "If documents disagree, follow PRD and proceed. Log any conflict by"
|
|
1284
|
+
echo "appending to \`$LOGS_DIR/conflict-log.jsonl\` in format:"
|
|
1285
|
+
echo ' {"iteration":N,"us_id":"US-NNN","source_a":"prd","source_b":"test-spec","conflict":"description","resolution":"followed PRD"}'
|
|
1286
|
+
echo "Do NOT wait for human input. Keep verifying."
|
|
1287
|
+
fi
|
|
1242
1288
|
} | atomic_write "$prompt_file"
|
|
1243
1289
|
|
|
1244
1290
|
# Write trigger script (DO NOT use exec -- breaks heartbeat cleanup)
|
|
@@ -1248,11 +1294,11 @@ write_verifier_trigger() {
|
|
|
1248
1294
|
-c model_reasoning_effort=\"$VERIFIER_CODEX_REASONING\" \\
|
|
1249
1295
|
--disable plugins --dangerously-bypass-approvals-and-sandbox \\
|
|
1250
1296
|
\"\$(cat $prompt_file)\" \\
|
|
1251
|
-
|
|
1252
|
-
local engine_comment="# Run codex with fresh context (governance.md s7 step 7)"
|
|
1297
|
+
> >(tee $output_log) 2>&1"
|
|
1298
|
+
local engine_comment="# Run codex with fresh context (governance.md s7 step 7) — process substitution preserves tty"
|
|
1253
1299
|
else
|
|
1254
1300
|
local engine_cmd
|
|
1255
|
-
engine_cmd=$(build_claude_cmd print "$verifier_model" "$prompt_file" "$output_log")
|
|
1301
|
+
engine_cmd=$(build_claude_cmd print "$verifier_model" "$prompt_file" "$output_log" "$VERIFIER_EFFORT")
|
|
1256
1302
|
local engine_comment="# Run claude with fresh context, no MCP/skills (governance.md s7 step 7)"
|
|
1257
1303
|
fi
|
|
1258
1304
|
|
|
@@ -1656,7 +1702,7 @@ run_single_verifier() {
|
|
|
1656
1702
|
launch_verifier_codex "$VERIFIER_PANE" "$prompt_file" "$iter" "$verifier_launch"
|
|
1657
1703
|
log_debug "Verifier$suffix codex TUI dispatched"
|
|
1658
1704
|
else
|
|
1659
|
-
verifier_launch="$(build_claude_cmd tui "$model")"
|
|
1705
|
+
verifier_launch="$(build_claude_cmd tui "$model" "" "" "$VERIFIER_EFFORT")"
|
|
1660
1706
|
if ! launch_verifier_claude "$VERIFIER_PANE" "$prompt_file" "$iter" "$verifier_launch"; then
|
|
1661
1707
|
log_error "Verifier$suffix failed to start"
|
|
1662
1708
|
return 1
|
|
@@ -1666,20 +1712,37 @@ run_single_verifier() {
|
|
|
1666
1712
|
|
|
1667
1713
|
# Poll for verdict
|
|
1668
1714
|
if [[ "$engine" = "codex" ]]; then
|
|
1669
|
-
# Codex exec:
|
|
1715
|
+
# Codex exec: file poll + wait for process exit to avoid reading partial results
|
|
1670
1716
|
log " Polling for verify-verdict.json ($suffix, codex TUI)..."
|
|
1671
1717
|
local codex_poll_start
|
|
1672
1718
|
codex_poll_start=$(date +%s)
|
|
1719
|
+
local _verdict_detected=0
|
|
1673
1720
|
while true; do
|
|
1674
|
-
|
|
1675
|
-
|
|
1721
|
+
# Phase 1: wait for verdict file
|
|
1722
|
+
if (( ! _verdict_detected )) && [[ -f "$VERDICT_FILE" ]]; then
|
|
1676
1723
|
if jq . "$VERDICT_FILE" >/dev/null 2>&1; then
|
|
1677
|
-
log " Verdict file detected
|
|
1678
|
-
|
|
1724
|
+
log " Verdict file detected, waiting for codex process to finish..."
|
|
1725
|
+
_verdict_detected=1
|
|
1726
|
+
fi
|
|
1727
|
+
fi
|
|
1728
|
+
# Phase 2: verdict exists, wait for codex to exit (pane returns to shell)
|
|
1729
|
+
if (( _verdict_detected )); then
|
|
1730
|
+
local _pane_cmd
|
|
1731
|
+
_pane_cmd=$(tmux display-message -p -t "$VERIFIER_PANE" '#{pane_current_command}' 2>/dev/null || echo "")
|
|
1732
|
+
if [[ "$_pane_cmd" = "zsh" || "$_pane_cmd" = "bash" || -z "$_pane_cmd" ]]; then
|
|
1733
|
+
log " Codex verifier$suffix process exited. Proceeding."
|
|
1734
|
+
# Re-read verdict in case codex updated it before exiting
|
|
1735
|
+
if jq . "$VERDICT_FILE" >/dev/null 2>&1; then
|
|
1736
|
+
break
|
|
1737
|
+
fi
|
|
1679
1738
|
fi
|
|
1680
1739
|
fi
|
|
1681
1740
|
local codex_elapsed=$(( $(date +%s) - codex_poll_start ))
|
|
1682
1741
|
if (( codex_elapsed >= ITER_TIMEOUT )); then
|
|
1742
|
+
if (( _verdict_detected )); then
|
|
1743
|
+
log " Codex verifier$suffix timed out waiting for exit, but verdict exists. Proceeding."
|
|
1744
|
+
break
|
|
1745
|
+
fi
|
|
1683
1746
|
log_error "Codex verifier$suffix timed out after ${ITER_TIMEOUT}s"
|
|
1684
1747
|
return 1
|
|
1685
1748
|
fi
|
|
@@ -1741,7 +1804,7 @@ run_sequential_final_verify() {
|
|
|
1741
1804
|
verifier_launch="${CODEX_BIN:-codex} -m $VERIFIER_CODEX_MODEL -c model_reasoning_effort=\"$VERIFIER_CODEX_REASONING\" --disable plugins --dangerously-bypass-approvals-and-sandbox"
|
|
1742
1805
|
launch_verifier_codex "$VERIFIER_PANE" "$verifier_prompt" "$iter" "$verifier_launch"
|
|
1743
1806
|
else
|
|
1744
|
-
verifier_launch="$(build_claude_cmd tui "$VERIFIER_MODEL")"
|
|
1807
|
+
verifier_launch="$(build_claude_cmd tui "$VERIFIER_MODEL" "" "" "$VERIFIER_EFFORT")"
|
|
1745
1808
|
launch_verifier_claude "$VERIFIER_PANE" "$verifier_prompt" "$iter" "$verifier_launch" || {
|
|
1746
1809
|
log_error "Failed to launch verifier for $us"
|
|
1747
1810
|
FAILED_US="$us"
|
|
@@ -1752,7 +1815,7 @@ run_sequential_final_verify() {
|
|
|
1752
1815
|
# Poll for verdict
|
|
1753
1816
|
rm -f "$VERDICT_FILE"
|
|
1754
1817
|
local poll_rc=0
|
|
1755
|
-
poll_for_signal "$VERDICT_FILE" "$
|
|
1818
|
+
poll_for_signal "$VERDICT_FILE" "$VERIFIER_HEARTBEAT" "$VERIFIER_PANE" "$verifier_launch" "Verifier-final" || poll_rc=$?
|
|
1756
1819
|
if (( poll_rc != 0 )); then
|
|
1757
1820
|
log_error "Verifier poll failed for $us (rc=$poll_rc)"
|
|
1758
1821
|
FAILED_US="$us"
|
|
@@ -2186,7 +2249,7 @@ main() {
|
|
|
2186
2249
|
return 1
|
|
2187
2250
|
fi
|
|
2188
2251
|
else
|
|
2189
|
-
worker_launch="$(build_claude_cmd tui "$WORKER_MODEL")"
|
|
2252
|
+
worker_launch="$(build_claude_cmd tui "$WORKER_MODEL" "" "" "$WORKER_EFFORT")"
|
|
2190
2253
|
if ! launch_worker_claude "$WORKER_PANE" "$worker_prompt" "$ITERATION" "$worker_launch"; then
|
|
2191
2254
|
write_blocked_sentinel "Worker claude failed to start in pane"
|
|
2192
2255
|
update_status "blocked" "worker_start_failed"
|
|
@@ -2363,7 +2426,7 @@ main() {
|
|
|
2363
2426
|
if [[ "$VERIFIER_ENGINE" = "codex" ]]; then
|
|
2364
2427
|
verifier_launch="${CODEX_BIN:-codex} -m $VERIFIER_CODEX_MODEL -c model_reasoning_effort=\"$VERIFIER_CODEX_REASONING\" --disable plugins --dangerously-bypass-approvals-and-sandbox"
|
|
2365
2428
|
else
|
|
2366
|
-
verifier_launch="$(build_claude_cmd tui "$VERIFIER_MODEL")"
|
|
2429
|
+
verifier_launch="$(build_claude_cmd tui "$VERIFIER_MODEL" "" "" "$VERIFIER_EFFORT")"
|
|
2367
2430
|
fi
|
|
2368
2431
|
log_debug "[FLOW] iter=$ITERATION phase=verifier engine=$VERIFIER_ENGINE model=$VERIFIER_MODEL scope=${signal_us_id:-all} dispatched=true"
|
|
2369
2432
|
|
|
@@ -2610,6 +2673,8 @@ while (( _cli_i <= $# )); do
|
|
|
2610
2673
|
if [[ "$WORKER_ENGINE" = "codex" ]]; then
|
|
2611
2674
|
WORKER_CODEX_MODEL="$WORKER_MODEL"
|
|
2612
2675
|
WORKER_CODEX_REASONING="${_cli_rest##* }"
|
|
2676
|
+
elif [[ "$_cli_rest" == *" "* ]]; then
|
|
2677
|
+
WORKER_EFFORT="${_cli_rest##* }"
|
|
2613
2678
|
fi
|
|
2614
2679
|
;;
|
|
2615
2680
|
--verifier-model)
|
|
@@ -2621,11 +2686,16 @@ while (( _cli_i <= $# )); do
|
|
|
2621
2686
|
if [[ "$VERIFIER_ENGINE" = "codex" ]]; then
|
|
2622
2687
|
VERIFIER_CODEX_MODEL="$VERIFIER_MODEL"
|
|
2623
2688
|
VERIFIER_CODEX_REASONING="${_cli_rest##* }"
|
|
2689
|
+
elif [[ "$_cli_rest" == *" "* ]]; then
|
|
2690
|
+
VERIFIER_EFFORT="${_cli_rest##* }"
|
|
2624
2691
|
fi
|
|
2625
2692
|
;;
|
|
2626
2693
|
--lock-worker-model)
|
|
2627
2694
|
LOCK_WORKER_MODEL=1
|
|
2628
2695
|
;;
|
|
2696
|
+
--autonomous)
|
|
2697
|
+
AUTONOMOUS_MODE=1
|
|
2698
|
+
;;
|
|
2629
2699
|
--final-verifier-model)
|
|
2630
2700
|
(( _cli_i++ ))
|
|
2631
2701
|
_cli_parsed=$(parse_model_flag "${@[$_cli_i]:-}" "final-verifier") || exit 1
|
|
@@ -2635,6 +2705,8 @@ while (( _cli_i <= $# )); do
|
|
|
2635
2705
|
if [[ "$FINAL_VERIFIER_ENGINE" = "codex" ]]; then
|
|
2636
2706
|
FINAL_VERIFIER_CODEX_MODEL="$FINAL_VERIFIER_MODEL"
|
|
2637
2707
|
FINAL_VERIFIER_CODEX_REASONING="${_cli_rest##* }"
|
|
2708
|
+
elif [[ "$_cli_rest" == *" "* ]]; then
|
|
2709
|
+
FINAL_VERIFIER_EFFORT="${_cli_rest##* }"
|
|
2638
2710
|
fi
|
|
2639
2711
|
;;
|
|
2640
2712
|
--consensus)
|