claude-mpm 3.1.1__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.
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/CLAUDE.md +5 -0
- {claude_mpm-3.1.1/src/claude_mpm.egg-info → claude_mpm-3.1.2}/PKG-INFO +1 -1
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/scripts/run_mpm.py +3 -7
- claude_mpm-3.1.2/src/claude_mpm/__main__.py +21 -0
- claude_mpm-3.1.2/src/claude_mpm/agents/templates/test-integration-agent.md +34 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/__init__.py +163 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/commands/__init__.py +20 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/commands/agents.py +191 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/commands/info.py +89 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/commands/run.py +80 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/commands/tickets.py +63 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/commands/ui.py +57 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/parser.py +337 -0
- claude_mpm-3.1.2/src/claude_mpm/cli/utils.py +171 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/cli_enhancements.py +19 -0
- claude_mpm-3.1.2/src/claude_mpm/models/__init__.py +24 -0
- claude_mpm-3.1.2/src/claude_mpm/models/agent_definition.py +196 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_lifecycle_manager.py +183 -20
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_modification_tracker.py +10 -2
- claude_mpm-3.1.2/src/claude_mpm/services/agent_persistence_service.py +94 -0
- claude_mpm-3.1.2/src/claude_mpm/services/agent_versioning.py +37 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2/src/claude_mpm.egg-info}/PKG-INFO +1 -1
- claude_mpm-3.1.2/src/claude_mpm.egg-info/SOURCES.txt +187 -0
- claude_mpm-3.1.1/.ai-trackdown/config.yaml +0 -28
- claude_mpm-3.1.1/.ai-trackdown/project.yaml +0 -8
- claude_mpm-3.1.1/.aitrackdown/project.json +0 -1
- claude_mpm-3.1.1/.aitrackdown-config.yaml +0 -10
- claude_mpm-3.1.1/.claude/.claude.json +0 -35
- claude_mpm-3.1.1/.claude/.claude.json.backup +0 -35
- claude_mpm-3.1.1/.claude/agents/data_engineer.yaml +0 -180
- claude_mpm-3.1.1/.claude/agents/documentation.yaml +0 -117
- claude_mpm-3.1.1/.claude/agents/engineer.yaml +0 -232
- claude_mpm-3.1.1/.claude/agents/ops.yaml +0 -119
- claude_mpm-3.1.1/.claude/agents/pm.yaml +0 -138
- claude_mpm-3.1.1/.claude/agents/qa.yaml +0 -118
- claude_mpm-3.1.1/.claude/agents/research.yaml +0 -303
- claude_mpm-3.1.1/.claude/agents/security.yaml +0 -127
- claude_mpm-3.1.1/.claude/agents/version_control.yaml +0 -119
- claude_mpm-3.1.1/.claude/commands/README.md +0 -36
- claude_mpm-3.1.1/.claude/commands/mpm.md +0 -5
- claude_mpm-3.1.1/.claude/hooks.json +0 -32
- claude_mpm-3.1.1/.claude/scripts/command_router.py +0 -60
- claude_mpm-3.1.1/.claude/settings.json +0 -37
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753448752189-02zmkd.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753448752717-t1o960.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753448753258-cz40yi.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753448753816-5cj75h.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753449561020-uh844i.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753449676191-16dqe8.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753449766642-8sffyp.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753449795813-bj9blv.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753449953467-ru9ods.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753449966919-eb4aoq.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753450012330-ad1k3g.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753450254970-pvrwgd.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753450398246-etdteg.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753450789791-z5ptuf.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753450861209-w6so3e.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753451302996-01ahjc.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753451384857-mvpmcf.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753451508182-v942iw.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753451525128-q52z98.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753452958143-rd4nut.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753453029843-tyfjfo.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753460195020-02l99b.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753460396315-znuas3.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753460428488-tcy6i5.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753460542243-l181zr.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753461397341-fdy0v7.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753469116715-v6dpx9.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753477538332-i5g2cr.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753477560204-7vo17t.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753477883629-hsjia3.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753477961808-oiyqie.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478292112-5g3i0g.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478337101-xe1uid.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478342176-env102.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478361973-nr1cwq.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478372714-lamo9k.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478388184-yxkay7.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753478392376-eygj04.sh +0 -4511
- claude_mpm-3.1.1/.claude/shell-snapshots/snapshot-zsh-1753482158558-cr2h0o.sh +0 -4511
- claude_mpm-3.1.1/.claude/todos/0aaf869f-0009-4249-b955-1c3942ff239f-agent-0aaf869f-0009-4249-b955-1c3942ff239f.json +0 -20
- claude_mpm-3.1.1/.claude/todos/0c24ded8-9422-489d-8d18-f83cc0737181-agent-0c24ded8-9422-489d-8d18-f83cc0737181.json +0 -1
- claude_mpm-3.1.1/.claude/todos/0d9501e6-77b0-4e8f-b132-bae208ed740a-agent-0d9501e6-77b0-4e8f-b132-bae208ed740a.json +0 -1
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-048a118d-f0ea-4dce-90d3-d851514aa36a.json +0 -50
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-0600940d-65ff-4678-ac90-9e0d42a3e138.json +0 -50
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5.json +0 -8
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1b8badbc-b05e-459e-b16c-a974f28673be.json +0 -38
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-231626b2-0ce7-44fb-82e4-a9e72fdcecc4.json +0 -38
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-2799acc0-b5e3-4086-940e-62bd2a5bbd7d.json +0 -38
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-42b0c458-9d5f-4745-826e-7c618d3a7026.json +0 -38
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-a324c872-b962-4438-b794-7966f5d7a7a9.json +0 -32
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-ce91e7fd-64af-4f57-b691-1487c2db8d0b.json +0 -38
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-dd250db2-edbb-43fc-a143-3eeafc0cd7fa.json +0 -38
- claude_mpm-3.1.1/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-f0cbf9cd-0136-4bca-b0e0-c66aa58d3aeb.json +0 -38
- claude_mpm-3.1.1/.claude/todos/109c42c9-0afd-4a5b-a1b3-e515e31b6a2f-agent-109c42c9-0afd-4a5b-a1b3-e515e31b6a2f.json +0 -1
- claude_mpm-3.1.1/.claude/todos/1163a193-8464-4195-8281-6b875b5d987d-agent-1163a193-8464-4195-8281-6b875b5d987d.json +0 -1
- claude_mpm-3.1.1/.claude/todos/128d2198-5b02-422c-9531-f3396cbf0ce0-agent-128d2198-5b02-422c-9531-f3396cbf0ce0.json +0 -1
- claude_mpm-3.1.1/.claude/todos/16c51506-6afa-43aa-b199-da0c853f99a9-agent-16c51506-6afa-43aa-b199-da0c853f99a9.json +0 -1
- claude_mpm-3.1.1/.claude/todos/1736bdd7-71f4-49a0-934d-18e3aa5e0b43-agent-1736bdd7-71f4-49a0-934d-18e3aa5e0b43.json +0 -1
- claude_mpm-3.1.1/.claude/todos/1869eedc-69fc-4e81-a8ac-f57bd8e3946b-agent-1869eedc-69fc-4e81-a8ac-f57bd8e3946b.json +0 -1
- claude_mpm-3.1.1/.claude/todos/1a97dfda-12e5-4f13-8c8a-731373694a1c-agent-1a97dfda-12e5-4f13-8c8a-731373694a1c.json +0 -1
- claude_mpm-3.1.1/.claude/todos/283ac74b-5516-43f8-9548-24ded2b643b1-agent-283ac74b-5516-43f8-9548-24ded2b643b1.json +0 -1
- claude_mpm-3.1.1/.claude/todos/2ba08561-559e-4f64-9522-8d6c340e47da-agent-2ba08561-559e-4f64-9522-8d6c340e47da.json +0 -1
- claude_mpm-3.1.1/.claude/todos/31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9-agent-31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9.json +0 -1
- claude_mpm-3.1.1/.claude/todos/35194d51-6b8f-4ef5-b771-b0aa03f49a88-agent-35194d51-6b8f-4ef5-b771-b0aa03f49a88.json +0 -1
- claude_mpm-3.1.1/.claude/todos/3d1c0368-e607-4f47-b02d-7c0922cc0f25-agent-3d1c0368-e607-4f47-b02d-7c0922cc0f25.json +0 -1
- claude_mpm-3.1.1/.claude/todos/3d46c625-6377-4296-b9b3-22bc19341092-agent-3d46c625-6377-4296-b9b3-22bc19341092.json +0 -1
- claude_mpm-3.1.1/.claude/todos/40072791-2f2f-4743-b763-ec19321ccb0b-agent-40072791-2f2f-4743-b763-ec19321ccb0b.json +0 -1
- claude_mpm-3.1.1/.claude/todos/4157ab6d-5025-4862-82eb-5818c43c5a8c-agent-4157ab6d-5025-4862-82eb-5818c43c5a8c.json +0 -1
- claude_mpm-3.1.1/.claude/todos/458938f3-a317-46f3-8359-86f05ccacc7d-agent-458938f3-a317-46f3-8359-86f05ccacc7d.json +0 -1
- claude_mpm-3.1.1/.claude/todos/4dcf1510-e396-47bb-ac32-f62811ae9774-agent-4dcf1510-e396-47bb-ac32-f62811ae9774.json +0 -26
- claude_mpm-3.1.1/.claude/todos/4e71e501-1438-4c7d-8a89-18818b16ccb5-agent-4e71e501-1438-4c7d-8a89-18818b16ccb5.json +0 -1
- claude_mpm-3.1.1/.claude/todos/4eb9a1c4-92b0-44ee-9322-6ba0442efd42-agent-4eb9a1c4-92b0-44ee-9322-6ba0442efd42.json +0 -1
- claude_mpm-3.1.1/.claude/todos/4f57fa86-e804-4c8e-a0ff-196835df5bc9-agent-4f57fa86-e804-4c8e-a0ff-196835df5bc9.json +0 -1
- claude_mpm-3.1.1/.claude/todos/518e2724-687e-4ae3-bde9-582c8718695a-agent-518e2724-687e-4ae3-bde9-582c8718695a.json +0 -1
- claude_mpm-3.1.1/.claude/todos/51abf2eb-4e5a-4731-bd23-76cffe656a40-agent-51abf2eb-4e5a-4731-bd23-76cffe656a40.json +0 -1
- claude_mpm-3.1.1/.claude/todos/53c4beda-27f3-4247-ada4-f904320995ad-agent-53c4beda-27f3-4247-ada4-f904320995ad.json +0 -1
- claude_mpm-3.1.1/.claude/todos/56581e8b-07b1-4174-bf81-c280a3dee6b4-agent-56581e8b-07b1-4174-bf81-c280a3dee6b4.json +0 -1
- claude_mpm-3.1.1/.claude/todos/58848224-56e6-49f6-a4e5-c08f8f70c426-agent-58848224-56e6-49f6-a4e5-c08f8f70c426.json +0 -1
- claude_mpm-3.1.1/.claude/todos/58cf2d09-fd22-4a2e-8c74-c247ece6c802-agent-58cf2d09-fd22-4a2e-8c74-c247ece6c802.json +0 -8
- claude_mpm-3.1.1/.claude/todos/5bcc2e07-617c-4659-b82f-6b630ea891ff-agent-5bcc2e07-617c-4659-b82f-6b630ea891ff.json +0 -1
- claude_mpm-3.1.1/.claude/todos/5bf326e7-b61a-4d82-b483-94d5d7085755-agent-5bf326e7-b61a-4d82-b483-94d5d7085755.json +0 -1
- claude_mpm-3.1.1/.claude/todos/5dee78ec-d9ed-4484-b101-5490217fe423-agent-5dee78ec-d9ed-4484-b101-5490217fe423.json +0 -20
- claude_mpm-3.1.1/.claude/todos/5f6c7624-6a25-4ed9-be09-03fa3a70c4d8-agent-5f6c7624-6a25-4ed9-be09-03fa3a70c4d8.json +0 -1
- claude_mpm-3.1.1/.claude/todos/606431c0-6b47-4fb8-b386-132918a3aa0b-agent-606431c0-6b47-4fb8-b386-132918a3aa0b.json +0 -1
- claude_mpm-3.1.1/.claude/todos/6078e96f-e9a4-435f-8d2f-cf70346ebafe-agent-6078e96f-e9a4-435f-8d2f-cf70346ebafe.json +0 -20
- claude_mpm-3.1.1/.claude/todos/69e5a32b-bf2c-4264-93cd-6ac84b44ca9f-agent-69e5a32b-bf2c-4264-93cd-6ac84b44ca9f.json +0 -1
- claude_mpm-3.1.1/.claude/todos/6b729248-47b8-4657-ad7f-7f09fff21151-agent-6b729248-47b8-4657-ad7f-7f09fff21151.json +0 -1
- claude_mpm-3.1.1/.claude/todos/6d6970e8-f95f-468b-a8b8-3eacca8f1220-agent-6d6970e8-f95f-468b-a8b8-3eacca8f1220.json +0 -1
- claude_mpm-3.1.1/.claude/todos/6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b-agent-6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b.json +0 -1
- claude_mpm-3.1.1/.claude/todos/713e1bda-caa2-4cb9-a5a2-b7c6fec5776f-agent-713e1bda-caa2-4cb9-a5a2-b7c6fec5776f.json +0 -32
- claude_mpm-3.1.1/.claude/todos/71e6da9f-0dcd-4abd-ae8f-a5af695d9624-agent-71e6da9f-0dcd-4abd-ae8f-a5af695d9624.json +0 -1
- claude_mpm-3.1.1/.claude/todos/7653f086-93df-4423-98ce-640305e10823-agent-7653f086-93df-4423-98ce-640305e10823.json +0 -1
- claude_mpm-3.1.1/.claude/todos/76656734-acd3-411c-b333-f274dabae19c-agent-76656734-acd3-411c-b333-f274dabae19c.json +0 -44
- claude_mpm-3.1.1/.claude/todos/78150f02-9204-437c-9e12-9e800f3f73b9-agent-78150f02-9204-437c-9e12-9e800f3f73b9.json +0 -20
- claude_mpm-3.1.1/.claude/todos/7dda0a32-2834-4a47-9734-9ae9ca5b1a31-agent-7dda0a32-2834-4a47-9734-9ae9ca5b1a31.json +0 -1
- claude_mpm-3.1.1/.claude/todos/84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec-agent-84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec.json +0 -1
- claude_mpm-3.1.1/.claude/todos/86ce0d12-f82e-49b2-b553-2cd8a7e188a3-agent-86ce0d12-f82e-49b2-b553-2cd8a7e188a3.json +0 -1
- claude_mpm-3.1.1/.claude/todos/87626114-6cb1-43ef-978a-bb35f612e4eb-agent-87626114-6cb1-43ef-978a-bb35f612e4eb.json +0 -1
- claude_mpm-3.1.1/.claude/todos/880d3ea5-649e-449e-88bc-664a291ec338-agent-880d3ea5-649e-449e-88bc-664a291ec338.json +0 -38
- claude_mpm-3.1.1/.claude/todos/8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e-agent-8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e.json +0 -1
- claude_mpm-3.1.1/.claude/todos/8f998b9e-5f18-4ade-bd69-74c95a210f6a-agent-8f998b9e-5f18-4ade-bd69-74c95a210f6a.json +0 -1
- claude_mpm-3.1.1/.claude/todos/929364bd-aa69-4831-850e-37f8ab63803d-agent-929364bd-aa69-4831-850e-37f8ab63803d.json +0 -1
- claude_mpm-3.1.1/.claude/todos/95479b6c-cfbf-4bb7-9e00-b95a0b385775-agent-95479b6c-cfbf-4bb7-9e00-b95a0b385775.json +0 -1
- claude_mpm-3.1.1/.claude/todos/9628cc3a-355a-48f0-ab54-c28ac2e05dfe-agent-9628cc3a-355a-48f0-ab54-c28ac2e05dfe.json +0 -1
- claude_mpm-3.1.1/.claude/todos/a877fe3a-7057-49a9-9726-239ddb3421ee-agent-a877fe3a-7057-49a9-9726-239ddb3421ee.json +0 -1
- claude_mpm-3.1.1/.claude/todos/a9136d1b-6e01-4879-972f-5fcdde5e08d7-agent-a9136d1b-6e01-4879-972f-5fcdde5e08d7.json +0 -1
- claude_mpm-3.1.1/.claude/todos/b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003-agent-b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003.json +0 -1
- claude_mpm-3.1.1/.claude/todos/b1206d13-f0ec-4f53-a746-a845732fefd7-agent-b1206d13-f0ec-4f53-a746-a845732fefd7.json +0 -1
- claude_mpm-3.1.1/.claude/todos/b61be2e4-7de3-4e1b-b636-2232190ffc5c-agent-b61be2e4-7de3-4e1b-b636-2232190ffc5c.json +0 -1
- claude_mpm-3.1.1/.claude/todos/b80ad406-64d1-4a6c-b781-15496265fae0-agent-b80ad406-64d1-4a6c-b781-15496265fae0.json +0 -1
- claude_mpm-3.1.1/.claude/todos/babc6eac-d7d6-498a-8176-e09e00423a12-agent-babc6eac-d7d6-498a-8176-e09e00423a12.json +0 -1
- claude_mpm-3.1.1/.claude/todos/bf4b7700-9630-466e-afb0-8904fbddac42-agent-bf4b7700-9630-466e-afb0-8904fbddac42.json +0 -1
- claude_mpm-3.1.1/.claude/todos/c2189d0d-9c2b-400a-bf7c-3989ef6cd37d-agent-c2189d0d-9c2b-400a-bf7c-3989ef6cd37d.json +0 -1
- claude_mpm-3.1.1/.claude/todos/c35ee595-142f-454b-bb36-dc434d4a80a6-agent-c35ee595-142f-454b-bb36-dc434d4a80a6.json +0 -1
- claude_mpm-3.1.1/.claude/todos/c629949d-4641-45ff-81d3-d7c8f353da81-agent-c629949d-4641-45ff-81d3-d7c8f353da81.json +0 -1
- claude_mpm-3.1.1/.claude/todos/c8cecbec-a3bb-4507-98a4-c590a4e919b2-agent-c8cecbec-a3bb-4507-98a4-c590a4e919b2.json +0 -38
- claude_mpm-3.1.1/.claude/todos/cce78c00-7309-4bc4-802c-3bad75be09cc-agent-cce78c00-7309-4bc4-802c-3bad75be09cc.json +0 -1
- claude_mpm-3.1.1/.claude/todos/d55a3a18-0143-4401-ba56-ea630982c105-agent-d55a3a18-0143-4401-ba56-ea630982c105.json +0 -32
- claude_mpm-3.1.1/.claude/todos/d881887b-49bc-4fda-acda-c866681c8f13-agent-d881887b-49bc-4fda-acda-c866681c8f13.json +0 -20
- claude_mpm-3.1.1/.claude/todos/db3e76fb-7b9d-4f1c-8822-cce448fdf9e6-agent-db3e76fb-7b9d-4f1c-8822-cce448fdf9e6.json +0 -1
- claude_mpm-3.1.1/.claude/todos/dc7344a6-cd2e-4f20-a945-deb2e39f4fbc-agent-dc7344a6-cd2e-4f20-a945-deb2e39f4fbc.json +0 -1
- claude_mpm-3.1.1/.claude/todos/eb12ed58-94e3-490a-b8c8-b2912fa77fbe-agent-eb12ed58-94e3-490a-b8c8-b2912fa77fbe.json +0 -1
- claude_mpm-3.1.1/.claude/todos/ef4c285d-d79b-4c6e-a458-49cb26bf3c0a-agent-ef4c285d-d79b-4c6e-a458-49cb26bf3c0a.json +0 -1
- claude_mpm-3.1.1/.claude/todos/f295b25f-51d8-4fff-b71d-aa18d7028466-agent-f295b25f-51d8-4fff-b71d-aa18d7028466.json +0 -1
- claude_mpm-3.1.1/.claude/todos/f2a683d3-4d16-4c94-bf52-03efaf45f7f1-agent-f2a683d3-4d16-4c94-bf52-03efaf45f7f1.json +0 -1
- claude_mpm-3.1.1/.claude/todos/f536b1f5-879c-4236-9718-599337ffc815-agent-f536b1f5-879c-4236-9718-599337ffc815.json +0 -1
- claude_mpm-3.1.1/.claude/todos/fabcbe8a-6751-454b-a240-e9393391e2e9-agent-fabcbe8a-6751-454b-a240-e9393391e2e9.json +0 -1
- claude_mpm-3.1.1/.claude/todos/fdebc52b-3519-44c8-a3af-ce87f39272cd-agent-fdebc52b-3519-44c8-a3af-ce87f39272cd.json +0 -1
- claude_mpm-3.1.1/.claude/todos/fe57db22-5ef9-4522-9423-5c20dd665ef6-agent-fe57db22-5ef9-4522-9423-5c20dd665ef6.json +0 -1
- claude_mpm-3.1.1/.claude-mpm/.claude.json +0 -20
- claude_mpm-3.1.1/.claude-mpm/.claude.json.backup +0 -20
- claude_mpm-3.1.1/.claude-mpm/.gitignore +0 -13
- claude_mpm-3.1.1/.claude-mpm/README.md +0 -17
- claude_mpm-3.1.1/.claude-mpm/agents/README.md +0 -12
- claude_mpm-3.1.1/.claude-mpm/agents/poc-engineer.md +0 -30
- claude_mpm-3.1.1/.claude-mpm/agents/poc-qa.md +0 -29
- claude_mpm-3.1.1/.claude-mpm/agents/poc-researcher.md +0 -29
- claude_mpm-3.1.1/.claude-mpm/agents/test-agent.md +0 -8
- claude_mpm-3.1.1/.claude-mpm/agents/test-agent.yaml +0 -8
- claude_mpm-3.1.1/.claude-mpm/config/project.json +0 -11
- claude_mpm-3.1.1/.claude-mpm/projects/-Users-masa-Projects-claude-mpm/1f2d5a1d-a2fd-4c26-a1b2-3822f3a5fbf5.jsonl +0 -2
- claude_mpm-3.1.1/.claude-mpm/projects/-Users-masa-Projects-claude-mpm/9217ce88-3ece-41db-adc8-9fc8532c6314.jsonl +0 -3
- claude_mpm-3.1.1/.claude-mpm/shell-snapshots/snapshot-zsh-1753447830017-dejufl.sh +0 -4511
- claude_mpm-3.1.1/.claude-mpm/shell-snapshots/snapshot-zsh-1753447830478-zr6tpi.sh +0 -4511
- claude_mpm-3.1.1/.claude-mpm/stats/README.md +0 -8
- claude_mpm-3.1.1/.claude-mpm/statsig/statsig.cached.evaluations.85901da9f9 +0 -1
- claude_mpm-3.1.1/.claude-mpm/statsig/statsig.last_modified_time.evaluations +0 -1
- claude_mpm-3.1.1/.claude-mpm/statsig/statsig.session_id.2656274335 +0 -1
- claude_mpm-3.1.1/.claude-mpm/statsig/statsig.stable_id.2656274335 +0 -1
- claude_mpm-3.1.1/.claude-mpm/todos/1f2d5a1d-a2fd-4c26-a1b2-3822f3a5fbf5-agent-1f2d5a1d-a2fd-4c26-a1b2-3822f3a5fbf5.json +0 -1
- claude_mpm-3.1.1/.claude-mpm/todos/9217ce88-3ece-41db-adc8-9fc8532c6314-agent-9217ce88-3ece-41db-adc8-9fc8532c6314.json +0 -1
- claude_mpm-3.1.1/.claude-pm/config/project.json +0 -6
- claude_mpm-3.1.1/.githooks/pre-commit +0 -50
- claude_mpm-3.1.1/.gitignore +0 -43
- claude_mpm-3.1.1/.npmignore +0 -50
- claude_mpm-3.1.1/.python-version +0 -1
- claude_mpm-3.1.1/.trackdown.yaml +0 -30
- claude_mpm-3.1.1/CHANGELOG.md +0 -317
- claude_mpm-3.1.1/INSTALL.md +0 -204
- claude_mpm-3.1.1/Makefile +0 -258
- claude_mpm-3.1.1/QA_REPORT_FINAL.md +0 -147
- claude_mpm-3.1.1/QA_REPORT_STATUS_RESOLUTION.md +0 -196
- claude_mpm-3.1.1/README.npm.md +0 -107
- claude_mpm-3.1.1/VERSION +0 -1
- claude_mpm-3.1.1/bin/claude-mpm +0 -89
- claude_mpm-3.1.1/bin/claude-mpm-hooks +0 -106
- claude_mpm-3.1.1/bin/ticket +0 -60
- claude_mpm-3.1.1/config/mcp_services.yaml +0 -117
- claude_mpm-3.1.1/docker/Dockerfile +0 -58
- claude_mpm-3.1.1/docker/Dockerfile.npm +0 -51
- claude_mpm-3.1.1/docker/Dockerfile.npm-local +0 -58
- claude_mpm-3.1.1/docker/Dockerfile.npm-simple +0 -62
- claude_mpm-3.1.1/docker/Dockerfile.npm-test +0 -53
- claude_mpm-3.1.1/docker/Dockerfile.pip +0 -58
- claude_mpm-3.1.1/examples/awesome-patterns/enhanced_claude_md_example.md +0 -145
- claude_mpm-3.1.1/examples/awesome-patterns/slash_command_example.md +0 -322
- claude_mpm-3.1.1/examples/awesome-patterns/validation_first_example.py +0 -295
- claude_mpm-3.1.1/examples/dependency_injection_demo.py +0 -190
- claude_mpm-3.1.1/examples/json_rpc_hooks_demo.py +0 -109
- claude_mpm-3.1.1/examples/todo_prefix_hook_example.py +0 -176
- claude_mpm-3.1.1/examples/todo_prefix_hook_integration.py +0 -239
- claude_mpm-3.1.1/install.sh +0 -141
- claude_mpm-3.1.1/install_dev.sh +0 -74
- claude_mpm-3.1.1/npm-bin/claude-mpm.js +0 -386
- claude_mpm-3.1.1/package.json +0 -49
- claude_mpm-3.1.1/qa_report_workflow_implementation.json +0 -51
- claude_mpm-3.1.1/qa_report_workflow_implementation_final.json +0 -144
- claude_mpm-3.1.1/run_qa_tests.py +0 -593
- claude_mpm-3.1.1/run_qa_tests_fixed.py +0 -956
- claude_mpm-3.1.1/scripts/README.md +0 -112
- claude_mpm-3.1.1/scripts/add_agent_versioning.py +0 -41
- claude_mpm-3.1.1/scripts/analyze_framework_loaders.py +0 -32
- claude_mpm-3.1.1/scripts/check_version_sync.py +0 -108
- claude_mpm-3.1.1/scripts/claude-mpm +0 -148
- claude_mpm-3.1.1/scripts/cleanup_logs.py +0 -256
- claude_mpm-3.1.1/scripts/consolidate_services.py +0 -38
- claude_mpm-3.1.1/scripts/convert_agents_to_yaml.py +0 -186
- claude_mpm-3.1.1/scripts/debug_agent_loading.py +0 -102
- claude_mpm-3.1.1/scripts/debug_agent_structure.py +0 -66
- claude_mpm-3.1.1/scripts/debug_capabilities_generation.py +0 -111
- claude_mpm-3.1.1/scripts/debug_deployment_logic.py +0 -52
- claude_mpm-3.1.1/scripts/debug_hook_behavior.py +0 -62
- claude_mpm-3.1.1/scripts/debug_hook_behavior2.py +0 -66
- claude_mpm-3.1.1/scripts/debug_migration.py +0 -51
- claude_mpm-3.1.1/scripts/debug_research_version.py +0 -47
- claude_mpm-3.1.1/scripts/debug_subprocess.py +0 -40
- claude_mpm-3.1.1/scripts/demo/subprocess_before_after.py +0 -234
- claude_mpm-3.1.1/scripts/demo/subprocess_improvements_demo.py +0 -407
- claude_mpm-3.1.1/scripts/demo_hook_behavior.sh +0 -53
- claude_mpm-3.1.1/scripts/deploy_local.sh +0 -443
- claude_mpm-3.1.1/scripts/fix_all_fallback_imports.py +0 -68
- claude_mpm-3.1.1/scripts/fix_all_imports.py +0 -241
- claude_mpm-3.1.1/scripts/fix_fallback_imports.py +0 -58
- claude_mpm-3.1.1/scripts/install_hooks.py +0 -172
- claude_mpm-3.1.1/scripts/interactive_wrapper.py +0 -109
- claude_mpm-3.1.1/scripts/launch_with_agents.py +0 -191
- claude_mpm-3.1.1/scripts/manage_version.py +0 -479
- claude_mpm-3.1.1/scripts/migrate_agents_to_new_schema.py +0 -378
- claude_mpm-3.1.1/scripts/migrate_logging_imports.py +0 -99
- claude_mpm-3.1.1/scripts/migrate_to_json_rpc_hooks.py +0 -164
- claude_mpm-3.1.1/scripts/monitor_mcp_services.py +0 -453
- claude_mpm-3.1.1/scripts/mpm_test.py +0 -11
- claude_mpm-3.1.1/scripts/postinstall.js +0 -106
- claude_mpm-3.1.1/scripts/publish.sh +0 -98
- claude_mpm-3.1.1/scripts/release.py +0 -876
- claude_mpm-3.1.1/scripts/remove_remaining_ticketing.py +0 -150
- claude_mpm-3.1.1/scripts/remove_ticketing_references.py +0 -82
- claude_mpm-3.1.1/scripts/run_all_tests.sh +0 -30
- claude_mpm-3.1.1/scripts/run_e2e_tests.sh +0 -48
- claude_mpm-3.1.1/scripts/setup_local_mcp.sh +0 -457
- claude_mpm-3.1.1/scripts/show_pm_system_prompt.py +0 -50
- claude_mpm-3.1.1/scripts/standardize_imports.py +0 -281
- claude_mpm-3.1.1/scripts/sync_tickets_github.sh +0 -109
- claude_mpm-3.1.1/scripts/test_agent_capabilities_usage.py +0 -167
- claude_mpm-3.1.1/scripts/test_agent_compatibility.py +0 -48
- claude_mpm-3.1.1/scripts/test_agent_content_verification.py +0 -85
- claude_mpm-3.1.1/scripts/test_agent_deployment.py +0 -127
- claude_mpm-3.1.1/scripts/test_agent_deployment_integration.py +0 -154
- claude_mpm-3.1.1/scripts/test_agent_deployment_validation.py +0 -254
- claude_mpm-3.1.1/scripts/test_agent_e2e_quick.py +0 -76
- claude_mpm-3.1.1/scripts/test_agent_functionality_complete.py +0 -402
- claude_mpm-3.1.1/scripts/test_agent_loader.py +0 -153
- claude_mpm-3.1.1/scripts/test_agent_loader_edge_cases.py +0 -182
- claude_mpm-3.1.1/scripts/test_agent_loader_integration.py +0 -112
- claude_mpm-3.1.1/scripts/test_agent_loading.py +0 -42
- claude_mpm-3.1.1/scripts/test_agent_migration.py +0 -166
- claude_mpm-3.1.1/scripts/test_agent_name_consistency.py +0 -282
- claude_mpm-3.1.1/scripts/test_agent_name_formats.py +0 -82
- claude_mpm-3.1.1/scripts/test_agent_schema_system.py +0 -191
- claude_mpm-3.1.1/scripts/test_agent_validation_security.py +0 -208
- claude_mpm-3.1.1/scripts/test_agent_version_display.py +0 -12
- claude_mpm-3.1.1/scripts/test_agents_command.py +0 -70
- claude_mpm-3.1.1/scripts/test_basic_functionality.py +0 -127
- claude_mpm-3.1.1/scripts/test_deployment_dynamic_capabilities.py +0 -160
- claude_mpm-3.1.1/scripts/test_deployment_manager_capabilities.py +0 -135
- claude_mpm-3.1.1/scripts/test_dynamic_capabilities.py +0 -156
- claude_mpm-3.1.1/scripts/test_dynamic_capabilities_comprehensive.py +0 -467
- claude_mpm-3.1.1/scripts/test_edge_cases.py +0 -211
- claude_mpm-3.1.1/scripts/test_file_access_implementation.py +0 -153
- claude_mpm-3.1.1/scripts/test_hello_world.py +0 -76
- claude_mpm-3.1.1/scripts/test_helloworld_expanded.js +0 -67
- claude_mpm-3.1.1/scripts/test_helloworld_hook.js +0 -68
- claude_mpm-3.1.1/scripts/test_helloworld_passthrough.js +0 -67
- claude_mpm-3.1.1/scripts/test_helloworld_python_hook.py +0 -66
- claude_mpm-3.1.1/scripts/test_helloworld_shell_hook.sh +0 -29
- claude_mpm-3.1.1/scripts/test_hook_direct.py +0 -68
- claude_mpm-3.1.1/scripts/test_hook_logging.py +0 -154
- claude_mpm-3.1.1/scripts/test_hook_security.py +0 -151
- claude_mpm-3.1.1/scripts/test_integration.py +0 -161
- claude_mpm-3.1.1/scripts/test_integration_performance.py +0 -279
- claude_mpm-3.1.1/scripts/test_mcp_integration.sh +0 -72
- claude_mpm-3.1.1/scripts/test_mcp_monitor.py +0 -105
- claude_mpm-3.1.1/scripts/test_mcp_solution.py +0 -437
- claude_mpm-3.1.1/scripts/test_migration_flow.py +0 -47
- claude_mpm-3.1.1/scripts/test_mpm_agents_integration.py +0 -159
- claude_mpm-3.1.1/scripts/test_mpm_command.py +0 -106
- claude_mpm-3.1.1/scripts/test_no_agents.py +0 -62
- claude_mpm-3.1.1/scripts/test_npm_install.sh +0 -56
- claude_mpm-3.1.1/scripts/test_npm_install_simple.sh +0 -83
- claude_mpm-3.1.1/scripts/test_performance.py +0 -117
- claude_mpm-3.1.1/scripts/test_pm_instructions.py +0 -100
- claude_mpm-3.1.1/scripts/test_qa_script_access.py +0 -107
- claude_mpm-3.1.1/scripts/test_qa_script_creation.py +0 -121
- claude_mpm-3.1.1/scripts/test_real_deployment.py +0 -119
- claude_mpm-3.1.1/scripts/test_real_deployment_capabilities.py +0 -192
- claude_mpm-3.1.1/scripts/test_redeployment.py +0 -56
- claude_mpm-3.1.1/scripts/test_release_enhancements.py +0 -140
- claude_mpm-3.1.1/scripts/test_runtime_capabilities.py +0 -93
- claude_mpm-3.1.1/scripts/test_runtime_integration.py +0 -121
- claude_mpm-3.1.1/scripts/test_schema_validation.py +0 -94
- claude_mpm-3.1.1/scripts/test_semantic_versioning.py +0 -82
- claude_mpm-3.1.1/scripts/test_simple_runner_logging.py +0 -155
- claude_mpm-3.1.1/scripts/test_subagent_demo.py +0 -137
- claude_mpm-3.1.1/scripts/test_system_health.py +0 -180
- claude_mpm-3.1.1/scripts/test_todo_hook.py +0 -92
- claude_mpm-3.1.1/scripts/test_todo_task_integration.py +0 -160
- claude_mpm-3.1.1/scripts/test_version_comparison.py +0 -44
- claude_mpm-3.1.1/scripts/test_version_detection.py +0 -71
- claude_mpm-3.1.1/scripts/test_version_management.py +0 -73
- claude_mpm-3.1.1/scripts/test_version_migration.py +0 -113
- claude_mpm-3.1.1/scripts/tests/run_tests.py +0 -38
- claude_mpm-3.1.1/scripts/tests/run_tests_updated.py +0 -47
- claude_mpm-3.1.1/scripts/tests/test_agent_integration.py +0 -172
- claude_mpm-3.1.1/scripts/tests/test_claude_direct.py +0 -98
- claude_mpm-3.1.1/scripts/tests/test_hello_world.py +0 -75
- claude_mpm-3.1.1/scripts/tests/test_interactive.py +0 -73
- claude_mpm-3.1.1/scripts/tests/test_logging.py +0 -73
- claude_mpm-3.1.1/scripts/tests/test_orchestration.py +0 -130
- claude_mpm-3.1.1/scripts/tests/test_pexpect.py +0 -42
- claude_mpm-3.1.1/scripts/tests/test_pexpect_install.py +0 -30
- claude_mpm-3.1.1/scripts/tests/test_subprocess.py +0 -172
- claude_mpm-3.1.1/scripts/trace_deployment.py +0 -62
- claude_mpm-3.1.1/scripts/validate_agent_configuration.py +0 -268
- claude_mpm-3.1.1/scripts/validate_agent_schema.py +0 -63
- claude_mpm-3.1.1/scripts/verify_imports.py +0 -137
- claude_mpm-3.1.1/src/claude_mpm/__main__.py +0 -14
- claude_mpm-3.1.1/src/claude_mpm/agents/agent-template.yaml +0 -83
- claude_mpm-3.1.1/src/claude_mpm/cli_main.py +0 -13
- claude_mpm-3.1.1/src/claude_mpm/cli_module/refactoring_guide.md +0 -253
- claude_mpm-3.1.1/src/claude_mpm/core/agent_registry.py.bak +0 -312
- claude_mpm-3.1.1/src/claude_mpm/core/base_service.py.bak +0 -406
- claude_mpm-3.1.1/src/claude_mpm/hooks/README.md +0 -97
- claude_mpm-3.1.1/src/claude_mpm/orchestration/SUBPROCESS_DESIGN.md +0 -66
- claude_mpm-3.1.1/src/claude_mpm/schemas/README_SECURITY.md +0 -92
- claude_mpm-3.1.1/src/claude_mpm/schemas/agent_schema.json +0 -395
- claude_mpm-3.1.1/src/claude_mpm/schemas/agent_schema_documentation.md +0 -181
- claude_mpm-3.1.1/src/claude_mpm/schemas/agent_schema_security_notes.md +0 -165
- claude_mpm-3.1.1/src/claude_mpm/schemas/examples/standard_workflow.json +0 -505
- claude_mpm-3.1.1/src/claude_mpm/schemas/ticket_workflow_documentation.md +0 -482
- claude_mpm-3.1.1/src/claude_mpm/schemas/ticket_workflow_schema.json +0 -590
- claude_mpm-3.1.1/src/claude_mpm/services/framework_claude_md_generator/README.md +0 -92
- claude_mpm-3.1.1/src/claude_mpm/services/parent_directory_manager/README.md +0 -83
- claude_mpm-3.1.1/src/claude_mpm/services/version_control/VERSION +0 -1
- claude_mpm-3.1.1/src/claude_mpm.egg-info/SOURCES.txt +0 -612
- claude_mpm-3.1.1/test-reports/integration-tests.xml +0 -31
- claude_mpm-3.1.1/test-reports/test-report-20250728-102831.json +0 -26
- claude_mpm-3.1.1/test-reports/test-summary-20250728-102831.txt +0 -32
- claude_mpm-3.1.1/test-reports/unit-tests.xml +0 -1
- claude_mpm-3.1.1/test_e2e_workflow_complete.py +0 -477
- claude_mpm-3.1.1/test_edge_cases.py +0 -202
- claude_mpm-3.1.1/test_workflow_implementation.py +0 -175
- claude_mpm-3.1.1/tickets/epics/EP-0001.md +0 -71
- claude_mpm-3.1.1/tickets/epics/EP-0002-subagent-pivot.md +0 -197
- claude_mpm-3.1.1/tickets/epics/EP-0002.md +0 -49
- claude_mpm-3.1.1/tickets/epics/EP-0003.md +0 -57
- claude_mpm-3.1.1/tickets/epics/EP-0004.md +0 -56
- claude_mpm-3.1.1/tickets/issues/CONVERSION_MAPPING.md +0 -23
- claude_mpm-3.1.1/tickets/issues/ISS-0001.md +0 -55
- claude_mpm-3.1.1/tickets/issues/ISS-0002.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0003.md +0 -55
- claude_mpm-3.1.1/tickets/issues/ISS-0004.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0005.md +0 -55
- claude_mpm-3.1.1/tickets/issues/ISS-0006.md +0 -55
- claude_mpm-3.1.1/tickets/issues/ISS-0007.md +0 -55
- claude_mpm-3.1.1/tickets/issues/ISS-0008.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0009.md +0 -55
- claude_mpm-3.1.1/tickets/issues/ISS-0010.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0011.md +0 -53
- claude_mpm-3.1.1/tickets/issues/ISS-0012.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0013.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0014.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0015.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0016.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0017.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0018.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0019.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0020.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0021.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0022.md +0 -52
- claude_mpm-3.1.1/tickets/issues/ISS-0023.md +0 -53
- claude_mpm-3.1.1/tickets/issues/ISS-0024.md +0 -53
- claude_mpm-3.1.1/tickets/issues/ISS-0025.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0026.md +0 -53
- claude_mpm-3.1.1/tickets/issues/ISS-0027.md +0 -53
- claude_mpm-3.1.1/tickets/issues/ISS-0028.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0029.md +0 -53
- claude_mpm-3.1.1/tickets/issues/ISS-0030.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0031.md +0 -54
- claude_mpm-3.1.1/tickets/issues/ISS-0032.md +0 -53
- claude_mpm-3.1.1/tickets/tasks/TSK-0001.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0002.md +0 -47
- claude_mpm-3.1.1/tickets/tasks/TSK-0003.md +0 -86
- claude_mpm-3.1.1/tickets/tasks/TSK-0004.md +0 -84
- claude_mpm-3.1.1/tickets/tasks/TSK-0005.md +0 -59
- claude_mpm-3.1.1/tickets/tasks/TSK-0006.md +0 -45
- claude_mpm-3.1.1/tickets/tasks/TSK-0007.md +0 -44
- claude_mpm-3.1.1/tickets/tasks/TSK-0008.md +0 -44
- claude_mpm-3.1.1/tickets/tasks/TSK-0009.md +0 -44
- claude_mpm-3.1.1/tickets/tasks/TSK-0011.md +0 -44
- claude_mpm-3.1.1/tickets/tasks/TSK-0016.md +0 -44
- claude_mpm-3.1.1/tickets/tasks/TSK-0017.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0018.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0019.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0020.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0021.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0022.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0023.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0024.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0025.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0026.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0027.md +0 -41
- claude_mpm-3.1.1/tickets/tasks/TSK-0028.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0029.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0030.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0031.md +0 -219
- claude_mpm-3.1.1/tickets/tasks/TSK-0032.md +0 -249
- claude_mpm-3.1.1/tickets/tasks/TSK-0033.md +0 -129
- claude_mpm-3.1.1/tickets/tasks/TSK-0034.md +0 -122
- claude_mpm-3.1.1/tickets/tasks/TSK-0035.md +0 -129
- claude_mpm-3.1.1/tickets/tasks/TSK-0036.md +0 -152
- claude_mpm-3.1.1/tickets/tasks/TSK-0037.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0038.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0039.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0040.md +0 -64
- claude_mpm-3.1.1/tickets/tasks/TSK-0041.md +0 -63
- claude_mpm-3.1.1/tickets/tasks/TSK-0042.md +0 -71
- claude_mpm-3.1.1/tickets/tasks/TSK-0043.md +0 -81
- claude_mpm-3.1.1/tickets/tasks/TSK-0044.md +0 -88
- claude_mpm-3.1.1/tickets/tasks/TSK-0045.md +0 -42
- claude_mpm-3.1.1/tickets/tasks/TSK-0046.md +0 -126
- claude_mpm-3.1.1/uninstall.sh +0 -73
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/LICENSE +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/MANIFEST.in +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/README.md +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/claude-mpm +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/pyproject.toml +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/requirements.txt +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/scripts/ticket +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/setup.cfg +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/setup.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/agent_loader.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/base_agent.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/data_engineer.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/documentation.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/engineer.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/ops.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/qa.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/research.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/security.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/templates/version_control.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/cli_module/migration_example.py +0 -0
- /claude_mpm-3.1.1/src/claude_mpm/cli.py → /claude_mpm-3.1.2/src/claude_mpm/cli_old.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/constants.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/agent_registry.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/framework_loader.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/simple_runner.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/logging_hook_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/mpm_command_hook.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/post_delegation_hook_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/pre_delegation_hook_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/submit_hook_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/ticket_extraction_hook_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/todo_agent_prefix_hook.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/builtin/workflow_start_hook.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/init.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/direct_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/factory.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/hook_enabled_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/hook_integration_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/interactive_subprocess_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/pexpect_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/pty_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/simple_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/subprocess_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/system_prompt_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/orchestration/archive/wrapper_orchestrator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/schemas/workflow_validator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/scripts/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/scripts/ticket.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_capabilities_generator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_deployment.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_management_service.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_profile_loader.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/agent_registry.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/base_agent_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/deployed_agent_discovery.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_agent_loader.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/backup_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/config_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/deduplication_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/framework_protector.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/operations.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/state_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/template_deployer.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/validation_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/version_control_helper.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/parent_directory_manager/version_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/shared_prompt_cache.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/ticket_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/ticket_manager_di.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/ticketing_service_original.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/ui/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/ui/rich_terminal_ui.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/ui/terminal_ui.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/utils/paths.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm/validation/agent_validator.py +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/requires.txt +0 -0
- {claude_mpm-3.1.1 → claude_mpm-3.1.2}/src/claude_mpm.egg-info/top_level.txt +0 -0
- {claude_mpm-3.1.1 → 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
|
|
@@ -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
|
|
14
|
-
|
|
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(
|
|
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)
|