claude-mpm 5.4.55__tar.gz → 5.4.60__tar.gz

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.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

Files changed (1237) hide show
  1. {claude_mpm-5.4.55/src/claude_mpm.egg-info → claude_mpm-5.4.60}/PKG-INFO +1 -1
  2. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/pyproject.toml +2 -2
  3. claude_mpm-5.4.60/src/claude_mpm/VERSION +1 -0
  4. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/startup.py +76 -43
  5. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_template_builder.py +8 -0
  6. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/sources/git_source_sync_service.py +7 -4
  7. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/pm_skills_deployer.py +4 -0
  8. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills/git_skill_source_manager.py +20 -8
  9. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills/selective_skill_deployer.py +91 -82
  10. {claude_mpm-5.4.55 → claude_mpm-5.4.60/src/claude_mpm.egg-info}/PKG-INFO +1 -1
  11. claude_mpm-5.4.55/src/claude_mpm/VERSION +0 -1
  12. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/LICENSE +0 -0
  13. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/LICENSE-FAQ.md +0 -0
  14. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/README.md +0 -0
  15. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/setup.cfg +0 -0
  16. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/BUILD_NUMBER +0 -0
  17. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/__init__.py +0 -0
  18. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/__main__.py +0 -0
  19. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/BASE_AGENT.md +0 -0
  20. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/BASE_ENGINEER.md +0 -0
  21. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md +0 -0
  22. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +0 -0
  23. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/MEMORY.md +0 -0
  24. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/PM_INSTRUCTIONS.md +0 -0
  25. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/WORKFLOW.md +0 -0
  26. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/__init__.py +0 -0
  27. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/agent-template.yaml +0 -0
  28. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/agent_loader.py +0 -0
  29. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  30. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/agents_metadata.py +0 -0
  31. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/async_agent_loader.py +0 -0
  32. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/base_agent.json +0 -0
  33. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
  34. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/system_agent_config.py +0 -0
  35. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/README.md +0 -0
  36. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/__init__.py +0 -0
  37. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/circuit-breakers.md +0 -0
  38. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/context-management-examples.md +0 -0
  39. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/git-file-tracking.md +0 -0
  40. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/pm-examples.md +0 -0
  41. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/pm-red-flags.md +0 -0
  42. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/pr-workflow-examples.md +0 -0
  43. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/research-gate-examples.md +0 -0
  44. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/response-format.md +0 -0
  45. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/structured-questions-examples.md +0 -0
  46. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/ticket-completeness-examples.md +0 -0
  47. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/ticketing-examples.md +0 -0
  48. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/agents/templates/validation-templates.md +0 -0
  49. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/__init__.py +0 -0
  50. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/__main__.py +0 -0
  51. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/chrome_devtools_installer.py +0 -0
  52. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/__init__.py +0 -0
  53. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/agent_manager.py +0 -0
  54. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/agent_source.py +0 -0
  55. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/agent_state_manager.py +0 -0
  56. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/agents.py +0 -0
  57. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/agents_cleanup.py +0 -0
  58. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/agents_discover.py +0 -0
  59. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/aggregate.py +0 -0
  60. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/analyze.py +0 -0
  61. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/analyze_code.py +0 -0
  62. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/auto_configure.py +0 -0
  63. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/cleanup.py +0 -0
  64. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/cleanup_orphaned_agents.py +0 -0
  65. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/config.py +0 -0
  66. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure.py +0 -0
  67. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_agent_display.py +0 -0
  68. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_behavior_manager.py +0 -0
  69. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_hook_manager.py +0 -0
  70. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_models.py +0 -0
  71. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_navigation.py +0 -0
  72. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_paths.py +0 -0
  73. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_persistence.py +0 -0
  74. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_startup_manager.py +0 -0
  75. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_template_editor.py +0 -0
  76. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/configure_validators.py +0 -0
  77. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/dashboard.py +0 -0
  78. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/debug.py +0 -0
  79. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/doctor.py +0 -0
  80. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/hook_errors.py +0 -0
  81. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/info.py +0 -0
  82. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/local_deploy.py +0 -0
  83. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp.py +0 -0
  84. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_command_router.py +0 -0
  85. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_config.py +0 -0
  86. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_config_commands.py +0 -0
  87. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_external_commands.py +0 -0
  88. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_install_commands.py +0 -0
  89. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_pipx_config.py +0 -0
  90. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_server_commands.py +0 -0
  91. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_setup_external.py +0 -0
  92. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mcp_tool_commands.py +0 -0
  93. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/memory.py +0 -0
  94. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/monitor.py +0 -0
  95. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/__init__.py +0 -0
  96. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/core.py +0 -0
  97. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/display.py +0 -0
  98. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/git_activity.py +0 -0
  99. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/knowledge_extractor.py +0 -0
  100. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/modes.py +0 -0
  101. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init/prompts.py +0 -0
  102. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init_cli.py +0 -0
  103. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/mpm_init_handler.py +0 -0
  104. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/postmortem.py +0 -0
  105. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/profile.py +0 -0
  106. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/run.py +0 -0
  107. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/search.py +0 -0
  108. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/skill_source.py +0 -0
  109. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/skills.py +0 -0
  110. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/summarize.py +0 -0
  111. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/tickets.py +0 -0
  112. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/uninstall.py +0 -0
  113. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/upgrade.py +0 -0
  114. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/commands/verify.py +0 -0
  115. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/executor.py +0 -0
  116. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/helpers.py +0 -0
  117. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/interactive/__init__.py +0 -0
  118. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/interactive/agent_wizard.py +0 -0
  119. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/interactive/skills_wizard.py +0 -0
  120. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parser.py +0 -0
  121. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/__init__.py +0 -0
  122. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/agent_manager_parser.py +0 -0
  123. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/agent_source_parser.py +0 -0
  124. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/agents_parser.py +0 -0
  125. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/analyze_code_parser.py +0 -0
  126. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/analyze_parser.py +0 -0
  127. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/auto_configure_parser.py +0 -0
  128. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/base_parser.py +0 -0
  129. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/config_parser.py +0 -0
  130. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/configure_parser.py +0 -0
  131. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/dashboard_parser.py +0 -0
  132. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/debug_parser.py +0 -0
  133. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/local_deploy_parser.py +0 -0
  134. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/mcp_parser.py +0 -0
  135. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/memory_parser.py +0 -0
  136. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/monitor_parser.py +0 -0
  137. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/mpm_init_parser.py +0 -0
  138. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/profile_parser.py +0 -0
  139. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/run_parser.py +0 -0
  140. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/search_parser.py +0 -0
  141. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/skill_source_parser.py +0 -0
  142. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/skills_parser.py +0 -0
  143. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/source_parser.py +0 -0
  144. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/parsers/tickets_parser.py +0 -0
  145. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/shared/__init__.py +0 -0
  146. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/shared/argument_patterns.py +0 -0
  147. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/shared/base_command.py +0 -0
  148. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/shared/error_handling.py +0 -0
  149. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/shared/output_formatters.py +0 -0
  150. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/startup_display.py +0 -0
  151. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/startup_logging.py +0 -0
  152. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli/utils.py +0 -0
  153. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli_module/__init__.py +0 -0
  154. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli_module/args.py +0 -0
  155. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli_module/commands.py +0 -0
  156. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/cli_module/migration_example.py +0 -0
  157. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/__init__.py +0 -0
  158. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-config.md +0 -0
  159. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-doctor.md +0 -0
  160. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-help.md +0 -0
  161. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-init.md +0 -0
  162. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-monitor.md +0 -0
  163. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-organize.md +0 -0
  164. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-postmortem.md +0 -0
  165. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-session-resume.md +0 -0
  166. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-status.md +0 -0
  167. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-ticket-view.md +0 -0
  168. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm-version.md +0 -0
  169. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/commands/mpm.md +0 -0
  170. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/__init__.py +0 -0
  171. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/agent_config.py +0 -0
  172. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/agent_presets.py +0 -0
  173. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/agent_sources.py +0 -0
  174. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/experimental_features.py +0 -0
  175. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/model_config.py +0 -0
  176. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/paths.py +0 -0
  177. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/skill_presets.py +0 -0
  178. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/skill_sources.py +0 -0
  179. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/config/socketio_config.py +0 -0
  180. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/constants.py +0 -0
  181. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/__init__.py +0 -0
  182. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  183. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/agent_registry.py +0 -0
  184. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/agent_session_manager.py +0 -0
  185. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/api_validator.py +0 -0
  186. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/base_service.py +0 -0
  187. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/cache.py +0 -0
  188. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/claude_runner.py +0 -0
  189. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/config.py +0 -0
  190. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/config_aliases.py +0 -0
  191. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/config_constants.py +0 -0
  192. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/constants.py +0 -0
  193. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/container.py +0 -0
  194. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/enums.py +0 -0
  195. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/error_handler.py +0 -0
  196. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/exceptions.py +0 -0
  197. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/factories.py +0 -0
  198. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/file_utils.py +0 -0
  199. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/__init__.py +0 -0
  200. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/formatters/__init__.py +0 -0
  201. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/formatters/capability_generator.py +0 -0
  202. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/formatters/content_formatter.py +0 -0
  203. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/formatters/context_generator.py +0 -0
  204. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/loaders/__init__.py +0 -0
  205. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/loaders/agent_loader.py +0 -0
  206. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/loaders/file_loader.py +0 -0
  207. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/loaders/instruction_loader.py +0 -0
  208. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/loaders/packaged_loader.py +0 -0
  209. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/processors/__init__.py +0 -0
  210. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/processors/memory_processor.py +0 -0
  211. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/processors/metadata_processor.py +0 -0
  212. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework/processors/template_processor.py +0 -0
  213. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/framework_loader.py +0 -0
  214. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/hook_error_memory.py +0 -0
  215. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/hook_manager.py +0 -0
  216. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/hook_performance_config.py +0 -0
  217. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/injectable_service.py +0 -0
  218. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/instruction_reinforcement_hook.py +0 -0
  219. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/interactive_session.py +0 -0
  220. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/interfaces.py +0 -0
  221. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/lazy.py +0 -0
  222. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/log_manager.py +0 -0
  223. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/logger.py +0 -0
  224. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/logging_config.py +0 -0
  225. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/logging_utils.py +0 -0
  226. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  227. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/mixins.py +0 -0
  228. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/oneshot_session.py +0 -0
  229. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
  230. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/optimized_startup.py +0 -0
  231. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/output_style_manager.py +0 -0
  232. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
  233. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/protocols/__init__.py +0 -0
  234. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/protocols/runner_protocol.py +0 -0
  235. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/protocols/session_protocol.py +0 -0
  236. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/service_registry.py +0 -0
  237. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/session_manager.py +0 -0
  238. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/shared/__init__.py +0 -0
  239. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/shared/config_loader.py +0 -0
  240. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/shared/path_resolver.py +0 -0
  241. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/shared/singleton_manager.py +0 -0
  242. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/socketio_pool.py +0 -0
  243. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/system_context.py +0 -0
  244. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/tool_access_control.py +0 -0
  245. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/types.py +0 -0
  246. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/typing_utils.py +0 -0
  247. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/unified_agent_registry.py +0 -0
  248. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/unified_config.py +0 -0
  249. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/core/unified_paths.py +0 -0
  250. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/__init__.py +0 -0
  251. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/api/simple_directory.py +0 -0
  252. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/env.js +0 -0
  253. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.DWzvg0-y.css +0 -0
  254. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.ThTw9_ym.css +0 -0
  255. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/4TdZjIqw.js +0 -0
  256. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/5shd3_w0.js +0 -0
  257. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B0uc0UOD.js +0 -0
  258. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B7RN905-.js +0 -0
  259. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B7xVLGWV.js +0 -0
  260. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BIF9m_hv.js +0 -0
  261. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BKjSRqUr.js +0 -0
  262. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BPYeabCQ.js +0 -0
  263. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BQaXIfA_.js +0 -0
  264. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BSNlmTZj.js +0 -0
  265. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Be7GpZd6.js +0 -0
  266. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Bh0LDWpI.js +0 -0
  267. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BofRWZRR.js +0 -0
  268. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BovzEFCE.js +0 -0
  269. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C30mlcqg.js +0 -0
  270. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C4B-KCzX.js +0 -0
  271. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C4JcI4KD.js +0 -0
  272. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CBBdVcY8.js +0 -0
  273. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CDuw-vjf.js +0 -0
  274. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C_Usid8X.js +0 -0
  275. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Cfqx1Qun.js +0 -0
  276. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CiIAseT4.js +0 -0
  277. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CmKTTxBW.js +0 -0
  278. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CnA0NrzZ.js +0 -0
  279. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Cs_tUR18.js +0 -0
  280. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Cu_Erd72.js +0 -0
  281. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CyWMqx4W.js +0 -0
  282. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CzZX-COe.js +0 -0
  283. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CzeYkLYB.js +0 -0
  284. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D3k0OPJN.js +0 -0
  285. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D9lljYKQ.js +0 -0
  286. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DGkLK5U1.js +0 -0
  287. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DI7hHRFL.js +0 -0
  288. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DLVjFsZ3.js +0 -0
  289. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DUrLdbGD.js +0 -0
  290. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DVp1hx9R.js +0 -0
  291. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DY1XQ8fi.js +0 -0
  292. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DZX00Y4g.js +0 -0
  293. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Da0KfYnO.js +0 -0
  294. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DaimHw_p.js +0 -0
  295. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Dfy6j1xT.js +0 -0
  296. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Dhb8PKl3.js +0 -0
  297. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Dle-35c7.js +0 -0
  298. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DmxopI1J.js +0 -0
  299. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DwBR2MJi.js +0 -0
  300. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/GYwsonyD.js +0 -0
  301. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Gi6I4Gst.js +0 -0
  302. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/NqQ1dWOy.js +0 -0
  303. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/RJiighC3.js +0 -0
  304. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Vzk33B_K.js +0 -0
  305. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/ZGh7QtNv.js +0 -0
  306. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/bT1r9zLR.js +0 -0
  307. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/bTOqqlTd.js +0 -0
  308. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/eNVUfhuA.js +0 -0
  309. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/iEWssX7S.js +0 -0
  310. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/sQeU3Y1z.js +0 -0
  311. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/uuIeMWc-.js +0 -0
  312. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.D6-I5TpK.js +0 -0
  313. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.NWzMBYRp.js +0 -0
  314. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/0.m1gL8KXf.js +0 -0
  315. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.CgNOuw-d.js +0 -0
  316. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.C0GcWctS.js +0 -0
  317. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/_app/version.json +0 -0
  318. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/favicon.svg +0 -0
  319. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard/static/svelte-build/index.html +0 -0
  320. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard-svelte/node_modules/katex/src/fonts/generate_fonts.py +0 -0
  321. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/extract_tfms.py +0 -0
  322. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/extract_ttfs.py +0 -0
  323. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/format_json.py +0 -0
  324. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/parse_tfm.py +0 -0
  325. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/experimental/__init__.py +0 -0
  326. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
  327. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/generators/__init__.py +0 -0
  328. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  329. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/__init__.py +0 -0
  330. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/base_hook.py +0 -0
  331. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  332. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  333. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  334. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  335. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  336. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
  337. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  338. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  339. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  340. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/connection_pool.py +0 -0
  341. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/correlation_manager.py +0 -0
  342. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
  343. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  344. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  345. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/installer.py +0 -0
  346. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
  347. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
  348. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/__init__.py +0 -0
  349. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  350. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  351. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  352. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  353. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  354. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/connection_manager.py +0 -0
  355. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +0 -0
  356. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/duplicate_detector.py +0 -0
  357. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/state_manager.py +0 -0
  358. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/services/subagent_processor.py +0 -0
  359. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/claude_hooks/tool_analysis.py +0 -0
  360. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/failure_learning/__init__.py +0 -0
  361. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/failure_learning/failure_detection_hook.py +0 -0
  362. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/failure_learning/fix_detection_hook.py +0 -0
  363. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/failure_learning/learning_extraction_hook.py +0 -0
  364. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/instruction_reinforcement.py +0 -0
  365. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/kuzu_enrichment_hook.py +0 -0
  366. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/kuzu_memory_hook.py +0 -0
  367. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/kuzu_response_hook.py +0 -0
  368. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
  369. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/session_resume_hook.py +0 -0
  370. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/templates/pre_tool_use_simple.py +0 -0
  371. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/templates/pre_tool_use_template.py +0 -0
  372. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  373. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  374. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/init.py +0 -0
  375. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/models/__init__.py +0 -0
  376. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/models/agent_definition.py +0 -0
  377. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/models/agent_session.py +0 -0
  378. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/models/git_repository.py +0 -0
  379. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/models/resume_log.py +0 -0
  380. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/schemas/__init__.py +0 -0
  381. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/scripts/__init__.py +0 -0
  382. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/scripts/claude-hook-handler.sh +0 -0
  383. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/scripts/launch_monitor.py +0 -0
  384. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/scripts/mpm_doctor.py +0 -0
  385. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
  386. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
  387. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/__init__.py +0 -0
  388. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agent_capabilities_service.py +0 -0
  389. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/__init__.py +0 -0
  390. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/agent_builder.py +0 -0
  391. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/agent_preset_service.py +0 -0
  392. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/agent_recommendation_service.py +0 -0
  393. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/agent_review_service.py +0 -0
  394. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/agent_selection_service.py +0 -0
  395. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/auto_config_manager.py +0 -0
  396. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/auto_deploy_index_parser.py +0 -0
  397. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/cache_git_manager.py +0 -0
  398. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
  399. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_config_provider.py +0 -0
  400. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_configuration_manager.py +0 -0
  401. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_definition_factory.py +0 -0
  402. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -0
  403. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_discovery_service.py +0 -0
  404. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_environment_manager.py +0 -0
  405. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_filesystem_manager.py +0 -0
  406. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_format_converter.py +0 -0
  407. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_frontmatter_validator.py +0 -0
  408. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
  409. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_metrics_collector.py +0 -0
  410. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_operation_service.py +0 -0
  411. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_record_service.py +0 -0
  412. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_restore_handler.py +0 -0
  413. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_state_service.py +0 -0
  414. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_validator.py +0 -0
  415. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_version_manager.py +0 -0
  416. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
  417. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/agents_directory_resolver.py +0 -0
  418. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
  419. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/base_agent_locator.py +0 -0
  420. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/config/__init__.py +0 -0
  421. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/config/deployment_config.py +0 -0
  422. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/config/deployment_config_manager.py +0 -0
  423. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/deployment_config_loader.py +0 -0
  424. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/deployment_results_manager.py +0 -0
  425. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/deployment_type_detector.py +0 -0
  426. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/deployment_wrapper.py +0 -0
  427. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/facade/__init__.py +0 -0
  428. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/facade/async_deployment_executor.py +0 -0
  429. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/facade/deployment_executor.py +0 -0
  430. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/facade/deployment_facade.py +0 -0
  431. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/facade/sync_deployment_executor.py +0 -0
  432. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/interface_adapter.py +0 -0
  433. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/lifecycle_health_checker.py +0 -0
  434. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py +0 -0
  435. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/local_template_deployment.py +0 -0
  436. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/multi_source_deployment_service.py +0 -0
  437. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/__init__.py +0 -0
  438. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_builder.py +0 -0
  439. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_context.py +0 -0
  440. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +0 -0
  441. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/steps/__init__.py +0 -0
  442. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +0 -0
  443. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +0 -0
  444. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +0 -0
  445. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +0 -0
  446. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +0 -0
  447. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/processors/__init__.py +0 -0
  448. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_context.py +0 -0
  449. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/processors/agent_deployment_result.py +0 -0
  450. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/processors/agent_processor.py +0 -0
  451. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +0 -0
  452. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +0 -0
  453. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/results/__init__.py +0 -0
  454. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/results/deployment_metrics.py +0 -0
  455. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/results/deployment_result_builder.py +0 -0
  456. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/single_agent_deployer.py +0 -0
  457. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/strategies/__init__.py +0 -0
  458. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/strategies/base_strategy.py +0 -0
  459. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/strategies/project_strategy.py +0 -0
  460. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/strategies/strategy_selector.py +0 -0
  461. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/strategies/system_strategy.py +0 -0
  462. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/strategies/user_strategy.py +0 -0
  463. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/system_instructions_deployer.py +0 -0
  464. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/validation/__init__.py +0 -0
  465. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/validation/agent_validator.py +0 -0
  466. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/validation/deployment_validator.py +0 -0
  467. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/validation/template_validator.py +0 -0
  468. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/deployment/validation/validation_result.py +0 -0
  469. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/git_source_manager.py +0 -0
  470. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
  471. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
  472. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
  473. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
  474. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/local_template_manager.py +0 -0
  475. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/management/__init__.py +0 -0
  476. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
  477. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
  478. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
  479. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
  480. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
  481. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/content_manager.py +0 -0
  482. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/memory_categorization_service.py +0 -0
  483. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/memory_file_service.py +0 -0
  484. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/memory_format_service.py +0 -0
  485. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/memory_limits_service.py +0 -0
  486. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/memory/template_generator.py +0 -0
  487. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/observers.py +0 -0
  488. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/recommender.py +0 -0
  489. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
  490. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
  491. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
  492. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/single_tier_deployment_service.py +0 -0
  493. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/sources/__init__.py +0 -0
  494. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/sources/agent_sync_state.py +0 -0
  495. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/startup_sync.py +0 -0
  496. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/agents/toolchain_detector.py +0 -0
  497. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/analysis/__init__.py +0 -0
  498. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/analysis/clone_detector.py +0 -0
  499. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/analysis/postmortem_reporter.py +0 -0
  500. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/analysis/postmortem_service.py +0 -0
  501. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/async_session_logger.py +0 -0
  502. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/claude_session_logger.py +0 -0
  503. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/__init__.py +0 -0
  504. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/agent_cleanup_service.py +0 -0
  505. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/agent_dependency_service.py +0 -0
  506. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/agent_listing_service.py +0 -0
  507. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/agent_output_formatter.py +0 -0
  508. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/agent_validation_service.py +0 -0
  509. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/memory_crud_service.py +0 -0
  510. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/memory_output_formatter.py +0 -0
  511. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/resume_service.py +0 -0
  512. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/session_manager.py +0 -0
  513. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/session_pause_manager.py +0 -0
  514. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/session_resume_helper.py +0 -0
  515. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/startup_checker.py +0 -0
  516. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/cli/unified_dashboard_manager.py +0 -0
  517. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/command_deployment_service.py +0 -0
  518. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/command_handler_service.py +0 -0
  519. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/communication/__init__.py +0 -0
  520. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/__init__.py +0 -0
  521. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/base.py +0 -0
  522. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/cache_manager.py +0 -0
  523. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/__init__.py +0 -0
  524. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/agent.py +0 -0
  525. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/communication.py +0 -0
  526. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/health.py +0 -0
  527. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/infrastructure.py +0 -0
  528. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/model.py +0 -0
  529. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/process.py +0 -0
  530. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/project.py +0 -0
  531. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/restart.py +0 -0
  532. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/service.py +0 -0
  533. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces/stability.py +0 -0
  534. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/interfaces.py +0 -0
  535. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/memory_manager.py +0 -0
  536. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/__init__.py +0 -0
  537. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/agent_config.py +0 -0
  538. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/health.py +0 -0
  539. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/process.py +0 -0
  540. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/restart.py +0 -0
  541. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/stability.py +0 -0
  542. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/models/toolchain.py +0 -0
  543. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/path_resolver.py +0 -0
  544. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/service_container.py +0 -0
  545. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/core/service_interfaces.py +0 -0
  546. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/__init__.py +0 -0
  547. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/__init__.py +0 -0
  548. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/agent_check.py +0 -0
  549. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/agent_sources_check.py +0 -0
  550. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/base_check.py +0 -0
  551. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/claude_code_check.py +0 -0
  552. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/common_issues_check.py +0 -0
  553. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/configuration_check.py +0 -0
  554. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/filesystem_check.py +0 -0
  555. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/installation_check.py +0 -0
  556. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/instructions_check.py +0 -0
  557. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/mcp_check.py +0 -0
  558. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/mcp_services_check.py +0 -0
  559. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/monitor_check.py +0 -0
  560. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/skill_sources_check.py +0 -0
  561. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/checks/startup_log_check.py +0 -0
  562. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/diagnostic_runner.py +0 -0
  563. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/doctor_reporter.py +0 -0
  564. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/diagnostics/models.py +0 -0
  565. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/event_aggregator.py +0 -0
  566. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/event_bus/__init__.py +0 -0
  567. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/event_bus/config.py +0 -0
  568. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/event_bus/direct_relay.py +0 -0
  569. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/event_bus/event_bus.py +0 -0
  570. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/event_bus/relay.py +0 -0
  571. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/__init__.py +0 -0
  572. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/consumers/__init__.py +0 -0
  573. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/consumers/dead_letter.py +0 -0
  574. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/consumers/logging.py +0 -0
  575. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/consumers/metrics.py +0 -0
  576. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/consumers/socketio.py +0 -0
  577. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/core.py +0 -0
  578. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/interfaces.py +0 -0
  579. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/producers/__init__.py +0 -0
  580. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/producers/hook.py +0 -0
  581. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/events/producers/system.py +0 -0
  582. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/exceptions.py +0 -0
  583. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  584. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  585. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  586. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  587. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  588. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  589. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  590. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  591. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  592. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  593. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  594. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  595. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  596. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  597. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  598. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  599. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  600. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  601. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  602. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/git/__init__.py +0 -0
  603. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/git/git_operations_service.py +0 -0
  604. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/github/__init__.py +0 -0
  605. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/github/github_cli_service.py +0 -0
  606. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/hook_installer_service.py +0 -0
  607. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/hook_service.py +0 -0
  608. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
  609. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/context_preservation.py +0 -0
  610. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/daemon_manager.py +0 -0
  611. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/logging.py +0 -0
  612. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/__init__.py +0 -0
  613. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/aggregator.py +0 -0
  614. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/base.py +0 -0
  615. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/legacy.py +0 -0
  616. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/network.py +0 -0
  617. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/process.py +0 -0
  618. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/resources.py +0 -0
  619. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring/service.py +0 -0
  620. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
  621. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/infrastructure/resume_log_generator.py +0 -0
  622. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/instructions/__init__.py +0 -0
  623. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/instructions/instruction_cache_service.py +0 -0
  624. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/__init__.py +0 -0
  625. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/crash_detector.py +0 -0
  626. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/health_checks/__init__.py +0 -0
  627. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/health_checks/http_check.py +0 -0
  628. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/health_checks/process_check.py +0 -0
  629. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/health_checks/resource_check.py +0 -0
  630. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/health_manager.py +0 -0
  631. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/log_monitor.py +0 -0
  632. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/memory_leak_detector.py +0 -0
  633. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/process_manager.py +0 -0
  634. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/resource_monitor.py +0 -0
  635. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/restart_manager.py +0 -0
  636. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/restart_policy.py +0 -0
  637. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/state_manager.py +0 -0
  638. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/local_ops/unified_manager.py +0 -0
  639. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/mcp_config_manager.py +0 -0
  640. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/mcp_service_verifier.py +0 -0
  641. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/__init__.py +0 -0
  642. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/builder.py +0 -0
  643. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
  644. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
  645. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
  646. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/failure_tracker.py +0 -0
  647. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
  648. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/optimizer.py +0 -0
  649. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory/router.py +0 -0
  650. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/memory_hook_service.py +0 -0
  651. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/model/__init__.py +0 -0
  652. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/model/base_provider.py +0 -0
  653. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/model/claude_provider.py +0 -0
  654. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/model/model_router.py +0 -0
  655. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/model/ollama_provider.py +0 -0
  656. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/__init__.py +0 -0
  657. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/daemon.py +0 -0
  658. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/daemon_manager.py +0 -0
  659. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/event_emitter.py +0 -0
  660. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/handlers/__init__.py +0 -0
  661. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/handlers/code_analysis.py +0 -0
  662. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/handlers/dashboard.py +0 -0
  663. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/handlers/file.py +0 -0
  664. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/handlers/hooks.py +0 -0
  665. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/management/__init__.py +0 -0
  666. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/management/health.py +0 -0
  667. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/management/lifecycle.py +0 -0
  668. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor/server.py +0 -0
  669. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/monitor_build_service.py +0 -0
  670. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/native_agent_converter.py +0 -0
  671. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/orphan_detection.py +0 -0
  672. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/port_manager.py +0 -0
  673. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/pr/__init__.py +0 -0
  674. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/pr/pr_template_service.py +0 -0
  675. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/profile_manager.py +0 -0
  676. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/__init__.py +0 -0
  677. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/analyzer.py +0 -0
  678. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/analyzer_v2.py +0 -0
  679. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/architecture_analyzer.py +0 -0
  680. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/archive_manager.py +0 -0
  681. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/dependency_analyzer.py +0 -0
  682. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/detection_strategies.py +0 -0
  683. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/documentation_manager.py +0 -0
  684. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/enhanced_analyzer.py +0 -0
  685. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/language_analyzer.py +0 -0
  686. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/metrics_collector.py +0 -0
  687. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/project_organizer.py +0 -0
  688. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/registry.py +0 -0
  689. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project/toolchain_analyzer.py +0 -0
  690. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/project_port_allocator.py +0 -0
  691. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/recovery_manager.py +0 -0
  692. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/response_tracker.py +0 -0
  693. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/runner_configuration_service.py +0 -0
  694. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/self_upgrade_service.py +0 -0
  695. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/session_management_service.py +0 -0
  696. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/session_manager.py +0 -0
  697. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/shared/__init__.py +0 -0
  698. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/shared/async_service_base.py +0 -0
  699. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/shared/config_service_base.py +0 -0
  700. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/shared/lifecycle_service_base.py +0 -0
  701. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/shared/manager_base.py +0 -0
  702. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/shared/service_factory.py +0 -0
  703. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills/__init__.py +0 -0
  704. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills/skill_discovery_service.py +0 -0
  705. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills/skill_to_agent_mapper.py +0 -0
  706. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills_config.py +0 -0
  707. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/skills_deployer.py +0 -0
  708. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/__init__.py +0 -0
  709. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/client_proxy.py +0 -0
  710. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/dashboard_server.py +0 -0
  711. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/event_normalizer.py +0 -0
  712. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
  713. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
  714. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/code_analysis.py +0 -0
  715. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
  716. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/connection_handler.py +0 -0
  717. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
  718. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
  719. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/hook.py +0 -0
  720. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
  721. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
  722. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
  723. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/migration_utils.py +0 -0
  724. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/monitor_client.py +0 -0
  725. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/server/__init__.py +0 -0
  726. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/server/broadcaster.py +0 -0
  727. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/server/connection_manager.py +0 -0
  728. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/server/core.py +0 -0
  729. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/server/eventbus_integration.py +0 -0
  730. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio/server/main.py +0 -0
  731. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio_client_manager.py +0 -0
  732. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/socketio_server.py +0 -0
  733. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/subprocess_launcher_service.py +0 -0
  734. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/system_instructions_service.py +0 -0
  735. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_manager.py +0 -0
  736. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_services/__init__.py +0 -0
  737. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_services/crud_service.py +0 -0
  738. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_services/formatter_service.py +0 -0
  739. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_services/search_service.py +0 -0
  740. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_services/validation_service.py +0 -0
  741. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/ticket_services/workflow_service.py +0 -0
  742. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/__init__.py +0 -0
  743. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/analyzer_strategies/__init__.py +0 -0
  744. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +0 -0
  745. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +0 -0
  746. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -0
  747. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -0
  748. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +0 -0
  749. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/__init__.py +0 -0
  750. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/config_schema.py +0 -0
  751. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/context_strategy.py +0 -0
  752. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/error_handling_strategy.py +0 -0
  753. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/file_loader_strategy.py +0 -0
  754. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/unified_config_service.py +0 -0
  755. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/config_strategies/validation_strategy.py +0 -0
  756. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/deployment_strategies/__init__.py +0 -0
  757. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/deployment_strategies/base.py +0 -0
  758. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +0 -0
  759. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/deployment_strategies/local.py +0 -0
  760. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/deployment_strategies/utils.py +0 -0
  761. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/deployment_strategies/vercel.py +0 -0
  762. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/interfaces.py +0 -0
  763. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/migration.py +0 -0
  764. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/strategies.py +0 -0
  765. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/unified_analyzer.py +0 -0
  766. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/unified_config.py +0 -0
  767. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/unified/unified_deployment.py +0 -0
  768. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/utility_service.py +0 -0
  769. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_control/__init__.py +0 -0
  770. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  771. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  772. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  773. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  774. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_control/version_parser.py +0 -0
  775. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/version_service.py +0 -0
  776. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/visualization/__init__.py +0 -0
  777. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/services/visualization/mermaid_generator.py +0 -0
  778. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/__init__.py +0 -0
  779. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/agent_skills_injector.py +0 -0
  780. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +0 -0
  781. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/__init__.py +0 -0
  782. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/api-documentation.md +0 -0
  783. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/async-testing.md +0 -0
  784. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/code-review.md +0 -0
  785. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/database-migration.md +0 -0
  786. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/docker-containerization.md +0 -0
  787. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/express-local-dev.md +0 -0
  788. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/fastapi-local-dev.md +0 -0
  789. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/git-workflow.md +0 -0
  790. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/imagemagick.md +0 -0
  791. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +0 -0
  792. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/json-data-handling.md +0 -0
  793. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +0 -0
  794. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +0 -0
  795. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +0 -0
  796. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +0 -0
  797. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +0 -0
  798. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/nextjs-local-dev.md +0 -0
  799. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/pdf.md +0 -0
  800. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/performance-profiling.md +0 -0
  801. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/refactoring-patterns.md +0 -0
  802. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/security-scanning.md +0 -0
  803. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/systematic-debugging.md +0 -0
  804. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/test-driven-development.md +0 -0
  805. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +0 -0
  806. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +0 -0
  807. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +0 -0
  808. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +0 -0
  809. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/vite-local-dev.md +0 -0
  810. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/web-performance-optimization.md +0 -0
  811. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/bundled/xlsx.md +0 -0
  812. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/registry.py +0 -0
  813. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/skill_manager.py +0 -0
  814. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/skills_registry.py +0 -0
  815. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/skills/skills_service.py +0 -0
  816. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/storage/__init__.py +0 -0
  817. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/storage/state_storage.py +0 -0
  818. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/templates/.pre-commit-config.yaml +0 -0
  819. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/templates/questions/__init__.py +0 -0
  820. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/templates/questions/base.py +0 -0
  821. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/templates/questions/pr_strategy.py +0 -0
  822. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/templates/questions/project_init.py +0 -0
  823. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/templates/questions/ticket_mgmt.py +0 -0
  824. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/ticket_wrapper.py +0 -0
  825. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/__init__.py +0 -0
  826. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/__main__.py +0 -0
  827. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/__init__.py +0 -0
  828. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/analysis.py +0 -0
  829. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/cache.py +0 -0
  830. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/core.py +0 -0
  831. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/discovery.py +0 -0
  832. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/events.py +0 -0
  833. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/gitignore.py +0 -0
  834. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/models.py +0 -0
  835. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +0 -0
  836. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_analyzer/python_analyzer.py +0 -0
  837. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_builder.py +0 -0
  838. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/code_tree_events.py +0 -0
  839. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/tools/socketio_debug.py +0 -0
  840. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/__init__.py +0 -0
  841. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
  842. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/agent_filters.py +0 -0
  843. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/common.py +0 -0
  844. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/config_manager.py +0 -0
  845. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/console.py +0 -0
  846. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/database_connector.py +0 -0
  847. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/dependency_cache.py +0 -0
  848. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/dependency_manager.py +0 -0
  849. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/dependency_strategies.py +0 -0
  850. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/display_helper.py +0 -0
  851. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/environment_context.py +0 -0
  852. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/error_handler.py +0 -0
  853. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/file_utils.py +0 -0
  854. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/framework_detection.py +0 -0
  855. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/git_analyzer.py +0 -0
  856. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/gitignore.py +0 -0
  857. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/import_migration_example.py +0 -0
  858. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/imports.py +0 -0
  859. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/log_cleanup.py +0 -0
  860. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/migration.py +0 -0
  861. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/path_operations.py +0 -0
  862. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/progress.py +0 -0
  863. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/robust_installer.py +0 -0
  864. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/session_logging.py +0 -0
  865. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/structured_questions.py +0 -0
  866. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/utils/subprocess_utils.py +0 -0
  867. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/validation/__init__.py +0 -0
  868. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/validation/agent_validator.py +0 -0
  869. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
  870. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm.egg-info/SOURCES.txt +0 -0
  871. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  872. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  873. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm.egg-info/requires.txt +0 -0
  874. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/src/claude_mpm.egg-info/top_level.txt +0 -0
  875. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test-dashboard-sticky.py +0 -0
  876. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_activity_dashboard.py +0 -0
  877. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_activity_session_fix.py +0 -0
  878. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_activity_view.py +0 -0
  879. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_actual_mcp_server.py +0 -0
  880. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_actual_startup_messages.py +0 -0
  881. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_configuration_manager.py +0 -0
  882. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment.py +0 -0
  883. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_baseline.py +0 -0
  884. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_comprehensive.py +0 -0
  885. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_integration.py +0 -0
  886. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_paths.py +0 -0
  887. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_refactoring.py +0 -0
  888. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_state_detection.py +0 -0
  889. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_system.py +0 -0
  890. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_deployment_unified_interface.py +0 -0
  891. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_discovery_logging.py +0 -0
  892. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_discovery_service.py +0 -0
  893. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_environment_manager.py +0 -0
  894. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_event_tracking.py +0 -0
  895. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_filters.py +0 -0
  896. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_format_converter.py +0 -0
  897. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_functionality_complete.py +0 -0
  898. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_hierarchy.py +0 -0
  899. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_hooks.py +0 -0
  900. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_lifecycle_manager.py +0 -0
  901. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_loader.py +0 -0
  902. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_loader_format.py +0 -0
  903. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_management.py +0 -0
  904. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_manager_integration.py +0 -0
  905. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_memory_manager.py +0 -0
  906. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_metrics_collector.py +0 -0
  907. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_name_consistency.py +0 -0
  908. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_name_formats.py +0 -0
  909. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_name_normalization.py +0 -0
  910. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_registry.py +0 -0
  911. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_registry_cache.py +0 -0
  912. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_registry_improvements.py +0 -0
  913. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_template_builder.py +0 -0
  914. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_version_manager.py +0 -0
  915. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agent_wizard_qa.py +0 -0
  916. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agentic_coder_optimizer.py +0 -0
  917. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_agents_manage_redirect.py +0 -0
  918. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_aix.py +0 -0
  919. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_all_concrete_validators_match_protocol.py +0 -0
  920. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_analytical_pm.py +0 -0
  921. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_analyze_command.py +0 -0
  922. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_api_response.py +0 -0
  923. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_archive_manager.py +0 -0
  924. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_async_code_analysis.py +0 -0
  925. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_asyncio_cleanup.py +0 -0
  926. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_asyncio_fix.py +0 -0
  927. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_asyncio_simple.py +0 -0
  928. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_base.py +0 -0
  929. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_batch_toggle.py +0 -0
  930. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_bsd.py +0 -0
  931. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_cache_behavior.py +0 -0
  932. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_capabilities_display.py +0 -0
  933. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_cases.py +0 -0
  934. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_circuit_breaker_performance.py +0 -0
  935. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_circular_refs.py +0 -0
  936. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_claude_hook_flow.py +0 -0
  937. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_claude_hook_handler.py +0 -0
  938. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_claude_mpm_directory_loading.py +0 -0
  939. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_claude_mpm_loading.py +0 -0
  940. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_claude_tree_default.py +0 -0
  941. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_cli.py +0 -0
  942. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_cli_wizard.py +0 -0
  943. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_analysis_browser.py +0 -0
  944. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_analysis_performance.py +0 -0
  945. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_analyzer.py +0 -0
  946. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_analyzer_mermaid.py +0 -0
  947. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_tree_analyzer.py +0 -0
  948. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_tree_debug.py +0 -0
  949. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_code_viewer.py +0 -0
  950. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_common_utils.py +0 -0
  951. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_complete_browser.py +0 -0
  952. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_complete_event_flow.py +0 -0
  953. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_duplicate_comprehensive.py +0 -0
  954. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_duplicate_fix.py +0 -0
  955. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_duplicate_logging.py +0 -0
  956. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_final_verification.py +0 -0
  957. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_fix_verification.py +0 -0
  958. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_no_duplicate_logging.py +0 -0
  959. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_real_usage.py +0 -0
  960. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_singleton.py +0 -0
  961. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_singleton_comprehensive.py +0 -0
  962. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_singleton_logging.py +0 -0
  963. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_startup_simulation.py +0 -0
  964. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_config_v2_unit.py +0 -0
  965. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_configure.py +0 -0
  966. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_connections.py +0 -0
  967. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_contracts.py +0 -0
  968. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_core.py +0 -0
  969. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_customize_pm_fix.py +0 -0
  970. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_d3_activity_tree.py +0 -0
  971. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_daemon_basic_qa.py +0 -0
  972. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_daemon_cleanup.py +0 -0
  973. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_daemon_detailed_qa.py +0 -0
  974. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_daemon_manual_qa.py +0 -0
  975. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_daemon_qa_comprehensive.py +0 -0
  976. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard.py +0 -0
  977. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard_activity.py +0 -0
  978. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard_event_flow.py +0 -0
  979. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard_event_reception.py +0 -0
  980. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard_events.py +0 -0
  981. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard_fixes.py +0 -0
  982. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dashboard_live.py +0 -0
  983. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dedup_logic.py +0 -0
  984. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_delete_functionality.py +0 -0
  985. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_deployment_manager_config.py +0 -0
  986. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_deployment_root_hooks.py +0 -0
  987. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_deprecations.py +0 -0
  988. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_di_container_interface_compliance.py +0 -0
  989. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_directory_api_standalone.py +0 -0
  990. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_document_summarizer.py +0 -0
  991. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_document_summarizer_integration.py +0 -0
  992. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_duplicate_at_runtime.py +0 -0
  993. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_dynamic_capabilities_comprehensive.py +0 -0
  994. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_e2e.py +0 -0
  995. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_e2e_dashboard_events.py +0 -0
  996. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_edge_cases.py +0 -0
  997. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_empty_init.py +0 -0
  998. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_enhanced_di_container.py +0 -0
  999. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_enhanced_pid_validation.py +0 -0
  1000. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_error_handling.py +0 -0
  1001. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_event_flow.py +0 -0
  1002. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_event_format_validation.py +0 -0
  1003. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_event_generator.py +0 -0
  1004. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_event_transform_logic.py +0 -0
  1005. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_example.py +0 -0
  1006. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_exceptions.py +0 -0
  1007. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_failure_learning_hooks.py +0 -0
  1008. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_failure_tracker.py +0 -0
  1009. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_file_handles.py +0 -0
  1010. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_file_tracker_fix.py +0 -0
  1011. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_file_viewer.py +0 -0
  1012. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_file_viewer_fix.py +0 -0
  1013. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_file_viewer_git_tracking.py +0 -0
  1014. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_final_activity_structure.py +0 -0
  1015. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_final_verification.py +0 -0
  1016. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_format.py +0 -0
  1017. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_framework_functionality.py +0 -0
  1018. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_framework_loader.py +0 -0
  1019. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_framework_loader_concurrency.py +0 -0
  1020. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_framework_loader_memory.py +0 -0
  1021. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_framework_loader_performance.py +0 -0
  1022. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_fresh_install.py +0 -0
  1023. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_frontmatter_format.py +0 -0
  1024. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_function_detection.py +0 -0
  1025. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_git_agent_installation.py +0 -0
  1026. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_git_analyzer_adaptive.py +0 -0
  1027. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_git_source_sync_phase1.py +0 -0
  1028. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hardened_daemon.py +0 -0
  1029. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_health_monitoring_comprehensive.py +0 -0
  1030. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_heartbeat.py +0 -0
  1031. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_continue.py +0 -0
  1032. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_dashboard.py +0 -0
  1033. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_duplicate_detection.py +0 -0
  1034. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_duplicate_fix.py +0 -0
  1035. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_event_processing.py +0 -0
  1036. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_event_simple.py +0 -0
  1037. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_events_flow.py +0 -0
  1038. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_events_socketio.py +0 -0
  1039. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_handler.py +0 -0
  1040. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_http_integration.py +0 -0
  1041. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_installer.py +0 -0
  1042. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_isolation.py +0 -0
  1043. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_memory_integration.py +0 -0
  1044. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_service.py +0 -0
  1045. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hook_verification.py +0 -0
  1046. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_hooks.py +0 -0
  1047. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_http_event_flow.py +0 -0
  1048. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_http_events.py +0 -0
  1049. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_implied_pm_detection.py +0 -0
  1050. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_import_utils.py +0 -0
  1051. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_instruction_synthesis.py +0 -0
  1052. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_instructions_deployment.py +0 -0
  1053. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_instructions_size.py +0 -0
  1054. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_integration.py +0 -0
  1055. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_integration_with_agents.py +0 -0
  1056. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_intelligent_qa_routing.py +0 -0
  1057. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_interactive_response_logging.py +0 -0
  1058. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_interactive_response_logging_integration.py +0 -0
  1059. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_json_migration_script.py +0 -0
  1060. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_jsonschema.py +0 -0
  1061. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_jsonschema_specifications.py +0 -0
  1062. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_jsonschema_test_suite.py +0 -0
  1063. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_knowledge_extractor.py +0 -0
  1064. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_linux.py +0 -0
  1065. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_local_agent_templates.py +0 -0
  1066. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_logger_memory.py +0 -0
  1067. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_logging_consolidation.py +0 -0
  1068. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_config_scripts.py +0 -0
  1069. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_direct.py +0 -0
  1070. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_entry_point.py +0 -0
  1071. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_fix.py +0 -0
  1072. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_install_config.py +0 -0
  1073. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_lock_integration.py +0 -0
  1074. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_registration.py +0 -0
  1075. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_server.py +0 -0
  1076. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_server_working.py +0 -0
  1077. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_startup_time.py +0 -0
  1078. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_stdio.py +0 -0
  1079. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_summarizer_tool.py +0 -0
  1080. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_ticket_tools.py +0 -0
  1081. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_tools.py +0 -0
  1082. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_unified_ticket.py +0 -0
  1083. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mcp_wrapper.py +0 -0
  1084. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memleaks.py +0 -0
  1085. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memories_response.py +0 -0
  1086. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_aggregation.py +0 -0
  1087. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_command_unit.py +0 -0
  1088. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_deduplication.py +0 -0
  1089. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_deployment_check.py +0 -0
  1090. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_edge_cases.py +0 -0
  1091. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_extraction.py +0 -0
  1092. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_features_validation.py +0 -0
  1093. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_filtering_fix.py +0 -0
  1094. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_fix_comprehensive.py +0 -0
  1095. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_fixes_verification.py +0 -0
  1096. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_flow_comprehensive.py +0 -0
  1097. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_focused.py +0 -0
  1098. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_glob_pattern.py +0 -0
  1099. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_injection_enhancements.py +0 -0
  1100. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_integration.py +0 -0
  1101. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_integration_e2e.py +0 -0
  1102. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_integration_focused.py +0 -0
  1103. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_integration_hooks.py +0 -0
  1104. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_issues_fix.py +0 -0
  1105. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_marker_extraction.py +0 -0
  1106. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_migration.py +0 -0
  1107. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_naming_fix.py +0 -0
  1108. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_project_only.py +0 -0
  1109. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_routing.py +0 -0
  1110. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_simple.py +0 -0
  1111. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_system.py +0 -0
  1112. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_system_comprehensive.py +0 -0
  1113. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_system_integration.py +0 -0
  1114. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_system_qa_comprehensive.py +0 -0
  1115. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_memory_v3_9_0.py +0 -0
  1116. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mermaid_generator.py +0 -0
  1117. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_minimal.py +0 -0
  1118. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mman.py +0 -0
  1119. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mpm_init_catchup.py +0 -0
  1120. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_mpm_logging_demo.py +0 -0
  1121. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_multi_source_deployment.py +0 -0
  1122. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_no_auto_deploy.py +0 -0
  1123. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_no_auto_instructions_deploy.py +0 -0
  1124. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_no_cache.py +0 -0
  1125. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_orphaned_agent_cleanup.py +0 -0
  1126. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_osx.py +0 -0
  1127. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_deployment.py +0 -0
  1128. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_display.py +0 -0
  1129. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_enforcement.py +0 -0
  1130. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_installer_comprehensive.py +0 -0
  1131. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_simplified.py +0 -0
  1132. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_startup.py +0 -0
  1133. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_startup_verification.py +0 -0
  1134. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_output_style_system.py +0 -0
  1135. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_pack.py +0 -0
  1136. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_path_detection.py +0 -0
  1137. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_path_detection_fix.py +0 -0
  1138. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_path_resolver.py +0 -0
  1139. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_pep668_fix.py +0 -0
  1140. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_pep668_handling.py +0 -0
  1141. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_pid_validation_comprehensive.py +0 -0
  1142. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_pipx_scenario.py +0 -0
  1143. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_pm_memory_persistence.py +0 -0
  1144. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_posix.py +0 -0
  1145. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_process.py +0 -0
  1146. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_process_all.py +0 -0
  1147. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_production_runner.py +0 -0
  1148. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_profile_manager.py +0 -0
  1149. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_progress_bar.py +0 -0
  1150. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_questionary_navigation.py +0 -0
  1151. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_react_dashboard.py +0 -0
  1152. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_react_events.py +0 -0
  1153. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_real_startup_duplicate_messages.py +0 -0
  1154. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_refactored_deployment_integration.py +0 -0
  1155. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_referencing_suite.py +0 -0
  1156. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_release_makefile.py +0 -0
  1157. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_research_memory.py +0 -0
  1158. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_response_logging_auto_switch.py +0 -0
  1159. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_response_logging_comprehensive.py +0 -0
  1160. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_response_logging_integration.py +0 -0
  1161. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_response_tracker_critical.py +0 -0
  1162. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_restructured_activity.py +0 -0
  1163. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_actual.py +0 -0
  1164. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_command.py +0 -0
  1165. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_command_build.py +0 -0
  1166. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_flag.py +0 -0
  1167. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_flag_comprehensive.py +0 -0
  1168. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_flag_final.py +0 -0
  1169. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_flag_fix.py +0 -0
  1170. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_flag_passthrough.py +0 -0
  1171. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_flag_verification.py +0 -0
  1172. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_integration.py +0 -0
  1173. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_log_qa.py +0 -0
  1174. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_resume_log_system.py +0 -0
  1175. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_retrieval.py +0 -0
  1176. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_run_command_migration.py +0 -0
  1177. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_schema_standardization.py +0 -0
  1178. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_scripts.py +0 -0
  1179. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_search_viewer.py +0 -0
  1180. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_semantic_versioning_comprehensive.py +0 -0
  1181. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_shell_script_validation.py +0 -0
  1182. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_simple_directory.py +0 -0
  1183. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_skills_deployer.py +0 -0
  1184. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_skills_frontmatter.py +0 -0
  1185. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_skills_integration.py +0 -0
  1186. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_skills_integration_comprehensive.py +0 -0
  1187. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_skills_verification.py +0 -0
  1188. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_smart_port_detection.py +0 -0
  1189. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_sniffio.py +0 -0
  1190. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socket_loading.py +0 -0
  1191. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_broadcast.py +0 -0
  1192. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_client.py +0 -0
  1193. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_comprehensive_integration.py +0 -0
  1194. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_connection_comprehensive.py +0 -0
  1195. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_daemon.py +0 -0
  1196. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_fixes.py +0 -0
  1197. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_port_change.py +0 -0
  1198. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_server_exceptions.py +0 -0
  1199. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_service.py +0 -0
  1200. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_socketio_startup_timing_fix.py +0 -0
  1201. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_specific_fixes.py +0 -0
  1202. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_startup_config_loading.py +0 -0
  1203. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_startup_config_logs.py +0 -0
  1204. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_startup_display.py +0 -0
  1205. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_startup_fixes.py +0 -0
  1206. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_startup_git_integration.py +0 -0
  1207. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_startup_logging.py +0 -0
  1208. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_stream.py +0 -0
  1209. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_style_integration.py +0 -0
  1210. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_subagent_load_time.py +0 -0
  1211. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_sunos.py +0 -0
  1212. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_system.py +0 -0
  1213. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_telemetry_disabled.py +0 -0
  1214. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_temporal_user_context.py +0 -0
  1215. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_testutils.py +0 -0
  1216. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_ticket_system_complete.py +0 -0
  1217. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_ticket_tool_invocation.py +0 -0
  1218. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_ticket_wrapper.py +0 -0
  1219. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_tickets_command_migration.py +0 -0
  1220. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_tool_viewing_scrolling.py +0 -0
  1221. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_tutorial.py +0 -0
  1222. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_types.py +0 -0
  1223. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_unicode.py +0 -0
  1224. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_unified_agent_registry.py +0 -0
  1225. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_unified_config.py +0 -0
  1226. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_unified_ticket_integration.py +0 -0
  1227. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_unified_ticket_tool.py +0 -0
  1228. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_unified_tool_simple.py +0 -0
  1229. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_user_memory_aggregation.py +0 -0
  1230. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_util.py +0 -0
  1231. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_validation_framework.py +0 -0
  1232. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_validators.py +0 -0
  1233. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_version_comparison.py +0 -0
  1234. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_version_parser.py +0 -0
  1235. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_windows.py +0 -0
  1236. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_workflow_implementation.py +0 -0
  1237. {claude_mpm-5.4.55 → claude_mpm-5.4.60}/tests/test_working_directory.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.4.55
3
+ Version: 5.4.60
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "claude-mpm"
7
- version = "5.4.55"
7
+ version = "5.4.60"
8
8
  description = "Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -189,7 +189,7 @@ ignore-imports = false
189
189
 
190
190
  [tool.commitizen]
191
191
  name = "cz_conventional_commits"
192
- version = "5.4.55"
192
+ version = "5.4.60"
193
193
  version_files = [ "VERSION", "src/claude_mpm/VERSION", "package.json:version",]
194
194
  tag_format = "v$version"
195
195
  update_changelog_on_bump = true
@@ -0,0 +1 @@
1
+ 5.4.60
@@ -990,22 +990,37 @@ def sync_remote_skills_on_startup():
990
990
 
991
991
  # Phase 2: Scan agents and save to configuration.yaml
992
992
  # This step populates configuration.yaml with agent-referenced skills
993
- # BUGFIX: Removed `if results["synced_count"] > 0` condition to ensure
994
- # agent_referenced is always populated, even when using cached skills.
995
- # Previous behavior: If skills were cached, agent scan was skipped,
996
- # leaving agent_referenced: [] empty, which prevented cleanup.
993
+ # CRITICAL: Always scan agents to populate agent_referenced, even when using cached skills.
994
+ # Without this, skill_filter=None causes ALL skills to deploy and NO cleanup to run.
997
995
  agents_dir = Path.cwd() / ".claude" / "agents"
998
996
 
999
- # Scan agents for skill requirements (always run, not just on sync)
997
+ # Scan agents for skill requirements (ALWAYS run to ensure cleanup works)
1000
998
  agent_skills = get_required_skills_from_agents(agents_dir)
999
+ logger.info(
1000
+ f"Agent scan found {len(agent_skills)} unique skills across deployed agents"
1001
+ )
1001
1002
 
1002
1003
  # Save to project-level configuration.yaml
1003
1004
  project_config_path = Path.cwd() / ".claude-mpm" / "configuration.yaml"
1004
1005
  save_agent_skills_to_config(list(agent_skills), project_config_path)
1006
+ logger.debug(
1007
+ f"Saved {len(agent_skills)} agent-referenced skills to {project_config_path}"
1008
+ )
1005
1009
 
1006
1010
  # Phase 3: Resolve which skills to deploy (user_defined or agent_referenced)
1007
1011
  skills_to_deploy, skill_source = get_skills_to_deploy(project_config_path)
1008
1012
 
1013
+ # CRITICAL DEBUG: Log deployment resolution to diagnose cleanup issues
1014
+ if skills_to_deploy:
1015
+ logger.info(
1016
+ f"Resolved {len(skills_to_deploy)} skills from {skill_source} (cleanup will run)"
1017
+ )
1018
+ else:
1019
+ logger.warning(
1020
+ f"No skills resolved from {skill_source} - will deploy ALL skills WITHOUT cleanup! "
1021
+ f"This may indicate agent_referenced is empty in configuration.yaml."
1022
+ )
1023
+
1009
1024
  # Phase 4: Apply profile filtering if active
1010
1025
  if active_profile and profile_manager.active_profile:
1011
1026
  # Filter skills based on profile
@@ -1067,7 +1082,10 @@ def sync_remote_skills_on_startup():
1067
1082
  deployment_result = manager.deploy_skills(
1068
1083
  target_dir=Path.cwd() / ".claude" / "skills",
1069
1084
  force=False,
1070
- skill_filter=set(skills_to_deploy) if skills_to_deploy else None,
1085
+ # CRITICAL FIX: Empty list should mean "deploy no skills", not "deploy all"
1086
+ # When skills_to_deploy is [], we want skill_filter=set() NOT skill_filter=None
1087
+ # None means "no filtering" (deploy all), empty set means "filter to nothing"
1088
+ skill_filter=set(skills_to_deploy) if skills_to_deploy is not None else None,
1071
1089
  )
1072
1090
 
1073
1091
  # REMOVED: User-level deployment (lines 1068-1074)
@@ -1078,6 +1096,7 @@ def sync_remote_skills_on_startup():
1078
1096
  deployed = deployment_result.get("deployed_count", 0)
1079
1097
  skipped = deployment_result.get("skipped_count", 0)
1080
1098
  filtered = deployment_result.get("filtered_count", 0)
1099
+ removed = deployment_result.get("removed_count", 0)
1081
1100
  total_available = deployed + skipped
1082
1101
 
1083
1102
  # Only show progress bar if there are skills to deploy
@@ -1107,16 +1126,25 @@ def sync_remote_skills_on_startup():
1107
1126
  "user override" if skill_source == "user_defined" else "from agents"
1108
1127
  )
1109
1128
 
1110
- if deployed > 0:
1129
+ # Build finish message with cleanup info
1130
+ if deployed > 0 or removed > 0:
1131
+ parts = []
1132
+ if deployed > 0:
1133
+ parts.append(f"{deployed} new")
1134
+ if skipped > 0:
1135
+ parts.append(f"{skipped} unchanged")
1136
+ if removed > 0:
1137
+ parts.append(f"{removed} removed")
1138
+
1139
+ status = ", ".join(parts)
1140
+
1111
1141
  if filtered > 0:
1112
1142
  deploy_progress.finish(
1113
- f"Complete: {deployed} new, {skipped} unchanged "
1114
- f"({total_available} {source_label}, {filtered} files in cache)"
1143
+ f"Complete: {status} ({total_available} {source_label}, {filtered} files in cache)"
1115
1144
  )
1116
1145
  else:
1117
1146
  deploy_progress.finish(
1118
- f"Complete: {deployed} new, {skipped} unchanged "
1119
- f"({total_available} skills {source_label} from {total_skill_count} files in cache)"
1147
+ f"Complete: {status} ({total_available} skills {source_label} from {total_skill_count} files in cache)"
1120
1148
  )
1121
1149
  elif filtered > 0:
1122
1150
  # Skills filtered means agents require fewer skills than available
@@ -1124,10 +1152,12 @@ def sync_remote_skills_on_startup():
1124
1152
  f"No skills needed ({source_label}, {total_skill_count} files in cache)"
1125
1153
  )
1126
1154
  else:
1127
- deploy_progress.finish(
1128
- f"Complete: {total_available} skills {source_label} "
1129
- f"({total_skill_count} files in cache)"
1130
- )
1155
+ # No changes - all skills already deployed
1156
+ msg = f"Complete: {total_available} skills {source_label}"
1157
+ if removed > 0:
1158
+ msg += f", {removed} removed"
1159
+ msg += f" ({total_skill_count} files in cache)"
1160
+ deploy_progress.finish(msg)
1131
1161
 
1132
1162
  # Log deployment errors if any
1133
1163
  from ..core.logger import get_logger
@@ -1244,61 +1274,64 @@ def show_skill_summary():
1244
1274
  Display skill availability summary on startup.
1245
1275
 
1246
1276
  WHY: Users should see at a glance how many skills are deployed and available
1247
- from collections, similar to the agent summary.
1277
+ from cache, similar to the agent summary showing "X deployed / Y cached".
1278
+
1279
+ DESIGN DECISION: Fast, non-blocking check that counts skills from:
1280
+ - Deployed skills: PROJECT-level .claude/skills/ directory
1281
+ - Cached skills: ~/.claude-mpm/cache/skills/ directory (from remote sources)
1248
1282
 
1249
- DESIGN DECISION: Fast, non-blocking check that counts skills from deployment
1250
- directory and collection repos. Shows "X installed (Y available)" format.
1283
+ Shows format: "✓ Skills: X deployed / Y cached"
1251
1284
  Failures are silent to avoid blocking startup.
1252
1285
  """
1253
1286
  try:
1254
1287
  from pathlib import Path
1255
1288
 
1256
- # Count deployed skills (installed)
1257
- skills_dir = Path.home() / ".claude" / "skills"
1258
- installed_count = 0
1259
- if skills_dir.exists():
1289
+ # Count deployed skills (PROJECT-level, not user-level)
1290
+ project_skills_dir = Path.cwd() / ".claude" / "skills"
1291
+ deployed_count = 0
1292
+ if project_skills_dir.exists():
1260
1293
  # Count directories with SKILL.md (excludes collection repos)
1261
1294
  # Exclude collection directories (obra-superpowers, etc.)
1262
1295
  skill_dirs = [
1263
1296
  d
1264
- for d in skills_dir.iterdir()
1297
+ for d in project_skills_dir.iterdir()
1265
1298
  if d.is_dir()
1266
1299
  and (d / "SKILL.md").exists()
1267
1300
  and not (d / ".git").exists() # Exclude collection repos
1268
1301
  ]
1269
- installed_count = len(skill_dirs)
1302
+ deployed_count = len(skill_dirs)
1270
1303
 
1271
- # Count available skills in collections
1272
- available_count = 0
1273
- if skills_dir.exists():
1274
- # Scan all collection directories (those with .git)
1275
- for collection_dir in skills_dir.iterdir():
1276
- if (
1277
- not collection_dir.is_dir()
1278
- or not (collection_dir / ".git").exists()
1279
- ):
1304
+ # Count cached skills (from remote sources, not deployed yet)
1305
+ # This matches the agent summary pattern: deployed vs cached
1306
+ cache_dir = Path.home() / ".claude-mpm" / "cache" / "skills"
1307
+ cached_count = 0
1308
+ if cache_dir.exists():
1309
+ # Scan all repository directories in cache
1310
+ # Cache structure: ~/.claude-mpm/cache/skills/{owner}/{repo}/...
1311
+ for repo_dir in cache_dir.rglob("*"):
1312
+ if not repo_dir.is_dir():
1280
1313
  continue
1281
1314
 
1282
- # Count skill directories in this collection
1315
+ # Count skill directories (those with SKILL.md)
1283
1316
  # Skills can be nested in: skills/category/skill-name/SKILL.md
1284
1317
  # or in flat structure: skill-name/SKILL.md
1285
- for root, dirs, files in os.walk(collection_dir):
1318
+ for root, dirs, files in os.walk(repo_dir):
1286
1319
  if "SKILL.md" in files:
1287
- # Exclude build artifacts and hidden directories (within the collection)
1288
- # Get relative path from collection_dir to avoid excluding based on .claude parent
1320
+ # Exclude build artifacts and hidden directories
1289
1321
  root_path = Path(root)
1290
- relative_parts = root_path.relative_to(collection_dir).parts
1291
1322
  if not any(
1292
1323
  part.startswith(".")
1293
1324
  or part in ["dist", "build", "__pycache__"]
1294
- for part in relative_parts
1325
+ for part in root_path.parts
1295
1326
  ):
1296
- available_count += 1
1327
+ cached_count += 1
1297
1328
 
1298
- # Display summary if we have skills
1299
- if installed_count > 0 or available_count > 0:
1329
+ # Display summary using agent summary format: "X deployed / Y cached"
1330
+ # Only show non-deployed cached skills (subtract deployed from cached)
1331
+ non_deployed_cached = max(0, cached_count - deployed_count)
1332
+ if deployed_count > 0 or non_deployed_cached > 0:
1300
1333
  print(
1301
- f"✓ Skills: {installed_count} installed ({available_count} available)",
1334
+ f"✓ Skills: {deployed_count} deployed / {non_deployed_cached} cached",
1302
1335
  flush=True,
1303
1336
  )
1304
1337
 
@@ -586,6 +586,14 @@ class AgentTemplateBuilder:
586
586
  tags_str = ",".join(metadata["tags"])
587
587
  frontmatter_lines.append(f"tags: {tags_str}")
588
588
 
589
+ # CRITICAL: Preserve skills field from template for selective skill deployment
590
+ # Skills are used by startup.py to determine which skills to deploy
591
+ skills = template_data.get("skills", [])
592
+ if skills and isinstance(skills, list):
593
+ frontmatter_lines.append("skills:")
594
+ for skill in skills:
595
+ frontmatter_lines.append(f"- {skill}")
596
+
589
597
  frontmatter_lines.extend(
590
598
  [
591
599
  "---",
@@ -1118,14 +1118,17 @@ class GitSourceSyncService:
1118
1118
  deploy_filename = Path(agent_path).name
1119
1119
  deploy_file = deployment_dir / deploy_filename
1120
1120
 
1121
- # Check if update needed (compare modification times)
1121
+ # Check if update needed (compare content, not just mtime)
1122
+ # DESIGN: Use content hash comparison for reliable change detection
1123
+ # Mtime comparison can fail when cache downloads have older timestamps
1122
1124
  should_deploy = force
1123
1125
  was_existing = deploy_file.exists()
1124
1126
 
1125
1127
  if not force and was_existing:
1126
- cache_mtime = cache_file.stat().st_mtime
1127
- deploy_mtime = deploy_file.stat().st_mtime
1128
- should_deploy = cache_mtime > deploy_mtime
1128
+ # Compare file contents using hash
1129
+ cache_content = cache_file.read_bytes()
1130
+ deploy_content = deploy_file.read_bytes()
1131
+ should_deploy = cache_content != deploy_content
1129
1132
 
1130
1133
  if not should_deploy and was_existing:
1131
1134
  results["skipped"].append(deploy_filename)
@@ -98,6 +98,7 @@ class VerificationResult:
98
98
  missing_skills: List of missing skill names
99
99
  outdated_skills: List of outdated skill names
100
100
  message: Summary message
101
+ skill_count: Total number of deployed skills
101
102
  """
102
103
 
103
104
  verified: bool
@@ -105,6 +106,7 @@ class VerificationResult:
105
106
  missing_skills: List[str]
106
107
  outdated_skills: List[str]
107
108
  message: str
109
+ skill_count: int = 0
108
110
 
109
111
 
110
112
  @dataclass
@@ -551,6 +553,7 @@ class PMSkillsDeployerService(LoggerMixin):
551
553
  missing_skills=missing_skills,
552
554
  outdated_skills=outdated_skills,
553
555
  message="PM skills not deployed. Run 'claude-mpm init' to deploy.",
556
+ skill_count=0,
554
557
  )
555
558
 
556
559
  # Check each registered skill exists
@@ -610,6 +613,7 @@ class PMSkillsDeployerService(LoggerMixin):
610
613
  missing_skills=missing_skills,
611
614
  outdated_skills=outdated_skills,
612
615
  message=message,
616
+ skill_count=len(deployed_skills),
613
617
  )
614
618
 
615
619
  def get_deployed_skills(self, project_dir: Path) -> List[PMSkillInfo]:
@@ -991,12 +991,17 @@ class GitSkillSourceManager:
991
991
  progress_callback=None,
992
992
  skill_filter: Optional[Set[str]] = None,
993
993
  ) -> Dict[str, Any]:
994
- """Deploy skills from cache to target directory with flat structure.
994
+ """Deploy skills from cache to target directory with flat structure and automatic cleanup.
995
995
 
996
996
  Flattens nested Git repository structure into Claude Code compatible
997
997
  flat directory structure. Each skill directory is copied with a
998
998
  hyphen-separated name derived from its path.
999
999
 
1000
+ CRITICAL: When skill_filter is provided (agent-referenced skills), this function:
1001
+ 1. Deploys ONLY the filtered skills
1002
+ 2. REMOVES orphaned skills (deployed but not in filter)
1003
+ 3. Returns removed_count and removed_skills in result
1004
+
1000
1005
  Transformation Example:
1001
1006
  Cache: collaboration/dispatching-parallel-agents/SKILL.md
1002
1007
  Deploy: collaboration-dispatching-parallel-agents/SKILL.md
@@ -1006,8 +1011,8 @@ class GitSkillSourceManager:
1006
1011
  force: Overwrite existing skills
1007
1012
  progress_callback: Optional callback(increment: int) called for each skill deployed
1008
1013
  skill_filter: Optional set of skill names to deploy (selective deployment).
1009
- If None, deploys all skills. If provided, only deploys skills
1010
- whose name matches an entry in the filter set.
1014
+ If None, deploys ALL skills WITHOUT cleanup.
1015
+ If provided, deploys ONLY filtered skills AND removes orphans.
1011
1016
 
1012
1017
  Returns:
1013
1018
  Dict with deployment results:
@@ -1018,7 +1023,9 @@ class GitSkillSourceManager:
1018
1023
  "deployed_skills": List[str],
1019
1024
  "skipped_skills": List[str],
1020
1025
  "errors": List[str],
1021
- "filtered_count": int # Number of skills filtered out
1026
+ "filtered_count": int, # Number of skills filtered out
1027
+ "removed_count": int, # Number of orphaned skills removed
1028
+ "removed_skills": List[str] # Names of removed orphaned skills
1022
1029
  }
1023
1030
 
1024
1031
  Example:
@@ -1026,10 +1033,10 @@ class GitSkillSourceManager:
1026
1033
  >>> result = manager.deploy_skills()
1027
1034
  >>> print(f"Deployed {result['deployed_count']} skills")
1028
1035
 
1029
- # Selective deployment based on agent requirements:
1036
+ # Selective deployment based on agent requirements (with cleanup):
1030
1037
  >>> required = {"typescript-core", "react-patterns"}
1031
1038
  >>> result = manager.deploy_skills(skill_filter=required)
1032
- >>> print(f"Deployed {result['deployed_count']} of {len(required)} required skills")
1039
+ >>> print(f"Deployed {result['deployed_count']}, removed {result['removed_count']} orphans")
1033
1040
  """
1034
1041
  if target_dir is None:
1035
1042
  target_dir = Path.home() / ".claude" / "skills"
@@ -1040,6 +1047,7 @@ class GitSkillSourceManager:
1040
1047
  skipped = []
1041
1048
  errors = []
1042
1049
  filtered_count = 0
1050
+ removed_skills = [] # Track removed orphaned skills
1043
1051
 
1044
1052
  # Get all skills from all sources
1045
1053
  all_skills = self.get_all_skills()
@@ -1082,11 +1090,12 @@ class GitSkillSourceManager:
1082
1090
  )
1083
1091
 
1084
1092
  # Cleanup: Remove skills from target directory that aren't in the filtered set
1085
- # This ensures only the skills in the profile are deployed
1093
+ # This ensures only agent-referenced skills remain deployed
1086
1094
  removed_skills = self._cleanup_unfiltered_skills(target_dir, all_skills)
1087
1095
  if removed_skills:
1088
1096
  self.logger.info(
1089
- f"Removed {len(removed_skills)} skills not in profile filter: {removed_skills}"
1097
+ f"Removed {len(removed_skills)} orphaned skills not referenced by agents: {removed_skills[:10]}"
1098
+ + (f" (and {len(removed_skills) - 10} more)" if len(removed_skills) > 10 else "")
1090
1099
  )
1091
1100
 
1092
1101
  self.logger.info(
@@ -1130,6 +1139,7 @@ class GitSkillSourceManager:
1130
1139
  self.logger.info(
1131
1140
  f"Deployment complete: {len(deployed)} deployed, "
1132
1141
  f"{len(skipped)} skipped, {len(errors)} errors"
1142
+ + (f", {len(removed_skills)} removed" if removed_skills else "")
1133
1143
  )
1134
1144
 
1135
1145
  return {
@@ -1140,6 +1150,8 @@ class GitSkillSourceManager:
1140
1150
  "skipped_skills": skipped,
1141
1151
  "errors": errors,
1142
1152
  "filtered_count": filtered_count,
1153
+ "removed_count": len(removed_skills),
1154
+ "removed_skills": removed_skills,
1143
1155
  }
1144
1156
 
1145
1157
  def _cleanup_unfiltered_skills(
@@ -51,6 +51,59 @@ logger = get_logger(__name__)
51
51
  # Deployment tracking index file
52
52
  DEPLOYED_INDEX_FILE = ".mpm-deployed-skills.json"
53
53
 
54
+ # Core skills that are universally useful across all projects
55
+ # These are deployed when skill mapping returns too many skills (>60)
56
+ # Target: ~25-30 core skills for balanced functionality
57
+ CORE_SKILLS = {
58
+ # Universal debugging and verification (4 skills)
59
+ "universal-debugging-systematic-debugging",
60
+ "universal-debugging-verification-before-completion",
61
+ "universal-verification-pre-merge",
62
+ "universal-verification-screenshot",
63
+
64
+ # Universal testing patterns (2 skills)
65
+ "universal-testing-test-driven-development",
66
+ "universal-testing-testing-anti-patterns",
67
+
68
+ # Universal architecture and design (1 skill)
69
+ "universal-architecture-software-patterns",
70
+
71
+ # Universal infrastructure (3 skills)
72
+ "universal-infrastructure-env-manager",
73
+ "universal-infrastructure-docker",
74
+ "universal-infrastructure-github-actions",
75
+
76
+ # Universal collaboration (1 skill)
77
+ "universal-collaboration-stacked-prs",
78
+
79
+ # Universal emergency/operations (1 skill)
80
+ "toolchains-universal-emergency-release",
81
+ "toolchains-universal-dependency-audit",
82
+
83
+ # Common language toolchains (6 skills)
84
+ "toolchains-typescript-core",
85
+ "toolchains-python-core",
86
+ "toolchains-javascript-tooling-biome",
87
+ "toolchains-python-tooling-mypy",
88
+ "toolchains-typescript-testing-vitest",
89
+ "toolchains-python-frameworks-flask",
90
+
91
+ # Common web frameworks (4 skills)
92
+ "toolchains-javascript-frameworks-nextjs",
93
+ "toolchains-nextjs-core",
94
+ "toolchains-typescript-frameworks-nodejs-backend",
95
+ "toolchains-javascript-frameworks-react-state-machine",
96
+
97
+ # Common testing tools (2 skills)
98
+ "toolchains-javascript-testing-playwright",
99
+ "toolchains-typescript-testing-jest",
100
+
101
+ # Common data/UI tools (3 skills)
102
+ "universal-data-xlsx",
103
+ "toolchains-ui-styling-tailwind",
104
+ "toolchains-ui-components-headlessui",
105
+ }
106
+
54
107
 
55
108
  def parse_agent_frontmatter(agent_file: Path) -> Dict[str, Any]:
56
109
  """Parse YAML frontmatter from agent markdown file.
@@ -140,22 +193,14 @@ def get_skills_from_agent(frontmatter: Dict[str, Any]) -> Set[str]:
140
193
  def get_skills_from_mapping(agent_ids: List[str]) -> Set[str]:
141
194
  """Get skills for agents using SkillToAgentMapper inference.
142
195
 
143
- Uses SkillToAgentMapper to find all skills associated with given agent IDs.
144
- This provides pattern-based skill discovery beyond explicit frontmatter declarations.
145
-
146
- CRITICAL DESIGN DECISION: This function ONLY returns skills for the DEPLOYED agents
147
- provided in agent_ids. It does NOT return skills for all agents in the mapping
148
- configuration (skill_to_agent_mapping.yaml lists 41 agents, but only 33 may be deployed).
196
+ DEPRECATED: This function is deprecated as of Phase 3 refactor.
197
+ Skills are now declared exclusively in agent frontmatter.
149
198
 
150
- GENERIC AGENT HANDLING: The generic "engineer" agent is mapped to 100+ skills in the
151
- configuration because it's designed as a fallback. To prevent over-deployment when
152
- specialized agents exist, we skip "engineer" if specialized agents are present.
199
+ The static skill_to_agent_mapping.yaml is no longer used for skill deployment.
200
+ Each agent must declare its skills in frontmatter or it gets zero skills.
153
201
 
154
- WHY THIS MATTERS:
155
- - skill_to_agent_mapping.yaml lists ALL possible agents (41 total)
156
- - User may only have 33 agents deployed in ~/.claude/agents/
157
- - Without filtering, we'd deploy skills for all 41 agents (over-deployment)
158
- - Solution: Only query skills for DEPLOYED agents (passed in agent_ids)
202
+ This function remains for backward compatibility but is NO LONGER CALLED
203
+ by get_required_skills_from_agents().
159
204
 
160
205
  Args:
161
206
  agent_ids: List of DEPLOYED agent identifiers (e.g., ["python-engineer", "typescript-engineer"])
@@ -163,67 +208,34 @@ def get_skills_from_mapping(agent_ids: List[str]) -> Set[str]:
163
208
 
164
209
  Returns:
165
210
  Set of unique skill names inferred from mapping configuration for DEPLOYED agents only
211
+ NOTE: This is now an empty set as the function is deprecated.
166
212
 
167
213
  Example:
168
- >>> # DEPLOYED agents only (from ~/.claude/agents/)
214
+ >>> # DEPRECATED - use frontmatter instead
169
215
  >>> deployed_agent_ids = ["python-engineer", "typescript-engineer", "qa"]
170
- >>> skills = get_skills_from_mapping(deployed_agent_ids)
171
- >>> print(f"Found {len(skills)} skills for {len(deployed_agent_ids)} deployed agents")
216
+ >>> skills = get_skills_from_mapping(deployed_agent_ids) # Returns empty set
172
217
  """
173
- try:
174
- mapper = SkillToAgentMapper()
175
- all_skills = set()
176
-
177
- # CRITICAL FIX: Skip generic "engineer" agent if specialized agents exist
178
- # The "engineer" agent is mapped to ~107 skills (almost all skills) because
179
- # it's a fallback agent. This causes over-deployment when you have specialized
180
- # agents like "python-engineer", "typescript-engineer", etc.
181
- #
182
- # Solution: Filter out "engineer" from agent_ids if specialized agents exist
183
- specialized_engineers = [
184
- aid for aid in agent_ids if aid.endswith("-engineer") and aid != "engineer"
185
- ]
186
-
187
- # If specialized engineers exist, exclude generic "engineer" from skill mapping
188
- # This prevents deploying 100+ skills when only a subset is needed
189
- agents_to_query = agent_ids
190
- if specialized_engineers and "engineer" in agent_ids:
191
- agents_to_query = [aid for aid in agent_ids if aid != "engineer"]
192
- logger.info(
193
- f"Excluding generic 'engineer' agent from skill mapping "
194
- f"(found {len(specialized_engineers)} specialized engineers: "
195
- f"{', '.join(specialized_engineers[:5])}{'...' if len(specialized_engineers) > 5 else ''})"
196
- )
197
-
198
- # IMPORTANT: Only query skills for DEPLOYED agents (those in agent_ids)
199
- # Do NOT query all agents from skill_to_agent_mapping.yaml (that's 41 agents)
200
- for agent_id in agents_to_query:
201
- agent_skills = mapper.get_skills_for_agent(agent_id)
202
- if agent_skills:
203
- all_skills.update(agent_skills)
204
- logger.debug(f"Mapped {len(agent_skills)} skills to {agent_id}")
205
-
206
- logger.info(
207
- f"Mapped {len(all_skills)} unique skills for {len(agents_to_query)} deployed agents "
208
- f"(out of {len(agent_ids)} total deployed, excluding generic 'engineer' if specialized exist)"
209
- )
210
- return all_skills
211
-
212
- except Exception as e:
213
- logger.warning(f"Failed to load SkillToAgentMapper: {e}")
214
- logger.info("Falling back to frontmatter-only skill discovery")
215
- return set()
218
+ # DEPRECATED: Return empty set
219
+ logger.warning(
220
+ "get_skills_from_mapping() is DEPRECATED and returns empty set. "
221
+ "Skills are now declared in agent frontmatter only. "
222
+ "Update your agents with 'skills:' field in frontmatter."
223
+ )
224
+ return set()
216
225
 
217
226
 
218
227
  def get_required_skills_from_agents(agents_dir: Path) -> Set[str]:
219
228
  """Extract all skills referenced by deployed agents.
220
229
 
221
- Combines skills from two sources:
222
- 1. Explicit frontmatter declarations (skills: field in agent .md files)
223
- 2. SkillToAgentMapper inference (pattern-based skill discovery)
230
+ MAJOR CHANGE (Phase 3): Now ONLY uses frontmatter-declared skills.
231
+ The static skill_to_agent_mapping.yaml is DEPRECATED. Each agent must
232
+ declare its skills in frontmatter or it gets zero skills deployed.
224
233
 
225
- This dual-source approach ensures agents get both explicitly declared skills
226
- and skills inferred from their domain/toolchain patterns.
234
+ This change:
235
+ - Eliminates dual-source complexity (frontmatter + mapping)
236
+ - Makes skill requirements explicit per agent
237
+ - Enables per-agent customization via frontmatter
238
+ - Removes dependency on static YAML mapping
227
239
 
228
240
  Args:
229
241
  agents_dir: Path to deployed agents directory (e.g., .claude/agents/)
@@ -244,13 +256,11 @@ def get_required_skills_from_agents(agents_dir: Path) -> Set[str]:
244
256
  agent_files = list(agents_dir.glob("*.md"))
245
257
  logger.debug(f"Scanning {len(agent_files)} agent files in {agents_dir}")
246
258
 
247
- # Source 1: Extract skills from frontmatter
259
+ # ONLY use frontmatter skills - no more mapping inference
248
260
  frontmatter_skills = set()
249
- agent_ids = []
250
261
 
251
262
  for agent_file in agent_files:
252
263
  agent_id = agent_file.stem
253
- agent_ids.append(agent_id)
254
264
 
255
265
  frontmatter = parse_agent_frontmatter(agent_file)
256
266
  agent_skills = get_skills_from_agent(frontmatter)
@@ -260,24 +270,23 @@ def get_required_skills_from_agents(agents_dir: Path) -> Set[str]:
260
270
  logger.debug(
261
271
  f"Agent {agent_id}: {len(agent_skills)} skills from frontmatter"
262
272
  )
273
+ else:
274
+ logger.debug(f"Agent {agent_id}: No skills declared in frontmatter")
263
275
 
264
- logger.info(f"Found {len(frontmatter_skills)} unique skills from frontmatter")
265
-
266
- # Source 2: Get skills from SkillToAgentMapper
267
- mapped_skills = get_skills_from_mapping(agent_ids)
268
-
269
- # Combine both sources
270
- required_skills = frontmatter_skills | mapped_skills
276
+ logger.info(
277
+ f"Found {len(frontmatter_skills)} unique skills from agent frontmatter "
278
+ f"(static mapping no longer used)"
279
+ )
271
280
 
272
281
  # Normalize skill paths: convert slashes to dashes for compatibility with deployment
273
- # SkillToAgentMapper returns paths like "toolchains/python/frameworks/django"
274
- # but deployment expects "toolchains-python-frameworks-django"
275
- normalized_skills = {skill.replace("/", "-") for skill in required_skills}
282
+ # Some skills may use slash format, normalize to dashes
283
+ normalized_skills = {skill.replace("/", "-") for skill in frontmatter_skills}
276
284
 
277
- logger.info(
278
- f"Combined {len(frontmatter_skills)} frontmatter + {len(mapped_skills)} mapped "
279
- f"= {len(required_skills)} total unique skills (normalized to {len(normalized_skills)})"
280
- )
285
+ if normalized_skills != frontmatter_skills:
286
+ logger.debug(
287
+ f"Normalized {len(frontmatter_skills)} skills to {len(normalized_skills)} "
288
+ "(converted slashes to dashes)"
289
+ )
281
290
 
282
291
  return normalized_skills
283
292
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.4.55
3
+ Version: 5.4.60
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -1 +0,0 @@
1
- 5.4.55
File without changes
File without changes
File without changes
File without changes