claude-flow-novice 2.15.2 → 2.15.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.
Files changed (533) hide show
  1. package/.claude/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  2. package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  3. package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  4. package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  5. package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  6. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  7. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  8. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  9. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  10. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  11. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  12. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  13. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  14. package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  15. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  16. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  17. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  18. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  19. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  20. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  21. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  22. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  23. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  24. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  25. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  26. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  27. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  28. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  29. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  30. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  31. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  32. package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  33. package/.claude/commands/cfn-loop-cli.md +16 -2
  34. package/.claude/commands/switch-api.md +31 -10
  35. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -243
  36. package/.claude/hooks/cfn-invoke-security-validation.sh +69 -69
  37. package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
  38. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +109 -78
  39. package/.claude/hooks/cfn-post-edit.config.json +44 -44
  40. package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
  41. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  42. package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  43. package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  44. package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  45. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  46. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  47. package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  48. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
  49. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  50. package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  51. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  52. package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  53. package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
  54. package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  55. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  56. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  57. package/.claude/skills/cfn-redis-coordination/get-context.sh +145 -112
  58. package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  59. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
  60. package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  61. package/.claude/skills/cfn-redis-coordination/redis-functions.sh +33 -0
  62. package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
  63. package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
  64. package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  65. package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  66. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  67. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  68. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  69. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  70. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  71. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  72. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +107 -92
  73. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  74. package/README.md +116 -475
  75. package/claude-assets/agents/cfn-dev-team/README.md +103 -0
  76. package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
  77. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
  78. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
  79. package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
  80. package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
  81. package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
  82. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
  83. package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
  84. package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
  85. package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
  86. package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
  87. package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
  88. package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
  89. package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
  90. package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
  91. package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
  92. package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
  93. package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
  94. package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
  95. package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
  96. package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
  97. package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
  98. package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
  99. package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
  100. package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
  101. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
  102. package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
  103. package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
  104. package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
  105. package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
  106. package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
  107. package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
  108. package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
  109. package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
  110. package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
  111. package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
  112. package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
  113. package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
  114. package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
  115. package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
  116. package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
  117. package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
  118. package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  119. package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  120. package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  121. package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  122. package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  123. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  124. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  125. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  126. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  127. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  128. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  129. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  130. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  131. package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  132. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  133. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  134. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  135. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  136. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  137. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  138. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  139. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  140. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  141. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  142. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  143. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  144. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  145. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  146. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  147. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  148. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  149. package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  150. package/claude-assets/commands/cfn-loop-cli.md +16 -2
  151. package/claude-assets/commands/switch-api.md +31 -10
  152. package/claude-assets/hooks/cfn-BACKUP_USAGE.md +243 -243
  153. package/claude-assets/hooks/cfn-invoke-security-validation.sh +69 -69
  154. package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
  155. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +109 -78
  156. package/claude-assets/hooks/cfn-post-edit.config.json +44 -44
  157. package/claude-assets/hooks/cfn-post-execution/memory-cleanup.sh +19 -19
  158. package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
  159. package/claude-assets/hooks/cfn-pre-execution/memory-check.sh +19 -19
  160. package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
  161. package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
  162. package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +543 -572
  163. package/claude-assets/skills/agent-lifecycle/simple-audit.sh +57 -30
  164. package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
  165. package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
  166. package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
  167. package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
  168. package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
  169. package/claude-assets/skills/bootstrap/database-connection.md +464 -0
  170. package/claude-assets/skills/bootstrap/error-handling.md +580 -0
  171. package/claude-assets/skills/bootstrap/file-operations.md +699 -0
  172. package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
  173. package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
  174. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  175. package/claude-assets/skills/cfn-automatic-memory-persistence/persist-agent-output.sh +48 -48
  176. package/claude-assets/skills/cfn-automatic-memory-persistence/query-agent-history.sh +34 -34
  177. package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
  178. package/claude-assets/skills/cfn-deliverable-validation/confidence-calculator.sh +261 -261
  179. package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
  180. package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
  181. package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  182. package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  183. package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  184. package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
  185. package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
  186. package/claude-assets/skills/cfn-expert-update/update-expert.sh +345 -345
  187. package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
  188. package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
  189. package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
  190. package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
  191. package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
  192. package/claude-assets/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  193. package/claude-assets/skills/cfn-intervention-detector/detect-intervention.sh +110 -110
  194. package/claude-assets/skills/cfn-intervention-orchestrator/execute-intervention.sh +58 -58
  195. package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
  196. package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
  197. package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
  198. package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
  199. package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
  200. package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  201. package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  202. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
  203. package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  204. package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  205. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  206. package/claude-assets/skills/cfn-loop2-output-processing/process-validator-output.sh +275 -275
  207. package/claude-assets/skills/cfn-memory-management/check-memory.sh +159 -159
  208. package/claude-assets/skills/cfn-memory-management/cleanup-memory.sh +196 -196
  209. package/claude-assets/skills/cfn-node-heap-sizer/task-mode-heap-limiter.sh +325 -325
  210. package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
  211. package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
  212. package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
  213. package/claude-assets/skills/cfn-playbook-auto-update/auto-update-playbook.sh +85 -85
  214. package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
  215. package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
  216. package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  217. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
  218. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  219. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  220. package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  221. package/claude-assets/skills/cfn-redis-coordination/get-context.sh +145 -112
  222. package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  223. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
  224. package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  225. package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +33 -0
  226. package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
  227. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
  228. package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  229. package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  230. package/claude-assets/skills/cfn-scope-simplifier/simplify-scope.sh +67 -67
  231. package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
  232. package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
  233. package/claude-assets/skills/cfn-specialist-injection/recommend-specialist.sh +56 -56
  234. package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  235. package/claude-assets/skills/cfn-standardized-error-handling/capture-agent-error.sh +86 -86
  236. package/claude-assets/skills/cfn-standardized-error-handling/test-error-handling.sh +165 -165
  237. package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
  238. package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
  239. package/claude-assets/skills/cfn-task-config-init/initialize-config.sh +264 -264
  240. package/claude-assets/skills/cfn-task-decomposition/task-decomposer.sh +278 -278
  241. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
  242. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
  243. package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
  244. package/claude-assets/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  245. package/claude-assets/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  246. package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  247. package/claude-assets/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  248. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  249. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +107 -92
  250. package/claude-assets/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  251. package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
  252. package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
  253. package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
  254. package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
  255. package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
  256. package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
  257. package/claude-assets/skills/cfn-utilities/test.sh +317 -0
  258. package/claude-assets/skills/docker-build/SKILL.md +96 -203
  259. package/claude-assets/skills/docker-build/build.sh +73 -73
  260. package/claude-assets/skills/integration/agent-handoff.sh +492 -0
  261. package/claude-assets/skills/integration/file-operations.sh +414 -0
  262. package/claude-assets/skills/json-validation/SKILL.md +431 -0
  263. package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
  264. package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
  265. package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
  266. package/claude-assets/skills/workflow-codification/APPROVAL_WORKFLOW.md +806 -0
  267. package/claude-assets/skills/workflow-codification/COST_TRACKING.md +637 -0
  268. package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
  269. package/claude-assets/skills/workflow-codification/EDGE_CASE_TRACKING.md +404 -0
  270. package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
  271. package/claude-assets/skills/workflow-codification/README_PHASE4.md +457 -0
  272. package/claude-assets/skills/workflow-codification/SKILL.md +110 -0
  273. package/claude-assets/skills/workflow-codification/analyze-patterns.sh +899 -0
  274. package/claude-assets/skills/workflow-codification/approval-workflow.sh +514 -0
  275. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
  276. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
  277. package/claude-assets/skills/workflow-codification/generate-skill-update.sh +525 -0
  278. package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
  279. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
  280. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
  281. package/claude-assets/skills/workflow-codification/review-skill.sh +643 -0
  282. package/claude-assets/skills/workflow-codification/templates/email-notification.txt +114 -0
  283. package/claude-assets/skills/workflow-codification/templates/slack-notification.md +85 -0
  284. package/claude-assets/skills/workflow-codification/test-integration.sh +296 -0
  285. package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
  286. package/claude-assets/skills/workflow-codification/track-cost-savings.sh +486 -0
  287. package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
  288. package/claude-assets/skills/workflow-codification/track-edge-case.sh +290 -0
  289. package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
  290. package/dist/ace/ace-curator.js +10 -2
  291. package/dist/ace/ace-curator.js.map +1 -1
  292. package/dist/ace/ace-generator.js +4 -0
  293. package/dist/ace/ace-generator.js.map +1 -1
  294. package/dist/ace/ace-reflector.js +1 -1
  295. package/dist/ace/ace-reflector.js.map +1 -1
  296. package/dist/ace/context-injection.js +24 -2
  297. package/dist/ace/context-injection.js.map +1 -1
  298. package/dist/agents/agent-loader.js +146 -165
  299. package/dist/agents/agent-loader.js.map +1 -1
  300. package/dist/agents/task-agent-integration.js +1 -1
  301. package/dist/agents/task-agent-integration.js.map +1 -1
  302. package/dist/api/health-endpoints.js +390 -0
  303. package/dist/api/health-endpoints.js.map +1 -0
  304. package/dist/cli/agent-executor.js +4 -1
  305. package/dist/cli/agent-executor.js.map +1 -1
  306. package/dist/cli/agent-prompt-builder.js +89 -1
  307. package/dist/cli/agent-prompt-builder.js.map +1 -1
  308. package/dist/cli/agent-spawn.js +130 -37
  309. package/dist/cli/agent-spawn.js.map +1 -1
  310. package/dist/cli/config-manager.js +91 -109
  311. package/dist/cli/config-manager.js.map +1 -1
  312. package/dist/cli/skill-cache-validator.js +412 -0
  313. package/dist/cli/skill-cache-validator.js.map +1 -0
  314. package/dist/cli/skill-cli.js +991 -0
  315. package/dist/cli/skill-cli.js.map +1 -0
  316. package/dist/cli/skill-execution-logger.js +284 -0
  317. package/dist/cli/skill-execution-logger.js.map +1 -0
  318. package/dist/cli/skill-loader.js +457 -0
  319. package/dist/cli/skill-loader.js.map +1 -0
  320. package/dist/coordination/event-bus.js +2 -2
  321. package/dist/coordination/event-bus.js.map +1 -1
  322. package/dist/coordination/fleet-manager.js +1 -1
  323. package/dist/coordination/fleet-manager.js.map +1 -1
  324. package/dist/coordination/index.js +23 -9
  325. package/dist/coordination/index.js.map +1 -1
  326. package/dist/coordination/types/fleet-manager.types.js.map +1 -1
  327. package/dist/db/migration-manager.js +483 -0
  328. package/dist/db/migration-manager.js.map +1 -0
  329. package/dist/db/skills-query.js +535 -0
  330. package/dist/db/skills-query.js.map +1 -0
  331. package/dist/integration/DatabaseHandoff.js +507 -0
  332. package/dist/integration/DatabaseHandoff.js.map +1 -0
  333. package/dist/integration/StandardAdapter.js +291 -0
  334. package/dist/integration/StandardAdapter.js.map +1 -0
  335. package/dist/jobs/edge-case-analyzer.js +367 -0
  336. package/dist/jobs/edge-case-analyzer.js.map +1 -0
  337. package/dist/jobs/promotion-sla-enforcer.js +288 -0
  338. package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
  339. package/dist/lib/agent-output-parser.js +518 -0
  340. package/dist/lib/agent-output-parser.js.map +1 -0
  341. package/dist/lib/agent-output-validator.js +950 -0
  342. package/dist/lib/agent-output-validator.js.map +1 -0
  343. package/dist/lib/agent-workspace.js +281 -0
  344. package/dist/lib/agent-workspace.js.map +1 -0
  345. package/dist/lib/artifact-registry.js +443 -0
  346. package/dist/lib/artifact-registry.js.map +1 -0
  347. package/dist/lib/atomic-file-writer.js +377 -0
  348. package/dist/lib/atomic-file-writer.js.map +1 -0
  349. package/dist/lib/backup-manager.js +779 -0
  350. package/dist/lib/backup-manager.js.map +1 -0
  351. package/dist/lib/checkpoint-manager.js +837 -0
  352. package/dist/lib/checkpoint-manager.js.map +1 -0
  353. package/dist/lib/circuit-breaker.js +340 -0
  354. package/dist/lib/circuit-breaker.js.map +1 -0
  355. package/dist/lib/completion-signal-handler.js +243 -0
  356. package/dist/lib/completion-signal-handler.js.map +1 -0
  357. package/dist/lib/config-manager.js +312 -0
  358. package/dist/lib/config-manager.js.map +1 -0
  359. package/dist/lib/config-migrator.js +386 -0
  360. package/dist/lib/config-migrator.js.map +1 -0
  361. package/dist/lib/config-validator.js +687 -0
  362. package/dist/lib/config-validator.js.map +1 -0
  363. package/dist/lib/correlation-cache.js +311 -0
  364. package/dist/lib/correlation-cache.js.map +1 -0
  365. package/dist/lib/correlation.js +263 -0
  366. package/dist/lib/correlation.js.map +1 -0
  367. package/dist/lib/database-service/connection-pool-manager.js +520 -0
  368. package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
  369. package/dist/lib/database-service/correlation.js +329 -0
  370. package/dist/lib/database-service/correlation.js.map +1 -0
  371. package/dist/lib/database-service/errors.js +120 -0
  372. package/dist/lib/database-service/errors.js.map +1 -0
  373. package/dist/lib/database-service/index.js +168 -0
  374. package/dist/lib/database-service/index.js.map +1 -0
  375. package/dist/lib/database-service/postgres-adapter.js +526 -0
  376. package/dist/lib/database-service/postgres-adapter.js.map +1 -0
  377. package/dist/lib/database-service/redis-adapter.js +360 -0
  378. package/dist/lib/database-service/redis-adapter.js.map +1 -0
  379. package/dist/lib/database-service/sqlite-adapter.js +544 -0
  380. package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
  381. package/dist/lib/database-service/transaction-manager.js +773 -0
  382. package/dist/lib/database-service/transaction-manager.js.map +1 -0
  383. package/dist/lib/database-service/types.js +23 -0
  384. package/dist/lib/database-service/types.js.map +1 -0
  385. package/dist/lib/deadlock-resolver.js +292 -0
  386. package/dist/lib/deadlock-resolver.js.map +1 -0
  387. package/dist/lib/distributed-lock.js +451 -0
  388. package/dist/lib/distributed-lock.js.map +1 -0
  389. package/dist/lib/edge-case-deduplicator.js +227 -0
  390. package/dist/lib/edge-case-deduplicator.js.map +1 -0
  391. package/dist/lib/encryption-manager.js +322 -0
  392. package/dist/lib/encryption-manager.js.map +1 -0
  393. package/dist/lib/error-aggregator.js +234 -0
  394. package/dist/lib/error-aggregator.js.map +1 -0
  395. package/dist/lib/errors.js +287 -0
  396. package/dist/lib/errors.js.map +1 -0
  397. package/dist/lib/file-lock-manager.js +578 -0
  398. package/dist/lib/file-lock-manager.js.map +1 -0
  399. package/dist/lib/file-operations.js +367 -0
  400. package/dist/lib/file-operations.js.map +1 -0
  401. package/dist/lib/idempotent-write.js +237 -0
  402. package/dist/lib/idempotent-write.js.map +1 -0
  403. package/dist/lib/integration-schema-validator.js +522 -0
  404. package/dist/lib/integration-schema-validator.js.map +1 -0
  405. package/dist/lib/lock-health-monitor.js +298 -0
  406. package/dist/lib/lock-health-monitor.js.map +1 -0
  407. package/dist/lib/log-shipper.js +422 -0
  408. package/dist/lib/log-shipper.js.map +1 -0
  409. package/dist/lib/logging.js +146 -0
  410. package/dist/lib/logging.js.map +1 -0
  411. package/dist/lib/message-deduplicator.js +439 -0
  412. package/dist/lib/message-deduplicator.js.map +1 -0
  413. package/dist/lib/multi-system-query.js +604 -0
  414. package/dist/lib/multi-system-query.js.map +1 -0
  415. package/dist/lib/orphan-detector.js +332 -0
  416. package/dist/lib/orphan-detector.js.map +1 -0
  417. package/dist/lib/password-generator.js +166 -0
  418. package/dist/lib/password-generator.js.map +1 -0
  419. package/dist/lib/path-validator.js +429 -0
  420. package/dist/lib/path-validator.js.map +1 -0
  421. package/dist/lib/query-translator.js +905 -0
  422. package/dist/lib/query-translator.js.map +1 -0
  423. package/dist/lib/queue-recovery.js +469 -0
  424. package/dist/lib/queue-recovery.js.map +1 -0
  425. package/dist/lib/redis-queue-manager.js +512 -0
  426. package/dist/lib/redis-queue-manager.js.map +1 -0
  427. package/dist/lib/reflection-archiver.js +272 -0
  428. package/dist/lib/reflection-archiver.js.map +1 -0
  429. package/dist/lib/retry-manager.js +453 -0
  430. package/dist/lib/retry-manager.js.map +1 -0
  431. package/dist/lib/retry.js +262 -0
  432. package/dist/lib/retry.js.map +1 -0
  433. package/dist/lib/schema-transform.js +695 -0
  434. package/dist/lib/schema-transform.js.map +1 -0
  435. package/dist/lib/schema-validator.js +491 -0
  436. package/dist/lib/schema-validator.js.map +1 -0
  437. package/dist/lib/skill-cache.js +297 -0
  438. package/dist/lib/skill-cache.js.map +1 -0
  439. package/dist/lib/skill-content-manager.js +337 -0
  440. package/dist/lib/skill-content-manager.js.map +1 -0
  441. package/dist/lib/skill-frontmatter-parser.js +237 -0
  442. package/dist/lib/skill-frontmatter-parser.js.map +1 -0
  443. package/dist/lib/skill-git-integration.js +275 -0
  444. package/dist/lib/skill-git-integration.js.map +1 -0
  445. package/dist/lib/skill-markdown-validator.js +396 -0
  446. package/dist/lib/skill-markdown-validator.js.map +1 -0
  447. package/dist/lib/skill-output-parser.js +312 -0
  448. package/dist/lib/skill-output-parser.js.map +1 -0
  449. package/dist/lib/unified-query-api.js +467 -0
  450. package/dist/lib/unified-query-api.js.map +1 -0
  451. package/dist/middleware/auth-middleware.js +350 -0
  452. package/dist/middleware/auth-middleware.js.map +1 -0
  453. package/dist/middleware/schema-validation.js +347 -0
  454. package/dist/middleware/schema-validation.js.map +1 -0
  455. package/dist/providers/anthropic-provider.js +1 -1
  456. package/dist/providers/anthropic-provider.js.map +1 -1
  457. package/dist/providers/provider-factory.js +2 -2
  458. package/dist/providers/provider-factory.js.map +1 -1
  459. package/dist/services/edge-case-analyzer.js +321 -0
  460. package/dist/services/edge-case-analyzer.js.map +1 -0
  461. package/dist/services/edge-case-deduplicator.js +266 -0
  462. package/dist/services/edge-case-deduplicator.js.map +1 -0
  463. package/dist/services/edge-case-detector.js +337 -0
  464. package/dist/services/edge-case-detector.js.map +1 -0
  465. package/dist/services/edge-case-tracker.js +547 -0
  466. package/dist/services/edge-case-tracker.js.map +1 -0
  467. package/dist/services/health-check-system.js +586 -0
  468. package/dist/services/health-check-system.js.map +1 -0
  469. package/dist/services/metrics-logger.js +412 -0
  470. package/dist/services/metrics-logger.js.map +1 -0
  471. package/dist/services/patch-generator.js +378 -0
  472. package/dist/services/patch-generator.js.map +1 -0
  473. package/dist/services/patch-validator.js +337 -0
  474. package/dist/services/patch-validator.js.map +1 -0
  475. package/dist/services/performance-monitor.js +811 -0
  476. package/dist/services/performance-monitor.js.map +1 -0
  477. package/dist/services/promotion-pipeline.js +918 -0
  478. package/dist/services/promotion-pipeline.js.map +1 -0
  479. package/dist/services/promotion-validator.js +394 -0
  480. package/dist/services/promotion-validator.js.map +1 -0
  481. package/dist/services/reflection-logger.js +388 -0
  482. package/dist/services/reflection-logger.js.map +1 -0
  483. package/dist/services/skill-deployment.js +472 -0
  484. package/dist/services/skill-deployment.js.map +1 -0
  485. package/dist/services/skill-loader.js +427 -0
  486. package/dist/services/skill-loader.js.map +1 -0
  487. package/dist/services/skill-promotion.js +372 -0
  488. package/dist/services/skill-promotion.js.map +1 -0
  489. package/dist/services/skill-validator.js +454 -0
  490. package/dist/services/skill-validator.js.map +1 -0
  491. package/dist/services/skill-versioning.js +244 -0
  492. package/dist/services/skill-versioning.js.map +1 -0
  493. package/dist/services/workspace-supervisor.js +597 -0
  494. package/dist/services/workspace-supervisor.js.map +1 -0
  495. package/dist/types/agent-output.js +44 -0
  496. package/dist/types/agent-output.js.map +1 -0
  497. package/dist/types/config.js +28 -0
  498. package/dist/types/config.js.map +1 -0
  499. package/dist/types/edge-case.js +45 -0
  500. package/dist/types/edge-case.js.map +1 -0
  501. package/package.json +201 -176
  502. package/readme/README.md +19 -4
  503. package/scripts/artifact-cleanup.sh +392 -0
  504. package/scripts/backup-cleanup.sh +627 -0
  505. package/scripts/cleanup-workspaces.sh +412 -0
  506. package/scripts/cleanup-yaml-configs.sh +141 -0
  507. package/scripts/deploy-approved-skills.sh +263 -0
  508. package/scripts/deploy-production.sh +355 -355
  509. package/scripts/docker-playwright-fix.sh +311 -311
  510. package/scripts/docker-rebuild-all-agents.sh +127 -127
  511. package/scripts/health-check.sh +447 -0
  512. package/scripts/log-aggregator.sh +554 -0
  513. package/scripts/log-monitor.sh +629 -0
  514. package/scripts/manage-agent-workspaces.sh +434 -0
  515. package/scripts/memory-leak-prevention.sh +305 -305
  516. package/scripts/migrate-artifacts.sh +563 -0
  517. package/scripts/migrate-schema.sh +533 -0
  518. package/scripts/migrate-yaml-to-json.sh +465 -0
  519. package/scripts/promote-staged-skills.sh +423 -0
  520. package/scripts/run-marketing-tests.sh +42 -42
  521. package/scripts/update_paths.sh +46 -46
  522. package/scripts/verify-no-secrets.sh +88 -35
  523. package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  524. package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  525. package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  526. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  527. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
  528. package/README.md.backup_before_replace +0 -781
  529. package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  530. package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  531. package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  532. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  533. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
@@ -1,306 +1,306 @@
1
- #!/bin/bash
2
-
3
- # Memory Leak Detection and Prevention Script
4
- # Implements recommendations from memory leak analysis
5
-
6
- set -euo pipefail
7
-
8
- # Configuration
9
- DEFAULT_MEMORY_LIMIT="8192" # 8GB limit instead of 16GB
10
- DEFAULT_NODE_OPTIONS="--max-old-space-size=$DEFAULT_MEMORY_LIMIT"
11
- PROFILING_DIR="/tmp/claude-memory-profiles"
12
- LOG_FILE="/tmp/claude-memory-monitor.log"
13
-
14
- # Colors for output
15
- RED='\033[0;31m'
16
- GREEN='\033[0;32m'
17
- YELLOW='\033[1;33m'
18
- BLUE='\033[0;34m'
19
- NC='\033[0m' # No Color
20
-
21
- # Create profiling directory
22
- mkdir -p "$PROFILING_DIR"
23
-
24
- log() {
25
- echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
26
- }
27
-
28
- show_help() {
29
- cat << EOF
30
- Memory Leak Detection and Prevention Tool
31
-
32
- Usage: $0 [COMMAND] [OPTIONS]
33
-
34
- Commands:
35
- profile Start Claude with heap profiling enabled
36
- monitor Monitor existing Claude process memory usage
37
- limit Set memory limits for Claude sessions
38
- install-tools Install strace and perf for WSL
39
- analyze Analyze existing memory profiles
40
- config Show current memory configuration
41
-
42
- Options:
43
- --limit MB Set memory limit in MB (default: 8192)
44
- --pid PID Monitor specific process ID
45
- --duration SEC Monitoring duration in seconds (default: 300)
46
- --output DIR Output directory for profiles (default: /tmp/claude-memory-profiles)
47
-
48
- Examples:
49
- $0 profile --limit 6144 # Start Claude with 6GB limit and profiling
50
- $0 monitor --pid 12345 --duration 600 # Monitor PID 12345 for 10 minutes
51
- $0 install-tools # Install strace and perf
52
- $0 analyze --output ./profiles # Analyze existing profiles
53
- EOF
54
- }
55
-
56
- install_debug_tools() {
57
- log "${BLUE}Installing strace and perf for debugging...${NC}"
58
-
59
- if command -v apt-get &> /dev/null; then
60
- sudo apt-get update
61
- sudo apt-get install -y strace linux-tools-generic linux-perf
62
- elif command -v yum &> /dev/null; then
63
- sudo yum install -y strace perf
64
- else
65
- log "${RED}Unsupported package manager. Please install strace and perf manually.${NC}"
66
- return 1
67
- fi
68
-
69
- # Configure perf for non-root users
70
- echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid >/dev/null 2>&1 || true
71
- echo 0 | sudo tee /proc/sys/kernel/kptr_restrict >/dev/null 2>&1 || true
72
-
73
- log "${GREEN}Debug tools installed successfully${NC}"
74
- }
75
-
76
- start_with_profiling() {
77
- local memory_limit=${1:-$DEFAULT_MEMORY_LIMIT}
78
-
79
- log "${BLUE}Starting Claude with heap profiling and memory limit: ${memory_limit}MB${NC}"
80
-
81
- # Set up environment for profiling
82
- export NODE_OPTIONS="--max-old-space-size=$memory_limit --inspect=0.0.0.0:9229 --heap-prof"
83
- export CLAUDE_MEMORY_PROFILE_DIR="$PROFILING_DIR"
84
-
85
- # Create profile filename with timestamp
86
- local profile_file="${PROFILING_DIR}/claude-profile-$(date +%Y%m%d-%H%M%S)"
87
-
88
- log "${GREEN}Environment variables set:${NC}"
89
- log " NODE_OPTIONS: $NODE_OPTIONS"
90
- log " Profile directory: $PROFILING_DIR"
91
- log "${YELLOW}Claude will start with debugging enabled on port 9229${NC}"
92
- log "${YELLOW}Use Chrome DevTools or chrome://inspect to connect${NC}"
93
-
94
- # Start Claude CLI with profiling
95
- log "${BLUE}Starting Claude CLI...${NC}"
96
- npx claude-flow-novice "$@"
97
- }
98
-
99
- monitor_memory() {
100
- local target_pid=${1:-}
101
- local duration=${2:-300}
102
- local output_file="${PROFILING_DIR}/memory-monitor-$(date +%Y%m%d-%H%M%S).csv"
103
-
104
- if [[ -z "$target_pid" ]]; then
105
- log "${RED}Error: PID required for monitoring. Use --pid to specify.${NC}"
106
- return 1
107
- fi
108
-
109
- log "${BLUE}Monitoring PID $target_pid for ${duration} seconds...${NC}"
110
- log "Results will be saved to: $output_file"
111
-
112
- # Create CSV header
113
- echo "timestamp,pid,rss_mb,vms_mb,cpu_percent,open_files,connections" > "$output_file"
114
-
115
- local start_time=$(date +%s)
116
- local end_time=$((start_time + duration))
117
-
118
- while [[ $(date +%s) -lt $end_time ]]; do
119
- if ! kill -0 "$target_pid" 2>/dev/null; then
120
- log "${RED}Process $target_pid is no longer running${NC}"
121
- break
122
- fi
123
-
124
- local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
125
- local stats=$(ps -p "$target_pid" -o pid,rss,vms,pcpu --no-headers 2>/dev/null || echo "")
126
-
127
- if [[ -n "$stats" ]]; then
128
- local rss_mb=$(echo "$stats" | awk '{print int($2/1024)}')
129
- local vms_mb=$(echo "$stats" | awk '{print int($3/1024)}')
130
- local cpu_percent=$(echo "$stats" | awk '{print $4}')
131
-
132
- # Count open files and network connections
133
- local open_files=$(lsof -p "$target_pid" 2>/dev/null | wc -l || echo "0")
134
- local connections=$(netstat -p 2>/dev/null | grep "$target_pid/" | wc -l || echo "0")
135
-
136
- echo "$timestamp,$target_pid,$rss_mb,$vms_mb,$cpu_percent,$open_files,$connections" >> "$output_file"
137
-
138
- # Alert if memory exceeds threshold
139
- if [[ $rss_mb -gt 8192 ]]; then
140
- log "${RED}⚠️ High memory usage detected: ${rss_mb}MB RSS${NC}"
141
- fi
142
-
143
- log "Memory: ${rss_mb}MB RSS, ${vms_mb}MB VMS, CPU: ${cpu_percent}%, Files: $open_files, Connections: $connections"
144
- fi
145
-
146
- sleep 10
147
- done
148
-
149
- log "${GREEN}Monitoring completed. Data saved to: $output_file${NC}"
150
- }
151
-
152
- set_memory_limits() {
153
- local limit_mb=${1:-8192}
154
-
155
- log "${BLUE}Setting memory limits to ${limit_mb}MB...${NC}"
156
-
157
- # Update shell configuration
158
- local shell_rc="$HOME/.bashrc"
159
- if [[ -f "$HOME/.zshrc" ]]; then
160
- shell_rc="$HOME/.zshrc"
161
- fi
162
-
163
- # Remove existing NODE_OPTIONS lines
164
- sed -i '/^export NODE_OPTIONS="--max-old-space-size=/d' "$shell_rc" 2>/dev/null || true
165
-
166
- # Add new limit
167
- echo "export NODE_OPTIONS=\"--max-old-space-size=$limit_mb\"" >> "$shell_rc"
168
-
169
- log "${GREEN}Memory limit set to ${limit_mb}MB in $shell_rc${NC}"
170
- log "${YELLOW}Restart your shell or run: source $shell_rc${NC}"
171
- }
172
-
173
- analyze_profiles() {
174
- local profile_dir=${1:-$PROFILING_DIR}
175
-
176
- log "${BLUE}Analyzing memory profiles in $profile_dir...${NC}"
177
-
178
- if [[ ! -d "$profile_dir" ]]; then
179
- log "${RED}Profile directory $profile_dir does not exist${NC}"
180
- return 1
181
- fi
182
-
183
- # Find heap profile files
184
- local heap_profiles=($(find "$profile_dir" -name "*.heapprofile" 2>/dev/null))
185
-
186
- if [[ ${#heap_profiles[@]} -eq 0 ]]; then
187
- log "${YELLOW}No heap profiles found in $profile_dir${NC}"
188
- return 1
189
- fi
190
-
191
- log "${GREEN}Found ${#heap_profiles[@]} heap profile(s)${NC}"
192
-
193
- for profile in "${heap_profiles[@]}"; do
194
- log "${BLUE}Analyzing: $(basename "$profile")${NC}"
195
-
196
- # Basic analysis - find top allocations
197
- if command -v node &> /dev/null; then
198
- echo "Top 10 allocations in $(basename "$profile"):" > "${profile}.analysis"
199
- node -e "
200
- const fs = require('fs');
201
- const data = JSON.parse(fs.readFileSync('$profile', 'utf8'));
202
- const allocations = data.heapProfile || data;
203
- if (allocations && allocations.samples) {
204
- allocations.samples
205
- .sort((a, b) => b.size - a.size)
206
- .slice(0, 10)
207
- .forEach((sample, i) => {
208
- console.log(\`\${i+1}. \${sample.functionName || 'unknown'}: \${(sample.size/1024/1024).toFixed(2)}MB\`);
209
- });
210
- }
211
- " >> "${profile}.analysis"
212
-
213
- log "${GREEN}Analysis saved to: ${profile}.analysis${NC}"
214
- fi
215
- done
216
- }
217
-
218
- show_config() {
219
- log "${BLUE}Current Memory Configuration:${NC}"
220
-
221
- # Show current NODE_OPTIONS
222
- if [[ -n "${NODE_OPTIONS:-}" ]]; then
223
- log " NODE_OPTIONS: $NODE_OPTIONS"
224
- else
225
- log " NODE_OPTIONS: (not set)"
226
- fi
227
-
228
- # Show current limits
229
- local current_limit=$(echo "$NODE_OPTIONS" | grep -o 'max-old-space-size=[0-9]*' | cut -d'=' -f2 || echo "unlimited")
230
- log " Memory limit: ${current_limit}MB"
231
-
232
- # Show available memory
233
- if command -v free &> /dev/null; then
234
- local total_mem=$(free -m | awk 'NR==2{print $2}')
235
- local available_mem=$(free -m | awk 'NR==2{print $7}')
236
- log " System memory: ${available_mem}MB available / ${total_mem}MB total"
237
- fi
238
-
239
- # Show profile directory
240
- log " Profile directory: $PROFILING_DIR"
241
- log " Log file: $LOG_FILE"
242
- }
243
-
244
- # Parse command line arguments
245
- case "${1:-}" in
246
- "profile")
247
- shift
248
- local limit=$DEFAULT_MEMORY_LIMIT
249
- while [[ $# -gt 0 ]]; do
250
- case $1 in
251
- --limit) limit="$2"; shift 2 ;;
252
- *) shift ;;
253
- esac
254
- done
255
- start_with_profiling "$limit"
256
- ;;
257
- "monitor")
258
- shift
259
- local pid=""
260
- local duration=300
261
- while [[ $# -gt 0 ]]; do
262
- case $1 in
263
- --pid) pid="$2"; shift 2 ;;
264
- --duration) duration="$2"; shift 2 ;;
265
- *) shift ;;
266
- esac
267
- done
268
- monitor_memory "$pid" "$duration"
269
- ;;
270
- "limit")
271
- shift
272
- local limit=$DEFAULT_MEMORY_LIMIT
273
- while [[ $# -gt 0 ]]; do
274
- case $1 in
275
- --limit) limit="$2"; shift 2 ;;
276
- *) shift ;;
277
- esac
278
- done
279
- set_memory_limits "$limit"
280
- ;;
281
- "install-tools")
282
- install_debug_tools
283
- ;;
284
- "analyze")
285
- shift
286
- local dir=$PROFILING_DIR
287
- while [[ $# -gt 0 ]]; do
288
- case $1 in
289
- --output) dir="$2"; shift 2 ;;
290
- *) shift ;;
291
- esac
292
- done
293
- analyze_profiles "$dir"
294
- ;;
295
- "config")
296
- show_config
297
- ;;
298
- "help"|"-h"|"--help")
299
- show_help
300
- ;;
301
- *)
302
- log "${RED}Unknown command: ${1:-}${NC}"
303
- show_help
304
- exit 1
305
- ;;
1
+ #!/bin/bash
2
+
3
+ # Memory Leak Detection and Prevention Script
4
+ # Implements recommendations from memory leak analysis
5
+
6
+ set -euo pipefail
7
+
8
+ # Configuration
9
+ DEFAULT_MEMORY_LIMIT="8192" # 8GB limit instead of 16GB
10
+ DEFAULT_NODE_OPTIONS="--max-old-space-size=$DEFAULT_MEMORY_LIMIT"
11
+ PROFILING_DIR="/tmp/claude-memory-profiles"
12
+ LOG_FILE="/tmp/claude-memory-monitor.log"
13
+
14
+ # Colors for output
15
+ RED='\033[0;31m'
16
+ GREEN='\033[0;32m'
17
+ YELLOW='\033[1;33m'
18
+ BLUE='\033[0;34m'
19
+ NC='\033[0m' # No Color
20
+
21
+ # Create profiling directory
22
+ mkdir -p "$PROFILING_DIR"
23
+
24
+ log() {
25
+ echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
26
+ }
27
+
28
+ show_help() {
29
+ cat << EOF
30
+ Memory Leak Detection and Prevention Tool
31
+
32
+ Usage: $0 [COMMAND] [OPTIONS]
33
+
34
+ Commands:
35
+ profile Start Claude with heap profiling enabled
36
+ monitor Monitor existing Claude process memory usage
37
+ limit Set memory limits for Claude sessions
38
+ install-tools Install strace and perf for WSL
39
+ analyze Analyze existing memory profiles
40
+ config Show current memory configuration
41
+
42
+ Options:
43
+ --limit MB Set memory limit in MB (default: 8192)
44
+ --pid PID Monitor specific process ID
45
+ --duration SEC Monitoring duration in seconds (default: 300)
46
+ --output DIR Output directory for profiles (default: /tmp/claude-memory-profiles)
47
+
48
+ Examples:
49
+ $0 profile --limit 6144 # Start Claude with 6GB limit and profiling
50
+ $0 monitor --pid 12345 --duration 600 # Monitor PID 12345 for 10 minutes
51
+ $0 install-tools # Install strace and perf
52
+ $0 analyze --output ./profiles # Analyze existing profiles
53
+ EOF
54
+ }
55
+
56
+ install_debug_tools() {
57
+ log "${BLUE}Installing strace and perf for debugging...${NC}"
58
+
59
+ if command -v apt-get &> /dev/null; then
60
+ sudo apt-get update
61
+ sudo apt-get install -y strace linux-tools-generic linux-perf
62
+ elif command -v yum &> /dev/null; then
63
+ sudo yum install -y strace perf
64
+ else
65
+ log "${RED}Unsupported package manager. Please install strace and perf manually.${NC}"
66
+ return 1
67
+ fi
68
+
69
+ # Configure perf for non-root users
70
+ echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid >/dev/null 2>&1 || true
71
+ echo 0 | sudo tee /proc/sys/kernel/kptr_restrict >/dev/null 2>&1 || true
72
+
73
+ log "${GREEN}Debug tools installed successfully${NC}"
74
+ }
75
+
76
+ start_with_profiling() {
77
+ local memory_limit=${1:-$DEFAULT_MEMORY_LIMIT}
78
+
79
+ log "${BLUE}Starting Claude with heap profiling and memory limit: ${memory_limit}MB${NC}"
80
+
81
+ # Set up environment for profiling
82
+ export NODE_OPTIONS="--max-old-space-size=$memory_limit --inspect=0.0.0.0:9229 --heap-prof"
83
+ export CLAUDE_MEMORY_PROFILE_DIR="$PROFILING_DIR"
84
+
85
+ # Create profile filename with timestamp
86
+ local profile_file="${PROFILING_DIR}/claude-profile-$(date +%Y%m%d-%H%M%S)"
87
+
88
+ log "${GREEN}Environment variables set:${NC}"
89
+ log " NODE_OPTIONS: $NODE_OPTIONS"
90
+ log " Profile directory: $PROFILING_DIR"
91
+ log "${YELLOW}Claude will start with debugging enabled on port 9229${NC}"
92
+ log "${YELLOW}Use Chrome DevTools or chrome://inspect to connect${NC}"
93
+
94
+ # Start Claude CLI with profiling
95
+ log "${BLUE}Starting Claude CLI...${NC}"
96
+ npx claude-flow-novice "$@"
97
+ }
98
+
99
+ monitor_memory() {
100
+ local target_pid=${1:-}
101
+ local duration=${2:-300}
102
+ local output_file="${PROFILING_DIR}/memory-monitor-$(date +%Y%m%d-%H%M%S).csv"
103
+
104
+ if [[ -z "$target_pid" ]]; then
105
+ log "${RED}Error: PID required for monitoring. Use --pid to specify.${NC}"
106
+ return 1
107
+ fi
108
+
109
+ log "${BLUE}Monitoring PID $target_pid for ${duration} seconds...${NC}"
110
+ log "Results will be saved to: $output_file"
111
+
112
+ # Create CSV header
113
+ echo "timestamp,pid,rss_mb,vms_mb,cpu_percent,open_files,connections" > "$output_file"
114
+
115
+ local start_time=$(date +%s)
116
+ local end_time=$((start_time + duration))
117
+
118
+ while [[ $(date +%s) -lt $end_time ]]; do
119
+ if ! kill -0 "$target_pid" 2>/dev/null; then
120
+ log "${RED}Process $target_pid is no longer running${NC}"
121
+ break
122
+ fi
123
+
124
+ local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
125
+ local stats=$(ps -p "$target_pid" -o pid,rss,vms,pcpu --no-headers 2>/dev/null || echo "")
126
+
127
+ if [[ -n "$stats" ]]; then
128
+ local rss_mb=$(echo "$stats" | awk '{print int($2/1024)}')
129
+ local vms_mb=$(echo "$stats" | awk '{print int($3/1024)}')
130
+ local cpu_percent=$(echo "$stats" | awk '{print $4}')
131
+
132
+ # Count open files and network connections
133
+ local open_files=$(lsof -p "$target_pid" 2>/dev/null | wc -l || echo "0")
134
+ local connections=$(netstat -p 2>/dev/null | grep "$target_pid/" | wc -l || echo "0")
135
+
136
+ echo "$timestamp,$target_pid,$rss_mb,$vms_mb,$cpu_percent,$open_files,$connections" >> "$output_file"
137
+
138
+ # Alert if memory exceeds threshold
139
+ if [[ $rss_mb -gt 8192 ]]; then
140
+ log "${RED}⚠️ High memory usage detected: ${rss_mb}MB RSS${NC}"
141
+ fi
142
+
143
+ log "Memory: ${rss_mb}MB RSS, ${vms_mb}MB VMS, CPU: ${cpu_percent}%, Files: $open_files, Connections: $connections"
144
+ fi
145
+
146
+ sleep 10
147
+ done
148
+
149
+ log "${GREEN}Monitoring completed. Data saved to: $output_file${NC}"
150
+ }
151
+
152
+ set_memory_limits() {
153
+ local limit_mb=${1:-8192}
154
+
155
+ log "${BLUE}Setting memory limits to ${limit_mb}MB...${NC}"
156
+
157
+ # Update shell configuration
158
+ local shell_rc="$HOME/.bashrc"
159
+ if [[ -f "$HOME/.zshrc" ]]; then
160
+ shell_rc="$HOME/.zshrc"
161
+ fi
162
+
163
+ # Remove existing NODE_OPTIONS lines
164
+ sed -i '/^export NODE_OPTIONS="--max-old-space-size=/d' "$shell_rc" 2>/dev/null || true
165
+
166
+ # Add new limit
167
+ echo "export NODE_OPTIONS=\"--max-old-space-size=$limit_mb\"" >> "$shell_rc"
168
+
169
+ log "${GREEN}Memory limit set to ${limit_mb}MB in $shell_rc${NC}"
170
+ log "${YELLOW}Restart your shell or run: source $shell_rc${NC}"
171
+ }
172
+
173
+ analyze_profiles() {
174
+ local profile_dir=${1:-$PROFILING_DIR}
175
+
176
+ log "${BLUE}Analyzing memory profiles in $profile_dir...${NC}"
177
+
178
+ if [[ ! -d "$profile_dir" ]]; then
179
+ log "${RED}Profile directory $profile_dir does not exist${NC}"
180
+ return 1
181
+ fi
182
+
183
+ # Find heap profile files
184
+ local heap_profiles=($(find "$profile_dir" -name "*.heapprofile" 2>/dev/null))
185
+
186
+ if [[ ${#heap_profiles[@]} -eq 0 ]]; then
187
+ log "${YELLOW}No heap profiles found in $profile_dir${NC}"
188
+ return 1
189
+ fi
190
+
191
+ log "${GREEN}Found ${#heap_profiles[@]} heap profile(s)${NC}"
192
+
193
+ for profile in "${heap_profiles[@]}"; do
194
+ log "${BLUE}Analyzing: $(basename "$profile")${NC}"
195
+
196
+ # Basic analysis - find top allocations
197
+ if command -v node &> /dev/null; then
198
+ echo "Top 10 allocations in $(basename "$profile"):" > "${profile}.analysis"
199
+ node -e "
200
+ const fs = require('fs');
201
+ const data = JSON.parse(fs.readFileSync('$profile', 'utf8'));
202
+ const allocations = data.heapProfile || data;
203
+ if (allocations && allocations.samples) {
204
+ allocations.samples
205
+ .sort((a, b) => b.size - a.size)
206
+ .slice(0, 10)
207
+ .forEach((sample, i) => {
208
+ console.log(\`\${i+1}. \${sample.functionName || 'unknown'}: \${(sample.size/1024/1024).toFixed(2)}MB\`);
209
+ });
210
+ }
211
+ " >> "${profile}.analysis"
212
+
213
+ log "${GREEN}Analysis saved to: ${profile}.analysis${NC}"
214
+ fi
215
+ done
216
+ }
217
+
218
+ show_config() {
219
+ log "${BLUE}Current Memory Configuration:${NC}"
220
+
221
+ # Show current NODE_OPTIONS
222
+ if [[ -n "${NODE_OPTIONS:-}" ]]; then
223
+ log " NODE_OPTIONS: $NODE_OPTIONS"
224
+ else
225
+ log " NODE_OPTIONS: (not set)"
226
+ fi
227
+
228
+ # Show current limits
229
+ local current_limit=$(echo "$NODE_OPTIONS" | grep -o 'max-old-space-size=[0-9]*' | cut -d'=' -f2 || echo "unlimited")
230
+ log " Memory limit: ${current_limit}MB"
231
+
232
+ # Show available memory
233
+ if command -v free &> /dev/null; then
234
+ local total_mem=$(free -m | awk 'NR==2{print $2}')
235
+ local available_mem=$(free -m | awk 'NR==2{print $7}')
236
+ log " System memory: ${available_mem}MB available / ${total_mem}MB total"
237
+ fi
238
+
239
+ # Show profile directory
240
+ log " Profile directory: $PROFILING_DIR"
241
+ log " Log file: $LOG_FILE"
242
+ }
243
+
244
+ # Parse command line arguments
245
+ case "${1:-}" in
246
+ "profile")
247
+ shift
248
+ local limit=$DEFAULT_MEMORY_LIMIT
249
+ while [[ $# -gt 0 ]]; do
250
+ case $1 in
251
+ --limit) limit="$2"; shift 2 ;;
252
+ *) shift ;;
253
+ esac
254
+ done
255
+ start_with_profiling "$limit"
256
+ ;;
257
+ "monitor")
258
+ shift
259
+ local pid=""
260
+ local duration=300
261
+ while [[ $# -gt 0 ]]; do
262
+ case $1 in
263
+ --pid) pid="$2"; shift 2 ;;
264
+ --duration) duration="$2"; shift 2 ;;
265
+ *) shift ;;
266
+ esac
267
+ done
268
+ monitor_memory "$pid" "$duration"
269
+ ;;
270
+ "limit")
271
+ shift
272
+ local limit=$DEFAULT_MEMORY_LIMIT
273
+ while [[ $# -gt 0 ]]; do
274
+ case $1 in
275
+ --limit) limit="$2"; shift 2 ;;
276
+ *) shift ;;
277
+ esac
278
+ done
279
+ set_memory_limits "$limit"
280
+ ;;
281
+ "install-tools")
282
+ install_debug_tools
283
+ ;;
284
+ "analyze")
285
+ shift
286
+ local dir=$PROFILING_DIR
287
+ while [[ $# -gt 0 ]]; do
288
+ case $1 in
289
+ --output) dir="$2"; shift 2 ;;
290
+ *) shift ;;
291
+ esac
292
+ done
293
+ analyze_profiles "$dir"
294
+ ;;
295
+ "config")
296
+ show_config
297
+ ;;
298
+ "help"|"-h"|"--help")
299
+ show_help
300
+ ;;
301
+ *)
302
+ log "${RED}Unknown command: ${1:-}${NC}"
303
+ show_help
304
+ exit 1
305
+ ;;
306
306
  esac