@walwal-harness/cli 5.7.2 → 5.7.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 +1 -1
- package/scripts/harness-tmux.sh +30 -25
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walwal-harness/cli",
|
|
3
|
-
"version": "5.7.
|
|
3
|
+
"version": "5.7.3",
|
|
4
4
|
"description": "Production harness for AI agent engineering — Solo/Team mode, Planner, Generator(BE/FE), Evaluator chain (Code-Quality → Functional → Visual), optional Brainstormer. Supports React, Next.js, and Flutter FE stacks.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"walwal-harness": "bin/init.js"
|
package/scripts/harness-tmux.sh
CHANGED
|
@@ -142,6 +142,10 @@ APPLESCRIPT
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
launch_iterm2_solo() {
|
|
145
|
+
# Solo 레이아웃 (Team 모드와 동일 구조, 우측만 단일 Monitor 패널):
|
|
146
|
+
# Left col : Dashboard (top) + Prompt History (bottom)
|
|
147
|
+
# Middle : Gotcha · Memory · Conventions
|
|
148
|
+
# Right : Monitor (lifecycle stream, 단일 에이전트)
|
|
145
149
|
osascript <<APPLESCRIPT
|
|
146
150
|
tell application "iTerm2"
|
|
147
151
|
activate
|
|
@@ -153,22 +157,22 @@ launch_iterm2_solo() {
|
|
|
153
157
|
set name to "harness-studio"
|
|
154
158
|
write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-dashboard.sh' '${PROJECT_ROOT}'"
|
|
155
159
|
|
|
156
|
-
-- Split
|
|
157
|
-
set
|
|
158
|
-
tell
|
|
159
|
-
write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-
|
|
160
|
-
|
|
161
|
-
-- Split right → Agent Session
|
|
162
|
-
set agentPane to (split vertically with default profile)
|
|
163
|
-
tell agentPane
|
|
164
|
-
write text "cd '${PROJECT_ROOT}' && clear"
|
|
165
|
-
end tell
|
|
160
|
+
-- Split down (bottom of Dashboard column) → Prompt History
|
|
161
|
+
set archivePane to (split horizontally with default profile)
|
|
162
|
+
tell archivePane
|
|
163
|
+
write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-prompt-history.sh' '${PROJECT_ROOT}'"
|
|
166
164
|
end tell
|
|
167
165
|
|
|
168
|
-
-- Split
|
|
169
|
-
set
|
|
170
|
-
tell
|
|
171
|
-
write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-
|
|
166
|
+
-- Split right → Gotcha · Memory · Conventions
|
|
167
|
+
set dashPane to (split vertically with default profile)
|
|
168
|
+
tell dashPane
|
|
169
|
+
write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-gotcha-memory.sh' '${PROJECT_ROOT}'"
|
|
170
|
+
|
|
171
|
+
-- Split right → Monitor (solo 단일 에이전트 라이프사이클)
|
|
172
|
+
set monPane to (split vertically with default profile)
|
|
173
|
+
tell monPane
|
|
174
|
+
write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-monitor.sh' '${PROJECT_ROOT}'"
|
|
175
|
+
end tell
|
|
172
176
|
end tell
|
|
173
177
|
end tell
|
|
174
178
|
end tell
|
|
@@ -210,23 +214,24 @@ launch_tmux_team() {
|
|
|
210
214
|
}
|
|
211
215
|
|
|
212
216
|
launch_tmux_solo() {
|
|
217
|
+
# Solo 레이아웃 (Team 모드와 동일 구조, 우측만 단일 Monitor 패널).
|
|
213
218
|
tmux kill-session -t "$SESSION_NAME" 2>/dev/null || true
|
|
214
219
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
PANE_MONITOR=$(tmux split-window -h -p
|
|
220
|
+
PANE_DASH=$(tmux new-session -d -s "$SESSION_NAME" -c "$PROJECT_ROOT" -x 200 -y 50 -P -F '#{pane_id}')
|
|
221
|
+
PANE_GOTCHA=$(tmux split-window -h -p 70 -t "$PANE_DASH" -c "$PROJECT_ROOT" -P -F '#{pane_id}')
|
|
222
|
+
PANE_MONITOR=$(tmux split-window -h -p 50 -t "$PANE_GOTCHA" -c "$PROJECT_ROOT" -P -F '#{pane_id}' \
|
|
218
223
|
"bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-monitor.sh\" \"${PROJECT_ROOT}\"'")
|
|
219
|
-
PANE_HISTORY=$(tmux split-window -v -p
|
|
224
|
+
PANE_HISTORY=$(tmux split-window -v -p 35 -t "$PANE_DASH" -c "$PROJECT_ROOT" -P -F '#{pane_id}' \
|
|
220
225
|
"bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-prompt-history.sh\" \"${PROJECT_ROOT}\"'")
|
|
221
|
-
PANE_AGENT=$(tmux split-window -v -p 85 -t "$PANE_MONITOR" -c "$PROJECT_ROOT" -P -F '#{pane_id}')
|
|
222
226
|
|
|
223
|
-
tmux send-keys -t "$
|
|
227
|
+
tmux send-keys -t "$PANE_DASH" "bash \"${SCRIPT_DIR}/harness-dashboard.sh\" \"${PROJECT_ROOT}\"" Enter
|
|
228
|
+
tmux send-keys -t "$PANE_GOTCHA" "bash \"${SCRIPT_DIR}/harness-gotcha-memory.sh\" \"${PROJECT_ROOT}\"" Enter
|
|
224
229
|
|
|
225
|
-
tmux select-pane -t "$
|
|
226
|
-
tmux select-pane -t "$
|
|
227
|
-
tmux select-pane -t "$
|
|
228
|
-
tmux select-pane -t "$
|
|
229
|
-
tmux select-pane -t "$
|
|
230
|
+
tmux select-pane -t "$PANE_DASH" -T "Dashboard"
|
|
231
|
+
tmux select-pane -t "$PANE_HISTORY" -T "Prompt History"
|
|
232
|
+
tmux select-pane -t "$PANE_GOTCHA" -T "Gotcha · Memory · Conventions"
|
|
233
|
+
tmux select-pane -t "$PANE_MONITOR" -T "Monitor"
|
|
234
|
+
tmux select-pane -t "$PANE_DASH"
|
|
230
235
|
|
|
231
236
|
tmux set-option -t "$SESSION_NAME" pane-border-status top 2>/dev/null || true
|
|
232
237
|
tmux set-option -t "$SESSION_NAME" pane-border-format " #{pane_title} " 2>/dev/null || true
|