claude-mpm 3.7.1__tar.gz → 3.7.8__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 (580) hide show
  1. {claude_mpm-3.7.1/src/claude_mpm.egg-info → claude_mpm-3.7.8}/PKG-INFO +17 -21
  2. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/README.md +6 -4
  3. claude_mpm-3.7.8/VERSION +1 -0
  4. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/pyproject.toml +3 -2
  5. claude_mpm-3.7.8/src/claude_mpm/VERSION +1 -0
  6. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/INSTRUCTIONS.md +18 -0
  7. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/frontmatter_validator.py +116 -17
  8. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/schema/agent_schema.json +1 -1
  9. {claude_mpm-3.7.1/src/claude_mpm/dashboard → claude_mpm-3.7.8/src/claude_mpm/agents}/templates/.claude-mpm/memories/engineer_agent.md +1 -1
  10. claude_mpm-3.7.1/src/claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md → claude_mpm-3.7.8/src/claude_mpm/agents/templates/.claude-mpm/memories/qa_agent.md +2 -2
  11. claude_mpm-3.7.8/src/claude_mpm/agents/templates/.claude-mpm/memories/research_agent.md +39 -0
  12. claude_mpm-3.7.8/src/claude_mpm/agents/templates/code_analyzer.json +103 -0
  13. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/data_engineer.json +5 -8
  14. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/documentation.json +2 -2
  15. claude_mpm-3.7.8/src/claude_mpm/agents/templates/engineer.json +129 -0
  16. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/ops.json +3 -8
  17. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/qa.json +2 -3
  18. claude_mpm-3.7.8/src/claude_mpm/agents/templates/research.json +85 -0
  19. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/security.json +4 -7
  20. claude_mpm-3.7.8/src/claude_mpm/agents/templates/ticketing.json +161 -0
  21. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/version_control.json +3 -3
  22. claude_mpm-3.7.8/src/claude_mpm/agents/templates/web_qa.json +214 -0
  23. claude_mpm-3.7.8/src/claude_mpm/agents/templates/web_ui.json +176 -0
  24. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/agents.py +118 -1
  25. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/parser.py +11 -0
  26. claude_mpm-3.7.8/src/claude_mpm/cli/ticket_cli.py +31 -0
  27. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/framework_loader.py +102 -49
  28. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +46 -2
  29. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/templates/index.html +5 -5
  30. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/deployment/agent_deployment.py +9 -1
  31. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +174 -13
  32. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +21 -11
  33. claude_mpm-3.7.8/src/claude_mpm/services/ticket_manager.py +376 -0
  34. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/agent_dependency_loader.py +66 -15
  35. claude_mpm-3.7.8/src/claude_mpm/utils/robust_installer.py +587 -0
  36. {claude_mpm-3.7.1 → claude_mpm-3.7.8/src/claude_mpm.egg-info}/PKG-INFO +17 -21
  37. claude_mpm-3.7.8/src/claude_mpm.egg-info/SOURCES.txt +235 -0
  38. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm.egg-info/requires.txt +10 -16
  39. claude_mpm-3.7.1/.ai-trackdown/config.yaml +0 -28
  40. claude_mpm-3.7.1/.ai-trackdown/project.yaml +0 -8
  41. claude_mpm-3.7.1/.aitrackdown/project.json +0 -1
  42. claude_mpm-3.7.1/.aitrackdown-config.yaml +0 -10
  43. claude_mpm-3.7.1/.claude/.claude.json +0 -35
  44. claude_mpm-3.7.1/.claude/.claude.json.backup +0 -35
  45. claude_mpm-3.7.1/.claude/agents/data_engineer.md +0 -274
  46. claude_mpm-3.7.1/.claude/agents/documentation.md +0 -209
  47. claude_mpm-3.7.1/.claude/agents/engineer.md +0 -335
  48. claude_mpm-3.7.1/.claude/agents/ops.md +0 -246
  49. claude_mpm-3.7.1/.claude/agents/qa.md +0 -191
  50. claude_mpm-3.7.1/.claude/agents/research.md +0 -309
  51. claude_mpm-3.7.1/.claude/agents/security.md +0 -215
  52. claude_mpm-3.7.1/.claude/agents/test_integration.md +0 -227
  53. claude_mpm-3.7.1/.claude/agents/version_control.md +0 -202
  54. claude_mpm-3.7.1/.claude/commands/README.md +0 -36
  55. claude_mpm-3.7.1/.claude/commands/mpm.md +0 -5
  56. claude_mpm-3.7.1/.claude/hooks.json +0 -32
  57. claude_mpm-3.7.1/.claude/scripts/command_router.py +0 -197
  58. claude_mpm-3.7.1/.claude/settings.json +0 -37
  59. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753448752189-02zmkd.sh +0 -4511
  60. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753448752717-t1o960.sh +0 -4511
  61. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753448753258-cz40yi.sh +0 -4511
  62. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753448753816-5cj75h.sh +0 -4511
  63. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753449561020-uh844i.sh +0 -4511
  64. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753449676191-16dqe8.sh +0 -4511
  65. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753449766642-8sffyp.sh +0 -4511
  66. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753449795813-bj9blv.sh +0 -4511
  67. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753449953467-ru9ods.sh +0 -4511
  68. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753449966919-eb4aoq.sh +0 -4511
  69. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753450012330-ad1k3g.sh +0 -4511
  70. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753450254970-pvrwgd.sh +0 -4511
  71. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753450398246-etdteg.sh +0 -4511
  72. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753450789791-z5ptuf.sh +0 -4511
  73. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753450861209-w6so3e.sh +0 -4511
  74. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753451302996-01ahjc.sh +0 -4511
  75. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753451384857-mvpmcf.sh +0 -4511
  76. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753451508182-v942iw.sh +0 -4511
  77. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753451525128-q52z98.sh +0 -4511
  78. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753452958143-rd4nut.sh +0 -4511
  79. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753453029843-tyfjfo.sh +0 -4511
  80. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753460195020-02l99b.sh +0 -4511
  81. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753460396315-znuas3.sh +0 -4511
  82. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753460428488-tcy6i5.sh +0 -4511
  83. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753460542243-l181zr.sh +0 -4511
  84. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753461397341-fdy0v7.sh +0 -4511
  85. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753469116715-v6dpx9.sh +0 -4511
  86. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753477538332-i5g2cr.sh +0 -4511
  87. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753477560204-7vo17t.sh +0 -4511
  88. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753477883629-hsjia3.sh +0 -4511
  89. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753477961808-oiyqie.sh +0 -4511
  90. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478292112-5g3i0g.sh +0 -4511
  91. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478337101-xe1uid.sh +0 -4511
  92. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478342176-env102.sh +0 -4511
  93. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478361973-nr1cwq.sh +0 -4511
  94. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478372714-lamo9k.sh +0 -4511
  95. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478388184-yxkay7.sh +0 -4511
  96. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753478392376-eygj04.sh +0 -4511
  97. claude_mpm-3.7.1/.claude/shell-snapshots/snapshot-zsh-1753482158558-cr2h0o.sh +0 -4511
  98. claude_mpm-3.7.1/.claude/todos/0aaf869f-0009-4249-b955-1c3942ff239f-agent-0aaf869f-0009-4249-b955-1c3942ff239f.json +0 -20
  99. claude_mpm-3.7.1/.claude/todos/0c24ded8-9422-489d-8d18-f83cc0737181-agent-0c24ded8-9422-489d-8d18-f83cc0737181.json +0 -1
  100. claude_mpm-3.7.1/.claude/todos/0d9501e6-77b0-4e8f-b132-bae208ed740a-agent-0d9501e6-77b0-4e8f-b132-bae208ed740a.json +0 -1
  101. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-048a118d-f0ea-4dce-90d3-d851514aa36a.json +0 -50
  102. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-0600940d-65ff-4678-ac90-9e0d42a3e138.json +0 -50
  103. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5.json +0 -8
  104. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1b8badbc-b05e-459e-b16c-a974f28673be.json +0 -38
  105. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-231626b2-0ce7-44fb-82e4-a9e72fdcecc4.json +0 -38
  106. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-2799acc0-b5e3-4086-940e-62bd2a5bbd7d.json +0 -38
  107. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-42b0c458-9d5f-4745-826e-7c618d3a7026.json +0 -38
  108. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-a324c872-b962-4438-b794-7966f5d7a7a9.json +0 -32
  109. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-ce91e7fd-64af-4f57-b691-1487c2db8d0b.json +0 -38
  110. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-dd250db2-edbb-43fc-a143-3eeafc0cd7fa.json +0 -38
  111. claude_mpm-3.7.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-f0cbf9cd-0136-4bca-b0e0-c66aa58d3aeb.json +0 -38
  112. claude_mpm-3.7.1/.claude/todos/109c42c9-0afd-4a5b-a1b3-e515e31b6a2f-agent-109c42c9-0afd-4a5b-a1b3-e515e31b6a2f.json +0 -1
  113. claude_mpm-3.7.1/.claude/todos/1163a193-8464-4195-8281-6b875b5d987d-agent-1163a193-8464-4195-8281-6b875b5d987d.json +0 -1
  114. claude_mpm-3.7.1/.claude/todos/128d2198-5b02-422c-9531-f3396cbf0ce0-agent-128d2198-5b02-422c-9531-f3396cbf0ce0.json +0 -1
  115. claude_mpm-3.7.1/.claude/todos/16c51506-6afa-43aa-b199-da0c853f99a9-agent-16c51506-6afa-43aa-b199-da0c853f99a9.json +0 -1
  116. claude_mpm-3.7.1/.claude/todos/1736bdd7-71f4-49a0-934d-18e3aa5e0b43-agent-1736bdd7-71f4-49a0-934d-18e3aa5e0b43.json +0 -1
  117. claude_mpm-3.7.1/.claude/todos/1869eedc-69fc-4e81-a8ac-f57bd8e3946b-agent-1869eedc-69fc-4e81-a8ac-f57bd8e3946b.json +0 -1
  118. claude_mpm-3.7.1/.claude/todos/1a97dfda-12e5-4f13-8c8a-731373694a1c-agent-1a97dfda-12e5-4f13-8c8a-731373694a1c.json +0 -1
  119. claude_mpm-3.7.1/.claude/todos/283ac74b-5516-43f8-9548-24ded2b643b1-agent-283ac74b-5516-43f8-9548-24ded2b643b1.json +0 -1
  120. claude_mpm-3.7.1/.claude/todos/2ba08561-559e-4f64-9522-8d6c340e47da-agent-2ba08561-559e-4f64-9522-8d6c340e47da.json +0 -1
  121. claude_mpm-3.7.1/.claude/todos/31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9-agent-31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9.json +0 -1
  122. claude_mpm-3.7.1/.claude/todos/35194d51-6b8f-4ef5-b771-b0aa03f49a88-agent-35194d51-6b8f-4ef5-b771-b0aa03f49a88.json +0 -1
  123. claude_mpm-3.7.1/.claude/todos/3d1c0368-e607-4f47-b02d-7c0922cc0f25-agent-3d1c0368-e607-4f47-b02d-7c0922cc0f25.json +0 -1
  124. claude_mpm-3.7.1/.claude/todos/3d46c625-6377-4296-b9b3-22bc19341092-agent-3d46c625-6377-4296-b9b3-22bc19341092.json +0 -1
  125. claude_mpm-3.7.1/.claude/todos/40072791-2f2f-4743-b763-ec19321ccb0b-agent-40072791-2f2f-4743-b763-ec19321ccb0b.json +0 -1
  126. claude_mpm-3.7.1/.claude/todos/4157ab6d-5025-4862-82eb-5818c43c5a8c-agent-4157ab6d-5025-4862-82eb-5818c43c5a8c.json +0 -1
  127. claude_mpm-3.7.1/.claude/todos/458938f3-a317-46f3-8359-86f05ccacc7d-agent-458938f3-a317-46f3-8359-86f05ccacc7d.json +0 -1
  128. claude_mpm-3.7.1/.claude/todos/4dcf1510-e396-47bb-ac32-f62811ae9774-agent-4dcf1510-e396-47bb-ac32-f62811ae9774.json +0 -26
  129. claude_mpm-3.7.1/.claude/todos/4e71e501-1438-4c7d-8a89-18818b16ccb5-agent-4e71e501-1438-4c7d-8a89-18818b16ccb5.json +0 -1
  130. claude_mpm-3.7.1/.claude/todos/4eb9a1c4-92b0-44ee-9322-6ba0442efd42-agent-4eb9a1c4-92b0-44ee-9322-6ba0442efd42.json +0 -1
  131. claude_mpm-3.7.1/.claude/todos/4f57fa86-e804-4c8e-a0ff-196835df5bc9-agent-4f57fa86-e804-4c8e-a0ff-196835df5bc9.json +0 -1
  132. claude_mpm-3.7.1/.claude/todos/518e2724-687e-4ae3-bde9-582c8718695a-agent-518e2724-687e-4ae3-bde9-582c8718695a.json +0 -1
  133. claude_mpm-3.7.1/.claude/todos/51abf2eb-4e5a-4731-bd23-76cffe656a40-agent-51abf2eb-4e5a-4731-bd23-76cffe656a40.json +0 -1
  134. claude_mpm-3.7.1/.claude/todos/53c4beda-27f3-4247-ada4-f904320995ad-agent-53c4beda-27f3-4247-ada4-f904320995ad.json +0 -1
  135. claude_mpm-3.7.1/.claude/todos/56581e8b-07b1-4174-bf81-c280a3dee6b4-agent-56581e8b-07b1-4174-bf81-c280a3dee6b4.json +0 -1
  136. claude_mpm-3.7.1/.claude/todos/58848224-56e6-49f6-a4e5-c08f8f70c426-agent-58848224-56e6-49f6-a4e5-c08f8f70c426.json +0 -1
  137. claude_mpm-3.7.1/.claude/todos/58cf2d09-fd22-4a2e-8c74-c247ece6c802-agent-58cf2d09-fd22-4a2e-8c74-c247ece6c802.json +0 -8
  138. claude_mpm-3.7.1/.claude/todos/5bcc2e07-617c-4659-b82f-6b630ea891ff-agent-5bcc2e07-617c-4659-b82f-6b630ea891ff.json +0 -1
  139. claude_mpm-3.7.1/.claude/todos/5bf326e7-b61a-4d82-b483-94d5d7085755-agent-5bf326e7-b61a-4d82-b483-94d5d7085755.json +0 -1
  140. claude_mpm-3.7.1/.claude/todos/5dee78ec-d9ed-4484-b101-5490217fe423-agent-5dee78ec-d9ed-4484-b101-5490217fe423.json +0 -20
  141. claude_mpm-3.7.1/.claude/todos/5f6c7624-6a25-4ed9-be09-03fa3a70c4d8-agent-5f6c7624-6a25-4ed9-be09-03fa3a70c4d8.json +0 -1
  142. claude_mpm-3.7.1/.claude/todos/606431c0-6b47-4fb8-b386-132918a3aa0b-agent-606431c0-6b47-4fb8-b386-132918a3aa0b.json +0 -1
  143. claude_mpm-3.7.1/.claude/todos/6078e96f-e9a4-435f-8d2f-cf70346ebafe-agent-6078e96f-e9a4-435f-8d2f-cf70346ebafe.json +0 -20
  144. claude_mpm-3.7.1/.claude/todos/69e5a32b-bf2c-4264-93cd-6ac84b44ca9f-agent-69e5a32b-bf2c-4264-93cd-6ac84b44ca9f.json +0 -1
  145. claude_mpm-3.7.1/.claude/todos/6b729248-47b8-4657-ad7f-7f09fff21151-agent-6b729248-47b8-4657-ad7f-7f09fff21151.json +0 -1
  146. claude_mpm-3.7.1/.claude/todos/6d6970e8-f95f-468b-a8b8-3eacca8f1220-agent-6d6970e8-f95f-468b-a8b8-3eacca8f1220.json +0 -1
  147. claude_mpm-3.7.1/.claude/todos/6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b-agent-6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b.json +0 -1
  148. claude_mpm-3.7.1/.claude/todos/713e1bda-caa2-4cb9-a5a2-b7c6fec5776f-agent-713e1bda-caa2-4cb9-a5a2-b7c6fec5776f.json +0 -32
  149. claude_mpm-3.7.1/.claude/todos/71e6da9f-0dcd-4abd-ae8f-a5af695d9624-agent-71e6da9f-0dcd-4abd-ae8f-a5af695d9624.json +0 -1
  150. claude_mpm-3.7.1/.claude/todos/7653f086-93df-4423-98ce-640305e10823-agent-7653f086-93df-4423-98ce-640305e10823.json +0 -1
  151. claude_mpm-3.7.1/.claude/todos/76656734-acd3-411c-b333-f274dabae19c-agent-76656734-acd3-411c-b333-f274dabae19c.json +0 -44
  152. claude_mpm-3.7.1/.claude/todos/78150f02-9204-437c-9e12-9e800f3f73b9-agent-78150f02-9204-437c-9e12-9e800f3f73b9.json +0 -20
  153. claude_mpm-3.7.1/.claude/todos/7dda0a32-2834-4a47-9734-9ae9ca5b1a31-agent-7dda0a32-2834-4a47-9734-9ae9ca5b1a31.json +0 -1
  154. claude_mpm-3.7.1/.claude/todos/84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec-agent-84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec.json +0 -1
  155. claude_mpm-3.7.1/.claude/todos/8698daf1-475a-40e8-a7d5-33031480d9b6-agent-8698daf1-475a-40e8-a7d5-33031480d9b6.json +0 -1
  156. claude_mpm-3.7.1/.claude/todos/86ce0d12-f82e-49b2-b553-2cd8a7e188a3-agent-86ce0d12-f82e-49b2-b553-2cd8a7e188a3.json +0 -1
  157. claude_mpm-3.7.1/.claude/todos/87626114-6cb1-43ef-978a-bb35f612e4eb-agent-87626114-6cb1-43ef-978a-bb35f612e4eb.json +0 -1
  158. claude_mpm-3.7.1/.claude/todos/880d3ea5-649e-449e-88bc-664a291ec338-agent-880d3ea5-649e-449e-88bc-664a291ec338.json +0 -38
  159. claude_mpm-3.7.1/.claude/todos/8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e-agent-8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e.json +0 -1
  160. claude_mpm-3.7.1/.claude/todos/8f998b9e-5f18-4ade-bd69-74c95a210f6a-agent-8f998b9e-5f18-4ade-bd69-74c95a210f6a.json +0 -1
  161. claude_mpm-3.7.1/.claude/todos/929364bd-aa69-4831-850e-37f8ab63803d-agent-929364bd-aa69-4831-850e-37f8ab63803d.json +0 -1
  162. claude_mpm-3.7.1/.claude/todos/95479b6c-cfbf-4bb7-9e00-b95a0b385775-agent-95479b6c-cfbf-4bb7-9e00-b95a0b385775.json +0 -1
  163. claude_mpm-3.7.1/.claude/todos/9628cc3a-355a-48f0-ab54-c28ac2e05dfe-agent-9628cc3a-355a-48f0-ab54-c28ac2e05dfe.json +0 -1
  164. claude_mpm-3.7.1/.claude/todos/a877fe3a-7057-49a9-9726-239ddb3421ee-agent-a877fe3a-7057-49a9-9726-239ddb3421ee.json +0 -1
  165. claude_mpm-3.7.1/.claude/todos/a9136d1b-6e01-4879-972f-5fcdde5e08d7-agent-a9136d1b-6e01-4879-972f-5fcdde5e08d7.json +0 -1
  166. claude_mpm-3.7.1/.claude/todos/b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003-agent-b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003.json +0 -1
  167. claude_mpm-3.7.1/.claude/todos/b1206d13-f0ec-4f53-a746-a845732fefd7-agent-b1206d13-f0ec-4f53-a746-a845732fefd7.json +0 -1
  168. claude_mpm-3.7.1/.claude/todos/b61be2e4-7de3-4e1b-b636-2232190ffc5c-agent-b61be2e4-7de3-4e1b-b636-2232190ffc5c.json +0 -1
  169. claude_mpm-3.7.1/.claude/todos/b80ad406-64d1-4a6c-b781-15496265fae0-agent-b80ad406-64d1-4a6c-b781-15496265fae0.json +0 -1
  170. claude_mpm-3.7.1/.claude/todos/babc6eac-d7d6-498a-8176-e09e00423a12-agent-babc6eac-d7d6-498a-8176-e09e00423a12.json +0 -1
  171. claude_mpm-3.7.1/.claude/todos/bf4b7700-9630-466e-afb0-8904fbddac42-agent-bf4b7700-9630-466e-afb0-8904fbddac42.json +0 -1
  172. claude_mpm-3.7.1/.claude/todos/c2189d0d-9c2b-400a-bf7c-3989ef6cd37d-agent-c2189d0d-9c2b-400a-bf7c-3989ef6cd37d.json +0 -1
  173. claude_mpm-3.7.1/.claude/todos/c35ee595-142f-454b-bb36-dc434d4a80a6-agent-c35ee595-142f-454b-bb36-dc434d4a80a6.json +0 -1
  174. claude_mpm-3.7.1/.claude/todos/c629949d-4641-45ff-81d3-d7c8f353da81-agent-c629949d-4641-45ff-81d3-d7c8f353da81.json +0 -1
  175. claude_mpm-3.7.1/.claude/todos/c8cecbec-a3bb-4507-98a4-c590a4e919b2-agent-c8cecbec-a3bb-4507-98a4-c590a4e919b2.json +0 -38
  176. claude_mpm-3.7.1/.claude/todos/cce78c00-7309-4bc4-802c-3bad75be09cc-agent-cce78c00-7309-4bc4-802c-3bad75be09cc.json +0 -1
  177. claude_mpm-3.7.1/.claude/todos/d55a3a18-0143-4401-ba56-ea630982c105-agent-d55a3a18-0143-4401-ba56-ea630982c105.json +0 -32
  178. claude_mpm-3.7.1/.claude/todos/d881887b-49bc-4fda-acda-c866681c8f13-agent-d881887b-49bc-4fda-acda-c866681c8f13.json +0 -20
  179. claude_mpm-3.7.1/.claude/todos/db3e76fb-7b9d-4f1c-8822-cce448fdf9e6-agent-db3e76fb-7b9d-4f1c-8822-cce448fdf9e6.json +0 -1
  180. claude_mpm-3.7.1/.claude/todos/dc7344a6-cd2e-4f20-a945-deb2e39f4fbc-agent-dc7344a6-cd2e-4f20-a945-deb2e39f4fbc.json +0 -1
  181. claude_mpm-3.7.1/.claude/todos/eb12ed58-94e3-490a-b8c8-b2912fa77fbe-agent-eb12ed58-94e3-490a-b8c8-b2912fa77fbe.json +0 -1
  182. claude_mpm-3.7.1/.claude/todos/ef4c285d-d79b-4c6e-a458-49cb26bf3c0a-agent-ef4c285d-d79b-4c6e-a458-49cb26bf3c0a.json +0 -1
  183. claude_mpm-3.7.1/.claude/todos/f295b25f-51d8-4fff-b71d-aa18d7028466-agent-f295b25f-51d8-4fff-b71d-aa18d7028466.json +0 -1
  184. claude_mpm-3.7.1/.claude/todos/f2a683d3-4d16-4c94-bf52-03efaf45f7f1-agent-f2a683d3-4d16-4c94-bf52-03efaf45f7f1.json +0 -1
  185. claude_mpm-3.7.1/.claude/todos/f536b1f5-879c-4236-9718-599337ffc815-agent-f536b1f5-879c-4236-9718-599337ffc815.json +0 -1
  186. claude_mpm-3.7.1/.claude/todos/fabcbe8a-6751-454b-a240-e9393391e2e9-agent-fabcbe8a-6751-454b-a240-e9393391e2e9.json +0 -1
  187. claude_mpm-3.7.1/.claude/todos/fdebc52b-3519-44c8-a3af-ce87f39272cd-agent-fdebc52b-3519-44c8-a3af-ce87f39272cd.json +0 -1
  188. claude_mpm-3.7.1/.claude/todos/fe57db22-5ef9-4522-9423-5c20dd665ef6-agent-fe57db22-5ef9-4522-9423-5c20dd665ef6.json +0 -1
  189. claude_mpm-3.7.1/.githooks/pre-commit +0 -50
  190. claude_mpm-3.7.1/.gitignore +0 -67
  191. claude_mpm-3.7.1/.npmignore +0 -50
  192. claude_mpm-3.7.1/.python-version +0 -1
  193. claude_mpm-3.7.1/.trackdown.yaml +0 -30
  194. claude_mpm-3.7.1/CHANGELOG.md +0 -1055
  195. claude_mpm-3.7.1/Makefile +0 -258
  196. claude_mpm-3.7.1/QUICKSTART.md +0 -156
  197. claude_mpm-3.7.1/VERSION +0 -1
  198. claude_mpm-3.7.1/agent_memory_test_results.json +0 -96
  199. claude_mpm-3.7.1/bin/claude-mpm +0 -89
  200. claude_mpm-3.7.1/bin/claude-mpm-hooks +0 -106
  201. claude_mpm-3.7.1/bin/ticket +0 -60
  202. claude_mpm-3.7.1/config/mcp_services.yaml +0 -117
  203. claude_mpm-3.7.1/debug_agent_response.txt +0 -26
  204. claude_mpm-3.7.1/docker/Dockerfile.clean-install +0 -167
  205. claude_mpm-3.7.1/docker/README.md +0 -184
  206. claude_mpm-3.7.1/docker/docker-compose.yml +0 -109
  207. claude_mpm-3.7.1/docker/verify-installation.sh +0 -127
  208. claude_mpm-3.7.1/examples/awesome-patterns/enhanced_claude_md_example.md +0 -145
  209. claude_mpm-3.7.1/examples/awesome-patterns/slash_command_example.md +0 -322
  210. claude_mpm-3.7.1/examples/awesome-patterns/validation_first_example.py +0 -295
  211. claude_mpm-3.7.1/examples/dependency_injection_demo.py +0 -190
  212. claude_mpm-3.7.1/examples/json_rpc_hooks_demo.py +0 -109
  213. claude_mpm-3.7.1/examples/todo_prefix_hook_example.py +0 -176
  214. claude_mpm-3.7.1/examples/todo_prefix_hook_integration.py +0 -239
  215. claude_mpm-3.7.1/npm-bin/claude-mpm.js +0 -382
  216. claude_mpm-3.7.1/package.json +0 -49
  217. claude_mpm-3.7.1/requirements-monitor.txt +0 -5
  218. claude_mpm-3.7.1/scripts/.claude-mpm/logs/hooks_20250726.log +0 -24
  219. claude_mpm-3.7.1/scripts/.claude-mpm/logs/hooks_20250731.log +0 -208
  220. claude_mpm-3.7.1/scripts/BROWSER_CONTROL_GUIDE.md +0 -76
  221. claude_mpm-3.7.1/scripts/COMPREHENSIVE_TEST_REPORT.md +0 -82
  222. claude_mpm-3.7.1/scripts/CONNECTION_POOL_IMPROVEMENTS.md +0 -126
  223. claude_mpm-3.7.1/scripts/ENHANCED_HOOK_DATA_GUIDE.md +0 -113
  224. claude_mpm-3.7.1/scripts/JSON_VIEWER_TEST_SUMMARY.md +0 -96
  225. claude_mpm-3.7.1/scripts/README.md +0 -112
  226. claude_mpm-3.7.1/scripts/SOCKETIO_DIAGNOSTICS_README.md +0 -181
  227. claude_mpm-3.7.1/scripts/SOCKETIO_FLOW_TEST_RESULTS.md +0 -180
  228. claude_mpm-3.7.1/scripts/add_agent_versioning.py +0 -41
  229. claude_mpm-3.7.1/scripts/agent_manager_integration_report.md +0 -123
  230. claude_mpm-3.7.1/scripts/analyze_agent_events.py +0 -131
  231. claude_mpm-3.7.1/scripts/analyze_framework_loaders.py +0 -32
  232. claude_mpm-3.7.1/scripts/analyze_git_clickup_correlation.py +0 -589
  233. claude_mpm-3.7.1/scripts/analyze_hook_data.py +0 -114
  234. claude_mpm-3.7.1/scripts/check_socketio_events.py +0 -45
  235. claude_mpm-3.7.1/scripts/check_version_sync.py +0 -120
  236. claude_mpm-3.7.1/scripts/claude-mpm +0 -148
  237. claude_mpm-3.7.1/scripts/claude-mpm-socketio +0 -32
  238. claude_mpm-3.7.1/scripts/claude_mpm_monitor.html +0 -567
  239. claude_mpm-3.7.1/scripts/cleanup_logs.py +0 -256
  240. claude_mpm-3.7.1/scripts/consolidate_services.py +0 -38
  241. claude_mpm-3.7.1/scripts/convert_agents_to_yaml.py +0 -186
  242. claude_mpm-3.7.1/scripts/debug_agent_loading.py +0 -102
  243. claude_mpm-3.7.1/scripts/debug_agent_structure.py +0 -66
  244. claude_mpm-3.7.1/scripts/debug_agents_tab.py +0 -183
  245. claude_mpm-3.7.1/scripts/debug_capabilities_generation.py +0 -112
  246. claude_mpm-3.7.1/scripts/debug_dashboard.html +0 -113
  247. claude_mpm-3.7.1/scripts/debug_deployment_logic.py +0 -52
  248. claude_mpm-3.7.1/scripts/debug_hook_behavior.py +0 -67
  249. claude_mpm-3.7.1/scripts/debug_hook_behavior2.py +0 -44
  250. claude_mpm-3.7.1/scripts/debug_hook_flow.py +0 -192
  251. claude_mpm-3.7.1/scripts/debug_hud_data_flow.py +0 -805
  252. claude_mpm-3.7.1/scripts/debug_migration.py +0 -51
  253. claude_mpm-3.7.1/scripts/debug_path_detection.py +0 -25
  254. claude_mpm-3.7.1/scripts/debug_research_version.py +0 -47
  255. claude_mpm-3.7.1/scripts/debug_response_tracker.py +0 -32
  256. claude_mpm-3.7.1/scripts/debug_server_connection_handler.py +0 -215
  257. claude_mpm-3.7.1/scripts/debug_session_flow.py +0 -99
  258. claude_mpm-3.7.1/scripts/debug_socketio_connection.py +0 -154
  259. claude_mpm-3.7.1/scripts/debug_socketio_namespaces.py +0 -214
  260. claude_mpm-3.7.1/scripts/debug_socketio_pool.py +0 -207
  261. claude_mpm-3.7.1/scripts/debug_subagent_stop.py +0 -158
  262. claude_mpm-3.7.1/scripts/debug_subagent_stop_data.py +0 -42
  263. claude_mpm-3.7.1/scripts/debug_subprocess.py +0 -40
  264. claude_mpm-3.7.1/scripts/debug_tab_clicking.py +0 -101
  265. claude_mpm-3.7.1/scripts/demo/subprocess_before_after.py +0 -234
  266. claude_mpm-3.7.1/scripts/demo/subprocess_improvements_demo.py +0 -407
  267. claude_mpm-3.7.1/scripts/demo_agent_events.py +0 -80
  268. claude_mpm-3.7.1/scripts/demo_enhanced_hook_data.py +0 -186
  269. claude_mpm-3.7.1/scripts/demo_health_monitoring.py +0 -337
  270. claude_mpm-3.7.1/scripts/demo_hook_behavior.sh +0 -53
  271. claude_mpm-3.7.1/scripts/demo_monitor_installation.py +0 -97
  272. claude_mpm-3.7.1/scripts/deploy_local.sh +0 -443
  273. claude_mpm-3.7.1/scripts/diagnostic_connection_auth_test.py +0 -557
  274. claude_mpm-3.7.1/scripts/diagnostic_dashboard_namespace_test.html +0 -550
  275. claude_mpm-3.7.1/scripts/diagnostic_end_to_end_test.py +0 -573
  276. claude_mpm-3.7.1/scripts/diagnostic_hook_handler_test.py +0 -344
  277. claude_mpm-3.7.1/scripts/diagnostic_socketio_server_monitor.py +0 -233
  278. claude_mpm-3.7.1/scripts/example_async_integration.py +0 -279
  279. claude_mpm-3.7.1/scripts/example_hook_usage.py +0 -163
  280. claude_mpm-3.7.1/scripts/final_integration_demo.py +0 -180
  281. claude_mpm-3.7.1/scripts/final_socketio_verification.py +0 -245
  282. claude_mpm-3.7.1/scripts/find_websocket_port.py +0 -50
  283. claude_mpm-3.7.1/scripts/fix_agent_type_tracking.py +0 -208
  284. claude_mpm-3.7.1/scripts/fix_all_fallback_imports.py +0 -68
  285. claude_mpm-3.7.1/scripts/fix_all_imports.py +0 -241
  286. claude_mpm-3.7.1/scripts/fix_event_json_mismatch.py +0 -206
  287. claude_mpm-3.7.1/scripts/fix_fallback_imports.py +0 -58
  288. claude_mpm-3.7.1/scripts/flask_hello_world.py +0 -66
  289. claude_mpm-3.7.1/scripts/generate_comprehensive_test_report.py +0 -323
  290. claude_mpm-3.7.1/scripts/hello_flask.py +0 -17
  291. claude_mpm-3.7.1/scripts/hello_world.py +0 -10
  292. claude_mpm-3.7.1/scripts/install.sh +0 -141
  293. claude_mpm-3.7.1/scripts/install_dev.sh +0 -74
  294. claude_mpm-3.7.1/scripts/install_hooks.py +0 -172
  295. claude_mpm-3.7.1/scripts/install_socketio_server.py +0 -407
  296. claude_mpm-3.7.1/scripts/interactive_wrapper.py +0 -109
  297. claude_mpm-3.7.1/scripts/launch_monitor.py +0 -132
  298. claude_mpm-3.7.1/scripts/launch_socketio_dashboard.py +0 -261
  299. claude_mpm-3.7.1/scripts/launch_with_agents.py +0 -191
  300. claude_mpm-3.7.1/scripts/manage_version.py +0 -594
  301. claude_mpm-3.7.1/scripts/migrate_agents_to_new_schema.py +0 -378
  302. claude_mpm-3.7.1/scripts/migrate_config.py +0 -98
  303. claude_mpm-3.7.1/scripts/migrate_logging_imports.py +0 -99
  304. claude_mpm-3.7.1/scripts/migrate_to_json_rpc_hooks.py +0 -164
  305. claude_mpm-3.7.1/scripts/monitor_mcp_services.py +0 -453
  306. claude_mpm-3.7.1/scripts/monitor_socketio_events.py +0 -97
  307. claude_mpm-3.7.1/scripts/monitoring_daily_checklist.py +0 -260
  308. claude_mpm-3.7.1/scripts/monitoring_weekly_review.py +0 -256
  309. claude_mpm-3.7.1/scripts/mpm_test.py +0 -11
  310. claude_mpm-3.7.1/scripts/package-lock.json +0 -280
  311. claude_mpm-3.7.1/scripts/postinstall.js +0 -106
  312. claude_mpm-3.7.1/scripts/publish.sh +0 -98
  313. claude_mpm-3.7.1/scripts/qa_results.json +0 -108
  314. claude_mpm-3.7.1/scripts/register_memory_hooks.py +0 -142
  315. claude_mpm-3.7.1/scripts/release.py +0 -876
  316. claude_mpm-3.7.1/scripts/remove_remaining_ticketing.py +0 -150
  317. claude_mpm-3.7.1/scripts/remove_ticketing_references.py +0 -82
  318. claude_mpm-3.7.1/scripts/requirements_analysis.txt +0 -7
  319. claude_mpm-3.7.1/scripts/resume_flag_test_report.md +0 -159
  320. claude_mpm-3.7.1/scripts/run_all_socketio_tests.py +0 -115
  321. claude_mpm-3.7.1/scripts/run_all_tests.sh +0 -30
  322. claude_mpm-3.7.1/scripts/run_e2e_tests.sh +0 -48
  323. claude_mpm-3.7.1/scripts/run_performance_validation_suite.py +0 -387
  324. claude_mpm-3.7.1/scripts/run_socketio_diagnostics.py +0 -488
  325. claude_mpm-3.7.1/scripts/server.log +0 -119
  326. claude_mpm-3.7.1/scripts/setup_local_mcp.sh +0 -457
  327. claude_mpm-3.7.1/scripts/show_pm_system_prompt.py +0 -50
  328. claude_mpm-3.7.1/scripts/simple_agent_test.py +0 -61
  329. claude_mpm-3.7.1/scripts/simple_socket_test.py +0 -182
  330. claude_mpm-3.7.1/scripts/socketio_daemon.py +0 -221
  331. claude_mpm-3.7.1/scripts/socketio_integration_summary.md +0 -100
  332. claude_mpm-3.7.1/scripts/socketio_server_manager.py +0 -753
  333. claude_mpm-3.7.1/scripts/standardize_imports.py +0 -281
  334. claude_mpm-3.7.1/scripts/start_persistent_socketio_server.py +0 -50
  335. claude_mpm-3.7.1/scripts/start_python_socketio.py +0 -36
  336. claude_mpm-3.7.1/scripts/start_socketio_server_manual.py +0 -24
  337. claude_mpm-3.7.1/scripts/start_test_server.py +0 -73
  338. claude_mpm-3.7.1/scripts/sync_tickets_github.sh +0 -109
  339. claude_mpm-3.7.1/scripts/test_cli_fixes.py +0 -145
  340. claude_mpm-3.7.1/scripts/test_results_summary.md +0 -189
  341. claude_mpm-3.7.1/scripts/test_startup_initialization.sh +0 -54
  342. claude_mpm-3.7.1/scripts/ticket.py +0 -269
  343. claude_mpm-3.7.1/scripts/trace_deployment.py +0 -62
  344. claude_mpm-3.7.1/scripts/trigger_hook_events.py +0 -141
  345. claude_mpm-3.7.1/scripts/uninstall.sh +0 -73
  346. claude_mpm-3.7.1/scripts/update_agent_service_imports.py +0 -117
  347. claude_mpm-3.7.1/scripts/update_memory_imports.py +0 -70
  348. claude_mpm-3.7.1/scripts/validate_agent_configuration.py +0 -268
  349. claude_mpm-3.7.1/scripts/validate_agent_schema.py +0 -63
  350. claude_mpm-3.7.1/scripts/validate_imports.py +0 -182
  351. claude_mpm-3.7.1/scripts/verify_agent_deployment.py +0 -68
  352. claude_mpm-3.7.1/scripts/verify_config_buttons.py +0 -56
  353. claude_mpm-3.7.1/scripts/verify_config_paths.py +0 -86
  354. claude_mpm-3.7.1/scripts/verify_hook_data_completeness.py +0 -146
  355. claude_mpm-3.7.1/scripts/verify_import_fixes.py +0 -213
  356. claude_mpm-3.7.1/scripts/verify_imports.py +0 -137
  357. claude_mpm-3.7.1/scripts/verify_memory_reorganization.py +0 -151
  358. claude_mpm-3.7.1/scripts/websocket_memory_monitor.html +0 -457
  359. claude_mpm-3.7.1/scripts/websocket_monitor.html +0 -300
  360. claude_mpm-3.7.1/scripts/working_directory_fix_report.md +0 -106
  361. claude_mpm-3.7.1/src/claude_mpm/.claude-mpm/logs/hooks_20250728.log +0 -10
  362. claude_mpm-3.7.1/src/claude_mpm/VERSION +0 -1
  363. claude_mpm-3.7.1/src/claude_mpm/agents/agent-template.yaml +0 -83
  364. claude_mpm-3.7.1/src/claude_mpm/agents/templates/code_analyzer.json +0 -81
  365. claude_mpm-3.7.1/src/claude_mpm/agents/templates/engineer.json +0 -129
  366. claude_mpm-3.7.1/src/claude_mpm/agents/templates/research.json +0 -82
  367. claude_mpm-3.7.1/src/claude_mpm/agents/templates/test_integration.json +0 -113
  368. claude_mpm-3.7.1/src/claude_mpm/cli/README.md +0 -108
  369. claude_mpm-3.7.1/src/claude_mpm/cli_module/refactoring_guide.md +0 -253
  370. claude_mpm-3.7.1/src/claude_mpm/config/async_logging_config.yaml +0 -145
  371. claude_mpm-3.7.1/src/claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +0 -34
  372. claude_mpm-3.7.1/src/claude_mpm/dashboard/.claude-mpm/memories/README.md +0 -36
  373. claude_mpm-3.7.1/src/claude_mpm/dashboard/README.md +0 -121
  374. claude_mpm-3.7.1/src/claude_mpm/dashboard/static/js/dashboard.js.backup +0 -1973
  375. claude_mpm-3.7.1/src/claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +0 -36
  376. claude_mpm-3.7.1/src/claude_mpm/hooks/README.md +0 -96
  377. claude_mpm-3.7.1/src/claude_mpm/schemas/agent_schema.json +0 -435
  378. claude_mpm-3.7.1/src/claude_mpm/services/framework_claude_md_generator/README.md +0 -92
  379. claude_mpm-3.7.1/src/claude_mpm/services/ticket_manager.py +0 -213
  380. claude_mpm-3.7.1/src/claude_mpm/services/version_control/VERSION +0 -1
  381. claude_mpm-3.7.1/src/claude_mpm.egg-info/SOURCES.txt +0 -565
  382. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/CLAUDE.md +0 -0
  383. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/LICENSE +0 -0
  384. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/MANIFEST.in +0 -0
  385. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/claude-mpm +0 -0
  386. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/requirements.txt +0 -0
  387. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/scripts/run_mpm.py +0 -0
  388. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/scripts/ticket +0 -0
  389. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/setup.cfg +0 -0
  390. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/setup.py +0 -0
  391. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/__init__.py +0 -0
  392. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/__main__.py +0 -0
  393. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  394. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/BASE_PM.md +0 -0
  395. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/__init__.py +0 -0
  396. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/agent_loader.py +0 -0
  397. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  398. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/agents_metadata.py +0 -0
  399. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/async_agent_loader.py +0 -0
  400. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
  401. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/base_agent.json +0 -0
  402. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/base_agent_loader.py +0 -0
  403. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/system_agent_config.py +0 -0
  404. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -0
  405. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/.claude-mpm/memories/version_control_agent.md +0 -0
  406. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/__init__.py +0 -0
  407. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  408. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  409. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  410. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  411. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  412. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  413. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  414. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  415. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/__init__.py +0 -0
  416. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/__main__.py +0 -0
  417. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/__init__.py +0 -0
  418. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/aggregate.py +0 -0
  419. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/config.py +0 -0
  420. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/info.py +0 -0
  421. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/memory.py +0 -0
  422. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/monitor.py +0 -0
  423. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/run.py +0 -0
  424. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/commands/tickets.py +0 -0
  425. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli/utils.py +0 -0
  426. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli_module/__init__.py +0 -0
  427. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli_module/args.py +0 -0
  428. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli_module/commands.py +0 -0
  429. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/cli_module/migration_example.py +0 -0
  430. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/config/__init__.py +0 -0
  431. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/config/agent_config.py +0 -0
  432. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/config/paths.py +0 -0
  433. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/config/socketio_config.py +0 -0
  434. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/constants.py +0 -0
  435. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/__init__.py +0 -0
  436. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  437. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/agent_registry.py +0 -0
  438. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/agent_session_manager.py +0 -0
  439. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/base_service.py +0 -0
  440. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/claude_runner.py +0 -0
  441. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/config.py +0 -0
  442. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/config_aliases.py +0 -0
  443. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/config_paths.py +0 -0
  444. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/container.py +0 -0
  445. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/factories.py +0 -0
  446. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/hook_manager.py +0 -0
  447. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/injectable_service.py +0 -0
  448. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/interfaces.py +0 -0
  449. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/logger.py +0 -0
  450. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  451. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/mixins.py +0 -0
  452. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
  453. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/service_registry.py +0 -0
  454. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/session_manager.py +0 -0
  455. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/socketio_pool.py +0 -0
  456. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/core/tool_access_control.py +0 -0
  457. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/index.html +0 -0
  458. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
  459. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
  460. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
  461. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
  462. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
  463. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
  464. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
  465. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
  466. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
  467. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
  468. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
  469. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
  470. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
  471. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
  472. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -0
  473. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
  474. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
  475. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  476. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/deployment_paths.py +0 -0
  477. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
  478. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/generators/__init__.py +0 -0
  479. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  480. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/__init__.py +0 -0
  481. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/base_hook.py +0 -0
  482. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  483. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  484. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  485. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
  486. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  487. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  488. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/init.py +0 -0
  489. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/models/__init__.py +0 -0
  490. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/models/agent_definition.py +0 -0
  491. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/models/agent_session.py +0 -0
  492. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/scripts/__init__.py +0 -0
  493. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
  494. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
  495. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/__init__.py +0 -0
  496. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/__init__.py +0 -0
  497. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
  498. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
  499. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
  500. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
  501. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
  502. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
  503. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
  504. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/management/__init__.py +0 -0
  505. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
  506. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
  507. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
  508. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
  509. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
  510. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/registry/agent_registry.py +0 -0
  511. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
  512. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
  513. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/async_session_logger.py +0 -0
  514. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/claude_session_logger.py +0 -0
  515. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/event_aggregator.py +0 -0
  516. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/exceptions.py +0 -0
  517. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  518. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  519. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  520. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  521. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  522. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  523. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  524. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  525. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  526. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  527. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  528. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  529. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  530. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  531. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  532. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  533. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  534. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  535. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  536. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
  537. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/health_monitor.py +0 -0
  538. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/hook_service.py +0 -0
  539. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/__init__.py +0 -0
  540. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/builder.py +0 -0
  541. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
  542. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
  543. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
  544. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/optimizer.py +0 -0
  545. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/memory/router.py +0 -0
  546. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/optimized_hook_service.py +0 -0
  547. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/project_analyzer.py +0 -0
  548. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/project_registry.py +0 -0
  549. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/recovery_manager.py +0 -0
  550. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/response_tracker.py +0 -0
  551. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/socketio_client_manager.py +0 -0
  552. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/socketio_server.py +0 -0
  553. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/standalone_socketio_server.py +0 -0
  554. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/ticket_manager_di.py +0 -0
  555. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/ticketing_service_original.py +0 -0
  556. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/version_control/__init__.py +0 -0
  557. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  558. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  559. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  560. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  561. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/ticket_wrapper.py +0 -0
  562. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/__init__.py +0 -0
  563. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/config_manager.py +0 -0
  564. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/console.py +0 -0
  565. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/dependency_cache.py +0 -0
  566. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/dependency_manager.py +0 -0
  567. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/dependency_strategies.py +0 -0
  568. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/environment_context.py +0 -0
  569. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/error_handler.py +0 -0
  570. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/framework_detection.py +0 -0
  571. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/import_migration_example.py +0 -0
  572. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/imports.py +0 -0
  573. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/path_operations.py +0 -0
  574. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/paths.py +0 -0
  575. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/utils/session_logging.py +0 -0
  576. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/validation/__init__.py +0 -0
  577. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm/validation/agent_validator.py +0 -0
  578. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  579. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  580. {claude_mpm-3.7.1 → claude_mpm-3.7.8}/src/claude_mpm.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 3.7.1
3
+ Version: 3.7.8
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
@@ -30,7 +30,6 @@ Requires-Dist: flask>=3.0.0
30
30
  Requires-Dist: flask-cors>=4.0.0
31
31
  Requires-Dist: watchdog>=3.0.0
32
32
  Requires-Dist: tree-sitter>=0.21.0
33
- Requires-Dist: tree-sitter-language-pack>=0.8.0
34
33
  Requires-Dist: python-socketio>=5.11.0
35
34
  Requires-Dist: aiohttp>=3.9.0
36
35
  Requires-Dist: aiohttp-cors>=0.8.0
@@ -47,53 +46,48 @@ Requires-Dist: flake8; extra == "dev"
47
46
  Requires-Dist: mypy; extra == "dev"
48
47
  Provides-Extra: monitor
49
48
  Provides-Extra: agents
50
- Requires-Dist: allure-pytest>=2.13.0; extra == "agents"
51
- Requires-Dist: ansible>=9.0.0; extra == "agents"
52
- Requires-Dist: apache-airflow>=2.8.0; extra == "agents"
53
49
  Requires-Dist: bandit>=1.7.5; extra == "agents"
54
50
  Requires-Dist: black>=23.0.0; extra == "agents"
55
- Requires-Dist: checkov>=3.1.0; extra == "agents"
56
51
  Requires-Dist: commitizen>=3.13.0; extra == "agents"
57
- Requires-Dist: cryptography>=41.0.0; extra == "agents"
58
52
  Requires-Dist: dask>=2023.12.0; extra == "agents"
59
53
  Requires-Dist: detect-secrets>=1.4.0; extra == "agents"
60
54
  Requires-Dist: diagrams>=0.23.0; extra == "agents"
61
- Requires-Dist: docker>=7.0.0; extra == "agents"
62
55
  Requires-Dist: docstring-parser>=0.15.0; extra == "agents"
63
56
  Requires-Dist: faker>=20.0.0; extra == "agents"
64
57
  Requires-Dist: gitlint>=0.19.0; extra == "agents"
65
58
  Requires-Dist: gitpython>=3.1.40; extra == "agents"
66
- Requires-Dist: great-expectations>=0.18.0; extra == "agents"
67
59
  Requires-Dist: hypothesis>=6.92.0; extra == "agents"
68
60
  Requires-Dist: isort>=5.12.0; extra == "agents"
69
- Requires-Dist: kubernetes>=28.0.0; extra == "agents"
70
61
  Requires-Dist: lizard>=1.17.0; extra == "agents"
71
62
  Requires-Dist: mermaid-py>=0.2.0; extra == "agents"
72
63
  Requires-Dist: mkdocs>=1.5.0; extra == "agents"
73
64
  Requires-Dist: mutmut>=2.4.0; extra == "agents"
74
65
  Requires-Dist: mypy>=1.8.0; extra == "agents"
75
66
  Requires-Dist: pandas>=2.1.0; extra == "agents"
76
- Requires-Dist: pip-audit>=2.6.0; extra == "agents"
77
67
  Requires-Dist: pre-commit>=3.5.0; extra == "agents"
78
68
  Requires-Dist: prometheus-client>=0.19.0; extra == "agents"
79
69
  Requires-Dist: pydoc-markdown>=4.8.0; extra == "agents"
80
70
  Requires-Dist: pydriller>=2.5.0; extra == "agents"
81
71
  Requires-Dist: pygments>=2.17.0; extra == "agents"
82
- Requires-Dist: pyjwt>=2.8.0; extra == "agents"
83
72
  Requires-Dist: pytest>=7.4.0; extra == "agents"
84
73
  Requires-Dist: pytest-benchmark>=4.0.0; extra == "agents"
85
74
  Requires-Dist: pytest-cov>=4.1.0; extra == "agents"
86
75
  Requires-Dist: radon>=6.0.0; extra == "agents"
87
76
  Requires-Dist: rope>=1.11.0; extra == "agents"
88
- Requires-Dist: safety>=3.0.0; extra == "agents"
89
- Requires-Dist: semgrep>=1.45.0; extra == "agents"
90
77
  Requires-Dist: sphinx>=7.2.0; extra == "agents"
91
78
  Requires-Dist: sqlalchemy>=2.0.0; extra == "agents"
92
79
  Requires-Dist: sqlparse>=0.4.4; extra == "agents"
93
- Requires-Dist: terraform-compliance>=1.3.0; extra == "agents"
94
80
  Requires-Dist: tree-sitter>=0.21.0; extra == "agents"
95
- Requires-Dist: tree-sitter-language-pack>=0.8.0; extra == "agents"
96
- Requires-Dist: ydata-profiling>=4.6.0; extra == "agents"
81
+ Requires-Dist: tree-sitter-python>=0.21.0; extra == "agents"
82
+ Requires-Dist: tree-sitter-javascript>=0.21.0; extra == "agents"
83
+ Requires-Dist: tree-sitter-typescript>=0.21.0; extra == "agents"
84
+ Requires-Dist: tree-sitter-go>=0.21.0; extra == "agents"
85
+ Requires-Dist: tree-sitter-rust>=0.21.0; extra == "agents"
86
+ Requires-Dist: tree-sitter-java>=0.21.0; extra == "agents"
87
+ Requires-Dist: tree-sitter-cpp>=0.21.0; extra == "agents"
88
+ Requires-Dist: tree-sitter-c>=0.21.0; extra == "agents"
89
+ Requires-Dist: tree-sitter-ruby>=0.21.0; extra == "agents"
90
+ Requires-Dist: tree-sitter-php>=0.21.0; extra == "agents"
97
91
  Dynamic: author-email
98
92
  Dynamic: home-page
99
93
  Dynamic: license-file
@@ -118,19 +112,21 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
118
112
  ## Installation
119
113
 
120
114
  ```bash
121
- # Install from PyPI
115
+ # Basic installation - pure Python, no compilation required
122
116
  pip install claude-mpm
123
117
 
124
118
  # Install with development dependencies
125
119
  pip install "claude-mpm[dev]"
126
120
 
127
- # Install with agent dependencies (recommended for full functionality)
121
+ # Install with agent dependencies - pure Python tools
128
122
  pip install "claude-mpm[agents]"
129
123
 
130
124
  # Install with all optional dependencies
131
125
  pip install "claude-mpm[agents,dev]"
132
126
  ```
133
127
 
128
+ All dependencies are pure Python - no Rust or compilation required. The `agents` dependency group includes tools for testing, code analysis, documentation, and development workflows.
129
+
134
130
  ## Basic Usage
135
131
 
136
132
  ```bash
@@ -164,10 +160,10 @@ For detailed usage, see [QUICKSTART.md](QUICKSTART.md)
164
160
 
165
161
  ### Agent Dependencies
166
162
 
167
- Claude MPM automatically manages Python dependencies required by agents. Agents can declare their dependencies in their configuration files, and the system aggregates them for easy installation.
163
+ Claude MPM automatically manages Python dependencies required by agents. All dependencies are pure Python packages that don't require compilation. Agents can declare their dependencies in their configuration files, and the system aggregates them for easy installation.
168
164
 
169
165
  ```bash
170
- # Install all agent dependencies
166
+ # Install all agent dependencies (pure Python)
171
167
  pip install "claude-mpm[agents]"
172
168
 
173
169
  # View current agent dependencies
@@ -17,19 +17,21 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
17
17
  ## Installation
18
18
 
19
19
  ```bash
20
- # Install from PyPI
20
+ # Basic installation - pure Python, no compilation required
21
21
  pip install claude-mpm
22
22
 
23
23
  # Install with development dependencies
24
24
  pip install "claude-mpm[dev]"
25
25
 
26
- # Install with agent dependencies (recommended for full functionality)
26
+ # Install with agent dependencies - pure Python tools
27
27
  pip install "claude-mpm[agents]"
28
28
 
29
29
  # Install with all optional dependencies
30
30
  pip install "claude-mpm[agents,dev]"
31
31
  ```
32
32
 
33
+ All dependencies are pure Python - no Rust or compilation required. The `agents` dependency group includes tools for testing, code analysis, documentation, and development workflows.
34
+
33
35
  ## Basic Usage
34
36
 
35
37
  ```bash
@@ -63,10 +65,10 @@ For detailed usage, see [QUICKSTART.md](QUICKSTART.md)
63
65
 
64
66
  ### Agent Dependencies
65
67
 
66
- Claude MPM automatically manages Python dependencies required by agents. Agents can declare their dependencies in their configuration files, and the system aggregates them for easy installation.
68
+ Claude MPM automatically manages Python dependencies required by agents. All dependencies are pure Python packages that don't require compilation. Agents can declare their dependencies in their configuration files, and the system aggregates them for easy installation.
67
69
 
68
70
  ```bash
69
- # Install all agent dependencies
71
+ # Install all agent dependencies (pure Python)
70
72
  pip install "claude-mpm[agents]"
71
73
 
72
74
  # View current agent dependencies
@@ -0,0 +1 @@
1
+ 3.7.8
@@ -10,7 +10,7 @@ readme = "README.md"
10
10
  requires-python = ">=3.8"
11
11
  keywords = [ "claude", "orchestration", "multi-agent", "ticket-management",]
12
12
  classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12",]
13
- dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "tree-sitter-language-pack>=0.8.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0",]
13
+ dependencies = [ "ai-trackdown-pytools>=1.4.0", "pyyaml>=6.0", "python-dotenv>=0.19.0", "click>=8.0.0", "pexpect>=4.8.0", "psutil>=5.9.0", "requests>=2.25.0", "flask>=3.0.0", "flask-cors>=4.0.0", "watchdog>=3.0.0", "tree-sitter>=0.21.0", "python-socketio>=5.11.0", "aiohttp>=3.9.0", "aiohttp-cors>=0.8.0", "python-engineio>=4.8.0", "python-frontmatter>=1.0.0", "mistune>=3.0.0", "aiofiles>=23.0.0",]
14
14
  [[project.authors]]
15
15
  name = "Claude MPM Team"
16
16
 
@@ -20,7 +20,8 @@ text = "MIT"
20
20
  [project.optional-dependencies]
21
21
  dev = [ "pytest>=7.0", "pytest-asyncio", "pytest-cov", "black", "flake8", "mypy",]
22
22
  monitor = []
23
- agents = [ "allure-pytest>=2.13.0", "ansible>=9.0.0", "apache-airflow>=2.8.0", "bandit>=1.7.5", "black>=23.0.0", "checkov>=3.1.0", "commitizen>=3.13.0", "cryptography>=41.0.0", "dask>=2023.12.0", "detect-secrets>=1.4.0", "diagrams>=0.23.0", "docker>=7.0.0", "docstring-parser>=0.15.0", "faker>=20.0.0", "gitlint>=0.19.0", "gitpython>=3.1.40", "great-expectations>=0.18.0", "hypothesis>=6.92.0", "isort>=5.12.0", "kubernetes>=28.0.0", "lizard>=1.17.0", "mermaid-py>=0.2.0", "mkdocs>=1.5.0", "mutmut>=2.4.0", "mypy>=1.8.0", "pandas>=2.1.0", "pip-audit>=2.6.0", "pre-commit>=3.5.0", "prometheus-client>=0.19.0", "pydoc-markdown>=4.8.0", "pydriller>=2.5.0", "pygments>=2.17.0", "pyjwt>=2.8.0", "pytest>=7.4.0", "pytest-benchmark>=4.0.0", "pytest-cov>=4.1.0", "radon>=6.0.0", "rope>=1.11.0", "safety>=3.0.0", "semgrep>=1.45.0", "sphinx>=7.2.0", "sqlalchemy>=2.0.0", "sqlparse>=0.4.4", "terraform-compliance>=1.3.0", "tree-sitter>=0.21.0", "tree-sitter-language-pack>=0.8.0", "ydata-profiling>=4.6.0",]
23
+ # Pure Python agent dependencies - no compilation required
24
+ agents = [ "bandit>=1.7.5", "black>=23.0.0", "commitizen>=3.13.0", "dask>=2023.12.0", "detect-secrets>=1.4.0", "diagrams>=0.23.0", "docstring-parser>=0.15.0", "faker>=20.0.0", "gitlint>=0.19.0", "gitpython>=3.1.40", "hypothesis>=6.92.0", "isort>=5.12.0", "lizard>=1.17.0", "mermaid-py>=0.2.0", "mkdocs>=1.5.0", "mutmut>=2.4.0", "mypy>=1.8.0", "pandas>=2.1.0", "pre-commit>=3.5.0", "prometheus-client>=0.19.0", "pydoc-markdown>=4.8.0", "pydriller>=2.5.0", "pygments>=2.17.0", "pytest>=7.4.0", "pytest-benchmark>=4.0.0", "pytest-cov>=4.1.0", "radon>=6.0.0", "rope>=1.11.0", "sphinx>=7.2.0", "sqlalchemy>=2.0.0", "sqlparse>=0.4.4", "tree-sitter>=0.21.0", "tree-sitter-python>=0.21.0", "tree-sitter-javascript>=0.21.0", "tree-sitter-typescript>=0.21.0", "tree-sitter-go>=0.21.0", "tree-sitter-rust>=0.21.0", "tree-sitter-java>=0.21.0", "tree-sitter-cpp>=0.21.0", "tree-sitter-c>=0.21.0", "tree-sitter-ruby>=0.21.0", "tree-sitter-php>=0.21.0",]
24
25
 
25
26
  [project.scripts]
26
27
  claude-mpm = "claude_mpm.cli:main"
@@ -0,0 +1 @@
1
+ 3.7.8
@@ -141,6 +141,23 @@ Delegate to Research when:
141
141
  - Architecture decisions needed
142
142
  - Domain knowledge required
143
143
 
144
+ ### Ticketing Agent Scenarios
145
+
146
+ **ALWAYS delegate to Ticketing Agent when user mentions:**
147
+ - "ticket", "tickets", "ticketing"
148
+ - "epic", "epics"
149
+ - "issue", "issues"
150
+ - "task tracking", "task management"
151
+ - "project documentation"
152
+ - "work breakdown"
153
+ - "user stories"
154
+
155
+ The Ticketing Agent specializes in:
156
+ - Creating and managing epics, issues, and tasks
157
+ - Generating structured project documentation
158
+ - Breaking down work into manageable pieces
159
+ - Tracking project progress and dependencies
160
+
144
161
  ## Context-Aware Agent Selection
145
162
 
146
163
  - **PM questions** → Answer directly (only exception)
@@ -153,6 +170,7 @@ Delegate to Research when:
153
170
  - **Testing/quality** → QA Agent
154
171
  - **Version control** → Version Control Agent
155
172
  - **Integration testing** → Test Integration Agent
173
+ - **Ticket/issue management** → Ticketing Agent (when user mentions "ticket", "epic", "issue", or "task tracking")
156
174
 
157
175
  ## Error Handling Protocol
158
176
 
@@ -34,6 +34,7 @@ class ValidationResult:
34
34
  warnings: List[str]
35
35
  corrections: List[str]
36
36
  corrected_frontmatter: Optional[Dict[str, Any]] = None
37
+ field_corrections: Optional[Dict[str, Any]] = None # Specific field-level corrections
37
38
 
38
39
 
39
40
  class FrontmatterValidator:
@@ -109,6 +110,7 @@ class FrontmatterValidator:
109
110
  def __init__(self):
110
111
  """Initialize the validator with schema if available."""
111
112
  self.schema = self._load_schema()
113
+ self.all_valid_fields = self._extract_valid_fields()
112
114
 
113
115
  def _load_schema(self) -> Optional[Dict[str, Any]]:
114
116
  """Load the frontmatter schema from JSON file."""
@@ -121,6 +123,17 @@ class FrontmatterValidator:
121
123
  logger.warning(f"Failed to load frontmatter schema: {e}")
122
124
  return None
123
125
 
126
+ def _extract_valid_fields(self) -> set:
127
+ """Extract all valid field names from the schema."""
128
+ if self.schema and 'properties' in self.schema:
129
+ return set(self.schema['properties'].keys())
130
+ # Fallback to known fields if schema not available
131
+ return {
132
+ "name", "description", "version", "base_version", "author",
133
+ "tools", "model", "tags", "category", "max_tokens", "temperature",
134
+ "resource_tier", "dependencies", "capabilities", "color"
135
+ }
136
+
124
137
  def validate_and_correct(self, frontmatter: Dict[str, Any]) -> ValidationResult:
125
138
  """
126
139
  Validate and automatically correct frontmatter.
@@ -135,9 +148,10 @@ class FrontmatterValidator:
135
148
  warnings = []
136
149
  corrections = []
137
150
  corrected = frontmatter.copy()
151
+ field_corrections = {} # Track only the fields that actually need correction
138
152
 
139
- # Required fields check
140
- required_fields = ["name", "description", "version", "model"]
153
+ # Required fields check (from schema)
154
+ required_fields = self.schema.get('required', ["name", "description", "version", "model"]) if self.schema else ["name", "description", "version", "model"]
141
155
  for field in required_fields:
142
156
  if field not in corrected:
143
157
  errors.append(f"Missing required field: {field}")
@@ -153,6 +167,7 @@ class FrontmatterValidator:
153
167
  fixed_name = re.sub(r"[^a-z0-9_]", "", fixed_name)
154
168
  if fixed_name and fixed_name[0].isalpha():
155
169
  corrected["name"] = fixed_name
170
+ field_corrections["name"] = fixed_name
156
171
  corrections.append(f"Corrected name from '{name}' to '{fixed_name}'")
157
172
  else:
158
173
  errors.append(f"Invalid name format: {name}")
@@ -165,6 +180,7 @@ class FrontmatterValidator:
165
180
  if isinstance(model, (int, float)):
166
181
  model = str(model)
167
182
  corrected["model"] = model
183
+ field_corrections["model"] = model
168
184
  corrections.append(f"Converted model from number to string: {model}")
169
185
 
170
186
  if not isinstance(model, str):
@@ -173,6 +189,7 @@ class FrontmatterValidator:
173
189
  normalized_model = self._normalize_model(model)
174
190
  if normalized_model != model:
175
191
  corrected["model"] = normalized_model
192
+ field_corrections["model"] = normalized_model
176
193
  corrections.append(f"Normalized model from '{model}' to '{normalized_model}'")
177
194
 
178
195
  if normalized_model not in self.VALID_MODELS:
@@ -184,6 +201,7 @@ class FrontmatterValidator:
184
201
  corrected_tools, tool_corrections = self._correct_tools(tools)
185
202
  if tool_corrections:
186
203
  corrected["tools"] = corrected_tools
204
+ field_corrections["tools"] = corrected_tools
187
205
  corrections.extend(tool_corrections)
188
206
 
189
207
  # Validate tool names
@@ -195,6 +213,8 @@ class FrontmatterValidator:
195
213
  if corrected_tool:
196
214
  idx = corrected_tools.index(tool)
197
215
  corrected_tools[idx] = corrected_tool
216
+ corrected["tools"] = corrected_tools
217
+ field_corrections["tools"] = corrected_tools
198
218
  corrections.append(f"Corrected tool '{tool}' to '{corrected_tool}'")
199
219
  else:
200
220
  invalid_tools.append(tool)
@@ -214,10 +234,12 @@ class FrontmatterValidator:
214
234
  if re.match(r"^\d+\.\d+$", version):
215
235
  fixed_version = f"{version}.0"
216
236
  corrected[field] = fixed_version
237
+ field_corrections[field] = fixed_version
217
238
  corrections.append(f"Fixed {field} from '{version}' to '{fixed_version}'")
218
239
  elif re.match(r"^v?\d+\.\d+\.\d+$", version):
219
240
  fixed_version = version.lstrip("v")
220
241
  corrected[field] = fixed_version
242
+ field_corrections[field] = fixed_version
221
243
  corrections.append(f"Fixed {field} from '{version}' to '{fixed_version}'")
222
244
  else:
223
245
  errors.append(f"Invalid {field} format: {version}")
@@ -243,6 +265,44 @@ class FrontmatterValidator:
243
265
  if corrected["resource_tier"] not in valid_tiers:
244
266
  warnings.append(f"Invalid resource_tier: {corrected['resource_tier']}")
245
267
 
268
+ # Validate color field
269
+ if "color" in corrected:
270
+ color = corrected["color"]
271
+ if not isinstance(color, str):
272
+ errors.append(f"Field 'color' must be a string, got {type(color).__name__}")
273
+ # Color validation could be expanded to check for valid color names/hex codes
274
+
275
+ # Validate author field
276
+ if "author" in corrected:
277
+ author = corrected["author"]
278
+ if not isinstance(author, str):
279
+ errors.append(f"Field 'author' must be a string, got {type(author).__name__}")
280
+ elif len(author) > 100:
281
+ warnings.append(f"Author field too long ({len(author)} chars, maximum 100)")
282
+
283
+ # Validate tags field
284
+ if "tags" in corrected:
285
+ tags = corrected["tags"]
286
+ if not isinstance(tags, list):
287
+ errors.append(f"Field 'tags' must be a list, got {type(tags).__name__}")
288
+ else:
289
+ for tag in tags:
290
+ if not isinstance(tag, str):
291
+ errors.append(f"All tags must be strings, found {type(tag).__name__}")
292
+ elif not re.match(r"^[a-z][a-z0-9-]*$", tag):
293
+ warnings.append(f"Tag '{tag}' doesn't match recommended pattern (lowercase, alphanumeric with hyphens)")
294
+
295
+ # Validate numeric fields
296
+ for field_name, (min_val, max_val) in [("max_tokens", (1000, 200000)), ("temperature", (0, 1))]:
297
+ if field_name in corrected:
298
+ value = corrected[field_name]
299
+ if field_name == "temperature" and not isinstance(value, (int, float)):
300
+ errors.append(f"Field '{field_name}' must be a number, got {type(value).__name__}")
301
+ elif field_name == "max_tokens" and not isinstance(value, int):
302
+ errors.append(f"Field '{field_name}' must be an integer, got {type(value).__name__}")
303
+ elif isinstance(value, (int, float)) and not (min_val <= value <= max_val):
304
+ warnings.append(f"Field '{field_name}' value {value} outside recommended range [{min_val}, {max_val}]")
305
+
246
306
  # Determine if valid
247
307
  is_valid = len(errors) == 0
248
308
 
@@ -251,7 +311,8 @@ class FrontmatterValidator:
251
311
  errors=errors,
252
312
  warnings=warnings,
253
313
  corrections=corrections,
254
- corrected_frontmatter=corrected if corrections else None
314
+ corrected_frontmatter=corrected if corrections else None,
315
+ field_corrections=field_corrections if field_corrections else None
255
316
  )
256
317
 
257
318
  def _normalize_model(self, model: str) -> str:
@@ -416,7 +477,7 @@ class FrontmatterValidator:
416
477
  """
417
478
  result = self.validate_file(file_path)
418
479
 
419
- if result.corrected_frontmatter and not dry_run:
480
+ if result.field_corrections and not dry_run:
420
481
  try:
421
482
  with open(file_path, 'r') as f:
422
483
  content = f.read()
@@ -428,21 +489,59 @@ class FrontmatterValidator:
428
489
  end_marker = content.find("\n---\r\n", 4)
429
490
 
430
491
  if end_marker != -1:
431
- # Reconstruct file with corrected frontmatter
432
- new_frontmatter = yaml.dump(
433
- result.corrected_frontmatter,
434
- default_flow_style=False,
435
- sort_keys=False
492
+ # Apply field-level corrections to preserve structure
493
+ frontmatter_content = content[4:end_marker]
494
+ corrected_content = self._apply_field_corrections(
495
+ frontmatter_content, result.field_corrections
436
496
  )
437
- new_content = f"---\n{new_frontmatter}---\n{content[end_marker + 5:]}"
438
-
439
- with open(file_path, 'w') as f:
440
- f.write(new_content)
441
497
 
442
- logger.info(f"Corrected frontmatter in {file_path}")
443
- for correction in result.corrections:
444
- logger.info(f" - {correction}")
498
+ if corrected_content != frontmatter_content:
499
+ new_content = f"---\n{corrected_content}\n---\n{content[end_marker + 5:]}"
500
+
501
+ with open(file_path, 'w') as f:
502
+ f.write(new_content)
503
+
504
+ logger.info(f"Corrected frontmatter in {file_path}")
505
+ for correction in result.corrections:
506
+ logger.info(f" - {correction}")
445
507
  except Exception as e:
446
508
  logger.error(f"Failed to write corrections to {file_path}: {e}")
447
509
 
448
- return result
510
+ return result
511
+
512
+ def _apply_field_corrections(self, frontmatter_content: str, field_corrections: Dict[str, Any]) -> str:
513
+ """
514
+ Apply field-level corrections while preserving structure and other fields.
515
+
516
+ Args:
517
+ frontmatter_content: Original YAML frontmatter content
518
+ field_corrections: Dict of field corrections to apply
519
+
520
+ Returns:
521
+ Corrected frontmatter content
522
+ """
523
+ lines = frontmatter_content.strip().split('\n')
524
+ corrected_lines = []
525
+
526
+ for line in lines:
527
+ # Check if this line contains a field we need to correct
528
+ if ':' in line:
529
+ field_name = line.split(':')[0].strip()
530
+ if field_name in field_corrections:
531
+ # Replace the field value while preserving structure
532
+ corrected_value = field_corrections[field_name]
533
+ if isinstance(corrected_value, list):
534
+ # Handle list fields like tools
535
+ if field_name == "tools" and isinstance(corrected_value, list):
536
+ # Format as comma-separated string to preserve existing format
537
+ corrected_lines.append(f"{field_name}: {','.join(corrected_value)}")
538
+ else:
539
+ corrected_lines.append(f"{field_name}: {corrected_value}")
540
+ else:
541
+ corrected_lines.append(f"{field_name}: {corrected_value}")
542
+ continue
543
+
544
+ # Keep the original line if no correction needed
545
+ corrected_lines.append(line)
546
+
547
+ return '\n'.join(corrected_lines)
@@ -14,7 +14,7 @@
14
14
  "agent_id": {
15
15
  "type": "string",
16
16
  "description": "Unique identifier for the agent",
17
- "pattern": "^[a-z0-9_]+$"
17
+ "pattern": "^[a-z][a-z0-9_-]*$"
18
18
  },
19
19
  "agent_version": {
20
20
  "type": "string",
@@ -1,7 +1,7 @@
1
1
  # Engineer Agent Memory - templates
2
2
 
3
3
  <!-- MEMORY LIMITS: 8KB max | 10 sections max | 15 items per section -->
4
- <!-- Last Updated: 2025-08-07 18:26:34 | Auto-updated by: engineer -->
4
+ <!-- Last Updated: 2025-08-13 14:34:34 | Auto-updated by: engineer -->
5
5
 
6
6
  ## Project Context
7
7
  templates: mixed standard application
@@ -1,7 +1,7 @@
1
- # Version Control Agent Memory - templates
1
+ # Qa Agent Memory - templates
2
2
 
3
3
  <!-- MEMORY LIMITS: 8KB max | 10 sections max | 15 items per section -->
4
- <!-- Last Updated: 2025-08-07 18:28:51 | Auto-updated by: version_control -->
4
+ <!-- Last Updated: 2025-08-13 14:37:34 | Auto-updated by: qa -->
5
5
 
6
6
  ## Project Context
7
7
  templates: mixed standard application
@@ -0,0 +1,39 @@
1
+ # Research Agent Memory - templates
2
+
3
+ <!-- MEMORY LIMITS: 16KB max | 10 sections max | 15 items per section -->
4
+ <!-- Last Updated: 2025-08-13 14:29:28 | Auto-updated by: research -->
5
+
6
+ ## Project Context
7
+ templates: mixed standard application
8
+
9
+ ## Project Architecture
10
+ - Standard Application with mixed implementation
11
+
12
+ ## Coding Patterns Learned
13
+ <!-- Items will be added as knowledge accumulates -->
14
+
15
+ ## Implementation Guidelines
16
+ <!-- Items will be added as knowledge accumulates -->
17
+
18
+ ## Domain-Specific Knowledge
19
+ <!-- Agent-specific knowledge for templates domain -->
20
+ - Key project terms: templates
21
+ - Focus on code analysis, pattern discovery, and architectural insights
22
+
23
+ ## Effective Strategies
24
+ <!-- Successful approaches discovered through experience -->
25
+
26
+ ## Common Mistakes to Avoid
27
+ <!-- Items will be added as knowledge accumulates -->
28
+
29
+ ## Integration Points
30
+ <!-- Items will be added as knowledge accumulates -->
31
+
32
+ ## Performance Considerations
33
+ <!-- Items will be added as knowledge accumulates -->
34
+
35
+ ## Current Technical Context
36
+ <!-- Items will be added as knowledge accumulates -->
37
+
38
+ ## Recent Learnings
39
+ <!-- Most recent discoveries and insights -->