claude-flow-novice 2.14.3 → 2.14.4
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/CFN_LOOP_TASK_MODE.md +4 -47
- package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
- package/claude-assets/commands/CFN_LOOP_TASK_MODE.md +4 -47
- package/claude-assets/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -276
- package/dist/agents/agent-loader.js +165 -146
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +25 -0
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/config-manager.js +91 -109
- package/package.json +1 -1
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
- package/.claude/skills/cfn-redis-coordination/LOGGING.md +0 -260
- package/.claude/skills/cfn-redis-coordination/README.md +0 -65
- package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
- package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
- package/.claude/skills/cfn-redis-coordination/SKILL.md +0 -720
- package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
- package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
- package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
- package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
- package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
- package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
- package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
- package/.claude/skills/cfn-redis-coordination/examples/README.md +0 -73
- package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
- package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
- package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
- package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
- package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
- package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
- package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
- package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
- package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
- package/.claude/skills/cfn-redis-coordination/heartbeat.sh +0 -126
- package/.claude/skills/cfn-redis-coordination/init-swarm.sh +0 -148
- package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
- package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
- package/.claude/skills/cfn-redis-coordination/log-event.sh +0 -109
- package/.claude/skills/cfn-redis-coordination/metrics-export.sh +0 -674
- package/.claude/skills/cfn-redis-coordination/metrics-schema.json +0 -66
- package/.claude/skills/cfn-redis-coordination/metrics-storage.md +0 -31
- package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
- package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
- package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
- package/.claude/skills/cfn-redis-coordination/priority_wake.py +0 -134
- package/.claude/skills/cfn-redis-coordination/query-dlq.sh +0 -162
- package/.claude/skills/cfn-redis-coordination/query-logs.sh +0 -103
- package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
- package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
- package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
- package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
- package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
- package/.claude/skills/cfn-redis-coordination/signal.sh +0 -38
- package/.claude/skills/cfn-redis-coordination/store-context.sh +0 -86
- package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
- package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
- package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
- package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
- package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
- package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
- package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
- package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
- package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
- package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
- package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
- package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
- package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
- package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
- package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
- package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT.md +0 -57
- package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +0 -267
- package/claude-assets/skills/cfn-redis-coordination/LOGGING.md +0 -260
- package/claude-assets/skills/cfn-redis-coordination/README.md +0 -65
- package/claude-assets/skills/cfn-redis-coordination/SECURITY_REVIEW.md +0 -25
- package/claude-assets/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +0 -164
- package/claude-assets/skills/cfn-redis-coordination/SKILL.md +0 -720
- package/claude-assets/skills/cfn-redis-coordination/demos/test-dlq.sh +0 -129
- package/claude-assets/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +0 -320
- package/claude-assets/skills/cfn-redis-coordination/demos/test-orchestrator.sh +0 -249
- package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
- package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
- package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake.sh +0 -138
- package/claude-assets/skills/cfn-redis-coordination/demos/test-quick-fix.sh +0 -81
- package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +0 -45
- package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +0 -68
- package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +0 -56
- package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +0 -81
- package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum.sh +0 -57
- package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +0 -187
- package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown.sh +0 -160
- package/claude-assets/skills/cfn-redis-coordination/demos/test-utils-unix.sh +0 -97
- package/claude-assets/skills/cfn-redis-coordination/demos/test-utils.sh +0 -97
- package/claude-assets/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +0 -59
- package/claude-assets/skills/cfn-redis-coordination/examples/README.md +0 -73
- package/claude-assets/skills/cfn-redis-coordination/examples/grafana-dashboard.json +0 -352
- package/claude-assets/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +0 -127
- package/claude-assets/skills/cfn-redis-coordination/examples/mesh-pattern.sh +0 -171
- package/claude-assets/skills/cfn-redis-coordination/examples/timeout-handling.sh +0 -227
- package/claude-assets/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +0 -239
- package/claude-assets/skills/cfn-redis-coordination/execute-product-owner-decision.sh +0 -258
- package/claude-assets/skills/cfn-redis-coordination/get-agent-timeout.sh +0 -177
- package/claude-assets/skills/cfn-redis-coordination/heartbeat-functions.sh +0 -137
- package/claude-assets/skills/cfn-redis-coordination/heartbeat-protocol.md +0 -106
- package/claude-assets/skills/cfn-redis-coordination/heartbeat.sh +0 -126
- package/claude-assets/skills/cfn-redis-coordination/init-swarm.sh +0 -148
- package/claude-assets/skills/cfn-redis-coordination/invoke-redis-pattern.sh +0 -220
- package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +0 -283
- package/claude-assets/skills/cfn-redis-coordination/list-active-swarms.sh +0 -147
- package/claude-assets/skills/cfn-redis-coordination/log-event.sh +0 -109
- package/claude-assets/skills/cfn-redis-coordination/metrics-export.sh +0 -674
- package/claude-assets/skills/cfn-redis-coordination/metrics-schema.json +0 -66
- package/claude-assets/skills/cfn-redis-coordination/metrics-storage.md +0 -31
- package/claude-assets/skills/cfn-redis-coordination/monitor-cfn-violations.sh +0 -391
- package/claude-assets/skills/cfn-redis-coordination/monitor-heartbeats.sh +0 -101
- package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
- package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +0 -31
- package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
- package/claude-assets/skills/cfn-redis-coordination/priority-wake-mechanism.md +0 -75
- package/claude-assets/skills/cfn-redis-coordination/priority_wake.py +0 -134
- package/claude-assets/skills/cfn-redis-coordination/query-dlq.sh +0 -162
- package/claude-assets/skills/cfn-redis-coordination/query-logs.sh +0 -103
- package/claude-assets/skills/cfn-redis-coordination/redis-pattern.sh +0 -619
- package/claude-assets/skills/cfn-redis-coordination/retrieve-context.sh +0 -58
- package/claude-assets/skills/cfn-redis-coordination/select-specialist-agent.sh +0 -371
- package/claude-assets/skills/cfn-redis-coordination/semantic-match-tfidf.py +0 -252
- package/claude-assets/skills/cfn-redis-coordination/send-heartbeat.sh +0 -165
- package/claude-assets/skills/cfn-redis-coordination/signal.sh +0 -38
- package/claude-assets/skills/cfn-redis-coordination/store-context.sh +0 -86
- package/claude-assets/skills/cfn-redis-coordination/store-epic-context.sh +0 -123
- package/claude-assets/skills/cfn-redis-coordination/test-context-injection.sh +0 -354
- package/claude-assets/skills/cfn-redis-coordination/test-timeout-enforcement.sh +0 -513
- package/claude-assets/skills/cfn-redis-coordination/tests/convert-line-endings.sh +0 -15
- package/claude-assets/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +0 -102
- package/claude-assets/skills/cfn-redis-coordination/tests/edge-cases-test.sh +0 -99
- package/claude-assets/skills/cfn-redis-coordination/tests/integration-test.sh +0 -170
- package/claude-assets/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +0 -82
- package/claude-assets/skills/cfn-redis-coordination/tests/run-test-suite.sh +0 -92
- package/claude-assets/skills/cfn-redis-coordination/tests/run-tests.sh +0 -4
- package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
- package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +0 -124
- package/claude-assets/skills/cfn-redis-coordination/tests/test-primitives.sh +0 -166
- package/claude-assets/skills/cfn-redis-coordination/tests/test-utils.sh +0 -54
- package/claude-assets/skills/cfn-redis-coordination/tests/test_utils.sh +0 -49
- package/claude-assets/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +0 -76
- package/claude-assets/skills/cfn-redis-coordination/validate-parameters.sh +0 -492
|
@@ -1,354 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Context Injection Test Utility
|
|
4
|
-
# Validates end-to-end context propagation through CFN Loop layers
|
|
5
|
-
|
|
6
|
-
set -euo pipefail
|
|
7
|
-
|
|
8
|
-
# Colors for output
|
|
9
|
-
RED='\033[0;31m'
|
|
10
|
-
GREEN='\033[0;32m'
|
|
11
|
-
YELLOW='\033[1;33m'
|
|
12
|
-
BLUE='\033[0;34m'
|
|
13
|
-
NC='\033[0m' # No Color
|
|
14
|
-
|
|
15
|
-
# Default configuration
|
|
16
|
-
TASK_ID=""
|
|
17
|
-
TEST_MODE=false
|
|
18
|
-
VERBOSE=false
|
|
19
|
-
EPIC_CONTEXT=""
|
|
20
|
-
PHASE_CONTEXT=""
|
|
21
|
-
SUCCESS_CRITERIA=""
|
|
22
|
-
|
|
23
|
-
# Logging functions
|
|
24
|
-
log_info() {
|
|
25
|
-
if [[ "$VERBOSE" == true ]]; then
|
|
26
|
-
echo -e "${BLUE}[INFO]${NC} $1"
|
|
27
|
-
fi
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
log_success() {
|
|
31
|
-
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
log_error() {
|
|
35
|
-
echo -e "${RED}[ERROR]${NC} $1"
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
log_warning() {
|
|
39
|
-
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
# Usage information
|
|
43
|
-
usage() {
|
|
44
|
-
cat << EOF
|
|
45
|
-
Context Injection Test Utility
|
|
46
|
-
|
|
47
|
-
USAGE:
|
|
48
|
-
$0 [OPTIONS]
|
|
49
|
-
|
|
50
|
-
OPTIONS:
|
|
51
|
-
-t, --task-id <ID> Task ID for Redis operations
|
|
52
|
-
-e, --epic-context <JSON> Epic context JSON
|
|
53
|
-
-p, --phase-context <JSON> Phase context JSON
|
|
54
|
-
-s, --success-criteria <JSON> Success criteria JSON
|
|
55
|
-
--test-mode Run in test mode with sample data
|
|
56
|
-
-v, --verbose Enable verbose logging
|
|
57
|
-
-h, --help Show this help message
|
|
58
|
-
|
|
59
|
-
EXAMPLES:
|
|
60
|
-
# Test mode (validates infrastructure)
|
|
61
|
-
$0 --test-mode
|
|
62
|
-
|
|
63
|
-
# Production mode with custom contexts
|
|
64
|
-
$0 -t "my-task-123" \\
|
|
65
|
-
-e '{"epicGoal":"Build feature","inScope":["API"]}' \\
|
|
66
|
-
-p '{"phaseId":"phase-1","deliverables":["api.js"]}' \\
|
|
67
|
-
-s '{"acceptanceCriteria":["Tests pass"],"gateThreshold":0.8}'
|
|
68
|
-
|
|
69
|
-
EOF
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
# Parse command line arguments
|
|
73
|
-
parse_args() {
|
|
74
|
-
while [[ $# -gt 0 ]]; do
|
|
75
|
-
case $1 in
|
|
76
|
-
-t|--task-id)
|
|
77
|
-
TASK_ID="$2"
|
|
78
|
-
shift 2
|
|
79
|
-
;;
|
|
80
|
-
-e|--epic-context)
|
|
81
|
-
EPIC_CONTEXT="$2"
|
|
82
|
-
shift 2
|
|
83
|
-
;;
|
|
84
|
-
-p|--phase-context)
|
|
85
|
-
PHASE_CONTEXT="$2"
|
|
86
|
-
shift 2
|
|
87
|
-
;;
|
|
88
|
-
-s|--success-criteria)
|
|
89
|
-
SUCCESS_CRITERIA="$2"
|
|
90
|
-
shift 2
|
|
91
|
-
;;
|
|
92
|
-
--test-mode)
|
|
93
|
-
TEST_MODE=true
|
|
94
|
-
shift
|
|
95
|
-
;;
|
|
96
|
-
-v|--verbose)
|
|
97
|
-
VERBOSE=true
|
|
98
|
-
shift
|
|
99
|
-
;;
|
|
100
|
-
-h|--help)
|
|
101
|
-
usage
|
|
102
|
-
exit 0
|
|
103
|
-
;;
|
|
104
|
-
*)
|
|
105
|
-
log_error "Unknown option: $1"
|
|
106
|
-
usage
|
|
107
|
-
exit 1
|
|
108
|
-
;;
|
|
109
|
-
esac
|
|
110
|
-
done
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
# Validate Redis connectivity
|
|
114
|
-
validate_redis() {
|
|
115
|
-
log_info "Validating Redis connectivity..."
|
|
116
|
-
if ! redis-cli ping > /dev/null 2>&1; then
|
|
117
|
-
log_error "Redis is not available"
|
|
118
|
-
return 1
|
|
119
|
-
fi
|
|
120
|
-
log_success "Redis connectivity validated"
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
# Validate JSON format
|
|
124
|
-
validate_json() {
|
|
125
|
-
local json_string="$1"
|
|
126
|
-
local context_type="$2"
|
|
127
|
-
|
|
128
|
-
log_info "Validating $context_type JSON format..."
|
|
129
|
-
if ! echo "$json_string" | jq . > /dev/null 2>&1; then
|
|
130
|
-
log_error "Invalid JSON in $context_type: $json_string"
|
|
131
|
-
return 1
|
|
132
|
-
fi
|
|
133
|
-
log_success "$context_type JSON format validated"
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
# Store context in Redis
|
|
137
|
-
store_context() {
|
|
138
|
-
local context="$1"
|
|
139
|
-
local context_type="$2"
|
|
140
|
-
local redis_key="test:${TASK_ID}:${context_type}"
|
|
141
|
-
|
|
142
|
-
log_info "Storing $context_type in Redis..."
|
|
143
|
-
if ! redis-cli set "$redis_key" "$context" > /dev/null 2>&1; then
|
|
144
|
-
log_error "Failed to store $context_type in Redis"
|
|
145
|
-
return 1
|
|
146
|
-
fi
|
|
147
|
-
log_success "$context_type stored in Redis: $redis_key"
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
# Retrieve context from Redis
|
|
151
|
-
retrieve_context() {
|
|
152
|
-
local context_type="$1"
|
|
153
|
-
local redis_key="test:${TASK_ID}:${context_type}"
|
|
154
|
-
|
|
155
|
-
log_info "Retrieving $context_type from Redis..."
|
|
156
|
-
local retrieved=$(redis-cli get "$redis_key" 2>/dev/null || echo "")
|
|
157
|
-
|
|
158
|
-
if [[ -z "$retrieved" ]]; then
|
|
159
|
-
log_error "Failed to retrieve $context_type from Redis"
|
|
160
|
-
return 1
|
|
161
|
-
fi
|
|
162
|
-
|
|
163
|
-
log_success "$context_type retrieved from Redis"
|
|
164
|
-
echo "$retrieved"
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
# Test context propagation
|
|
168
|
-
test_propagation() {
|
|
169
|
-
log_info "Testing context propagation..."
|
|
170
|
-
|
|
171
|
-
local epic_retrieved=$(retrieve_context "epic-context")
|
|
172
|
-
local phase_retrieved=$(retrieve_context "phase-context")
|
|
173
|
-
local success_retrieved=$(retrieve_context "success-criteria")
|
|
174
|
-
|
|
175
|
-
# Validate content matches
|
|
176
|
-
if [[ "$epic_retrieved" != "$EPIC_CONTEXT" ]]; then
|
|
177
|
-
log_error "Epic context mismatch"
|
|
178
|
-
return 1
|
|
179
|
-
fi
|
|
180
|
-
|
|
181
|
-
if [[ "$phase_retrieved" != "$PHASE_CONTEXT" ]]; then
|
|
182
|
-
log_error "Phase context mismatch"
|
|
183
|
-
return 1
|
|
184
|
-
fi
|
|
185
|
-
|
|
186
|
-
if [[ "$success_retrieved" != "$SUCCESS_CRITERIA" ]]; then
|
|
187
|
-
log_error "Success criteria mismatch"
|
|
188
|
-
return 1
|
|
189
|
-
fi
|
|
190
|
-
|
|
191
|
-
log_success "All context propagation tests passed"
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
# Simulate agent context injection
|
|
195
|
-
simulate_agent_injection() {
|
|
196
|
-
log_info "Simulating agent context injection..."
|
|
197
|
-
|
|
198
|
-
# Create combined context for agent
|
|
199
|
-
local combined_context=$(jq -n \
|
|
200
|
-
--argjson epic "$EPIC_CONTEXT" \
|
|
201
|
-
--argjson phase "$PHASE_CONTEXT" \
|
|
202
|
-
--argjson success "$SUCCESS_CRITERIA" \
|
|
203
|
-
'{
|
|
204
|
-
epic: $epic,
|
|
205
|
-
phase: $phase,
|
|
206
|
-
success: $success
|
|
207
|
-
}')
|
|
208
|
-
|
|
209
|
-
# Create temporary agent script
|
|
210
|
-
cat > /tmp/test-agent-context.sh << EOF
|
|
211
|
-
#!/bin/bash
|
|
212
|
-
CONTEXT="\$1"
|
|
213
|
-
|
|
214
|
-
echo "Agent received context:"
|
|
215
|
-
echo "\$CONTEXT" | jq .
|
|
216
|
-
|
|
217
|
-
# Validate agent can access all context layers
|
|
218
|
-
EPIC_GOAL=\$(echo "\$CONTEXT" | jq -r '.epic.epicGoal')
|
|
219
|
-
PHASE_ID=\$(echo "\$CONTEXT" | jq -r '.phase.phaseId')
|
|
220
|
-
GATE_THRESHOLD=\$(echo "\$CONTEXT" | jq -r '.success.gateThreshold')
|
|
221
|
-
|
|
222
|
-
echo "Epic Goal: \$EPIC_GOAL"
|
|
223
|
-
echo "Phase ID: \$PHASE_ID"
|
|
224
|
-
echo "Gate Threshold: \$GATE_THRESHOLD"
|
|
225
|
-
|
|
226
|
-
# Create deliverables based on context
|
|
227
|
-
DELIVERABLES=\$(echo "\$CONTEXT" | jq -r '.phase.deliverables[]')
|
|
228
|
-
for deliverable in \$DELIVERABLES; do
|
|
229
|
-
touch "/tmp/\$deliverable"
|
|
230
|
-
echo "Created deliverable: \$deliverable"
|
|
231
|
-
done
|
|
232
|
-
EOF
|
|
233
|
-
|
|
234
|
-
chmod +x /tmp/test-agent-context.sh
|
|
235
|
-
|
|
236
|
-
# Execute agent script with context
|
|
237
|
-
if /tmp/test-agent-context.sh "$combined_context"; then
|
|
238
|
-
log_success "Agent context injection simulation successful"
|
|
239
|
-
else
|
|
240
|
-
log_error "Agent context injection simulation failed"
|
|
241
|
-
return 1
|
|
242
|
-
fi
|
|
243
|
-
|
|
244
|
-
# Cleanup
|
|
245
|
-
rm -f /tmp/test-agent-context.sh
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
# Cleanup test data
|
|
249
|
-
cleanup() {
|
|
250
|
-
log_info "Cleaning up test data..."
|
|
251
|
-
|
|
252
|
-
local test_keys=$(redis-cli keys "test:${TASK_ID}:*" 2>/dev/null || true)
|
|
253
|
-
if [[ -n "$test_keys" ]]; then
|
|
254
|
-
echo "$test_keys" | xargs redis-cli del > /dev/null
|
|
255
|
-
log_success "Test keys cleaned up from Redis"
|
|
256
|
-
fi
|
|
257
|
-
|
|
258
|
-
# Cleanup temporary files
|
|
259
|
-
rm -f /tmp/test-agent-context.sh
|
|
260
|
-
local deliverables=$(echo "$PHASE_CONTEXT" | jq -r '.deliverables[]' 2>/dev/null || true)
|
|
261
|
-
for deliverable in $deliverables; do
|
|
262
|
-
rm -f "/tmp/$deliverable"
|
|
263
|
-
done
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
# Test mode with sample data
|
|
267
|
-
run_test_mode() {
|
|
268
|
-
log_info "Running in test mode..."
|
|
269
|
-
|
|
270
|
-
# Generate test task ID
|
|
271
|
-
TASK_ID="context-injection-test-$(date +%s)"
|
|
272
|
-
|
|
273
|
-
# Sample context data
|
|
274
|
-
EPIC_CONTEXT='{
|
|
275
|
-
"epicGoal": "Test context injection validation",
|
|
276
|
-
"inScope": ["Redis operations", "Agent spawning", "Context propagation"],
|
|
277
|
-
"outOfScope": ["Performance optimization", "New context types"]
|
|
278
|
-
}'
|
|
279
|
-
|
|
280
|
-
PHASE_CONTEXT='{
|
|
281
|
-
"phaseId": "test-phase",
|
|
282
|
-
"deliverables": ["test-deliverable-1.txt", "test-deliverable-2.txt"],
|
|
283
|
-
"directory": "/tmp/test-context",
|
|
284
|
-
"acceptanceCriteria": ["All contexts propagated", "Deliverables created"]
|
|
285
|
-
}'
|
|
286
|
-
|
|
287
|
-
SUCCESS_CRITERIA='{
|
|
288
|
-
"acceptanceCriteria": [
|
|
289
|
-
"Epic context retrieved correctly",
|
|
290
|
-
"Phase context injected successfully",
|
|
291
|
-
"Success criteria visible to validators"
|
|
292
|
-
],
|
|
293
|
-
"gateThreshold": 0.8,
|
|
294
|
-
"maxIterations": 3
|
|
295
|
-
}'
|
|
296
|
-
|
|
297
|
-
log_success "Test mode data initialized"
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
# Main execution
|
|
301
|
-
main() {
|
|
302
|
-
# Parse arguments
|
|
303
|
-
parse_args "$@"
|
|
304
|
-
|
|
305
|
-
# Validate required parameters
|
|
306
|
-
if [[ "$TEST_MODE" == false ]]; then
|
|
307
|
-
if [[ -z "$TASK_ID" || -z "$EPIC_CONTEXT" || -z "$PHASE_CONTEXT" || -z "$SUCCESS_CRITERIA" ]]; then
|
|
308
|
-
log_error "Missing required parameters. Use --help for usage information."
|
|
309
|
-
exit 1
|
|
310
|
-
fi
|
|
311
|
-
else
|
|
312
|
-
run_test_mode
|
|
313
|
-
fi
|
|
314
|
-
|
|
315
|
-
log_info "Starting context injection validation"
|
|
316
|
-
log_info "Task ID: $TASK_ID"
|
|
317
|
-
echo "========================================"
|
|
318
|
-
|
|
319
|
-
# Validation pipeline
|
|
320
|
-
validate_redis || exit 1
|
|
321
|
-
validate_json "$EPIC_CONTEXT" "epic-context" || exit 1
|
|
322
|
-
validate_json "$PHASE_CONTEXT" "phase-context" || exit 1
|
|
323
|
-
validate_json "$SUCCESS_CRITERIA" "success-criteria" || exit 1
|
|
324
|
-
|
|
325
|
-
# Store contexts
|
|
326
|
-
store_context "$EPIC_CONTEXT" "epic-context" || exit 1
|
|
327
|
-
store_context "$PHASE_CONTEXT" "phase-context" || exit 1
|
|
328
|
-
store_context "$SUCCESS_CRITERIA" "success-criteria" || exit 1
|
|
329
|
-
|
|
330
|
-
# Test propagation
|
|
331
|
-
test_propagation || exit 1
|
|
332
|
-
|
|
333
|
-
# Simulate agent injection
|
|
334
|
-
simulate_agent_injection || exit 1
|
|
335
|
-
|
|
336
|
-
# Cleanup
|
|
337
|
-
cleanup
|
|
338
|
-
|
|
339
|
-
echo "========================================"
|
|
340
|
-
log_success "Context injection validation completed successfully!"
|
|
341
|
-
log_success "All tests passed - context propagation working correctly"
|
|
342
|
-
|
|
343
|
-
if [[ "$TEST_MODE" == true ]]; then
|
|
344
|
-
echo ""
|
|
345
|
-
log_info "Test mode validated infrastructure readiness"
|
|
346
|
-
log_info "Ready for production context injection testing"
|
|
347
|
-
fi
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
# Handle cleanup on script exit
|
|
351
|
-
trap cleanup EXIT
|
|
352
|
-
|
|
353
|
-
# Run main function
|
|
354
|
-
main "$@"
|