claude-mpm 3.3.2__py3-none-any.whl → 3.4.0__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 +186 -13
- 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 +1 -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 +9 -2
- claude_mpm/hooks/memory_integration_hook.py +51 -5
- claude_mpm/services/__init__.py +23 -5
- claude_mpm/services/agent_memory_manager.py +536 -48
- claude_mpm/services/memory_builder.py +338 -6
- claude_mpm/services/project_analyzer.py +771 -0
- claude_mpm/services/socketio_server.py +473 -33
- claude_mpm/services/version_control/git_operations.py +26 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.0.dist-info}/METADATA +34 -10
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.0.dist-info}/RECORD +22 -39
- 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-3.3.2.dist-info → claude_mpm-3.4.0.dist-info}/WHEEL +0 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.0.dist-info}/entry_points.txt +0 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-3.3.2.dist-info → claude_mpm-3.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-mpm
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
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=nVdR7EKMCej8aZ-8G2WiCgnUsiIlTMsbRB8GabgCiwU,37098
|
|
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=I_HMukUSXrnaQkJ5Rp5fDScxDnKhrLM1YzgzeSwZCAU,13490
|
|
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,21 @@ 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
|
|
81
75
|
claude_mpm/experimental/cli_enhancements.py,sha256=-N5f2u9TaxUcOJegUd3lt1FRz5ErEyYUvvgrNmMRL7Q,11814
|
|
82
76
|
claude_mpm/generators/__init__.py,sha256=l53aBn6kBQSDz3b6bZkMCJBcEmYnV9hHEZq8LKzXgH8,152
|
|
83
77
|
claude_mpm/generators/agent_profile_generator.py,sha256=2HjOscogSyvrtQj8KwdgNPS6Ym_QvgX1BMeauQZewZA,5751
|
|
84
|
-
claude_mpm/hooks/README.md,sha256=AjW-V7WQGf9o5X9otNl5k8rtal_MdyToFqVx_pudOXs,3289
|
|
85
78
|
claude_mpm/hooks/__init__.py,sha256=Y3JJ_mEtvRP07r_gXkju4c0s18bjIXGH1uAbhSw1ES0,166
|
|
86
79
|
claude_mpm/hooks/base_hook.py,sha256=a4V2EKEG02QQB0h-pnxhZI-fouKBLYbdBLckcaNuf0k,5098
|
|
87
|
-
claude_mpm/hooks/memory_integration_hook.py,sha256=
|
|
80
|
+
claude_mpm/hooks/memory_integration_hook.py,sha256=_--fFmkCcciZ6g25N3SZp4qndVTIEWhJ8IO11P5atjs,16318
|
|
88
81
|
claude_mpm/hooks/tool_call_interceptor.py,sha256=08_Odgm6Sg1zBJhGjwzVa03AReeBPZHTjndyjEO99cY,7629
|
|
89
82
|
claude_mpm/hooks/validation_hooks.py,sha256=7TU2N4SzCm2nwpsR0xiNKsHQNsWODnOVAmK9jHq1QqM,6582
|
|
90
83
|
claude_mpm/hooks/builtin/__init__.py,sha256=Tfh3dIGxlQRUKBzR_MWC64WAKJ0Q_POsVVFl7lz9CD4,36
|
|
91
84
|
claude_mpm/hooks/builtin/logging_hook_example.py,sha256=SyfdAH9ENTIpMhw2IeqqZpXNBUakYDI1yF5DFS0RJZ4,4971
|
|
92
85
|
claude_mpm/hooks/builtin/memory_hooks_example.py,sha256=Nu5VUSfT_0b23cVK_uQthCn6c3wQWEs5REjX57xrb8Y,2368
|
|
93
|
-
claude_mpm/hooks/builtin/mpm_command_hook.py,sha256=
|
|
86
|
+
claude_mpm/hooks/builtin/mpm_command_hook.py,sha256=PnPcLNyLuihrFl7ilWrCDrb9G0if-VLwMhQ2zmP08R0,4538
|
|
94
87
|
claude_mpm/hooks/builtin/post_delegation_hook_example.py,sha256=54OJKRgjdXH8A2LHypbXoMlCNlmWXBY5Fvk0-VWq_fI,4596
|
|
95
88
|
claude_mpm/hooks/builtin/pre_delegation_hook_example.py,sha256=JOAdDm46be_ol7uSmnQaE0jQS8SsiuGei80Auj3sdL8,4692
|
|
96
89
|
claude_mpm/hooks/builtin/submit_hook_example.py,sha256=x7-yIF_QYe9uwCezeVDA_HdDTLu6uQfbTgZ12pdC4xo,3431
|
|
@@ -98,11 +91,10 @@ claude_mpm/hooks/builtin/ticket_extraction_hook_example.py,sha256=4wNhS2tFUXgdcv
|
|
|
98
91
|
claude_mpm/hooks/builtin/todo_agent_prefix_hook.py,sha256=v_4w2vcZIt0bkZxqdHmgtN79yHZ1gviuhhBws0FHpIQ,10226
|
|
99
92
|
claude_mpm/hooks/builtin/workflow_start_hook.py,sha256=EQrtYD9qLMLSYPl3oQinEheZAJ2i5EO_h2jhhR8lmt0,7490
|
|
100
93
|
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=
|
|
94
|
+
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=2cxjqBq1-8LkOL6-nEnZ7Dm3h40jrOGvS2NwZX-ZAZY,40231
|
|
95
|
+
claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=0rhPBnQnNNYIqBg9lstIIEvXlZlQQfSEVPJ8YNZ-pvs,2362
|
|
103
96
|
claude_mpm/models/__init__.py,sha256=vy2NLX2KT9QeH76SjCYh9dOYKPLRgxGrnwkQFAg08gc,465
|
|
104
97
|
claude_mpm/models/agent_definition.py,sha256=y9XQOED_maOyiYKhNB8H8MfJJMBN0vIYPS_wCXnRJmA,6647
|
|
105
|
-
claude_mpm/orchestration/SUBPROCESS_DESIGN.md,sha256=YwToiT1_NXblv1XIWhWPNc2uKzDvqY2E_Nix8qK7qk0,2136
|
|
106
98
|
claude_mpm/orchestration/__init__.py,sha256=hnrG5vtUuEFi5E8kRa1XKFWtlWL_FxffwGMrCM_6YJg,205
|
|
107
99
|
claude_mpm/orchestration/archive/direct_orchestrator.py,sha256=j-IP-st-Xi9Xf33i-BLPZOE_kkxSZxNNuFZmp6MTuZY,7884
|
|
108
100
|
claude_mpm/orchestration/archive/factory.py,sha256=p2g79cXcCRVfLhHrlR_3nMaZkviacVyKjCelCLAa_j0,8249
|
|
@@ -116,14 +108,7 @@ claude_mpm/orchestration/archive/simple_orchestrator.py,sha256=Booy_eeuC5H3i-1HA
|
|
|
116
108
|
claude_mpm/orchestration/archive/subprocess_orchestrator.py,sha256=TYTAHX6p4OpgBsfU-CF2D6r_wmZHIASc9GR8l3-qXQM,31982
|
|
117
109
|
claude_mpm/orchestration/archive/system_prompt_orchestrator.py,sha256=R16sc-94kQVeGjJzTYmvKn0aYgj_9qxyzShDy1E5zpE,12853
|
|
118
110
|
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
111
|
claude_mpm/schemas/workflow_validator.py,sha256=qRgGodJoIZQaLfZ8OzWz3Y9eVNz3ckrQwkJ2RvccxAs,17175
|
|
126
|
-
claude_mpm/schemas/examples/standard_workflow.json,sha256=POQdxPIoJRD2qe4-17a35pGqFX5hfmGttXWPfeZ8qRs,13835
|
|
127
112
|
claude_mpm/scripts/__init__.py,sha256=M2n9fQeyfILC8gogXvJv6ixnu7hwpqLEqLWJRaUN0MU,37
|
|
128
113
|
claude_mpm/scripts/claude-mpm-socketio,sha256=usdZgOQs0vjAKBhUcGJoRPnzJt3wYZDQM88t71TTVeY,1029
|
|
129
114
|
claude_mpm/scripts/claude_mpm_monitor.html,sha256=24g1YWNB8PZ2S_q2xLQycK0Z06e2C7yOTsEm6qQRVUI,17634
|
|
@@ -134,12 +119,12 @@ claude_mpm/scripts/manage_version.py,sha256=5c86LD-_m0AlWqfgjRF6BH3Jc7n_nm5Z7hFV
|
|
|
134
119
|
claude_mpm/scripts/socketio_daemon.py,sha256=HuRr7kzwwZskgLjHqf0wSW8IndsTs2s-aeR1tgnPMag,5115
|
|
135
120
|
claude_mpm/scripts/socketio_server_manager.py,sha256=94uTdTuMHvTZrBNSrOHSKMz_z0AINl3uoc44msWfEz8,15522
|
|
136
121
|
claude_mpm/scripts/ticket.py,sha256=GmFimtTJxc927cCzJvvJH3gvoxXQtAB-W-xnuclcvNs,9350
|
|
137
|
-
claude_mpm/services/__init__.py,sha256=
|
|
122
|
+
claude_mpm/services/__init__.py,sha256=IPHztd65SxleYnpUz96d4m5pgTQZpCHt96v6CO_Vy7Y,1149
|
|
138
123
|
claude_mpm/services/agent_capabilities_generator.py,sha256=hWG0zV2InmzrDMxSbQzjVBBTzEaxg0bFxl8tmTMJ8qA,6565
|
|
139
124
|
claude_mpm/services/agent_deployment.py,sha256=DtK1BX2yCrutUkQdVPD01mYHm-ya36l3EPOnEcaDfog,67961
|
|
140
125
|
claude_mpm/services/agent_lifecycle_manager.py,sha256=fWggWu5rT7FkDQrRHyw05Y4KaNN9cXeaCinsymPJwM4,50127
|
|
141
126
|
claude_mpm/services/agent_management_service.py,sha256=eX5n6w17b9urcogVdr4V-kXcuo7yyjORTrIihjF8PeQ,22853
|
|
142
|
-
claude_mpm/services/agent_memory_manager.py,sha256=
|
|
127
|
+
claude_mpm/services/agent_memory_manager.py,sha256=yRqy4f8zAquZWLlZmWQa7iTUIfaW_cg19wlnJAqbuOg,58701
|
|
143
128
|
claude_mpm/services/agent_modification_tracker.py,sha256=uxELrXtFt5Xlv0mhRbq5ynagEowczTRrv3mAp-aRZFc,34519
|
|
144
129
|
claude_mpm/services/agent_persistence_service.py,sha256=B_Vz43zCKWq47zWkoibcia-Qwn2y3gARu7MV5Cpiptc,2893
|
|
145
130
|
claude_mpm/services/agent_profile_loader.py,sha256=4D1Xj0vgqV8wN7Y3r8lijh7ghy5cVGU5t5s931sVqGc,23133
|
|
@@ -150,17 +135,17 @@ claude_mpm/services/deployed_agent_discovery.py,sha256=GoXhho5EBz_FZDDl4xUWW_BnP
|
|
|
150
135
|
claude_mpm/services/framework_agent_loader.py,sha256=QdRSYRurYF3YbAXJwIGei71BffD5AqOVcV3ktRPdk7g,14018
|
|
151
136
|
claude_mpm/services/framework_claude_md_generator.py,sha256=3kHmkRLHTex6HFZ4DhbLVQb48j-5dAoy1q6UW1Qf7U8,22914
|
|
152
137
|
claude_mpm/services/hook_service.py,sha256=hkpN8mXXYCwzdLVJwsoVg_fw5seEmei-q0ZzQyNoCXA,14200
|
|
153
|
-
claude_mpm/services/memory_builder.py,sha256=
|
|
138
|
+
claude_mpm/services/memory_builder.py,sha256=SbBpRryBOcBhjrVBe4pKL3sjgxiEsC67ZFViPKgaLSs,33991
|
|
154
139
|
claude_mpm/services/memory_optimizer.py,sha256=YLs9DHH2c7T-t5Mr-OIlV4-vWdvKxS0KN3CIDGiPa5A,23332
|
|
155
140
|
claude_mpm/services/memory_router.py,sha256=opUFx2xJs1vZN6FyGo8yubqLRwQ6apIm1htZ_6yyoBc,17693
|
|
141
|
+
claude_mpm/services/project_analyzer.py,sha256=3Ub_Tpcxm0LnYgcAipebvWr6TfofVqZNMkANejA2C44,33564
|
|
156
142
|
claude_mpm/services/shared_prompt_cache.py,sha256=D04lrRWyg0lHyqGcAHy7IYvRHRKSg6EOpAJwBUPa2wk,29890
|
|
157
143
|
claude_mpm/services/socketio_client_manager.py,sha256=2Ly63iiGA_BUzf73UwQDu9Q75wA1C4O1CWFv8hi8bms,18074
|
|
158
|
-
claude_mpm/services/socketio_server.py,sha256=
|
|
144
|
+
claude_mpm/services/socketio_server.py,sha256=GTlO1IKgEEj9UKf4DdGhpoal7JqzRXfb0Bt0xuh65_c,69464
|
|
159
145
|
claude_mpm/services/standalone_socketio_server.py,sha256=XhsJ40Me3eSFHDpweIouy7dIqHK1aubikHCY275mUXk,24764
|
|
160
146
|
claude_mpm/services/ticket_manager.py,sha256=Ki11YjBkDax8BFVSaDdOBk3K4VU5gvdbgq9AmCyyoZ0,7454
|
|
161
147
|
claude_mpm/services/ticket_manager_di.py,sha256=pIsIGncbboKzBYSRQTO7ZX5MuQzV6iFfIflvKe6u1jw,11123
|
|
162
148
|
claude_mpm/services/ticketing_service_original.py,sha256=Dg3TYKsy0Z3JCqV5rlMBXeMrhrkAGxOgAMUNRZtJIhw,16680
|
|
163
|
-
claude_mpm/services/framework_claude_md_generator/README.md,sha256=_-ty72t2afPagDVVUEizPkhs4BYkCeqCnZDNPgZAYtY,3511
|
|
164
149
|
claude_mpm/services/framework_claude_md_generator/__init__.py,sha256=OtnwxLiJektfFtsKdkHM1X27rKkFiNd_rcf4843ziKw,7334
|
|
165
150
|
claude_mpm/services/framework_claude_md_generator/content_assembler.py,sha256=CZlw84bBWjvK68VQhjAdLnMxXBXipZtcdyPtYWLdrKo,6590
|
|
166
151
|
claude_mpm/services/framework_claude_md_generator/content_validator.py,sha256=89QSGil9_NL15ci3HsVVQmfg7MZvsJS3i_ELP5yD-gA,4583
|
|
@@ -180,7 +165,6 @@ claude_mpm/services/framework_claude_md_generator/section_generators/role_design
|
|
|
180
165
|
claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py,sha256=eqj2nNXtOZ8KkMyINpkU-JLDfXHY81MpKhf_qmnZdUc,4117
|
|
181
166
|
claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py,sha256=W6PaLGxCISqFQCku7yCIz-lN81FHZjSq4c2KnnO9AeI,5719
|
|
182
167
|
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
168
|
claude_mpm/services/parent_directory_manager/__init__.py,sha256=IonvPwRV-JP58qHQGzuLxGHh83pB4SgLTzsRYbejSUQ,22889
|
|
185
169
|
claude_mpm/services/parent_directory_manager/backup_manager.py,sha256=vLKflBIbgWo74oZzuekuouAFU8n0lhgoxCwGi8O2cc8,10096
|
|
186
170
|
claude_mpm/services/parent_directory_manager/config_manager.py,sha256=D3GIdmZqHfVVxBWj0kuSnnW_FIgBXNRX0193X2V5Ris,7803
|
|
@@ -192,11 +176,10 @@ claude_mpm/services/parent_directory_manager/template_deployer.py,sha256=FrFIJt2
|
|
|
192
176
|
claude_mpm/services/parent_directory_manager/validation_manager.py,sha256=k1f68joGgucjLg-pBaxDoOQslggCgO-OyMPLCGzMehI,14733
|
|
193
177
|
claude_mpm/services/parent_directory_manager/version_control_helper.py,sha256=mtTD0bMS_zaCy6zM9P0eLOxjdFOjUUmQHP_3ZWQjbv8,10719
|
|
194
178
|
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
179
|
claude_mpm/services/version_control/__init__.py,sha256=5BFbqFUMtpCyDbMcekRjCQ4jgBAJI50PhfuZ8S5NTjk,1513
|
|
197
180
|
claude_mpm/services/version_control/branch_strategy.py,sha256=MTjWinbJEp4N-QqBi6Olop7LNtvhCEPVnfCwK-29O-A,22999
|
|
198
181
|
claude_mpm/services/version_control/conflict_resolution.py,sha256=yWa9fzmkds1U0EBw-LyTZvlj56MpEEsRmryLQg4KDdU,26084
|
|
199
|
-
claude_mpm/services/version_control/git_operations.py,sha256=
|
|
182
|
+
claude_mpm/services/version_control/git_operations.py,sha256=197Cmk_cLzSVzqNPQHKvsTGncWXEI3F5OOCmo4sWgTg,28422
|
|
200
183
|
claude_mpm/services/version_control/semantic_versioning.py,sha256=xiDsirwq8CApnOBc4UMf4VcrgolzQgfK2T_Yi3mY7Bk,29039
|
|
201
184
|
claude_mpm/ui/__init__.py,sha256=Snxxm3pYXPKfv9gBG_MZKxXkZk8c4ZJAQIvh-rjjCFo,45
|
|
202
185
|
claude_mpm/ui/rich_terminal_ui.py,sha256=gx_9TD0kR4Exq867pHjVVs_b-gw1q267t5oA2ZDSkQU,10078
|
|
@@ -213,9 +196,9 @@ claude_mpm/utils/paths.py,sha256=Xv0SZWdZRkRjN9e6clBcA165ya00GNQxt7SwMz51tfA,101
|
|
|
213
196
|
claude_mpm/validation/__init__.py,sha256=bJ19g9lnk7yIjtxzN8XPegp87HTFBzCrGQOpFgRTf3g,155
|
|
214
197
|
claude_mpm/validation/agent_validator.py,sha256=GCA2b2rKhKDeaNyUqWxTiWIs3sDdWjD9cgOFRp9K6ic,18227
|
|
215
198
|
claude_mpm/web/open_dashboard.py,sha256=aXUc6LzUMwmTQMkl_h2jjvICimr-ED4FPMHP_9mnrgQ,1108
|
|
216
|
-
claude_mpm-3.
|
|
217
|
-
claude_mpm-3.
|
|
218
|
-
claude_mpm-3.
|
|
219
|
-
claude_mpm-3.
|
|
220
|
-
claude_mpm-3.
|
|
221
|
-
claude_mpm-3.
|
|
199
|
+
claude_mpm-3.4.0.dist-info/licenses/LICENSE,sha256=cSdDfXjoTVhstrERrqme4zgxAu4GubU22zVEHsiXGxs,1071
|
|
200
|
+
claude_mpm-3.4.0.dist-info/METADATA,sha256=dR5GXrP0tK09xrgJA6IghmrUq93k61RJNrDrtQlsNhk,6523
|
|
201
|
+
claude_mpm-3.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
202
|
+
claude_mpm-3.4.0.dist-info/entry_points.txt,sha256=3_d7wLrg9sRmQ1SfrFGWoTNL8Wrd6lQb2XVSYbTwRIg,324
|
|
203
|
+
claude_mpm-3.4.0.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
204
|
+
claude_mpm-3.4.0.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
|