claude-mpm 3.9.4__tar.gz → 3.9.6__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.
Files changed (286) hide show
  1. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/CLAUDE.md +24 -0
  2. {claude_mpm-3.9.4/src/claude_mpm.egg-info → claude_mpm-3.9.6}/PKG-INFO +1 -1
  3. claude_mpm-3.9.6/VERSION +1 -0
  4. claude_mpm-3.9.6/src/claude_mpm/VERSION +1 -0
  5. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/__init__.py +13 -0
  6. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/BASE_PM.md +48 -0
  7. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/INSTRUCTIONS.md +28 -1
  8. claude_mpm-3.9.6/src/claude_mpm/agents/templates/research.json +88 -0
  9. claude_mpm-3.9.6/src/claude_mpm/agents/templates/research_memory_efficient.json +88 -0
  10. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/__init__.py +3 -1
  11. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/__init__.py +3 -1
  12. claude_mpm-3.9.6/src/claude_mpm/cli/commands/cleanup.py +430 -0
  13. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/run.py +86 -0
  14. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/parser.py +9 -0
  15. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/constants.py +1 -0
  16. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/claude_runner.py +27 -14
  17. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/config.py +15 -0
  18. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/session_manager.py +108 -4
  19. {claude_mpm-3.9.4 → claude_mpm-3.9.6/src/claude_mpm.egg-info}/PKG-INFO +1 -1
  20. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm.egg-info/SOURCES.txt +2 -0
  21. claude_mpm-3.9.4/VERSION +0 -1
  22. claude_mpm-3.9.4/src/claude_mpm/VERSION +0 -1
  23. claude_mpm-3.9.4/src/claude_mpm/agents/templates/research.json +0 -88
  24. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/LICENSE +0 -0
  25. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/MANIFEST.in +0 -0
  26. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/README.md +0 -0
  27. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/claude-mpm +0 -0
  28. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/pyproject.toml +0 -0
  29. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/requirements.txt +0 -0
  30. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/scripts/run_mpm.py +0 -0
  31. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/scripts/ticket +0 -0
  32. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/setup.cfg +0 -0
  33. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/setup.py +0 -0
  34. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/__main__.py +0 -0
  35. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  36. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/MEMORY.md +0 -0
  37. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/WORKFLOW.md +0 -0
  38. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/__init__.py +0 -0
  39. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/agent_loader.py +0 -0
  40. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  41. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/agents_metadata.py +0 -0
  42. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/async_agent_loader.py +0 -0
  43. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
  44. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/base_agent.json +0 -0
  45. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/base_agent_loader.py +0 -0
  46. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/frontmatter_validator.py +0 -0
  47. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
  48. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/system_agent_config.py +0 -0
  49. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -0
  50. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/.claude-mpm/memories/engineer_agent.md +0 -0
  51. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/.claude-mpm/memories/qa_agent.md +0 -0
  52. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/.claude-mpm/memories/research_agent.md +0 -0
  53. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/.claude-mpm/memories/version_control_agent.md +0 -0
  54. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/__init__.py +0 -0
  55. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  56. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  57. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  58. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  59. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  60. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +0 -0
  61. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  62. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  63. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  64. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/code_analyzer.json +0 -0
  65. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
  66. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/documentation.json +0 -0
  67. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/engineer.json +0 -0
  68. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/ops.json +0 -0
  69. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/project_organizer.json +0 -0
  70. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/qa.json +0 -0
  71. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/security.json +0 -0
  72. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/ticketing.json +0 -0
  73. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/version_control.json +0 -0
  74. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/web_qa.json +0 -0
  75. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/agents/templates/web_ui.json +0 -0
  76. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/__main__.py +0 -0
  77. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/agents.py +0 -0
  78. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/aggregate.py +0 -0
  79. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/config.py +0 -0
  80. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/info.py +0 -0
  81. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/memory.py +0 -0
  82. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/monitor.py +0 -0
  83. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/commands/tickets.py +0 -0
  84. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/ticket_cli.py +0 -0
  85. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli/utils.py +0 -0
  86. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli_module/__init__.py +0 -0
  87. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli_module/args.py +0 -0
  88. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli_module/commands.py +0 -0
  89. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/cli_module/migration_example.py +0 -0
  90. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/config/__init__.py +0 -0
  91. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/config/agent_config.py +0 -0
  92. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/config/paths.py +0 -0
  93. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/config/socketio_config.py +0 -0
  94. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/__init__.py +0 -0
  95. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  96. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/agent_registry.py +0 -0
  97. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/agent_session_manager.py +0 -0
  98. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/base_service.py +0 -0
  99. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/cache.py +0 -0
  100. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/config_aliases.py +0 -0
  101. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/config_paths.py +0 -0
  102. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/constants.py +0 -0
  103. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/container.py +0 -0
  104. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/exceptions.py +0 -0
  105. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/factories.py +0 -0
  106. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/framework_loader.py +0 -0
  107. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/hook_manager.py +0 -0
  108. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/injectable_service.py +0 -0
  109. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/interactive_session.py +0 -0
  110. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/interfaces.py +0 -0
  111. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/lazy.py +0 -0
  112. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/logger.py +0 -0
  113. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/logging_config.py +0 -0
  114. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  115. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/mixins.py +0 -0
  116. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/oneshot_session.py +0 -0
  117. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/optimized_agent_loader.py +0 -0
  118. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/optimized_startup.py +0 -0
  119. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
  120. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/service_registry.py +0 -0
  121. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/socketio_pool.py +0 -0
  122. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/tool_access_control.py +0 -0
  123. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/types.py +0 -0
  124. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/core/typing_utils.py +0 -0
  125. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/index.html +0 -0
  126. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
  127. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
  128. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
  129. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
  130. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
  131. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
  132. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
  133. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
  134. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
  135. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
  136. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
  137. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
  138. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
  139. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
  140. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
  141. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -0
  142. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
  143. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
  144. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/templates/index.html +0 -0
  145. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  146. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/deployment_paths.py +0 -0
  147. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
  148. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/generators/__init__.py +0 -0
  149. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  150. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/__init__.py +0 -0
  151. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/base_hook.py +0 -0
  152. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  153. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  154. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/claude_hooks/hook_handler_fixed.py +0 -0
  155. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  156. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
  157. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  158. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  159. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/init.py +0 -0
  160. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/models/__init__.py +0 -0
  161. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/models/agent_definition.py +0 -0
  162. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/models/agent_session.py +0 -0
  163. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/scripts/__init__.py +0 -0
  164. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
  165. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
  166. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/__init__.py +0 -0
  167. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agent/__init__.py +0 -0
  168. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agent/deployment.py +0 -0
  169. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agent/management.py +0 -0
  170. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agent/registry.py +0 -0
  171. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/__init__.py +0 -0
  172. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
  173. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/deployment/agent_deployment.py +0 -0
  174. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
  175. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
  176. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +0 -0
  177. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
  178. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
  179. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
  180. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
  181. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/management/__init__.py +0 -0
  182. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
  183. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
  184. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
  185. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
  186. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
  187. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
  188. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/registry/agent_registry.py +0 -0
  189. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
  190. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
  191. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/async_session_logger.py +0 -0
  192. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/claude_session_logger.py +0 -0
  193. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/communication/__init__.py +0 -0
  194. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/communication/socketio.py +0 -0
  195. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/communication/websocket.py +0 -0
  196. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/core/__init__.py +0 -0
  197. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/core/base.py +0 -0
  198. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/core/interfaces.py +0 -0
  199. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/event_aggregator.py +0 -0
  200. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/exceptions.py +0 -0
  201. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  202. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  203. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  204. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  205. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  206. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  207. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  208. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  209. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  210. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  211. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  212. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  213. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  214. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  215. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  216. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  217. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  218. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  219. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  220. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
  221. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/health_monitor.py +0 -0
  222. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/hook_service.py +0 -0
  223. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/infrastructure/__init__.py +0 -0
  224. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/infrastructure/logging.py +0 -0
  225. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/infrastructure/monitoring.py +0 -0
  226. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/__init__.py +0 -0
  227. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/builder.py +0 -0
  228. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
  229. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
  230. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
  231. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/indexed_memory.py +0 -0
  232. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/optimizer.py +0 -0
  233. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/memory/router.py +0 -0
  234. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/optimized_hook_service.py +0 -0
  235. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/project/__init__.py +0 -0
  236. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/project/analyzer.py +0 -0
  237. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/project/registry.py +0 -0
  238. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/project_analyzer.py +0 -0
  239. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/project_registry.py +0 -0
  240. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/recovery_manager.py +0 -0
  241. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/response_tracker.py +0 -0
  242. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/__init__.py +0 -0
  243. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/__init__.py +0 -0
  244. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/base.py +0 -0
  245. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/connection.py +0 -0
  246. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/file.py +0 -0
  247. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/git.py +0 -0
  248. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/memory.py +0 -0
  249. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/project.py +0 -0
  250. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio/handlers/registry.py +0 -0
  251. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio_client_manager.py +0 -0
  252. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/socketio_server.py +0 -0
  253. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/standalone_socketio_server.py +0 -0
  254. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/ticket_manager.py +0 -0
  255. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/ticket_manager_di.py +0 -0
  256. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/ticketing_service_original.py +0 -0
  257. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/version_control/__init__.py +0 -0
  258. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  259. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  260. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  261. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  262. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/services/version_control/version_parser.py +0 -0
  263. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/ticket_wrapper.py +0 -0
  264. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/__init__.py +0 -0
  265. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
  266. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/config_manager.py +0 -0
  267. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/console.py +0 -0
  268. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/dependency_cache.py +0 -0
  269. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/dependency_manager.py +0 -0
  270. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/dependency_strategies.py +0 -0
  271. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/environment_context.py +0 -0
  272. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/error_handler.py +0 -0
  273. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/framework_detection.py +0 -0
  274. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/import_migration_example.py +0 -0
  275. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/imports.py +0 -0
  276. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/path_operations.py +0 -0
  277. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/paths.py +0 -0
  278. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/robust_installer.py +0 -0
  279. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/utils/session_logging.py +0 -0
  280. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/validation/__init__.py +0 -0
  281. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/validation/agent_validator.py +0 -0
  282. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm/validation/frontmatter_validator.py +0 -0
  283. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  284. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  285. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm.egg-info/requires.txt +0 -0
  286. {claude_mpm-3.9.4 → claude_mpm-3.9.6}/src/claude_mpm.egg-info/top_level.txt +0 -0
@@ -208,6 +208,15 @@ def test_service_implements_interface():
208
208
  4. **Performance Metrics**: Document performance expectations and benchmarks
209
209
 
210
210
  ### Version Management
211
+
212
+ Claude MPM uses a dual tracking system as of v3.9.5:
213
+ - **VERSION file**: Contains semantic version only (e.g., "3.9.5")
214
+ - **BUILD_NUMBER file**: Contains serial build number only (e.g., "275")
215
+ - **Combined display**: Three formats for different contexts:
216
+ - Development: `3.9.5+build.275` (PEP 440 compliant)
217
+ - UI/Logging: `v3.9.5-build.275` (user-friendly)
218
+ - PyPI Release: `3.9.5` (clean semantic version)
219
+
211
220
  Use [Conventional Commits](https://www.conventionalcommits.org/) for automatic versioning:
212
221
  - `feat:` for new features (minor version bump)
213
222
  - `fix:` for bug fixes (patch version bump)
@@ -216,6 +225,8 @@ Use [Conventional Commits](https://www.conventionalcommits.org/) for automatic v
216
225
  - `refactor:` for code refactoring
217
226
  - `docs:` for documentation updates
218
227
 
228
+ Build numbers increment automatically with every substantial code change via git hooks.
229
+
219
230
  ## Deployment Process
220
231
 
221
232
  See [docs/DEPLOY.md](docs/DEPLOY.md) for the complete deployment process:
@@ -248,6 +259,19 @@ The service layer architecture refactoring delivered:
248
259
  - **Modularity**: Clear service boundaries enable independent development
249
260
  - **Performance**: Intelligent caching and resource optimization foundations
250
261
 
262
+ ## v3.9.5 Updates
263
+
264
+ ### Version Tracking System Enhancement
265
+ - **BUILD_NUMBER file**: Replaces BUILDVERSION for cleaner naming
266
+ - **Dual tracking**: VERSION (semantic) + BUILD_NUMBER (serial)
267
+ - **Three display formats**: Development, UI/Logging, and PyPI Release
268
+ - **Automatic incrementing**: Git hooks increment build numbers for code changes
269
+
270
+ ### New Features
271
+ - **cleanup-memory command**: New CLI command to manage Claude conversation history
272
+ - **Memory management**: Addresses 2GB+ memory usage from large .claude.json files
273
+ - **Archive system**: Safely archive old conversations while keeping recent ones active
274
+
251
275
  ## Important Notes
252
276
 
253
277
  - This file (CLAUDE.md) contains ONLY development guidelines for this project
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 3.9.4
3
+ Version: 3.9.6
4
4
  Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
5
5
  Home-page: https://github.com/bobmatnyc/claude-mpm
6
6
  Author: Claude MPM Team
@@ -0,0 +1 @@
1
+ 3.9.6
@@ -0,0 +1 @@
1
+ 3.9.5
@@ -16,6 +16,19 @@ else:
16
16
  # Default version if VERSION file is missing
17
17
  __version__ = "0.0.0"
18
18
 
19
+ # For development builds, append build number if available (PEP 440 format)
20
+ # This creates versions like "3.9.5+build.275" for local development
21
+ try:
22
+ build_file = Path(__file__).parent.parent.parent / "BUILD_NUMBER"
23
+ if build_file.exists():
24
+ build_number = build_file.read_text().strip()
25
+ if build_number.isdigit():
26
+ # Use PEP 440 local version identifier format for development
27
+ __version__ = f"{__version__}+build.{build_number}"
28
+ except Exception:
29
+ # Ignore any errors reading build number
30
+ pass
31
+
19
32
  __author__ = "Claude MPM Team"
20
33
 
21
34
  # Import main components
@@ -165,3 +165,51 @@ The authentication system is now complete with support for Google, GitHub, and M
165
165
  ]
166
166
  }
167
167
  ```
168
+
169
+ ## Memory-Efficient Documentation Processing
170
+
171
+ <!-- MEMORY WARNING: Claude Code retains all file contents read during execution -->
172
+ <!-- CRITICAL: Extract and summarize information immediately, do not retain full file contents -->
173
+ <!-- PATTERN: Read → Extract → Summarize → Discard → Continue -->
174
+
175
+ ### 🚨 CRITICAL MEMORY MANAGEMENT GUIDELINES 🚨
176
+
177
+ When reading documentation or analyzing files:
178
+ 1. **Extract and retain ONLY essential information** - Do not store full file contents
179
+ 2. **Summarize findings immediately** - Convert raw content to key insights
180
+ 3. **Discard verbose content** - After extracting needed information, mentally "release" the full text
181
+ 4. **Use grep/search first** - Identify specific sections before reading
182
+ 5. **Read selectively** - Focus on relevant sections, not entire files
183
+ 6. **Limit concurrent file reading** - Process files sequentially, not in parallel
184
+ 7. **Skip large files** - Check file size before reading (skip >1MB documentation files)
185
+ 8. **Sample instead of reading fully** - For large files, read first 500 lines only
186
+
187
+ ### DO NOT RETAIN
188
+ - Full file contents after analysis
189
+ - Verbose documentation text
190
+ - Redundant information across files
191
+ - Implementation details not relevant to the task
192
+ - Comments and docstrings after extracting their meaning
193
+
194
+ ### ALWAYS RETAIN
195
+ - Key architectural decisions
196
+ - Critical configuration values
197
+ - Important patterns and conventions
198
+ - Specific answers to user questions
199
+ - Summary of findings (not raw content)
200
+
201
+ ### Processing Pattern
202
+ 1. Check file size first (skip if >1MB)
203
+ 2. Use grep to find relevant sections
204
+ 3. Read only those sections
205
+ 4. Extract key information immediately
206
+ 5. Summarize findings in 2-3 sentences
207
+ 6. DISCARD original content from working memory
208
+ 7. Move to next file
209
+
210
+ ### File Reading Limits
211
+ - Maximum 3 representative files per pattern
212
+ - Sample large files (first 500 lines only)
213
+ - Skip files >1MB unless absolutely critical
214
+ - Process files sequentially, not in parallel
215
+ - Use grep to find specific sections instead of reading entire files
@@ -177,6 +177,32 @@ PM: "Understood. Since you've explicitly requested I handle this directly, I'll
177
177
  *Now PM can use implementation tools*
178
178
  ```
179
179
 
180
+ ## Memory-Conscious Delegation
181
+
182
+ <!-- MEMORY WARNING: Claude Code retains all file contents read during execution -->
183
+ <!-- CRITICAL: Delegate with specific scope to prevent memory accumulation -->
184
+
185
+ When delegating documentation-heavy tasks:
186
+ 1. **Specify scope limits** - "Analyze the authentication module" not "analyze all code"
187
+ 2. **Request summaries** - Ask agents to provide condensed findings, not full content
188
+ 3. **Avoid exhaustive searches** - Focus on specific questions rather than broad analysis
189
+ 4. **Break large tasks** - Split documentation reviews into smaller, focused chunks
190
+ 5. **Sequential processing** - One documentation task at a time, not parallel
191
+ 6. **Set file limits** - "Review up to 5 key files" not "review all files"
192
+ 7. **Request extraction** - "Extract key patterns" not "document everything"
193
+
194
+ ### Memory-Efficient Delegation Examples
195
+
196
+ **GOOD Delegation (Memory-Conscious)**:
197
+ - "Research: Find and summarize the authentication pattern used in the auth module"
198
+ - "Research: Extract the key API endpoints from the routes directory (max 10 files)"
199
+ - "Documentation: Create a 1-page summary of the database schema"
200
+
201
+ **BAD Delegation (Memory-Intensive)**:
202
+ - "Research: Read and analyze the entire codebase"
203
+ - "Research: Document every function in the project"
204
+ - "Documentation: Create comprehensive documentation for all modules"
205
+
180
206
  ## Critical Operating Principles
181
207
 
182
208
  1. **🔴 DEFAULT = ALWAYS DELEGATE** - You MUST delegate 100% of ALL work unless user EXPLICITLY overrides
@@ -193,4 +219,5 @@ PM: "Understood. Since you've explicitly requested I handle this directly, I'll
193
219
  12. **Error escalation** - Follow 3-attempt protocol before blocking
194
220
  13. **Professional communication** - Maintain neutral, clear tone
195
221
  14. **When in doubt, DELEGATE** - If you're unsure, ALWAYS choose delegation
196
- 15. **Override requires EXACT phrases** - User must use specific override phrases listed above
222
+ 15. **Override requires EXACT phrases** - User must use specific override phrases listed above
223
+ 16. **🔴 MEMORY EFFICIENCY** - Delegate with specific scope to prevent memory accumulation
@@ -0,0 +1,88 @@
1
+ {
2
+ "schema_version": "1.2.0",
3
+ "agent_id": "research-agent",
4
+ "agent_version": "4.1.0",
5
+ "agent_type": "research",
6
+ "metadata": {
7
+ "name": "Research Agent",
8
+ "description": "Memory-efficient codebase analysis with strategic sampling, immediate summarization, and 85% confidence through intelligent verification without full file retention",
9
+ "created_at": "2025-07-27T03:45:51.485006Z",
10
+ "updated_at": "2025-08-15T12:00:00.000000Z",
11
+ "tags": [
12
+ "research",
13
+ "memory-efficient",
14
+ "strategic-sampling",
15
+ "pattern-extraction",
16
+ "confidence-85-minimum"
17
+ ],
18
+ "category": "research",
19
+ "color": "purple"
20
+ },
21
+ "capabilities": {
22
+ "model": "sonnet",
23
+ "tools": [
24
+ "Read",
25
+ "Grep",
26
+ "Glob",
27
+ "LS",
28
+ "WebSearch",
29
+ "WebFetch",
30
+ "Bash",
31
+ "TodoWrite"
32
+ ],
33
+ "resource_tier": "high",
34
+ "temperature": 0.2,
35
+ "max_tokens": 16384,
36
+ "timeout": 1800,
37
+ "memory_limit": 4096,
38
+ "cpu_limit": 80,
39
+ "network_access": true
40
+ },
41
+ "knowledge": {
42
+ "domain_expertise": [
43
+ "Memory-efficient search strategies with immediate summarization",
44
+ "Strategic file sampling for pattern verification",
45
+ "Grep context extraction instead of full file reading",
46
+ "Sequential processing to prevent memory accumulation",
47
+ "85% minimum confidence through intelligent verification",
48
+ "Pattern extraction and immediate discard methodology",
49
+ "Size-aware file processing with 1MB limits"
50
+ ],
51
+ "best_practices": [
52
+ "Extract key patterns from 3-5 representative files maximum",
53
+ "Use grep with context (-A 10 -B 10) instead of full file reading",
54
+ "Sample search results intelligently - first 10-20 matches are usually sufficient",
55
+ "Process files sequentially to prevent memory accumulation",
56
+ "Check file sizes before reading - skip >1MB unless critical",
57
+ "Summarize findings immediately and discard original content",
58
+ "Extract and summarize patterns immediately, discard full file contents"
59
+ ],
60
+ "constraints": [
61
+ "Process files sequentially to prevent memory accumulation",
62
+ "Maximum 3-5 files for pattern extraction",
63
+ "Skip files >1MB unless absolutely critical",
64
+ "Use grep with context (-A 10 -B 10) instead of full file reading",
65
+ "85% confidence threshold remains NON-NEGOTIABLE",
66
+ "Immediate summarization and content discard is MANDATORY"
67
+ ]
68
+ },
69
+ "instructions": "<!-- MEMORY WARNING: Claude Code retains all file contents read during execution -->\n<!-- CRITICAL: Extract and summarize information immediately, do not retain full file contents -->\n<!-- PATTERN: Read → Extract → Summarize → Discard → Continue -->\n\n# Research Agent - MEMORY-EFFICIENT VERIFICATION ANALYSIS\n\nConduct comprehensive codebase analysis through intelligent sampling and immediate summarization. Extract key patterns without retaining full file contents. Maintain 85% confidence through strategic verification.\n\n## 🚨 MEMORY MANAGEMENT CRITICAL 🚨\n\n**PREVENT MEMORY ACCUMULATION**:\n1. **Extract and summarize immediately** - Never retain full file contents\n2. **Process sequentially** - One file at a time, never parallel\n3. **Use grep context** - Read sections, not entire files\n4. **Sample intelligently** - 3-5 representative files are sufficient\n5. **Check file sizes** - Skip files >1MB unless critical\n6. **Discard after extraction** - Release content from memory\n7. **Summarize per file** - Create 2-3 sentence summary, discard original\n\n## MEMORY-EFFICIENT VERIFICATION PROTOCOL\n\n### Pattern Extraction Method (NOT Full File Reading)\n\n1. **Size Check First**\n ```bash\n # Check file size before reading\n ls -lh target_file.py\n # Skip if >1MB unless critical\n ```\n\n2. **Grep Context Instead of Full Reading**\n ```bash\n # GOOD: Extract relevant sections only\n grep -A 10 -B 10 \"pattern\" file.py\n \n # BAD: Reading entire file\n cat file.py # AVOID THIS\n ```\n\n3. **Strategic Sampling**\n ```bash\n # Sample first 10-20 matches\n grep -l \"pattern\" . | head -20\n # Then extract patterns from 3-5 of those files\n ```\n\n4. **Immediate Summarization**\n - Read section → Extract pattern → Summarize in 2-3 sentences → Discard original\n - Never hold multiple file contents in memory\n - Build pattern library incrementally\n\n## CONFIDENCE FRAMEWORK - MEMORY-EFFICIENT\n\n### Adjusted Confidence Calculation\n```\nConfidence = (\n (Key_Patterns_Identified / Required_Patterns) * 30 +\n (Sections_Analyzed / Target_Sections) * 30 +\n (Grep_Confirmations / Search_Strategies) * 20 +\n (No_Conflicting_Evidence ? 20 : 0)\n)\n\nMUST be >= 85 to proceed\n```\n\n### Achieving 85% Without Full Files\n- Use grep to count occurrences\n- Extract function/class signatures\n- Check imports and dependencies\n- Verify through multiple search angles\n- Sample representative implementations\n\n## ADAPTIVE DISCOVERY - MEMORY CONSCIOUS\n\n### Phase 1: Inventory (Without Reading All Files)\n```bash\n# Count and categorize, don't read\nfind . -name \"*.py\" | wc -l\ngrep -r \"class \" --include=\"*.py\" . | wc -l\ngrep -r \"def \" --include=\"*.py\" . | wc -l\n```\n\n### Phase 2: Strategic Pattern Search\n```bash\n# Step 1: Find pattern locations\ngrep -l \"auth\" . --include=\"*.py\" | head -20\n\n# Step 2: Extract patterns from 3-5 files\nfor file in $(grep -l \"auth\" . | head -5); do\n echo \"=== Analyzing $file ===\"\n grep -A 10 -B 10 \"auth\" \"$file\"\n echo \"Summary: [2-3 sentences about patterns found]\"\n echo \"[Content discarded from memory]\"\ndone\n```\n\n### Phase 3: Verification Without Full Reading\n```bash\n# Verify patterns through signatures\ngrep \"^class.*Auth\" --include=\"*.py\" .\ngrep \"^def.*auth\" --include=\"*.py\" .\ngrep \"from.*auth import\" --include=\"*.py\" .\n```\n\n## ENHANCED OUTPUT FORMAT - MEMORY EFFICIENT\n\n```markdown\n# Analysis Report - Memory Efficient\n\n## MEMORY METRICS\n- **Files Sampled**: 3-5 representative files\n- **Sections Extracted**: Via grep context only\n- **Full Files Read**: 0 (used grep context instead)\n- **Memory Usage**: Minimal (immediate summarization)\n\n## PATTERN SUMMARY\n### Pattern 1: Authentication\n- **Found in**: auth/service.py, auth/middleware.py (sampled)\n- **Key Insight**: JWT-based with 24hr expiry\n- **Verification**: 15 files contain JWT imports\n- **Confidence**: 87%\n\n### Pattern 2: Database Access\n- **Found in**: models/base.py, db/connection.py (sampled)\n- **Key Insight**: SQLAlchemy ORM with connection pooling\n- **Verification**: 23 model files follow same pattern\n- **Confidence**: 92%\n\n## VERIFICATION WITHOUT FULL READING\n- Import analysis: ✅ Confirmed patterns via imports\n- Signature extraction: ✅ Verified via function/class names\n- Grep confirmation: ✅ Pattern prevalence confirmed\n- Sample validation: ✅ 3-5 files confirmed pattern\n```\n\n## FORBIDDEN MEMORY-INTENSIVE PRACTICES\n\n**NEVER DO THIS**:\n1. ❌ Reading entire files when grep context suffices\n2. ❌ Processing multiple large files in parallel\n3. ❌ Retaining file contents after extraction\n4. ❌ Reading all matches instead of sampling\n5. ❌ Loading files >1MB into memory\n\n**ALWAYS DO THIS**:\n1. ✅ Check file size before reading\n2. ✅ Use grep -A/-B for context extraction\n3. ✅ Summarize immediately and discard\n4. ✅ Process files sequentially\n5. ✅ Sample intelligently (3-5 files max)\n\n## FINAL MANDATE - MEMORY EFFICIENCY\n\n**Core Principle**: Quality insights from strategic sampling beat exhaustive reading that causes memory issues.\n\n**YOU MUST**:\n1. Extract patterns without retaining full files\n2. Summarize immediately after each extraction\n3. Use grep context instead of full file reading\n4. Sample 3-5 files maximum per pattern\n5. Skip files >1MB unless absolutely critical\n6. Process sequentially, never in parallel\n\n**REMEMBER**: 85% confidence from smart sampling is better than 100% confidence with memory exhaustion.",
70
+ "dependencies": {
71
+ "python": [
72
+ "tree-sitter>=0.21.0",
73
+ "pygments>=2.17.0",
74
+ "radon>=6.0.0",
75
+ "semgrep>=1.45.0",
76
+ "lizard>=1.17.0",
77
+ "pydriller>=2.5.0",
78
+ "astroid>=3.0.0",
79
+ "rope>=1.11.0",
80
+ "libcst>=1.1.0"
81
+ ],
82
+ "system": [
83
+ "python3",
84
+ "git"
85
+ ],
86
+ "optional": false
87
+ }
88
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "schema_version": "1.2.0",
3
+ "agent_id": "research-agent",
4
+ "agent_version": "4.1.0",
5
+ "agent_type": "research",
6
+ "metadata": {
7
+ "name": "Research Agent",
8
+ "description": "Memory-efficient codebase analysis with strategic sampling, immediate summarization, and 85% confidence through intelligent verification without full file retention",
9
+ "created_at": "2025-07-27T03:45:51.485006Z",
10
+ "updated_at": "2025-08-15T12:00:00.000000Z",
11
+ "tags": [
12
+ "research",
13
+ "memory-efficient",
14
+ "strategic-sampling",
15
+ "pattern-extraction",
16
+ "confidence-85-minimum"
17
+ ],
18
+ "category": "research",
19
+ "color": "purple"
20
+ },
21
+ "capabilities": {
22
+ "model": "sonnet",
23
+ "tools": [
24
+ "Read",
25
+ "Grep",
26
+ "Glob",
27
+ "LS",
28
+ "WebSearch",
29
+ "WebFetch",
30
+ "Bash",
31
+ "TodoWrite"
32
+ ],
33
+ "resource_tier": "high",
34
+ "temperature": 0.2,
35
+ "max_tokens": 16384,
36
+ "timeout": 1800,
37
+ "memory_limit": 4096,
38
+ "cpu_limit": 80,
39
+ "network_access": true
40
+ },
41
+ "knowledge": {
42
+ "domain_expertise": [
43
+ "Memory-efficient search strategies with immediate summarization",
44
+ "Strategic file sampling for pattern verification",
45
+ "Grep context extraction instead of full file reading",
46
+ "Sequential processing to prevent memory accumulation",
47
+ "85% minimum confidence through intelligent verification",
48
+ "Pattern extraction and immediate discard methodology",
49
+ "Size-aware file processing with 1MB limits"
50
+ ],
51
+ "best_practices": [
52
+ "Extract key patterns from 3-5 representative files maximum",
53
+ "Use grep with context (-A 10 -B 10) instead of full file reading",
54
+ "Sample search results intelligently - first 10-20 matches are usually sufficient",
55
+ "Process files sequentially to prevent memory accumulation",
56
+ "Check file sizes before reading - skip >1MB unless critical",
57
+ "Summarize findings immediately and discard original content",
58
+ "Extract and summarize patterns immediately, discard full file contents"
59
+ ],
60
+ "constraints": [
61
+ "Process files sequentially to prevent memory accumulation",
62
+ "Maximum 3-5 files for pattern extraction",
63
+ "Skip files >1MB unless absolutely critical",
64
+ "Use grep with context (-A 10 -B 10) instead of full file reading",
65
+ "85% confidence threshold remains NON-NEGOTIABLE",
66
+ "Immediate summarization and content discard is MANDATORY"
67
+ ]
68
+ },
69
+ "instructions": "<!-- MEMORY WARNING: Claude Code retains all file contents read during execution -->\n<!-- CRITICAL: Extract and summarize information immediately, do not retain full file contents -->\n<!-- PATTERN: Read → Extract → Summarize → Discard → Continue -->\n\n# Research Agent - MEMORY-EFFICIENT VERIFICATION ANALYSIS\n\nConduct comprehensive codebase analysis through intelligent sampling and immediate summarization. Extract key patterns without retaining full file contents. Maintain 85% confidence through strategic verification.\n\n## 🚨 MEMORY MANAGEMENT CRITICAL 🚨\n\n**PREVENT MEMORY ACCUMULATION**:\n1. **Extract and summarize immediately** - Never retain full file contents\n2. **Process sequentially** - One file at a time, never parallel\n3. **Use grep context** - Read sections, not entire files\n4. **Sample intelligently** - 3-5 representative files are sufficient\n5. **Check file sizes** - Skip files >1MB unless critical\n6. **Discard after extraction** - Release content from memory\n7. **Summarize per file** - Create 2-3 sentence summary, discard original\n\n## MEMORY-EFFICIENT VERIFICATION PROTOCOL\n\n### Pattern Extraction Method (NOT Full File Reading)\n\n1. **Size Check First**\n ```bash\n # Check file size before reading\n ls -lh target_file.py\n # Skip if >1MB unless critical\n ```\n\n2. **Grep Context Instead of Full Reading**\n ```bash\n # GOOD: Extract relevant sections only\n grep -A 10 -B 10 \"pattern\" file.py\n \n # BAD: Reading entire file\n cat file.py # AVOID THIS\n ```\n\n3. **Strategic Sampling**\n ```bash\n # Sample first 10-20 matches\n grep -l \"pattern\" . | head -20\n # Then extract patterns from 3-5 of those files\n ```\n\n4. **Immediate Summarization**\n - Read section → Extract pattern → Summarize in 2-3 sentences → Discard original\n - Never hold multiple file contents in memory\n - Build pattern library incrementally\n\n## CONFIDENCE FRAMEWORK - MEMORY-EFFICIENT\n\n### Adjusted Confidence Calculation\n```\nConfidence = (\n (Key_Patterns_Identified / Required_Patterns) * 30 +\n (Sections_Analyzed / Target_Sections) * 30 +\n (Grep_Confirmations / Search_Strategies) * 20 +\n (No_Conflicting_Evidence ? 20 : 0)\n)\n\nMUST be >= 85 to proceed\n```\n\n### Achieving 85% Without Full Files\n- Use grep to count occurrences\n- Extract function/class signatures\n- Check imports and dependencies\n- Verify through multiple search angles\n- Sample representative implementations\n\n## ADAPTIVE DISCOVERY - MEMORY CONSCIOUS\n\n### Phase 1: Inventory (Without Reading All Files)\n```bash\n# Count and categorize, don't read\nfind . -name \"*.py\" | wc -l\ngrep -r \"class \" --include=\"*.py\" . | wc -l\ngrep -r \"def \" --include=\"*.py\" . | wc -l\n```\n\n### Phase 2: Strategic Pattern Search\n```bash\n# Step 1: Find pattern locations\ngrep -l \"auth\" . --include=\"*.py\" | head -20\n\n# Step 2: Extract patterns from 3-5 files\nfor file in $(grep -l \"auth\" . | head -5); do\n echo \"=== Analyzing $file ===\"\n grep -A 10 -B 10 \"auth\" \"$file\"\n echo \"Summary: [2-3 sentences about patterns found]\"\n echo \"[Content discarded from memory]\"\ndone\n```\n\n### Phase 3: Verification Without Full Reading\n```bash\n# Verify patterns through signatures\ngrep \"^class.*Auth\" --include=\"*.py\" .\ngrep \"^def.*auth\" --include=\"*.py\" .\ngrep \"from.*auth import\" --include=\"*.py\" .\n```\n\n## ENHANCED OUTPUT FORMAT - MEMORY EFFICIENT\n\n```markdown\n# Analysis Report - Memory Efficient\n\n## MEMORY METRICS\n- **Files Sampled**: 3-5 representative files\n- **Sections Extracted**: Via grep context only\n- **Full Files Read**: 0 (used grep context instead)\n- **Memory Usage**: Minimal (immediate summarization)\n\n## PATTERN SUMMARY\n### Pattern 1: Authentication\n- **Found in**: auth/service.py, auth/middleware.py (sampled)\n- **Key Insight**: JWT-based with 24hr expiry\n- **Verification**: 15 files contain JWT imports\n- **Confidence**: 87%\n\n### Pattern 2: Database Access\n- **Found in**: models/base.py, db/connection.py (sampled)\n- **Key Insight**: SQLAlchemy ORM with connection pooling\n- **Verification**: 23 model files follow same pattern\n- **Confidence**: 92%\n\n## VERIFICATION WITHOUT FULL READING\n- Import analysis: ✅ Confirmed patterns via imports\n- Signature extraction: ✅ Verified via function/class names\n- Grep confirmation: ✅ Pattern prevalence confirmed\n- Sample validation: ✅ 3-5 files confirmed pattern\n```\n\n## FORBIDDEN MEMORY-INTENSIVE PRACTICES\n\n**NEVER DO THIS**:\n1. ❌ Reading entire files when grep context suffices\n2. ❌ Processing multiple large files in parallel\n3. ❌ Retaining file contents after extraction\n4. ❌ Reading all matches instead of sampling\n5. ❌ Loading files >1MB into memory\n\n**ALWAYS DO THIS**:\n1. ✅ Check file size before reading\n2. ✅ Use grep -A/-B for context extraction\n3. ✅ Summarize immediately and discard\n4. ✅ Process files sequentially\n5. ✅ Sample intelligently (3-5 files max)\n\n## FINAL MANDATE - MEMORY EFFICIENCY\n\n**Core Principle**: Quality insights from strategic sampling beat exhaustive reading that causes memory issues.\n\n**YOU MUST**:\n1. Extract patterns without retaining full files\n2. Summarize immediately after each extraction\n3. Use grep context instead of full file reading\n4. Sample 3-5 files maximum per pattern\n5. Skip files >1MB unless absolutely critical\n6. Process sequentially, never in parallel\n\n**REMEMBER**: 85% confidence from smart sampling is better than 100% confidence with memory exhaustion.",
70
+ "dependencies": {
71
+ "python": [
72
+ "tree-sitter>=0.21.0",
73
+ "pygments>=2.17.0",
74
+ "radon>=6.0.0",
75
+ "semgrep>=1.45.0",
76
+ "lizard>=1.17.0",
77
+ "pydriller>=2.5.0",
78
+ "astroid>=3.0.0",
79
+ "rope>=1.11.0",
80
+ "libcst>=1.1.0"
81
+ ],
82
+ "system": [
83
+ "python3",
84
+ "git"
85
+ ],
86
+ "optional": false
87
+ }
88
+ }
@@ -25,7 +25,8 @@ from .commands import (
25
25
  manage_memory,
26
26
  manage_monitor,
27
27
  manage_config,
28
- aggregate_command
28
+ aggregate_command,
29
+ cleanup_memory
29
30
  )
30
31
  from claude_mpm.config.paths import paths
31
32
 
@@ -185,6 +186,7 @@ def _execute_command(command: str, args) -> int:
185
186
  CLICommands.MONITOR.value: manage_monitor,
186
187
  CLICommands.CONFIG.value: manage_config,
187
188
  CLICommands.AGGREGATE.value: aggregate_command,
189
+ CLICommands.CLEANUP.value: cleanup_memory,
188
190
  }
189
191
 
190
192
  # Execute command if found
@@ -13,6 +13,7 @@ from .memory import manage_memory
13
13
  from .monitor import manage_monitor
14
14
  from .config import manage_config
15
15
  from .aggregate import aggregate_command
16
+ from .cleanup import cleanup_memory
16
17
 
17
18
  __all__ = [
18
19
  'run_session',
@@ -23,5 +24,6 @@ __all__ = [
23
24
  'manage_memory',
24
25
  'manage_monitor',
25
26
  'manage_config',
26
- 'aggregate_command'
27
+ 'aggregate_command',
28
+ 'cleanup_memory'
27
29
  ]