@walwal-harness/cli 3.6.1 → 3.6.3
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walwal-harness/cli",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.3",
|
|
4
4
|
"description": "Production harness for AI agent engineering — Planner, Generator(BE/FE), Evaluator(Func/Visual), optional Brainstormer (requirements refinement). Supports React and Flutter FE stacks.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"walwal-harness": "bin/init.js"
|
|
@@ -156,9 +156,8 @@ render_failure_info() {
|
|
|
156
156
|
fi
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
# ──
|
|
160
|
-
|
|
161
|
-
clear
|
|
159
|
+
# ── Render to buffer, then overwrite screen in one shot ──
|
|
160
|
+
render_all() {
|
|
162
161
|
render_header
|
|
163
162
|
render_sprint_overview
|
|
164
163
|
render_build_status
|
|
@@ -175,5 +174,26 @@ while true; do
|
|
|
175
174
|
echo ""
|
|
176
175
|
|
|
177
176
|
echo -e " ${DIM}Refreshing every 2s | Ctrl+C to exit${RESET}"
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
# ── Main Loop ──
|
|
180
|
+
# Hide cursor during refresh to reduce flicker
|
|
181
|
+
tput civis 2>/dev/null # hide cursor
|
|
182
|
+
trap 'tput cnorm 2>/dev/null; exit 0' EXIT INT TERM
|
|
183
|
+
|
|
184
|
+
# Initial clear
|
|
185
|
+
clear
|
|
186
|
+
|
|
187
|
+
while true; do
|
|
188
|
+
# Capture full output into buffer
|
|
189
|
+
buf=$(render_all 2>/dev/null)
|
|
190
|
+
|
|
191
|
+
# Move cursor to top-left and overwrite (no clear = no flicker)
|
|
192
|
+
tput cup 0 0 2>/dev/null
|
|
193
|
+
echo "$buf"
|
|
194
|
+
|
|
195
|
+
# Clear any leftover lines from previous render
|
|
196
|
+
tput ed 2>/dev/null
|
|
197
|
+
|
|
178
198
|
sleep 2
|
|
179
199
|
done
|
|
@@ -215,12 +215,10 @@ while true; do
|
|
|
215
215
|
|
|
216
216
|
# Check agent status for eval-related transitions
|
|
217
217
|
if [ -f "$PROGRESS" ]; then
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
local status
|
|
221
|
-
status=$(jq -r '.agent_status // "pending"' "$PROGRESS" 2>/dev/null)
|
|
218
|
+
_agent=$(jq -r '.current_agent // "none"' "$PROGRESS" 2>/dev/null)
|
|
219
|
+
_status=$(jq -r '.agent_status // "pending"' "$PROGRESS" 2>/dev/null)
|
|
222
220
|
|
|
223
|
-
if [[ "$
|
|
221
|
+
if [[ "$_agent" == evaluator-* ]] && [ "$_status" = "running" ]; then
|
|
224
222
|
# Show that evaluator is active
|
|
225
223
|
:
|
|
226
224
|
fi
|
package/scripts/harness-tmux.sh
CHANGED
|
@@ -85,6 +85,20 @@ tmux split-window -v -t "${SESSION_NAME}.2" -c "$PROJECT_ROOT"
|
|
|
85
85
|
# Pane 3 (bottom-right): Eval Watcher
|
|
86
86
|
tmux send-keys -t "${SESSION_NAME}.3" "bash ${SCRIPT_DIR}/harness-eval-watcher.sh '${PROJECT_ROOT}' ${USE_AI}" Enter
|
|
87
87
|
|
|
88
|
+
# ── Launch Claude in Main pane ──
|
|
89
|
+
HANDOFF="$PROJECT_ROOT/.harness/handoff.json"
|
|
90
|
+
CLAUDE_CMD="claude --dangerously-skip-permissions"
|
|
91
|
+
|
|
92
|
+
# If handoff.json exists, pick up model from it
|
|
93
|
+
if [ -f "$HANDOFF" ]; then
|
|
94
|
+
_model=$(jq -r '.model // empty' "$HANDOFF" 2>/dev/null)
|
|
95
|
+
if [ -n "$_model" ] && [ "$_model" != "null" ]; then
|
|
96
|
+
CLAUDE_CMD="$CLAUDE_CMD --model $_model"
|
|
97
|
+
fi
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
tmux send-keys -t "${SESSION_NAME}.0" "$CLAUDE_CMD" Enter
|
|
101
|
+
|
|
88
102
|
# ── Layout adjustments ──
|
|
89
103
|
# Select left pane (Main) — this is where the user works
|
|
90
104
|
tmux select-pane -t "${SESSION_NAME}.0"
|