claude-mpm 4.1.14__py3-none-any.whl → 4.1.17__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 (31) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/templates/ops.json +15 -6
  3. claude_mpm/cli/commands/mpm_init.py +154 -7
  4. claude_mpm/cli/commands/mpm_init_handler.py +1 -0
  5. claude_mpm/cli/parsers/mpm_init_parser.py +13 -0
  6. claude_mpm/commands/__init__.py +14 -0
  7. claude_mpm/commands/mpm-agents.md +12 -0
  8. claude_mpm/commands/mpm-config.md +18 -0
  9. claude_mpm/commands/mpm-doctor.md +24 -0
  10. claude_mpm/commands/mpm-help.md +10 -0
  11. claude_mpm/commands/mpm-init.md +162 -0
  12. claude_mpm/commands/mpm-status.md +13 -0
  13. claude_mpm/commands/mpm-tickets.md +102 -0
  14. claude_mpm/commands/mpm.md +19 -0
  15. claude_mpm/dashboard/__init__.py +12 -0
  16. claude_mpm/dashboard/static/css/activity.css +165 -0
  17. claude_mpm/dashboard/static/css/dashboard.css +18 -15
  18. claude_mpm/dashboard/static/js/components/activity-tree.js +603 -475
  19. claude_mpm/experimental/__init__.py +10 -0
  20. claude_mpm/hooks/claude_hooks/installer.py +13 -3
  21. claude_mpm/schemas/__init__.py +12 -0
  22. claude_mpm/scripts/socketio_daemon_wrapper.py +78 -0
  23. claude_mpm/services/cli/socketio_manager.py +21 -13
  24. claude_mpm/services/command_deployment_service.py +8 -2
  25. claude_mpm/tools/__init__.py +10 -0
  26. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/METADATA +8 -2
  27. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/RECORD +31 -17
  28. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/WHEEL +0 -0
  29. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/entry_points.txt +0 -0
  30. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/licenses/LICENSE +0 -0
  31. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,10 @@
1
+ """
2
+ Experimental features package for Claude MPM.
3
+
4
+ This package contains experimental features and enhancements that are
5
+ under development or testing. These features may be unstable or subject
6
+ to change in future versions.
7
+
8
+ This __init__.py file is required to make this directory recognizable as a
9
+ Python package by setuptools for proper distribution and imports.
10
+ """
@@ -500,9 +500,19 @@ main "$@"
500
500
 
501
501
  def _install_commands(self) -> None:
502
502
  """Install custom commands for Claude Code."""
503
- # Find commands directory in the package
504
- package_root = Path(__file__).parent.parent.parent.parent
505
- commands_src = package_root / ".claude" / "commands"
503
+ # Find commands directory using proper resource resolution
504
+ try:
505
+ from ...core.unified_paths import get_package_resource_path
506
+
507
+ commands_src = get_package_resource_path("commands")
508
+ except FileNotFoundError:
509
+ # Fallback to hardcoded path exploration for development
510
+ package_root = Path(__file__).parent.parent.parent.parent
511
+ commands_src = package_root / ".claude" / "commands"
512
+
513
+ if not commands_src.exists():
514
+ # Try the actual location in src/claude_mpm/commands
515
+ commands_src = Path(__file__).parent.parent.parent / "commands"
506
516
 
507
517
  if not commands_src.exists():
508
518
  self.logger.debug(
@@ -0,0 +1,12 @@
1
+ """
2
+ Schemas package for Claude MPM.
3
+
4
+ This package contains JSON schema files used for validation of agent
5
+ configurations, frontmatter, and other structured data within Claude MPM.
6
+
7
+ These schema files may be accessed via importlib.resources for validation
8
+ purposes throughout the application.
9
+
10
+ This __init__.py file is required to make this directory recognizable as a
11
+ Python package by setuptools for proper distribution and resource access.
12
+ """
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Wrapper script to use the hardened daemon by default while maintaining compatibility.
4
+
5
+ WHY: Provides a smooth transition path from the original daemon to the hardened version
6
+ without breaking existing workflows or scripts.
7
+ """
8
+
9
+ import os
10
+ import subprocess
11
+ import sys
12
+ from pathlib import Path
13
+
14
+ # Determine which daemon to use
15
+ USE_HARDENED = os.environ.get("SOCKETIO_USE_HARDENED", "true").lower() == "true"
16
+
17
+ # Find the appropriate daemon script using proper resource resolution
18
+ try:
19
+ # Try using importlib.resources for proper package resource access
20
+ try:
21
+ from importlib import resources
22
+
23
+ # We're in the same package, so try direct import
24
+ import claude_mpm.scripts
25
+
26
+ scripts_package = claude_mpm.scripts
27
+
28
+ if USE_HARDENED:
29
+ try:
30
+ with resources.path(
31
+ scripts_package, "socketio_daemon_hardened.py"
32
+ ) as p:
33
+ daemon_script = p
34
+ print("Using hardened Socket.IO daemon for improved reliability")
35
+ except (FileNotFoundError, ModuleNotFoundError):
36
+ # Fall back to original if hardened doesn't exist
37
+ with resources.path(scripts_package, "socketio_daemon.py") as p:
38
+ daemon_script = p
39
+ else:
40
+ with resources.path(scripts_package, "socketio_daemon.py") as p:
41
+ daemon_script = p
42
+ print(
43
+ "Using original Socket.IO daemon (set SOCKETIO_USE_HARDENED=true for hardened version)"
44
+ )
45
+ except (ImportError, AttributeError, ModuleNotFoundError):
46
+ # Fallback for older Python versions or if resources not available
47
+ script_dir = Path(__file__).parent
48
+
49
+ if USE_HARDENED:
50
+ daemon_script = script_dir / "socketio_daemon_hardened.py"
51
+ if not daemon_script.exists():
52
+ # Fall back to original if hardened doesn't exist
53
+ daemon_script = script_dir / "socketio_daemon.py"
54
+ else:
55
+ print("Using hardened Socket.IO daemon for improved reliability")
56
+ else:
57
+ daemon_script = script_dir / "socketio_daemon.py"
58
+ print(
59
+ "Using original Socket.IO daemon (set SOCKETIO_USE_HARDENED=true for hardened version)"
60
+ )
61
+ except Exception:
62
+ # Ultimate fallback - try relative to current file
63
+ script_dir = Path(__file__).parent
64
+ daemon_script = script_dir / (
65
+ "socketio_daemon_hardened.py" if USE_HARDENED else "socketio_daemon.py"
66
+ )
67
+ if not daemon_script.exists():
68
+ daemon_script = script_dir / "socketio_daemon.py"
69
+
70
+ # Pass through all arguments to the selected daemon
71
+ if daemon_script.exists():
72
+ result = subprocess.run(
73
+ [sys.executable, str(daemon_script)] + sys.argv[1:], check=False
74
+ )
75
+ sys.exit(result.returncode)
76
+ else:
77
+ print(f"Error: Daemon script not found at {daemon_script}")
78
+ sys.exit(1)
@@ -201,21 +201,29 @@ class SocketIOManager(ISocketIOManager):
201
201
  try:
202
202
  self.logger.info(f"Starting Socket.IO server on port {target_port}")
203
203
 
204
- # Get the socketio daemon script path
205
- scripts_dir = get_scripts_dir()
206
- daemon_script = scripts_dir / "socketio_daemon_wrapper.py"
204
+ # Get the socketio daemon script path using proper resource resolution
205
+ try:
206
+ from ...core.unified_paths import get_package_resource_path
207
207
 
208
- if not daemon_script.exists():
209
- self.logger.error(
210
- f"Socket.IO daemon script not found: {daemon_script}"
211
- )
212
- return False, ServerInfo(
213
- port=target_port,
214
- pid=None,
215
- is_running=False,
216
- launch_time=None,
217
- url=f"http://localhost:{target_port}",
208
+ daemon_script = get_package_resource_path(
209
+ "scripts/socketio_daemon_wrapper.py"
218
210
  )
211
+ except FileNotFoundError:
212
+ # Fallback to old method for development environments
213
+ scripts_dir = get_scripts_dir()
214
+ daemon_script = scripts_dir / "socketio_daemon_wrapper.py"
215
+
216
+ if not daemon_script.exists():
217
+ self.logger.error(
218
+ f"Socket.IO daemon script not found: {daemon_script}"
219
+ )
220
+ return False, ServerInfo(
221
+ port=target_port,
222
+ pid=None,
223
+ is_running=False,
224
+ launch_time=None,
225
+ url=f"http://localhost:{target_port}",
226
+ )
219
227
 
220
228
  # Start the server process
221
229
  env = os.environ.copy()
@@ -21,8 +21,14 @@ class CommandDeploymentService(BaseService):
21
21
  """Initialize the command deployment service."""
22
22
  super().__init__(name="command_deployment")
23
23
 
24
- # Source commands directory in the package
25
- self.source_dir = Path(__file__).parent.parent / "commands"
24
+ # Source commands directory in the package - use proper resource resolution
25
+ try:
26
+ from ..core.unified_paths import get_package_resource_path
27
+
28
+ self.source_dir = get_package_resource_path("commands")
29
+ except FileNotFoundError:
30
+ # Fallback to old method for development environments
31
+ self.source_dir = Path(__file__).parent.parent / "commands"
26
32
 
27
33
  # Target directory in user's home
28
34
  self.target_dir = Path.home() / ".claude" / "commands"
@@ -0,0 +1,10 @@
1
+ """
2
+ Tools package for Claude MPM.
3
+
4
+ This package contains utility tools and debugging modules for Claude MPM,
5
+ including code analysis tools, SocketIO debugging utilities, and other
6
+ development helpers.
7
+
8
+ This __init__.py file is required to make this directory recognizable as a
9
+ Python package by setuptools for proper distribution and imports.
10
+ """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.1.14
3
+ Version: 4.1.17
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -148,6 +148,12 @@ pipx install claude-mpm
148
148
  claude-mpm mcp-pipx-config
149
149
  ```
150
150
 
151
+ **🎉 Pipx Support Now Fully Functional!** Recent improvements ensure complete compatibility:
152
+ - ✅ Socket.IO daemon script path resolution (fixed)
153
+ - ✅ Commands directory access (fixed)
154
+ - ✅ Resource files properly packaged for pipx environments
155
+ - ✅ Python 3.13+ fully supported
156
+
151
157
  **That's it!** See [QUICKSTART.md](QUICKSTART.md) for immediate usage or [docs/user/installation.md](docs/user/installation.md) for advanced options.
152
158
 
153
159
  ## Quick Usage
@@ -200,7 +206,7 @@ Claude MPM includes 15 specialized agents:
200
206
  - **Security** - Security analysis and implementation
201
207
 
202
208
  #### Operations & Infrastructure
203
- - **Ops** - Operations and deployment
209
+ - **Ops** - Operations and deployment with advanced git commit authority and security verification (v2.2.2+)
204
210
  - **Version Control** - Git and version management
205
211
  - **Data Engineer** - Data pipeline and ETL development
206
212
 
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
2
- claude_mpm/VERSION,sha256=sAWQ1JyXU3b9eFcjVh2abG2B2O4q2zU4-5wBB_cdSLo,7
2
+ claude_mpm/VERSION,sha256=FQCNItg9Vvrf0d8yNGS9m-ryrmWsR5Lr5LZ6cUxh-rs,7
3
3
  claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=I946iCQzIIPRZVVJ8aO7lA4euiyDnNw2IX7EelAOkIE,5915
@@ -32,7 +32,7 @@ claude_mpm/agents/templates/documentation.json,sha256=6G7U_48t8XX16YKI4NYMnmUU7e
32
32
  claude_mpm/agents/templates/engineer.json,sha256=5uK8tGx0y8WVEoRf3ymXrXQDwh2Qh94OWxvdi6hbo44,6622
33
33
  claude_mpm/agents/templates/imagemagick.json,sha256=Hh5Y3OmhexTESiOZNyq79imbZ0-Vs8vpD2lpRi1x7FM,17747
34
34
  claude_mpm/agents/templates/memory_manager.json,sha256=aQKZCnkljawXaY4fgtyzqKziIAsL2mtQOsh1HZ7qcws,12613
35
- claude_mpm/agents/templates/ops.json,sha256=oC1pjdJrlRn4YBbP3RWFnmzpy-2ImabFR6GjsaWe3pI,7409
35
+ claude_mpm/agents/templates/ops.json,sha256=NEKzVN6YcT-fqbUsFXq3pfcNUhfcLxiuicb2OYHucMQ,10904
36
36
  claude_mpm/agents/templates/project_organizer.json,sha256=wFpdLeMgpTMWPpd7zHDgJq-0_fyph9VOXMoZkRgwD5c,5632
37
37
  claude_mpm/agents/templates/qa.json,sha256=D-T2d-2oO3gMYWq2pdrR736LN_vq7XCydRCB4y213jI,9526
38
38
  claude_mpm/agents/templates/refactoring_engineer.json,sha256=EArflslbK27cCYtBlLpprf6BxIj5YHDpMneW5rk3jCc,11877
@@ -76,8 +76,8 @@ claude_mpm/cli/commands/mcp_server_commands.py,sha256=-1G_2Y5ScTvzDd-kY8fTAao2H6
76
76
  claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
77
77
  claude_mpm/cli/commands/memory.py,sha256=Yzfs3_oiKciv3sfOoDm2lJL4M9idG7ARV3-sNw1ge_g,26186
78
78
  claude_mpm/cli/commands/monitor.py,sha256=iALHEe8jh7H3sdZlTANjKPopKUwGLdzx8vs7j0iVoCI,6069
79
- claude_mpm/cli/commands/mpm_init.py,sha256=M5JMsdMz0HiRGCnwOmoBun4MCibuZOtPq5ftY3xbkW4,16314
80
- claude_mpm/cli/commands/mpm_init_handler.py,sha256=bubidVBlXQQ_NucU3FBn14W7_pfuj47AS5eBarTjnPw,2854
79
+ claude_mpm/cli/commands/mpm_init.py,sha256=UTcPar5muMjBvDItnGFVFQvnkiDnhemdD3SvdVze_a4,22447
80
+ claude_mpm/cli/commands/mpm_init_handler.py,sha256=-pCB0XL3KipqGtnta8CC7Lg5TPMwstEhMFBcgF4aaa4,2919
81
81
  claude_mpm/cli/commands/run.py,sha256=7jvKy4emK8szoHR9nEigXnOrkugx4MduLmUadfWnUv0,43113
82
82
  claude_mpm/cli/commands/socketio_monitor.py,sha256=GHHY5pKg0XCffoqLoO0l0Nxa9HQY4gdrpYebLVahzl4,9540
83
83
  claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
@@ -94,7 +94,7 @@ claude_mpm/cli/parsers/debug_parser.py,sha256=F7MZdmiXiPfiIPMv21ZUqB2cMT8Ho1LDmp
94
94
  claude_mpm/cli/parsers/mcp_parser.py,sha256=zW4wClYOGf_o8yRediJkQRxgta2RI6S3IG_QDgAkp-k,5992
95
95
  claude_mpm/cli/parsers/memory_parser.py,sha256=ZwCDxJEgp-w03L-1tZsWTgisiwamP42s424bA5bvDJc,4760
96
96
  claude_mpm/cli/parsers/monitor_parser.py,sha256=Go78VOFQCts2fouv33tKfd303w0mVPpJiuBbRBGK5x0,4525
97
- claude_mpm/cli/parsers/mpm_init_parser.py,sha256=NZGaaN9eKwjJv8MYVrdjDFppuHN0zbXl3U6zv6QZ5uU,4369
97
+ claude_mpm/cli/parsers/mpm_init_parser.py,sha256=PxAydGDwTmgi0lu-cQHLnk4286EBzK84StcT8Msvk0I,4791
98
98
  claude_mpm/cli/parsers/run_parser.py,sha256=bkVqtQDl0y0mQi6Ue8mSXNggUuPfXlywgyXLCOPccXg,4750
99
99
  claude_mpm/cli/parsers/tickets_parser.py,sha256=FYl-VNH7PrZzfZUCcjnf6F7g6JXnL8YDxwrmR5svIcg,6966
100
100
  claude_mpm/cli/shared/__init__.py,sha256=c3Ff46Az3U-YpYgcjOowMcNUkSzDngflAJotv6Bs8TE,1019
@@ -106,6 +106,15 @@ claude_mpm/cli_module/__init__.py,sha256=OU0dPrHYOzNKGDoUyyGYieSBVyf-MnEAikJOg2R
106
106
  claude_mpm/cli_module/args.py,sha256=50_Y3AgMNeidtPjQ5-WZ1o-5Y7G2GAGQwMmllYjVScE,8464
107
107
  claude_mpm/cli_module/commands.py,sha256=zZmjP4J19i9PNMA7gCI5Dl--R1u_H4sCt5ZtOadZkY4,7013
108
108
  claude_mpm/cli_module/migration_example.py,sha256=DtQ59RyoBD6r8FIfrjKXCQ8-xnUiOqP5McBiS6_W1Qc,5183
109
+ claude_mpm/commands/__init__.py,sha256=paX5Ub5-UmRgiQ8UgKWIKwU2-RjLu67OmNJND-fVtjg,588
110
+ claude_mpm/commands/mpm-agents.md,sha256=MxFYlIhvtsKwtUdGJROKTr2So-izaWGjwRkf5seSqXM,280
111
+ claude_mpm/commands/mpm-config.md,sha256=F-9kKUC30gT6QXvOr5OTpYOq6L97iA2-SXVGxXjyF8M,547
112
+ claude_mpm/commands/mpm-doctor.md,sha256=ut5LhFKVRw-2ecjMSPsnaTiRuFXa6Q9t-Wgl3CCnQvk,590
113
+ claude_mpm/commands/mpm-help.md,sha256=gUMhJ1aTWyNeNMLZJeDJMN2sPuL-ugUFalmrNDEP5bI,282
114
+ claude_mpm/commands/mpm-init.md,sha256=G-SIbbU9X4bzumsCwL3kMG6Nn2MgSwV7ualtDm64tUw,5180
115
+ claude_mpm/commands/mpm-status.md,sha256=zY9toecba_UZTEY3JEKV1EvENQ-FPPvZk4dZwLyZ3LM,351
116
+ claude_mpm/commands/mpm-tickets.md,sha256=a2_mW56QDhw7-jMU92ycGaxvSSYpNoQFGhkWbr3MJ88,2356
117
+ claude_mpm/commands/mpm.md,sha256=tv_Mr6p2olRKIltKui4ljfCNG69VokkyIg951CeMBas,559
109
118
  claude_mpm/config/__init__.py,sha256=V2dyJQ8_gVCpNiCg8zYTQqE1RSeON5Zm8n5Ndkqhp1g,916
110
119
  claude_mpm/config/agent_config.py,sha256=d_cHE4HMkeZZrGjDGpBP655llV64p_E8DRDPPdsO1jg,14829
111
120
  claude_mpm/config/experimental_features.py,sha256=ma-Va7CVqOYrUEGZW6A4gdMRLHOpovHf8pHgP_3-xr0,7481
@@ -156,6 +165,7 @@ claude_mpm/core/shared/__init__.py,sha256=1mPHE8qCOAgJPgUZ6bYNO27xhnPN0h9ChHiMcq
156
165
  claude_mpm/core/shared/config_loader.py,sha256=Bw9dvMAxn0z6bsqlgs86gsuLJ3a-cZ7K_VfJi4VkpeI,10532
157
166
  claude_mpm/core/shared/path_resolver.py,sha256=iIi5cPWD1JCClOCiistQpY9p0km7BoeQ2oU-wZzBoUE,8224
158
167
  claude_mpm/core/shared/singleton_manager.py,sha256=3CN8coiDLJih9jFXImy6ZlEEE6U_myZ4xX--2E5gWZw,6537
168
+ claude_mpm/dashboard/__init__.py,sha256=b5QKcz0kt_ZMCFkac7caRzA8DlMiICG9VzmunmxHtco,466
159
169
  claude_mpm/dashboard/analysis_runner.py,sha256=f4AhsDoo1DL2B8TtoTCb2soLHR2Jb9SO2KWx71v5c2E,14756
160
170
  claude_mpm/dashboard/index.html,sha256=d0DPXBFdtIYWPv0TsLnnYBY8jY2wnoAL9EYAkrUN7UM,452
161
171
  claude_mpm/dashboard/open_dashboard.py,sha256=i4OHdjeQLtZX4UnLVMiFlq6iSENvlCcdcmodmaaU94Q,2205
@@ -179,10 +189,10 @@ claude_mpm/dashboard/static/built/components/session-manager.js,sha256=ZG__csNeB
179
189
  claude_mpm/dashboard/static/built/components/socket-manager.js,sha256=LEqCS0_EABAsQVUfb6WQk152mSicK2k039zne5cKR8A,131
180
190
  claude_mpm/dashboard/static/built/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
181
191
  claude_mpm/dashboard/static/built/components/working-directory.js,sha256=xE1ydpKDzRWrzHzfjrCiq5wbf3vDhmgQTGKS7myQcPM,15790
182
- claude_mpm/dashboard/static/css/activity.css,sha256=ClwqYuLrq7X0-Uj8jVuMFUvsr7BPtacaeaxLoPM-nAo,29141
192
+ claude_mpm/dashboard/static/css/activity.css,sha256=vfltwF-7RSFiQTTQdDS4KUjGqEjKT7BmZzfTdrx1Z-0,32816
183
193
  claude_mpm/dashboard/static/css/code-tree.css,sha256=x0MlVKrBBYr7XU8ndhxx7cjCe35GouhthIM32Zc9SA8,25599
184
194
  claude_mpm/dashboard/static/css/connection-status.css,sha256=nQiMLxIFjY5MDgrVCG58VR5H1PpE1vLlgXmnn01-P64,6729
185
- claude_mpm/dashboard/static/css/dashboard.css,sha256=7QlDMl1GKluf2MA_jlijTUVlMlK0RgdyfS1RLD7uv9k,75201
195
+ claude_mpm/dashboard/static/css/dashboard.css,sha256=k_tHegUSiIFHAD2Ez1qX4PJCh4Ut-Tk0BgJ4EANqT54,75294
186
196
  claude_mpm/dashboard/static/dist/dashboard.js,sha256=kShaKMMdwk1cKcHnXsn-3kLfYMHI14HUgGu_QJQpzZc,52792
187
197
  claude_mpm/dashboard/static/dist/socket-client.js,sha256=z9HU1HePow8Yvh-7QMcjChwMYsR_p-ZvJVu8HU6d5Xg,29110
188
198
  claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=273Cnf9kGJIaZIUapVTstYTikIOjldKMY9k1rA85lJM,29771
@@ -205,7 +215,7 @@ claude_mpm/dashboard/static/js/connection-manager.js,sha256=nn7x1jmwEnBClcChbFk1
205
215
  claude_mpm/dashboard/static/js/dashboard.js,sha256=SFVWeJTG2w0fzAbVKzunN1NMPx13tJs7RqORVMAfuNI,79401
206
216
  claude_mpm/dashboard/static/js/extension-error-handler.js,sha256=DZHrJ3gbfv4nsjmZpNMj-Sc3GKjVJ5ds8lgoaLRnq5I,6274
207
217
  claude_mpm/dashboard/static/js/socket-client.js,sha256=wC4vH0oP6xIDcSA-Q8cNI2bPW3hg3SAS9TZ75cD6y9Y,56052
208
- claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=358pc-N6lrJ1bfBwgIgt1P16pzwLI0r1dUDV0nrjSLU,59224
218
+ claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=GtETJhpnrp3Zfh2TmRKVA-eq4KHrczHnsCcdYCy_FsA,66824
209
219
  claude_mpm/dashboard/static/js/components/agent-hierarchy.js,sha256=Xihxog_vJrk8VBEkDogV_wbye2GIFWmH71VQ1lETOHk,28243
210
220
  claude_mpm/dashboard/static/js/components/agent-inference.js,sha256=RUVZ_fLOyDkHYjrROen_Pzzay79Bh29eXp_GRIPbIRg,37493
211
221
  claude_mpm/dashboard/static/js/components/build-tracker.js,sha256=iouv35tNhnyx9UKtD7X1eakJkpCnvZVCrAJ_VdzsKUY,11251
@@ -226,6 +236,7 @@ claude_mpm/dashboard/static/js/components/ui-state-manager.js,sha256=EWm0HpPI9TS
226
236
  claude_mpm/dashboard/static/js/components/unified-data-viewer.js,sha256=FKz0H4lVuHwnxXzgNA3bbIGWvQRE2ToY4kHKd-g9HqU,36173
227
237
  claude_mpm/dashboard/static/js/components/working-directory.js,sha256=BRsPYwVnhbhFl0mC0Gvb-Ev1zxAu6yZpZcl1T1aJWWA,33558
228
238
  claude_mpm/dashboard/templates/index.html,sha256=dGb4Z2vcboxvZdNS8zv41mOM5VtHkD6gt7dlvc3tb2U,30667
239
+ claude_mpm/experimental/__init__.py,sha256=R_aclOvWpvSTHWAx9QXyg9OIPVK2dXT5tQJhxLQN11Y,369
229
240
  claude_mpm/experimental/cli_enhancements.py,sha256=rlYOMVlj8vQzuyCkHWQ7TtjcsDeFq3y1Ng5qty2fyY8,11486
230
241
  claude_mpm/generators/__init__.py,sha256=rG8vwF_BjPmeMKvyMXpUA8uJ-7mtW2HTNfalZzgRlNk,153
231
242
  claude_mpm/generators/agent_profile_generator.py,sha256=0C4Cziee6qqXOe1t0J7JO8L5cAudV-xJT_bPw1jS_9k,5695
@@ -242,7 +253,7 @@ claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py,sha256=IZKE3cJok_gb4UGFEt
242
253
  claude_mpm/hooks/claude_hooks/hook_handler_original.py,sha256=AOcGOf2WiA_aaRsaENKBvaj3Vi_UzeL_zaEgN3zxCrk,42964
243
254
  claude_mpm/hooks/claude_hooks/hook_handler_refactored.py,sha256=e8phCM18f-IcovV9_xVNYSV8nndVKdzmFJa-xjKGkq8,12983
244
255
  claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=4lG3TlLVoVfTJipPj1X_ICUlS-KpnkbUp1U3oSq80Bw,2476
245
- claude_mpm/hooks/claude_hooks/installer.py,sha256=A-aospwTpX4TG4KlKVctx7gcmPPi5hnrEdLtkv4lTB4,27275
256
+ claude_mpm/hooks/claude_hooks/installer.py,sha256=EDt7hj4N1ecYOTw2msX6yrPc2JvdcyKvDWK2JYsackY,27747
246
257
  claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=TXLavDM9eEoakPX_n2WtnfXyqGn80N-xgAvcYgvoW8s,8832
247
258
  claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=4RcM54LyYeINf3A_toaSOPuD3oXS6jZtiRstHxgSOao,14990
248
259
  claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2fSZfepN7lI4P1meSQ,7862
@@ -255,6 +266,7 @@ claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=l8fPF5CgmYnj
255
266
  claude_mpm/models/__init__.py,sha256=GADyLAiF-1VVghYKI7Urz3zSnf2sjJUXlOEMuCOs7_g,468
256
267
  claude_mpm/models/agent_definition.py,sha256=LC7EwihixF2Gw4QqOxiCNchsEzzyQJPR6AgPrcTrWTM,6674
257
268
  claude_mpm/models/agent_session.py,sha256=7YU9oklwqEDyH3PTKUQ52yh6N9C9eJX8GJKhxDCpDj0,19988
269
+ claude_mpm/schemas/__init__.py,sha256=2SLpkojJq34KnwPkVxrsVmw_cEI66872i75QBT1C2To,446
258
270
  claude_mpm/scripts/__init__.py,sha256=IffMdVD99Pxyw85yluRa0VDPi4dRQecIWce764pcfZE,553
259
271
  claude_mpm/scripts/claude-hook-handler.sh,sha256=86Ywf4lHpF9wTXmxo3lhFmcFS0wk1G3cSyHA71N8imI,6552
260
272
  claude_mpm/scripts/mcp_server.py,sha256=_i9ydtI7AcO-Eb7gzbIDbcJY4PKRQRYNobB8eMailI4,2259
@@ -262,13 +274,14 @@ claude_mpm/scripts/mcp_wrapper.py,sha256=PvfHJShcsQHGJZD-RN3RnwLOzemAKYZ2kW_QfTk
262
274
  claude_mpm/scripts/mpm_doctor.py,sha256=_D7w1yXPIRavfSnSTRpEUlHYve2CvlDBpH_a-cmN14c,8786
263
275
  claude_mpm/scripts/socketio_daemon.py,sha256=SBkLp5CSdbp3Se2f_HGGdfvjDFZL2_6gDZFX617UxCY,19910
264
276
  claude_mpm/scripts/socketio_daemon_hardened.py,sha256=P0xP1kUuCfmeJ9mdxwXoNOYekz-7utjdX50cI0Vm2eg,32958
277
+ claude_mpm/scripts/socketio_daemon_wrapper.py,sha256=XHpW9lit9oXoOKgiaCXoQMOcoP5xK5B5lSTyTgcNw-A,2965
265
278
  claude_mpm/scripts/socketio_server_manager.py,sha256=42Wm_ZTw1REDPWDpx5jk2W4J6_uAoVqWb65movUaHG0,13713
266
279
  claude_mpm/scripts/start_activity_logging.py,sha256=1G9bFYiBSkpxSRXyKht73nL5gH-4zwukLutWWKAipGg,2869
267
280
  claude_mpm/services/__init__.py,sha256=VMyi1cHDrnNJtABrRC0YKU-j9GcXZnTgxGN8bbI9E2I,7478
268
281
  claude_mpm/services/agent_capabilities_service.py,sha256=uWSI7mTZvlJAYjDnyKUPczRX5uTXN0KgUp0_1J-Qsrs,10759
269
282
  claude_mpm/services/async_session_logger.py,sha256=CPNoX-MMSNchDB3433xofhdxiPJtvp8aAs2Ajd1BnT0,21642
270
283
  claude_mpm/services/claude_session_logger.py,sha256=ZFBj8qFOTRgTLHENvH9_Z14QY0oFhwfNp0BtjLMDlrw,10358
271
- claude_mpm/services/command_deployment_service.py,sha256=BOGn42dzSOkagurO82ED4dXVRku-WlI5DSy3e5AsVgI,5842
284
+ claude_mpm/services/command_deployment_service.py,sha256=FxrHWuhvEaYL6PmjCN7Y0TlGWWIDHkzm_0UwvqI2C3A,6132
272
285
  claude_mpm/services/command_handler_service.py,sha256=LdKnujKUgrCYrvKvmCXaUMk7JGFJsyNeiKnDFdR8ox8,7031
273
286
  claude_mpm/services/event_aggregator.py,sha256=859FzkvOKL558Np42A8diVu8Hpa66AhKyhdQcEbBXoI,20201
274
287
  claude_mpm/services/exceptions.py,sha256=6l5lXX8j_JhZAgFVs7QoETvsEdzEbByvtAIDbr_JeNY,26439
@@ -389,7 +402,7 @@ claude_mpm/services/cli/dashboard_launcher.py,sha256=PCqk9e6E7SHrKmjrXZJ5Ak8yuB7
389
402
  claude_mpm/services/cli/memory_crud_service.py,sha256=ciN9Pl_12iDAqF9zPBWOzu-iXiAzpy3CiIwXRoeB5m0,22645
390
403
  claude_mpm/services/cli/memory_output_formatter.py,sha256=nbf7VsjGvH4e9fLv9c7PzjuO9COZhbK5P2fNZ79055w,24783
391
404
  claude_mpm/services/cli/session_manager.py,sha256=rla_Stbcvt93wa9G9MCMu9UqB3FLGqlPt_eN5lQb3Gg,16599
392
- claude_mpm/services/cli/socketio_manager.py,sha256=pM5ztJjezdN9tr8Ob5mZTgZFg9ARLR_fmmLvxhP7FjE,18173
405
+ claude_mpm/services/cli/socketio_manager.py,sha256=4TVNjrvGnp5KGH8PxoS74Oc5cKvcrJee0GX8Mlsh7MQ,18622
393
406
  claude_mpm/services/cli/startup_checker.py,sha256=efhuvu8ns5G16jcQ0nQZKVddmD2AktUEdlvjNcXjAuk,12232
394
407
  claude_mpm/services/communication/__init__.py,sha256=b4qc7_Rqy4DE9q7BAUlfUZjoYG4uimAyUnE0irPcXyU,560
395
408
  claude_mpm/services/core/__init__.py,sha256=evEayLlBqJvxMZhrhuK6aagXmNrKGSj8Jm9OOxKzqvU,2195
@@ -557,6 +570,7 @@ claude_mpm/services/visualization/__init__.py,sha256=cTtWxRi07rSLXQKVZa7SKZsYfj6
557
570
  claude_mpm/services/visualization/mermaid_generator.py,sha256=6QGgXtMg_N9rKeRn8wYs3IxuWGKdDVAwFMFWKfIw9s4,34277
558
571
  claude_mpm/storage/__init__.py,sha256=DXnmee6iGqC6ctFLW7_Ty1cVCjYDFuCMkwO4EV0i25k,274
559
572
  claude_mpm/storage/state_storage.py,sha256=1fFqkFy63T32JQvhUdVBNhaLQyUlkq4unjeyl0Z6j8I,16865
573
+ claude_mpm/tools/__init__.py,sha256=T3GuCYNAHtjVcKCeivY674PaDm48WX96AriQfTKUknY,347
560
574
  claude_mpm/tools/__main__.py,sha256=MKDuxFuujqD5FZcLTqniDNQ2BI8yg5fDSLU3ElV6m6U,5709
561
575
  claude_mpm/tools/code_tree_analyzer.py,sha256=_qoQcH_gMSeZQsEx2xkGuj-ZKmxabGCtk92-0XFo-Ug,59398
562
576
  claude_mpm/tools/code_tree_builder.py,sha256=gwnsFO5ajs55UzX3SU34OMZBwhjouruQhGdQ3fJHjeA,18126
@@ -582,9 +596,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
582
596
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
583
597
  claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
584
598
  claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
585
- claude_mpm-4.1.14.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
586
- claude_mpm-4.1.14.dist-info/METADATA,sha256=zKwH7YdmTVCBMXRnV5qY9iD5_PN660U4C9_DRFlhO9M,13419
587
- claude_mpm-4.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
588
- claude_mpm-4.1.14.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
589
- claude_mpm-4.1.14.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
590
- claude_mpm-4.1.14.dist-info/RECORD,,
599
+ claude_mpm-4.1.17.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
600
+ claude_mpm-4.1.17.dist-info/METADATA,sha256=zzQnwHUMht-RuqJoErJq2NElHWbE0GmXSFXMFBMKnBY,13777
601
+ claude_mpm-4.1.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
602
+ claude_mpm-4.1.17.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
603
+ claude_mpm-4.1.17.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
604
+ claude_mpm-4.1.17.dist-info/RECORD,,