claude-mpm 3.1.1__py3-none-any.whl → 3.1.3__py3-none-any.whl

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 (47) hide show
  1. claude_mpm/__main__.py +27 -3
  2. claude_mpm/agents/INSTRUCTIONS.md +17 -2
  3. claude_mpm/agents/templates/test-integration-agent.md +34 -0
  4. claude_mpm/cli/README.md +109 -0
  5. claude_mpm/cli/__init__.py +172 -0
  6. claude_mpm/cli/commands/__init__.py +20 -0
  7. claude_mpm/cli/commands/agents.py +202 -0
  8. claude_mpm/cli/commands/info.py +94 -0
  9. claude_mpm/cli/commands/run.py +95 -0
  10. claude_mpm/cli/commands/tickets.py +70 -0
  11. claude_mpm/cli/commands/ui.py +79 -0
  12. claude_mpm/cli/parser.py +337 -0
  13. claude_mpm/cli/utils.py +190 -0
  14. claude_mpm/cli_enhancements.py +19 -0
  15. claude_mpm/core/agent_registry.py +4 -4
  16. claude_mpm/core/factories.py +1 -1
  17. claude_mpm/core/service_registry.py +1 -1
  18. claude_mpm/core/simple_runner.py +17 -27
  19. claude_mpm/hooks/claude_hooks/hook_handler.py +53 -4
  20. claude_mpm/models/__init__.py +106 -0
  21. claude_mpm/models/agent_definition.py +196 -0
  22. claude_mpm/models/common.py +41 -0
  23. claude_mpm/models/lifecycle.py +97 -0
  24. claude_mpm/models/modification.py +126 -0
  25. claude_mpm/models/persistence.py +57 -0
  26. claude_mpm/models/registry.py +91 -0
  27. claude_mpm/security/__init__.py +8 -0
  28. claude_mpm/security/bash_validator.py +393 -0
  29. claude_mpm/services/agent_lifecycle_manager.py +206 -94
  30. claude_mpm/services/agent_modification_tracker.py +27 -100
  31. claude_mpm/services/agent_persistence_service.py +74 -0
  32. claude_mpm/services/agent_registry.py +43 -82
  33. claude_mpm/services/agent_versioning.py +37 -0
  34. claude_mpm/services/{ticketing_service_original.py → legacy_ticketing_service.py} +16 -9
  35. claude_mpm/services/ticket_manager.py +5 -4
  36. claude_mpm/services/{ticket_manager_di.py → ticket_manager_dependency_injection.py} +39 -12
  37. claude_mpm/services/version_control/semantic_versioning.py +10 -9
  38. claude_mpm/utils/path_operations.py +20 -0
  39. {claude_mpm-3.1.1.dist-info → claude_mpm-3.1.3.dist-info}/METADATA +9 -1
  40. {claude_mpm-3.1.1.dist-info → claude_mpm-3.1.3.dist-info}/RECORD +45 -25
  41. claude_mpm/cli_main.py +0 -13
  42. claude_mpm/utils/import_migration_example.py +0 -80
  43. /claude_mpm/{cli.py → cli_old.py} +0 -0
  44. {claude_mpm-3.1.1.dist-info → claude_mpm-3.1.3.dist-info}/WHEEL +0 -0
  45. {claude_mpm-3.1.1.dist-info → claude_mpm-3.1.3.dist-info}/entry_points.txt +0 -0
  46. {claude_mpm-3.1.1.dist-info → claude_mpm-3.1.3.dist-info}/licenses/LICENSE +0 -0
  47. {claude_mpm-3.1.1.dist-info → claude_mpm-3.1.3.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,11 @@
1
1
  claude_mpm/__init__.py,sha256=TRneXzyApGyF7cRerpTn7aCbYLu-AJhPHjQf-dMBElQ,666
2
- claude_mpm/__main__.py,sha256=smBw-5J3nf5s6GgQjj384GUr28YotIX-WNOxqpP0wnE,310
3
- claude_mpm/cli.py,sha256=5GeRclnY-VNDaGnv7XUXDOniHZfACJ8HUYVUUXEHh9g,26340
4
- claude_mpm/cli_enhancements.py,sha256=nwdOrbXITRqvcq_vrJtPKW1GDS7dLIG4UqjoUet2vR0,10890
5
- claude_mpm/cli_main.py,sha256=KCAe-ws73NrIg5qmFhPdZ1a4uoiaEZ-lldYzQ6KfnJg,306
2
+ claude_mpm/__main__.py,sha256=a4FWiccZuiAf3XjGlwPMEuz7hdmx_ip8HTPHXnYsY5c,1538
3
+ claude_mpm/cli_enhancements.py,sha256=-N5f2u9TaxUcOJegUd3lt1FRz5ErEyYUvvgrNmMRL7Q,11814
4
+ claude_mpm/cli_old.py,sha256=5GeRclnY-VNDaGnv7XUXDOniHZfACJ8HUYVUUXEHh9g,26340
6
5
  claude_mpm/constants.py,sha256=5AG5hgBxOC7gMNHDx0lAhS-FQ8gXhtGtqJ9Moj3S6ro,4044
7
6
  claude_mpm/init.py,sha256=gOreOf7BLXkT0_HrQk_As4Kz1OT_NJG_RG0i0hbY0z0,8088
8
7
  claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=TYgSd9jNBMWp4mAOBUl9dconX4RcGbvmMEScRy5uyko,3343
9
- claude_mpm/agents/INSTRUCTIONS.md,sha256=X6bOhSII3pZVZh_Vw_zMYRdfLtyl5Mmf_jhrVYfNxFs,7200
8
+ claude_mpm/agents/INSTRUCTIONS.md,sha256=bcxaT0ww8ZOW_EeeLPUMcoeWEHOc9MRji_eIJ4b796w,8017
10
9
  claude_mpm/agents/__init__.py,sha256=r-p7ervzjLPD7_8dm2tXX_fwvdTZy6KwKA03ofxN3sA,3275
11
10
  claude_mpm/agents/agent-template.yaml,sha256=koKJn8MCAJx0QNQMHouvIZrwvw5qjPV0U-aV-YVyk6s,2036
12
11
  claude_mpm/agents/agent_loader.py,sha256=P4h3qupJHvZL9dfb6ntB582xenYv9JbkMOVav_kNkAo,44030
@@ -24,6 +23,7 @@ claude_mpm/agents/templates/ops.json,sha256=uxIu5Tyw-FsnV-RtT-hk2QSy9EJgesmK7eam
24
23
  claude_mpm/agents/templates/qa.json,sha256=ByZw4FT1RW5sRoim2ouUPYipCi-6xI8LDaYEZ26lc6U,3076
25
24
  claude_mpm/agents/templates/research.json,sha256=omkijtxuVMFweqGa6OzGS8qy0Xrlr1WwfZq361-mQtk,9943
26
25
  claude_mpm/agents/templates/security.json,sha256=5RzIlGtRjPIVSKvH_jjx-hzPbjh0TP2SeDBw_7LyfEA,3118
26
+ claude_mpm/agents/templates/test-integration-agent.md,sha256=xyauhBApzj8qD24E0G32BF-mPCrGKES1g5S4OWPUtgc,505
27
27
  claude_mpm/agents/templates/version_control.json,sha256=YPxSufd32PMFTyVzDkOteoS944r74MD3VIToYm4DRCE,3043
28
28
  claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json,sha256=lLso4RHXVTQmX4A1XwF84kT59zZDblPO1xCgBj4S4x8,5060
29
29
  claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json,sha256=snfJW2yW9aMv9ldCSIWW7zwnyoQRx5u7xLMkNlfus9I,2258
@@ -34,6 +34,16 @@ claude_mpm/agents/templates/backup/research_agent_20250726_234551.json,sha256=o4
34
34
  claude_mpm/agents/templates/backup/security_agent_20250726_234551.json,sha256=l5YuD-27CxKSOsRLv0bDY_tCZyds0yGbeizLb8paeFY,2322
35
35
  claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json,sha256=too38RPTLJ9HutCMn0nfmEdCj2me241dx5tUYDFtu94,2143
36
36
  claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json,sha256=YZQgq2ri2_Y3qKzvPlC6TmzZKviDv0__GuyUOo1LbT8,146
37
+ claude_mpm/cli/README.md,sha256=exe9V_UEsMSPXOMlvQUv5FsCuhUpPOsMvIhyDSyuFdI,3423
38
+ claude_mpm/cli/__init__.py,sha256=2XDksLwDGa9tzddxyxDESPySrchHfzK3FCK_WMSYYEk,6267
39
+ claude_mpm/cli/parser.py,sha256=GsyaMK2td3kPji-OLfNjfgIza2Qe4iEeq6Wr-sebVKc,10737
40
+ claude_mpm/cli/utils.py,sha256=T_te2m97lIQ0P5FsUhc56NZOQcEDm3uKPVyvcm5cxjg,6522
41
+ claude_mpm/cli/commands/__init__.py,sha256=3Exhq4RH-2Sq2ugwc9fFW3vDbzJgSu2JaoX01vXjdRE,454
42
+ claude_mpm/cli/commands/agents.py,sha256=jjy0IxtXgyMIEZici8yKdnAGA6hGk9FA8DxGaGzOWlE,7193
43
+ claude_mpm/cli/commands/info.py,sha256=_xjhLWbdxWYQmI8MaBmwh0XmveVw2q3VMJKVbZ8agCU,3136
44
+ claude_mpm/cli/commands/run.py,sha256=EcXpkqn98_1xMeTjc1IxKLhAteSBw7dy-anCltd2irI,3582
45
+ claude_mpm/cli/commands/tickets.py,sha256=ouO8zPss99fd7hIt0YkqUS-6ize2HdUSRx1LJAflDdA,2318
46
+ claude_mpm/cli/commands/ui.py,sha256=iKXWdaos-gMaqpT62RQ-juhmM0bQLsqi3Z-JiLrSArg,2643
37
47
  claude_mpm/cli_module/__init__.py,sha256=CkMp4gzWKoZZF_qKyBDi2sQaZw_GLWZYLtKouv-4f8s,390
38
48
  claude_mpm/cli_module/args.py,sha256=nilYpziBsoEySO4W1hQ2MRJyn9TFx3c3TrucyMMhRtk,7970
39
49
  claude_mpm/cli_module/commands.py,sha256=CBNfO-bXrZ0spjeW_7-swprEq5V4PQSc0qhl9SLP5UU,7168
@@ -42,7 +52,7 @@ claude_mpm/cli_module/refactoring_guide.md,sha256=fl1PGwLZAj4OYWmU0syg1jDd81PqK7
42
52
  claude_mpm/config/__init__.py,sha256=p31JuaXLDHgIgoAbHApNvctN2IEZYq2MBkkXROdhbH8,105
43
53
  claude_mpm/core/__init__.py,sha256=hE29BeE3qb8vC1-wiKjPh60WZebCwfo9UAUGM1zQnkc,1206
44
54
  claude_mpm/core/agent_name_normalizer.py,sha256=-X68oz3_74t9BRbHA54NEGyjy0xjTsGp_sCUHDtKp1s,9269
45
- claude_mpm/core/agent_registry.py,sha256=4MAfc7xDlrYWWkHmDMRmWE8q32teuCmIcud9D0I0dLo,20496
55
+ claude_mpm/core/agent_registry.py,sha256=2GYTWYxjKF0HktW9HJc5XfECYjIVZLcAKX_dwiwyY08,20556
46
56
  claude_mpm/core/agent_registry.py.bak,sha256=cXB0yqhonE1XsXmWcdwyNuvv8yddK_PyZILDCmwCZ_Q,10161
47
57
  claude_mpm/core/agent_session_manager.py,sha256=6alXQr4gnMR-unT4J1ryEtTxJqQolA0-NgPQN6X3lqY,11212
48
58
  claude_mpm/core/base_service.py,sha256=qWI_rUybHmmKroptJxcE4rzPBhK8yeMKIt2JqnqJB7E,29125
@@ -50,16 +60,16 @@ claude_mpm/core/base_service.py.bak,sha256=48A8eI_HPqxYm42X5jaTo8zQVOfFFXe7SqIUo
50
60
  claude_mpm/core/config.py,sha256=QNPufRWzXl99wAz14Gm2T_CG5K5n8d4eOjmpaxVllv0,12371
51
61
  claude_mpm/core/config_aliases.py,sha256=8eqA4wpWViIDm_9pL3f9j7cR_ssmhOYYiY2UzHrfUzg,10058
52
62
  claude_mpm/core/container.py,sha256=P4c4nSo_USSfHTxvpR1sQkVGNsgqozZBN27l3IXqiDc,12216
53
- claude_mpm/core/factories.py,sha256=Qh2n_x112ZIPWEfwFley9bb9IZcSG38LkpT3uValyDk,7484
63
+ claude_mpm/core/factories.py,sha256=QQfGBako6TmuUa_VFLbjSUIQE4zRs18Ft8bcGceisfI,7493
54
64
  claude_mpm/core/framework_loader.py,sha256=SdONNh8a7vSicr4vVuRzd7OqgDMIyg9k_xxbr8bLRi8,19547
55
65
  claude_mpm/core/injectable_service.py,sha256=7fOny9c6x8IJ9hVZmFql1eNDXXB1jcWbsxfTKbMZk74,7497
56
66
  claude_mpm/core/interfaces.py,sha256=TpP474EKEng-1TrjKUsN69qq6dXy8zIjicS7iV-ZPV0,15269
57
67
  claude_mpm/core/logger.py,sha256=wqYlUy8wlSXyTWOeWCGNYaIWdiFYzT7yw1U0vdT3R_8,15894
58
68
  claude_mpm/core/minimal_framework_loader.py,sha256=liYS4IyuW_aFK7yhRDZwTwT-3q09fT3wIJSUzkI93Ko,3673
59
69
  claude_mpm/core/mixins.py,sha256=rTEH-7FDpNiLB8oo6mSb0CLarJklv4fDJw1xM-gr5wI,5599
60
- claude_mpm/core/service_registry.py,sha256=wKJUO1g4UFA4dUpE3RkIYz1Ek8kIh4XfvU1kFeLCl2Q,10529
70
+ claude_mpm/core/service_registry.py,sha256=C1-m8F3eE2pnKS42PXO7E30N-IEayIF3UCjOLFB3jk8,10538
61
71
  claude_mpm/core/session_manager.py,sha256=3rO4KGZp8Qd_cUw6OWv4jyxGCUaL_MNPgCCpnwQt12A,6581
62
- claude_mpm/core/simple_runner.py,sha256=TVyzyzYHmvf7o_jpCKYGuLfuYReLcTc5Fkl1tZ_4tJw,26447
72
+ claude_mpm/core/simple_runner.py,sha256=FMInbYlXnolqmBlXpe37VUgWNheb3liHou7_BPOwYm8,26132
63
73
  claude_mpm/core/tool_access_control.py,sha256=htZbDhC8s7D7BVqfmk0BwRrYJnlnUAk8_NeJKOaeNlg,6632
64
74
  claude_mpm/generators/__init__.py,sha256=l53aBn6kBQSDz3b6bZkMCJBcEmYnV9hHEZq8LKzXgH8,152
65
75
  claude_mpm/generators/agent_profile_generator.py,sha256=2HjOscogSyvrtQj8KwdgNPS6Ym_QvgX1BMeauQZewZA,5751
@@ -78,8 +88,15 @@ claude_mpm/hooks/builtin/ticket_extraction_hook_example.py,sha256=4wNhS2tFUXgdcv
78
88
  claude_mpm/hooks/builtin/todo_agent_prefix_hook.py,sha256=v_4w2vcZIt0bkZxqdHmgtN79yHZ1gviuhhBws0FHpIQ,10226
79
89
  claude_mpm/hooks/builtin/workflow_start_hook.py,sha256=EQrtYD9qLMLSYPl3oQinEheZAJ2i5EO_h2jhhR8lmt0,7490
80
90
  claude_mpm/hooks/claude_hooks/__init__.py,sha256=bMUwt2RzDGAcEbtDMA7vWS1uJsauOY0OixIe4pHwgQ0,129
81
- claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=FpmG0TfPTT-JL_dFdae-XVwNnvCvB6BJtRpT5PlZi7g,30538
91
+ claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=ehvYMFrPLesENTjRtuwssN7g9-cdpaaBoYlZB_WxGTs,32816
82
92
  claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=6n0-G317jIrPuNRGnAyFvBbNM4gVzKEat_WSbpvKN-g,1742
93
+ claude_mpm/models/__init__.py,sha256=4HWlsV1XfzEzAFTM25E46jPVfvQMdAlyQ9bgJmJAo6M,2171
94
+ claude_mpm/models/agent_definition.py,sha256=y9XQOED_maOyiYKhNB8H8MfJJMBN0vIYPS_wCXnRJmA,6647
95
+ claude_mpm/models/common.py,sha256=Yhqx9h7e0hFx-uTHc2YyLVbNo3CmjiDPSSVGKAhyWAk,1359
96
+ claude_mpm/models/lifecycle.py,sha256=RAZYyB1X5_y83Jxrfx6DReMfoJvi222typU6iJ13zcE,2803
97
+ claude_mpm/models/modification.py,sha256=Ttx1hadsLsiME_L069DQLnMza4lqjjDav6fadTVhVlE,4280
98
+ claude_mpm/models/persistence.py,sha256=hyQn83As-D8Akmu95va2To5nPFWnUvY8WRL0ozzvmJk,1659
99
+ claude_mpm/models/registry.py,sha256=T0v7jTO2I8qIak9JKwavZKL0CrZ8nVJXVrf129VUUSM,3122
83
100
  claude_mpm/orchestration/SUBPROCESS_DESIGN.md,sha256=YwToiT1_NXblv1XIWhWPNc2uKzDvqY2E_Nix8qK7qk0,2136
84
101
  claude_mpm/orchestration/__init__.py,sha256=C-cwldtfBCgV19mKnJa5U1XiKw1rAZvx-kK61nIdcao,205
85
102
  claude_mpm/orchestration/archive/direct_orchestrator.py,sha256=j-IP-st-Xi9Xf33i-BLPZOE_kkxSZxNNuFZmp6MTuZY,7884
@@ -104,22 +121,26 @@ claude_mpm/schemas/workflow_validator.py,sha256=qRgGodJoIZQaLfZ8OzWz3Y9eVNz3ckrQ
104
121
  claude_mpm/schemas/examples/standard_workflow.json,sha256=POQdxPIoJRD2qe4-17a35pGqFX5hfmGttXWPfeZ8qRs,13835
105
122
  claude_mpm/scripts/__init__.py,sha256=M2n9fQeyfILC8gogXvJv6ixnu7hwpqLEqLWJRaUN0MU,37
106
123
  claude_mpm/scripts/ticket.py,sha256=GmFimtTJxc927cCzJvvJH3gvoxXQtAB-W-xnuclcvNs,9350
124
+ claude_mpm/security/__init__.py,sha256=xxUJ-v0D08x4OewQD2v4XFctEJ5I4EkglgnyO1NjJLk,232
125
+ claude_mpm/security/bash_validator.py,sha256=vEOED6PkgeNazAjKmPpGLmlbVQAVCHwUiG7x0WBJdA4,15784
107
126
  claude_mpm/services/__init__.py,sha256=-EBm07Lh9mjcofiQHCqyCCQJMLi9akVArPlz8i_kEOo,226
108
127
  claude_mpm/services/agent_capabilities_generator.py,sha256=hWG0zV2InmzrDMxSbQzjVBBTzEaxg0bFxl8tmTMJ8qA,6565
109
128
  claude_mpm/services/agent_deployment.py,sha256=DtK1BX2yCrutUkQdVPD01mYHm-ya36l3EPOnEcaDfog,67961
110
- claude_mpm/services/agent_lifecycle_manager.py,sha256=LPKTr6Oo2EzZ2vpk1a2uscdEeO9Vagz5UwatF3Zj0ZI,41913
129
+ claude_mpm/services/agent_lifecycle_manager.py,sha256=XLaqk0XBCmQcgIDZL4f404PczcKoi-FJn67cSfcVCNw,48703
111
130
  claude_mpm/services/agent_management_service.py,sha256=eX5n6w17b9urcogVdr4V-kXcuo7yyjORTrIihjF8PeQ,22853
112
- claude_mpm/services/agent_modification_tracker.py,sha256=7FRDXuCNANUnLatCgtBArG-AxZNtKbGQjgCKjnzmJ80,34050
131
+ claude_mpm/services/agent_modification_tracker.py,sha256=MVJRn0cWdO5UVw3du8MC355bpYttKCBz6LmW1dq3eU4,31506
132
+ claude_mpm/services/agent_persistence_service.py,sha256=Ls5ms9C-RDhUJE5BOyg15VGc4nJflErOJSgAIGHOa3s,2291
113
133
  claude_mpm/services/agent_profile_loader.py,sha256=4D1Xj0vgqV8wN7Y3r8lijh7ghy5cVGU5t5s931sVqGc,23133
114
- claude_mpm/services/agent_registry.py,sha256=vn8CEW0vppj_0EY2NofmNRZEnpV70mlWiX2kAViFDRg,24374
134
+ claude_mpm/services/agent_registry.py,sha256=Hi8TAhr-bIR5NW8QV6chkobtU-fTiRoZqrgiwViusYs,23148
135
+ claude_mpm/services/agent_versioning.py,sha256=y4SiKGKdTn-9_Ht6nGlmKGJW6MLgEHZUy5SR1OPTZZM,1108
115
136
  claude_mpm/services/base_agent_manager.py,sha256=WEcfzdMaFXmXUSoEYEPNeGu8dvqjIv53zyUU0ITrhsM,14987
116
137
  claude_mpm/services/deployed_agent_discovery.py,sha256=GoXhho5EBz_FZDDl4xUWW_BnP3hfymbV1ePorRrhO_U,9443
117
138
  claude_mpm/services/framework_agent_loader.py,sha256=QdRSYRurYF3YbAXJwIGei71BffD5AqOVcV3ktRPdk7g,14018
118
139
  claude_mpm/services/framework_claude_md_generator.py,sha256=3kHmkRLHTex6HFZ4DhbLVQb48j-5dAoy1q6UW1Qf7U8,22914
140
+ claude_mpm/services/legacy_ticketing_service.py,sha256=fd3nC5YG5-KblC5zKkpzNFN3-G3h6KYgWHTd_edzJ4g,17042
119
141
  claude_mpm/services/shared_prompt_cache.py,sha256=D04lrRWyg0lHyqGcAHy7IYvRHRKSg6EOpAJwBUPa2wk,29890
120
- claude_mpm/services/ticket_manager.py,sha256=Ki11YjBkDax8BFVSaDdOBk3K4VU5gvdbgq9AmCyyoZ0,7454
121
- claude_mpm/services/ticket_manager_di.py,sha256=pIsIGncbboKzBYSRQTO7ZX5MuQzV6iFfIflvKe6u1jw,11123
122
- claude_mpm/services/ticketing_service_original.py,sha256=Dg3TYKsy0Z3JCqV5rlMBXeMrhrkAGxOgAMUNRZtJIhw,16680
142
+ claude_mpm/services/ticket_manager.py,sha256=q7nHGfmW0SwIGa1FoK-D5Z30VIyGW6wUZzL_Za4AGk4,7603
143
+ claude_mpm/services/ticket_manager_dependency_injection.py,sha256=MyBaCtJXiM5BqAPYf9lXOawR7QmkIa6j97J6l6v_rEg,12185
123
144
  claude_mpm/services/framework_claude_md_generator/README.md,sha256=_-ty72t2afPagDVVUEizPkhs4BYkCeqCnZDNPgZAYtY,3511
124
145
  claude_mpm/services/framework_claude_md_generator/__init__.py,sha256=OtnwxLiJektfFtsKdkHM1X27rKkFiNd_rcf4843ziKw,7334
125
146
  claude_mpm/services/framework_claude_md_generator/content_assembler.py,sha256=CZlw84bBWjvK68VQhjAdLnMxXBXipZtcdyPtYWLdrKo,6590
@@ -157,7 +178,7 @@ claude_mpm/services/version_control/__init__.py,sha256=5BFbqFUMtpCyDbMcekRjCQ4jg
157
178
  claude_mpm/services/version_control/branch_strategy.py,sha256=MTjWinbJEp4N-QqBi6Olop7LNtvhCEPVnfCwK-29O-A,22999
158
179
  claude_mpm/services/version_control/conflict_resolution.py,sha256=yWa9fzmkds1U0EBw-LyTZvlj56MpEEsRmryLQg4KDdU,26084
159
180
  claude_mpm/services/version_control/git_operations.py,sha256=L69Aduzwq4IipIGV3iiwNQTlgVi6peh-LzJTks7bvxo,27499
160
- claude_mpm/services/version_control/semantic_versioning.py,sha256=xiDsirwq8CApnOBc4UMf4VcrgolzQgfK2T_Yi3mY7Bk,29039
181
+ claude_mpm/services/version_control/semantic_versioning.py,sha256=JieqW46gA_dv9kwjLeT44XOMH0c_RplkjlLQuB_Nzw8,29168
161
182
  claude_mpm/ui/__init__.py,sha256=Snxxm3pYXPKfv9gBG_MZKxXkZk8c4ZJAQIvh-rjjCFo,45
162
183
  claude_mpm/ui/rich_terminal_ui.py,sha256=gx_9TD0kR4Exq867pHjVVs_b-gw1q267t5oA2ZDSkQU,10078
163
184
  claude_mpm/ui/terminal_ui.py,sha256=E_M-L-6EuGp6L8pRpaWEhTqf-ddDXhZp5W85D0XNRPw,11928
@@ -165,15 +186,14 @@ claude_mpm/utils/__init__.py,sha256=E8Hvv6ykL6rnnc8-YmfoGNpRCZbcIirxcFuNz7YvDIg,
165
186
  claude_mpm/utils/config_manager.py,sha256=TlekZYIWOz_ouWHQU4Gc-zckhoFK9AqA25b6A_XZdDc,16412
166
187
  claude_mpm/utils/error_handler.py,sha256=W_Zc0FrKudpXvxT66Oxx0v8WkR8HA2KlynzzGy3eGcU,8168
167
188
  claude_mpm/utils/framework_detection.py,sha256=nzs1qRZK9K-zT0382z1FpGDvgzUNrUg8rBL-O_WLq-Q,1217
168
- claude_mpm/utils/import_migration_example.py,sha256=W4a4XH3FY_VBB00BB8Lae2aRPM021PxLHzdUfEs0B5w,2463
169
189
  claude_mpm/utils/imports.py,sha256=wX-SOXUHbemx01MHRGQpVwajzXH6qYdQkYNFCIbb2mw,6851
170
- claude_mpm/utils/path_operations.py,sha256=6pLMnAWBVzHkgp6JyQHmHbGD-dWn-nX21yV4E_eT-kM,11614
190
+ claude_mpm/utils/path_operations.py,sha256=KhaWtduSK14aIsReIZ5-2fBOdSCrt4TLcDXiOXzlvrk,12450
171
191
  claude_mpm/utils/paths.py,sha256=Xv0SZWdZRkRjN9e6clBcA165ya00GNQxt7SwMz51tfA,10153
172
192
  claude_mpm/validation/__init__.py,sha256=bJ19g9lnk7yIjtxzN8XPegp87HTFBzCrGQOpFgRTf3g,155
173
193
  claude_mpm/validation/agent_validator.py,sha256=GCA2b2rKhKDeaNyUqWxTiWIs3sDdWjD9cgOFRp9K6ic,18227
174
- claude_mpm-3.1.1.dist-info/licenses/LICENSE,sha256=cSdDfXjoTVhstrERrqme4zgxAu4GubU22zVEHsiXGxs,1071
175
- claude_mpm-3.1.1.dist-info/METADATA,sha256=oQnytf26RtggLVb5S5WJGz41zJshlxeJmwKneQHLwDw,14139
176
- claude_mpm-3.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
177
- claude_mpm-3.1.1.dist-info/entry_points.txt,sha256=PknO31um7d8bt6GjOiVeYpdJpjND0_C1z-LQfY6UfiU,142
178
- claude_mpm-3.1.1.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
179
- claude_mpm-3.1.1.dist-info/RECORD,,
194
+ claude_mpm-3.1.3.dist-info/licenses/LICENSE,sha256=cSdDfXjoTVhstrERrqme4zgxAu4GubU22zVEHsiXGxs,1071
195
+ claude_mpm-3.1.3.dist-info/METADATA,sha256=SLm5vjVJU9LrnH7Ev_mC1c_RxXDdB40CSAfiFg3aIyU,14663
196
+ claude_mpm-3.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
197
+ claude_mpm-3.1.3.dist-info/entry_points.txt,sha256=PknO31um7d8bt6GjOiVeYpdJpjND0_C1z-LQfY6UfiU,142
198
+ claude_mpm-3.1.3.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
199
+ claude_mpm-3.1.3.dist-info/RECORD,,
claude_mpm/cli_main.py DELETED
@@ -1,13 +0,0 @@
1
- """Main entry point for CLI that can be run directly."""
2
-
3
- import sys
4
- from pathlib import Path
5
-
6
- # Add src directory to path so claude_mpm can be imported
7
- src_dir = Path(__file__).parent.parent
8
- sys.path.insert(0, str(src_dir))
9
-
10
- from claude_mpm.cli import main
11
-
12
- if __name__ == "__main__":
13
- sys.exit(main())
@@ -1,80 +0,0 @@
1
- """Example of how to migrate duplicate import patterns to use safe_import.
2
-
3
- This file demonstrates how to replace the common try/except ImportError
4
- pattern with the new safe_import utility.
5
- """
6
-
7
- # BEFORE: The old pattern used throughout the codebase
8
- # -----------------------------------------------------
9
- # try:
10
- # from ..core.logger import get_logger
11
- # except ImportError:
12
- # from utils.logger import get_logger
13
- #
14
- # try:
15
- # from ..core.agent_registry import AgentRegistryAdapter
16
- # except ImportError:
17
- # from core.agent_registry import AgentRegistryAdapter
18
-
19
-
20
- # AFTER: Using safe_import utility
21
- # --------------------------------
22
- from claude_mpm.utils.imports import safe_import, safe_import_multiple
23
-
24
- # Method 1: Individual imports
25
- get_logger = safe_import('..utils.logger', 'utils.logger', from_list=['get_logger'])
26
- AgentRegistryAdapter = safe_import('..core.agent_registry', 'core.agent_registry',
27
- from_list=['AgentRegistryAdapter'])
28
-
29
- # Method 2: Batch imports (recommended for multiple imports)
30
- imports = safe_import_multiple([
31
- ('..utils.logger', 'utils.logger', ['get_logger']),
32
- ('..core.agent_registry', 'core.agent_registry', ['AgentRegistryAdapter']),
33
- ])
34
-
35
- get_logger = imports.get('get_logger')
36
- AgentRegistryAdapter = imports.get('AgentRegistryAdapter')
37
-
38
-
39
- # MIGRATION GUIDE
40
- # ---------------
41
- # 1. Add import: from claude_mpm.utils.imports import safe_import
42
- #
43
- # 2. Replace try/except blocks:
44
- # FROM:
45
- # try:
46
- # from ..module import something
47
- # except ImportError:
48
- # from module import something
49
- #
50
- # TO:
51
- # something = safe_import('..module', 'module', from_list=['something'])
52
- #
53
- # 3. For multiple imports from same module:
54
- # FROM:
55
- # try:
56
- # from ..module import foo, bar, baz
57
- # except ImportError:
58
- # from module import foo, bar, baz
59
- #
60
- # TO:
61
- # foo, bar, baz = safe_import('..module', 'module', from_list=['foo', 'bar', 'baz'])
62
- #
63
- # 4. For whole module imports:
64
- # FROM:
65
- # try:
66
- # from .. import module
67
- # except ImportError:
68
- # import module
69
- #
70
- # TO:
71
- # module = safe_import('..module', 'module')
72
-
73
-
74
- # BENEFITS
75
- # --------
76
- # 1. Reduces code duplication (97 files can be simplified)
77
- # 2. Centralizes import error handling logic
78
- # 3. Provides optional logging for debugging import issues
79
- # 4. Maintains the same functionality with cleaner code
80
- # 5. Makes the codebase more maintainable
File without changes