claude-mpm 4.4.11__py3-none-any.whl → 4.5.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.
@@ -11,8 +11,6 @@ import json
11
11
  import os
12
12
  import shutil
13
13
  import subprocess
14
- import sys
15
- import time
16
14
  from dataclasses import dataclass
17
15
  from enum import Enum
18
16
  from pathlib import Path
@@ -82,7 +80,11 @@ class MCPServiceVerifier:
82
80
  "test_args": ["--help"], # kuzu-memory uses --help not --version
83
81
  "required_args": ["mcp", "serve"], # Modern format
84
82
  "min_version": "1.1.0", # Minimum version for MCP support
85
- "version_check_pattern": ["mcp", "serve", "claude"], # Pattern to check in help
83
+ "version_check_pattern": [
84
+ "mcp",
85
+ "serve",
86
+ "claude",
87
+ ], # Pattern to check in help
86
88
  },
87
89
  }
88
90
 
@@ -93,7 +95,9 @@ class MCPServiceVerifier:
93
95
  self.claude_config_path = Path.home() / ".claude.json"
94
96
  self.diagnostics: Dict[str, ServiceDiagnostic] = {}
95
97
 
96
- def verify_all_services(self, auto_fix: bool = False) -> Dict[str, ServiceDiagnostic]:
98
+ def verify_all_services(
99
+ self, auto_fix: bool = False
100
+ ) -> Dict[str, ServiceDiagnostic]:
97
101
  """
98
102
  Perform comprehensive verification of all MCP services.
99
103
 
@@ -110,7 +114,11 @@ class MCPServiceVerifier:
110
114
  self.diagnostics[service_name] = diagnostic
111
115
 
112
116
  # Attempt auto-fix if requested and fixable
113
- if auto_fix and diagnostic.fix_command and diagnostic.status != ServiceStatus.WORKING:
117
+ if (
118
+ auto_fix
119
+ and diagnostic.fix_command
120
+ and diagnostic.status != ServiceStatus.WORKING
121
+ ):
114
122
  self._attempt_auto_fix(service_name, diagnostic)
115
123
  # Re-verify after fix
116
124
  self.diagnostics[service_name] = self._verify_service(service_name)
@@ -137,7 +145,7 @@ class MCPServiceVerifier:
137
145
  name=service_name,
138
146
  status=ServiceStatus.NOT_INSTALLED,
139
147
  message=f"{service_name} is not installed",
140
- fix_command=f"pipx install {requirements['pipx_package']}"
148
+ fix_command=f"pipx install {requirements['pipx_package']}",
141
149
  )
142
150
 
143
151
  # Step 2: Check executable permissions
@@ -147,7 +155,7 @@ class MCPServiceVerifier:
147
155
  status=ServiceStatus.PERMISSION_DENIED,
148
156
  message=f"Permission denied for {service_name}",
149
157
  installed_path=installed_path,
150
- fix_command=f"chmod +x {installed_path}"
158
+ fix_command=f"chmod +x {installed_path}",
151
159
  )
152
160
 
153
161
  # Step 3: Test basic functionality
@@ -159,10 +167,10 @@ class MCPServiceVerifier:
159
167
  return ServiceDiagnostic(
160
168
  name=service_name,
161
169
  status=ServiceStatus.VERSION_MISMATCH,
162
- message=f"kuzu-memory needs upgrade to v1.1.0+ for MCP support",
170
+ message="kuzu-memory needs upgrade to v1.1.0+ for MCP support",
163
171
  installed_path=installed_path,
164
172
  fix_command="pipx upgrade kuzu-memory",
165
- details=version_info
173
+ details=version_info,
166
174
  )
167
175
 
168
176
  return ServiceDiagnostic(
@@ -170,7 +178,7 @@ class MCPServiceVerifier:
170
178
  status=ServiceStatus.MISCONFIGURED,
171
179
  message=f"{service_name} installed but not functioning",
172
180
  installed_path=installed_path,
173
- fix_command=f"pipx reinstall {requirements['pipx_package']}"
181
+ fix_command=f"pipx reinstall {requirements['pipx_package']}",
174
182
  )
175
183
 
176
184
  # Step 4: Verify configuration in ~/.claude.json
@@ -183,7 +191,7 @@ class MCPServiceVerifier:
183
191
  message=f"{service_name} not configured in ~/.claude.json",
184
192
  installed_path=installed_path,
185
193
  configured_command=None,
186
- fix_command="Run 'claude-mpm configure' to update configuration"
194
+ fix_command="Run 'claude-mpm configure' to update configuration",
187
195
  )
188
196
 
189
197
  if not config_status["correct"]:
@@ -194,11 +202,13 @@ class MCPServiceVerifier:
194
202
  installed_path=installed_path,
195
203
  configured_command=config_status.get("command"),
196
204
  fix_command="Run 'claude-mpm configure' to fix configuration",
197
- details={"config_issue": config_status.get("issue")}
205
+ details={"config_issue": config_status.get("issue")},
198
206
  )
199
207
 
200
208
  # Step 5: Test actual MCP command execution
201
- if not self._test_mcp_command(service_name, config_status.get("command"), config_status.get("args", [])):
209
+ if not self._test_mcp_command(
210
+ service_name, config_status.get("command"), config_status.get("args", [])
211
+ ):
202
212
  return ServiceDiagnostic(
203
213
  name=service_name,
204
214
  status=ServiceStatus.MISCONFIGURED,
@@ -206,7 +216,10 @@ class MCPServiceVerifier:
206
216
  installed_path=installed_path,
207
217
  configured_command=config_status.get("command"),
208
218
  fix_command="Run 'claude-mpm configure' to update command format",
209
- details={"command": config_status.get("command"), "args": config_status.get("args")}
219
+ details={
220
+ "command": config_status.get("command"),
221
+ "args": config_status.get("args"),
222
+ },
210
223
  )
211
224
 
212
225
  # All checks passed!
@@ -215,7 +228,7 @@ class MCPServiceVerifier:
215
228
  status=ServiceStatus.WORKING,
216
229
  message=f"{service_name} is fully operational",
217
230
  installed_path=installed_path,
218
- configured_command=config_status.get("command")
231
+ configured_command=config_status.get("command"),
219
232
  )
220
233
 
221
234
  def _find_service_installation(self, service_name: str) -> Optional[str]:
@@ -235,7 +248,15 @@ class MCPServiceVerifier:
235
248
  Path to the service executable or None
236
249
  """
237
250
  # Check pipx
238
- pipx_path = Path.home() / ".local" / "pipx" / "venvs" / service_name / "bin" / service_name
251
+ pipx_path = (
252
+ Path.home()
253
+ / ".local"
254
+ / "pipx"
255
+ / "venvs"
256
+ / service_name
257
+ / "bin"
258
+ / service_name
259
+ )
239
260
  if pipx_path.exists():
240
261
  return str(pipx_path)
241
262
 
@@ -294,7 +315,7 @@ class MCPServiceVerifier:
294
315
  capture_output=True,
295
316
  text=True,
296
317
  timeout=10,
297
- check=False
318
+ check=False,
298
319
  )
299
320
 
300
321
  output = (result.stdout + result.stderr).lower()
@@ -304,9 +325,15 @@ class MCPServiceVerifier:
304
325
  return True
305
326
 
306
327
  # Some tools return non-zero but still work
307
- if any(word in output for word in ["version", "usage", "help", service_name.lower()]):
328
+ if any(
329
+ word in output
330
+ for word in ["version", "usage", "help", service_name.lower()]
331
+ ):
308
332
  # Make sure it's not an error
309
- if not any(error in output for error in ["error", "not found", "traceback", "no module"]):
333
+ if not any(
334
+ error in output
335
+ for error in ["error", "not found", "traceback", "no module"]
336
+ ):
310
337
  return True
311
338
 
312
339
  # Try pipx run as fallback
@@ -316,13 +343,15 @@ class MCPServiceVerifier:
316
343
  capture_output=True,
317
344
  text=True,
318
345
  timeout=10,
319
- check=False
346
+ check=False,
320
347
  )
321
348
  if result.returncode == 0 or "version" in result.stdout.lower():
322
349
  return True
323
350
 
324
351
  except subprocess.TimeoutExpired:
325
- self.logger.warning(f"Service {service_name} timed out during functionality test")
352
+ self.logger.warning(
353
+ f"Service {service_name} timed out during functionality test"
354
+ )
326
355
  except Exception as e:
327
356
  self.logger.debug(f"Functionality test failed for {service_name}: {e}")
328
357
 
@@ -341,7 +370,7 @@ class MCPServiceVerifier:
341
370
  version_info = {
342
371
  "has_mcp_support": False,
343
372
  "version": "unknown",
344
- "command_format": None
373
+ "command_format": None,
345
374
  }
346
375
 
347
376
  try:
@@ -351,13 +380,15 @@ class MCPServiceVerifier:
351
380
  capture_output=True,
352
381
  text=True,
353
382
  timeout=10,
354
- check=False
383
+ check=False,
355
384
  )
356
385
 
357
386
  help_text = (result.stdout + result.stderr).lower()
358
387
 
359
388
  # Check for modern "mcp serve" command
360
- if "mcp serve" in help_text or ("mcp" in help_text and "serve" in help_text):
389
+ if "mcp serve" in help_text or (
390
+ "mcp" in help_text and "serve" in help_text
391
+ ):
361
392
  version_info["has_mcp_support"] = True
362
393
  version_info["command_format"] = "mcp serve"
363
394
  # Check for legacy "serve" only
@@ -371,7 +402,7 @@ class MCPServiceVerifier:
371
402
  capture_output=True,
372
403
  text=True,
373
404
  timeout=5,
374
- check=False
405
+ check=False,
375
406
  )
376
407
  if version_result.returncode == 0:
377
408
  version_info["version"] = version_result.stdout.strip()
@@ -429,7 +460,7 @@ class MCPServiceVerifier:
429
460
  "correct": False,
430
461
  "command": command,
431
462
  "args": args,
432
- "issue": "Service name missing in pipx run command"
463
+ "issue": "Service name missing in pipx run command",
433
464
  }
434
465
  # Check required args are present
435
466
  for req_arg in required_args:
@@ -439,7 +470,7 @@ class MCPServiceVerifier:
439
470
  "correct": False,
440
471
  "command": command,
441
472
  "args": args,
442
- "issue": f"Missing required argument: {req_arg}"
473
+ "issue": f"Missing required argument: {req_arg}",
443
474
  }
444
475
  elif command == "uvx" and args and args[0] == service_name:
445
476
  # uvx format - similar validation
@@ -450,7 +481,7 @@ class MCPServiceVerifier:
450
481
  "correct": False,
451
482
  "command": command,
452
483
  "args": args,
453
- "issue": f"Missing required argument: {req_arg}"
484
+ "issue": f"Missing required argument: {req_arg}",
454
485
  }
455
486
  else:
456
487
  # Direct execution - command should be a valid path
@@ -462,7 +493,7 @@ class MCPServiceVerifier:
462
493
  "correct": False,
463
494
  "command": command,
464
495
  "args": args,
465
- "issue": f"Command path does not exist: {command}"
496
+ "issue": f"Command path does not exist: {command}",
466
497
  }
467
498
 
468
499
  # Check required args
@@ -473,7 +504,7 @@ class MCPServiceVerifier:
473
504
  "correct": False,
474
505
  "command": command,
475
506
  "args": args,
476
- "issue": f"Missing required argument: {req_arg}"
507
+ "issue": f"Missing required argument: {req_arg}",
477
508
  }
478
509
 
479
510
  # Special validation for kuzu-memory command format
@@ -485,21 +516,23 @@ class MCPServiceVerifier:
485
516
  "correct": False,
486
517
  "command": command,
487
518
  "args": args,
488
- "issue": "Using legacy 'serve' format, should use 'mcp serve'"
519
+ "issue": "Using legacy 'serve' format, should use 'mcp serve'",
489
520
  }
490
521
 
491
522
  return {
492
523
  "configured": True,
493
524
  "correct": True,
494
525
  "command": command,
495
- "args": args
526
+ "args": args,
496
527
  }
497
528
 
498
529
  except Exception as e:
499
530
  self.logger.error(f"Failed to verify configuration: {e}")
500
531
  return {"configured": False, "correct": False, "error": str(e)}
501
532
 
502
- def _test_mcp_command(self, service_name: str, command: str, args: List[str]) -> bool:
533
+ def _test_mcp_command(
534
+ self, service_name: str, command: str, args: List[str]
535
+ ) -> bool:
503
536
  """
504
537
  Test if the configured MCP command actually works.
505
538
 
@@ -525,7 +558,7 @@ class MCPServiceVerifier:
525
558
  text=True,
526
559
  timeout=10,
527
560
  check=False,
528
- cwd=str(self.project_root) # Run in project context
561
+ cwd=str(self.project_root), # Run in project context
529
562
  )
530
563
 
531
564
  # Check for success or expected output
@@ -537,7 +570,9 @@ class MCPServiceVerifier:
537
570
  if service_name == "kuzu-memory" and "mcp" in output and "serve" in output:
538
571
  return True
539
572
  if service_name in output or "usage" in output or "help" in output:
540
- if not any(error in output for error in ["error", "not found", "traceback"]):
573
+ if not any(
574
+ error in output for error in ["error", "not found", "traceback"]
575
+ ):
541
576
  return True
542
577
 
543
578
  except subprocess.TimeoutExpired:
@@ -547,7 +582,9 @@ class MCPServiceVerifier:
547
582
 
548
583
  return False
549
584
 
550
- def _attempt_auto_fix(self, service_name: str, diagnostic: ServiceDiagnostic) -> bool:
585
+ def _attempt_auto_fix(
586
+ self, service_name: str, diagnostic: ServiceDiagnostic
587
+ ) -> bool:
551
588
  """
552
589
  Attempt to automatically fix a service issue.
553
590
 
@@ -561,7 +598,9 @@ class MCPServiceVerifier:
561
598
  if not diagnostic.fix_command:
562
599
  return False
563
600
 
564
- self.logger.info(f"Attempting auto-fix for {service_name}: {diagnostic.fix_command}")
601
+ self.logger.info(
602
+ f"Attempting auto-fix for {service_name}: {diagnostic.fix_command}"
603
+ )
565
604
 
566
605
  try:
567
606
  # Handle different types of fix commands
@@ -569,23 +608,20 @@ class MCPServiceVerifier:
569
608
  # Execute pipx command
570
609
  cmd_parts = diagnostic.fix_command.split()
571
610
  result = subprocess.run(
572
- cmd_parts,
573
- capture_output=True,
574
- text=True,
575
- timeout=120,
576
- check=False
611
+ cmd_parts, capture_output=True, text=True, timeout=120, check=False
577
612
  )
578
613
  return result.returncode == 0
579
614
 
580
- elif diagnostic.fix_command.startswith("chmod "):
615
+ if diagnostic.fix_command.startswith("chmod "):
581
616
  # Fix permissions
582
617
  path = diagnostic.fix_command.replace("chmod +x ", "")
583
618
  os.chmod(path, 0o755)
584
619
  return True
585
620
 
586
- elif "claude-mpm configure" in diagnostic.fix_command:
621
+ if "claude-mpm configure" in diagnostic.fix_command:
587
622
  # Trigger configuration update
588
623
  from .mcp_config_manager import MCPConfigManager
624
+
589
625
  manager = MCPConfigManager()
590
626
  success, _ = manager.ensure_mcp_services_configured()
591
627
  return success
@@ -595,7 +631,9 @@ class MCPServiceVerifier:
595
631
 
596
632
  return False
597
633
 
598
- def print_diagnostics(self, diagnostics: Optional[Dict[str, ServiceDiagnostic]] = None) -> None:
634
+ def print_diagnostics(
635
+ self, diagnostics: Optional[Dict[str, ServiceDiagnostic]] = None
636
+ ) -> None:
599
637
  """
600
638
  Print formatted diagnostic results to console.
601
639
 
@@ -687,4 +725,4 @@ def verify_mcp_services_on_startup() -> Tuple[bool, str]:
687
725
  message = f"MCP service issues detected: {', '.join(issues)}. Run 'claude-mpm verify' for details."
688
726
  return False, message
689
727
 
690
- return True, "All MCP services appear operational"
728
+ return True, "All MCP services appear operational"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.4.11
3
+ Version: 4.5.0
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
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
2
- claude_mpm/VERSION,sha256=wsjLXi1090mCdeXOCOer2wlQEWPDV51wB6VBJvhb3hw,7
2
+ claude_mpm/VERSION,sha256=GVeQ9zr4XyLNMGll5fpfWnM5nFG3QGWqPuHU1XHW7vQ,6
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=cChN3myrAcF3jC-6DvHnBFTEnwlDk-TAsIXPvUZr_yw,5953
@@ -55,13 +55,13 @@ claude_mpm/agents/templates/ticketing.json,sha256=MaLL7xBpZoqghVJ-cQNQOKHoGTkdia
55
55
  claude_mpm/agents/templates/typescript_engineer.json,sha256=G0UabugK7CjtbuM-qraAIOzvprQfveGIeRsur2S9iLs,20860
56
56
  claude_mpm/agents/templates/vercel_ops_agent.json,sha256=UCtq8YWxsw0MYjN078IRmeHyQFH1PG0Iv0xaodtyFN0,26985
57
57
  claude_mpm/agents/templates/version_control.json,sha256=fv4pCG-6DeFjB5cFnlC9otVmHUCl-9cJ9vgkQE0MOcw,14430
58
- claude_mpm/agents/templates/web_qa.json,sha256=NtVuMrpWEAeLzewgbBcdpYRlMk5TJMq4UPSODEsnXig,17887
58
+ claude_mpm/agents/templates/web_qa.json,sha256=axmeGawdgADXDaM56kBkRf7VRMmzUsDtXRnFY1VZuoc,26871
59
59
  claude_mpm/agents/templates/web_ui.json,sha256=tqdNRMP8EgBL-yNSQ06WxMTyAziSbWVVqjqm6rLzmdw,34852
60
60
  claude_mpm/agents/templates/.claude-mpm/memories/README.md,sha256=vEiG7cPjHRZfwX2IQB-i30ArO8zJyuxMJzHh8hnVZ6A,483
61
61
  claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md,sha256=KMZSJrQi-wHOwfl2C0m3A4PpC4QuBtDolAtVybGahKc,77
62
62
  claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md,sha256=UBm4BycXtdaa-_l1VCh0alTGGOUSsnCbpKwbFuI-mUY,2219
63
63
  claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md,sha256=oPvFSYFnmJ4TkbTe4AZnNHWaJMJ-xqZP2WM6scUKQKo,13089
64
- claude_mpm/cli/__init__.py,sha256=TTtZNHx70miCIk-6ekKZiawOA9a0q1-HmVDecljZ3ZA,19317
64
+ claude_mpm/cli/__init__.py,sha256=uGXnXLbfEVq-_uDCemVzVcl5W5498eQ_FlifPo1eA0g,20396
65
65
  claude_mpm/cli/__main__.py,sha256=WnVGBwe10InxuZjJRFdwuMF6Gh16aXox6zFgxr0sRXk,847
66
66
  claude_mpm/cli/parser.py,sha256=Vqx9n-6Xo1uNhXR4rThmgWpZXTr0nOtkgDf3oMS9b0g,5855
67
67
  claude_mpm/cli/startup_logging.py,sha256=xtgAmTirhpk2B-dIS9YKcesPprXTukfu24gJSmGt8y8,29357
@@ -89,7 +89,7 @@ claude_mpm/cli/commands/mcp_external_commands.py,sha256=iggHpJYRTuGZjksqe4-isdq_
89
89
  claude_mpm/cli/commands/mcp_install_commands.py,sha256=ToQXNZLl39U31N9F-TERDcO2ACM8tjPqpSQLPDUiWb4,12799
90
90
  claude_mpm/cli/commands/mcp_pipx_config.py,sha256=sE62VD6Q1CcO2k1nlbIhHMfAJFQTZfIzCss99LmfNqA,6088
91
91
  claude_mpm/cli/commands/mcp_server_commands.py,sha256=-1G_2Y5ScTvzDd-kY8fTAao2H6FH7DnsLimleF1rVqQ,6197
92
- claude_mpm/cli/commands/mcp_setup_external.py,sha256=QA4sIOmmog_ApQ4dUTV8NbTrYW2pIzmpN6hy648G_OQ,33605
92
+ claude_mpm/cli/commands/mcp_setup_external.py,sha256=GTGdSwiCKNHsHX9aWeM8H8bcn3GETxzcgqiUG_83iao,33567
93
93
  claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
94
94
  claude_mpm/cli/commands/memory.py,sha256=Yzfs3_oiKciv3sfOoDm2lJL4M9idG7ARV3-sNw1ge_g,26186
95
95
  claude_mpm/cli/commands/monitor.py,sha256=S7kb2TnTmvX_T6iw5E1S5jlYNhbbBVFLCTlX5MGSLP8,9583
@@ -99,7 +99,7 @@ claude_mpm/cli/commands/run.py,sha256=_MpX-Eh4OVaUuS_cX8UZFGPbtMwZq0kFfstI6V4VA3
99
99
  claude_mpm/cli/commands/search.py,sha256=_0qbUnop8v758MHsB0fAop8FVxwygD59tec_-iN7pLE,9806
100
100
  claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
101
101
  claude_mpm/cli/commands/uninstall.py,sha256=KGlVG6veEs1efLVjrZ3wSty7e1zVR9wpt-VXQA1RzWw,5945
102
- claude_mpm/cli/commands/verify.py,sha256=KhtykUj5hodz0vUQSMCFxe3rGQdqerMVH6J8WlCIWX4,3694
102
+ claude_mpm/cli/commands/verify.py,sha256=wmu2UYINK15q2e34TdlTyamvtLDE7r3Oj_XT9zpT5Kk,3687
103
103
  claude_mpm/cli/interactive/__init__.py,sha256=vQqUCgPFvLYA1Vkq-5pnY7Ow3A-IgdM0SByfNL1ZLTk,433
104
104
  claude_mpm/cli/interactive/agent_wizard.py,sha256=PMSG6F3Jngb0Gm4nBA6X2PK9Iuuj-AuJd35-g4iE4tE,36202
105
105
  claude_mpm/cli/parsers/__init__.py,sha256=f0Fm1DDXorlVOZPLxUpjC-GIvLh01G-FZOK7TEV1L3I,1005
@@ -411,8 +411,8 @@ claude_mpm/services/event_aggregator.py,sha256=DDcehIZVpiEDzs9o18gDZyvjMBHCq2H8H
411
411
  claude_mpm/services/exceptions.py,sha256=5lVZETr_6-xk0ItH7BTfYUiX5RlckS1e8ah_UalYG9c,26475
412
412
  claude_mpm/services/hook_installer_service.py,sha256=z3kKeriEY1Y9bFesuGlHBxhCtc0Wzd3Zv02k2_rEyGo,19727
413
413
  claude_mpm/services/hook_service.py,sha256=rZnMn_4qxX5g9KAn0IQdoG50WmySNfsTmfG0XHuRHXk,15737
414
- claude_mpm/services/mcp_config_manager.py,sha256=Rsbk9Ygq7tJWqZI67VnYWSW30_9ptmLjyX7xf-rJcho,50465
415
- claude_mpm/services/mcp_service_verifier.py,sha256=ngiegCngX18AFehfyJdvqQAvscoIBvFN_DeOoGTjxj0,25164
414
+ claude_mpm/services/mcp_config_manager.py,sha256=f5vGJthmFrNE7EAF1nCoStvMaD93E4BuiBaa-gildIw,52634
415
+ claude_mpm/services/mcp_service_verifier.py,sha256=9esG7cCkN0KJ_KLwqgwXW0A8oulHqg_RTuElOzXJcB4,25663
416
416
  claude_mpm/services/memory_hook_service.py,sha256=pRlTClkRcw30Jhwbha4BC8IMdzKZxF8aWqf52JlntgY,11600
417
417
  claude_mpm/services/monitor_build_service.py,sha256=8gWR9CaqgXdG6-OjOFXGpk28GCcJTlHhojkUYnMCebI,12160
418
418
  claude_mpm/services/port_manager.py,sha256=CYqLh8Ss_-aoYEXV3G6uZkGexpsRK_XTBL0bV4P3tSI,22838
@@ -553,14 +553,14 @@ claude_mpm/services/diagnostics/models.py,sha256=nqOQLllZyZmw3Zt5eFJfE1Al7C3Vrn3
553
553
  claude_mpm/services/diagnostics/checks/__init__.py,sha256=aNdOeJHZVIpEqqzr6xWUOiyZCIrN4vckfRxkW70cqeo,987
554
554
  claude_mpm/services/diagnostics/checks/agent_check.py,sha256=JZwqu4o4Q46uk2jKKU-AS0Y_n4AjVcmq2XR61t18UKE,14022
555
555
  claude_mpm/services/diagnostics/checks/base_check.py,sha256=FdCPk4z5wdBVR5Y4bikwVY4P4BIIXBkYCmhr-qu1ChM,1574
556
- claude_mpm/services/diagnostics/checks/claude_code_check.py,sha256=NoOwyP-UQT4dmqJARmtXj-LJThGi6X0oP0e3cckNzik,10413
556
+ claude_mpm/services/diagnostics/checks/claude_code_check.py,sha256=9PoNIVXLfFDbxW-EgB1DfYtnf3n6Lz3tyqEVTnQaorA,10417
557
557
  claude_mpm/services/diagnostics/checks/common_issues_check.py,sha256=Yi73_1yGNcQUCF8Jwba6xHvDHr4QbklWEbzidby-o0o,13353
558
558
  claude_mpm/services/diagnostics/checks/configuration_check.py,sha256=mgqFsyr4W73gFGMF7kz5u4lloUMhTty5BHuErf0I0Uo,11176
559
559
  claude_mpm/services/diagnostics/checks/filesystem_check.py,sha256=V5HoHDYlSuoK2lFv946Jhd81LrA0om71NWugnRxFvSE,8296
560
560
  claude_mpm/services/diagnostics/checks/installation_check.py,sha256=WoTt15R8Wg-6k2JZFAtmffFuih1AIyCX71QOHEFH-Ro,19562
561
561
  claude_mpm/services/diagnostics/checks/instructions_check.py,sha256=VbgBorl0RpFvxKQ_SC1gibTmGSiXaKSp-vVZt6hbH1g,16290
562
562
  claude_mpm/services/diagnostics/checks/mcp_check.py,sha256=SftuhP70abopyMD8GlLA_K3XHEYnBAeITggUQI0cYP4,12173
563
- claude_mpm/services/diagnostics/checks/mcp_services_check.py,sha256=ESE5ITzNjkCWWKMQdQoTBDLK8pZQ9MJY4x-E_nVuRww,42278
563
+ claude_mpm/services/diagnostics/checks/mcp_services_check.py,sha256=Miobsgnfgoz5WWkWfelrSVGgeUmMppCyZt4P5g9mQ7E,43832
564
564
  claude_mpm/services/diagnostics/checks/monitor_check.py,sha256=NUx5G1yjHWlukZmwhUz4o8STRWgsQEx01YjIMReNC0A,10096
565
565
  claude_mpm/services/diagnostics/checks/startup_log_check.py,sha256=DrXdml2rHvmhFBdb_sntE3xmwaP_DZIKjdVbCn8Dy7E,12258
566
566
  claude_mpm/services/event_bus/__init__.py,sha256=ETCo4a6puIeyVWAv55uCDjjhzNyUwbVAHEcAVkVapx8,688
@@ -773,9 +773,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
773
773
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
774
774
  claude_mpm/validation/agent_validator.py,sha256=Nm2WmcbCb0EwOG4nFcikc3wVdiiAfjGBBI3YoR6ainQ,20915
775
775
  claude_mpm/validation/frontmatter_validator.py,sha256=IDBOCBweO6umydSnUJjBh81sKk3cy9hRFYm61DCiXbI,7020
776
- claude_mpm-4.4.11.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
777
- claude_mpm-4.4.11.dist-info/METADATA,sha256=GfGvZ-4PutVAH_2DAeQ7S5E-KubU1gqXSwbqnB2yh2Y,17518
778
- claude_mpm-4.4.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
779
- claude_mpm-4.4.11.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
780
- claude_mpm-4.4.11.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
781
- claude_mpm-4.4.11.dist-info/RECORD,,
776
+ claude_mpm-4.5.0.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
777
+ claude_mpm-4.5.0.dist-info/METADATA,sha256=2zx2aJ1q-umXK6GqQyURkVX_xs5BbnQK84QNO83nu8w,17517
778
+ claude_mpm-4.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
779
+ claude_mpm-4.5.0.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
780
+ claude_mpm-4.5.0.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
781
+ claude_mpm-4.5.0.dist-info/RECORD,,