claude-flow-novice 2.15.2 → 2.15.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.
Files changed (98) hide show
  1. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -243
  2. package/.claude/hooks/cfn-invoke-security-validation.sh +69 -69
  3. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +78 -78
  4. package/.claude/hooks/cfn-post-edit.config.json +44 -44
  5. package/.claude/skills/agent-lifecycle/SKILL.md +60 -0
  6. package/.claude/skills/agent-lifecycle/execute-lifecycle-hook.sh +573 -0
  7. package/.claude/skills/agent-lifecycle/simple-audit.sh +31 -0
  8. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  9. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  10. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  11. package/.claude/skills/cfn-redis-coordination/get-context.sh +112 -112
  12. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  13. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  14. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  15. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  16. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +92 -92
  17. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  18. package/claude-assets/hooks/cfn-BACKUP_USAGE.md +243 -243
  19. package/claude-assets/hooks/cfn-invoke-security-validation.sh +69 -69
  20. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +78 -78
  21. package/claude-assets/hooks/cfn-post-edit.config.json +44 -44
  22. package/claude-assets/hooks/cfn-post-execution/memory-cleanup.sh +19 -19
  23. package/claude-assets/hooks/cfn-pre-execution/memory-check.sh +19 -19
  24. package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +572 -572
  25. package/claude-assets/skills/agent-lifecycle/simple-audit.sh +30 -30
  26. package/claude-assets/skills/cfn-automatic-memory-persistence/persist-agent-output.sh +48 -48
  27. package/claude-assets/skills/cfn-automatic-memory-persistence/query-agent-history.sh +34 -34
  28. package/claude-assets/skills/cfn-deliverable-validation/confidence-calculator.sh +261 -261
  29. package/claude-assets/skills/cfn-expert-update/update-expert.sh +345 -345
  30. package/claude-assets/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  31. package/claude-assets/skills/cfn-intervention-detector/detect-intervention.sh +110 -110
  32. package/claude-assets/skills/cfn-intervention-orchestrator/execute-intervention.sh +58 -58
  33. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  34. package/claude-assets/skills/cfn-loop2-output-processing/process-validator-output.sh +275 -275
  35. package/claude-assets/skills/cfn-memory-management/check-memory.sh +159 -159
  36. package/claude-assets/skills/cfn-memory-management/cleanup-memory.sh +196 -196
  37. package/claude-assets/skills/cfn-node-heap-sizer/task-mode-heap-limiter.sh +325 -325
  38. package/claude-assets/skills/cfn-playbook-auto-update/auto-update-playbook.sh +85 -85
  39. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  40. package/claude-assets/skills/cfn-redis-coordination/get-context.sh +112 -112
  41. package/claude-assets/skills/cfn-scope-simplifier/simplify-scope.sh +67 -67
  42. package/claude-assets/skills/cfn-specialist-injection/recommend-specialist.sh +56 -56
  43. package/claude-assets/skills/cfn-standardized-error-handling/capture-agent-error.sh +86 -86
  44. package/claude-assets/skills/cfn-standardized-error-handling/test-error-handling.sh +165 -165
  45. package/claude-assets/skills/cfn-task-config-init/initialize-config.sh +264 -264
  46. package/claude-assets/skills/cfn-task-decomposition/task-decomposer.sh +278 -278
  47. package/claude-assets/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  48. package/claude-assets/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  49. package/claude-assets/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  50. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  51. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +92 -92
  52. package/claude-assets/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  53. package/claude-assets/skills/docker-build/SKILL.md +96 -203
  54. package/claude-assets/skills/docker-build/build.sh +73 -73
  55. package/claude-assets/skills/integration/agent-handoff.sh +494 -0
  56. package/claude-assets/skills/integration/file-operations.sh +414 -0
  57. package/claude-assets/skills/workflow-codification/APPROVAL_WORKFLOW.md +806 -0
  58. package/claude-assets/skills/workflow-codification/COST_TRACKING.md +637 -0
  59. package/claude-assets/skills/workflow-codification/EDGE_CASE_TRACKING.md +404 -0
  60. package/claude-assets/skills/workflow-codification/README_PHASE4.md +457 -0
  61. package/claude-assets/skills/workflow-codification/SKILL.md +110 -0
  62. package/claude-assets/skills/workflow-codification/analyze-patterns.sh +899 -0
  63. package/claude-assets/skills/workflow-codification/approval-workflow.sh +514 -0
  64. package/claude-assets/skills/workflow-codification/generate-skill-update.sh +525 -0
  65. package/claude-assets/skills/workflow-codification/review-skill.sh +643 -0
  66. package/claude-assets/skills/workflow-codification/templates/email-notification.txt +114 -0
  67. package/claude-assets/skills/workflow-codification/templates/slack-notification.md +85 -0
  68. package/claude-assets/skills/workflow-codification/test-integration.sh +281 -0
  69. package/claude-assets/skills/workflow-codification/track-cost-savings.sh +445 -0
  70. package/claude-assets/skills/workflow-codification/track-edge-case.sh +323 -0
  71. package/dist/cli/config-manager.js +91 -109
  72. package/dist/cli/config-manager.js.map +1 -1
  73. package/dist/integration/DatabaseHandoff.js +507 -0
  74. package/dist/integration/DatabaseHandoff.js.map +1 -0
  75. package/dist/integration/StandardAdapter.js +291 -0
  76. package/dist/integration/StandardAdapter.js.map +1 -0
  77. package/dist/lib/agent-output-parser.js +518 -0
  78. package/dist/lib/agent-output-parser.js.map +1 -0
  79. package/dist/lib/agent-output-validator.js +950 -0
  80. package/dist/lib/agent-output-validator.js.map +1 -0
  81. package/dist/lib/artifact-registry.js +443 -0
  82. package/dist/lib/artifact-registry.js.map +1 -0
  83. package/dist/lib/config-validator.js +687 -0
  84. package/dist/lib/config-validator.js.map +1 -0
  85. package/dist/types/agent-output.js +44 -0
  86. package/dist/types/agent-output.js.map +1 -0
  87. package/dist/types/config.js +28 -0
  88. package/dist/types/config.js.map +1 -0
  89. package/package.json +2 -1
  90. package/scripts/artifact-cleanup.sh +392 -0
  91. package/scripts/deploy-production.sh +355 -355
  92. package/scripts/docker-playwright-fix.sh +311 -311
  93. package/scripts/docker-rebuild-all-agents.sh +127 -127
  94. package/scripts/memory-leak-prevention.sh +305 -305
  95. package/scripts/migrate-artifacts.sh +563 -0
  96. package/scripts/migrate-yaml-to-json.sh +465 -0
  97. package/scripts/run-marketing-tests.sh +42 -42
  98. package/scripts/update_paths.sh +46 -46
@@ -1,368 +1,368 @@
1
- #!/bin/bash
2
-
3
- # Transparency Middleware Test Suite
4
- # Version: 1.0.0
5
- # Sprint: 1.2 Middleware Skills Wrapper
6
-
7
- set -euo pipefail
8
-
9
- # Import testing utilities
10
- source .claude/skills/cfn-common/test-utils.sh
11
- source .claude/skills/cfn-transparency-middleware/middleware-config.sh
12
-
13
- # Logging configuration
14
- LOG_FILE="/tmp/transparency-middleware-tests.log"
15
- touch "$LOG_FILE"
16
-
17
- # Redis connection parameters
18
- REDIS_HOST="${REDIS_HOST:-localhost}"
19
- REDIS_PORT="${REDIS_PORT:-6379}"
20
-
21
- # Test suite global variables
22
- TEST_TASK_ID="transparency-test-$(date +%s)"
23
- TOTAL_TESTS=10
24
- PASSED_TESTS=0
25
-
26
- # Utility Functions
27
- log_test_start() {
28
- echo "[TEST] Starting: $1" | tee -a "$LOG_FILE"
29
- }
30
-
31
- log_test_result() {
32
- local status="$1"
33
- local message="$2"
34
- if [ "$status" -eq 0 ]; then
35
- echo "[PASS] $message" | tee -a "$LOG_FILE"
36
- ((PASSED_TESTS++))
37
- else
38
- echo "[FAIL] $message" | tee -a "$LOG_FILE"
39
- fi
40
- }
41
-
42
- # Test 1: Initialization
43
- test_initialization() {
44
- log_test_start "Initialization Tests"
45
- local test_result=0
46
-
47
- # Test minimal transparency level
48
- ./invoke-transparency-middleware.sh init \
49
- --task-id "$TEST_TASK_ID" \
50
- --level minimal || test_result=1
51
-
52
- # Verify configuration
53
- local config=$(redis-cli hget "transparency:${TEST_TASK_ID}" config)
54
- [[ "$config" =~ "level:minimal" ]] || test_result=1
55
-
56
- # Test Redis connection
57
- redis-cli ping || test_result=1
58
-
59
- log_test_result "$test_result" "Initialization Test"
60
- return "$test_result"
61
- }
62
-
63
- # Test 2: Message Observation
64
- test_message_observation() {
65
- log_test_start "Message Observation"
66
- local test_result=0
67
-
68
- # Simulate message generation
69
- ./invoke-transparency-middleware.sh subscribe \
70
- --task-id "$TEST_TASK_ID" \
71
- --channel "test-channel" || test_result=1
72
-
73
- # Publish test message
74
- redis-cli publish "test-channel" "Test observation message" || test_result=1
75
-
76
- # Check message reception
77
- local message=$(redis-cli blpop "transparency:${TEST_TASK_ID}:messages" 5)
78
- [[ -n "$message" ]] || test_result=1
79
-
80
- log_test_result "$test_result" "Message Observation Test"
81
- return "$test_result"
82
- }
83
-
84
- # Test 3: Transparency Level Changes
85
- test_transparency_levels() {
86
- log_test_start "Transparency Level Changes"
87
- local test_result=0
88
-
89
- # Test level progression
90
- local levels=("minimal" "detailed" "verbose" "debug")
91
- for level in "${levels[@]}"; do
92
- ./invoke-transparency-middleware.sh set-level \
93
- --task-id "$TEST_TASK_ID" \
94
- --level "$level" || test_result=1
95
- done
96
-
97
- log_test_result "$test_result" "Transparency Level Changes Test"
98
- return "$test_result"
99
- }
100
-
101
- # Test 4: Filter Management
102
- test_filter_management() {
103
- log_test_start "Filter Management"
104
- local test_result=0
105
-
106
- # Initialize
107
- ./invoke-transparency-middleware.sh init \
108
- --task-id "$TEST_TASK_ID" \
109
- --level detailed || test_result=1
110
-
111
- # Add include filter
112
- ./invoke-transparency-middleware.sh add-filter \
113
- --task-id "$TEST_TASK_ID" \
114
- --name "Error Filter" \
115
- --type include \
116
- --pattern "error|critical" || test_result=1
117
-
118
- # List filters
119
- local filters=$(./invoke-transparency-middleware.sh list-filters \
120
- --task-id "$TEST_TASK_ID")
121
- [[ "$filters" =~ "Error Filter" ]] || test_result=1
122
-
123
- # Test filter pattern
124
- local match=$(./invoke-transparency-middleware.sh test-filter \
125
- --task-id "$TEST_TASK_ID" \
126
- --name "Error Filter" \
127
- --message "critical system error")
128
- [[ "$match" == "true" ]] || test_result=1
129
-
130
- # Remove filter
131
- ./invoke-transparency-middleware.sh remove-filter \
132
- --task-id "$TEST_TASK_ID" \
133
- --name "Error Filter" || test_result=1
134
-
135
- log_test_result "$test_result" "Filter Management Test"
136
- return "$test_result"
137
- }
138
-
139
- # Test 5: Performance Metrics
140
- test_performance_metrics() {
141
- log_test_start "Performance Metrics"
142
- local test_result=0
143
-
144
- # Initialize with verbose level
145
- ./invoke-transparency-middleware.sh init \
146
- --task-id "$TEST_TASK_ID" \
147
- --level verbose || test_result=1
148
-
149
- # Query metrics
150
- local metrics=$(./invoke-transparency-middleware.sh get-metrics \
151
- --task-id "$TEST_TASK_ID")
152
-
153
- # Verify metric fields
154
- [[ "$metrics" =~ "messages_generated" ]] || test_result=1
155
- [[ "$metrics" =~ "messages_filtered" ]] || test_result=1
156
- [[ "$metrics" =~ "overhead_percentage" ]] || test_result=1
157
- [[ "$metrics" =~ "queue_size" ]] || test_result=1
158
-
159
- # Verify overhead is reasonable (less than 10%)
160
- local overhead=$(echo "$metrics" | grep -o "overhead_percentage:[0-9.]*" | cut -d: -f2)
161
- (( $(echo "$overhead < 10" | bc -l) )) || test_result=1
162
-
163
- log_test_result "$test_result" "Performance Metrics Test"
164
- return "$test_result"
165
- }
166
-
167
- # Test 6: Redis Integration
168
- test_redis_integration() {
169
- log_test_start "Redis Integration"
170
- local test_result=0
171
-
172
- # Initialize
173
- ./invoke-transparency-middleware.sh init \
174
- --task-id "$TEST_TASK_ID" \
175
- --level detailed || test_result=1
176
-
177
- # Verify Redis keys created
178
- local config_keys=$(redis-cli keys "transparency:config:*$TEST_TASK_ID*")
179
- local state_keys=$(redis-cli keys "transparency:state:*$TEST_TASK_ID*")
180
-
181
- [[ -n "$config_keys" ]] || test_result=1
182
- [[ -n "$state_keys" ]] || test_result=1
183
-
184
- # Publish test message
185
- redis-cli publish "transparency:messages:$TEST_TASK_ID" \
186
- '{"type":"test","message":"Redis integration test"}' || test_result=1
187
-
188
- # Observe message (with timeout)
189
- local message=$(timeout 5s ./invoke-transparency-middleware.sh observe \
190
- --task-id "$TEST_TASK_ID" \
191
- --timeout 3)
192
- [[ -n "$message" ]] || test_result=1
193
-
194
- # Cleanup
195
- ./invoke-transparency-middleware.sh stop \
196
- --task-id "$TEST_TASK_ID" || test_result=1
197
-
198
- log_test_result "$test_result" "Redis Integration Test"
199
- return "$test_result"
200
- }
201
-
202
- # Test 7: Multi-Agent Scenarios
203
- test_multi_agent() {
204
- log_test_start "Multi-Agent Scenarios"
205
- local test_result=0
206
-
207
- # Initialize with different agent configs
208
- ./invoke-transparency-middleware.sh init \
209
- --task-id "${TEST_TASK_ID}-agent1" \
210
- --agent-id "agent-1" \
211
- --level detailed || test_result=1
212
-
213
- ./invoke-transparency-middleware.sh init \
214
- --task-id "${TEST_TASK_ID}-agent2" \
215
- --agent-id "agent-2" \
216
- --level verbose || test_result=1
217
-
218
- # Verify different levels per agent
219
- local agent1_level=$(./invoke-transparency-middleware.sh get-level \
220
- --agent-id "agent-1")
221
- local agent2_level=$(./invoke-transparency-middleware.sh get-level \
222
- --agent-id "agent-2")
223
-
224
- [[ "$agent1_level" == "detailed" ]] || test_result=1
225
- [[ "$agent2_level" == "verbose" ]] || test_result=1
226
-
227
- # Cleanup
228
- ./invoke-transparency-middleware.sh stop \
229
- --agent-id "agent-1" || test_result=1
230
- ./invoke-transparency-middleware.sh stop \
231
- --agent-id "agent-2" || test_result=1
232
-
233
- log_test_result "$test_result" "Multi-Agent Scenarios Test"
234
- return "$test_result"
235
- }
236
-
237
- # Test 8: Performance Overhead
238
- test_performance_overhead() {
239
- log_test_start "Performance Overhead"
240
- local test_result=0
241
-
242
- # Test each transparency level
243
- local levels=("minimal" "detailed" "verbose" "debug")
244
- local max_overheads=(1.0 3.0 5.0 10.0)
245
-
246
- for i in "${!levels[@]}"; do
247
- local level="${levels[i]}"
248
- local max_overhead="${max_overheads[i]}"
249
-
250
- ./invoke-transparency-middleware.sh init \
251
- --task-id "${TEST_TASK_ID}-${level}" \
252
- --level "$level" || test_result=1
253
-
254
- local metrics=$(./invoke-transparency-middleware.sh get-metrics \
255
- --task-id "${TEST_TASK_ID}-${level}")
256
-
257
- local overhead=$(echo "$metrics" | grep -o "overhead_percentage:[0-9.]*" | cut -d: -f2)
258
- (( $(echo "$overhead <= $max_overhead" | bc -l) )) || {
259
- echo "❌ Level $level overhead $overhead% exceeds $max_overhead%"
260
- test_result=1
261
- }
262
-
263
- ./invoke-transparency-middleware.sh stop \
264
- --task-id "${TEST_TASK_ID}-${level}" || test_result=1
265
- done
266
-
267
- log_test_result "$test_result" "Performance Overhead Test"
268
- return "$test_result"
269
- }
270
-
271
- # Test 9: Error Handling
272
- test_error_handling() {
273
- log_test_start "Error Handling"
274
- local test_result=0
275
-
276
- # Test invalid transparency level
277
- ! ./invoke-transparency-middleware.sh init \
278
- --task-id "$TEST_TASK_ID" \
279
- --level invalid 2>/dev/null || test_result=1
280
-
281
- # Test invalid task-id
282
- ! ./invoke-transparency-middleware.sh observe \
283
- --task-id "" 2>/dev/null || test_result=1
284
-
285
- # Test missing required parameters
286
- ! ./invoke-transparency-middleware.sh add-filter \
287
- --task-id "$TEST_TASK_ID" 2>/dev/null || test_result=1
288
-
289
- # Test invalid filter pattern
290
- ! ./invoke-transparency-middleware.sh add-filter \
291
- --task-id "$TEST_TASK_ID" \
292
- --name "test" \
293
- --pattern "" 2>/dev/null || test_result=1
294
-
295
- # Test observe on non-existent task
296
- ! ./invoke-transparency-middleware.sh observe \
297
- --task-id "nonexistent-task-12345" 2>/dev/null || test_result=1
298
-
299
- log_test_result "$test_result" "Error Handling Test"
300
- return "$test_result"
301
- }
302
-
303
- # Test 10: Graceful Shutdown
304
- test_graceful_shutdown() {
305
- log_test_start "Graceful Shutdown"
306
- local test_result=0
307
-
308
- # Initialize
309
- ./invoke-transparency-middleware.sh init \
310
- --task-id "$TEST_TASK_ID" \
311
- --level detailed || test_result=1
312
-
313
- # Add some data
314
- ./invoke-transparency-middleware.sh add-filter \
315
- --task-id "$TEST_TASK_ID" \
316
- --name "Test Filter" \
317
- --pattern "test" || test_result=1
318
-
319
- # Shutdown with flush
320
- ./invoke-transparency-middleware.sh stop \
321
- --task-id "$TEST_TASK_ID" \
322
- --flush || test_result=1
323
-
324
- # Verify Redis keys cleaned up
325
- local keys=$(redis-cli keys "transparency:*$TEST_TASK_ID*")
326
- [[ -z "$keys" ]] || test_result=1
327
-
328
- # Test shutdown without flush
329
- ./invoke-transparency-middleware.sh init \
330
- --task-id "${TEST_TASK_ID}-noflush" \
331
- --level minimal || test_result=1
332
-
333
- ./invoke-transparency-middleware.sh stop \
334
- --task-id "${TEST_TASK_ID}-noflush" || test_result=1
335
-
336
- log_test_result "$test_result" "Graceful Shutdown Test"
337
- return "$test_result"
338
- }
339
-
340
- # Main Test Execution
341
- main() {
342
- echo "Starting Transparency Middleware Test Suite" | tee -a "$LOG_FILE"
343
-
344
- test_initialization
345
- test_message_observation
346
- test_transparency_levels
347
- test_filter_management
348
- test_performance_metrics
349
- test_redis_integration
350
- test_multi_agent
351
- test_performance_overhead
352
- test_error_handling
353
- test_graceful_shutdown
354
-
355
- # Final Report
356
- echo "Test Results: $PASSED_TESTS/$TOTAL_TESTS passed" | tee -a "$LOG_FILE"
357
-
358
- if [ "$PASSED_TESTS" -eq "$TOTAL_TESTS" ]; then
359
- redis-cli publish "swarm:sprint-1.2:devops" "test_suite_passed:1.0"
360
- exit 0
361
- else
362
- redis-cli publish "swarm:sprint-1.2:devops" "test_suite_failed:0.0"
363
- exit 1
364
- fi
365
- }
366
-
367
- # Execute main function
1
+ #!/bin/bash
2
+
3
+ # Transparency Middleware Test Suite
4
+ # Version: 1.0.0
5
+ # Sprint: 1.2 Middleware Skills Wrapper
6
+
7
+ set -euo pipefail
8
+
9
+ # Import testing utilities
10
+ source .claude/skills/cfn-common/test-utils.sh
11
+ source .claude/skills/cfn-transparency-middleware/middleware-config.sh
12
+
13
+ # Logging configuration
14
+ LOG_FILE="/tmp/transparency-middleware-tests.log"
15
+ touch "$LOG_FILE"
16
+
17
+ # Redis connection parameters
18
+ REDIS_HOST="${REDIS_HOST:-localhost}"
19
+ REDIS_PORT="${REDIS_PORT:-6379}"
20
+
21
+ # Test suite global variables
22
+ TEST_TASK_ID="transparency-test-$(date +%s)"
23
+ TOTAL_TESTS=10
24
+ PASSED_TESTS=0
25
+
26
+ # Utility Functions
27
+ log_test_start() {
28
+ echo "[TEST] Starting: $1" | tee -a "$LOG_FILE"
29
+ }
30
+
31
+ log_test_result() {
32
+ local status="$1"
33
+ local message="$2"
34
+ if [ "$status" -eq 0 ]; then
35
+ echo "[PASS] $message" | tee -a "$LOG_FILE"
36
+ ((PASSED_TESTS++))
37
+ else
38
+ echo "[FAIL] $message" | tee -a "$LOG_FILE"
39
+ fi
40
+ }
41
+
42
+ # Test 1: Initialization
43
+ test_initialization() {
44
+ log_test_start "Initialization Tests"
45
+ local test_result=0
46
+
47
+ # Test minimal transparency level
48
+ ./invoke-transparency-middleware.sh init \
49
+ --task-id "$TEST_TASK_ID" \
50
+ --level minimal || test_result=1
51
+
52
+ # Verify configuration
53
+ local config=$(redis-cli hget "transparency:${TEST_TASK_ID}" config)
54
+ [[ "$config" =~ "level:minimal" ]] || test_result=1
55
+
56
+ # Test Redis connection
57
+ redis-cli ping || test_result=1
58
+
59
+ log_test_result "$test_result" "Initialization Test"
60
+ return "$test_result"
61
+ }
62
+
63
+ # Test 2: Message Observation
64
+ test_message_observation() {
65
+ log_test_start "Message Observation"
66
+ local test_result=0
67
+
68
+ # Simulate message generation
69
+ ./invoke-transparency-middleware.sh subscribe \
70
+ --task-id "$TEST_TASK_ID" \
71
+ --channel "test-channel" || test_result=1
72
+
73
+ # Publish test message
74
+ redis-cli publish "test-channel" "Test observation message" || test_result=1
75
+
76
+ # Check message reception
77
+ local message=$(redis-cli blpop "transparency:${TEST_TASK_ID}:messages" 5)
78
+ [[ -n "$message" ]] || test_result=1
79
+
80
+ log_test_result "$test_result" "Message Observation Test"
81
+ return "$test_result"
82
+ }
83
+
84
+ # Test 3: Transparency Level Changes
85
+ test_transparency_levels() {
86
+ log_test_start "Transparency Level Changes"
87
+ local test_result=0
88
+
89
+ # Test level progression
90
+ local levels=("minimal" "detailed" "verbose" "debug")
91
+ for level in "${levels[@]}"; do
92
+ ./invoke-transparency-middleware.sh set-level \
93
+ --task-id "$TEST_TASK_ID" \
94
+ --level "$level" || test_result=1
95
+ done
96
+
97
+ log_test_result "$test_result" "Transparency Level Changes Test"
98
+ return "$test_result"
99
+ }
100
+
101
+ # Test 4: Filter Management
102
+ test_filter_management() {
103
+ log_test_start "Filter Management"
104
+ local test_result=0
105
+
106
+ # Initialize
107
+ ./invoke-transparency-middleware.sh init \
108
+ --task-id "$TEST_TASK_ID" \
109
+ --level detailed || test_result=1
110
+
111
+ # Add include filter
112
+ ./invoke-transparency-middleware.sh add-filter \
113
+ --task-id "$TEST_TASK_ID" \
114
+ --name "Error Filter" \
115
+ --type include \
116
+ --pattern "error|critical" || test_result=1
117
+
118
+ # List filters
119
+ local filters=$(./invoke-transparency-middleware.sh list-filters \
120
+ --task-id "$TEST_TASK_ID")
121
+ [[ "$filters" =~ "Error Filter" ]] || test_result=1
122
+
123
+ # Test filter pattern
124
+ local match=$(./invoke-transparency-middleware.sh test-filter \
125
+ --task-id "$TEST_TASK_ID" \
126
+ --name "Error Filter" \
127
+ --message "critical system error")
128
+ [[ "$match" == "true" ]] || test_result=1
129
+
130
+ # Remove filter
131
+ ./invoke-transparency-middleware.sh remove-filter \
132
+ --task-id "$TEST_TASK_ID" \
133
+ --name "Error Filter" || test_result=1
134
+
135
+ log_test_result "$test_result" "Filter Management Test"
136
+ return "$test_result"
137
+ }
138
+
139
+ # Test 5: Performance Metrics
140
+ test_performance_metrics() {
141
+ log_test_start "Performance Metrics"
142
+ local test_result=0
143
+
144
+ # Initialize with verbose level
145
+ ./invoke-transparency-middleware.sh init \
146
+ --task-id "$TEST_TASK_ID" \
147
+ --level verbose || test_result=1
148
+
149
+ # Query metrics
150
+ local metrics=$(./invoke-transparency-middleware.sh get-metrics \
151
+ --task-id "$TEST_TASK_ID")
152
+
153
+ # Verify metric fields
154
+ [[ "$metrics" =~ "messages_generated" ]] || test_result=1
155
+ [[ "$metrics" =~ "messages_filtered" ]] || test_result=1
156
+ [[ "$metrics" =~ "overhead_percentage" ]] || test_result=1
157
+ [[ "$metrics" =~ "queue_size" ]] || test_result=1
158
+
159
+ # Verify overhead is reasonable (less than 10%)
160
+ local overhead=$(echo "$metrics" | grep -o "overhead_percentage:[0-9.]*" | cut -d: -f2)
161
+ (( $(echo "$overhead < 10" | bc -l) )) || test_result=1
162
+
163
+ log_test_result "$test_result" "Performance Metrics Test"
164
+ return "$test_result"
165
+ }
166
+
167
+ # Test 6: Redis Integration
168
+ test_redis_integration() {
169
+ log_test_start "Redis Integration"
170
+ local test_result=0
171
+
172
+ # Initialize
173
+ ./invoke-transparency-middleware.sh init \
174
+ --task-id "$TEST_TASK_ID" \
175
+ --level detailed || test_result=1
176
+
177
+ # Verify Redis keys created
178
+ local config_keys=$(redis-cli keys "transparency:config:*$TEST_TASK_ID*")
179
+ local state_keys=$(redis-cli keys "transparency:state:*$TEST_TASK_ID*")
180
+
181
+ [[ -n "$config_keys" ]] || test_result=1
182
+ [[ -n "$state_keys" ]] || test_result=1
183
+
184
+ # Publish test message
185
+ redis-cli publish "transparency:messages:$TEST_TASK_ID" \
186
+ '{"type":"test","message":"Redis integration test"}' || test_result=1
187
+
188
+ # Observe message (with timeout)
189
+ local message=$(timeout 5s ./invoke-transparency-middleware.sh observe \
190
+ --task-id "$TEST_TASK_ID" \
191
+ --timeout 3)
192
+ [[ -n "$message" ]] || test_result=1
193
+
194
+ # Cleanup
195
+ ./invoke-transparency-middleware.sh stop \
196
+ --task-id "$TEST_TASK_ID" || test_result=1
197
+
198
+ log_test_result "$test_result" "Redis Integration Test"
199
+ return "$test_result"
200
+ }
201
+
202
+ # Test 7: Multi-Agent Scenarios
203
+ test_multi_agent() {
204
+ log_test_start "Multi-Agent Scenarios"
205
+ local test_result=0
206
+
207
+ # Initialize with different agent configs
208
+ ./invoke-transparency-middleware.sh init \
209
+ --task-id "${TEST_TASK_ID}-agent1" \
210
+ --agent-id "agent-1" \
211
+ --level detailed || test_result=1
212
+
213
+ ./invoke-transparency-middleware.sh init \
214
+ --task-id "${TEST_TASK_ID}-agent2" \
215
+ --agent-id "agent-2" \
216
+ --level verbose || test_result=1
217
+
218
+ # Verify different levels per agent
219
+ local agent1_level=$(./invoke-transparency-middleware.sh get-level \
220
+ --agent-id "agent-1")
221
+ local agent2_level=$(./invoke-transparency-middleware.sh get-level \
222
+ --agent-id "agent-2")
223
+
224
+ [[ "$agent1_level" == "detailed" ]] || test_result=1
225
+ [[ "$agent2_level" == "verbose" ]] || test_result=1
226
+
227
+ # Cleanup
228
+ ./invoke-transparency-middleware.sh stop \
229
+ --agent-id "agent-1" || test_result=1
230
+ ./invoke-transparency-middleware.sh stop \
231
+ --agent-id "agent-2" || test_result=1
232
+
233
+ log_test_result "$test_result" "Multi-Agent Scenarios Test"
234
+ return "$test_result"
235
+ }
236
+
237
+ # Test 8: Performance Overhead
238
+ test_performance_overhead() {
239
+ log_test_start "Performance Overhead"
240
+ local test_result=0
241
+
242
+ # Test each transparency level
243
+ local levels=("minimal" "detailed" "verbose" "debug")
244
+ local max_overheads=(1.0 3.0 5.0 10.0)
245
+
246
+ for i in "${!levels[@]}"; do
247
+ local level="${levels[i]}"
248
+ local max_overhead="${max_overheads[i]}"
249
+
250
+ ./invoke-transparency-middleware.sh init \
251
+ --task-id "${TEST_TASK_ID}-${level}" \
252
+ --level "$level" || test_result=1
253
+
254
+ local metrics=$(./invoke-transparency-middleware.sh get-metrics \
255
+ --task-id "${TEST_TASK_ID}-${level}")
256
+
257
+ local overhead=$(echo "$metrics" | grep -o "overhead_percentage:[0-9.]*" | cut -d: -f2)
258
+ (( $(echo "$overhead <= $max_overhead" | bc -l) )) || {
259
+ echo "❌ Level $level overhead $overhead% exceeds $max_overhead%"
260
+ test_result=1
261
+ }
262
+
263
+ ./invoke-transparency-middleware.sh stop \
264
+ --task-id "${TEST_TASK_ID}-${level}" || test_result=1
265
+ done
266
+
267
+ log_test_result "$test_result" "Performance Overhead Test"
268
+ return "$test_result"
269
+ }
270
+
271
+ # Test 9: Error Handling
272
+ test_error_handling() {
273
+ log_test_start "Error Handling"
274
+ local test_result=0
275
+
276
+ # Test invalid transparency level
277
+ ! ./invoke-transparency-middleware.sh init \
278
+ --task-id "$TEST_TASK_ID" \
279
+ --level invalid 2>/dev/null || test_result=1
280
+
281
+ # Test invalid task-id
282
+ ! ./invoke-transparency-middleware.sh observe \
283
+ --task-id "" 2>/dev/null || test_result=1
284
+
285
+ # Test missing required parameters
286
+ ! ./invoke-transparency-middleware.sh add-filter \
287
+ --task-id "$TEST_TASK_ID" 2>/dev/null || test_result=1
288
+
289
+ # Test invalid filter pattern
290
+ ! ./invoke-transparency-middleware.sh add-filter \
291
+ --task-id "$TEST_TASK_ID" \
292
+ --name "test" \
293
+ --pattern "" 2>/dev/null || test_result=1
294
+
295
+ # Test observe on non-existent task
296
+ ! ./invoke-transparency-middleware.sh observe \
297
+ --task-id "nonexistent-task-12345" 2>/dev/null || test_result=1
298
+
299
+ log_test_result "$test_result" "Error Handling Test"
300
+ return "$test_result"
301
+ }
302
+
303
+ # Test 10: Graceful Shutdown
304
+ test_graceful_shutdown() {
305
+ log_test_start "Graceful Shutdown"
306
+ local test_result=0
307
+
308
+ # Initialize
309
+ ./invoke-transparency-middleware.sh init \
310
+ --task-id "$TEST_TASK_ID" \
311
+ --level detailed || test_result=1
312
+
313
+ # Add some data
314
+ ./invoke-transparency-middleware.sh add-filter \
315
+ --task-id "$TEST_TASK_ID" \
316
+ --name "Test Filter" \
317
+ --pattern "test" || test_result=1
318
+
319
+ # Shutdown with flush
320
+ ./invoke-transparency-middleware.sh stop \
321
+ --task-id "$TEST_TASK_ID" \
322
+ --flush || test_result=1
323
+
324
+ # Verify Redis keys cleaned up
325
+ local keys=$(redis-cli keys "transparency:*$TEST_TASK_ID*")
326
+ [[ -z "$keys" ]] || test_result=1
327
+
328
+ # Test shutdown without flush
329
+ ./invoke-transparency-middleware.sh init \
330
+ --task-id "${TEST_TASK_ID}-noflush" \
331
+ --level minimal || test_result=1
332
+
333
+ ./invoke-transparency-middleware.sh stop \
334
+ --task-id "${TEST_TASK_ID}-noflush" || test_result=1
335
+
336
+ log_test_result "$test_result" "Graceful Shutdown Test"
337
+ return "$test_result"
338
+ }
339
+
340
+ # Main Test Execution
341
+ main() {
342
+ echo "Starting Transparency Middleware Test Suite" | tee -a "$LOG_FILE"
343
+
344
+ test_initialization
345
+ test_message_observation
346
+ test_transparency_levels
347
+ test_filter_management
348
+ test_performance_metrics
349
+ test_redis_integration
350
+ test_multi_agent
351
+ test_performance_overhead
352
+ test_error_handling
353
+ test_graceful_shutdown
354
+
355
+ # Final Report
356
+ echo "Test Results: $PASSED_TESTS/$TOTAL_TESTS passed" | tee -a "$LOG_FILE"
357
+
358
+ if [ "$PASSED_TESTS" -eq "$TOTAL_TESTS" ]; then
359
+ redis-cli publish "swarm:sprint-1.2:devops" "test_suite_passed:1.0"
360
+ exit 0
361
+ else
362
+ redis-cli publish "swarm:sprint-1.2:devops" "test_suite_failed:0.0"
363
+ exit 1
364
+ fi
365
+ }
366
+
367
+ # Execute main function
368
368
  main