claude-mpm 4.14.6__py3-none-any.whl → 4.21.0__py3-none-any.whl

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 (353) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_ENGINEER.md +286 -0
  3. claude_mpm/agents/BASE_PM.md +272 -23
  4. claude_mpm/agents/OUTPUT_STYLE.md +48 -3
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +49 -0
  6. claude_mpm/agents/agent_loader.py +17 -5
  7. claude_mpm/agents/frontmatter_validator.py +284 -253
  8. claude_mpm/agents/templates/agentic-coder-optimizer.json +9 -2
  9. claude_mpm/agents/templates/api_qa.json +7 -1
  10. claude_mpm/agents/templates/clerk-ops.json +8 -1
  11. claude_mpm/agents/templates/code_analyzer.json +4 -1
  12. claude_mpm/agents/templates/dart_engineer.json +11 -1
  13. claude_mpm/agents/templates/data_engineer.json +11 -1
  14. claude_mpm/agents/templates/documentation.json +6 -1
  15. claude_mpm/agents/templates/engineer.json +18 -1
  16. claude_mpm/agents/templates/gcp_ops_agent.json +8 -1
  17. claude_mpm/agents/templates/golang_engineer.json +11 -1
  18. claude_mpm/agents/templates/java_engineer.json +12 -2
  19. claude_mpm/agents/templates/local_ops_agent.json +216 -37
  20. claude_mpm/agents/templates/nextjs_engineer.json +11 -1
  21. claude_mpm/agents/templates/ops.json +8 -1
  22. claude_mpm/agents/templates/php-engineer.json +20 -4
  23. claude_mpm/agents/templates/project_organizer.json +10 -3
  24. claude_mpm/agents/templates/prompt-engineer.json +5 -1
  25. claude_mpm/agents/templates/python_engineer.json +19 -4
  26. claude_mpm/agents/templates/qa.json +7 -1
  27. claude_mpm/agents/templates/react_engineer.json +11 -1
  28. claude_mpm/agents/templates/refactoring_engineer.json +8 -1
  29. claude_mpm/agents/templates/research.json +4 -1
  30. claude_mpm/agents/templates/ruby-engineer.json +11 -1
  31. claude_mpm/agents/templates/rust_engineer.json +23 -8
  32. claude_mpm/agents/templates/security.json +6 -1
  33. claude_mpm/agents/templates/svelte-engineer.json +225 -0
  34. claude_mpm/agents/templates/ticketing.json +6 -1
  35. claude_mpm/agents/templates/typescript_engineer.json +11 -1
  36. claude_mpm/agents/templates/vercel_ops_agent.json +8 -1
  37. claude_mpm/agents/templates/version_control.json +8 -1
  38. claude_mpm/agents/templates/web_qa.json +7 -1
  39. claude_mpm/agents/templates/web_ui.json +11 -1
  40. claude_mpm/cli/__init__.py +34 -740
  41. claude_mpm/cli/commands/__init__.py +2 -0
  42. claude_mpm/cli/commands/agent_manager.py +25 -12
  43. claude_mpm/cli/commands/agent_state_manager.py +186 -0
  44. claude_mpm/cli/commands/agents.py +204 -148
  45. claude_mpm/cli/commands/aggregate.py +7 -3
  46. claude_mpm/cli/commands/analyze.py +9 -4
  47. claude_mpm/cli/commands/analyze_code.py +7 -2
  48. claude_mpm/cli/commands/auto_configure.py +7 -9
  49. claude_mpm/cli/commands/config.py +47 -13
  50. claude_mpm/cli/commands/configure.py +294 -1788
  51. claude_mpm/cli/commands/configure_agent_display.py +261 -0
  52. claude_mpm/cli/commands/configure_behavior_manager.py +204 -0
  53. claude_mpm/cli/commands/configure_hook_manager.py +225 -0
  54. claude_mpm/cli/commands/configure_models.py +18 -0
  55. claude_mpm/cli/commands/configure_navigation.py +167 -0
  56. claude_mpm/cli/commands/configure_paths.py +104 -0
  57. claude_mpm/cli/commands/configure_persistence.py +254 -0
  58. claude_mpm/cli/commands/configure_startup_manager.py +646 -0
  59. claude_mpm/cli/commands/configure_template_editor.py +497 -0
  60. claude_mpm/cli/commands/configure_validators.py +73 -0
  61. claude_mpm/cli/commands/local_deploy.py +3 -2
  62. claude_mpm/cli/commands/memory.py +54 -20
  63. claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
  64. claude_mpm/cli/commands/mpm_init/core.py +525 -0
  65. claude_mpm/cli/commands/mpm_init/display.py +341 -0
  66. claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
  67. claude_mpm/cli/commands/mpm_init/modes.py +397 -0
  68. claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
  69. claude_mpm/cli/commands/mpm_init_cli.py +396 -0
  70. claude_mpm/cli/commands/mpm_init_handler.py +75 -4
  71. claude_mpm/cli/commands/skills.py +488 -0
  72. claude_mpm/cli/executor.py +204 -0
  73. claude_mpm/cli/helpers.py +105 -0
  74. claude_mpm/cli/interactive/__init__.py +3 -0
  75. claude_mpm/cli/interactive/skills_wizard.py +491 -0
  76. claude_mpm/cli/parsers/base_parser.py +7 -0
  77. claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
  78. claude_mpm/cli/parsers/skills_parser.py +137 -0
  79. claude_mpm/cli/shared/output_formatters.py +28 -19
  80. claude_mpm/cli/startup.py +538 -0
  81. claude_mpm/commands/mpm-auto-configure.md +52 -0
  82. claude_mpm/commands/mpm-help.md +3 -0
  83. claude_mpm/commands/mpm-init.md +112 -6
  84. claude_mpm/commands/mpm-version.md +113 -0
  85. claude_mpm/commands/mpm.md +1 -0
  86. claude_mpm/config/agent_config.py +2 -2
  87. claude_mpm/constants.py +12 -0
  88. claude_mpm/core/base_service.py +13 -12
  89. claude_mpm/core/config.py +42 -0
  90. claude_mpm/core/enums.py +452 -0
  91. claude_mpm/core/factories.py +1 -1
  92. claude_mpm/core/instruction_reinforcement_hook.py +2 -1
  93. claude_mpm/core/interactive_session.py +6 -3
  94. claude_mpm/core/interfaces.py +56 -1
  95. claude_mpm/core/logging_config.py +6 -2
  96. claude_mpm/core/oneshot_session.py +8 -4
  97. claude_mpm/core/optimized_agent_loader.py +3 -3
  98. claude_mpm/core/output_style_manager.py +12 -192
  99. claude_mpm/core/service_registry.py +5 -1
  100. claude_mpm/core/types.py +2 -9
  101. claude_mpm/core/typing_utils.py +7 -6
  102. claude_mpm/dashboard/static/js/dashboard.js +0 -14
  103. claude_mpm/dashboard/templates/index.html +3 -41
  104. claude_mpm/hooks/__init__.py +8 -0
  105. claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
  106. claude_mpm/hooks/instruction_reinforcement.py +7 -2
  107. claude_mpm/hooks/session_resume_hook.py +121 -0
  108. claude_mpm/models/resume_log.py +340 -0
  109. claude_mpm/services/agents/auto_config_manager.py +10 -11
  110. claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
  111. claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
  112. claude_mpm/services/agents/deployment/agent_validator.py +17 -1
  113. claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
  114. claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
  115. claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
  116. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +7 -6
  117. claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +7 -16
  118. claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +4 -3
  119. claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +5 -3
  120. claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +6 -5
  121. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +9 -6
  122. claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
  123. claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
  124. claude_mpm/services/agents/local_template_manager.py +1 -1
  125. claude_mpm/services/agents/memory/agent_memory_manager.py +5 -2
  126. claude_mpm/services/agents/recommender.py +47 -0
  127. claude_mpm/services/agents/registry/modification_tracker.py +5 -2
  128. claude_mpm/services/cli/resume_service.py +617 -0
  129. claude_mpm/services/cli/session_manager.py +87 -0
  130. claude_mpm/services/cli/session_pause_manager.py +504 -0
  131. claude_mpm/services/cli/session_resume_helper.py +372 -0
  132. claude_mpm/services/command_handler_service.py +11 -5
  133. claude_mpm/services/core/interfaces/process.py +6 -6
  134. claude_mpm/services/core/interfaces.py +56 -1
  135. claude_mpm/services/core/models/__init__.py +0 -2
  136. claude_mpm/services/core/models/agent_config.py +15 -28
  137. claude_mpm/services/core/models/health.py +1 -28
  138. claude_mpm/services/core/models/process.py +22 -41
  139. claude_mpm/services/core/path_resolver.py +1 -1
  140. claude_mpm/services/diagnostics/__init__.py +2 -2
  141. claude_mpm/services/diagnostics/checks/agent_check.py +25 -24
  142. claude_mpm/services/diagnostics/checks/claude_code_check.py +24 -23
  143. claude_mpm/services/diagnostics/checks/common_issues_check.py +25 -24
  144. claude_mpm/services/diagnostics/checks/configuration_check.py +24 -23
  145. claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
  146. claude_mpm/services/diagnostics/checks/installation_check.py +30 -29
  147. claude_mpm/services/diagnostics/checks/instructions_check.py +20 -19
  148. claude_mpm/services/diagnostics/checks/mcp_check.py +50 -36
  149. claude_mpm/services/diagnostics/checks/mcp_services_check.py +36 -31
  150. claude_mpm/services/diagnostics/checks/monitor_check.py +23 -22
  151. claude_mpm/services/diagnostics/checks/startup_log_check.py +9 -8
  152. claude_mpm/services/diagnostics/diagnostic_runner.py +6 -5
  153. claude_mpm/services/diagnostics/doctor_reporter.py +28 -25
  154. claude_mpm/services/diagnostics/models.py +37 -21
  155. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -1
  156. claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
  157. claude_mpm/services/infrastructure/monitoring/base.py +5 -13
  158. claude_mpm/services/infrastructure/monitoring/network.py +7 -6
  159. claude_mpm/services/infrastructure/monitoring/process.py +13 -12
  160. claude_mpm/services/infrastructure/monitoring/resources.py +7 -6
  161. claude_mpm/services/infrastructure/monitoring/service.py +16 -15
  162. claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
  163. claude_mpm/services/local_ops/__init__.py +5 -3
  164. claude_mpm/services/local_ops/crash_detector.py +1 -1
  165. claude_mpm/services/local_ops/health_checks/http_check.py +2 -1
  166. claude_mpm/services/local_ops/health_checks/process_check.py +2 -1
  167. claude_mpm/services/local_ops/health_checks/resource_check.py +2 -1
  168. claude_mpm/services/local_ops/health_manager.py +1 -1
  169. claude_mpm/services/local_ops/process_manager.py +12 -12
  170. claude_mpm/services/local_ops/restart_manager.py +1 -1
  171. claude_mpm/services/local_ops/state_manager.py +6 -5
  172. claude_mpm/services/local_ops/unified_manager.py +2 -2
  173. claude_mpm/services/mcp_config_manager.py +7 -126
  174. claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
  175. claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
  176. claude_mpm/services/mcp_gateway/core/base.py +18 -31
  177. claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
  178. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +97 -45
  179. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +30 -28
  180. claude_mpm/services/memory_hook_service.py +4 -1
  181. claude_mpm/services/monitor/daemon_manager.py +3 -2
  182. claude_mpm/services/monitor/handlers/dashboard.py +2 -1
  183. claude_mpm/services/monitor/handlers/hooks.py +2 -1
  184. claude_mpm/services/monitor/management/lifecycle.py +3 -2
  185. claude_mpm/services/monitor/server.py +2 -1
  186. claude_mpm/services/session_management_service.py +3 -2
  187. claude_mpm/services/session_manager.py +205 -1
  188. claude_mpm/services/shared/async_service_base.py +16 -27
  189. claude_mpm/services/shared/lifecycle_service_base.py +1 -14
  190. claude_mpm/services/socketio/handlers/__init__.py +5 -2
  191. claude_mpm/services/socketio/handlers/hook.py +13 -2
  192. claude_mpm/services/socketio/handlers/registry.py +4 -2
  193. claude_mpm/services/socketio/server/main.py +10 -8
  194. claude_mpm/services/subprocess_launcher_service.py +14 -5
  195. claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +8 -7
  196. claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +6 -5
  197. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +8 -7
  198. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +7 -6
  199. claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +5 -4
  200. claude_mpm/services/unified/config_strategies/validation_strategy.py +13 -9
  201. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +10 -3
  202. claude_mpm/services/unified/deployment_strategies/local.py +6 -5
  203. claude_mpm/services/unified/deployment_strategies/utils.py +6 -5
  204. claude_mpm/services/unified/deployment_strategies/vercel.py +7 -6
  205. claude_mpm/services/unified/interfaces.py +3 -1
  206. claude_mpm/services/unified/unified_analyzer.py +14 -10
  207. claude_mpm/services/unified/unified_config.py +2 -1
  208. claude_mpm/services/unified/unified_deployment.py +9 -4
  209. claude_mpm/services/version_service.py +104 -1
  210. claude_mpm/skills/__init__.py +42 -0
  211. claude_mpm/skills/agent_skills_injector.py +324 -0
  212. claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +79 -0
  213. claude_mpm/skills/bundled/__init__.py +6 -0
  214. claude_mpm/skills/bundled/api-documentation.md +393 -0
  215. claude_mpm/skills/bundled/async-testing.md +571 -0
  216. claude_mpm/skills/bundled/code-review.md +143 -0
  217. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
  218. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
  219. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  220. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  221. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  222. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  223. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
  224. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
  225. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  226. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
  227. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  228. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  229. claude_mpm/skills/bundled/database-migration.md +199 -0
  230. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
  231. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  232. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  233. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  234. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  235. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
  236. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
  237. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
  238. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
  239. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
  240. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
  241. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
  242. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
  243. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
  244. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
  245. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
  246. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
  247. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  248. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  249. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
  250. claude_mpm/skills/bundled/docker-containerization.md +194 -0
  251. claude_mpm/skills/bundled/express-local-dev.md +1429 -0
  252. claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
  253. claude_mpm/skills/bundled/git-workflow.md +414 -0
  254. claude_mpm/skills/bundled/imagemagick.md +204 -0
  255. claude_mpm/skills/bundled/json-data-handling.md +223 -0
  256. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
  257. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
  258. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
  259. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
  260. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
  261. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
  262. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
  263. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  264. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
  265. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
  266. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
  267. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
  268. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  269. claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +157 -0
  270. claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +425 -0
  271. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
  272. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  273. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  274. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  275. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  276. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  277. claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +303 -0
  278. claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +113 -0
  279. claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +72 -0
  280. claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
  281. claude_mpm/skills/bundled/pdf.md +141 -0
  282. claude_mpm/skills/bundled/performance-profiling.md +567 -0
  283. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  284. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  285. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  286. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  287. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  288. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  289. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  290. claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
  291. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  292. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  293. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  294. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  295. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  296. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  297. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  298. claude_mpm/skills/bundled/security-scanning.md +327 -0
  299. claude_mpm/skills/bundled/systematic-debugging.md +473 -0
  300. claude_mpm/skills/bundled/test-driven-development.md +378 -0
  301. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
  302. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  303. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
  304. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
  305. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
  306. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
  307. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
  308. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
  309. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
  310. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  311. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  312. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  313. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  314. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
  315. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  316. claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +35 -0
  317. claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +44 -0
  318. claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +34 -0
  319. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  320. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  321. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
  322. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  323. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  324. claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
  325. claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
  326. claude_mpm/skills/bundled/xlsx.md +157 -0
  327. claude_mpm/skills/registry.py +286 -0
  328. claude_mpm/skills/skill_manager.py +310 -0
  329. claude_mpm/skills/skills_registry.py +348 -0
  330. claude_mpm/skills/skills_service.py +739 -0
  331. claude_mpm/tools/code_tree_analyzer.py +177 -141
  332. claude_mpm/tools/code_tree_events.py +4 -2
  333. claude_mpm/utils/agent_dependency_loader.py +2 -2
  334. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/METADATA +211 -33
  335. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/RECORD +339 -199
  336. claude_mpm/agents/INSTRUCTIONS_OLD_DEPRECATED.md +0 -602
  337. claude_mpm/cli/commands/mpm_init.py +0 -1994
  338. claude_mpm/dashboard/static/css/code-tree.css +0 -1639
  339. claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
  340. claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
  341. claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
  342. claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
  343. claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
  344. claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
  345. claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
  346. claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1041
  347. claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
  348. claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
  349. claude_mpm/services/project/analyzer_refactored.py +0 -450
  350. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/WHEEL +0 -0
  351. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/entry_points.txt +0 -0
  352. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/licenses/LICENSE +0 -0
  353. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/top_level.txt +0 -0
@@ -1,435 +0,0 @@
1
- /**
2
- * Tree Utility Functions
3
- *
4
- * Common utility functions extracted from code-tree.js
5
- * Provides formatting, file type detection, and other helper functions.
6
- *
7
- * @module tree-utils
8
- */
9
-
10
- const treeUtils = {
11
- /**
12
- * Get complexity level from numeric complexity
13
- * @param {number} complexity - Complexity value
14
- * @returns {string} Complexity level (low/medium/high)
15
- */
16
- getComplexityLevel(complexity) {
17
- if (complexity <= 5) return 'low';
18
- if (complexity <= 10) return 'medium';
19
- return 'high';
20
- },
21
-
22
- /**
23
- * Format file size for display
24
- * @param {number} bytes - Size in bytes
25
- * @returns {string} Formatted size string
26
- */
27
- formatFileSize(bytes) {
28
- if (bytes === 0) return '0 B';
29
- const k = 1024;
30
- const sizes = ['B', 'KB', 'MB', 'GB'];
31
- const i = Math.floor(Math.log(bytes) / Math.log(k));
32
- return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
33
- },
34
-
35
- /**
36
- * Get file extension from path
37
- * @param {string} filePath - File path
38
- * @returns {string} File extension (lowercase)
39
- */
40
- getFileExtension(filePath) {
41
- if (!filePath) return '';
42
- const parts = filePath.split('.');
43
- return parts.length > 1 ? parts.pop().toLowerCase() : '';
44
- },
45
-
46
- /**
47
- * Get descriptive file type for user messages
48
- * @param {string} fileName - File name
49
- * @returns {string} Human-readable file type description
50
- */
51
- getFileTypeDescription(fileName) {
52
- if (!fileName) return 'File';
53
-
54
- const ext = this.getFileExtension(fileName);
55
- const baseName = fileName.toLowerCase();
56
-
57
- // Special cases
58
- if (baseName.endsWith('__init__.py')) {
59
- return 'Python package initialization';
60
- }
61
- if (baseName === 'makefile') {
62
- return 'Build configuration';
63
- }
64
- if (baseName.includes('config') || baseName.includes('settings')) {
65
- return 'Configuration file';
66
- }
67
- if (baseName.includes('test') || baseName.includes('spec')) {
68
- return 'Test file';
69
- }
70
-
71
- // By extension
72
- const typeMap = {
73
- 'py': 'Python file',
74
- 'js': 'JavaScript file',
75
- 'ts': 'TypeScript file',
76
- 'jsx': 'React component',
77
- 'tsx': 'React TypeScript component',
78
- 'html': 'HTML document',
79
- 'css': 'Stylesheet',
80
- 'scss': 'SCSS stylesheet',
81
- 'sass': 'Sass stylesheet',
82
- 'less': 'LESS stylesheet',
83
- 'json': 'JSON data',
84
- 'md': 'Markdown document',
85
- 'txt': 'Text file',
86
- 'yml': 'YAML configuration',
87
- 'yaml': 'YAML configuration',
88
- 'xml': 'XML document',
89
- 'sql': 'SQL script',
90
- 'sh': 'Shell script',
91
- 'bash': 'Bash script',
92
- 'toml': 'TOML configuration',
93
- 'ini': 'INI configuration',
94
- 'env': 'Environment variables',
95
- 'dockerfile': 'Docker configuration',
96
- 'makefile': 'Build configuration',
97
- 'gitignore': 'Git ignore rules',
98
- 'readme': 'Documentation'
99
- };
100
-
101
- return typeMap[ext] || typeMap[baseName] || 'File';
102
- },
103
-
104
- /**
105
- * Get file icon based on file type
106
- * @param {string} filePath - File path
107
- * @returns {string} Unicode emoji icon
108
- */
109
- getFileIcon(filePath) {
110
- if (!filePath) return '📄';
111
-
112
- const ext = this.getFileExtension(filePath);
113
- const fileName = filePath.toLowerCase().split('/').pop();
114
-
115
- const iconMap = {
116
- // Programming languages
117
- 'py': '🐍',
118
- 'js': '📜',
119
- 'ts': '📘',
120
- 'jsx': '⚛️',
121
- 'tsx': '⚛️',
122
- 'java': '☕',
123
- 'c': '🔷',
124
- 'cpp': '🔷',
125
- 'cs': '🔷',
126
- 'go': '🐹',
127
- 'rs': '🦀',
128
- 'rb': '💎',
129
- 'php': '🐘',
130
- 'swift': '🦉',
131
- 'kt': '🎯',
132
-
133
- // Web files
134
- 'html': '🌐',
135
- 'css': '🎨',
136
- 'scss': '🎨',
137
- 'sass': '🎨',
138
- 'less': '🎨',
139
-
140
- // Data files
141
- 'json': '📋',
142
- 'xml': '📰',
143
- 'csv': '📊',
144
- 'sql': '🗃️',
145
-
146
- // Documentation
147
- 'md': '📝',
148
- 'txt': '📄',
149
- 'pdf': '📑',
150
- 'doc': '📃',
151
- 'docx': '📃',
152
-
153
- // Configuration
154
- 'yml': '⚙️',
155
- 'yaml': '⚙️',
156
- 'toml': '⚙️',
157
- 'ini': '⚙️',
158
- 'env': '🔐',
159
-
160
- // Scripts
161
- 'sh': '🐚',
162
- 'bash': '🐚',
163
- 'bat': '🖥️',
164
- 'ps1': '🖥️',
165
-
166
- // Special files
167
- 'dockerfile': '🐳',
168
- 'docker-compose.yml': '🐳',
169
- 'makefile': '🔨',
170
- 'package.json': '📦',
171
- 'requirements.txt': '📦',
172
- 'gitignore': '🚫',
173
- '.gitignore': '🚫',
174
- 'readme': '📖',
175
- 'readme.md': '📖',
176
- 'license': '📜',
177
- 'license.md': '📜'
178
- };
179
-
180
- // Check full filename first, then extension
181
- return iconMap[fileName] || iconMap[ext] || '📄';
182
- },
183
-
184
- /**
185
- * Count different types of AST elements
186
- * @param {Array} elements - AST elements
187
- * @returns {Object} Element counts
188
- */
189
- getElementCounts(elements) {
190
- const counts = {
191
- classes: 0,
192
- functions: 0,
193
- methods: 0,
194
- total: elements.length
195
- };
196
-
197
- elements.forEach(elem => {
198
- if (elem.type === 'class') {
199
- counts.classes++;
200
- if (elem.methods) {
201
- counts.methods += elem.methods.length;
202
- }
203
- } else if (elem.type === 'function') {
204
- counts.functions++;
205
- }
206
- });
207
-
208
- return counts;
209
- },
210
-
211
- /**
212
- * Format element counts into a readable summary
213
- * @param {Object} counts - Element counts
214
- * @returns {string} Formatted summary
215
- */
216
- formatElementSummary(counts) {
217
- const parts = [];
218
-
219
- if (counts.classes > 0) {
220
- parts.push(`${counts.classes} class${counts.classes !== 1 ? 'es' : ''}`);
221
- }
222
- if (counts.functions > 0) {
223
- parts.push(`${counts.functions} function${counts.functions !== 1 ? 's' : ''}`);
224
- }
225
- if (counts.methods > 0) {
226
- parts.push(`${counts.methods} method${counts.methods !== 1 ? 's' : ''}`);
227
- }
228
-
229
- if (parts.length === 0) {
230
- return 'Structural elements for tree view';
231
- } else if (parts.length === 1) {
232
- return parts[0] + ' found';
233
- } else if (parts.length === 2) {
234
- return parts.join(' and ') + ' found';
235
- } else {
236
- return parts.slice(0, -1).join(', ') + ', and ' + parts[parts.length - 1] + ' found';
237
- }
238
- },
239
-
240
- /**
241
- * Get node type from data
242
- * @param {Object} node - Node data
243
- * @returns {string} Node type
244
- */
245
- getNodeType(node) {
246
- if (!node) return 'unknown';
247
- if (node.type) return node.type;
248
- if (node.children && node.children.length > 0) return 'directory';
249
- if (node.path) return 'file';
250
- return 'unknown';
251
- },
252
-
253
- /**
254
- * Check if node is a directory
255
- * @param {Object} node - Node or node data
256
- * @returns {boolean} True if directory
257
- */
258
- isNodeDirectory(node) {
259
- if (!node) return false;
260
-
261
- // Handle D3 node structure
262
- if (node.data) {
263
- node = node.data;
264
- }
265
-
266
- return node.type === 'directory' ||
267
- node.type === 'folder' ||
268
- (node.children && node.children.length > 0) ||
269
- node.isDirectory === true;
270
- },
271
-
272
- /**
273
- * Get node icon for tree visualization
274
- * @param {string} type - Node type
275
- * @returns {string} Unicode icon
276
- */
277
- getNodeIcon(type) {
278
- const icons = {
279
- 'module': '📦',
280
- 'class': '🏗️',
281
- 'function': '⚡',
282
- 'method': '🔧',
283
- 'property': '📌',
284
- 'directory': '📁',
285
- 'folder': '📁',
286
- 'file': '📄',
287
- 'python': '🐍',
288
- 'javascript': '📜',
289
- 'unknown': '❓'
290
- };
291
- return icons[type] || icons['unknown'];
292
- },
293
-
294
- /**
295
- * Sort nodes for tree display
296
- * @param {Array} nodes - Array of nodes
297
- * @returns {Array} Sorted nodes
298
- */
299
- sortNodes(nodes) {
300
- return nodes.sort((a, b) => {
301
- // Directories first
302
- const aIsDir = this.isNodeDirectory(a);
303
- const bIsDir = this.isNodeDirectory(b);
304
-
305
- if (aIsDir && !bIsDir) return -1;
306
- if (!aIsDir && bIsDir) return 1;
307
-
308
- // Then alphabetically
309
- const aName = (a.name || a.data?.name || '').toLowerCase();
310
- const bName = (b.name || b.data?.name || '').toLowerCase();
311
-
312
- return aName.localeCompare(bName);
313
- });
314
- },
315
-
316
- /**
317
- * Filter nodes based on criteria
318
- * @param {Array} nodes - Array of nodes
319
- * @param {Object} criteria - Filter criteria
320
- * @returns {Array} Filtered nodes
321
- */
322
- filterNodes(nodes, criteria = {}) {
323
- return nodes.filter(node => {
324
- // Language filter
325
- if (criteria.language && node.language !== criteria.language) {
326
- return false;
327
- }
328
-
329
- // Search term filter
330
- if (criteria.searchTerm) {
331
- const term = criteria.searchTerm.toLowerCase();
332
- const name = (node.name || '').toLowerCase();
333
- const path = (node.path || '').toLowerCase();
334
-
335
- if (!name.includes(term) && !path.includes(term)) {
336
- return false;
337
- }
338
- }
339
-
340
- // Complexity filter
341
- if (criteria.minComplexity && node.complexity < criteria.minComplexity) {
342
- return false;
343
- }
344
- if (criteria.maxComplexity && node.complexity > criteria.maxComplexity) {
345
- return false;
346
- }
347
-
348
- return true;
349
- });
350
- },
351
-
352
- /**
353
- * Calculate tree statistics
354
- * @param {Object} node - Root node
355
- * @returns {Object} Tree statistics
356
- */
357
- calculateTreeStats(node) {
358
- const stats = {
359
- files: 0,
360
- directories: 0,
361
- classes: 0,
362
- functions: 0,
363
- methods: 0,
364
- lines: 0,
365
- maxDepth: 0
366
- };
367
-
368
- const traverse = (n, depth = 0) => {
369
- stats.maxDepth = Math.max(stats.maxDepth, depth);
370
-
371
- if (this.isNodeDirectory(n)) {
372
- stats.directories++;
373
- } else {
374
- stats.files++;
375
- }
376
-
377
- if (n.type === 'class') stats.classes++;
378
- if (n.type === 'function') stats.functions++;
379
- if (n.type === 'method') stats.methods++;
380
- if (n.lines) stats.lines += n.lines;
381
-
382
- if (n.children) {
383
- n.children.forEach(child => traverse(child, depth + 1));
384
- }
385
- };
386
-
387
- traverse(node);
388
- return stats;
389
- },
390
-
391
- /**
392
- * Get color based on complexity
393
- * @param {number} complexity - Complexity value
394
- * @returns {string} Color hex code
395
- */
396
- getComplexityColor(complexity) {
397
- if (!complexity || complexity <= 5) {
398
- return '#52c41a'; // Green - low complexity
399
- } else if (complexity <= 10) {
400
- return '#faad14'; // Orange - medium complexity
401
- } else {
402
- return '#f5222d'; // Red - high complexity
403
- }
404
- },
405
-
406
- /**
407
- * Format node path for display
408
- * @param {Object} node - Node object
409
- * @returns {string} Formatted path
410
- */
411
- formatNodePath(node) {
412
- const parts = [];
413
- let current = node;
414
-
415
- while (current) {
416
- if (current.data?.name) {
417
- parts.unshift(current.data.name);
418
- } else if (current.name) {
419
- parts.unshift(current.name);
420
- }
421
- current = current.parent;
422
- }
423
-
424
- return parts.join(' / ');
425
- }
426
- };
427
-
428
- // Support both module and global usage
429
- if (typeof module !== 'undefined' && module.exports) {
430
- module.exports = treeUtils;
431
- } else if (typeof define === 'function' && define.amd) {
432
- define([], () => treeUtils);
433
- } else {
434
- window.treeUtils = treeUtils;
435
- }