claude-flow-novice 2.14.4 → 2.14.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/.claude/commands/seo/SEO_TASK_MODE.md +892 -0
- package/.claude/commands/seo/seo-blog.md +428 -0
- package/.claude/commands/seo/seo-landing.md +91 -0
- package/.claude/commands/seo/seo-product.md +104 -0
- package/claude-assets/agents/cfn-dev-team/coordinators/epic-creator.md +120 -0
- package/claude-assets/agents/cfn-seo-team/AGENT_CREATION_REPORT.md +481 -0
- package/claude-assets/agents/cfn-seo-team/DELEGATION_MATRIX.md +371 -0
- package/claude-assets/agents/cfn-seo-team/HUMANIZER_PROMPTS.md +536 -0
- package/claude-assets/agents/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +642 -0
- package/claude-assets/agents/cfn-seo-team/cfn-seo-coordinator.md +414 -0
- package/claude-assets/agents/cfn-seo-team/competitive-seo-analyst.md +423 -0
- package/claude-assets/agents/cfn-seo-team/content-atomization-specialist.md +580 -0
- package/claude-assets/agents/cfn-seo-team/content-seo-strategist.md +245 -0
- package/claude-assets/agents/cfn-seo-team/eeat-content-auditor.md +389 -0
- package/claude-assets/agents/cfn-seo-team/geo-optimization-expert.md +269 -0
- package/claude-assets/agents/cfn-seo-team/link-building-specialist.md +291 -0
- package/claude-assets/agents/cfn-seo-team/local-seo-optimizer.md +333 -0
- package/claude-assets/agents/cfn-seo-team/programmatic-seo-engineer.md +244 -0
- package/claude-assets/agents/cfn-seo-team/schema-markup-engineer.md +430 -0
- package/claude-assets/agents/cfn-seo-team/seo-analytics-specialist.md +376 -0
- package/claude-assets/agents/cfn-seo-team/seo-validators/accessibility-validator.md +565 -0
- package/claude-assets/agents/cfn-seo-team/seo-validators/audience-validator.md +484 -0
- package/claude-assets/agents/cfn-seo-team/seo-validators/branding-validator.md +452 -0
- package/claude-assets/agents/cfn-seo-team/seo-validators/humanizer-validator.md +333 -0
- package/claude-assets/agents/cfn-seo-team/technical-seo-specialist.md +228 -0
- package/claude-assets/commands/seo/SEO_TASK_MODE.md +892 -0
- package/claude-assets/commands/seo/seo-blog.md +428 -0
- package/claude-assets/commands/seo/seo-landing.md +91 -0
- package/claude-assets/commands/seo/seo-product.md +104 -0
- package/claude-assets/skills/seo-orchestration/SKILL.md +292 -0
- package/claude-assets/skills/seo-orchestration/orchestrate-seo.sh +566 -0
- package/claude-assets/skills/seo-orchestration/orchestrate-seo.sh.backup +755 -0
- package/claude-assets/skills/seo-orchestration/validate-consensus.sh +270 -0
- package/dist/cli/config-manager.js +109 -91
- package/package.json +1 -1
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# SEO Consensus Validation Script
|
|
5
|
+
# Version: 1.0.0
|
|
6
|
+
#
|
|
7
|
+
# Validates SEO consensus scores against thresholds and quorum requirements.
|
|
8
|
+
# Used to determine if SEO optimizations meet quality standards.
|
|
9
|
+
##############################################################################
|
|
10
|
+
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
# Configuration
|
|
14
|
+
TASK_ID=""
|
|
15
|
+
AGENTS=""
|
|
16
|
+
THRESHOLD="0.80"
|
|
17
|
+
MIN_QUORUM="0.66"
|
|
18
|
+
|
|
19
|
+
# Script directory
|
|
20
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
21
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../../" && pwd)"
|
|
22
|
+
|
|
23
|
+
# Logging
|
|
24
|
+
log() {
|
|
25
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] SEO-VALIDATE-CONSENSUS: $*" >&2
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
error() {
|
|
29
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] SEO-VALIDATE-CONSENSUS ERROR: $*" >&2
|
|
30
|
+
exit 1
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
# Display usage
|
|
34
|
+
usage() {
|
|
35
|
+
cat << EOF
|
|
36
|
+
SEO Consensus Validation
|
|
37
|
+
|
|
38
|
+
Usage: $0 [OPTIONS]
|
|
39
|
+
|
|
40
|
+
Required Options:
|
|
41
|
+
--task-id <id> Unique identifier for SEO task
|
|
42
|
+
--agents <agents> Comma-separated list of SEO agent IDs
|
|
43
|
+
--threshold <value> Minimum confidence threshold (0.0-1.0)
|
|
44
|
+
--min-quorum <value> Minimum quorum (n, n%, or 0.n format)
|
|
45
|
+
|
|
46
|
+
Optional Options:
|
|
47
|
+
--help Show this help message
|
|
48
|
+
|
|
49
|
+
Examples:
|
|
50
|
+
$0 --task-id seo-001 --agents seo-analyst,content-writer --threshold 0.75 --min-quorum 0.66
|
|
51
|
+
|
|
52
|
+
EOF
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Parse command line arguments
|
|
56
|
+
parse_args() {
|
|
57
|
+
while [[ $# -gt 0 ]]; do
|
|
58
|
+
case $1 in
|
|
59
|
+
--task-id)
|
|
60
|
+
TASK_ID="$2"
|
|
61
|
+
shift 2
|
|
62
|
+
;;
|
|
63
|
+
--agents)
|
|
64
|
+
AGENTS="$2"
|
|
65
|
+
shift 2
|
|
66
|
+
;;
|
|
67
|
+
--threshold)
|
|
68
|
+
THRESHOLD="$2"
|
|
69
|
+
shift 2
|
|
70
|
+
;;
|
|
71
|
+
--min-quorum)
|
|
72
|
+
MIN_QUORUM="$2"
|
|
73
|
+
shift 2
|
|
74
|
+
;;
|
|
75
|
+
--help)
|
|
76
|
+
usage
|
|
77
|
+
exit 0
|
|
78
|
+
;;
|
|
79
|
+
*)
|
|
80
|
+
error "Unknown option: $1. Use --help for usage information."
|
|
81
|
+
;;
|
|
82
|
+
esac
|
|
83
|
+
done
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
# Validate inputs
|
|
87
|
+
validate_inputs() {
|
|
88
|
+
[[ -z "$TASK_ID" ]] && error "Task ID is required"
|
|
89
|
+
[[ -z "$AGENTS" ]] && error "Agents list is required"
|
|
90
|
+
[[ -z "$THRESHOLD" ]] && error "Threshold is required"
|
|
91
|
+
[[ -z "$MIN_QUORUM" ]] && error "Min quorum is required"
|
|
92
|
+
|
|
93
|
+
# Validate threshold
|
|
94
|
+
if ! [[ "$THRESHOLD" =~ ^[0-9]*\.?[0-9]+$ ]]; then
|
|
95
|
+
error "Threshold must be a numeric value between 0.0 and 1.0"
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
local threshold_float
|
|
99
|
+
threshold_float=$(echo "$THRESHOLD" | bc -l 2>/dev/null || echo "0")
|
|
100
|
+
if [[ $(echo "$threshold_float < 0 || $threshold_float > 1" | bc -l) -eq 1 ]]; then
|
|
101
|
+
error "Threshold must be between 0.0 and 1.0"
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
# Check Redis connectivity
|
|
105
|
+
if ! command -v redis-cli &> /dev/null; then
|
|
106
|
+
error "redis-cli is required but not installed"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
if ! redis-cli ping &> /dev/null; then
|
|
110
|
+
error "Cannot connect to Redis server"
|
|
111
|
+
fi
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# Calculate quorum requirement
|
|
115
|
+
calculate_quorum_requirement() {
|
|
116
|
+
local total_agents=$1
|
|
117
|
+
local min_quorum_spec="$2"
|
|
118
|
+
|
|
119
|
+
# Parse quorum specification
|
|
120
|
+
if [[ "$min_quorum_spec" =~ ^[0-9]+$ ]]; then
|
|
121
|
+
# Absolute number
|
|
122
|
+
echo "$min_quorum_spec"
|
|
123
|
+
elif [[ "$min_quorum_spec" =~ ^([0-9]+)%$ ]]; then
|
|
124
|
+
# Percentage
|
|
125
|
+
local percentage="${BASH_REMATCH[1]}"
|
|
126
|
+
local required
|
|
127
|
+
required=$(echo "scale=0; ($total_agents * $percentage) / 100" | bc -l)
|
|
128
|
+
echo "$required"
|
|
129
|
+
elif [[ "$min_quorum_spec" =~ ^0\.[0-9]+$ ]]; then
|
|
130
|
+
# Fraction
|
|
131
|
+
local required
|
|
132
|
+
required=$(echo "scale=0; $total_agents * $min_quorum_spec" | bc -l)
|
|
133
|
+
echo "$required"
|
|
134
|
+
else
|
|
135
|
+
error "Invalid quorum specification: $min_quorum_spec"
|
|
136
|
+
fi
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
# Collect agent confidence scores
|
|
140
|
+
collect_agent_scores() {
|
|
141
|
+
local agents_array
|
|
142
|
+
IFS=',' read -ra agents_array <<< "$AGENTS"
|
|
143
|
+
|
|
144
|
+
local scores=()
|
|
145
|
+
local completed_agents=()
|
|
146
|
+
|
|
147
|
+
log "Collecting confidence scores from agents"
|
|
148
|
+
|
|
149
|
+
for agent_id in "${agents_array[@]}"; do
|
|
150
|
+
agent_id=$(echo "$agent_id" | xargs) # trim whitespace
|
|
151
|
+
|
|
152
|
+
# Get confidence score from Redis
|
|
153
|
+
local confidence_key="swarm:${TASK_ID}:${agent_id}:confidence"
|
|
154
|
+
local confidence_score
|
|
155
|
+
confidence_score=$(redis-cli get "$confidence_key" 2>/dev/null || echo "")
|
|
156
|
+
|
|
157
|
+
if [[ -n "$confidence_score" ]] && [[ "$confidence_score" =~ ^[0-9]*\.?[0-9]+$ ]]; then
|
|
158
|
+
scores+=("$confidence_score")
|
|
159
|
+
completed_agents+=("$agent_id")
|
|
160
|
+
log "Agent $agent_id confidence: $confidence_score"
|
|
161
|
+
else
|
|
162
|
+
log "Warning: No confidence score found for agent $agent_id"
|
|
163
|
+
fi
|
|
164
|
+
done
|
|
165
|
+
|
|
166
|
+
# Store results in Redis for debugging
|
|
167
|
+
printf '%s\n' "${completed_agents[@]}" | redis-cli -x set "swarm:${TASK_ID}:validated-agents" > /dev/null 2>&1 || true
|
|
168
|
+
printf '%s\n' "${scores[@]}" | redis-cli -x set "swarm:${TASK_ID}:confidence-scores" > /dev/null 2>&1 || true
|
|
169
|
+
|
|
170
|
+
# Return scores array
|
|
171
|
+
printf '%s\n' "${scores[@]}"
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
# Validate consensus
|
|
175
|
+
validate_consensus() {
|
|
176
|
+
local scores=("$@")
|
|
177
|
+
|
|
178
|
+
if [[ ${#scores[@]} -eq 0 ]]; then
|
|
179
|
+
error "No confidence scores available for validation"
|
|
180
|
+
fi
|
|
181
|
+
|
|
182
|
+
# Calculate required quorum
|
|
183
|
+
local total_agents
|
|
184
|
+
total_agents=$(echo "$AGENTS" | tr ',' '\n' | wc -l)
|
|
185
|
+
local required_quorum
|
|
186
|
+
required_quorum=$(calculate_quorum_requirement "$total_agents" "$MIN_QUORUM")
|
|
187
|
+
|
|
188
|
+
log "Total agents: $total_agents, Required quorum: $required_quorum"
|
|
189
|
+
log "Available scores: ${#scores[@]}"
|
|
190
|
+
|
|
191
|
+
# Check quorum requirement
|
|
192
|
+
if [[ ${#scores[@]} -lt $required_quorum ]]; then
|
|
193
|
+
log "Consensus validation failed: Insufficient agent responses (${#scores[@]} < $required_quorum)"
|
|
194
|
+
return 1
|
|
195
|
+
fi
|
|
196
|
+
|
|
197
|
+
# Calculate average confidence
|
|
198
|
+
local sum=0.0
|
|
199
|
+
local count=0
|
|
200
|
+
|
|
201
|
+
for score in "${scores[@]}"; do
|
|
202
|
+
sum=$(echo "$sum + $score" | bc -l)
|
|
203
|
+
((count++))
|
|
204
|
+
done
|
|
205
|
+
|
|
206
|
+
local average_confidence
|
|
207
|
+
average_confidence=$(echo "scale=3; $sum / $count" | bc -l)
|
|
208
|
+
|
|
209
|
+
log "Average confidence: $average_confidence, Threshold: $THRESHOLD"
|
|
210
|
+
|
|
211
|
+
# Compare against threshold
|
|
212
|
+
local comparison
|
|
213
|
+
comparison=$(echo "$average_confidence >= $THRESHOLD" | bc -l 2>/dev/null || echo "0")
|
|
214
|
+
|
|
215
|
+
# Store validation results
|
|
216
|
+
local validation_result
|
|
217
|
+
validation_result=$(cat << EOF
|
|
218
|
+
{
|
|
219
|
+
"task_id": "$TASK_ID",
|
|
220
|
+
"timestamp": "$(date -Iseconds)",
|
|
221
|
+
"total_agents": $total_agents,
|
|
222
|
+
"completed_agents": $count,
|
|
223
|
+
"required_quorum": $required_quorum,
|
|
224
|
+
"quorum_met": $([[ $count -ge $required_quorum ]] && echo "true" || echo "false"),
|
|
225
|
+
"confidence_scores": [$(IFS=','; echo "${scores[*]}")],
|
|
226
|
+
"average_confidence": $average_confidence,
|
|
227
|
+
"threshold": $THRESHOLD,
|
|
228
|
+
"threshold_met": $([[ $comparison -eq 1 ]] && echo "true" || echo "false"),
|
|
229
|
+
"consensus_validated": $([[ $comparison -eq 1 ]] && echo "true" || echo "false")
|
|
230
|
+
}
|
|
231
|
+
EOF
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
echo "$validation_result" | redis-cli -x set "swarm:${TASK_ID}:consensus-validation" > /dev/null
|
|
235
|
+
log "Validation result stored: $validation_result"
|
|
236
|
+
|
|
237
|
+
if [[ $comparison -eq 1 ]]; then
|
|
238
|
+
log "SEO consensus validation PASSED (average: $average_confidence >= threshold: $THRESHOLD)"
|
|
239
|
+
return 0
|
|
240
|
+
else
|
|
241
|
+
log "SEO consensus validation FAILED (average: $average_confidence < threshold: $THRESHOLD)"
|
|
242
|
+
return 1
|
|
243
|
+
fi
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
# Main function
|
|
247
|
+
main() {
|
|
248
|
+
parse_args "$@"
|
|
249
|
+
validate_inputs
|
|
250
|
+
|
|
251
|
+
log "Starting SEO consensus validation for task: $TASK_ID"
|
|
252
|
+
|
|
253
|
+
# Collect agent scores
|
|
254
|
+
local scores_array
|
|
255
|
+
readarray -t scores_array < <(collect_agent_scores)
|
|
256
|
+
|
|
257
|
+
# Validate consensus
|
|
258
|
+
if validate_consensus "${scores_array[@]}"; then
|
|
259
|
+
log "SEO consensus validation completed successfully"
|
|
260
|
+
exit 0
|
|
261
|
+
else
|
|
262
|
+
log "SEO consensus validation failed"
|
|
263
|
+
exit 1
|
|
264
|
+
fi
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
# Script entry point
|
|
268
|
+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
269
|
+
main "$@"
|
|
270
|
+
fi
|
|
@@ -1,100 +1,118 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
configPath;
|
|
8
|
-
schemaPath;
|
|
9
|
-
ajv;
|
|
10
|
-
constructor(){
|
|
11
|
-
this.configPath = path.join(process.env.HOME || "", ".claude-flow-config.json");
|
|
12
|
-
this.schemaPath = path.join(__dirname, "../../.claude/skills/config-management/config.json");
|
|
13
|
-
this.ajv = new Ajv();
|
|
14
|
-
}
|
|
15
|
-
static getInstance() {
|
|
16
|
-
if (!ConfigManager._instance) {
|
|
17
|
-
ConfigManager._instance = new ConfigManager();
|
|
18
|
-
}
|
|
19
|
-
return ConfigManager._instance;
|
|
20
|
-
}
|
|
21
|
-
async readConfig() {
|
|
22
|
-
try {
|
|
23
|
-
const configContent = await fs.readFile(this.configPath, "utf-8");
|
|
24
|
-
return JSON.parse(configContent);
|
|
25
|
-
} catch (error) {
|
|
26
|
-
// If config doesn't exist, create from schema
|
|
27
|
-
return this.resetToDefaults();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
async writeConfig(config) {
|
|
31
|
-
const schemaContent = await fs.readFile(this.schemaPath, "utf-8");
|
|
32
|
-
const schema = JSON.parse(schemaContent);
|
|
33
|
-
const validate = this.ajv.compile(schema);
|
|
34
|
-
if (!validate(config)) {
|
|
35
|
-
throw new Error("Invalid configuration: " + this.ajv.errorsText(validate.errors));
|
|
36
|
-
}
|
|
37
|
-
await fs.writeFile(this.configPath, JSON.stringify(config, null, 2), "utf-8");
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) {
|
|
4
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
5
|
+
resolve(value);
|
|
6
|
+
});
|
|
38
7
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
8
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
9
|
+
function fulfilled(value) {
|
|
10
|
+
try {
|
|
11
|
+
step(generator.next(value));
|
|
12
|
+
} catch (e) {
|
|
13
|
+
reject(e);
|
|
14
|
+
}
|
|
46
15
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return JSON.parse(customConfigContent);
|
|
54
|
-
} catch (error) {
|
|
55
|
-
// If custom config doesn't exist or can't be read, return empty object
|
|
56
|
-
return {};
|
|
16
|
+
function rejected(value) {
|
|
17
|
+
try {
|
|
18
|
+
step(generator["throw"](value));
|
|
19
|
+
} catch (e) {
|
|
20
|
+
reject(e);
|
|
21
|
+
}
|
|
57
22
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const config = await this.readConfig();
|
|
61
|
-
// Type assertion to handle full object
|
|
62
|
-
if (typeof value === "object" && value !== null) {
|
|
63
|
-
config[key] = value;
|
|
64
|
-
} else {
|
|
65
|
-
throw new Error("Invalid configuration value");
|
|
23
|
+
function step(result) {
|
|
24
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
66
25
|
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
26
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
30
|
+
var _ = {
|
|
31
|
+
label: 0,
|
|
32
|
+
sent: function() {
|
|
33
|
+
if (t[0] & 1) throw t[1];
|
|
34
|
+
return t[1];
|
|
35
|
+
},
|
|
36
|
+
trys: [],
|
|
37
|
+
ops: []
|
|
38
|
+
}, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
39
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
40
|
+
return this;
|
|
41
|
+
}), g;
|
|
42
|
+
function verb(n) {
|
|
43
|
+
return function(v) {
|
|
44
|
+
return step([
|
|
45
|
+
n,
|
|
46
|
+
v
|
|
47
|
+
]);
|
|
90
48
|
};
|
|
91
|
-
await this.writeConfig(defaultConfig);
|
|
92
|
-
return defaultConfig;
|
|
93
49
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
50
|
+
function step(op) {
|
|
51
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
52
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
53
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
54
|
+
if (y = 0, t) op = [
|
|
55
|
+
op[0] & 2,
|
|
56
|
+
t.value
|
|
57
|
+
];
|
|
58
|
+
switch(op[0]){
|
|
59
|
+
case 0:
|
|
60
|
+
case 1:
|
|
61
|
+
t = op;
|
|
62
|
+
break;
|
|
63
|
+
case 4:
|
|
64
|
+
_.label++;
|
|
65
|
+
return {
|
|
66
|
+
value: op[1],
|
|
67
|
+
done: false
|
|
68
|
+
};
|
|
69
|
+
case 5:
|
|
70
|
+
_.label++;
|
|
71
|
+
y = op[1];
|
|
72
|
+
op = [
|
|
73
|
+
0
|
|
74
|
+
];
|
|
75
|
+
continue;
|
|
76
|
+
case 7:
|
|
77
|
+
op = _.ops.pop();
|
|
78
|
+
_.trys.pop();
|
|
79
|
+
continue;
|
|
80
|
+
default:
|
|
81
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
82
|
+
_ = 0;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
86
|
+
_.label = op[1];
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
90
|
+
_.label = t[1];
|
|
91
|
+
t = op;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (t && _.label < t[2]) {
|
|
95
|
+
_.label = t[2];
|
|
96
|
+
_.ops.push(op);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
if (t[2]) _.ops.pop();
|
|
100
|
+
_.trys.pop();
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
op = body.call(thisArg, _);
|
|
104
|
+
} catch (e) {
|
|
105
|
+
op = [
|
|
106
|
+
6,
|
|
107
|
+
e
|
|
108
|
+
];
|
|
109
|
+
y = 0;
|
|
110
|
+
} finally{
|
|
111
|
+
f = t = 0;
|
|
112
|
+
}
|
|
113
|
+
if (op[0] & 5) throw op[1];
|
|
114
|
+
return {
|
|
115
|
+
value: op[0] ? op[1] : void 0,
|
|
98
116
|
done: true
|
|
99
117
|
};
|
|
100
118
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow-novice",
|
|
3
|
-
"version": "2.14.
|
|
3
|
+
"version": "2.14.5",
|
|
4
4
|
"description": "AI agent orchestration framework with namespace-isolated skills, agents, and CFN Loop validation. Safe installation with ~0.01% collision risk.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|