claude-mpm 3.1.2__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.
- claude_mpm/__main__.py +17 -0
 - claude_mpm/agents/INSTRUCTIONS.md +17 -2
 - claude_mpm/cli/__init__.py +23 -14
 - claude_mpm/cli/commands/agents.py +18 -7
 - claude_mpm/cli/commands/info.py +10 -5
 - claude_mpm/cli/commands/run.py +22 -7
 - claude_mpm/cli/commands/tickets.py +17 -10
 - claude_mpm/cli/commands/ui.py +37 -15
 - claude_mpm/cli/utils.py +28 -9
 - claude_mpm/core/agent_registry.py +4 -4
 - claude_mpm/core/factories.py +1 -1
 - claude_mpm/core/service_registry.py +1 -1
 - claude_mpm/core/simple_runner.py +17 -27
 - claude_mpm/hooks/claude_hooks/hook_handler.py +53 -4
 - claude_mpm/models/__init__.py +91 -9
 - claude_mpm/models/common.py +41 -0
 - claude_mpm/models/lifecycle.py +97 -0
 - claude_mpm/models/modification.py +126 -0
 - claude_mpm/models/persistence.py +57 -0
 - claude_mpm/models/registry.py +91 -0
 - claude_mpm/security/__init__.py +8 -0
 - claude_mpm/security/bash_validator.py +393 -0
 - claude_mpm/services/agent_lifecycle_manager.py +25 -76
 - claude_mpm/services/agent_modification_tracker.py +17 -98
 - claude_mpm/services/agent_persistence_service.py +13 -33
 - claude_mpm/services/agent_registry.py +43 -82
 - claude_mpm/services/{ticketing_service_original.py → legacy_ticketing_service.py} +16 -9
 - claude_mpm/services/ticket_manager.py +5 -4
 - claude_mpm/services/{ticket_manager_di.py → ticket_manager_dependency_injection.py} +39 -12
 - claude_mpm/services/version_control/semantic_versioning.py +10 -9
 - claude_mpm/utils/path_operations.py +20 -0
 - {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/METADATA +9 -1
 - {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/RECORD +37 -31
 - claude_mpm/utils/import_migration_example.py +0 -80
 - {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/WHEEL +0 -0
 - {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/entry_points.txt +0 -0
 - {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/licenses/LICENSE +0 -0
 - {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/top_level.txt +0 -0
 
| 
         @@ -1,11 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            claude_mpm/__init__.py,sha256=TRneXzyApGyF7cRerpTn7aCbYLu-AJhPHjQf-dMBElQ,666
         
     | 
| 
       2 
     | 
    
         
            -
            claude_mpm/__main__.py,sha256= 
     | 
| 
      
 2 
     | 
    
         
            +
            claude_mpm/__main__.py,sha256=a4FWiccZuiAf3XjGlwPMEuz7hdmx_ip8HTPHXnYsY5c,1538
         
     | 
| 
       3 
3 
     | 
    
         
             
            claude_mpm/cli_enhancements.py,sha256=-N5f2u9TaxUcOJegUd3lt1FRz5ErEyYUvvgrNmMRL7Q,11814
         
     | 
| 
       4 
4 
     | 
    
         
             
            claude_mpm/cli_old.py,sha256=5GeRclnY-VNDaGnv7XUXDOniHZfACJ8HUYVUUXEHh9g,26340
         
     | 
| 
       5 
5 
     | 
    
         
             
            claude_mpm/constants.py,sha256=5AG5hgBxOC7gMNHDx0lAhS-FQ8gXhtGtqJ9Moj3S6ro,4044
         
     | 
| 
       6 
6 
     | 
    
         
             
            claude_mpm/init.py,sha256=gOreOf7BLXkT0_HrQk_As4Kz1OT_NJG_RG0i0hbY0z0,8088
         
     | 
| 
       7 
7 
     | 
    
         
             
            claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=TYgSd9jNBMWp4mAOBUl9dconX4RcGbvmMEScRy5uyko,3343
         
     | 
| 
       8 
     | 
    
         
            -
            claude_mpm/agents/INSTRUCTIONS.md,sha256= 
     | 
| 
      
 8 
     | 
    
         
            +
            claude_mpm/agents/INSTRUCTIONS.md,sha256=bcxaT0ww8ZOW_EeeLPUMcoeWEHOc9MRji_eIJ4b796w,8017
         
     | 
| 
       9 
9 
     | 
    
         
             
            claude_mpm/agents/__init__.py,sha256=r-p7ervzjLPD7_8dm2tXX_fwvdTZy6KwKA03ofxN3sA,3275
         
     | 
| 
       10 
10 
     | 
    
         
             
            claude_mpm/agents/agent-template.yaml,sha256=koKJn8MCAJx0QNQMHouvIZrwvw5qjPV0U-aV-YVyk6s,2036
         
     | 
| 
       11 
11 
     | 
    
         
             
            claude_mpm/agents/agent_loader.py,sha256=P4h3qupJHvZL9dfb6ntB582xenYv9JbkMOVav_kNkAo,44030
         
     | 
| 
         @@ -35,15 +35,15 @@ claude_mpm/agents/templates/backup/security_agent_20250726_234551.json,sha256=l5 
     | 
|
| 
       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 
37 
     | 
    
         
             
            claude_mpm/cli/README.md,sha256=exe9V_UEsMSPXOMlvQUv5FsCuhUpPOsMvIhyDSyuFdI,3423
         
     | 
| 
       38 
     | 
    
         
            -
            claude_mpm/cli/__init__.py,sha256= 
     | 
| 
      
 38 
     | 
    
         
            +
            claude_mpm/cli/__init__.py,sha256=2XDksLwDGa9tzddxyxDESPySrchHfzK3FCK_WMSYYEk,6267
         
     | 
| 
       39 
39 
     | 
    
         
             
            claude_mpm/cli/parser.py,sha256=GsyaMK2td3kPji-OLfNjfgIza2Qe4iEeq6Wr-sebVKc,10737
         
     | 
| 
       40 
     | 
    
         
            -
            claude_mpm/cli/utils.py,sha256= 
     | 
| 
      
 40 
     | 
    
         
            +
            claude_mpm/cli/utils.py,sha256=T_te2m97lIQ0P5FsUhc56NZOQcEDm3uKPVyvcm5cxjg,6522
         
     | 
| 
       41 
41 
     | 
    
         
             
            claude_mpm/cli/commands/__init__.py,sha256=3Exhq4RH-2Sq2ugwc9fFW3vDbzJgSu2JaoX01vXjdRE,454
         
     | 
| 
       42 
     | 
    
         
            -
            claude_mpm/cli/commands/agents.py,sha256= 
     | 
| 
       43 
     | 
    
         
            -
            claude_mpm/cli/commands/info.py,sha256= 
     | 
| 
       44 
     | 
    
         
            -
            claude_mpm/cli/commands/run.py,sha256= 
     | 
| 
       45 
     | 
    
         
            -
            claude_mpm/cli/commands/tickets.py,sha256= 
     | 
| 
       46 
     | 
    
         
            -
            claude_mpm/cli/commands/ui.py,sha256= 
     | 
| 
      
 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
         
     | 
| 
       47 
47 
     | 
    
         
             
            claude_mpm/cli_module/__init__.py,sha256=CkMp4gzWKoZZF_qKyBDi2sQaZw_GLWZYLtKouv-4f8s,390
         
     | 
| 
       48 
48 
     | 
    
         
             
            claude_mpm/cli_module/args.py,sha256=nilYpziBsoEySO4W1hQ2MRJyn9TFx3c3TrucyMMhRtk,7970
         
     | 
| 
       49 
49 
     | 
    
         
             
            claude_mpm/cli_module/commands.py,sha256=CBNfO-bXrZ0spjeW_7-swprEq5V4PQSc0qhl9SLP5UU,7168
         
     | 
| 
         @@ -52,7 +52,7 @@ claude_mpm/cli_module/refactoring_guide.md,sha256=fl1PGwLZAj4OYWmU0syg1jDd81PqK7 
     | 
|
| 
       52 
52 
     | 
    
         
             
            claude_mpm/config/__init__.py,sha256=p31JuaXLDHgIgoAbHApNvctN2IEZYq2MBkkXROdhbH8,105
         
     | 
| 
       53 
53 
     | 
    
         
             
            claude_mpm/core/__init__.py,sha256=hE29BeE3qb8vC1-wiKjPh60WZebCwfo9UAUGM1zQnkc,1206
         
     | 
| 
       54 
54 
     | 
    
         
             
            claude_mpm/core/agent_name_normalizer.py,sha256=-X68oz3_74t9BRbHA54NEGyjy0xjTsGp_sCUHDtKp1s,9269
         
     | 
| 
       55 
     | 
    
         
            -
            claude_mpm/core/agent_registry.py,sha256= 
     | 
| 
      
 55 
     | 
    
         
            +
            claude_mpm/core/agent_registry.py,sha256=2GYTWYxjKF0HktW9HJc5XfECYjIVZLcAKX_dwiwyY08,20556
         
     | 
| 
       56 
56 
     | 
    
         
             
            claude_mpm/core/agent_registry.py.bak,sha256=cXB0yqhonE1XsXmWcdwyNuvv8yddK_PyZILDCmwCZ_Q,10161
         
     | 
| 
       57 
57 
     | 
    
         
             
            claude_mpm/core/agent_session_manager.py,sha256=6alXQr4gnMR-unT4J1ryEtTxJqQolA0-NgPQN6X3lqY,11212
         
     | 
| 
       58 
58 
     | 
    
         
             
            claude_mpm/core/base_service.py,sha256=qWI_rUybHmmKroptJxcE4rzPBhK8yeMKIt2JqnqJB7E,29125
         
     | 
| 
         @@ -60,16 +60,16 @@ claude_mpm/core/base_service.py.bak,sha256=48A8eI_HPqxYm42X5jaTo8zQVOfFFXe7SqIUo 
     | 
|
| 
       60 
60 
     | 
    
         
             
            claude_mpm/core/config.py,sha256=QNPufRWzXl99wAz14Gm2T_CG5K5n8d4eOjmpaxVllv0,12371
         
     | 
| 
       61 
61 
     | 
    
         
             
            claude_mpm/core/config_aliases.py,sha256=8eqA4wpWViIDm_9pL3f9j7cR_ssmhOYYiY2UzHrfUzg,10058
         
     | 
| 
       62 
62 
     | 
    
         
             
            claude_mpm/core/container.py,sha256=P4c4nSo_USSfHTxvpR1sQkVGNsgqozZBN27l3IXqiDc,12216
         
     | 
| 
       63 
     | 
    
         
            -
            claude_mpm/core/factories.py,sha256= 
     | 
| 
      
 63 
     | 
    
         
            +
            claude_mpm/core/factories.py,sha256=QQfGBako6TmuUa_VFLbjSUIQE4zRs18Ft8bcGceisfI,7493
         
     | 
| 
       64 
64 
     | 
    
         
             
            claude_mpm/core/framework_loader.py,sha256=SdONNh8a7vSicr4vVuRzd7OqgDMIyg9k_xxbr8bLRi8,19547
         
     | 
| 
       65 
65 
     | 
    
         
             
            claude_mpm/core/injectable_service.py,sha256=7fOny9c6x8IJ9hVZmFql1eNDXXB1jcWbsxfTKbMZk74,7497
         
     | 
| 
       66 
66 
     | 
    
         
             
            claude_mpm/core/interfaces.py,sha256=TpP474EKEng-1TrjKUsN69qq6dXy8zIjicS7iV-ZPV0,15269
         
     | 
| 
       67 
67 
     | 
    
         
             
            claude_mpm/core/logger.py,sha256=wqYlUy8wlSXyTWOeWCGNYaIWdiFYzT7yw1U0vdT3R_8,15894
         
     | 
| 
       68 
68 
     | 
    
         
             
            claude_mpm/core/minimal_framework_loader.py,sha256=liYS4IyuW_aFK7yhRDZwTwT-3q09fT3wIJSUzkI93Ko,3673
         
     | 
| 
       69 
69 
     | 
    
         
             
            claude_mpm/core/mixins.py,sha256=rTEH-7FDpNiLB8oo6mSb0CLarJklv4fDJw1xM-gr5wI,5599
         
     | 
| 
       70 
     | 
    
         
            -
            claude_mpm/core/service_registry.py,sha256= 
     | 
| 
      
 70 
     | 
    
         
            +
            claude_mpm/core/service_registry.py,sha256=C1-m8F3eE2pnKS42PXO7E30N-IEayIF3UCjOLFB3jk8,10538
         
     | 
| 
       71 
71 
     | 
    
         
             
            claude_mpm/core/session_manager.py,sha256=3rO4KGZp8Qd_cUw6OWv4jyxGCUaL_MNPgCCpnwQt12A,6581
         
     | 
| 
       72 
     | 
    
         
            -
            claude_mpm/core/simple_runner.py,sha256= 
     | 
| 
      
 72 
     | 
    
         
            +
            claude_mpm/core/simple_runner.py,sha256=FMInbYlXnolqmBlXpe37VUgWNheb3liHou7_BPOwYm8,26132
         
     | 
| 
       73 
73 
     | 
    
         
             
            claude_mpm/core/tool_access_control.py,sha256=htZbDhC8s7D7BVqfmk0BwRrYJnlnUAk8_NeJKOaeNlg,6632
         
     | 
| 
       74 
74 
     | 
    
         
             
            claude_mpm/generators/__init__.py,sha256=l53aBn6kBQSDz3b6bZkMCJBcEmYnV9hHEZq8LKzXgH8,152
         
     | 
| 
       75 
75 
     | 
    
         
             
            claude_mpm/generators/agent_profile_generator.py,sha256=2HjOscogSyvrtQj8KwdgNPS6Ym_QvgX1BMeauQZewZA,5751
         
     | 
| 
         @@ -88,10 +88,15 @@ claude_mpm/hooks/builtin/ticket_extraction_hook_example.py,sha256=4wNhS2tFUXgdcv 
     | 
|
| 
       88 
88 
     | 
    
         
             
            claude_mpm/hooks/builtin/todo_agent_prefix_hook.py,sha256=v_4w2vcZIt0bkZxqdHmgtN79yHZ1gviuhhBws0FHpIQ,10226
         
     | 
| 
       89 
89 
     | 
    
         
             
            claude_mpm/hooks/builtin/workflow_start_hook.py,sha256=EQrtYD9qLMLSYPl3oQinEheZAJ2i5EO_h2jhhR8lmt0,7490
         
     | 
| 
       90 
90 
     | 
    
         
             
            claude_mpm/hooks/claude_hooks/__init__.py,sha256=bMUwt2RzDGAcEbtDMA7vWS1uJsauOY0OixIe4pHwgQ0,129
         
     | 
| 
       91 
     | 
    
         
            -
            claude_mpm/hooks/claude_hooks/hook_handler.py,sha256= 
     | 
| 
      
 91 
     | 
    
         
            +
            claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=ehvYMFrPLesENTjRtuwssN7g9-cdpaaBoYlZB_WxGTs,32816
         
     | 
| 
       92 
92 
     | 
    
         
             
            claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=6n0-G317jIrPuNRGnAyFvBbNM4gVzKEat_WSbpvKN-g,1742
         
     | 
| 
       93 
     | 
    
         
            -
            claude_mpm/models/__init__.py,sha256= 
     | 
| 
      
 93 
     | 
    
         
            +
            claude_mpm/models/__init__.py,sha256=4HWlsV1XfzEzAFTM25E46jPVfvQMdAlyQ9bgJmJAo6M,2171
         
     | 
| 
       94 
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
         
     | 
| 
       95 
100 
     | 
    
         
             
            claude_mpm/orchestration/SUBPROCESS_DESIGN.md,sha256=YwToiT1_NXblv1XIWhWPNc2uKzDvqY2E_Nix8qK7qk0,2136
         
     | 
| 
       96 
101 
     | 
    
         
             
            claude_mpm/orchestration/__init__.py,sha256=C-cwldtfBCgV19mKnJa5U1XiKw1rAZvx-kK61nIdcao,205
         
     | 
| 
       97 
102 
     | 
    
         
             
            claude_mpm/orchestration/archive/direct_orchestrator.py,sha256=j-IP-st-Xi9Xf33i-BLPZOE_kkxSZxNNuFZmp6MTuZY,7884
         
     | 
| 
         @@ -116,24 +121,26 @@ claude_mpm/schemas/workflow_validator.py,sha256=qRgGodJoIZQaLfZ8OzWz3Y9eVNz3ckrQ 
     | 
|
| 
       116 
121 
     | 
    
         
             
            claude_mpm/schemas/examples/standard_workflow.json,sha256=POQdxPIoJRD2qe4-17a35pGqFX5hfmGttXWPfeZ8qRs,13835
         
     | 
| 
       117 
122 
     | 
    
         
             
            claude_mpm/scripts/__init__.py,sha256=M2n9fQeyfILC8gogXvJv6ixnu7hwpqLEqLWJRaUN0MU,37
         
     | 
| 
       118 
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
         
     | 
| 
       119 
126 
     | 
    
         
             
            claude_mpm/services/__init__.py,sha256=-EBm07Lh9mjcofiQHCqyCCQJMLi9akVArPlz8i_kEOo,226
         
     | 
| 
       120 
127 
     | 
    
         
             
            claude_mpm/services/agent_capabilities_generator.py,sha256=hWG0zV2InmzrDMxSbQzjVBBTzEaxg0bFxl8tmTMJ8qA,6565
         
     | 
| 
       121 
128 
     | 
    
         
             
            claude_mpm/services/agent_deployment.py,sha256=DtK1BX2yCrutUkQdVPD01mYHm-ya36l3EPOnEcaDfog,67961
         
     | 
| 
       122 
     | 
    
         
            -
            claude_mpm/services/agent_lifecycle_manager.py,sha256= 
     | 
| 
      
 129 
     | 
    
         
            +
            claude_mpm/services/agent_lifecycle_manager.py,sha256=XLaqk0XBCmQcgIDZL4f404PczcKoi-FJn67cSfcVCNw,48703
         
     | 
| 
       123 
130 
     | 
    
         
             
            claude_mpm/services/agent_management_service.py,sha256=eX5n6w17b9urcogVdr4V-kXcuo7yyjORTrIihjF8PeQ,22853
         
     | 
| 
       124 
     | 
    
         
            -
            claude_mpm/services/agent_modification_tracker.py,sha256= 
     | 
| 
       125 
     | 
    
         
            -
            claude_mpm/services/agent_persistence_service.py,sha256= 
     | 
| 
      
 131 
     | 
    
         
            +
            claude_mpm/services/agent_modification_tracker.py,sha256=MVJRn0cWdO5UVw3du8MC355bpYttKCBz6LmW1dq3eU4,31506
         
     | 
| 
      
 132 
     | 
    
         
            +
            claude_mpm/services/agent_persistence_service.py,sha256=Ls5ms9C-RDhUJE5BOyg15VGc4nJflErOJSgAIGHOa3s,2291
         
     | 
| 
       126 
133 
     | 
    
         
             
            claude_mpm/services/agent_profile_loader.py,sha256=4D1Xj0vgqV8wN7Y3r8lijh7ghy5cVGU5t5s931sVqGc,23133
         
     | 
| 
       127 
     | 
    
         
            -
            claude_mpm/services/agent_registry.py,sha256= 
     | 
| 
      
 134 
     | 
    
         
            +
            claude_mpm/services/agent_registry.py,sha256=Hi8TAhr-bIR5NW8QV6chkobtU-fTiRoZqrgiwViusYs,23148
         
     | 
| 
       128 
135 
     | 
    
         
             
            claude_mpm/services/agent_versioning.py,sha256=y4SiKGKdTn-9_Ht6nGlmKGJW6MLgEHZUy5SR1OPTZZM,1108
         
     | 
| 
       129 
136 
     | 
    
         
             
            claude_mpm/services/base_agent_manager.py,sha256=WEcfzdMaFXmXUSoEYEPNeGu8dvqjIv53zyUU0ITrhsM,14987
         
     | 
| 
       130 
137 
     | 
    
         
             
            claude_mpm/services/deployed_agent_discovery.py,sha256=GoXhho5EBz_FZDDl4xUWW_BnP3hfymbV1ePorRrhO_U,9443
         
     | 
| 
       131 
138 
     | 
    
         
             
            claude_mpm/services/framework_agent_loader.py,sha256=QdRSYRurYF3YbAXJwIGei71BffD5AqOVcV3ktRPdk7g,14018
         
     | 
| 
       132 
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
         
     | 
| 
       133 
141 
     | 
    
         
             
            claude_mpm/services/shared_prompt_cache.py,sha256=D04lrRWyg0lHyqGcAHy7IYvRHRKSg6EOpAJwBUPa2wk,29890
         
     | 
| 
       134 
     | 
    
         
            -
            claude_mpm/services/ticket_manager.py,sha256= 
     | 
| 
       135 
     | 
    
         
            -
            claude_mpm/services/ 
     | 
| 
       136 
     | 
    
         
            -
            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
         
     | 
| 
       137 
144 
     | 
    
         
             
            claude_mpm/services/framework_claude_md_generator/README.md,sha256=_-ty72t2afPagDVVUEizPkhs4BYkCeqCnZDNPgZAYtY,3511
         
     | 
| 
       138 
145 
     | 
    
         
             
            claude_mpm/services/framework_claude_md_generator/__init__.py,sha256=OtnwxLiJektfFtsKdkHM1X27rKkFiNd_rcf4843ziKw,7334
         
     | 
| 
       139 
146 
     | 
    
         
             
            claude_mpm/services/framework_claude_md_generator/content_assembler.py,sha256=CZlw84bBWjvK68VQhjAdLnMxXBXipZtcdyPtYWLdrKo,6590
         
     | 
| 
         @@ -171,7 +178,7 @@ claude_mpm/services/version_control/__init__.py,sha256=5BFbqFUMtpCyDbMcekRjCQ4jg 
     | 
|
| 
       171 
178 
     | 
    
         
             
            claude_mpm/services/version_control/branch_strategy.py,sha256=MTjWinbJEp4N-QqBi6Olop7LNtvhCEPVnfCwK-29O-A,22999
         
     | 
| 
       172 
179 
     | 
    
         
             
            claude_mpm/services/version_control/conflict_resolution.py,sha256=yWa9fzmkds1U0EBw-LyTZvlj56MpEEsRmryLQg4KDdU,26084
         
     | 
| 
       173 
180 
     | 
    
         
             
            claude_mpm/services/version_control/git_operations.py,sha256=L69Aduzwq4IipIGV3iiwNQTlgVi6peh-LzJTks7bvxo,27499
         
     | 
| 
       174 
     | 
    
         
            -
            claude_mpm/services/version_control/semantic_versioning.py,sha256= 
     | 
| 
      
 181 
     | 
    
         
            +
            claude_mpm/services/version_control/semantic_versioning.py,sha256=JieqW46gA_dv9kwjLeT44XOMH0c_RplkjlLQuB_Nzw8,29168
         
     | 
| 
       175 
182 
     | 
    
         
             
            claude_mpm/ui/__init__.py,sha256=Snxxm3pYXPKfv9gBG_MZKxXkZk8c4ZJAQIvh-rjjCFo,45
         
     | 
| 
       176 
183 
     | 
    
         
             
            claude_mpm/ui/rich_terminal_ui.py,sha256=gx_9TD0kR4Exq867pHjVVs_b-gw1q267t5oA2ZDSkQU,10078
         
     | 
| 
       177 
184 
     | 
    
         
             
            claude_mpm/ui/terminal_ui.py,sha256=E_M-L-6EuGp6L8pRpaWEhTqf-ddDXhZp5W85D0XNRPw,11928
         
     | 
| 
         @@ -179,15 +186,14 @@ claude_mpm/utils/__init__.py,sha256=E8Hvv6ykL6rnnc8-YmfoGNpRCZbcIirxcFuNz7YvDIg, 
     | 
|
| 
       179 
186 
     | 
    
         
             
            claude_mpm/utils/config_manager.py,sha256=TlekZYIWOz_ouWHQU4Gc-zckhoFK9AqA25b6A_XZdDc,16412
         
     | 
| 
       180 
187 
     | 
    
         
             
            claude_mpm/utils/error_handler.py,sha256=W_Zc0FrKudpXvxT66Oxx0v8WkR8HA2KlynzzGy3eGcU,8168
         
     | 
| 
       181 
188 
     | 
    
         
             
            claude_mpm/utils/framework_detection.py,sha256=nzs1qRZK9K-zT0382z1FpGDvgzUNrUg8rBL-O_WLq-Q,1217
         
     | 
| 
       182 
     | 
    
         
            -
            claude_mpm/utils/import_migration_example.py,sha256=W4a4XH3FY_VBB00BB8Lae2aRPM021PxLHzdUfEs0B5w,2463
         
     | 
| 
       183 
189 
     | 
    
         
             
            claude_mpm/utils/imports.py,sha256=wX-SOXUHbemx01MHRGQpVwajzXH6qYdQkYNFCIbb2mw,6851
         
     | 
| 
       184 
     | 
    
         
            -
            claude_mpm/utils/path_operations.py,sha256= 
     | 
| 
      
 190 
     | 
    
         
            +
            claude_mpm/utils/path_operations.py,sha256=KhaWtduSK14aIsReIZ5-2fBOdSCrt4TLcDXiOXzlvrk,12450
         
     | 
| 
       185 
191 
     | 
    
         
             
            claude_mpm/utils/paths.py,sha256=Xv0SZWdZRkRjN9e6clBcA165ya00GNQxt7SwMz51tfA,10153
         
     | 
| 
       186 
192 
     | 
    
         
             
            claude_mpm/validation/__init__.py,sha256=bJ19g9lnk7yIjtxzN8XPegp87HTFBzCrGQOpFgRTf3g,155
         
     | 
| 
       187 
193 
     | 
    
         
             
            claude_mpm/validation/agent_validator.py,sha256=GCA2b2rKhKDeaNyUqWxTiWIs3sDdWjD9cgOFRp9K6ic,18227
         
     | 
| 
       188 
     | 
    
         
            -
            claude_mpm-3.1. 
     | 
| 
       189 
     | 
    
         
            -
            claude_mpm-3.1. 
     | 
| 
       190 
     | 
    
         
            -
            claude_mpm-3.1. 
     | 
| 
       191 
     | 
    
         
            -
            claude_mpm-3.1. 
     | 
| 
       192 
     | 
    
         
            -
            claude_mpm-3.1. 
     | 
| 
       193 
     | 
    
         
            -
            claude_mpm-3.1. 
     | 
| 
      
 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,,
         
     | 
| 
         @@ -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
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |