@walwal-harness/cli 4.0.0-beta.9 → 5.0.0

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.
@@ -1,136 +0,0 @@
1
- #!/bin/bash
2
- # harness-tmux-v4.sh — v4 Agent Teams: 원커맨드 실행
3
- #
4
- # ┌──────────────┬──────────────┬──────────────┐
5
- # │ │ Dashboard │ │
6
- # │ Main Claude │ (v4 queue) │ Team Monitor│
7
- # │ (Lead) ├──────────────┤ (lifecycle) │
8
- # │ │ Prompt │ │
9
- # │ │ History │ │
10
- # └──────────────┴──────────────┴──────────────┘
11
- #
12
- # Usage:
13
- # bash scripts/harness-tmux-v4.sh # 레이아웃 + Claude 자동 실행 + team-action 자동 시작
14
- # bash scripts/harness-tmux-v4.sh --no-auto # 레이아웃만 (Claude 수동 실행)
15
- # bash scripts/harness-tmux-v4.sh --kill # 세션 종료
16
- #
17
- # 이것만 기억하세요:
18
- # bash scripts/harness-tmux-v4.sh
19
-
20
- set -euo pipefail
21
-
22
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
23
- SESSION_NAME="harness-v4"
24
-
25
- PROJECT_ROOT=""
26
- DETACH=false
27
- AUTO_START=true
28
-
29
- for arg in "$@"; do
30
- case "$arg" in
31
- --detach) DETACH=true ;;
32
- --no-auto) AUTO_START=false ;;
33
- --kill)
34
- tmux kill-session -t "$SESSION_NAME" 2>/dev/null && echo "Killed." || echo "No session."
35
- exit 0
36
- ;;
37
- *)
38
- if [ -d "$arg" ]; then PROJECT_ROOT="$arg"; fi
39
- ;;
40
- esac
41
- done
42
-
43
- if [ -z "$PROJECT_ROOT" ]; then
44
- dir="$(pwd)"
45
- while [ "$dir" != "/" ]; do
46
- if [ -d "$dir/.harness" ]; then PROJECT_ROOT="$dir"; break; fi
47
- dir="$(dirname "$dir")"
48
- done
49
- fi
50
-
51
- if [ -z "$PROJECT_ROOT" ] || [ ! -d "$PROJECT_ROOT/.harness" ]; then
52
- echo "Error: .harness/ not found."
53
- exit 1
54
- fi
55
-
56
- echo "Project: $PROJECT_ROOT"
57
- echo "Session: $SESSION_NAME"
58
-
59
- tmux kill-session -t "$SESSION_NAME" 2>/dev/null || true
60
-
61
- # ── Resolve Claude command ──
62
- HANDOFF="$PROJECT_ROOT/.harness/handoff.json"
63
- CLAUDE_CMD="claude --dangerously-skip-permissions"
64
- if [ -f "$HANDOFF" ]; then
65
- _model=$(jq -r '.model // empty' "$HANDOFF" 2>/dev/null)
66
- if [ -n "$_model" ] && [ "$_model" != "null" ]; then
67
- CLAUDE_CMD="$CLAUDE_CMD --model $_model"
68
- fi
69
- fi
70
-
71
- # ══════════════════════════════════════════
72
- # Build 3-column layout
73
- # ══════════════════════════════════════════
74
-
75
- # 1. Create session → Left pane (Main Claude Lead)
76
- PANE_MAIN=$(tmux new-session -d -s "$SESSION_NAME" -c "$PROJECT_ROOT" -x 220 -y 55 \
77
- -P -F '#{pane_id}')
78
-
79
- # 2. Split horizontally: Left 35% | Right 65%
80
- PANE_MID=$(tmux split-window -h -p 65 -t "$PANE_MAIN" -c "$PROJECT_ROOT" \
81
- -P -F '#{pane_id}')
82
-
83
- # 3. Split right section: Middle 45% | Right 55%
84
- PANE_RIGHT=$(tmux split-window -h -p 55 -t "$PANE_MID" -c "$PROJECT_ROOT" \
85
- -P -F '#{pane_id}' \
86
- "bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-monitor.sh\" \"${PROJECT_ROOT}\"'")
87
-
88
- # 4. Split middle pane vertically: Dashboard (top 45%) | Prompt History (bottom 55%)
89
- PANE_HISTORY=$(tmux split-window -v -p 55 -t "$PANE_MID" -c "$PROJECT_ROOT" \
90
- -P -F '#{pane_id}' \
91
- "bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-prompt-history.sh\" \"${PROJECT_ROOT}\"'")
92
-
93
- # 5. Start dashboard in the middle-top pane
94
- tmux send-keys -t "$PANE_MID" "bash \"${SCRIPT_DIR}/harness-dashboard-v4.sh\" \"${PROJECT_ROOT}\"" Enter
95
-
96
- # 6. Main pane — Claude 자동 실행
97
- tmux send-keys -t "$PANE_MAIN" "unset npm_config_prefix 2>/dev/null" Enter
98
- tmux send-keys -t "$PANE_MAIN" "clear" Enter
99
-
100
- if [ "$AUTO_START" = true ]; then
101
- # Claude 실행 → 시작 후 자동으로 /harness-team-action 전송
102
- tmux send-keys -t "$PANE_MAIN" "$CLAUDE_CMD" Enter
103
- # Claude가 초기화될 시간을 준 뒤 team-action 명령 전송
104
- sleep 3
105
- tmux send-keys -t "$PANE_MAIN" "/harness-team-action" Enter
106
- fi
107
-
108
- # ── Pane titles ──
109
- tmux select-pane -t "$PANE_MAIN" -T "Lead (Main Claude)"
110
- tmux select-pane -t "$PANE_MID" -T "Dashboard"
111
- tmux select-pane -t "$PANE_HISTORY" -T "Prompt History"
112
- tmux select-pane -t "$PANE_RIGHT" -T "Team Monitor"
113
-
114
- tmux set-option -t "$SESSION_NAME" pane-border-status top 2>/dev/null || true
115
- tmux set-option -t "$SESSION_NAME" pane-border-format " #{pane_title} " 2>/dev/null || true
116
-
117
- # ── Focus on Main pane ──
118
- tmux select-pane -t "$PANE_MAIN"
119
-
120
- # ── Attach ──
121
- if [ "$DETACH" = true ]; then
122
- echo ""
123
- echo "Session created. Attach: tmux attach -t $SESSION_NAME"
124
- else
125
- if [ -n "${TMUX:-}" ]; then
126
- tmux switch-client -t "$SESSION_NAME"
127
- else
128
- echo ""
129
- echo "harness-v4 starting..."
130
- echo ""
131
- echo " All automatic. Just watch."
132
- echo " Stop: bash scripts/harness-tmux-v4.sh --kill"
133
- echo ""
134
- tmux attach -t "$SESSION_NAME"
135
- fi
136
- fi
@@ -1,19 +0,0 @@
1
- ---
2
- name: harness-team-stop
3
- description: "v4 Agent Teams 중지. 실행 중인 Teammate를 모두 해산한다. 트리거: '/harness-team-stop', 'team 중지', 'agent team 멈춰', '팀 멈춰', '팀 중지'"
4
- disable-model-invocation: false
5
- ---
6
-
7
- # /harness-team-stop — Agent Teams 중지
8
-
9
- ## 실행
10
-
11
- 모든 Teammate에게 현재 작업을 마무리하고 종료하라고 메시지를 보내세요.
12
-
13
- Queue 상태는 보존되므로, `/harness-team-action`으로 다시 시작할 수 있습니다.
14
-
15
- ## 재시작
16
-
17
- ```
18
- ❯ /harness-team-action
19
- ```