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.
Files changed (38) hide show
  1. claude_mpm/__main__.py +17 -0
  2. claude_mpm/agents/INSTRUCTIONS.md +17 -2
  3. claude_mpm/cli/__init__.py +23 -14
  4. claude_mpm/cli/commands/agents.py +18 -7
  5. claude_mpm/cli/commands/info.py +10 -5
  6. claude_mpm/cli/commands/run.py +22 -7
  7. claude_mpm/cli/commands/tickets.py +17 -10
  8. claude_mpm/cli/commands/ui.py +37 -15
  9. claude_mpm/cli/utils.py +28 -9
  10. claude_mpm/core/agent_registry.py +4 -4
  11. claude_mpm/core/factories.py +1 -1
  12. claude_mpm/core/service_registry.py +1 -1
  13. claude_mpm/core/simple_runner.py +17 -27
  14. claude_mpm/hooks/claude_hooks/hook_handler.py +53 -4
  15. claude_mpm/models/__init__.py +91 -9
  16. claude_mpm/models/common.py +41 -0
  17. claude_mpm/models/lifecycle.py +97 -0
  18. claude_mpm/models/modification.py +126 -0
  19. claude_mpm/models/persistence.py +57 -0
  20. claude_mpm/models/registry.py +91 -0
  21. claude_mpm/security/__init__.py +8 -0
  22. claude_mpm/security/bash_validator.py +393 -0
  23. claude_mpm/services/agent_lifecycle_manager.py +25 -76
  24. claude_mpm/services/agent_modification_tracker.py +17 -98
  25. claude_mpm/services/agent_persistence_service.py +13 -33
  26. claude_mpm/services/agent_registry.py +43 -82
  27. claude_mpm/services/{ticketing_service_original.py → legacy_ticketing_service.py} +16 -9
  28. claude_mpm/services/ticket_manager.py +5 -4
  29. claude_mpm/services/{ticket_manager_di.py → ticket_manager_dependency_injection.py} +39 -12
  30. claude_mpm/services/version_control/semantic_versioning.py +10 -9
  31. claude_mpm/utils/path_operations.py +20 -0
  32. {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/METADATA +9 -1
  33. {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/RECORD +37 -31
  34. claude_mpm/utils/import_migration_example.py +0 -80
  35. {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/WHEEL +0 -0
  36. {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/entry_points.txt +0 -0
  37. {claude_mpm-3.1.2.dist-info → claude_mpm-3.1.3.dist-info}/licenses/LICENSE +0 -0
  38. {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=8IcM9tEbTqSN_er04eKTPX3AGo6qzRiTnPI7KfIf7rw,641
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=X6bOhSII3pZVZh_Vw_zMYRdfLtyl5Mmf_jhrVYfNxFs,7200
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=gB5zDPjcHbW-I6Z5-zS0odgF0Qm4GRgSC2X2gUVRRcY,5255
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=k_EHLcjDAzYhDeVeWvE-vqvHsEoG6Cc6Yk7fs3YoRVA,6022
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=FqqEQcfAfCxjz_E7fGQUtLznloJLz8fWQtnjQhkbalQ,6795
43
- claude_mpm/cli/commands/info.py,sha256=ETL6jC08OTQVTPjs219Y0m3FzfKOUlI0-yI81AI8FXY,2990
44
- claude_mpm/cli/commands/run.py,sha256=6A-W4zBPFw1-TCHKFD6YhWuOqsG1zC0wvHJzByBS8a0,2946
45
- claude_mpm/cli/commands/tickets.py,sha256=SXyGtHSyGJwTeJwDAHf7kRbdiG1DlZkXkod5UoNy7Ik,2150
46
- claude_mpm/cli/commands/ui.py,sha256=FhBQiOKW61cNduyryRu0UhC366d6o1eEkBgbPd7Au1w,1900
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=4MAfc7xDlrYWWkHmDMRmWE8q32teuCmIcud9D0I0dLo,20496
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=Qh2n_x112ZIPWEfwFley9bb9IZcSG38LkpT3uValyDk,7484
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=wKJUO1g4UFA4dUpE3RkIYz1Ek8kIh4XfvU1kFeLCl2Q,10529
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=TVyzyzYHmvf7o_jpCKYGuLfuYReLcTc5Fkl1tZ_4tJw,26447
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=FpmG0TfPTT-JL_dFdae-XVwNnvCvB6BJtRpT5PlZi7g,30538
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=vy2NLX2KT9QeH76SjCYh9dOYKPLRgxGrnwkQFAg08gc,465
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=fWggWu5rT7FkDQrRHyw05Y4KaNN9cXeaCinsymPJwM4,50127
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=uxELrXtFt5Xlv0mhRbq5ynagEowczTRrv3mAp-aRZFc,34519
125
- claude_mpm/services/agent_persistence_service.py,sha256=B_Vz43zCKWq47zWkoibcia-Qwn2y3gARu7MV5Cpiptc,2893
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=vn8CEW0vppj_0EY2NofmNRZEnpV70mlWiX2kAViFDRg,24374
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=Ki11YjBkDax8BFVSaDdOBk3K4VU5gvdbgq9AmCyyoZ0,7454
135
- claude_mpm/services/ticket_manager_di.py,sha256=pIsIGncbboKzBYSRQTO7ZX5MuQzV6iFfIflvKe6u1jw,11123
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=xiDsirwq8CApnOBc4UMf4VcrgolzQgfK2T_Yi3mY7Bk,29039
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=6pLMnAWBVzHkgp6JyQHmHbGD-dWn-nX21yV4E_eT-kM,11614
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.2.dist-info/licenses/LICENSE,sha256=cSdDfXjoTVhstrERrqme4zgxAu4GubU22zVEHsiXGxs,1071
189
- claude_mpm-3.1.2.dist-info/METADATA,sha256=C7fZn0Mcw9CZtmtJox-mWaqGZGrktZPpLAtYhp53j8c,14139
190
- claude_mpm-3.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
191
- claude_mpm-3.1.2.dist-info/entry_points.txt,sha256=PknO31um7d8bt6GjOiVeYpdJpjND0_C1z-LQfY6UfiU,142
192
- claude_mpm-3.1.2.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
193
- claude_mpm-3.1.2.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,,
@@ -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