claude-flow-novice 2.15.1 → 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 (107) hide show
  1. package/.claude/cfn-extras/agents/google-sheets-specialist.md +614 -0
  2. package/.claude/commands/cfn/create-handoff.md +224 -0
  3. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -243
  4. package/.claude/hooks/cfn-invoke-security-validation.sh +69 -69
  5. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +78 -78
  6. package/.claude/hooks/cfn-post-edit.config.json +44 -44
  7. package/.claude/skills/agent-lifecycle/SKILL.md +60 -0
  8. package/.claude/skills/agent-lifecycle/execute-lifecycle-hook.sh +573 -0
  9. package/.claude/skills/agent-lifecycle/simple-audit.sh +31 -0
  10. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  11. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  12. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  13. package/.claude/skills/cfn-redis-coordination/get-context.sh +112 -112
  14. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  15. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  16. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  17. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  18. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +92 -92
  19. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  20. package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +662 -0
  21. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +29 -0
  22. package/claude-assets/cfn-extras/agents/google-sheets-specialist.md +614 -0
  23. package/claude-assets/commands/cfn/create-handoff.md +224 -0
  24. package/claude-assets/hooks/cfn-BACKUP_USAGE.md +243 -243
  25. package/claude-assets/hooks/cfn-invoke-security-validation.sh +69 -69
  26. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +78 -78
  27. package/claude-assets/hooks/cfn-post-edit.config.json +44 -44
  28. package/claude-assets/hooks/cfn-post-execution/memory-cleanup.sh +19 -19
  29. package/claude-assets/hooks/cfn-pre-execution/memory-check.sh +19 -19
  30. package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +572 -572
  31. package/claude-assets/skills/agent-lifecycle/simple-audit.sh +30 -30
  32. package/claude-assets/skills/cfn-automatic-memory-persistence/persist-agent-output.sh +48 -48
  33. package/claude-assets/skills/cfn-automatic-memory-persistence/query-agent-history.sh +34 -34
  34. package/claude-assets/skills/cfn-deliverable-validation/confidence-calculator.sh +261 -261
  35. package/claude-assets/skills/cfn-expert-update/update-expert.sh +345 -345
  36. package/claude-assets/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  37. package/claude-assets/skills/cfn-intervention-detector/detect-intervention.sh +110 -110
  38. package/claude-assets/skills/cfn-intervention-orchestrator/execute-intervention.sh +58 -58
  39. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  40. package/claude-assets/skills/cfn-loop2-output-processing/process-validator-output.sh +275 -275
  41. package/claude-assets/skills/cfn-memory-management/check-memory.sh +159 -159
  42. package/claude-assets/skills/cfn-memory-management/cleanup-memory.sh +196 -196
  43. package/claude-assets/skills/cfn-node-heap-sizer/task-mode-heap-limiter.sh +325 -325
  44. package/claude-assets/skills/cfn-playbook-auto-update/auto-update-playbook.sh +85 -85
  45. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  46. package/claude-assets/skills/cfn-redis-coordination/get-context.sh +112 -112
  47. package/claude-assets/skills/cfn-scope-simplifier/simplify-scope.sh +67 -67
  48. package/claude-assets/skills/cfn-specialist-injection/recommend-specialist.sh +56 -56
  49. package/claude-assets/skills/cfn-standardized-error-handling/capture-agent-error.sh +86 -86
  50. package/claude-assets/skills/cfn-standardized-error-handling/test-error-handling.sh +165 -165
  51. package/claude-assets/skills/cfn-task-config-init/initialize-config.sh +264 -264
  52. package/claude-assets/skills/cfn-task-decomposition/task-decomposer.sh +278 -278
  53. package/claude-assets/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  54. package/claude-assets/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  55. package/claude-assets/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  56. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  57. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +92 -92
  58. package/claude-assets/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  59. package/claude-assets/skills/docker-build/SKILL.md +96 -203
  60. package/claude-assets/skills/docker-build/build.sh +73 -73
  61. package/claude-assets/skills/integration/agent-handoff.sh +494 -0
  62. package/claude-assets/skills/integration/file-operations.sh +414 -0
  63. package/claude-assets/skills/workflow-codification/APPROVAL_WORKFLOW.md +806 -0
  64. package/claude-assets/skills/workflow-codification/COST_TRACKING.md +637 -0
  65. package/claude-assets/skills/workflow-codification/EDGE_CASE_TRACKING.md +404 -0
  66. package/claude-assets/skills/workflow-codification/README_PHASE4.md +457 -0
  67. package/claude-assets/skills/workflow-codification/SKILL.md +110 -0
  68. package/claude-assets/skills/workflow-codification/analyze-patterns.sh +899 -0
  69. package/claude-assets/skills/workflow-codification/approval-workflow.sh +514 -0
  70. package/claude-assets/skills/workflow-codification/generate-skill-update.sh +525 -0
  71. package/claude-assets/skills/workflow-codification/review-skill.sh +643 -0
  72. package/claude-assets/skills/workflow-codification/templates/email-notification.txt +114 -0
  73. package/claude-assets/skills/workflow-codification/templates/slack-notification.md +85 -0
  74. package/claude-assets/skills/workflow-codification/test-integration.sh +281 -0
  75. package/claude-assets/skills/workflow-codification/track-cost-savings.sh +445 -0
  76. package/claude-assets/skills/workflow-codification/track-edge-case.sh +323 -0
  77. package/dist/agents/agent-loader.js +165 -146
  78. package/dist/agents/agent-loader.js.map +1 -1
  79. package/dist/cli/config-manager.js +91 -109
  80. package/dist/cli/config-manager.js.map +1 -1
  81. package/dist/integration/DatabaseHandoff.js +507 -0
  82. package/dist/integration/DatabaseHandoff.js.map +1 -0
  83. package/dist/integration/StandardAdapter.js +291 -0
  84. package/dist/integration/StandardAdapter.js.map +1 -0
  85. package/dist/lib/agent-output-parser.js +518 -0
  86. package/dist/lib/agent-output-parser.js.map +1 -0
  87. package/dist/lib/agent-output-validator.js +950 -0
  88. package/dist/lib/agent-output-validator.js.map +1 -0
  89. package/dist/lib/artifact-registry.js +443 -0
  90. package/dist/lib/artifact-registry.js.map +1 -0
  91. package/dist/lib/config-validator.js +687 -0
  92. package/dist/lib/config-validator.js.map +1 -0
  93. package/dist/types/agent-output.js +44 -0
  94. package/dist/types/agent-output.js.map +1 -0
  95. package/dist/types/config.js +28 -0
  96. package/dist/types/config.js.map +1 -0
  97. package/package.json +2 -1
  98. package/scripts/artifact-cleanup.sh +392 -0
  99. package/scripts/build-linux.sh +78 -0
  100. package/scripts/deploy-production.sh +355 -355
  101. package/scripts/docker-playwright-fix.sh +311 -311
  102. package/scripts/docker-rebuild-all-agents.sh +127 -127
  103. package/scripts/memory-leak-prevention.sh +305 -305
  104. package/scripts/migrate-artifacts.sh +563 -0
  105. package/scripts/migrate-yaml-to-json.sh +465 -0
  106. package/scripts/run-marketing-tests.sh +42 -42
  107. 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