@claude-flow/cli 3.0.0-alpha.36 → 3.0.0-alpha.38
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/.claude/helpers/README.md +97 -0
- package/.claude/helpers/adr-compliance.sh +186 -0
- package/.claude/helpers/auto-commit.sh +178 -0
- package/.claude/helpers/checkpoint-manager.sh +251 -0
- package/.claude/helpers/daemon-manager.sh +252 -0
- package/.claude/helpers/ddd-tracker.sh +144 -0
- package/.claude/helpers/github-safe.js +106 -0
- package/.claude/helpers/github-setup.sh +28 -0
- package/.claude/helpers/guidance-hook.sh +13 -0
- package/.claude/helpers/guidance-hooks.sh +102 -0
- package/.claude/helpers/health-monitor.sh +108 -0
- package/.claude/helpers/learning-hooks.sh +329 -0
- package/.claude/helpers/learning-optimizer.sh +127 -0
- package/.claude/helpers/learning-service.mjs +1144 -0
- package/.claude/helpers/metrics-db.mjs +488 -0
- package/.claude/helpers/pattern-consolidator.sh +86 -0
- package/.claude/helpers/perf-worker.sh +160 -0
- package/.claude/helpers/quick-start.sh +19 -0
- package/.claude/helpers/security-scanner.sh +127 -0
- package/.claude/helpers/setup-mcp.sh +18 -0
- package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
- package/.claude/helpers/swarm-comms.sh +353 -0
- package/.claude/helpers/swarm-hooks.sh +761 -0
- package/.claude/helpers/swarm-monitor.sh +211 -0
- package/.claude/helpers/sync-v3-metrics.sh +245 -0
- package/.claude/helpers/update-v3-progress.sh +166 -0
- package/.claude/helpers/v3-quick-status.sh +58 -0
- package/.claude/helpers/v3.sh +111 -0
- package/.claude/helpers/validate-v3-config.sh +216 -0
- package/.claude/helpers/worker-manager.sh +170 -0
- package/dist/src/init/mcp-generator.js +2 -2
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/types.js +2 -2
- package/dist/src/init/types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Claude Flow V3 - Real-time Swarm Activity Monitor
|
|
3
|
+
# Continuously monitors and updates metrics based on running processes
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
7
|
+
METRICS_DIR="$PROJECT_ROOT/.claude-flow/metrics"
|
|
8
|
+
UPDATE_SCRIPT="$SCRIPT_DIR/update-v3-progress.sh"
|
|
9
|
+
|
|
10
|
+
# Ensure metrics directory exists
|
|
11
|
+
mkdir -p "$METRICS_DIR"
|
|
12
|
+
|
|
13
|
+
# Colors for logging
|
|
14
|
+
GREEN='\033[0;32m'
|
|
15
|
+
YELLOW='\033[1;33m'
|
|
16
|
+
CYAN='\033[0;36m'
|
|
17
|
+
RED='\033[0;31m'
|
|
18
|
+
RESET='\033[0m'
|
|
19
|
+
|
|
20
|
+
log() {
|
|
21
|
+
echo -e "${CYAN}[$(date '+%H:%M:%S')] ${1}${RESET}"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
warn() {
|
|
25
|
+
echo -e "${YELLOW}[$(date '+%H:%M:%S')] WARNING: ${1}${RESET}"
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
error() {
|
|
29
|
+
echo -e "${RED}[$(date '+%H:%M:%S')] ERROR: ${1}${RESET}"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
success() {
|
|
33
|
+
echo -e "${GREEN}[$(date '+%H:%M:%S')] ${1}${RESET}"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# Function to count active processes
|
|
37
|
+
count_active_processes() {
|
|
38
|
+
local agentic_flow_count=0
|
|
39
|
+
local mcp_count=0
|
|
40
|
+
local agent_count=0
|
|
41
|
+
|
|
42
|
+
# Count agentic-flow processes
|
|
43
|
+
agentic_flow_count=$(ps aux 2>/dev/null | grep -E "agentic-flow" | grep -v grep | grep -v "swarm-monitor" | wc -l)
|
|
44
|
+
|
|
45
|
+
# Count MCP server processes
|
|
46
|
+
mcp_count=$(ps aux 2>/dev/null | grep -E "mcp.*start" | grep -v grep | wc -l)
|
|
47
|
+
|
|
48
|
+
# Count specific agent processes
|
|
49
|
+
agent_count=$(ps aux 2>/dev/null | grep -E "(agent|swarm|coordinator)" | grep -v grep | grep -v "swarm-monitor" | wc -l)
|
|
50
|
+
|
|
51
|
+
# Calculate total active "agents" using heuristic
|
|
52
|
+
local total_agents=0
|
|
53
|
+
if [ "$agentic_flow_count" -gt 0 ]; then
|
|
54
|
+
# Use agent count if available, otherwise estimate from processes
|
|
55
|
+
if [ "$agent_count" -gt 0 ]; then
|
|
56
|
+
total_agents="$agent_count"
|
|
57
|
+
else
|
|
58
|
+
# Heuristic: some processes are management, some are agents
|
|
59
|
+
total_agents=$((agentic_flow_count / 2))
|
|
60
|
+
if [ "$total_agents" -eq 0 ] && [ "$agentic_flow_count" -gt 0 ]; then
|
|
61
|
+
total_agents=1
|
|
62
|
+
fi
|
|
63
|
+
fi
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
echo "agentic:$agentic_flow_count mcp:$mcp_count agents:$total_agents"
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
# Function to update metrics based on detected activity
|
|
70
|
+
update_activity_metrics() {
|
|
71
|
+
local process_info="$1"
|
|
72
|
+
local agentic_count=$(echo "$process_info" | cut -d' ' -f1 | cut -d':' -f2)
|
|
73
|
+
local mcp_count=$(echo "$process_info" | cut -d' ' -f2 | cut -d':' -f2)
|
|
74
|
+
local agent_count=$(echo "$process_info" | cut -d' ' -f3 | cut -d':' -f2)
|
|
75
|
+
|
|
76
|
+
# Update active agents in metrics
|
|
77
|
+
if [ -f "$UPDATE_SCRIPT" ]; then
|
|
78
|
+
"$UPDATE_SCRIPT" agent "$agent_count" >/dev/null 2>&1
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
# Update integration status based on activity
|
|
82
|
+
local integration_status="false"
|
|
83
|
+
if [ "$agentic_count" -gt 0 ] || [ "$mcp_count" -gt 0 ]; then
|
|
84
|
+
integration_status="true"
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
# Create/update activity metrics file
|
|
88
|
+
local activity_file="$METRICS_DIR/swarm-activity.json"
|
|
89
|
+
cat > "$activity_file" << EOF
|
|
90
|
+
{
|
|
91
|
+
"timestamp": "$(date -Iseconds)",
|
|
92
|
+
"processes": {
|
|
93
|
+
"agentic_flow": $agentic_count,
|
|
94
|
+
"mcp_server": $mcp_count,
|
|
95
|
+
"estimated_agents": $agent_count
|
|
96
|
+
},
|
|
97
|
+
"swarm": {
|
|
98
|
+
"active": $([ "$agent_count" -gt 0 ] && echo "true" || echo "false"),
|
|
99
|
+
"agent_count": $agent_count,
|
|
100
|
+
"coordination_active": $([ "$agentic_count" -gt 0 ] && echo "true" || echo "false")
|
|
101
|
+
},
|
|
102
|
+
"integration": {
|
|
103
|
+
"agentic_flow_active": $integration_status,
|
|
104
|
+
"mcp_active": $([ "$mcp_count" -gt 0 ] && echo "true" || echo "false")
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
EOF
|
|
108
|
+
|
|
109
|
+
return 0
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
# Function to monitor continuously
|
|
113
|
+
monitor_continuous() {
|
|
114
|
+
local monitor_interval="${1:-5}" # Default 5 seconds
|
|
115
|
+
local last_state=""
|
|
116
|
+
local current_state=""
|
|
117
|
+
|
|
118
|
+
log "Starting continuous swarm monitoring (interval: ${monitor_interval}s)"
|
|
119
|
+
log "Press Ctrl+C to stop monitoring"
|
|
120
|
+
|
|
121
|
+
while true; do
|
|
122
|
+
current_state=$(count_active_processes)
|
|
123
|
+
|
|
124
|
+
# Only update if state changed
|
|
125
|
+
if [ "$current_state" != "$last_state" ]; then
|
|
126
|
+
update_activity_metrics "$current_state"
|
|
127
|
+
|
|
128
|
+
local agent_count=$(echo "$current_state" | cut -d' ' -f3 | cut -d':' -f2)
|
|
129
|
+
local agentic_count=$(echo "$current_state" | cut -d' ' -f1 | cut -d':' -f2)
|
|
130
|
+
|
|
131
|
+
if [ "$agent_count" -gt 0 ] || [ "$agentic_count" -gt 0 ]; then
|
|
132
|
+
success "Swarm activity detected: $current_state"
|
|
133
|
+
else
|
|
134
|
+
warn "No swarm activity detected"
|
|
135
|
+
fi
|
|
136
|
+
|
|
137
|
+
last_state="$current_state"
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
sleep "$monitor_interval"
|
|
141
|
+
done
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
# Function to run a single check
|
|
145
|
+
check_once() {
|
|
146
|
+
log "Running single swarm activity check..."
|
|
147
|
+
|
|
148
|
+
local process_info=$(count_active_processes)
|
|
149
|
+
update_activity_metrics "$process_info"
|
|
150
|
+
|
|
151
|
+
local agent_count=$(echo "$process_info" | cut -d' ' -f3 | cut -d':' -f2)
|
|
152
|
+
local agentic_count=$(echo "$process_info" | cut -d' ' -f1 | cut -d':' -f2)
|
|
153
|
+
local mcp_count=$(echo "$process_info" | cut -d' ' -f2 | cut -d':' -f2)
|
|
154
|
+
|
|
155
|
+
log "Process Detection Results:"
|
|
156
|
+
log " Agentic Flow processes: $agentic_count"
|
|
157
|
+
log " MCP Server processes: $mcp_count"
|
|
158
|
+
log " Estimated agents: $agent_count"
|
|
159
|
+
|
|
160
|
+
if [ "$agent_count" -gt 0 ] || [ "$agentic_count" -gt 0 ]; then
|
|
161
|
+
success "✓ Swarm activity detected and metrics updated"
|
|
162
|
+
else
|
|
163
|
+
warn "⚠ No swarm activity detected"
|
|
164
|
+
fi
|
|
165
|
+
|
|
166
|
+
# Run performance benchmarks (throttled to every 5 min)
|
|
167
|
+
if [ -x "$SCRIPT_DIR/perf-worker.sh" ]; then
|
|
168
|
+
"$SCRIPT_DIR/perf-worker.sh" check 2>/dev/null &
|
|
169
|
+
fi
|
|
170
|
+
|
|
171
|
+
return 0
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
# Main command handling
|
|
175
|
+
case "${1:-check}" in
|
|
176
|
+
"monitor"|"continuous")
|
|
177
|
+
monitor_continuous "${2:-5}"
|
|
178
|
+
;;
|
|
179
|
+
"check"|"once")
|
|
180
|
+
check_once
|
|
181
|
+
;;
|
|
182
|
+
"status")
|
|
183
|
+
if [ -f "$METRICS_DIR/swarm-activity.json" ]; then
|
|
184
|
+
log "Current swarm activity status:"
|
|
185
|
+
cat "$METRICS_DIR/swarm-activity.json" | jq . 2>/dev/null || cat "$METRICS_DIR/swarm-activity.json"
|
|
186
|
+
else
|
|
187
|
+
warn "No activity data available. Run 'check' first."
|
|
188
|
+
fi
|
|
189
|
+
;;
|
|
190
|
+
"help"|"-h"|"--help")
|
|
191
|
+
echo "Claude Flow V3 Swarm Monitor"
|
|
192
|
+
echo ""
|
|
193
|
+
echo "Usage: $0 [command] [options]"
|
|
194
|
+
echo ""
|
|
195
|
+
echo "Commands:"
|
|
196
|
+
echo " check, once Run a single activity check and update metrics"
|
|
197
|
+
echo " monitor [N] Monitor continuously every N seconds (default: 5)"
|
|
198
|
+
echo " status Show current activity status"
|
|
199
|
+
echo " help Show this help message"
|
|
200
|
+
echo ""
|
|
201
|
+
echo "Examples:"
|
|
202
|
+
echo " $0 check # Single check"
|
|
203
|
+
echo " $0 monitor 3 # Monitor every 3 seconds"
|
|
204
|
+
echo " $0 status # Show current status"
|
|
205
|
+
;;
|
|
206
|
+
*)
|
|
207
|
+
error "Unknown command: $1"
|
|
208
|
+
echo "Use '$0 help' for usage information"
|
|
209
|
+
exit 1
|
|
210
|
+
;;
|
|
211
|
+
esac
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Claude Flow V3 - Auto-sync Metrics from Actual Implementation
|
|
3
|
+
# Scans the V3 codebase and updates metrics to reflect reality
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
7
|
+
V3_DIR="$PROJECT_ROOT/v3"
|
|
8
|
+
METRICS_DIR="$PROJECT_ROOT/.claude-flow/metrics"
|
|
9
|
+
SECURITY_DIR="$PROJECT_ROOT/.claude-flow/security"
|
|
10
|
+
|
|
11
|
+
# Ensure directories exist
|
|
12
|
+
mkdir -p "$METRICS_DIR" "$SECURITY_DIR"
|
|
13
|
+
|
|
14
|
+
# Colors
|
|
15
|
+
GREEN='\033[0;32m'
|
|
16
|
+
YELLOW='\033[1;33m'
|
|
17
|
+
CYAN='\033[0;36m'
|
|
18
|
+
RESET='\033[0m'
|
|
19
|
+
|
|
20
|
+
log() {
|
|
21
|
+
echo -e "${CYAN}[sync] $1${RESET}"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
# Count V3 modules
|
|
25
|
+
count_modules() {
|
|
26
|
+
local count=0
|
|
27
|
+
local modules=()
|
|
28
|
+
|
|
29
|
+
if [ -d "$V3_DIR/@claude-flow" ]; then
|
|
30
|
+
for dir in "$V3_DIR/@claude-flow"/*/; do
|
|
31
|
+
if [ -d "$dir" ]; then
|
|
32
|
+
name=$(basename "$dir")
|
|
33
|
+
modules+=("$name")
|
|
34
|
+
((count++))
|
|
35
|
+
fi
|
|
36
|
+
done
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
echo "$count"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# Calculate module completion percentage
|
|
43
|
+
calculate_module_progress() {
|
|
44
|
+
local module="$1"
|
|
45
|
+
local module_dir="$V3_DIR/@claude-flow/$module"
|
|
46
|
+
|
|
47
|
+
if [ ! -d "$module_dir" ]; then
|
|
48
|
+
echo "0"
|
|
49
|
+
return
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
local has_src=$([ -d "$module_dir/src" ] && echo 1 || echo 0)
|
|
53
|
+
local has_index=$([ -f "$module_dir/src/index.ts" ] || [ -f "$module_dir/index.ts" ] && echo 1 || echo 0)
|
|
54
|
+
local has_tests=$([ -d "$module_dir/__tests__" ] || [ -d "$module_dir/tests" ] && echo 1 || echo 0)
|
|
55
|
+
local has_package=$([ -f "$module_dir/package.json" ] && echo 1 || echo 0)
|
|
56
|
+
local file_count=$(find "$module_dir" -name "*.ts" -type f 2>/dev/null | wc -l)
|
|
57
|
+
|
|
58
|
+
# Calculate progress based on structure and content
|
|
59
|
+
local progress=0
|
|
60
|
+
[ "$has_src" -eq 1 ] && ((progress += 20))
|
|
61
|
+
[ "$has_index" -eq 1 ] && ((progress += 20))
|
|
62
|
+
[ "$has_tests" -eq 1 ] && ((progress += 20))
|
|
63
|
+
[ "$has_package" -eq 1 ] && ((progress += 10))
|
|
64
|
+
[ "$file_count" -gt 5 ] && ((progress += 15))
|
|
65
|
+
[ "$file_count" -gt 10 ] && ((progress += 15))
|
|
66
|
+
|
|
67
|
+
# Cap at 100
|
|
68
|
+
[ "$progress" -gt 100 ] && progress=100
|
|
69
|
+
|
|
70
|
+
echo "$progress"
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# Check security CVE status
|
|
74
|
+
check_security_status() {
|
|
75
|
+
local cves_fixed=0
|
|
76
|
+
local security_dir="$V3_DIR/@claude-flow/security/src"
|
|
77
|
+
|
|
78
|
+
# CVE-1: Input validation - check for input-validator.ts
|
|
79
|
+
if [ -f "$security_dir/input-validator.ts" ]; then
|
|
80
|
+
lines=$(wc -l < "$security_dir/input-validator.ts" 2>/dev/null || echo 0)
|
|
81
|
+
[ "$lines" -gt 100 ] && ((cves_fixed++))
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
# CVE-2: Path traversal - check for path-validator.ts
|
|
85
|
+
if [ -f "$security_dir/path-validator.ts" ]; then
|
|
86
|
+
lines=$(wc -l < "$security_dir/path-validator.ts" 2>/dev/null || echo 0)
|
|
87
|
+
[ "$lines" -gt 100 ] && ((cves_fixed++))
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
# CVE-3: Command injection - check for safe-executor.ts
|
|
91
|
+
if [ -f "$security_dir/safe-executor.ts" ]; then
|
|
92
|
+
lines=$(wc -l < "$security_dir/safe-executor.ts" 2>/dev/null || echo 0)
|
|
93
|
+
[ "$lines" -gt 100 ] && ((cves_fixed++))
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
echo "$cves_fixed"
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
# Calculate overall DDD progress
|
|
100
|
+
calculate_ddd_progress() {
|
|
101
|
+
local total_progress=0
|
|
102
|
+
local module_count=0
|
|
103
|
+
|
|
104
|
+
for dir in "$V3_DIR/@claude-flow"/*/; do
|
|
105
|
+
if [ -d "$dir" ]; then
|
|
106
|
+
name=$(basename "$dir")
|
|
107
|
+
progress=$(calculate_module_progress "$name")
|
|
108
|
+
((total_progress += progress))
|
|
109
|
+
((module_count++))
|
|
110
|
+
fi
|
|
111
|
+
done
|
|
112
|
+
|
|
113
|
+
if [ "$module_count" -gt 0 ]; then
|
|
114
|
+
echo $((total_progress / module_count))
|
|
115
|
+
else
|
|
116
|
+
echo 0
|
|
117
|
+
fi
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
# Count total lines of code
|
|
121
|
+
count_total_lines() {
|
|
122
|
+
find "$V3_DIR" -name "*.ts" -type f -exec cat {} \; 2>/dev/null | wc -l
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
# Count total files
|
|
126
|
+
count_total_files() {
|
|
127
|
+
find "$V3_DIR" -name "*.ts" -type f 2>/dev/null | wc -l
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
# Check domains (map modules to domains)
|
|
131
|
+
count_domains() {
|
|
132
|
+
local domains=0
|
|
133
|
+
|
|
134
|
+
# Map @claude-flow modules to DDD domains
|
|
135
|
+
[ -d "$V3_DIR/@claude-flow/swarm" ] && ((domains++)) # task-management
|
|
136
|
+
[ -d "$V3_DIR/@claude-flow/memory" ] && ((domains++)) # session-management
|
|
137
|
+
[ -d "$V3_DIR/@claude-flow/performance" ] && ((domains++)) # health-monitoring
|
|
138
|
+
[ -d "$V3_DIR/@claude-flow/cli" ] && ((domains++)) # lifecycle-management
|
|
139
|
+
[ -d "$V3_DIR/@claude-flow/integration" ] && ((domains++)) # event-coordination
|
|
140
|
+
|
|
141
|
+
echo "$domains"
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
# Main sync function
|
|
145
|
+
sync_metrics() {
|
|
146
|
+
log "Scanning V3 implementation..."
|
|
147
|
+
|
|
148
|
+
local modules=$(count_modules)
|
|
149
|
+
local domains=$(count_domains)
|
|
150
|
+
local ddd_progress=$(calculate_ddd_progress)
|
|
151
|
+
local cves_fixed=$(check_security_status)
|
|
152
|
+
local total_files=$(count_total_files)
|
|
153
|
+
local total_lines=$(count_total_lines)
|
|
154
|
+
local timestamp=$(date -Iseconds)
|
|
155
|
+
|
|
156
|
+
# Determine security status
|
|
157
|
+
local security_status="PENDING"
|
|
158
|
+
if [ "$cves_fixed" -eq 3 ]; then
|
|
159
|
+
security_status="CLEAN"
|
|
160
|
+
elif [ "$cves_fixed" -gt 0 ]; then
|
|
161
|
+
security_status="IN_PROGRESS"
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
log "Found: $modules modules, $domains domains, $total_files files, $total_lines lines"
|
|
165
|
+
log "DDD Progress: ${ddd_progress}%, Security: $cves_fixed/3 CVEs fixed"
|
|
166
|
+
|
|
167
|
+
# Update v3-progress.json
|
|
168
|
+
cat > "$METRICS_DIR/v3-progress.json" << EOF
|
|
169
|
+
{
|
|
170
|
+
"domains": {
|
|
171
|
+
"completed": $domains,
|
|
172
|
+
"total": 5,
|
|
173
|
+
"list": [
|
|
174
|
+
{"name": "task-management", "status": "$([ -d "$V3_DIR/@claude-flow/swarm" ] && echo "complete" || echo "pending")", "module": "swarm"},
|
|
175
|
+
{"name": "session-management", "status": "$([ -d "$V3_DIR/@claude-flow/memory" ] && echo "complete" || echo "pending")", "module": "memory"},
|
|
176
|
+
{"name": "health-monitoring", "status": "$([ -d "$V3_DIR/@claude-flow/performance" ] && echo "complete" || echo "pending")", "module": "performance"},
|
|
177
|
+
{"name": "lifecycle-management", "status": "$([ -d "$V3_DIR/@claude-flow/cli" ] && echo "complete" || echo "pending")", "module": "cli"},
|
|
178
|
+
{"name": "event-coordination", "status": "$([ -d "$V3_DIR/@claude-flow/integration" ] && echo "complete" || echo "pending")", "module": "integration"}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"ddd": {
|
|
182
|
+
"progress": $ddd_progress,
|
|
183
|
+
"modules": $modules,
|
|
184
|
+
"totalFiles": $total_files,
|
|
185
|
+
"totalLines": $total_lines
|
|
186
|
+
},
|
|
187
|
+
"swarm": {
|
|
188
|
+
"activeAgents": 0,
|
|
189
|
+
"totalAgents": 15,
|
|
190
|
+
"topology": "hierarchical-mesh",
|
|
191
|
+
"coordination": "$([ -d "$V3_DIR/@claude-flow/swarm" ] && echo "ready" || echo "pending")"
|
|
192
|
+
},
|
|
193
|
+
"lastUpdated": "$timestamp",
|
|
194
|
+
"autoSynced": true
|
|
195
|
+
}
|
|
196
|
+
EOF
|
|
197
|
+
|
|
198
|
+
# Update security audit status
|
|
199
|
+
cat > "$SECURITY_DIR/audit-status.json" << EOF
|
|
200
|
+
{
|
|
201
|
+
"status": "$security_status",
|
|
202
|
+
"cvesFixed": $cves_fixed,
|
|
203
|
+
"totalCves": 3,
|
|
204
|
+
"criticalVulnerabilities": [
|
|
205
|
+
{
|
|
206
|
+
"id": "CVE-1",
|
|
207
|
+
"description": "Input validation bypass",
|
|
208
|
+
"severity": "critical",
|
|
209
|
+
"status": "$([ -f "$V3_DIR/@claude-flow/security/src/input-validator.ts" ] && echo "fixed" || echo "pending")",
|
|
210
|
+
"fixedBy": "input-validator.ts"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "CVE-2",
|
|
214
|
+
"description": "Path traversal vulnerability",
|
|
215
|
+
"severity": "critical",
|
|
216
|
+
"status": "$([ -f "$V3_DIR/@claude-flow/security/src/path-validator.ts" ] && echo "fixed" || echo "pending")",
|
|
217
|
+
"fixedBy": "path-validator.ts"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "CVE-3",
|
|
221
|
+
"description": "Command injection vulnerability",
|
|
222
|
+
"severity": "critical",
|
|
223
|
+
"status": "$([ -f "$V3_DIR/@claude-flow/security/src/safe-executor.ts" ] && echo "fixed" || echo "pending")",
|
|
224
|
+
"fixedBy": "safe-executor.ts"
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"lastAudit": "$timestamp",
|
|
228
|
+
"autoSynced": true
|
|
229
|
+
}
|
|
230
|
+
EOF
|
|
231
|
+
|
|
232
|
+
log "Metrics synced successfully!"
|
|
233
|
+
|
|
234
|
+
# Output summary for statusline
|
|
235
|
+
echo ""
|
|
236
|
+
echo -e "${GREEN}V3 Implementation Status:${RESET}"
|
|
237
|
+
echo " Modules: $modules"
|
|
238
|
+
echo " Domains: $domains/5"
|
|
239
|
+
echo " DDD Progress: ${ddd_progress}%"
|
|
240
|
+
echo " Security: $cves_fixed/3 CVEs fixed ($security_status)"
|
|
241
|
+
echo " Codebase: $total_files files, $total_lines lines"
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
# Run sync
|
|
245
|
+
sync_metrics
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# V3 Progress Update Script
|
|
3
|
+
# Usage: ./update-v3-progress.sh [domain|agent|security|performance] [value]
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
METRICS_DIR=".claude-flow/metrics"
|
|
8
|
+
SECURITY_DIR=".claude-flow/security"
|
|
9
|
+
|
|
10
|
+
# Ensure directories exist
|
|
11
|
+
mkdir -p "$METRICS_DIR" "$SECURITY_DIR"
|
|
12
|
+
|
|
13
|
+
case "$1" in
|
|
14
|
+
"domain")
|
|
15
|
+
if [ -z "$2" ]; then
|
|
16
|
+
echo "Usage: $0 domain <count>"
|
|
17
|
+
echo "Example: $0 domain 3"
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# Update domain completion count
|
|
22
|
+
jq --argjson count "$2" '.domains.completed = $count' \
|
|
23
|
+
"$METRICS_DIR/v3-progress.json" > tmp.json && \
|
|
24
|
+
mv tmp.json "$METRICS_DIR/v3-progress.json"
|
|
25
|
+
|
|
26
|
+
echo "✅ Updated domain count to $2/5"
|
|
27
|
+
;;
|
|
28
|
+
|
|
29
|
+
"agent")
|
|
30
|
+
if [ -z "$2" ]; then
|
|
31
|
+
echo "Usage: $0 agent <count>"
|
|
32
|
+
echo "Example: $0 agent 8"
|
|
33
|
+
exit 1
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Update active agent count
|
|
37
|
+
jq --argjson count "$2" '.swarm.activeAgents = $count' \
|
|
38
|
+
"$METRICS_DIR/v3-progress.json" > tmp.json && \
|
|
39
|
+
mv tmp.json "$METRICS_DIR/v3-progress.json"
|
|
40
|
+
|
|
41
|
+
echo "✅ Updated active agents to $2/15"
|
|
42
|
+
;;
|
|
43
|
+
|
|
44
|
+
"security")
|
|
45
|
+
if [ -z "$2" ]; then
|
|
46
|
+
echo "Usage: $0 security <fixed_count>"
|
|
47
|
+
echo "Example: $0 security 2"
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# Update CVE fixes
|
|
52
|
+
jq --argjson count "$2" '.cvesFixed = $count' \
|
|
53
|
+
"$SECURITY_DIR/audit-status.json" > tmp.json && \
|
|
54
|
+
mv tmp.json "$SECURITY_DIR/audit-status.json"
|
|
55
|
+
|
|
56
|
+
if [ "$2" -eq 3 ]; then
|
|
57
|
+
jq '.status = "CLEAN"' \
|
|
58
|
+
"$SECURITY_DIR/audit-status.json" > tmp.json && \
|
|
59
|
+
mv tmp.json "$SECURITY_DIR/audit-status.json"
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "✅ Updated security: $2/3 CVEs fixed"
|
|
63
|
+
;;
|
|
64
|
+
|
|
65
|
+
"performance")
|
|
66
|
+
if [ -z "$2" ]; then
|
|
67
|
+
echo "Usage: $0 performance <speedup>"
|
|
68
|
+
echo "Example: $0 performance 2.1x"
|
|
69
|
+
exit 1
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# Update performance metrics
|
|
73
|
+
jq --arg speedup "$2" '.flashAttention.speedup = $speedup' \
|
|
74
|
+
"$METRICS_DIR/performance.json" > tmp.json && \
|
|
75
|
+
mv tmp.json "$METRICS_DIR/performance.json"
|
|
76
|
+
|
|
77
|
+
echo "✅ Updated Flash Attention speedup to $2"
|
|
78
|
+
;;
|
|
79
|
+
|
|
80
|
+
"memory")
|
|
81
|
+
if [ -z "$2" ]; then
|
|
82
|
+
echo "Usage: $0 memory <percentage>"
|
|
83
|
+
echo "Example: $0 memory 45%"
|
|
84
|
+
exit 1
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
# Update memory reduction
|
|
88
|
+
jq --arg reduction "$2" '.memory.reduction = $reduction' \
|
|
89
|
+
"$METRICS_DIR/performance.json" > tmp.json && \
|
|
90
|
+
mv tmp.json "$METRICS_DIR/performance.json"
|
|
91
|
+
|
|
92
|
+
echo "✅ Updated memory reduction to $2"
|
|
93
|
+
;;
|
|
94
|
+
|
|
95
|
+
"ddd")
|
|
96
|
+
if [ -z "$2" ]; then
|
|
97
|
+
echo "Usage: $0 ddd <percentage>"
|
|
98
|
+
echo "Example: $0 ddd 65"
|
|
99
|
+
exit 1
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# Update DDD progress percentage
|
|
103
|
+
jq --argjson progress "$2" '.ddd.progress = $progress' \
|
|
104
|
+
"$METRICS_DIR/v3-progress.json" > tmp.json && \
|
|
105
|
+
mv tmp.json "$METRICS_DIR/v3-progress.json"
|
|
106
|
+
|
|
107
|
+
echo "✅ Updated DDD progress to $2%"
|
|
108
|
+
;;
|
|
109
|
+
|
|
110
|
+
"status")
|
|
111
|
+
# Show current status
|
|
112
|
+
echo "📊 V3 Development Status:"
|
|
113
|
+
echo "========================"
|
|
114
|
+
|
|
115
|
+
if [ -f "$METRICS_DIR/v3-progress.json" ]; then
|
|
116
|
+
domains=$(jq -r '.domains.completed // 0' "$METRICS_DIR/v3-progress.json")
|
|
117
|
+
agents=$(jq -r '.swarm.activeAgents // 0' "$METRICS_DIR/v3-progress.json")
|
|
118
|
+
ddd=$(jq -r '.ddd.progress // 0' "$METRICS_DIR/v3-progress.json")
|
|
119
|
+
echo "🏗️ Domains: $domains/5"
|
|
120
|
+
echo "🤖 Agents: $agents/15"
|
|
121
|
+
echo "📐 DDD: $ddd%"
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
if [ -f "$SECURITY_DIR/audit-status.json" ]; then
|
|
125
|
+
cves=$(jq -r '.cvesFixed // 0' "$SECURITY_DIR/audit-status.json")
|
|
126
|
+
echo "🛡️ Security: $cves/3 CVEs fixed"
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
if [ -f "$METRICS_DIR/performance.json" ]; then
|
|
130
|
+
speedup=$(jq -r '.flashAttention.speedup // "1.0x"' "$METRICS_DIR/performance.json")
|
|
131
|
+
memory=$(jq -r '.memory.reduction // "0%"' "$METRICS_DIR/performance.json")
|
|
132
|
+
echo "⚡ Performance: $speedup speedup, $memory memory saved"
|
|
133
|
+
fi
|
|
134
|
+
;;
|
|
135
|
+
|
|
136
|
+
*)
|
|
137
|
+
echo "V3 Progress Update Tool"
|
|
138
|
+
echo "======================"
|
|
139
|
+
echo ""
|
|
140
|
+
echo "Usage: $0 <command> [value]"
|
|
141
|
+
echo ""
|
|
142
|
+
echo "Commands:"
|
|
143
|
+
echo " domain <0-5> Update completed domain count"
|
|
144
|
+
echo " agent <0-15> Update active agent count"
|
|
145
|
+
echo " security <0-3> Update fixed CVE count"
|
|
146
|
+
echo " performance <x.x> Update Flash Attention speedup"
|
|
147
|
+
echo " memory <xx%> Update memory reduction percentage"
|
|
148
|
+
echo " ddd <0-100> Update DDD progress percentage"
|
|
149
|
+
echo " status Show current status"
|
|
150
|
+
echo ""
|
|
151
|
+
echo "Examples:"
|
|
152
|
+
echo " $0 domain 3 # Mark 3 domains as complete"
|
|
153
|
+
echo " $0 agent 8 # Set 8 agents as active"
|
|
154
|
+
echo " $0 security 2 # Mark 2 CVEs as fixed"
|
|
155
|
+
echo " $0 performance 2.5x # Set speedup to 2.5x"
|
|
156
|
+
echo " $0 memory 35% # Set memory reduction to 35%"
|
|
157
|
+
echo " $0 ddd 75 # Set DDD progress to 75%"
|
|
158
|
+
;;
|
|
159
|
+
esac
|
|
160
|
+
|
|
161
|
+
# Show updated statusline if not just showing help
|
|
162
|
+
if [ "$1" != "" ] && [ "$1" != "status" ]; then
|
|
163
|
+
echo ""
|
|
164
|
+
echo "📺 Updated Statusline:"
|
|
165
|
+
bash .claude/statusline.sh
|
|
166
|
+
fi
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# V3 Quick Status - Compact development status overview
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
# Color codes
|
|
7
|
+
GREEN='\033[0;32m'
|
|
8
|
+
YELLOW='\033[0;33m'
|
|
9
|
+
RED='\033[0;31m'
|
|
10
|
+
BLUE='\033[0;34m'
|
|
11
|
+
PURPLE='\033[0;35m'
|
|
12
|
+
CYAN='\033[0;36m'
|
|
13
|
+
RESET='\033[0m'
|
|
14
|
+
|
|
15
|
+
echo -e "${PURPLE}⚡ Claude Flow V3 Quick Status${RESET}"
|
|
16
|
+
|
|
17
|
+
# Get metrics
|
|
18
|
+
DOMAINS=0
|
|
19
|
+
AGENTS=0
|
|
20
|
+
DDD_PROGRESS=0
|
|
21
|
+
CVES_FIXED=0
|
|
22
|
+
SPEEDUP="1.0x"
|
|
23
|
+
MEMORY="0%"
|
|
24
|
+
|
|
25
|
+
if [ -f ".claude-flow/metrics/v3-progress.json" ]; then
|
|
26
|
+
DOMAINS=$(jq -r '.domains.completed // 0' ".claude-flow/metrics/v3-progress.json" 2>/dev/null || echo "0")
|
|
27
|
+
AGENTS=$(jq -r '.swarm.activeAgents // 0' ".claude-flow/metrics/v3-progress.json" 2>/dev/null || echo "0")
|
|
28
|
+
DDD_PROGRESS=$(jq -r '.ddd.progress // 0' ".claude-flow/metrics/v3-progress.json" 2>/dev/null || echo "0")
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if [ -f ".claude-flow/security/audit-status.json" ]; then
|
|
32
|
+
CVES_FIXED=$(jq -r '.cvesFixed // 0' ".claude-flow/security/audit-status.json" 2>/dev/null || echo "0")
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
if [ -f ".claude-flow/metrics/performance.json" ]; then
|
|
36
|
+
SPEEDUP=$(jq -r '.flashAttention.speedup // "1.0x"' ".claude-flow/metrics/performance.json" 2>/dev/null || echo "1.0x")
|
|
37
|
+
MEMORY=$(jq -r '.memory.reduction // "0%"' ".claude-flow/metrics/performance.json" 2>/dev/null || echo "0%")
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Calculate progress percentages
|
|
41
|
+
DOMAIN_PERCENT=$((DOMAINS * 20))
|
|
42
|
+
AGENT_PERCENT=$((AGENTS * 100 / 15))
|
|
43
|
+
SECURITY_PERCENT=$((CVES_FIXED * 33))
|
|
44
|
+
|
|
45
|
+
# Color coding
|
|
46
|
+
if [ $DOMAINS -eq 5 ]; then DOMAIN_COLOR=$GREEN; elif [ $DOMAINS -ge 3 ]; then DOMAIN_COLOR=$YELLOW; else DOMAIN_COLOR=$RED; fi
|
|
47
|
+
if [ $AGENTS -ge 10 ]; then AGENT_COLOR=$GREEN; elif [ $AGENTS -ge 5 ]; then AGENT_COLOR=$YELLOW; else AGENT_COLOR=$RED; fi
|
|
48
|
+
if [ $DDD_PROGRESS -ge 75 ]; then DDD_COLOR=$GREEN; elif [ $DDD_PROGRESS -ge 50 ]; then DDD_COLOR=$YELLOW; else DDD_COLOR=$RED; fi
|
|
49
|
+
if [ $CVES_FIXED -eq 3 ]; then SEC_COLOR=$GREEN; elif [ $CVES_FIXED -ge 1 ]; then SEC_COLOR=$YELLOW; else SEC_COLOR=$RED; fi
|
|
50
|
+
|
|
51
|
+
echo -e "${BLUE}Domains:${RESET} ${DOMAIN_COLOR}${DOMAINS}/5${RESET} (${DOMAIN_PERCENT}%) | ${BLUE}Agents:${RESET} ${AGENT_COLOR}${AGENTS}/15${RESET} (${AGENT_PERCENT}%) | ${BLUE}DDD:${RESET} ${DDD_COLOR}${DDD_PROGRESS}%${RESET}"
|
|
52
|
+
echo -e "${BLUE}Security:${RESET} ${SEC_COLOR}${CVES_FIXED}/3${RESET} CVEs | ${BLUE}Perf:${RESET} ${CYAN}${SPEEDUP}${RESET} | ${BLUE}Memory:${RESET} ${CYAN}${MEMORY}${RESET}"
|
|
53
|
+
|
|
54
|
+
# Branch info
|
|
55
|
+
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
56
|
+
BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
|
|
57
|
+
echo -e "${BLUE}Branch:${RESET} ${CYAN}${BRANCH}${RESET}"
|
|
58
|
+
fi
|