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.
- claude_mpm/cli/commands/memory.py +192 -14
- claude_mpm/cli/parser.py +13 -1
- claude_mpm/constants.py +1 -0
- claude_mpm/core/claude_runner.py +61 -0
- claude_mpm/core/config.py +161 -1
- claude_mpm/core/simple_runner.py +61 -0
- claude_mpm/hooks/builtin/mpm_command_hook.py +5 -5
- claude_mpm/hooks/claude_hooks/hook_handler.py +211 -4
- claude_mpm/hooks/claude_hooks/hook_wrapper.sh +10 -3
- claude_mpm/hooks/memory_integration_hook.py +51 -5
- claude_mpm/scripts/socketio_daemon.py +49 -9
- claude_mpm/scripts/socketio_server_manager.py +370 -45
- claude_mpm/services/__init__.py +41 -5
- claude_mpm/services/agent_memory_manager.py +541 -51
- claude_mpm/services/exceptions.py +677 -0
- claude_mpm/services/health_monitor.py +892 -0
- claude_mpm/services/memory_builder.py +341 -7
- claude_mpm/services/memory_optimizer.py +6 -2
- claude_mpm/services/project_analyzer.py +771 -0
- claude_mpm/services/recovery_manager.py +670 -0
- claude_mpm/services/socketio_server.py +653 -36
- claude_mpm/services/standalone_socketio_server.py +703 -34
- claude_mpm/services/version_control/git_operations.py +26 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/METADATA +34 -10
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/RECORD +30 -44
- claude_mpm/agents/agent-template.yaml +0 -83
- claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json +0 -6
- claude_mpm/cli/README.md +0 -109
- claude_mpm/cli_module/refactoring_guide.md +0 -253
- claude_mpm/core/agent_registry.py.bak +0 -312
- claude_mpm/core/base_service.py.bak +0 -406
- claude_mpm/hooks/README.md +0 -97
- claude_mpm/orchestration/SUBPROCESS_DESIGN.md +0 -66
- claude_mpm/schemas/README_SECURITY.md +0 -92
- claude_mpm/schemas/agent_schema.json +0 -395
- claude_mpm/schemas/agent_schema_documentation.md +0 -181
- claude_mpm/schemas/agent_schema_security_notes.md +0 -165
- claude_mpm/schemas/examples/standard_workflow.json +0 -505
- claude_mpm/schemas/ticket_workflow_documentation.md +0 -482
- claude_mpm/schemas/ticket_workflow_schema.json +0 -590
- claude_mpm/services/framework_claude_md_generator/README.md +0 -92
- claude_mpm/services/parent_directory_manager/README.md +0 -83
- claude_mpm/services/version_control/VERSION +0 -1
- /claude_mpm/{web → dashboard}/open_dashboard.py +0 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/WHEEL +0 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/entry_points.txt +0 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.2.dist-info}/licenses/LICENSE +0 -0
- {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
|
+
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.
|
|
152
|
+
## Recent Updates (v3.4.0)
|
|
131
153
|
|
|
132
|
-
###
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
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
|
-
###
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
63
|
-
claude_mpm/core/
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
102
|
-
claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=
|
|
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=
|
|
135
|
-
claude_mpm/scripts/socketio_server_manager.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
154
|
-
claude_mpm/services/memory_optimizer.py,sha256=
|
|
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=
|
|
159
|
-
claude_mpm/services/standalone_socketio_server.py,sha256=
|
|
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=
|
|
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/
|
|
216
|
-
claude_mpm-3.
|
|
217
|
-
claude_mpm-3.
|
|
218
|
-
claude_mpm-3.
|
|
219
|
-
claude_mpm-3.
|
|
220
|
-
claude_mpm-3.
|
|
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}}"
|
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
|