claude-mpm 3.1.0__tar.gz → 3.1.2__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 (630) hide show
  1. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/CLAUDE.md +5 -0
  2. {claude_mpm-3.1.0/src/claude_mpm.egg-info → claude_mpm-3.1.2}/PKG-INFO +1 -1
  3. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/scripts/run_mpm.py +3 -7
  4. claude_mpm-3.1.2/src/claude_mpm/__main__.py +21 -0
  5. claude_mpm-3.1.2/src/claude_mpm/agents/templates/test-integration-agent.md +34 -0
  6. claude_mpm-3.1.2/src/claude_mpm/cli/__init__.py +163 -0
  7. claude_mpm-3.1.2/src/claude_mpm/cli/commands/__init__.py +20 -0
  8. claude_mpm-3.1.2/src/claude_mpm/cli/commands/agents.py +191 -0
  9. claude_mpm-3.1.2/src/claude_mpm/cli/commands/info.py +89 -0
  10. claude_mpm-3.1.2/src/claude_mpm/cli/commands/run.py +80 -0
  11. claude_mpm-3.1.2/src/claude_mpm/cli/commands/tickets.py +63 -0
  12. claude_mpm-3.1.2/src/claude_mpm/cli/commands/ui.py +57 -0
  13. claude_mpm-3.1.2/src/claude_mpm/cli/parser.py +337 -0
  14. claude_mpm-3.1.2/src/claude_mpm/cli/utils.py +171 -0
  15. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/cli_enhancements.py +19 -0
  16. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/simple_runner.py +40 -2
  17. claude_mpm-3.1.2/src/claude_mpm/models/__init__.py +24 -0
  18. claude_mpm-3.1.2/src/claude_mpm/models/agent_definition.py +196 -0
  19. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_lifecycle_manager.py +183 -20
  20. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_modification_tracker.py +10 -2
  21. claude_mpm-3.1.2/src/claude_mpm/services/agent_persistence_service.py +94 -0
  22. claude_mpm-3.1.2/src/claude_mpm/services/agent_versioning.py +37 -0
  23. {claude_mpm-3.1.0 → claude_mpm-3.1.2/src/claude_mpm.egg-info}/PKG-INFO +1 -1
  24. claude_mpm-3.1.2/src/claude_mpm.egg-info/SOURCES.txt +187 -0
  25. claude_mpm-3.1.0/.ai-trackdown/config.yaml +0 -28
  26. claude_mpm-3.1.0/.ai-trackdown/project.yaml +0 -8
  27. claude_mpm-3.1.0/.aitrackdown/project.json +0 -1
  28. claude_mpm-3.1.0/.aitrackdown-config.yaml +0 -10
  29. claude_mpm-3.1.0/.claude/.claude.json +0 -35
  30. claude_mpm-3.1.0/.claude/.claude.json.backup +0 -35
  31. claude_mpm-3.1.0/.claude/agents/data_engineer.yaml +0 -180
  32. claude_mpm-3.1.0/.claude/agents/documentation.yaml +0 -117
  33. claude_mpm-3.1.0/.claude/agents/engineer.yaml +0 -232
  34. claude_mpm-3.1.0/.claude/agents/ops.yaml +0 -119
  35. claude_mpm-3.1.0/.claude/agents/pm.yaml +0 -138
  36. claude_mpm-3.1.0/.claude/agents/qa.yaml +0 -118
  37. claude_mpm-3.1.0/.claude/agents/research.yaml +0 -303
  38. claude_mpm-3.1.0/.claude/agents/security.yaml +0 -127
  39. claude_mpm-3.1.0/.claude/agents/version_control.yaml +0 -119
  40. claude_mpm-3.1.0/.claude/commands/README.md +0 -36
  41. claude_mpm-3.1.0/.claude/commands/mpm.md +0 -5
  42. claude_mpm-3.1.0/.claude/hooks.json +0 -32
  43. claude_mpm-3.1.0/.claude/scripts/command_router.py +0 -60
  44. claude_mpm-3.1.0/.claude/settings.json +0 -37
  45. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753448752189-02zmkd.sh +0 -4511
  46. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753448752717-t1o960.sh +0 -4511
  47. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753448753258-cz40yi.sh +0 -4511
  48. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753448753816-5cj75h.sh +0 -4511
  49. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753449561020-uh844i.sh +0 -4511
  50. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753449676191-16dqe8.sh +0 -4511
  51. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753449766642-8sffyp.sh +0 -4511
  52. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753449795813-bj9blv.sh +0 -4511
  53. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753449953467-ru9ods.sh +0 -4511
  54. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753449966919-eb4aoq.sh +0 -4511
  55. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753450012330-ad1k3g.sh +0 -4511
  56. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753450254970-pvrwgd.sh +0 -4511
  57. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753450398246-etdteg.sh +0 -4511
  58. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753450789791-z5ptuf.sh +0 -4511
  59. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753450861209-w6so3e.sh +0 -4511
  60. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753451302996-01ahjc.sh +0 -4511
  61. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753451384857-mvpmcf.sh +0 -4511
  62. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753451508182-v942iw.sh +0 -4511
  63. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753451525128-q52z98.sh +0 -4511
  64. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753452958143-rd4nut.sh +0 -4511
  65. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753453029843-tyfjfo.sh +0 -4511
  66. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753460195020-02l99b.sh +0 -4511
  67. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753460396315-znuas3.sh +0 -4511
  68. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753460428488-tcy6i5.sh +0 -4511
  69. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753460542243-l181zr.sh +0 -4511
  70. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753461397341-fdy0v7.sh +0 -4511
  71. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753469116715-v6dpx9.sh +0 -4511
  72. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753477538332-i5g2cr.sh +0 -4511
  73. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753477560204-7vo17t.sh +0 -4511
  74. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753477883629-hsjia3.sh +0 -4511
  75. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753477961808-oiyqie.sh +0 -4511
  76. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478292112-5g3i0g.sh +0 -4511
  77. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478337101-xe1uid.sh +0 -4511
  78. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478342176-env102.sh +0 -4511
  79. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478361973-nr1cwq.sh +0 -4511
  80. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478372714-lamo9k.sh +0 -4511
  81. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478388184-yxkay7.sh +0 -4511
  82. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753478392376-eygj04.sh +0 -4511
  83. claude_mpm-3.1.0/.claude/shell-snapshots/snapshot-zsh-1753482158558-cr2h0o.sh +0 -4511
  84. claude_mpm-3.1.0/.claude/todos/0aaf869f-0009-4249-b955-1c3942ff239f-agent-0aaf869f-0009-4249-b955-1c3942ff239f.json +0 -20
  85. claude_mpm-3.1.0/.claude/todos/0c24ded8-9422-489d-8d18-f83cc0737181-agent-0c24ded8-9422-489d-8d18-f83cc0737181.json +0 -1
  86. claude_mpm-3.1.0/.claude/todos/0d9501e6-77b0-4e8f-b132-bae208ed740a-agent-0d9501e6-77b0-4e8f-b132-bae208ed740a.json +0 -1
  87. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-048a118d-f0ea-4dce-90d3-d851514aa36a.json +0 -50
  88. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-0600940d-65ff-4678-ac90-9e0d42a3e138.json +0 -50
  89. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5.json +0 -8
  90. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1b8badbc-b05e-459e-b16c-a974f28673be.json +0 -38
  91. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-231626b2-0ce7-44fb-82e4-a9e72fdcecc4.json +0 -38
  92. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-2799acc0-b5e3-4086-940e-62bd2a5bbd7d.json +0 -38
  93. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-42b0c458-9d5f-4745-826e-7c618d3a7026.json +0 -38
  94. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-a324c872-b962-4438-b794-7966f5d7a7a9.json +0 -32
  95. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-ce91e7fd-64af-4f57-b691-1487c2db8d0b.json +0 -38
  96. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-dd250db2-edbb-43fc-a143-3eeafc0cd7fa.json +0 -38
  97. claude_mpm-3.1.0/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-f0cbf9cd-0136-4bca-b0e0-c66aa58d3aeb.json +0 -38
  98. claude_mpm-3.1.0/.claude/todos/109c42c9-0afd-4a5b-a1b3-e515e31b6a2f-agent-109c42c9-0afd-4a5b-a1b3-e515e31b6a2f.json +0 -1
  99. claude_mpm-3.1.0/.claude/todos/1163a193-8464-4195-8281-6b875b5d987d-agent-1163a193-8464-4195-8281-6b875b5d987d.json +0 -1
  100. claude_mpm-3.1.0/.claude/todos/128d2198-5b02-422c-9531-f3396cbf0ce0-agent-128d2198-5b02-422c-9531-f3396cbf0ce0.json +0 -1
  101. claude_mpm-3.1.0/.claude/todos/16c51506-6afa-43aa-b199-da0c853f99a9-agent-16c51506-6afa-43aa-b199-da0c853f99a9.json +0 -1
  102. claude_mpm-3.1.0/.claude/todos/1736bdd7-71f4-49a0-934d-18e3aa5e0b43-agent-1736bdd7-71f4-49a0-934d-18e3aa5e0b43.json +0 -1
  103. claude_mpm-3.1.0/.claude/todos/1869eedc-69fc-4e81-a8ac-f57bd8e3946b-agent-1869eedc-69fc-4e81-a8ac-f57bd8e3946b.json +0 -1
  104. claude_mpm-3.1.0/.claude/todos/1a97dfda-12e5-4f13-8c8a-731373694a1c-agent-1a97dfda-12e5-4f13-8c8a-731373694a1c.json +0 -1
  105. claude_mpm-3.1.0/.claude/todos/283ac74b-5516-43f8-9548-24ded2b643b1-agent-283ac74b-5516-43f8-9548-24ded2b643b1.json +0 -1
  106. claude_mpm-3.1.0/.claude/todos/2ba08561-559e-4f64-9522-8d6c340e47da-agent-2ba08561-559e-4f64-9522-8d6c340e47da.json +0 -1
  107. claude_mpm-3.1.0/.claude/todos/31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9-agent-31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9.json +0 -1
  108. claude_mpm-3.1.0/.claude/todos/35194d51-6b8f-4ef5-b771-b0aa03f49a88-agent-35194d51-6b8f-4ef5-b771-b0aa03f49a88.json +0 -1
  109. claude_mpm-3.1.0/.claude/todos/3d1c0368-e607-4f47-b02d-7c0922cc0f25-agent-3d1c0368-e607-4f47-b02d-7c0922cc0f25.json +0 -1
  110. claude_mpm-3.1.0/.claude/todos/3d46c625-6377-4296-b9b3-22bc19341092-agent-3d46c625-6377-4296-b9b3-22bc19341092.json +0 -1
  111. claude_mpm-3.1.0/.claude/todos/40072791-2f2f-4743-b763-ec19321ccb0b-agent-40072791-2f2f-4743-b763-ec19321ccb0b.json +0 -1
  112. claude_mpm-3.1.0/.claude/todos/4157ab6d-5025-4862-82eb-5818c43c5a8c-agent-4157ab6d-5025-4862-82eb-5818c43c5a8c.json +0 -1
  113. claude_mpm-3.1.0/.claude/todos/458938f3-a317-46f3-8359-86f05ccacc7d-agent-458938f3-a317-46f3-8359-86f05ccacc7d.json +0 -1
  114. claude_mpm-3.1.0/.claude/todos/4dcf1510-e396-47bb-ac32-f62811ae9774-agent-4dcf1510-e396-47bb-ac32-f62811ae9774.json +0 -26
  115. claude_mpm-3.1.0/.claude/todos/4e71e501-1438-4c7d-8a89-18818b16ccb5-agent-4e71e501-1438-4c7d-8a89-18818b16ccb5.json +0 -1
  116. claude_mpm-3.1.0/.claude/todos/4eb9a1c4-92b0-44ee-9322-6ba0442efd42-agent-4eb9a1c4-92b0-44ee-9322-6ba0442efd42.json +0 -1
  117. claude_mpm-3.1.0/.claude/todos/4f57fa86-e804-4c8e-a0ff-196835df5bc9-agent-4f57fa86-e804-4c8e-a0ff-196835df5bc9.json +0 -1
  118. claude_mpm-3.1.0/.claude/todos/518e2724-687e-4ae3-bde9-582c8718695a-agent-518e2724-687e-4ae3-bde9-582c8718695a.json +0 -1
  119. claude_mpm-3.1.0/.claude/todos/51abf2eb-4e5a-4731-bd23-76cffe656a40-agent-51abf2eb-4e5a-4731-bd23-76cffe656a40.json +0 -1
  120. claude_mpm-3.1.0/.claude/todos/53c4beda-27f3-4247-ada4-f904320995ad-agent-53c4beda-27f3-4247-ada4-f904320995ad.json +0 -1
  121. claude_mpm-3.1.0/.claude/todos/56581e8b-07b1-4174-bf81-c280a3dee6b4-agent-56581e8b-07b1-4174-bf81-c280a3dee6b4.json +0 -1
  122. claude_mpm-3.1.0/.claude/todos/58848224-56e6-49f6-a4e5-c08f8f70c426-agent-58848224-56e6-49f6-a4e5-c08f8f70c426.json +0 -1
  123. claude_mpm-3.1.0/.claude/todos/58cf2d09-fd22-4a2e-8c74-c247ece6c802-agent-58cf2d09-fd22-4a2e-8c74-c247ece6c802.json +0 -8
  124. claude_mpm-3.1.0/.claude/todos/5bcc2e07-617c-4659-b82f-6b630ea891ff-agent-5bcc2e07-617c-4659-b82f-6b630ea891ff.json +0 -1
  125. claude_mpm-3.1.0/.claude/todos/5bf326e7-b61a-4d82-b483-94d5d7085755-agent-5bf326e7-b61a-4d82-b483-94d5d7085755.json +0 -1
  126. claude_mpm-3.1.0/.claude/todos/5dee78ec-d9ed-4484-b101-5490217fe423-agent-5dee78ec-d9ed-4484-b101-5490217fe423.json +0 -20
  127. claude_mpm-3.1.0/.claude/todos/5f6c7624-6a25-4ed9-be09-03fa3a70c4d8-agent-5f6c7624-6a25-4ed9-be09-03fa3a70c4d8.json +0 -1
  128. claude_mpm-3.1.0/.claude/todos/606431c0-6b47-4fb8-b386-132918a3aa0b-agent-606431c0-6b47-4fb8-b386-132918a3aa0b.json +0 -1
  129. claude_mpm-3.1.0/.claude/todos/6078e96f-e9a4-435f-8d2f-cf70346ebafe-agent-6078e96f-e9a4-435f-8d2f-cf70346ebafe.json +0 -20
  130. claude_mpm-3.1.0/.claude/todos/69e5a32b-bf2c-4264-93cd-6ac84b44ca9f-agent-69e5a32b-bf2c-4264-93cd-6ac84b44ca9f.json +0 -1
  131. claude_mpm-3.1.0/.claude/todos/6b729248-47b8-4657-ad7f-7f09fff21151-agent-6b729248-47b8-4657-ad7f-7f09fff21151.json +0 -1
  132. claude_mpm-3.1.0/.claude/todos/6d6970e8-f95f-468b-a8b8-3eacca8f1220-agent-6d6970e8-f95f-468b-a8b8-3eacca8f1220.json +0 -1
  133. claude_mpm-3.1.0/.claude/todos/6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b-agent-6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b.json +0 -1
  134. claude_mpm-3.1.0/.claude/todos/713e1bda-caa2-4cb9-a5a2-b7c6fec5776f-agent-713e1bda-caa2-4cb9-a5a2-b7c6fec5776f.json +0 -32
  135. claude_mpm-3.1.0/.claude/todos/71e6da9f-0dcd-4abd-ae8f-a5af695d9624-agent-71e6da9f-0dcd-4abd-ae8f-a5af695d9624.json +0 -1
  136. claude_mpm-3.1.0/.claude/todos/7653f086-93df-4423-98ce-640305e10823-agent-7653f086-93df-4423-98ce-640305e10823.json +0 -1
  137. claude_mpm-3.1.0/.claude/todos/76656734-acd3-411c-b333-f274dabae19c-agent-76656734-acd3-411c-b333-f274dabae19c.json +0 -44
  138. claude_mpm-3.1.0/.claude/todos/78150f02-9204-437c-9e12-9e800f3f73b9-agent-78150f02-9204-437c-9e12-9e800f3f73b9.json +0 -20
  139. claude_mpm-3.1.0/.claude/todos/7dda0a32-2834-4a47-9734-9ae9ca5b1a31-agent-7dda0a32-2834-4a47-9734-9ae9ca5b1a31.json +0 -1
  140. claude_mpm-3.1.0/.claude/todos/84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec-agent-84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec.json +0 -1
  141. claude_mpm-3.1.0/.claude/todos/86ce0d12-f82e-49b2-b553-2cd8a7e188a3-agent-86ce0d12-f82e-49b2-b553-2cd8a7e188a3.json +0 -1
  142. claude_mpm-3.1.0/.claude/todos/87626114-6cb1-43ef-978a-bb35f612e4eb-agent-87626114-6cb1-43ef-978a-bb35f612e4eb.json +0 -1
  143. claude_mpm-3.1.0/.claude/todos/880d3ea5-649e-449e-88bc-664a291ec338-agent-880d3ea5-649e-449e-88bc-664a291ec338.json +0 -38
  144. claude_mpm-3.1.0/.claude/todos/8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e-agent-8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e.json +0 -1
  145. claude_mpm-3.1.0/.claude/todos/8f998b9e-5f18-4ade-bd69-74c95a210f6a-agent-8f998b9e-5f18-4ade-bd69-74c95a210f6a.json +0 -1
  146. claude_mpm-3.1.0/.claude/todos/929364bd-aa69-4831-850e-37f8ab63803d-agent-929364bd-aa69-4831-850e-37f8ab63803d.json +0 -1
  147. claude_mpm-3.1.0/.claude/todos/95479b6c-cfbf-4bb7-9e00-b95a0b385775-agent-95479b6c-cfbf-4bb7-9e00-b95a0b385775.json +0 -1
  148. claude_mpm-3.1.0/.claude/todos/9628cc3a-355a-48f0-ab54-c28ac2e05dfe-agent-9628cc3a-355a-48f0-ab54-c28ac2e05dfe.json +0 -1
  149. claude_mpm-3.1.0/.claude/todos/a877fe3a-7057-49a9-9726-239ddb3421ee-agent-a877fe3a-7057-49a9-9726-239ddb3421ee.json +0 -1
  150. claude_mpm-3.1.0/.claude/todos/a9136d1b-6e01-4879-972f-5fcdde5e08d7-agent-a9136d1b-6e01-4879-972f-5fcdde5e08d7.json +0 -1
  151. claude_mpm-3.1.0/.claude/todos/b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003-agent-b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003.json +0 -1
  152. claude_mpm-3.1.0/.claude/todos/b1206d13-f0ec-4f53-a746-a845732fefd7-agent-b1206d13-f0ec-4f53-a746-a845732fefd7.json +0 -1
  153. claude_mpm-3.1.0/.claude/todos/b61be2e4-7de3-4e1b-b636-2232190ffc5c-agent-b61be2e4-7de3-4e1b-b636-2232190ffc5c.json +0 -1
  154. claude_mpm-3.1.0/.claude/todos/b80ad406-64d1-4a6c-b781-15496265fae0-agent-b80ad406-64d1-4a6c-b781-15496265fae0.json +0 -1
  155. claude_mpm-3.1.0/.claude/todos/babc6eac-d7d6-498a-8176-e09e00423a12-agent-babc6eac-d7d6-498a-8176-e09e00423a12.json +0 -1
  156. claude_mpm-3.1.0/.claude/todos/bf4b7700-9630-466e-afb0-8904fbddac42-agent-bf4b7700-9630-466e-afb0-8904fbddac42.json +0 -1
  157. claude_mpm-3.1.0/.claude/todos/c2189d0d-9c2b-400a-bf7c-3989ef6cd37d-agent-c2189d0d-9c2b-400a-bf7c-3989ef6cd37d.json +0 -1
  158. claude_mpm-3.1.0/.claude/todos/c35ee595-142f-454b-bb36-dc434d4a80a6-agent-c35ee595-142f-454b-bb36-dc434d4a80a6.json +0 -1
  159. claude_mpm-3.1.0/.claude/todos/c629949d-4641-45ff-81d3-d7c8f353da81-agent-c629949d-4641-45ff-81d3-d7c8f353da81.json +0 -1
  160. claude_mpm-3.1.0/.claude/todos/c8cecbec-a3bb-4507-98a4-c590a4e919b2-agent-c8cecbec-a3bb-4507-98a4-c590a4e919b2.json +0 -38
  161. claude_mpm-3.1.0/.claude/todos/cce78c00-7309-4bc4-802c-3bad75be09cc-agent-cce78c00-7309-4bc4-802c-3bad75be09cc.json +0 -1
  162. claude_mpm-3.1.0/.claude/todos/d55a3a18-0143-4401-ba56-ea630982c105-agent-d55a3a18-0143-4401-ba56-ea630982c105.json +0 -32
  163. claude_mpm-3.1.0/.claude/todos/d881887b-49bc-4fda-acda-c866681c8f13-agent-d881887b-49bc-4fda-acda-c866681c8f13.json +0 -20
  164. claude_mpm-3.1.0/.claude/todos/db3e76fb-7b9d-4f1c-8822-cce448fdf9e6-agent-db3e76fb-7b9d-4f1c-8822-cce448fdf9e6.json +0 -1
  165. claude_mpm-3.1.0/.claude/todos/dc7344a6-cd2e-4f20-a945-deb2e39f4fbc-agent-dc7344a6-cd2e-4f20-a945-deb2e39f4fbc.json +0 -1
  166. claude_mpm-3.1.0/.claude/todos/eb12ed58-94e3-490a-b8c8-b2912fa77fbe-agent-eb12ed58-94e3-490a-b8c8-b2912fa77fbe.json +0 -1
  167. claude_mpm-3.1.0/.claude/todos/ef4c285d-d79b-4c6e-a458-49cb26bf3c0a-agent-ef4c285d-d79b-4c6e-a458-49cb26bf3c0a.json +0 -1
  168. claude_mpm-3.1.0/.claude/todos/f295b25f-51d8-4fff-b71d-aa18d7028466-agent-f295b25f-51d8-4fff-b71d-aa18d7028466.json +0 -1
  169. claude_mpm-3.1.0/.claude/todos/f2a683d3-4d16-4c94-bf52-03efaf45f7f1-agent-f2a683d3-4d16-4c94-bf52-03efaf45f7f1.json +0 -1
  170. claude_mpm-3.1.0/.claude/todos/f536b1f5-879c-4236-9718-599337ffc815-agent-f536b1f5-879c-4236-9718-599337ffc815.json +0 -1
  171. claude_mpm-3.1.0/.claude/todos/fabcbe8a-6751-454b-a240-e9393391e2e9-agent-fabcbe8a-6751-454b-a240-e9393391e2e9.json +0 -1
  172. claude_mpm-3.1.0/.claude/todos/fdebc52b-3519-44c8-a3af-ce87f39272cd-agent-fdebc52b-3519-44c8-a3af-ce87f39272cd.json +0 -1
  173. claude_mpm-3.1.0/.claude/todos/fe57db22-5ef9-4522-9423-5c20dd665ef6-agent-fe57db22-5ef9-4522-9423-5c20dd665ef6.json +0 -1
  174. claude_mpm-3.1.0/.claude-mpm/.claude.json +0 -20
  175. claude_mpm-3.1.0/.claude-mpm/.claude.json.backup +0 -20
  176. claude_mpm-3.1.0/.claude-mpm/.gitignore +0 -13
  177. claude_mpm-3.1.0/.claude-mpm/README.md +0 -17
  178. claude_mpm-3.1.0/.claude-mpm/agents/README.md +0 -12
  179. claude_mpm-3.1.0/.claude-mpm/agents/poc-engineer.md +0 -30
  180. claude_mpm-3.1.0/.claude-mpm/agents/poc-qa.md +0 -29
  181. claude_mpm-3.1.0/.claude-mpm/agents/poc-researcher.md +0 -29
  182. claude_mpm-3.1.0/.claude-mpm/agents/test-agent.md +0 -8
  183. claude_mpm-3.1.0/.claude-mpm/agents/test-agent.yaml +0 -8
  184. claude_mpm-3.1.0/.claude-mpm/config/project.json +0 -11
  185. claude_mpm-3.1.0/.claude-mpm/projects/-Users-masa-Projects-claude-mpm/1f2d5a1d-a2fd-4c26-a1b2-3822f3a5fbf5.jsonl +0 -2
  186. claude_mpm-3.1.0/.claude-mpm/projects/-Users-masa-Projects-claude-mpm/9217ce88-3ece-41db-adc8-9fc8532c6314.jsonl +0 -3
  187. claude_mpm-3.1.0/.claude-mpm/shell-snapshots/snapshot-zsh-1753447830017-dejufl.sh +0 -4511
  188. claude_mpm-3.1.0/.claude-mpm/shell-snapshots/snapshot-zsh-1753447830478-zr6tpi.sh +0 -4511
  189. claude_mpm-3.1.0/.claude-mpm/stats/README.md +0 -8
  190. claude_mpm-3.1.0/.claude-mpm/statsig/statsig.cached.evaluations.85901da9f9 +0 -1
  191. claude_mpm-3.1.0/.claude-mpm/statsig/statsig.last_modified_time.evaluations +0 -1
  192. claude_mpm-3.1.0/.claude-mpm/statsig/statsig.session_id.2656274335 +0 -1
  193. claude_mpm-3.1.0/.claude-mpm/statsig/statsig.stable_id.2656274335 +0 -1
  194. claude_mpm-3.1.0/.claude-mpm/todos/1f2d5a1d-a2fd-4c26-a1b2-3822f3a5fbf5-agent-1f2d5a1d-a2fd-4c26-a1b2-3822f3a5fbf5.json +0 -1
  195. claude_mpm-3.1.0/.claude-mpm/todos/9217ce88-3ece-41db-adc8-9fc8532c6314-agent-9217ce88-3ece-41db-adc8-9fc8532c6314.json +0 -1
  196. claude_mpm-3.1.0/.claude-pm/config/project.json +0 -6
  197. claude_mpm-3.1.0/.githooks/pre-commit +0 -50
  198. claude_mpm-3.1.0/.gitignore +0 -43
  199. claude_mpm-3.1.0/.npmignore +0 -50
  200. claude_mpm-3.1.0/.python-version +0 -1
  201. claude_mpm-3.1.0/.trackdown.yaml +0 -30
  202. claude_mpm-3.1.0/CHANGELOG.md +0 -305
  203. claude_mpm-3.1.0/INSTALL.md +0 -204
  204. claude_mpm-3.1.0/Makefile +0 -258
  205. claude_mpm-3.1.0/QA_REPORT_FINAL.md +0 -147
  206. claude_mpm-3.1.0/QA_REPORT_STATUS_RESOLUTION.md +0 -196
  207. claude_mpm-3.1.0/README.npm.md +0 -107
  208. claude_mpm-3.1.0/VERSION +0 -1
  209. claude_mpm-3.1.0/bin/claude-mpm +0 -89
  210. claude_mpm-3.1.0/bin/claude-mpm-hooks +0 -106
  211. claude_mpm-3.1.0/bin/ticket +0 -60
  212. claude_mpm-3.1.0/config/mcp_services.yaml +0 -117
  213. claude_mpm-3.1.0/docker/Dockerfile +0 -58
  214. claude_mpm-3.1.0/docker/Dockerfile.npm +0 -51
  215. claude_mpm-3.1.0/docker/Dockerfile.npm-local +0 -58
  216. claude_mpm-3.1.0/docker/Dockerfile.npm-simple +0 -62
  217. claude_mpm-3.1.0/docker/Dockerfile.npm-test +0 -53
  218. claude_mpm-3.1.0/docker/Dockerfile.pip +0 -58
  219. claude_mpm-3.1.0/examples/awesome-patterns/enhanced_claude_md_example.md +0 -145
  220. claude_mpm-3.1.0/examples/awesome-patterns/slash_command_example.md +0 -322
  221. claude_mpm-3.1.0/examples/awesome-patterns/validation_first_example.py +0 -295
  222. claude_mpm-3.1.0/examples/dependency_injection_demo.py +0 -190
  223. claude_mpm-3.1.0/examples/json_rpc_hooks_demo.py +0 -109
  224. claude_mpm-3.1.0/examples/todo_prefix_hook_example.py +0 -176
  225. claude_mpm-3.1.0/examples/todo_prefix_hook_integration.py +0 -239
  226. claude_mpm-3.1.0/install.sh +0 -141
  227. claude_mpm-3.1.0/install_dev.sh +0 -74
  228. claude_mpm-3.1.0/npm-bin/claude-mpm.js +0 -386
  229. claude_mpm-3.1.0/package.json +0 -49
  230. claude_mpm-3.1.0/qa_report_workflow_implementation.json +0 -51
  231. claude_mpm-3.1.0/qa_report_workflow_implementation_final.json +0 -144
  232. claude_mpm-3.1.0/run_qa_tests.py +0 -593
  233. claude_mpm-3.1.0/run_qa_tests_fixed.py +0 -956
  234. claude_mpm-3.1.0/scripts/README.md +0 -112
  235. claude_mpm-3.1.0/scripts/add_agent_versioning.py +0 -41
  236. claude_mpm-3.1.0/scripts/analyze_framework_loaders.py +0 -32
  237. claude_mpm-3.1.0/scripts/check_version_sync.py +0 -108
  238. claude_mpm-3.1.0/scripts/claude-mpm +0 -145
  239. claude_mpm-3.1.0/scripts/cleanup_logs.py +0 -256
  240. claude_mpm-3.1.0/scripts/consolidate_services.py +0 -38
  241. claude_mpm-3.1.0/scripts/convert_agents_to_yaml.py +0 -186
  242. claude_mpm-3.1.0/scripts/debug_agent_loading.py +0 -102
  243. claude_mpm-3.1.0/scripts/debug_agent_structure.py +0 -66
  244. claude_mpm-3.1.0/scripts/debug_capabilities_generation.py +0 -111
  245. claude_mpm-3.1.0/scripts/debug_deployment_logic.py +0 -52
  246. claude_mpm-3.1.0/scripts/debug_hook_behavior.py +0 -62
  247. claude_mpm-3.1.0/scripts/debug_hook_behavior2.py +0 -66
  248. claude_mpm-3.1.0/scripts/debug_migration.py +0 -51
  249. claude_mpm-3.1.0/scripts/debug_research_version.py +0 -47
  250. claude_mpm-3.1.0/scripts/debug_subprocess.py +0 -40
  251. claude_mpm-3.1.0/scripts/demo/subprocess_before_after.py +0 -234
  252. claude_mpm-3.1.0/scripts/demo/subprocess_improvements_demo.py +0 -407
  253. claude_mpm-3.1.0/scripts/demo_hook_behavior.sh +0 -53
  254. claude_mpm-3.1.0/scripts/deploy_local.sh +0 -443
  255. claude_mpm-3.1.0/scripts/fix_all_fallback_imports.py +0 -68
  256. claude_mpm-3.1.0/scripts/fix_all_imports.py +0 -241
  257. claude_mpm-3.1.0/scripts/fix_fallback_imports.py +0 -58
  258. claude_mpm-3.1.0/scripts/install_hooks.py +0 -172
  259. claude_mpm-3.1.0/scripts/interactive_wrapper.py +0 -109
  260. claude_mpm-3.1.0/scripts/launch_with_agents.py +0 -191
  261. claude_mpm-3.1.0/scripts/manage_version.py +0 -479
  262. claude_mpm-3.1.0/scripts/migrate_agents_to_new_schema.py +0 -378
  263. claude_mpm-3.1.0/scripts/migrate_logging_imports.py +0 -99
  264. claude_mpm-3.1.0/scripts/migrate_to_json_rpc_hooks.py +0 -164
  265. claude_mpm-3.1.0/scripts/monitor_mcp_services.py +0 -453
  266. claude_mpm-3.1.0/scripts/mpm_test.py +0 -11
  267. claude_mpm-3.1.0/scripts/postinstall.js +0 -106
  268. claude_mpm-3.1.0/scripts/publish.sh +0 -98
  269. claude_mpm-3.1.0/scripts/release.py +0 -876
  270. claude_mpm-3.1.0/scripts/remove_remaining_ticketing.py +0 -150
  271. claude_mpm-3.1.0/scripts/remove_ticketing_references.py +0 -82
  272. claude_mpm-3.1.0/scripts/run_all_tests.sh +0 -30
  273. claude_mpm-3.1.0/scripts/run_e2e_tests.sh +0 -48
  274. claude_mpm-3.1.0/scripts/setup_local_mcp.sh +0 -457
  275. claude_mpm-3.1.0/scripts/show_pm_system_prompt.py +0 -50
  276. claude_mpm-3.1.0/scripts/standardize_imports.py +0 -281
  277. claude_mpm-3.1.0/scripts/sync_tickets_github.sh +0 -109
  278. claude_mpm-3.1.0/scripts/test_agent_capabilities_usage.py +0 -167
  279. claude_mpm-3.1.0/scripts/test_agent_compatibility.py +0 -48
  280. claude_mpm-3.1.0/scripts/test_agent_content_verification.py +0 -85
  281. claude_mpm-3.1.0/scripts/test_agent_deployment.py +0 -127
  282. claude_mpm-3.1.0/scripts/test_agent_deployment_integration.py +0 -154
  283. claude_mpm-3.1.0/scripts/test_agent_deployment_validation.py +0 -254
  284. claude_mpm-3.1.0/scripts/test_agent_e2e_quick.py +0 -76
  285. claude_mpm-3.1.0/scripts/test_agent_functionality_complete.py +0 -402
  286. claude_mpm-3.1.0/scripts/test_agent_loader.py +0 -153
  287. claude_mpm-3.1.0/scripts/test_agent_loader_edge_cases.py +0 -182
  288. claude_mpm-3.1.0/scripts/test_agent_loader_integration.py +0 -112
  289. claude_mpm-3.1.0/scripts/test_agent_loading.py +0 -42
  290. claude_mpm-3.1.0/scripts/test_agent_migration.py +0 -166
  291. claude_mpm-3.1.0/scripts/test_agent_name_consistency.py +0 -282
  292. claude_mpm-3.1.0/scripts/test_agent_name_formats.py +0 -82
  293. claude_mpm-3.1.0/scripts/test_agent_schema_system.py +0 -191
  294. claude_mpm-3.1.0/scripts/test_agent_validation_security.py +0 -208
  295. claude_mpm-3.1.0/scripts/test_agent_version_display.py +0 -12
  296. claude_mpm-3.1.0/scripts/test_agents_command.py +0 -70
  297. claude_mpm-3.1.0/scripts/test_basic_functionality.py +0 -127
  298. claude_mpm-3.1.0/scripts/test_deployment_dynamic_capabilities.py +0 -160
  299. claude_mpm-3.1.0/scripts/test_deployment_manager_capabilities.py +0 -135
  300. claude_mpm-3.1.0/scripts/test_dynamic_capabilities.py +0 -156
  301. claude_mpm-3.1.0/scripts/test_dynamic_capabilities_comprehensive.py +0 -467
  302. claude_mpm-3.1.0/scripts/test_edge_cases.py +0 -211
  303. claude_mpm-3.1.0/scripts/test_file_access_implementation.py +0 -153
  304. claude_mpm-3.1.0/scripts/test_hello_world.py +0 -76
  305. claude_mpm-3.1.0/scripts/test_helloworld_expanded.js +0 -67
  306. claude_mpm-3.1.0/scripts/test_helloworld_hook.js +0 -68
  307. claude_mpm-3.1.0/scripts/test_helloworld_passthrough.js +0 -67
  308. claude_mpm-3.1.0/scripts/test_helloworld_python_hook.py +0 -66
  309. claude_mpm-3.1.0/scripts/test_helloworld_shell_hook.sh +0 -29
  310. claude_mpm-3.1.0/scripts/test_hook_direct.py +0 -68
  311. claude_mpm-3.1.0/scripts/test_hook_logging.py +0 -154
  312. claude_mpm-3.1.0/scripts/test_hook_security.py +0 -151
  313. claude_mpm-3.1.0/scripts/test_integration.py +0 -161
  314. claude_mpm-3.1.0/scripts/test_integration_performance.py +0 -279
  315. claude_mpm-3.1.0/scripts/test_mcp_integration.sh +0 -72
  316. claude_mpm-3.1.0/scripts/test_mcp_monitor.py +0 -105
  317. claude_mpm-3.1.0/scripts/test_mcp_solution.py +0 -437
  318. claude_mpm-3.1.0/scripts/test_migration_flow.py +0 -47
  319. claude_mpm-3.1.0/scripts/test_mpm_agents_integration.py +0 -159
  320. claude_mpm-3.1.0/scripts/test_mpm_command.py +0 -106
  321. claude_mpm-3.1.0/scripts/test_no_agents.py +0 -62
  322. claude_mpm-3.1.0/scripts/test_npm_install.sh +0 -56
  323. claude_mpm-3.1.0/scripts/test_npm_install_simple.sh +0 -83
  324. claude_mpm-3.1.0/scripts/test_performance.py +0 -117
  325. claude_mpm-3.1.0/scripts/test_pm_instructions.py +0 -100
  326. claude_mpm-3.1.0/scripts/test_qa_script_access.py +0 -107
  327. claude_mpm-3.1.0/scripts/test_qa_script_creation.py +0 -121
  328. claude_mpm-3.1.0/scripts/test_real_deployment.py +0 -119
  329. claude_mpm-3.1.0/scripts/test_real_deployment_capabilities.py +0 -192
  330. claude_mpm-3.1.0/scripts/test_redeployment.py +0 -56
  331. claude_mpm-3.1.0/scripts/test_release_enhancements.py +0 -140
  332. claude_mpm-3.1.0/scripts/test_runtime_capabilities.py +0 -93
  333. claude_mpm-3.1.0/scripts/test_runtime_integration.py +0 -121
  334. claude_mpm-3.1.0/scripts/test_schema_validation.py +0 -94
  335. claude_mpm-3.1.0/scripts/test_semantic_versioning.py +0 -82
  336. claude_mpm-3.1.0/scripts/test_simple_runner_logging.py +0 -155
  337. claude_mpm-3.1.0/scripts/test_subagent_demo.py +0 -137
  338. claude_mpm-3.1.0/scripts/test_system_health.py +0 -180
  339. claude_mpm-3.1.0/scripts/test_todo_hook.py +0 -92
  340. claude_mpm-3.1.0/scripts/test_todo_task_integration.py +0 -160
  341. claude_mpm-3.1.0/scripts/test_version_comparison.py +0 -44
  342. claude_mpm-3.1.0/scripts/test_version_detection.py +0 -71
  343. claude_mpm-3.1.0/scripts/test_version_management.py +0 -73
  344. claude_mpm-3.1.0/scripts/test_version_migration.py +0 -113
  345. claude_mpm-3.1.0/scripts/tests/run_tests.py +0 -38
  346. claude_mpm-3.1.0/scripts/tests/run_tests_updated.py +0 -47
  347. claude_mpm-3.1.0/scripts/tests/test_agent_integration.py +0 -172
  348. claude_mpm-3.1.0/scripts/tests/test_claude_direct.py +0 -98
  349. claude_mpm-3.1.0/scripts/tests/test_hello_world.py +0 -75
  350. claude_mpm-3.1.0/scripts/tests/test_interactive.py +0 -73
  351. claude_mpm-3.1.0/scripts/tests/test_logging.py +0 -73
  352. claude_mpm-3.1.0/scripts/tests/test_orchestration.py +0 -130
  353. claude_mpm-3.1.0/scripts/tests/test_pexpect.py +0 -42
  354. claude_mpm-3.1.0/scripts/tests/test_pexpect_install.py +0 -30
  355. claude_mpm-3.1.0/scripts/tests/test_subprocess.py +0 -172
  356. claude_mpm-3.1.0/scripts/trace_deployment.py +0 -62
  357. claude_mpm-3.1.0/scripts/validate_agent_configuration.py +0 -268
  358. claude_mpm-3.1.0/scripts/validate_agent_schema.py +0 -63
  359. claude_mpm-3.1.0/scripts/verify_imports.py +0 -137
  360. claude_mpm-3.1.0/src/claude_mpm/__main__.py +0 -14
  361. claude_mpm-3.1.0/src/claude_mpm/agents/agent-template.yaml +0 -83
  362. claude_mpm-3.1.0/src/claude_mpm/cli_main.py +0 -13
  363. claude_mpm-3.1.0/src/claude_mpm/cli_module/refactoring_guide.md +0 -253
  364. claude_mpm-3.1.0/src/claude_mpm/core/agent_registry.py.bak +0 -312
  365. claude_mpm-3.1.0/src/claude_mpm/core/base_service.py.bak +0 -406
  366. claude_mpm-3.1.0/src/claude_mpm/hooks/README.md +0 -97
  367. claude_mpm-3.1.0/src/claude_mpm/orchestration/SUBPROCESS_DESIGN.md +0 -66
  368. claude_mpm-3.1.0/src/claude_mpm/schemas/README_SECURITY.md +0 -92
  369. claude_mpm-3.1.0/src/claude_mpm/schemas/agent_schema.json +0 -395
  370. claude_mpm-3.1.0/src/claude_mpm/schemas/agent_schema_documentation.md +0 -181
  371. claude_mpm-3.1.0/src/claude_mpm/schemas/agent_schema_security_notes.md +0 -165
  372. claude_mpm-3.1.0/src/claude_mpm/schemas/examples/standard_workflow.json +0 -505
  373. claude_mpm-3.1.0/src/claude_mpm/schemas/ticket_workflow_documentation.md +0 -482
  374. claude_mpm-3.1.0/src/claude_mpm/schemas/ticket_workflow_schema.json +0 -590
  375. claude_mpm-3.1.0/src/claude_mpm/services/framework_claude_md_generator/README.md +0 -92
  376. claude_mpm-3.1.0/src/claude_mpm/services/parent_directory_manager/README.md +0 -83
  377. claude_mpm-3.1.0/src/claude_mpm/services/version_control/VERSION +0 -1
  378. claude_mpm-3.1.0/src/claude_mpm.egg-info/SOURCES.txt +0 -612
  379. claude_mpm-3.1.0/test-reports/integration-tests.xml +0 -31
  380. claude_mpm-3.1.0/test-reports/test-report-20250728-102831.json +0 -26
  381. claude_mpm-3.1.0/test-reports/test-summary-20250728-102831.txt +0 -32
  382. claude_mpm-3.1.0/test-reports/unit-tests.xml +0 -1
  383. claude_mpm-3.1.0/test_e2e_workflow_complete.py +0 -477
  384. claude_mpm-3.1.0/test_edge_cases.py +0 -202
  385. claude_mpm-3.1.0/test_workflow_implementation.py +0 -175
  386. claude_mpm-3.1.0/tickets/epics/EP-0001.md +0 -71
  387. claude_mpm-3.1.0/tickets/epics/EP-0002-subagent-pivot.md +0 -197
  388. claude_mpm-3.1.0/tickets/epics/EP-0002.md +0 -49
  389. claude_mpm-3.1.0/tickets/epics/EP-0003.md +0 -57
  390. claude_mpm-3.1.0/tickets/epics/EP-0004.md +0 -56
  391. claude_mpm-3.1.0/tickets/issues/CONVERSION_MAPPING.md +0 -23
  392. claude_mpm-3.1.0/tickets/issues/ISS-0001.md +0 -55
  393. claude_mpm-3.1.0/tickets/issues/ISS-0002.md +0 -54
  394. claude_mpm-3.1.0/tickets/issues/ISS-0003.md +0 -55
  395. claude_mpm-3.1.0/tickets/issues/ISS-0004.md +0 -54
  396. claude_mpm-3.1.0/tickets/issues/ISS-0005.md +0 -55
  397. claude_mpm-3.1.0/tickets/issues/ISS-0006.md +0 -55
  398. claude_mpm-3.1.0/tickets/issues/ISS-0007.md +0 -55
  399. claude_mpm-3.1.0/tickets/issues/ISS-0008.md +0 -54
  400. claude_mpm-3.1.0/tickets/issues/ISS-0009.md +0 -55
  401. claude_mpm-3.1.0/tickets/issues/ISS-0010.md +0 -54
  402. claude_mpm-3.1.0/tickets/issues/ISS-0011.md +0 -53
  403. claude_mpm-3.1.0/tickets/issues/ISS-0012.md +0 -52
  404. claude_mpm-3.1.0/tickets/issues/ISS-0013.md +0 -52
  405. claude_mpm-3.1.0/tickets/issues/ISS-0014.md +0 -52
  406. claude_mpm-3.1.0/tickets/issues/ISS-0015.md +0 -52
  407. claude_mpm-3.1.0/tickets/issues/ISS-0016.md +0 -52
  408. claude_mpm-3.1.0/tickets/issues/ISS-0017.md +0 -52
  409. claude_mpm-3.1.0/tickets/issues/ISS-0018.md +0 -52
  410. claude_mpm-3.1.0/tickets/issues/ISS-0019.md +0 -52
  411. claude_mpm-3.1.0/tickets/issues/ISS-0020.md +0 -52
  412. claude_mpm-3.1.0/tickets/issues/ISS-0021.md +0 -52
  413. claude_mpm-3.1.0/tickets/issues/ISS-0022.md +0 -52
  414. claude_mpm-3.1.0/tickets/issues/ISS-0023.md +0 -53
  415. claude_mpm-3.1.0/tickets/issues/ISS-0024.md +0 -53
  416. claude_mpm-3.1.0/tickets/issues/ISS-0025.md +0 -54
  417. claude_mpm-3.1.0/tickets/issues/ISS-0026.md +0 -53
  418. claude_mpm-3.1.0/tickets/issues/ISS-0027.md +0 -53
  419. claude_mpm-3.1.0/tickets/issues/ISS-0028.md +0 -54
  420. claude_mpm-3.1.0/tickets/issues/ISS-0029.md +0 -53
  421. claude_mpm-3.1.0/tickets/issues/ISS-0030.md +0 -54
  422. claude_mpm-3.1.0/tickets/issues/ISS-0031.md +0 -54
  423. claude_mpm-3.1.0/tickets/issues/ISS-0032.md +0 -53
  424. claude_mpm-3.1.0/tickets/tasks/TSK-0001.md +0 -41
  425. claude_mpm-3.1.0/tickets/tasks/TSK-0002.md +0 -47
  426. claude_mpm-3.1.0/tickets/tasks/TSK-0003.md +0 -86
  427. claude_mpm-3.1.0/tickets/tasks/TSK-0004.md +0 -84
  428. claude_mpm-3.1.0/tickets/tasks/TSK-0005.md +0 -59
  429. claude_mpm-3.1.0/tickets/tasks/TSK-0006.md +0 -45
  430. claude_mpm-3.1.0/tickets/tasks/TSK-0007.md +0 -44
  431. claude_mpm-3.1.0/tickets/tasks/TSK-0008.md +0 -44
  432. claude_mpm-3.1.0/tickets/tasks/TSK-0009.md +0 -44
  433. claude_mpm-3.1.0/tickets/tasks/TSK-0011.md +0 -44
  434. claude_mpm-3.1.0/tickets/tasks/TSK-0016.md +0 -44
  435. claude_mpm-3.1.0/tickets/tasks/TSK-0017.md +0 -41
  436. claude_mpm-3.1.0/tickets/tasks/TSK-0018.md +0 -41
  437. claude_mpm-3.1.0/tickets/tasks/TSK-0019.md +0 -42
  438. claude_mpm-3.1.0/tickets/tasks/TSK-0020.md +0 -41
  439. claude_mpm-3.1.0/tickets/tasks/TSK-0021.md +0 -41
  440. claude_mpm-3.1.0/tickets/tasks/TSK-0022.md +0 -41
  441. claude_mpm-3.1.0/tickets/tasks/TSK-0023.md +0 -42
  442. claude_mpm-3.1.0/tickets/tasks/TSK-0024.md +0 -41
  443. claude_mpm-3.1.0/tickets/tasks/TSK-0025.md +0 -41
  444. claude_mpm-3.1.0/tickets/tasks/TSK-0026.md +0 -41
  445. claude_mpm-3.1.0/tickets/tasks/TSK-0027.md +0 -41
  446. claude_mpm-3.1.0/tickets/tasks/TSK-0028.md +0 -42
  447. claude_mpm-3.1.0/tickets/tasks/TSK-0029.md +0 -42
  448. claude_mpm-3.1.0/tickets/tasks/TSK-0030.md +0 -42
  449. claude_mpm-3.1.0/tickets/tasks/TSK-0031.md +0 -219
  450. claude_mpm-3.1.0/tickets/tasks/TSK-0032.md +0 -249
  451. claude_mpm-3.1.0/tickets/tasks/TSK-0033.md +0 -129
  452. claude_mpm-3.1.0/tickets/tasks/TSK-0034.md +0 -122
  453. claude_mpm-3.1.0/tickets/tasks/TSK-0035.md +0 -129
  454. claude_mpm-3.1.0/tickets/tasks/TSK-0036.md +0 -152
  455. claude_mpm-3.1.0/tickets/tasks/TSK-0037.md +0 -42
  456. claude_mpm-3.1.0/tickets/tasks/TSK-0038.md +0 -42
  457. claude_mpm-3.1.0/tickets/tasks/TSK-0039.md +0 -42
  458. claude_mpm-3.1.0/tickets/tasks/TSK-0040.md +0 -64
  459. claude_mpm-3.1.0/tickets/tasks/TSK-0041.md +0 -63
  460. claude_mpm-3.1.0/tickets/tasks/TSK-0042.md +0 -71
  461. claude_mpm-3.1.0/tickets/tasks/TSK-0043.md +0 -81
  462. claude_mpm-3.1.0/tickets/tasks/TSK-0044.md +0 -88
  463. claude_mpm-3.1.0/tickets/tasks/TSK-0045.md +0 -42
  464. claude_mpm-3.1.0/tickets/tasks/TSK-0046.md +0 -126
  465. claude_mpm-3.1.0/uninstall.sh +0 -73
  466. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/LICENSE +0 -0
  467. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/MANIFEST.in +0 -0
  468. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/README.md +0 -0
  469. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/claude-mpm +0 -0
  470. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/pyproject.toml +0 -0
  471. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/requirements.txt +0 -0
  472. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/scripts/ticket +0 -0
  473. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/setup.cfg +0 -0
  474. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/setup.py +0 -0
  475. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/__init__.py +0 -0
  476. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  477. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
  478. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/__init__.py +0 -0
  479. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/agent_loader.py +0 -0
  480. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  481. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/agents_metadata.py +0 -0
  482. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/base_agent.json +0 -0
  483. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/base_agent_loader.py +0 -0
  484. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
  485. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/system_agent_config.py +0 -0
  486. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/__init__.py +0 -0
  487. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  488. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  489. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  490. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  491. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  492. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  493. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  494. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  495. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
  496. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/documentation.json +0 -0
  497. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/engineer.json +0 -0
  498. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/ops.json +0 -0
  499. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/qa.json +0 -0
  500. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/research.json +0 -0
  501. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/security.json +0 -0
  502. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/version_control.json +0 -0
  503. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json +0 -0
  504. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/__init__.py +0 -0
  505. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/args.py +0 -0
  506. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/commands.py +0 -0
  507. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/migration_example.py +0 -0
  508. /claude_mpm-3.1.0/src/claude_mpm/cli.py → /claude_mpm-3.1.2/src/claude_mpm/cli_old.py +0 -0
  509. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/config/__init__.py +0 -0
  510. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/constants.py +0 -0
  511. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/__init__.py +0 -0
  512. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  513. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/agent_registry.py +0 -0
  514. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/agent_session_manager.py +0 -0
  515. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/base_service.py +0 -0
  516. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/config.py +0 -0
  517. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/config_aliases.py +0 -0
  518. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/container.py +0 -0
  519. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/factories.py +0 -0
  520. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/framework_loader.py +0 -0
  521. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/injectable_service.py +0 -0
  522. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/interfaces.py +0 -0
  523. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/logger.py +0 -0
  524. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  525. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/mixins.py +0 -0
  526. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/service_registry.py +0 -0
  527. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/session_manager.py +0 -0
  528. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/core/tool_access_control.py +0 -0
  529. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/generators/__init__.py +0 -0
  530. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  531. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/__init__.py +0 -0
  532. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/base_hook.py +0 -0
  533. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/__init__.py +0 -0
  534. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/logging_hook_example.py +0 -0
  535. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/mpm_command_hook.py +0 -0
  536. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/post_delegation_hook_example.py +0 -0
  537. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/pre_delegation_hook_example.py +0 -0
  538. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/submit_hook_example.py +0 -0
  539. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/ticket_extraction_hook_example.py +0 -0
  540. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/todo_agent_prefix_hook.py +0 -0
  541. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/workflow_start_hook.py +0 -0
  542. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  543. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  544. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  545. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  546. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  547. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/init.py +0 -0
  548. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/__init__.py +0 -0
  549. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/direct_orchestrator.py +0 -0
  550. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/factory.py +0 -0
  551. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/hook_enabled_orchestrator.py +0 -0
  552. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/hook_integration_example.py +0 -0
  553. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/interactive_subprocess_orchestrator.py +0 -0
  554. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/orchestrator.py +0 -0
  555. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/pexpect_orchestrator.py +0 -0
  556. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/pty_orchestrator.py +0 -0
  557. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/simple_orchestrator.py +0 -0
  558. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/subprocess_orchestrator.py +0 -0
  559. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/system_prompt_orchestrator.py +0 -0
  560. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/wrapper_orchestrator.py +0 -0
  561. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/schemas/workflow_validator.py +0 -0
  562. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/scripts/__init__.py +0 -0
  563. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/scripts/ticket.py +0 -0
  564. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/__init__.py +0 -0
  565. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_capabilities_generator.py +0 -0
  566. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_deployment.py +0 -0
  567. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_management_service.py +0 -0
  568. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_profile_loader.py +0 -0
  569. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_registry.py +0 -0
  570. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/base_agent_manager.py +0 -0
  571. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/deployed_agent_discovery.py +0 -0
  572. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_agent_loader.py +0 -0
  573. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  574. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  575. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  576. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  577. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  578. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  579. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  580. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  581. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  582. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  583. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  584. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  585. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  586. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  587. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  588. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  589. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  590. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  591. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  592. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
  593. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/__init__.py +0 -0
  594. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/backup_manager.py +0 -0
  595. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/config_manager.py +0 -0
  596. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/deduplication_manager.py +0 -0
  597. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/framework_protector.py +0 -0
  598. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/operations.py +0 -0
  599. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/state_manager.py +0 -0
  600. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/template_deployer.py +0 -0
  601. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/validation_manager.py +0 -0
  602. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/version_control_helper.py +0 -0
  603. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/version_manager.py +0 -0
  604. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/shared_prompt_cache.py +0 -0
  605. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/ticket_manager.py +0 -0
  606. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/ticket_manager_di.py +0 -0
  607. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/ticketing_service_original.py +0 -0
  608. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/__init__.py +0 -0
  609. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  610. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  611. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  612. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  613. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/ui/__init__.py +0 -0
  614. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/ui/rich_terminal_ui.py +0 -0
  615. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/ui/terminal_ui.py +0 -0
  616. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/__init__.py +0 -0
  617. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/config_manager.py +0 -0
  618. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/error_handler.py +0 -0
  619. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/framework_detection.py +0 -0
  620. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/import_migration_example.py +0 -0
  621. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/imports.py +0 -0
  622. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/path_operations.py +0 -0
  623. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/utils/paths.py +0 -0
  624. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/validation/__init__.py +0 -0
  625. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm/validation/agent_validator.py +0 -0
  626. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  627. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  628. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/requires.txt +0 -0
  629. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/top_level.txt +0 -0
  630. {claude_mpm-3.1.0 → claude_mpm-3.1.2}/ticket +0 -0
@@ -52,6 +52,11 @@ See [docs/QA.md](docs/QA.md) for detailed testing procedures.
52
52
  - Business logic layer
53
53
  - Hook service, agent management, etc.
54
54
 
55
+ 4. **CLI System** (`src/claude_mpm/cli/`)
56
+ - Modular command structure
57
+ - Centralized argument parsing
58
+ - See [CLI Architecture](src/claude_mpm/cli/README.md) for details
59
+
55
60
  ## Quick Start
56
61
 
57
62
  ```bash
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 3.1.0
3
+ Version: 3.1.2
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
@@ -4,17 +4,13 @@
4
4
  import sys
5
5
  import os
6
6
  from pathlib import Path
7
- import importlib.util
8
7
 
9
8
  # Add src directory to Python path
10
9
  src_dir = Path(__file__).parent.parent / "src"
11
10
  sys.path.insert(0, str(src_dir))
12
11
 
13
- # Import from cli.py directly to avoid package/module confusion
14
- cli_path = src_dir / "claude_mpm" / "cli.py"
15
- spec = importlib.util.spec_from_file_location("cli_module", cli_path)
16
- cli_module = importlib.util.module_from_spec(spec)
17
- spec.loader.exec_module(cli_module)
12
+ # Import from the new CLI module structure
13
+ from claude_mpm.cli import main
18
14
 
19
15
  if __name__ == "__main__":
20
16
  # Enable debug logging if requested
@@ -22,4 +18,4 @@ if __name__ == "__main__":
22
18
  os.environ["CLAUDE_MPM_DEBUG"] = "1"
23
19
 
24
20
  # Run the CLI
25
- sys.exit(cli_module.main())
21
+ sys.exit(main())
@@ -0,0 +1,21 @@
1
+ """
2
+ Main entry point for claude-mpm package.
3
+
4
+ WHY: This module enables running claude-mpm as a Python module via `python -m claude_mpm`.
5
+ It's the standard Python pattern for making packages executable.
6
+
7
+ DESIGN DECISION: We only import and call the main function from the CLI module,
8
+ keeping this file minimal and focused on its single responsibility.
9
+ """
10
+
11
+ import sys
12
+ from pathlib import Path
13
+
14
+ # Add parent directory to path to ensure proper imports
15
+ sys.path.insert(0, str(Path(__file__).parent.parent))
16
+
17
+ # Import main function from the new CLI module structure
18
+ from claude_mpm.cli import main
19
+
20
+ if __name__ == "__main__":
21
+ sys.exit(main())
@@ -0,0 +1,34 @@
1
+ ---
2
+ author: test-script
3
+ model_preference: claude-3-sonnet
4
+ specializations: []
5
+ tags:
6
+ - test
7
+ - integration
8
+ type: custom
9
+ version: 1.0.0
10
+ ---
11
+
12
+ # Test Integration Agent
13
+
14
+ ## 🎯 Primary Role
15
+ test-integration-agent agent
16
+
17
+ ## 🎯 When to Use This Agent
18
+
19
+ **Select this agent when:**
20
+
21
+ **Do NOT select for:**
22
+
23
+ ## 🔧 Core Capabilities
24
+
25
+ ## 🔑 Authority & Permissions
26
+
27
+ ### ✅ Exclusive Write Access
28
+
29
+ ### ❌ Forbidden Operations
30
+
31
+ ---
32
+ **Agent Type**: custom
33
+ **Model Preference**: claude-3-sonnet
34
+ **Version**: 1.0.0
@@ -0,0 +1,163 @@
1
+ """
2
+ Claude MPM Command-Line Interface.
3
+
4
+ WHY: This module serves as the main entry point for the CLI, coordinating
5
+ argument parsing and command execution. It replaces the monolithic cli.py
6
+ with a more modular structure.
7
+
8
+ DESIGN DECISION: We maintain backward compatibility by keeping the same
9
+ interface while organizing code into logical modules. The main() function
10
+ remains the primary entry point for both direct execution and package imports.
11
+ """
12
+
13
+ import sys
14
+ from pathlib import Path
15
+ from typing import Optional
16
+
17
+ from ..constants import CLICommands, LogLevel
18
+ from .parser import create_parser, preprocess_args
19
+ from .utils import ensure_directories, setup_logging
20
+ from .commands import (
21
+ run_session,
22
+ list_tickets,
23
+ show_info,
24
+ manage_agents,
25
+ run_terminal_ui
26
+ )
27
+
28
+ # Get version from VERSION file - single source of truth
29
+ version_file = Path(__file__).parent.parent.parent / "VERSION"
30
+ if version_file.exists():
31
+ __version__ = version_file.read_text().strip()
32
+ else:
33
+ # Try to import from package as fallback
34
+ try:
35
+ from .. import __version__
36
+ except ImportError:
37
+ # Default version if all else fails
38
+ __version__ = "0.0.0"
39
+
40
+
41
+ def main(argv: Optional[list] = None):
42
+ """
43
+ Main CLI entry point.
44
+
45
+ WHY: This function orchestrates the entire CLI flow:
46
+ 1. Ensures directories exist
47
+ 2. Preprocesses arguments (handling --mpm: prefix)
48
+ 3. Parses arguments
49
+ 4. Sets up logging
50
+ 5. Executes the appropriate command
51
+
52
+ DESIGN DECISION: We keep error handling at this level to provide consistent
53
+ error messages and exit codes across all commands.
54
+
55
+ Args:
56
+ argv: Optional list of command line arguments for testing
57
+
58
+ Returns:
59
+ Exit code (0 for success, non-zero for errors)
60
+ """
61
+ # Ensure directories are initialized on first run
62
+ ensure_directories()
63
+
64
+ # Create parser with version
65
+ parser = create_parser(version=__version__)
66
+
67
+ # Preprocess and parse arguments
68
+ processed_argv = preprocess_args(argv)
69
+ args = parser.parse_args(processed_argv)
70
+
71
+ # Set up logging
72
+ logger = setup_logging(args)
73
+
74
+ # Debug output if requested
75
+ if hasattr(args, 'debug') and args.debug:
76
+ logger.debug(f"Command: {args.command}")
77
+ logger.debug(f"Arguments: {args}")
78
+
79
+ # Hook system note: Claude Code hooks are handled externally via the
80
+ # hook_handler.py script installed in ~/.claude/settings.json
81
+ # The --no-hooks flag is kept for backward compatibility but doesn't affect
82
+ # Claude Code hooks which are configured separately.
83
+
84
+ # Default to run command if no command specified
85
+ if not args.command:
86
+ args.command = CLICommands.RUN.value
87
+ # Ensure run-specific attributes exist when defaulting to run
88
+ _ensure_run_attributes(args)
89
+
90
+ # Execute command
91
+ try:
92
+ exit_code = _execute_command(args.command, args)
93
+ return exit_code
94
+ except KeyboardInterrupt:
95
+ logger.info("Session interrupted by user")
96
+ return 0
97
+ except Exception as e:
98
+ logger.error(f"Error: {e}")
99
+ if args.debug:
100
+ import traceback
101
+ traceback.print_exc()
102
+ return 1
103
+
104
+
105
+ def _ensure_run_attributes(args):
106
+ """
107
+ Ensure run command attributes exist when defaulting to run.
108
+
109
+ WHY: When no command is specified, we default to 'run' but the args object
110
+ won't have run-specific attributes from the subparser. This function ensures
111
+ they exist with sensible defaults.
112
+
113
+ Args:
114
+ args: Parsed arguments object to update
115
+ """
116
+ # Set defaults for run command attributes
117
+ args.no_tickets = getattr(args, 'no_tickets', False)
118
+ args.no_hooks = getattr(args, 'no_hooks', False)
119
+ args.intercept_commands = getattr(args, 'intercept_commands', False)
120
+ args.input = getattr(args, 'input', None)
121
+ args.non_interactive = getattr(args, 'non_interactive', False)
122
+ args.no_native_agents = getattr(args, 'no_native_agents', False)
123
+ args.claude_args = getattr(args, 'claude_args', [])
124
+
125
+
126
+ def _execute_command(command: str, args) -> int:
127
+ """
128
+ Execute the specified command.
129
+
130
+ WHY: This function maps command names to their implementations, providing
131
+ a single place to manage command routing.
132
+
133
+ Args:
134
+ command: The command name to execute
135
+ args: Parsed command line arguments
136
+
137
+ Returns:
138
+ Exit code from the command
139
+ """
140
+ # Map commands to their implementations
141
+ command_map = {
142
+ CLICommands.RUN.value: run_session,
143
+ CLICommands.TICKETS.value: list_tickets,
144
+ CLICommands.INFO.value: show_info,
145
+ CLICommands.AGENTS.value: manage_agents,
146
+ CLICommands.UI.value: run_terminal_ui,
147
+ }
148
+
149
+ # Execute command if found
150
+ if command in command_map:
151
+ result = command_map[command](args)
152
+ # Commands may return None (success) or an exit code
153
+ return result if result is not None else 0
154
+ else:
155
+ # Unknown command - this shouldn't happen with argparse
156
+ # but we handle it for completeness
157
+ print(f"Unknown command: {command}")
158
+ return 1
159
+
160
+
161
+ # For backward compatibility - export main
162
+ if __name__ == "__main__":
163
+ sys.exit(main())
@@ -0,0 +1,20 @@
1
+ """
2
+ CLI commands for claude-mpm.
3
+
4
+ WHY: This package contains individual command implementations, organized into
5
+ separate modules for better maintainability and code organization.
6
+ """
7
+
8
+ from .run import run_session
9
+ from .tickets import list_tickets
10
+ from .info import show_info
11
+ from .agents import manage_agents
12
+ from .ui import run_terminal_ui
13
+
14
+ __all__ = [
15
+ 'run_session',
16
+ 'list_tickets',
17
+ 'show_info',
18
+ 'manage_agents',
19
+ 'run_terminal_ui'
20
+ ]
@@ -0,0 +1,191 @@
1
+ """
2
+ Agents command implementation for claude-mpm.
3
+
4
+ WHY: This module manages Claude Code native agents, including listing, deploying,
5
+ and cleaning agent deployments.
6
+ """
7
+
8
+ from pathlib import Path
9
+
10
+ from ...core.logger import get_logger
11
+ from ...constants import AgentCommands
12
+ from ..utils import get_agent_versions_display
13
+
14
+
15
+ def manage_agents(args):
16
+ """
17
+ Manage Claude Code native agents.
18
+
19
+ WHY: Claude Code agents need to be deployed and managed. This command provides
20
+ a unified interface for all agent-related operations.
21
+
22
+ DESIGN DECISION: When no subcommand is provided, we show the current agent
23
+ versions as a quick status check. This matches the behavior users see at startup.
24
+
25
+ Args:
26
+ args: Parsed command line arguments with agents_command attribute
27
+ """
28
+ logger = get_logger("cli")
29
+
30
+ try:
31
+ from ...services.agent_deployment import AgentDeploymentService
32
+ deployment_service = AgentDeploymentService()
33
+
34
+ if not args.agents_command:
35
+ # No subcommand - show agent versions
36
+ # WHY: This provides a quick way for users to check deployed agent versions
37
+ # without needing to specify additional subcommands
38
+ agent_versions = get_agent_versions_display()
39
+ if agent_versions:
40
+ print(agent_versions)
41
+ else:
42
+ print("No deployed agents found")
43
+ print("\nTo deploy agents, run: claude-mpm --mpm:agents deploy")
44
+ return
45
+
46
+ if args.agents_command == AgentCommands.LIST.value:
47
+ _list_agents(args, deployment_service)
48
+
49
+ elif args.agents_command == AgentCommands.DEPLOY.value:
50
+ _deploy_agents(args, deployment_service, force=False)
51
+
52
+ elif args.agents_command == AgentCommands.FORCE_DEPLOY.value:
53
+ _deploy_agents(args, deployment_service, force=True)
54
+
55
+ elif args.agents_command == AgentCommands.CLEAN.value:
56
+ _clean_agents(args, deployment_service)
57
+
58
+ except ImportError:
59
+ logger.error("Agent deployment service not available")
60
+ print("Error: Agent deployment service not available")
61
+ except Exception as e:
62
+ logger.error(f"Error managing agents: {e}")
63
+ print(f"Error: {e}")
64
+
65
+
66
+ def _list_agents(args, deployment_service):
67
+ """
68
+ List available or deployed agents.
69
+
70
+ WHY: Users need to see what agents are available in the system and what's
71
+ currently deployed. This helps them understand the agent ecosystem.
72
+
73
+ Args:
74
+ args: Command arguments with 'system' and 'deployed' flags
75
+ deployment_service: Agent deployment service instance
76
+ """
77
+ if args.system:
78
+ # List available agent templates
79
+ print("Available Agent Templates:")
80
+ print("-" * 80)
81
+ agents = deployment_service.list_available_agents()
82
+ if not agents:
83
+ print("No agent templates found")
84
+ else:
85
+ for agent in agents:
86
+ print(f"📄 {agent['file']}")
87
+ if 'name' in agent:
88
+ print(f" Name: {agent['name']}")
89
+ if 'description' in agent:
90
+ print(f" Description: {agent['description']}")
91
+ if 'version' in agent:
92
+ print(f" Version: {agent['version']}")
93
+ print()
94
+
95
+ elif args.deployed:
96
+ # List deployed agents
97
+ print("Deployed Agents:")
98
+ print("-" * 80)
99
+ verification = deployment_service.verify_deployment()
100
+ if not verification["agents_found"]:
101
+ print("No deployed agents found")
102
+ else:
103
+ for agent in verification["agents_found"]:
104
+ print(f"📄 {agent['file']}")
105
+ if 'name' in agent:
106
+ print(f" Name: {agent['name']}")
107
+ print(f" Path: {agent['path']}")
108
+ print()
109
+
110
+ if verification["warnings"]:
111
+ print("\nWarnings:")
112
+ for warning in verification["warnings"]:
113
+ print(f" ⚠️ {warning}")
114
+
115
+ else:
116
+ # Default: show usage
117
+ print("Use --system to list system agents or --deployed to list deployed agents")
118
+
119
+
120
+ def _deploy_agents(args, deployment_service, force=False):
121
+ """
122
+ Deploy system agents.
123
+
124
+ WHY: Agents need to be deployed to the working directory for Claude Code to use them.
125
+ This function handles both regular and forced deployment.
126
+
127
+ Args:
128
+ args: Command arguments with optional 'target' path
129
+ deployment_service: Agent deployment service instance
130
+ force: Whether to force rebuild all agents
131
+ """
132
+ if force:
133
+ print("Force deploying all system agents...")
134
+ else:
135
+ print("Deploying system agents...")
136
+
137
+ results = deployment_service.deploy_agents(args.target, force_rebuild=force)
138
+
139
+ if results["deployed"]:
140
+ print(f"\n✓ Successfully deployed {len(results['deployed'])} agents to {results['target_dir']}")
141
+ for agent in results["deployed"]:
142
+ print(f" - {agent['name']}")
143
+
144
+ if force and results.get("updated", []):
145
+ print(f"\n✓ Updated {len(results['updated'])} agents")
146
+ for agent in results["updated"]:
147
+ print(f" - {agent['name']}")
148
+
149
+ if force and results.get("skipped", []):
150
+ print(f"\n✓ Skipped {len(results['skipped'])} up-to-date agents")
151
+
152
+ if results["errors"]:
153
+ print("\n❌ Errors during deployment:")
154
+ for error in results["errors"]:
155
+ print(f" - {error}")
156
+
157
+ if force:
158
+ # Set environment for force deploy
159
+ env_vars = deployment_service.set_claude_environment(
160
+ args.target.parent if args.target else None
161
+ )
162
+ print(f"\n✓ Set Claude environment variables:")
163
+ for key, value in env_vars.items():
164
+ print(f" - {key}={value}")
165
+
166
+
167
+ def _clean_agents(args, deployment_service):
168
+ """
169
+ Clean deployed system agents.
170
+
171
+ WHY: Users may want to remove deployed agents to start fresh or clean up
172
+ their working directory.
173
+
174
+ Args:
175
+ args: Command arguments with optional 'target' path
176
+ deployment_service: Agent deployment service instance
177
+ """
178
+ print("Cleaning deployed system agents...")
179
+ results = deployment_service.clean_deployment(args.target)
180
+
181
+ if results["removed"]:
182
+ print(f"\n✓ Removed {len(results['removed'])} agents")
183
+ for path in results["removed"]:
184
+ print(f" - {Path(path).name}")
185
+ else:
186
+ print("No system agents found to remove")
187
+
188
+ if results["errors"]:
189
+ print("\n❌ Errors during cleanup:")
190
+ for error in results["errors"]:
191
+ print(f" - {error}")
@@ -0,0 +1,89 @@
1
+ """
2
+ Info command implementation for claude-mpm.
3
+
4
+ WHY: This module provides system information and configuration details to help
5
+ users understand their claude-mpm setup and troubleshoot issues.
6
+ """
7
+
8
+ import shutil
9
+ from pathlib import Path
10
+
11
+ from ...core.logger import get_logger
12
+
13
+
14
+ def show_info(args):
15
+ """
16
+ Show framework and configuration information.
17
+
18
+ WHY: Users need to verify their installation, check dependencies, and understand
19
+ what agents are available. This command provides a comprehensive overview of
20
+ the claude-mpm environment.
21
+
22
+ DESIGN DECISION: We check for all major components and dependencies, showing
23
+ both what's working (✓) and what's missing (✗) to help with troubleshooting.
24
+
25
+ Args:
26
+ args: Parsed command line arguments
27
+ """
28
+ try:
29
+ from ...core.framework_loader import FrameworkLoader
30
+ except ImportError:
31
+ from claude_mpm.core.framework_loader import FrameworkLoader
32
+
33
+ print("Claude MPM - Multi-Agent Project Manager")
34
+ print("=" * 50)
35
+
36
+ # Framework info
37
+ loader = FrameworkLoader(args.framework_path)
38
+ if loader.framework_content["loaded"]:
39
+ print(f"Framework: claude-multiagent-pm")
40
+ print(f"Version: {loader.framework_content['version']}")
41
+ print(f"Path: {loader.framework_path}")
42
+ print(f"Agents: {', '.join(loader.get_agent_list())}")
43
+ else:
44
+ print("Framework: Not found (using minimal instructions)")
45
+
46
+ print()
47
+
48
+ # Configuration
49
+ print("Configuration:")
50
+ print(f" Log directory: {args.log_dir or '~/.claude-mpm/logs'}")
51
+ print(f" Debug mode: {args.debug}")
52
+
53
+ # Show agent hierarchy
54
+ if loader.agent_registry:
55
+ hierarchy = loader.agent_registry.get_agent_hierarchy()
56
+ print("\nAgent Hierarchy:")
57
+ print(f" Project agents: {len(hierarchy['project'])}")
58
+ print(f" User agents: {len(hierarchy['user'])}")
59
+ print(f" System agents: {len(hierarchy['system'])}")
60
+
61
+ # Show core agents
62
+ core_agents = loader.agent_registry.get_core_agents()
63
+ print(f"\nCore Agents: {', '.join(core_agents)}")
64
+
65
+ # Check dependencies
66
+ print("\nDependencies:")
67
+
68
+ # Check Claude CLI
69
+ claude_path = shutil.which("claude")
70
+ if claude_path:
71
+ print(f" ✓ Claude CLI: {claude_path}")
72
+ else:
73
+ print(" ✗ Claude CLI: Not found in PATH")
74
+
75
+ # Check ai-trackdown-pytools
76
+ try:
77
+ import ai_trackdown_pytools
78
+ print(" ✓ ai-trackdown-pytools: Installed")
79
+ except ImportError:
80
+ print(" ✗ ai-trackdown-pytools: Not installed")
81
+
82
+ # Check Claude Code hooks
83
+ claude_settings = Path.home() / ".claude" / "settings.json"
84
+ if claude_settings.exists():
85
+ print(" ✓ Claude Code Hooks: Installed")
86
+ print(" Use /mpm commands in Claude Code")
87
+ else:
88
+ print(" ✗ Claude Code Hooks: Not installed")
89
+ print(" Run: python scripts/install_hooks.py")
@@ -0,0 +1,80 @@
1
+ """
2
+ Run command implementation for claude-mpm.
3
+
4
+ WHY: This module handles the main 'run' command which starts Claude sessions.
5
+ It's the most commonly used command and handles both interactive and non-interactive modes.
6
+ """
7
+
8
+ import subprocess
9
+ import sys
10
+ from pathlib import Path
11
+
12
+ from ...core.logger import get_logger
13
+ from ...constants import LogLevel
14
+ from ..utils import get_user_input, list_agent_versions_at_startup
15
+
16
+
17
+ def run_session(args):
18
+ """
19
+ Run a simplified Claude session.
20
+
21
+ WHY: This is the primary command that users interact with. It sets up the
22
+ environment, optionally deploys agents, and launches Claude with the MPM framework.
23
+
24
+ DESIGN DECISION: We use SimpleClaudeRunner to handle the complexity of
25
+ subprocess management and hook integration, keeping this function focused
26
+ on high-level orchestration.
27
+
28
+ Args:
29
+ args: Parsed command line arguments
30
+ """
31
+ logger = get_logger("cli")
32
+ if args.logging != LogLevel.OFF.value:
33
+ logger.info("Starting Claude MPM session")
34
+
35
+ try:
36
+ from ...core.simple_runner import SimpleClaudeRunner, create_simple_context
37
+ except ImportError:
38
+ from claude_mpm.core.simple_runner import SimpleClaudeRunner, create_simple_context
39
+
40
+ # Skip native agents if disabled
41
+ if getattr(args, 'no_native_agents', False):
42
+ print("Native agents disabled")
43
+ else:
44
+ # List deployed agent versions at startup
45
+ list_agent_versions_at_startup()
46
+
47
+ # Create simple runner
48
+ enable_tickets = not args.no_tickets
49
+ claude_args = getattr(args, 'claude_args', []) or []
50
+ runner = SimpleClaudeRunner(
51
+ enable_tickets=enable_tickets,
52
+ log_level=args.logging,
53
+ claude_args=claude_args
54
+ )
55
+
56
+ # Create basic context
57
+ context = create_simple_context()
58
+
59
+ # Run session based on mode
60
+ if args.non_interactive or args.input:
61
+ # Non-interactive mode
62
+ user_input = get_user_input(args.input, logger)
63
+ success = runner.run_oneshot(user_input, context)
64
+ if not success:
65
+ logger.error("Session failed")
66
+ else:
67
+ # Interactive mode
68
+ if getattr(args, 'intercept_commands', False):
69
+ # Use the interactive wrapper for command interception
70
+ # WHY: Command interception requires special handling of stdin/stdout
71
+ # which is better done in a separate Python script
72
+ wrapper_path = Path(__file__).parent.parent.parent.parent.parent / "scripts" / "interactive_wrapper.py"
73
+ if wrapper_path.exists():
74
+ print("Starting interactive session with command interception...")
75
+ subprocess.run([sys.executable, str(wrapper_path)])
76
+ else:
77
+ logger.warning("Interactive wrapper not found, falling back to normal mode")
78
+ runner.run_interactive(context)
79
+ else:
80
+ runner.run_interactive(context)