claude-mpm 3.3.2__py3-none-any.whl → 3.4.2__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 (48) hide show
  1. claude_mpm/cli/commands/memory.py +192 -14
  2. claude_mpm/cli/parser.py +13 -1
  3. claude_mpm/constants.py +1 -0
  4. claude_mpm/core/claude_runner.py +61 -0
  5. claude_mpm/core/config.py +161 -1
  6. claude_mpm/core/simple_runner.py +61 -0
  7. claude_mpm/hooks/builtin/mpm_command_hook.py +5 -5
  8. claude_mpm/hooks/claude_hooks/hook_handler.py +211 -4
  9. claude_mpm/hooks/claude_hooks/hook_wrapper.sh +10 -3
  10. claude_mpm/hooks/memory_integration_hook.py +51 -5
  11. claude_mpm/scripts/socketio_daemon.py +49 -9
  12. claude_mpm/scripts/socketio_server_manager.py +370 -45
  13. claude_mpm/services/__init__.py +41 -5
  14. claude_mpm/services/agent_memory_manager.py +541 -51
  15. claude_mpm/services/exceptions.py +677 -0
  16. claude_mpm/services/health_monitor.py +892 -0
  17. claude_mpm/services/memory_builder.py +341 -7
  18. claude_mpm/services/memory_optimizer.py +6 -2
  19. claude_mpm/services/project_analyzer.py +771 -0
  20. claude_mpm/services/recovery_manager.py +670 -0
  21. claude_mpm/services/socketio_server.py +653 -36
  22. claude_mpm/services/standalone_socketio_server.py +703 -34
  23. claude_mpm/services/version_control/git_operations.py +26 -0
  24. {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/METADATA +34 -10
  25. {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/RECORD +30 -44
  26. claude_mpm/agents/agent-template.yaml +0 -83
  27. claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json +0 -6
  28. claude_mpm/cli/README.md +0 -109
  29. claude_mpm/cli_module/refactoring_guide.md +0 -253
  30. claude_mpm/core/agent_registry.py.bak +0 -312
  31. claude_mpm/core/base_service.py.bak +0 -406
  32. claude_mpm/hooks/README.md +0 -97
  33. claude_mpm/orchestration/SUBPROCESS_DESIGN.md +0 -66
  34. claude_mpm/schemas/README_SECURITY.md +0 -92
  35. claude_mpm/schemas/agent_schema.json +0 -395
  36. claude_mpm/schemas/agent_schema_documentation.md +0 -181
  37. claude_mpm/schemas/agent_schema_security_notes.md +0 -165
  38. claude_mpm/schemas/examples/standard_workflow.json +0 -505
  39. claude_mpm/schemas/ticket_workflow_documentation.md +0 -482
  40. claude_mpm/schemas/ticket_workflow_schema.json +0 -590
  41. claude_mpm/services/framework_claude_md_generator/README.md +0 -92
  42. claude_mpm/services/parent_directory_manager/README.md +0 -83
  43. claude_mpm/services/version_control/VERSION +0 -1
  44. /claude_mpm/{web → dashboard}/open_dashboard.py +0 -0
  45. {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/WHEEL +0 -0
  46. {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/entry_points.txt +0 -0
  47. {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/licenses/LICENSE +0 -0
  48. {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/top_level.txt +0 -0
@@ -305,6 +305,32 @@ class GitOperationsManager:
305
305
  except GitOperationError:
306
306
  return False
307
307
 
308
+ def is_file_tracked(self, file_path: str) -> bool:
309
+ """
310
+ Check if a file is tracked by git.
311
+
312
+ Args:
313
+ file_path: Path to the file to check (can be absolute or relative)
314
+
315
+ Returns:
316
+ bool: True if file is tracked, False otherwise
317
+ """
318
+ try:
319
+ # Convert to relative path if absolute
320
+ if os.path.isabs(file_path):
321
+ try:
322
+ file_path = os.path.relpath(file_path, self.project_root)
323
+ except ValueError:
324
+ # If file is outside project root, it's not tracked
325
+ return False
326
+
327
+ # Use git ls-files to check if file is tracked
328
+ result = self._run_git_command(["ls-files", "--", file_path])
329
+ return bool(result.stdout.strip())
330
+
331
+ except GitOperationError:
332
+ return False
333
+
308
334
  def create_branch(
309
335
  self,
310
336
  branch_name: str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 3.3.2
3
+ Version: 3.4.2
4
4
  Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
5
5
  Home-page: https://github.com/bobmatnyc/claude-mpm
6
6
  Author: Claude MPM Team
@@ -57,6 +57,7 @@ A powerful orchestration framework for Claude Code that enables multi-agent work
57
57
  ## Features
58
58
 
59
59
  - 🤖 **Multi-Agent System**: Automatically delegates tasks to specialized agents (PM, Research, Engineer, QA, Documentation, Security, Ops, Data Engineer)
60
+ - 🧠 **Agent Memory System**: Persistent learning with project-specific knowledge retention
60
61
  - 🔄 **Session Management**: Resume previous sessions with `--resume`
61
62
  - 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
62
63
  - 📁 **Multi-Project Support**: Per-session working directories
@@ -108,6 +109,26 @@ The PM agent automatically delegates work to specialized agents:
108
109
  - Switch between projects with per-session directories
109
110
  - View session history and activity
110
111
 
112
+ ### Agent Memory System
113
+ Agents learn and improve over time with persistent memory:
114
+ - **Project-Specific Knowledge**: Automatically analyzes your codebase to understand patterns
115
+ - **Continuous Learning**: Agents remember insights across sessions
116
+ - **Memory Management**: Initialize, optimize, and manage agent memories
117
+ - **Quick Initialization**: Use `/mpm memory init` to scan project and create memories
118
+
119
+ ```bash
120
+ # Initialize project-specific memories
121
+ claude-mpm memory init
122
+
123
+ # View memory status
124
+ claude-mpm memory status
125
+
126
+ # Add specific learning
127
+ claude-mpm memory add engineer pattern "Always use async/await for I/O"
128
+ ```
129
+
130
+ See [docs/MEMORY.md](docs/MEMORY.md) for comprehensive memory system documentation.
131
+
111
132
  ### Real-Time Monitoring
112
133
  The `--monitor` flag opens a web dashboard showing:
113
134
  - Live agent activity and delegations
@@ -121,23 +142,26 @@ See [docs/monitoring.md](docs/monitoring.md) for full monitoring guide.
121
142
  ## Documentation
122
143
 
123
144
  - **[Quick Start Guide](QUICKSTART.md)** - Get running in 5 minutes
145
+ - **[Agent Memory System](docs/MEMORY.md)** - Comprehensive memory documentation
124
146
  - **[Monitoring Dashboard](docs/monitoring.md)** - Real-time monitoring features
125
147
  - **[Project Structure](docs/STRUCTURE.md)** - Codebase organization
126
148
  - **[Deployment Guide](docs/DEPLOY.md)** - Publishing and versioning
127
149
  - **[User Guide](docs/user/)** - Detailed usage documentation
128
150
  - **[Developer Guide](docs/developer/)** - Architecture and API reference
129
151
 
130
- ## Recent Updates (v3.3.1)
152
+ ## Recent Updates (v3.4.0)
131
153
 
132
- ### Session Working Directories
133
- - Each session can now have its own working directory
134
- - Git operations use the session's directory automatically
135
- - Switch projects seamlessly without changing terminal directory
154
+ ### Agent Memory System
155
+ - **Project-Specific Memory Generation**: Automatic analysis of project characteristics
156
+ - **Memory Initialization Command**: New `/mpm memory init` for quick project onboarding
157
+ - **Enhanced Documentation Processing**: Dynamic file discovery based on project type
158
+ - **Improved Memory Templates**: Clean section headers with programmatic limit enforcement
136
159
 
137
- ### Monitoring Improvements
138
- - Fixed git diff viewer for cross-project files
139
- - Auto-sync working directory from session data
140
- - Improved error handling and display
160
+ ### Project Organization
161
+ - **Deep Clean**: Comprehensive project structure cleanup for publishing readiness
162
+ - **Documentation Archives**: Historical reports organized in docs/archive/
163
+ - **Test Organization**: All tests properly relocated to /tests/ directory
164
+ - **Enhanced .gitignore**: Prevents temporary and debug file commits
141
165
 
142
166
  See [CHANGELOG.md](CHANGELOG.md) for full history.
143
167
 
@@ -1,12 +1,11 @@
1
1
  claude_mpm/__init__.py,sha256=uDX48EOBrmJbY8Xv3bBpd8kibulIlmZv5jmczAjHNb8,648
2
2
  claude_mpm/__main__.py,sha256=8IcM9tEbTqSN_er04eKTPX3AGo6qzRiTnPI7KfIf7rw,641
3
- claude_mpm/constants.py,sha256=kquxfabo4JRbeN86KHBTi8g4h2mSdB8OsUCyTq50kVM,4328
3
+ claude_mpm/constants.py,sha256=Fh8shwtbNnmCchaN-mNbjbvkRkV1EuCqxSkiK5rmduo,4346
4
4
  claude_mpm/deployment_paths.py,sha256=JO7-fhhp_AkVB7ZssggHDBbee-r2sokpkqjoqnQLTmM,9073
5
5
  claude_mpm/init.py,sha256=gOreOf7BLXkT0_HrQk_As4Kz1OT_NJG_RG0i0hbY0z0,8088
6
6
  claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=TYgSd9jNBMWp4mAOBUl9dconX4RcGbvmMEScRy5uyko,3343
7
7
  claude_mpm/agents/INSTRUCTIONS.md,sha256=7CzaIBCf85rYCufZuOo4KjJGyWRrMd1AkN-Zzun93pE,13245
8
8
  claude_mpm/agents/__init__.py,sha256=r-p7ervzjLPD7_8dm2tXX_fwvdTZy6KwKA03ofxN3sA,3275
9
- claude_mpm/agents/agent-template.yaml,sha256=koKJn8MCAJx0QNQMHouvIZrwvw5qjPV0U-aV-YVyk6s,2036
10
9
  claude_mpm/agents/agent_loader.py,sha256=P4h3qupJHvZL9dfb6ntB582xenYv9JbkMOVav_kNkAo,44030
11
10
  claude_mpm/agents/agent_loader_integration.py,sha256=z_DXxAIeuUD71HBYdxxvcFKoQYQxITLo8oAdN_M4LTA,7610
12
11
  claude_mpm/agents/agents_metadata.py,sha256=Xju9Yim6XSv2u1J_Swre5VJySbdxxC-9TzpOfXG8ibg,5170
@@ -34,15 +33,13 @@ claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json,sha256=_FHWnUeh
34
33
  claude_mpm/agents/templates/backup/research_agent_20250726_234551.json,sha256=o4n_sqSbjnsFRELB2q501vgwm-o2tQNLJLYvnVP9LWU,5629
35
34
  claude_mpm/agents/templates/backup/security_agent_20250726_234551.json,sha256=l5YuD-27CxKSOsRLv0bDY_tCZyds0yGbeizLb8paeFY,2322
36
35
  claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json,sha256=too38RPTLJ9HutCMn0nfmEdCj2me241dx5tUYDFtu94,2143
37
- claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json,sha256=YZQgq2ri2_Y3qKzvPlC6TmzZKviDv0__GuyUOo1LbT8,146
38
- claude_mpm/cli/README.md,sha256=exe9V_UEsMSPXOMlvQUv5FsCuhUpPOsMvIhyDSyuFdI,3423
39
36
  claude_mpm/cli/__init__.py,sha256=OBcyg1xLPddsPURZPCvVhUfHkeak7Ph2qTvhOGYL7rQ,5506
40
- claude_mpm/cli/parser.py,sha256=5mzUgDWsdGoQjs1OalgXqhwAm3aQJ1g4F7VRTJc9wGU,15823
37
+ claude_mpm/cli/parser.py,sha256=Z6AOBnTi5QwB5MMDuxuWEbHB0HL5RVwLxSfXSPIQnX0,16232
41
38
  claude_mpm/cli/utils.py,sha256=k_EHLcjDAzYhDeVeWvE-vqvHsEoG6Cc6Yk7fs3YoRVA,6022
42
39
  claude_mpm/cli/commands/__init__.py,sha256=6Oh31iPNWcAehZWIIkX2hoSUBTcvFU733P7Q8Ssf56g,509
43
40
  claude_mpm/cli/commands/agents.py,sha256=FqqEQcfAfCxjz_E7fGQUtLznloJLz8fWQtnjQhkbalQ,6795
44
41
  claude_mpm/cli/commands/info.py,sha256=ETL6jC08OTQVTPjs219Y0m3FzfKOUlI0-yI81AI8FXY,2990
45
- claude_mpm/cli/commands/memory.py,sha256=oaGcEl5eW42vq20CUu52MDX4CGNcrUgo2ZY0ROE8FBU,30124
42
+ claude_mpm/cli/commands/memory.py,sha256=6jYD1bgfnWA0DvBpLJnZCPYMRoGAPBopAED8Qr-iIos,37357
46
43
  claude_mpm/cli/commands/run.py,sha256=ArHaNBr2_jnZL5FuQdyOU1zySL27u6zdFOBGxkz3xcQ,28761
47
44
  claude_mpm/cli/commands/tickets.py,sha256=SXyGtHSyGJwTeJwDAHf7kRbdiG1DlZkXkod5UoNy7Ik,2150
48
45
  claude_mpm/cli/commands/ui.py,sha256=FhBQiOKW61cNduyryRu0UhC366d6o1eEkBgbPd7Au1w,1900
@@ -50,18 +47,15 @@ claude_mpm/cli_module/__init__.py,sha256=CkMp4gzWKoZZF_qKyBDi2sQaZw_GLWZYLtKouv-
50
47
  claude_mpm/cli_module/args.py,sha256=nilYpziBsoEySO4W1hQ2MRJyn9TFx3c3TrucyMMhRtk,7970
51
48
  claude_mpm/cli_module/commands.py,sha256=CBNfO-bXrZ0spjeW_7-swprEq5V4PQSc0qhl9SLP5UU,7168
52
49
  claude_mpm/cli_module/migration_example.py,sha256=C-_GbsW8dGzutnNeRLLld74ibDLyAOQx0stdpYZS0hs,6137
53
- claude_mpm/cli_module/refactoring_guide.md,sha256=fl1PGwLZAj4OYWmU0syg1jDd81PqK7rC7rhwgFId5BE,7048
54
50
  claude_mpm/config/__init__.py,sha256=p31JuaXLDHgIgoAbHApNvctN2IEZYq2MBkkXROdhbH8,105
55
51
  claude_mpm/config/socketio_config.py,sha256=fSzqleM9EzehWg3U_--0y_zVgXZo7Q45JCI_a2xPs1g,9452
56
52
  claude_mpm/core/__init__.py,sha256=a2Irt1l4-UbQQU7FuEaTK_DlKOg3UsMHnZN-g04SYZ0,1194
57
53
  claude_mpm/core/agent_name_normalizer.py,sha256=-X68oz3_74t9BRbHA54NEGyjy0xjTsGp_sCUHDtKp1s,9269
58
54
  claude_mpm/core/agent_registry.py,sha256=4MAfc7xDlrYWWkHmDMRmWE8q32teuCmIcud9D0I0dLo,20496
59
- claude_mpm/core/agent_registry.py.bak,sha256=cXB0yqhonE1XsXmWcdwyNuvv8yddK_PyZILDCmwCZ_Q,10161
60
55
  claude_mpm/core/agent_session_manager.py,sha256=6alXQr4gnMR-unT4J1ryEtTxJqQolA0-NgPQN6X3lqY,11212
61
56
  claude_mpm/core/base_service.py,sha256=qWI_rUybHmmKroptJxcE4rzPBhK8yeMKIt2JqnqJB7E,29125
62
- claude_mpm/core/base_service.py.bak,sha256=48A8eI_HPqxYm42X5jaTo8zQVOfFFXe7SqIUo-8IyC4,13124
63
- claude_mpm/core/claude_runner.py,sha256=UTeAvhdeZK7EViNaEiiMIPWBmn44utJvj9fNiqwGNe8,37740
64
- claude_mpm/core/config.py,sha256=_V0sbCOFNabm9nZUuRAZ9AGe65A03FbFY36QFCrDdHo,13464
57
+ claude_mpm/core/claude_runner.py,sha256=kVfA_U1g-DKCEW7f_ZbscvrhVOj4DP_L7jSx8-_dkM8,40933
58
+ claude_mpm/core/config.py,sha256=lrgaTSHXw558AFwzEHElqPc7tUALFoXTZXisQ-_WRWo,20329
65
59
  claude_mpm/core/config_aliases.py,sha256=8eqA4wpWViIDm_9pL3f9j7cR_ssmhOYYiY2UzHrfUzg,10058
66
60
  claude_mpm/core/container.py,sha256=P4c4nSo_USSfHTxvpR1sQkVGNsgqozZBN27l3IXqiDc,12216
67
61
  claude_mpm/core/factories.py,sha256=Qh2n_x112ZIPWEfwFley9bb9IZcSG38LkpT3uValyDk,7484
@@ -75,22 +69,22 @@ claude_mpm/core/mixins.py,sha256=rTEH-7FDpNiLB8oo6mSb0CLarJklv4fDJw1xM-gr5wI,559
75
69
  claude_mpm/core/pm_hook_interceptor.py,sha256=PRaloqgxn-Alt9HflrywYXRL2GL3Ixb8Wxov8GfAMMU,7173
76
70
  claude_mpm/core/service_registry.py,sha256=wKJUO1g4UFA4dUpE3RkIYz1Ek8kIh4XfvU1kFeLCl2Q,10529
77
71
  claude_mpm/core/session_manager.py,sha256=D6ZA7bHAgfdkv0nLKjza0FKDng5iqi___IESrb3nSuk,8292
78
- claude_mpm/core/simple_runner.py,sha256=UTeAvhdeZK7EViNaEiiMIPWBmn44utJvj9fNiqwGNe8,37740
72
+ claude_mpm/core/simple_runner.py,sha256=kVfA_U1g-DKCEW7f_ZbscvrhVOj4DP_L7jSx8-_dkM8,40933
79
73
  claude_mpm/core/socketio_pool.py,sha256=B83uDsmqRF5S0QDwwatyKS-m2SdTvotCVfc3_2uQxd8,22438
80
74
  claude_mpm/core/tool_access_control.py,sha256=htZbDhC8s7D7BVqfmk0BwRrYJnlnUAk8_NeJKOaeNlg,6632
75
+ claude_mpm/dashboard/open_dashboard.py,sha256=aXUc6LzUMwmTQMkl_h2jjvICimr-ED4FPMHP_9mnrgQ,1108
81
76
  claude_mpm/experimental/cli_enhancements.py,sha256=-N5f2u9TaxUcOJegUd3lt1FRz5ErEyYUvvgrNmMRL7Q,11814
82
77
  claude_mpm/generators/__init__.py,sha256=l53aBn6kBQSDz3b6bZkMCJBcEmYnV9hHEZq8LKzXgH8,152
83
78
  claude_mpm/generators/agent_profile_generator.py,sha256=2HjOscogSyvrtQj8KwdgNPS6Ym_QvgX1BMeauQZewZA,5751
84
- claude_mpm/hooks/README.md,sha256=AjW-V7WQGf9o5X9otNl5k8rtal_MdyToFqVx_pudOXs,3289
85
79
  claude_mpm/hooks/__init__.py,sha256=Y3JJ_mEtvRP07r_gXkju4c0s18bjIXGH1uAbhSw1ES0,166
86
80
  claude_mpm/hooks/base_hook.py,sha256=a4V2EKEG02QQB0h-pnxhZI-fouKBLYbdBLckcaNuf0k,5098
87
- claude_mpm/hooks/memory_integration_hook.py,sha256=g-I4rp3Q2Uwh-gt2KOX0Yy6Av2pO8hzWmzZilxufnAY,14321
81
+ claude_mpm/hooks/memory_integration_hook.py,sha256=_--fFmkCcciZ6g25N3SZp4qndVTIEWhJ8IO11P5atjs,16318
88
82
  claude_mpm/hooks/tool_call_interceptor.py,sha256=08_Odgm6Sg1zBJhGjwzVa03AReeBPZHTjndyjEO99cY,7629
89
83
  claude_mpm/hooks/validation_hooks.py,sha256=7TU2N4SzCm2nwpsR0xiNKsHQNsWODnOVAmK9jHq1QqM,6582
90
84
  claude_mpm/hooks/builtin/__init__.py,sha256=Tfh3dIGxlQRUKBzR_MWC64WAKJ0Q_POsVVFl7lz9CD4,36
91
85
  claude_mpm/hooks/builtin/logging_hook_example.py,sha256=SyfdAH9ENTIpMhw2IeqqZpXNBUakYDI1yF5DFS0RJZ4,4971
92
86
  claude_mpm/hooks/builtin/memory_hooks_example.py,sha256=Nu5VUSfT_0b23cVK_uQthCn6c3wQWEs5REjX57xrb8Y,2368
93
- claude_mpm/hooks/builtin/mpm_command_hook.py,sha256=PhQl1FifaB61gRrBOIXAim0R-XUBIzZwLdjb6WQuEGQ,4541
87
+ claude_mpm/hooks/builtin/mpm_command_hook.py,sha256=PnPcLNyLuihrFl7ilWrCDrb9G0if-VLwMhQ2zmP08R0,4538
94
88
  claude_mpm/hooks/builtin/post_delegation_hook_example.py,sha256=54OJKRgjdXH8A2LHypbXoMlCNlmWXBY5Fvk0-VWq_fI,4596
95
89
  claude_mpm/hooks/builtin/pre_delegation_hook_example.py,sha256=JOAdDm46be_ol7uSmnQaE0jQS8SsiuGei80Auj3sdL8,4692
96
90
  claude_mpm/hooks/builtin/submit_hook_example.py,sha256=x7-yIF_QYe9uwCezeVDA_HdDTLu6uQfbTgZ12pdC4xo,3431
@@ -98,11 +92,10 @@ claude_mpm/hooks/builtin/ticket_extraction_hook_example.py,sha256=4wNhS2tFUXgdcv
98
92
  claude_mpm/hooks/builtin/todo_agent_prefix_hook.py,sha256=v_4w2vcZIt0bkZxqdHmgtN79yHZ1gviuhhBws0FHpIQ,10226
99
93
  claude_mpm/hooks/builtin/workflow_start_hook.py,sha256=EQrtYD9qLMLSYPl3oQinEheZAJ2i5EO_h2jhhR8lmt0,7490
100
94
  claude_mpm/hooks/claude_hooks/__init__.py,sha256=bMUwt2RzDGAcEbtDMA7vWS1uJsauOY0OixIe4pHwgQ0,129
101
- claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=xK7Gr6hQRM3bRsubNEy9l4sc3W4vq8z5UyaYmK9wN6A,30814
102
- claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=otLBTac_sBI3s5dH--9nok59tU91_U_vV5kmzc2fmRo,1995
95
+ claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=2cxjqBq1-8LkOL6-nEnZ7Dm3h40jrOGvS2NwZX-ZAZY,40231
96
+ claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=JBbedWNs1EHaUsAkmqfPv_tWxV_DcRP707hma74oHU0,2370
103
97
  claude_mpm/models/__init__.py,sha256=vy2NLX2KT9QeH76SjCYh9dOYKPLRgxGrnwkQFAg08gc,465
104
98
  claude_mpm/models/agent_definition.py,sha256=y9XQOED_maOyiYKhNB8H8MfJJMBN0vIYPS_wCXnRJmA,6647
105
- claude_mpm/orchestration/SUBPROCESS_DESIGN.md,sha256=YwToiT1_NXblv1XIWhWPNc2uKzDvqY2E_Nix8qK7qk0,2136
106
99
  claude_mpm/orchestration/__init__.py,sha256=hnrG5vtUuEFi5E8kRa1XKFWtlWL_FxffwGMrCM_6YJg,205
107
100
  claude_mpm/orchestration/archive/direct_orchestrator.py,sha256=j-IP-st-Xi9Xf33i-BLPZOE_kkxSZxNNuFZmp6MTuZY,7884
108
101
  claude_mpm/orchestration/archive/factory.py,sha256=p2g79cXcCRVfLhHrlR_3nMaZkviacVyKjCelCLAa_j0,8249
@@ -116,14 +109,7 @@ claude_mpm/orchestration/archive/simple_orchestrator.py,sha256=Booy_eeuC5H3i-1HA
116
109
  claude_mpm/orchestration/archive/subprocess_orchestrator.py,sha256=TYTAHX6p4OpgBsfU-CF2D6r_wmZHIASc9GR8l3-qXQM,31982
117
110
  claude_mpm/orchestration/archive/system_prompt_orchestrator.py,sha256=R16sc-94kQVeGjJzTYmvKn0aYgj_9qxyzShDy1E5zpE,12853
118
111
  claude_mpm/orchestration/archive/wrapper_orchestrator.py,sha256=cvL0NJf9kCWf3QJl67ySwvtR1Hd9Rym28Ii8Rtsdi6Q,6806
119
- claude_mpm/schemas/README_SECURITY.md,sha256=6BiFZ9VuMllijQkYEx_lAT7wwXhMeO3FQtih7WMvsAI,3297
120
- claude_mpm/schemas/agent_schema.json,sha256=PukBzcAs8SzLHU6tYn8hjdYcnH8xrdvWD9hwvcasy0U,12385
121
- claude_mpm/schemas/agent_schema_documentation.md,sha256=pQTxXNhxDqDK_0mMohszPOx3NOBKz-YOJPAU5h_iSQg,6405
122
- claude_mpm/schemas/agent_schema_security_notes.md,sha256=gzx6Z4xL5x0QISiXVDcwRGNnfegRgVK7jx7jAcc5910,6449
123
- claude_mpm/schemas/ticket_workflow_documentation.md,sha256=F51WiIkJg2Z9BLA7FqwkAPy6YOXKYF4--E-NAYRx4yM,12784
124
- claude_mpm/schemas/ticket_workflow_schema.json,sha256=AVedOeNfOdJdERaxEz4ZJj4aVZaHzfungg3C5Y_02qg,19112
125
112
  claude_mpm/schemas/workflow_validator.py,sha256=qRgGodJoIZQaLfZ8OzWz3Y9eVNz3ckrQwkJ2RvccxAs,17175
126
- claude_mpm/schemas/examples/standard_workflow.json,sha256=POQdxPIoJRD2qe4-17a35pGqFX5hfmGttXWPfeZ8qRs,13835
127
113
  claude_mpm/scripts/__init__.py,sha256=M2n9fQeyfILC8gogXvJv6ixnu7hwpqLEqLWJRaUN0MU,37
128
114
  claude_mpm/scripts/claude-mpm-socketio,sha256=usdZgOQs0vjAKBhUcGJoRPnzJt3wYZDQM88t71TTVeY,1029
129
115
  claude_mpm/scripts/claude_mpm_monitor.html,sha256=24g1YWNB8PZ2S_q2xLQycK0Z06e2C7yOTsEm6qQRVUI,17634
@@ -131,15 +117,15 @@ claude_mpm/scripts/install_socketio_server.py,sha256=Bx3BL48EF1peH111k_HU7tQdcUU
131
117
  claude_mpm/scripts/launch_monitor.py,sha256=fAgRFJknrYq31SEWD9oEAEH2xvR3Lh_bzRPGDKEAFGg,4437
132
118
  claude_mpm/scripts/launch_socketio_dashboard.py,sha256=BaZv_nuNY8rIFu76YhKswnrJAdM1pA3xNpb5-hQfsiA,9274
133
119
  claude_mpm/scripts/manage_version.py,sha256=5c86LD-_m0AlWqfgjRF6BH3Jc7n_nm5Z7hFVqB3iExQ,17524
134
- claude_mpm/scripts/socketio_daemon.py,sha256=HuRr7kzwwZskgLjHqf0wSW8IndsTs2s-aeR1tgnPMag,5115
135
- claude_mpm/scripts/socketio_server_manager.py,sha256=94uTdTuMHvTZrBNSrOHSKMz_z0AINl3uoc44msWfEz8,15522
120
+ claude_mpm/scripts/socketio_daemon.py,sha256=__6AQytLHclOmUpZ88-OTJUYuzmn1tyJPPxuBJkDL0c,7037
121
+ claude_mpm/scripts/socketio_server_manager.py,sha256=yTciMx45roXTN-j28hYiP1j0QCj4YliYC11387oWODY,30837
136
122
  claude_mpm/scripts/ticket.py,sha256=GmFimtTJxc927cCzJvvJH3gvoxXQtAB-W-xnuclcvNs,9350
137
- claude_mpm/services/__init__.py,sha256=HhIBqyTtIKnKMAgFXJCX37LDosq61dQff1_5rbyT7Y8,408
123
+ claude_mpm/services/__init__.py,sha256=dcZ5U4xQlk-zpAy8CLTuEcXzKDfHT0KdJf3bYSmZ1BM,1904
138
124
  claude_mpm/services/agent_capabilities_generator.py,sha256=hWG0zV2InmzrDMxSbQzjVBBTzEaxg0bFxl8tmTMJ8qA,6565
139
125
  claude_mpm/services/agent_deployment.py,sha256=DtK1BX2yCrutUkQdVPD01mYHm-ya36l3EPOnEcaDfog,67961
140
126
  claude_mpm/services/agent_lifecycle_manager.py,sha256=fWggWu5rT7FkDQrRHyw05Y4KaNN9cXeaCinsymPJwM4,50127
141
127
  claude_mpm/services/agent_management_service.py,sha256=eX5n6w17b9urcogVdr4V-kXcuo7yyjORTrIihjF8PeQ,22853
142
- claude_mpm/services/agent_memory_manager.py,sha256=xFwOxcknDhsZRuMtMoenbroWtbMuWmtSXpc6pcK2bm4,37277
128
+ claude_mpm/services/agent_memory_manager.py,sha256=2w27vwsjuHU2s78IhQhSwlyYSNHe3wfOYcmkyJ9Vb2Y,58846
143
129
  claude_mpm/services/agent_modification_tracker.py,sha256=uxELrXtFt5Xlv0mhRbq5ynagEowczTRrv3mAp-aRZFc,34519
144
130
  claude_mpm/services/agent_persistence_service.py,sha256=B_Vz43zCKWq47zWkoibcia-Qwn2y3gARu7MV5Cpiptc,2893
145
131
  claude_mpm/services/agent_profile_loader.py,sha256=4D1Xj0vgqV8wN7Y3r8lijh7ghy5cVGU5t5s931sVqGc,23133
@@ -147,20 +133,23 @@ claude_mpm/services/agent_registry.py,sha256=vn8CEW0vppj_0EY2NofmNRZEnpV70mlWiX2
147
133
  claude_mpm/services/agent_versioning.py,sha256=y4SiKGKdTn-9_Ht6nGlmKGJW6MLgEHZUy5SR1OPTZZM,1108
148
134
  claude_mpm/services/base_agent_manager.py,sha256=WEcfzdMaFXmXUSoEYEPNeGu8dvqjIv53zyUU0ITrhsM,14987
149
135
  claude_mpm/services/deployed_agent_discovery.py,sha256=GoXhho5EBz_FZDDl4xUWW_BnP3hfymbV1ePorRrhO_U,9443
136
+ claude_mpm/services/exceptions.py,sha256=Q7yUnkxRvm8jAQgdIhW7opAgWVemlVRjGPYTm8EyHjg,25800
150
137
  claude_mpm/services/framework_agent_loader.py,sha256=QdRSYRurYF3YbAXJwIGei71BffD5AqOVcV3ktRPdk7g,14018
151
138
  claude_mpm/services/framework_claude_md_generator.py,sha256=3kHmkRLHTex6HFZ4DhbLVQb48j-5dAoy1q6UW1Qf7U8,22914
139
+ claude_mpm/services/health_monitor.py,sha256=utZf8RsiUWXRYIszAC9nHdMy3YSqzedIDBLQJ1sL4w8,33758
152
140
  claude_mpm/services/hook_service.py,sha256=hkpN8mXXYCwzdLVJwsoVg_fw5seEmei-q0ZzQyNoCXA,14200
153
- claude_mpm/services/memory_builder.py,sha256=T-JrR5vlLN5ucXSK0uQsgYQwpFIIXbHFbJOT_U9orz4,19288
154
- claude_mpm/services/memory_optimizer.py,sha256=YLs9DHH2c7T-t5Mr-OIlV4-vWdvKxS0KN3CIDGiPa5A,23332
141
+ claude_mpm/services/memory_builder.py,sha256=Y_Gx0IIJhGjUx1NAjslC1MFPbRaXuoRdkQX69_zjrFg,34075
142
+ claude_mpm/services/memory_optimizer.py,sha256=uydUqx0Nd3ib7KNfKnlR9tPW5MLSUC5OAJg0GH2Jj4E,23638
155
143
  claude_mpm/services/memory_router.py,sha256=opUFx2xJs1vZN6FyGo8yubqLRwQ6apIm1htZ_6yyoBc,17693
144
+ claude_mpm/services/project_analyzer.py,sha256=3Ub_Tpcxm0LnYgcAipebvWr6TfofVqZNMkANejA2C44,33564
145
+ claude_mpm/services/recovery_manager.py,sha256=K46vXbEWbxFUoS42s34OxN1rkddpisGG7E_ZdRyAZ-A,25792
156
146
  claude_mpm/services/shared_prompt_cache.py,sha256=D04lrRWyg0lHyqGcAHy7IYvRHRKSg6EOpAJwBUPa2wk,29890
157
147
  claude_mpm/services/socketio_client_manager.py,sha256=2Ly63iiGA_BUzf73UwQDu9Q75wA1C4O1CWFv8hi8bms,18074
158
- claude_mpm/services/socketio_server.py,sha256=1DIBfm6oqI7whB02bvSjEmNU1KkatrExqJjlxadw0JA,47687
159
- claude_mpm/services/standalone_socketio_server.py,sha256=XhsJ40Me3eSFHDpweIouy7dIqHK1aubikHCY275mUXk,24764
148
+ claude_mpm/services/socketio_server.py,sha256=kVqSdOrQMg3oQHKsR3ZJPDumVVPnL5TsqCvbHGWraqw,79406
149
+ claude_mpm/services/standalone_socketio_server.py,sha256=TfdtwdtlKA6cZyTon9O7zkSeu0H-1HpW0te7vu1r3o0,55214
160
150
  claude_mpm/services/ticket_manager.py,sha256=Ki11YjBkDax8BFVSaDdOBk3K4VU5gvdbgq9AmCyyoZ0,7454
161
151
  claude_mpm/services/ticket_manager_di.py,sha256=pIsIGncbboKzBYSRQTO7ZX5MuQzV6iFfIflvKe6u1jw,11123
162
152
  claude_mpm/services/ticketing_service_original.py,sha256=Dg3TYKsy0Z3JCqV5rlMBXeMrhrkAGxOgAMUNRZtJIhw,16680
163
- claude_mpm/services/framework_claude_md_generator/README.md,sha256=_-ty72t2afPagDVVUEizPkhs4BYkCeqCnZDNPgZAYtY,3511
164
153
  claude_mpm/services/framework_claude_md_generator/__init__.py,sha256=OtnwxLiJektfFtsKdkHM1X27rKkFiNd_rcf4843ziKw,7334
165
154
  claude_mpm/services/framework_claude_md_generator/content_assembler.py,sha256=CZlw84bBWjvK68VQhjAdLnMxXBXipZtcdyPtYWLdrKo,6590
166
155
  claude_mpm/services/framework_claude_md_generator/content_validator.py,sha256=89QSGil9_NL15ci3HsVVQmfg7MZvsJS3i_ELP5yD-gA,4583
@@ -180,7 +169,6 @@ claude_mpm/services/framework_claude_md_generator/section_generators/role_design
180
169
  claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py,sha256=eqj2nNXtOZ8KkMyINpkU-JLDfXHY81MpKhf_qmnZdUc,4117
181
170
  claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py,sha256=W6PaLGxCISqFQCku7yCIz-lN81FHZjSq4c2KnnO9AeI,5719
182
171
  claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py,sha256=o0oD7RuBSeLF4S8NCVH9lMLmQWQ57JrAm-j1BeTb0uM,1887
183
- claude_mpm/services/parent_directory_manager/README.md,sha256=VEdJXvxsoCA-kuBWJ_t-RZf-jU_oB43_7Inw9V6AFFk,2909
184
172
  claude_mpm/services/parent_directory_manager/__init__.py,sha256=IonvPwRV-JP58qHQGzuLxGHh83pB4SgLTzsRYbejSUQ,22889
185
173
  claude_mpm/services/parent_directory_manager/backup_manager.py,sha256=vLKflBIbgWo74oZzuekuouAFU8n0lhgoxCwGi8O2cc8,10096
186
174
  claude_mpm/services/parent_directory_manager/config_manager.py,sha256=D3GIdmZqHfVVxBWj0kuSnnW_FIgBXNRX0193X2V5Ris,7803
@@ -192,11 +180,10 @@ claude_mpm/services/parent_directory_manager/template_deployer.py,sha256=FrFIJt2
192
180
  claude_mpm/services/parent_directory_manager/validation_manager.py,sha256=k1f68joGgucjLg-pBaxDoOQslggCgO-OyMPLCGzMehI,14733
193
181
  claude_mpm/services/parent_directory_manager/version_control_helper.py,sha256=mtTD0bMS_zaCy6zM9P0eLOxjdFOjUUmQHP_3ZWQjbv8,10719
194
182
  claude_mpm/services/parent_directory_manager/version_manager.py,sha256=HOEaqwq160yIkjH692WhfAD02ww0T8mnhzg4tNPPx-A,7857
195
- claude_mpm/services/version_control/VERSION,sha256=MMmeixA-rL5vbW4bVLBsptXzFktPUAlDNKUXrpXKj7o,5
196
183
  claude_mpm/services/version_control/__init__.py,sha256=5BFbqFUMtpCyDbMcekRjCQ4jgBAJI50PhfuZ8S5NTjk,1513
197
184
  claude_mpm/services/version_control/branch_strategy.py,sha256=MTjWinbJEp4N-QqBi6Olop7LNtvhCEPVnfCwK-29O-A,22999
198
185
  claude_mpm/services/version_control/conflict_resolution.py,sha256=yWa9fzmkds1U0EBw-LyTZvlj56MpEEsRmryLQg4KDdU,26084
199
- claude_mpm/services/version_control/git_operations.py,sha256=L69Aduzwq4IipIGV3iiwNQTlgVi6peh-LzJTks7bvxo,27499
186
+ claude_mpm/services/version_control/git_operations.py,sha256=197Cmk_cLzSVzqNPQHKvsTGncWXEI3F5OOCmo4sWgTg,28422
200
187
  claude_mpm/services/version_control/semantic_versioning.py,sha256=xiDsirwq8CApnOBc4UMf4VcrgolzQgfK2T_Yi3mY7Bk,29039
201
188
  claude_mpm/ui/__init__.py,sha256=Snxxm3pYXPKfv9gBG_MZKxXkZk8c4ZJAQIvh-rjjCFo,45
202
189
  claude_mpm/ui/rich_terminal_ui.py,sha256=gx_9TD0kR4Exq867pHjVVs_b-gw1q267t5oA2ZDSkQU,10078
@@ -212,10 +199,9 @@ claude_mpm/utils/path_operations.py,sha256=6pLMnAWBVzHkgp6JyQHmHbGD-dWn-nX21yV4E
212
199
  claude_mpm/utils/paths.py,sha256=Xv0SZWdZRkRjN9e6clBcA165ya00GNQxt7SwMz51tfA,10153
213
200
  claude_mpm/validation/__init__.py,sha256=bJ19g9lnk7yIjtxzN8XPegp87HTFBzCrGQOpFgRTf3g,155
214
201
  claude_mpm/validation/agent_validator.py,sha256=GCA2b2rKhKDeaNyUqWxTiWIs3sDdWjD9cgOFRp9K6ic,18227
215
- claude_mpm/web/open_dashboard.py,sha256=aXUc6LzUMwmTQMkl_h2jjvICimr-ED4FPMHP_9mnrgQ,1108
216
- claude_mpm-3.3.2.dist-info/licenses/LICENSE,sha256=cSdDfXjoTVhstrERrqme4zgxAu4GubU22zVEHsiXGxs,1071
217
- claude_mpm-3.3.2.dist-info/METADATA,sha256=QAeWt_WCNC36nD1Q8d5OdTW0kEUB0-mHLmbagNBflXY,5304
218
- claude_mpm-3.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
219
- claude_mpm-3.3.2.dist-info/entry_points.txt,sha256=3_d7wLrg9sRmQ1SfrFGWoTNL8Wrd6lQb2XVSYbTwRIg,324
220
- claude_mpm-3.3.2.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
221
- claude_mpm-3.3.2.dist-info/RECORD,,
202
+ claude_mpm-3.4.2.dist-info/licenses/LICENSE,sha256=cSdDfXjoTVhstrERrqme4zgxAu4GubU22zVEHsiXGxs,1071
203
+ claude_mpm-3.4.2.dist-info/METADATA,sha256=H6UpgRiXB8YzbdQyocYpFep9Gk8lZe4CjgznGJFywBk,6523
204
+ claude_mpm-3.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
205
+ claude_mpm-3.4.2.dist-info/entry_points.txt,sha256=3_d7wLrg9sRmQ1SfrFGWoTNL8Wrd6lQb2XVSYbTwRIg,324
206
+ claude_mpm-3.4.2.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
207
+ claude_mpm-3.4.2.dist-info/RECORD,,
@@ -1,83 +0,0 @@
1
- # Agent Profile Template Configuration
2
- # Inspired by awesome-claude-code's template system
3
-
4
- profile:
5
- name: "{{AGENT_NAME}}"
6
- version: "{{VERSION}}"
7
- description: "{{DESCRIPTION}}"
8
- author: "{{AUTHOR}}"
9
- created: "{{CREATED_DATE}}"
10
-
11
- # Categories for organizing agents
12
- categories:
13
- - id: analysis
14
- title: "Code Analysis Agents"
15
- description: |
16
- > Agents specialized in analyzing codebases, identifying patterns, and providing insights
17
- icon: "🔍"
18
-
19
- - id: implementation
20
- title: "Implementation Agents"
21
- description: |
22
- > Agents focused on writing and modifying code
23
- icon: "🛠️"
24
-
25
- - id: testing
26
- title: "Testing & QA Agents"
27
- description: |
28
- > Agents dedicated to testing, quality assurance, and validation
29
- icon: "🧪"
30
-
31
- - id: security
32
- title: "Security Agents"
33
- description: |
34
- > Agents specialized in security analysis and vulnerability detection
35
- icon: "🔒"
36
-
37
- agents:
38
- - name: "{{AGENT_ID}}"
39
- category: "{{CATEGORY}}"
40
- role: "{{ROLE}}"
41
- description: "{{AGENT_DESCRIPTION}}"
42
-
43
- capabilities:
44
- - "{{CAPABILITY_1}}"
45
- - "{{CAPABILITY_2}}"
46
- - "{{CAPABILITY_3}}"
47
-
48
- constraints:
49
- - "{{CONSTRAINT_1}}"
50
- - "{{CONSTRAINT_2}}"
51
-
52
- tools:
53
- - name: "{{TOOL_NAME}}"
54
- description: "{{TOOL_DESCRIPTION}}"
55
- required: true
56
-
57
- prompt_template: |
58
- You are a {{ROLE}} agent specializing in {{SPECIALIZATION}}.
59
-
60
- ## Your Capabilities:
61
- {{CAPABILITIES_LIST}}
62
-
63
- ## Your Constraints:
64
- {{CONSTRAINTS_LIST}}
65
-
66
- ## Context:
67
- {context}
68
-
69
- ## Task:
70
- {task}
71
-
72
- ## Additional Instructions:
73
- {{ADDITIONAL_INSTRUCTIONS}}
74
-
75
- examples:
76
- - scenario: "{{EXAMPLE_SCENARIO}}"
77
- input: "{{EXAMPLE_INPUT}}"
78
- expected_output: "{{EXAMPLE_OUTPUT}}"
79
-
80
- best_practices:
81
- - "{{BEST_PRACTICE_1}}"
82
- - "{{BEST_PRACTICE_2}}"
83
- - "{{BEST_PRACTICE_3}}"
@@ -1,6 +0,0 @@
1
- {
2
- "project_name": "test_fix_deployment",
3
- "created": "2025-07-17T19:06:27.172097",
4
- "framework_version": "0.9.1",
5
- "auto_initialized": true
6
- }
claude_mpm/cli/README.md DELETED
@@ -1,109 +0,0 @@
1
- # Claude MPM CLI Architecture
2
-
3
- This document describes the refactored CLI architecture for claude-mpm.
4
-
5
- ## Overview
6
-
7
- The CLI has been refactored from a single monolithic `cli.py` file into a modular structure that improves maintainability and code organization.
8
-
9
- ## Directory Structure
10
-
11
- ```
12
- cli/
13
- ├── __init__.py # Main entry point - orchestrates the CLI flow
14
- ├── parser.py # Argument parsing logic - single source of truth for CLI arguments
15
- ├── utils.py # Shared utility functions
16
- ├── commands/ # Individual command implementations
17
- │ ├── __init__.py
18
- │ ├── run.py # Default command - runs Claude sessions
19
- │ ├── tickets.py # Lists tickets
20
- │ ├── info.py # Shows system information
21
- │ ├── agents.py # Manages agent deployments
22
- │ └── ui.py # Terminal UI launcher
23
- └── README.md # This file
24
- ```
25
-
26
- ## Key Design Decisions
27
-
28
- ### 1. Modular Command Structure
29
- Each command is implemented in its own module under `commands/`. This makes it easy to:
30
- - Add new commands without touching existing code
31
- - Test commands in isolation
32
- - Understand what each command does
33
-
34
- ### 2. Centralized Argument Parsing
35
- All argument definitions are in `parser.py`. This provides:
36
- - Single source of truth for CLI arguments
37
- - Reusable argument groups (common arguments, run arguments)
38
- - Clear separation of parsing from execution
39
-
40
- ### 3. Shared Utilities
41
- Common functions are in `utils.py`:
42
- - `get_user_input()` - Handles input from files, stdin, or command line
43
- - `get_agent_versions_display()` - Formats agent version information
44
- - `setup_logging()` - Configures logging based on arguments
45
- - `ensure_directories()` - Creates required directories on first run
46
-
47
- ### 4. Backward Compatibility
48
- The refactoring maintains full backward compatibility:
49
- - `__main__.py` still imports from `claude_mpm.cli`
50
- - The main `cli/__init__.py` exports the same `main()` function
51
- - All existing commands and arguments work exactly as before
52
-
53
- ## Entry Points
54
-
55
- 1. **Package execution**: `python -m claude_mpm`
56
- - Uses `__main__.py` which imports from `cli/__init__.py`
57
-
58
- 2. **Direct import**: `from claude_mpm.cli import main`
59
- - Imports the main function from `cli/__init__.py`
60
-
61
- 3. **Shell script**: `claude-mpm` command
62
- - Calls `python -m claude_mpm` with proper environment setup
63
-
64
- ## Adding New Commands
65
-
66
- To add a new command:
67
-
68
- 1. Create a new module in `commands/`:
69
- ```python
70
- # commands/mycommand.py
71
- def my_command(args):
72
- """Execute my command."""
73
- # Implementation here
74
- ```
75
-
76
- 2. Add the command to `commands/__init__.py`:
77
- ```python
78
- from .mycommand import my_command
79
- ```
80
-
81
- 3. Add parser configuration in `parser.py`:
82
- ```python
83
- # In create_parser()
84
- mycommand_parser = subparsers.add_parser(
85
- "mycommand",
86
- help="Description of my command"
87
- )
88
- # Add command-specific arguments
89
- ```
90
-
91
- 4. Add the command mapping in `cli/__init__.py`:
92
- ```python
93
- # In _execute_command()
94
- command_map = {
95
- # ... existing commands ...
96
- "mycommand": my_command,
97
- }
98
- ```
99
-
100
- ## Removed Files
101
-
102
- - `cli_main.py` - Redundant entry point, functionality moved to `__main__.py`
103
- - Original `cli.py` - Split into the modular structure described above
104
-
105
- ## Preserved Files
106
-
107
- - `cli_enhancements.py` - Experimental Click-based CLI with enhanced features
108
- - Kept for reference and future enhancement ideas
109
- - Not currently used in production