claude-mpm 4.15.0__py3-none-any.whl → 4.15.1__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.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/OUTPUT_STYLE.md +48 -3
- claude_mpm/services/diagnostics/__init__.py +2 -2
- claude_mpm/services/diagnostics/checks/agent_check.py +25 -24
- claude_mpm/services/diagnostics/checks/claude_code_check.py +24 -23
- claude_mpm/services/diagnostics/checks/common_issues_check.py +25 -24
- claude_mpm/services/diagnostics/checks/configuration_check.py +24 -23
- claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
- claude_mpm/services/diagnostics/checks/installation_check.py +28 -28
- claude_mpm/services/diagnostics/checks/instructions_check.py +20 -19
- claude_mpm/services/diagnostics/checks/mcp_check.py +31 -31
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +36 -31
- claude_mpm/services/diagnostics/checks/monitor_check.py +23 -22
- claude_mpm/services/diagnostics/checks/startup_log_check.py +9 -8
- claude_mpm/services/diagnostics/diagnostic_runner.py +6 -5
- claude_mpm/services/diagnostics/doctor_reporter.py +28 -25
- claude_mpm/services/diagnostics/models.py +19 -24
- {claude_mpm-4.15.0.dist-info → claude_mpm-4.15.1.dist-info}/METADATA +1 -1
- {claude_mpm-4.15.0.dist-info → claude_mpm-4.15.1.dist-info}/RECORD +23 -23
- {claude_mpm-4.15.0.dist-info → claude_mpm-4.15.1.dist-info}/WHEEL +0 -0
- {claude_mpm-4.15.0.dist-info → claude_mpm-4.15.1.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.15.0.dist-info → claude_mpm-4.15.1.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.15.0.dist-info → claude_mpm-4.15.1.dist-info}/top_level.txt +0 -0
|
@@ -9,6 +9,7 @@ import asyncio
|
|
|
9
9
|
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
10
10
|
from typing import List, Type
|
|
11
11
|
|
|
12
|
+
from claude_mpm.core.enums import ValidationSeverity
|
|
12
13
|
from claude_mpm.core.logging_utils import get_logger
|
|
13
14
|
|
|
14
15
|
from .checks import (
|
|
@@ -25,7 +26,7 @@ from .checks import (
|
|
|
25
26
|
MonitorCheck,
|
|
26
27
|
StartupLogCheck,
|
|
27
28
|
)
|
|
28
|
-
from .models import DiagnosticResult,
|
|
29
|
+
from .models import DiagnosticResult, DiagnosticSummary
|
|
29
30
|
|
|
30
31
|
logger = get_logger(__name__)
|
|
31
32
|
|
|
@@ -92,7 +93,7 @@ class DiagnosticRunner:
|
|
|
92
93
|
self.logger.error(f"Check {check_class.__name__} failed: {e}")
|
|
93
94
|
error_result = DiagnosticResult(
|
|
94
95
|
category=check_class.__name__.replace("Check", ""),
|
|
95
|
-
status=
|
|
96
|
+
status=ValidationSeverity.ERROR,
|
|
96
97
|
message=f"Check failed: {e!s}",
|
|
97
98
|
details={"error": str(e)},
|
|
98
99
|
)
|
|
@@ -167,7 +168,7 @@ class DiagnosticRunner:
|
|
|
167
168
|
results.append(
|
|
168
169
|
DiagnosticResult(
|
|
169
170
|
category=check_class.__name__.replace("Check", ""),
|
|
170
|
-
status=
|
|
171
|
+
status=ValidationSeverity.ERROR,
|
|
171
172
|
message=f"Check initialization failed: {e!s}",
|
|
172
173
|
details={"error": str(e)},
|
|
173
174
|
)
|
|
@@ -183,7 +184,7 @@ class DiagnosticRunner:
|
|
|
183
184
|
results.append(
|
|
184
185
|
DiagnosticResult(
|
|
185
186
|
category=check_name.replace("Check", ""),
|
|
186
|
-
status=
|
|
187
|
+
status=ValidationSeverity.ERROR,
|
|
187
188
|
message=f"Check execution failed: {e!s}",
|
|
188
189
|
details={"error": str(e)},
|
|
189
190
|
)
|
|
@@ -238,7 +239,7 @@ class DiagnosticRunner:
|
|
|
238
239
|
self.logger.error(f"Check {name} failed: {e}")
|
|
239
240
|
error_result = DiagnosticResult(
|
|
240
241
|
category=check_class.__name__.replace("Check", ""),
|
|
241
|
-
status=
|
|
242
|
+
status=ValidationSeverity.ERROR,
|
|
242
243
|
message=f"Check failed: {e!s}",
|
|
243
244
|
details={"error": str(e)},
|
|
244
245
|
)
|
|
@@ -8,7 +8,9 @@ formatting for terminal display and JSON export.
|
|
|
8
8
|
import json
|
|
9
9
|
import sys
|
|
10
10
|
|
|
11
|
-
from .
|
|
11
|
+
from claude_mpm.core.enums import OperationResult, ValidationSeverity
|
|
12
|
+
|
|
13
|
+
from .models import DiagnosticResult, DiagnosticSummary
|
|
12
14
|
|
|
13
15
|
|
|
14
16
|
class DoctorReporter:
|
|
@@ -20,10 +22,10 @@ class DoctorReporter:
|
|
|
20
22
|
|
|
21
23
|
# Status symbols and colors
|
|
22
24
|
STATUS_SYMBOLS = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
OperationResult.SUCCESS: "✅",
|
|
26
|
+
ValidationSeverity.WARNING: "⚠️ ",
|
|
27
|
+
ValidationSeverity.ERROR: "❌",
|
|
28
|
+
OperationResult.SKIPPED: "⏭️ ",
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
# ANSI color codes
|
|
@@ -94,11 +96,11 @@ class DoctorReporter:
|
|
|
94
96
|
# Main result line
|
|
95
97
|
line = f"{indent_str}{symbol} {result.category}: "
|
|
96
98
|
|
|
97
|
-
if result.status ==
|
|
99
|
+
if result.status == OperationResult.SUCCESS:
|
|
98
100
|
line += self._color("OK", color)
|
|
99
|
-
elif result.status ==
|
|
101
|
+
elif result.status == ValidationSeverity.WARNING:
|
|
100
102
|
line += self._color("Warning", color)
|
|
101
|
-
elif result.status ==
|
|
103
|
+
elif result.status == ValidationSeverity.ERROR:
|
|
102
104
|
line += self._color("Error", color)
|
|
103
105
|
else:
|
|
104
106
|
line += self._color("Skipped", color)
|
|
@@ -163,9 +165,9 @@ class DoctorReporter:
|
|
|
163
165
|
|
|
164
166
|
# Overall health
|
|
165
167
|
overall = summary.overall_status
|
|
166
|
-
if overall ==
|
|
168
|
+
if overall == OperationResult.SUCCESS:
|
|
167
169
|
print(self._color("\n✅ System is healthy!", "green"))
|
|
168
|
-
elif overall ==
|
|
170
|
+
elif overall == ValidationSeverity.WARNING:
|
|
169
171
|
print(
|
|
170
172
|
self._color(
|
|
171
173
|
"\n⚠️ System has minor issues that should be addressed.", "yellow"
|
|
@@ -283,10 +285,10 @@ class DoctorReporter:
|
|
|
283
285
|
|
|
284
286
|
# Overall Health Status
|
|
285
287
|
overall = summary.overall_status
|
|
286
|
-
if overall ==
|
|
288
|
+
if overall == OperationResult.SUCCESS:
|
|
287
289
|
print("### 🎉 Overall Status: **Healthy**")
|
|
288
290
|
print("Your Claude MPM installation is functioning properly.\n")
|
|
289
|
-
elif overall ==
|
|
291
|
+
elif overall == ValidationSeverity.WARNING:
|
|
290
292
|
print("### ⚠️ Overall Status: **Needs Attention**")
|
|
291
293
|
print("Your installation has minor issues that should be addressed.\n")
|
|
292
294
|
else:
|
|
@@ -344,13 +346,13 @@ class DoctorReporter:
|
|
|
344
346
|
reset_code = self.COLORS["reset"]
|
|
345
347
|
return f"{color_code}{text}{reset_code}"
|
|
346
348
|
|
|
347
|
-
def _get_status_color(self, status
|
|
349
|
+
def _get_status_color(self, status) -> str:
|
|
348
350
|
"""Get color for a status."""
|
|
349
351
|
color_map = {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
352
|
+
OperationResult.SUCCESS: "green",
|
|
353
|
+
ValidationSeverity.WARNING: "yellow",
|
|
354
|
+
ValidationSeverity.ERROR: "red",
|
|
355
|
+
OperationResult.SKIPPED: "gray",
|
|
354
356
|
}
|
|
355
357
|
return color_map.get(status, "reset")
|
|
356
358
|
|
|
@@ -475,12 +477,13 @@ class DoctorReporter:
|
|
|
475
477
|
print(f"### {symbol} {result.category}\n")
|
|
476
478
|
|
|
477
479
|
# Status badge
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
}
|
|
480
|
+
status_badge_map = {
|
|
481
|
+
OperationResult.SUCCESS: "",
|
|
482
|
+
ValidationSeverity.WARNING: "",
|
|
483
|
+
ValidationSeverity.ERROR: "",
|
|
484
|
+
OperationResult.SKIPPED: "",
|
|
485
|
+
}
|
|
486
|
+
status_badge = status_badge_map.get(result.status, "")
|
|
484
487
|
|
|
485
488
|
print(f"{status_badge}")
|
|
486
489
|
print(f"\n**Message:** {result.message}\n")
|
|
@@ -513,7 +516,7 @@ class DoctorReporter:
|
|
|
513
516
|
for result in summary.results:
|
|
514
517
|
if (
|
|
515
518
|
result.category == "Installation"
|
|
516
|
-
and result.status !=
|
|
519
|
+
and result.status != OperationResult.SUCCESS
|
|
517
520
|
):
|
|
518
521
|
if "pipx" not in str(result.details.get("installation_method", "")):
|
|
519
522
|
recommendations.append(
|
|
@@ -532,7 +535,7 @@ class DoctorReporter:
|
|
|
532
535
|
|
|
533
536
|
if (
|
|
534
537
|
result.category == "Claude Code"
|
|
535
|
-
and result.status ==
|
|
538
|
+
and result.status == ValidationSeverity.WARNING
|
|
536
539
|
):
|
|
537
540
|
recommendations.append(
|
|
538
541
|
"Update Claude Code (CLI) to the latest version for best compatibility"
|
|
@@ -6,17 +6,9 @@ consistency across all checks and reporting.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from dataclasses import dataclass, field
|
|
9
|
-
from
|
|
10
|
-
from typing import Any, Dict, List, Optional
|
|
9
|
+
from typing import Any, Dict, List, Optional, Union
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
class DiagnosticStatus(Enum):
|
|
14
|
-
"""Status levels for diagnostic results."""
|
|
15
|
-
|
|
16
|
-
OK = "ok"
|
|
17
|
-
WARNING = "warning"
|
|
18
|
-
ERROR = "error"
|
|
19
|
-
SKIPPED = "skipped"
|
|
11
|
+
from ...core.enums import OperationResult, ValidationSeverity
|
|
20
12
|
|
|
21
13
|
|
|
22
14
|
@dataclass
|
|
@@ -25,10 +17,13 @@ class DiagnosticResult:
|
|
|
25
17
|
|
|
26
18
|
WHY: Standardized result format ensures consistent reporting
|
|
27
19
|
and makes it easy to aggregate and display results.
|
|
20
|
+
|
|
21
|
+
Note: status uses Union[OperationResult, ValidationSeverity] to support both
|
|
22
|
+
operation results (SUCCESS, SKIPPED) and validation results (WARNING, ERROR).
|
|
28
23
|
"""
|
|
29
24
|
|
|
30
25
|
category: str # e.g., "Installation", "Agents", "MCP Server"
|
|
31
|
-
status:
|
|
26
|
+
status: Union[OperationResult, ValidationSeverity]
|
|
32
27
|
message: str
|
|
33
28
|
details: Dict[str, Any] = field(default_factory=dict)
|
|
34
29
|
fix_command: Optional[str] = None
|
|
@@ -50,16 +45,16 @@ class DiagnosticResult:
|
|
|
50
45
|
@property
|
|
51
46
|
def has_issues(self) -> bool:
|
|
52
47
|
"""Check if this result indicates any issues."""
|
|
53
|
-
return self.status in (
|
|
48
|
+
return self.status in (ValidationSeverity.WARNING, ValidationSeverity.ERROR)
|
|
54
49
|
|
|
55
50
|
@property
|
|
56
51
|
def severity_level(self) -> int:
|
|
57
52
|
"""Get numeric severity level for sorting."""
|
|
58
53
|
severity_map = {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
OperationResult.SUCCESS: 0,
|
|
55
|
+
OperationResult.SKIPPED: 1,
|
|
56
|
+
ValidationSeverity.WARNING: 2,
|
|
57
|
+
ValidationSeverity.ERROR: 3,
|
|
63
58
|
}
|
|
64
59
|
return severity_map.get(self.status, 0)
|
|
65
60
|
|
|
@@ -84,13 +79,13 @@ class DiagnosticSummary:
|
|
|
84
79
|
self.results.append(result)
|
|
85
80
|
self.total_checks += 1
|
|
86
81
|
|
|
87
|
-
if result.status ==
|
|
82
|
+
if result.status == OperationResult.SUCCESS:
|
|
88
83
|
self.ok_count += 1
|
|
89
|
-
elif result.status ==
|
|
84
|
+
elif result.status == ValidationSeverity.WARNING:
|
|
90
85
|
self.warning_count += 1
|
|
91
|
-
elif result.status ==
|
|
86
|
+
elif result.status == ValidationSeverity.ERROR:
|
|
92
87
|
self.error_count += 1
|
|
93
|
-
elif result.status ==
|
|
88
|
+
elif result.status == OperationResult.SKIPPED:
|
|
94
89
|
self.skipped_count += 1
|
|
95
90
|
|
|
96
91
|
@property
|
|
@@ -99,13 +94,13 @@ class DiagnosticSummary:
|
|
|
99
94
|
return self.warning_count > 0 or self.error_count > 0
|
|
100
95
|
|
|
101
96
|
@property
|
|
102
|
-
def overall_status(self) ->
|
|
97
|
+
def overall_status(self) -> Union[OperationResult, ValidationSeverity]:
|
|
103
98
|
"""Get overall system status."""
|
|
104
99
|
if self.error_count > 0:
|
|
105
|
-
return
|
|
100
|
+
return ValidationSeverity.ERROR
|
|
106
101
|
if self.warning_count > 0:
|
|
107
|
-
return
|
|
108
|
-
return
|
|
102
|
+
return ValidationSeverity.WARNING
|
|
103
|
+
return OperationResult.SUCCESS
|
|
109
104
|
|
|
110
105
|
def to_dict(self) -> Dict[str, Any]:
|
|
111
106
|
"""Convert to dictionary for JSON serialization."""
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
|
|
2
|
-
claude_mpm/VERSION,sha256=
|
|
2
|
+
claude_mpm/VERSION,sha256=hLNWmxd9ACKD8c8eLltduSkDQHWuxnTPVjeCR5LSfxM,7
|
|
3
3
|
claude_mpm/__init__.py,sha256=UCw6j9e_tZQ3kJtTqmdfNv7MHyw9nD1jkj80WurwM2g,2064
|
|
4
4
|
claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
|
|
5
5
|
claude_mpm/constants.py,sha256=sLjJF6Kw7H4V9WWeaEYltM-77TgXqzEMX5vx4ukM5-0,5977
|
|
@@ -15,7 +15,7 @@ claude_mpm/agents/BASE_QA.md,sha256=YtaYJSjWDfmFS3B6PtNvog4L54_w5K1rvpV0yqLhP20,
|
|
|
15
15
|
claude_mpm/agents/BASE_RESEARCH.md,sha256=2DZhDd5XxWWtsyNTBIwvtNWBu1JpFy5R5SAZDHh0otU,1690
|
|
16
16
|
claude_mpm/agents/INSTRUCTIONS_OLD_DEPRECATED.md,sha256=zQZhrhVq9NLCtSjVX-aC0xcgueemSuPhKyv0SjEOyIQ,25852
|
|
17
17
|
claude_mpm/agents/MEMORY.md,sha256=KbRwY_RYdOvTvFC2DD-ATfwjHkQWJ5PIjlGws_7RmjI,3307
|
|
18
|
-
claude_mpm/agents/OUTPUT_STYLE.md,sha256=
|
|
18
|
+
claude_mpm/agents/OUTPUT_STYLE.md,sha256=fF9ydZuOgewDUNmaqJR_O7QV-feKiJ9bgPgk0NNtg_w,14270
|
|
19
19
|
claude_mpm/agents/PM_INSTRUCTIONS.md,sha256=_E-J-4USZcADyJZ2280gX-AO8mLgPmiO2Cyf-Klt-7k,37024
|
|
20
20
|
claude_mpm/agents/WORKFLOW.md,sha256=vJ9iXCVqAaeM_yVlXxbcP3bsL210-1BI3ZAanvWv4hI,9085
|
|
21
21
|
claude_mpm/agents/__init__.py,sha256=jRFxvV_DIZ-NdENa-703Xu3YpwvlQj6yv-mQ6FgmldM,3220
|
|
@@ -610,23 +610,23 @@ claude_mpm/services/core/models/process.py,sha256=bqrXUgjDZ8ut3uj6tUTyHTSTJhuxtL
|
|
|
610
610
|
claude_mpm/services/core/models/restart.py,sha256=-fSa5LIhnkCKGsPIttT2tB3Gv_n9giwVz_FY-vJxYrE,10032
|
|
611
611
|
claude_mpm/services/core/models/stability.py,sha256=CFCEXY3VkZNTdvYHinLgQTSJa7kz2apZE-J9IPykqLU,8615
|
|
612
612
|
claude_mpm/services/core/models/toolchain.py,sha256=wkEnZgF944wq1SMqqmQVa91TtSKeFiZgO_Lg1wrO7KM,12167
|
|
613
|
-
claude_mpm/services/diagnostics/__init__.py,sha256=
|
|
614
|
-
claude_mpm/services/diagnostics/diagnostic_runner.py,sha256=
|
|
615
|
-
claude_mpm/services/diagnostics/doctor_reporter.py,sha256=
|
|
616
|
-
claude_mpm/services/diagnostics/models.py,sha256=
|
|
613
|
+
claude_mpm/services/diagnostics/__init__.py,sha256=rBaPAP1C6pXfaK3_61PZUegnIs58f8Gm0fgWvvkD6o8,576
|
|
614
|
+
claude_mpm/services/diagnostics/diagnostic_runner.py,sha256=j4iYVeFJSm4AKwkwqj1w8QK73qJ6TedHoLU2mwAWdBs,9513
|
|
615
|
+
claude_mpm/services/diagnostics/doctor_reporter.py,sha256=UQqlkehrRpeEhF-xqgaE_ChVaCiFYN-Xhom8X0A3cYQ,19702
|
|
616
|
+
claude_mpm/services/diagnostics/models.py,sha256=Sb8qijm0wBD1ovKRYrrAM7a3Ki9oV50NS1Ax-nvLSac,3958
|
|
617
617
|
claude_mpm/services/diagnostics/checks/__init__.py,sha256=aNdOeJHZVIpEqqzr6xWUOiyZCIrN4vckfRxkW70cqeo,987
|
|
618
|
-
claude_mpm/services/diagnostics/checks/agent_check.py,sha256=
|
|
618
|
+
claude_mpm/services/diagnostics/checks/agent_check.py,sha256=ye2RrPDSs-P-sedtVo7MxVXH3kuD-pA9wZ4OIuzeAyY,14052
|
|
619
619
|
claude_mpm/services/diagnostics/checks/base_check.py,sha256=FdCPk4z5wdBVR5Y4bikwVY4P4BIIXBkYCmhr-qu1ChM,1574
|
|
620
|
-
claude_mpm/services/diagnostics/checks/claude_code_check.py,sha256=
|
|
621
|
-
claude_mpm/services/diagnostics/checks/common_issues_check.py,sha256=
|
|
622
|
-
claude_mpm/services/diagnostics/checks/configuration_check.py,sha256=
|
|
623
|
-
claude_mpm/services/diagnostics/checks/filesystem_check.py,sha256=
|
|
624
|
-
claude_mpm/services/diagnostics/checks/installation_check.py,sha256=
|
|
625
|
-
claude_mpm/services/diagnostics/checks/instructions_check.py,sha256=
|
|
626
|
-
claude_mpm/services/diagnostics/checks/mcp_check.py,sha256=
|
|
627
|
-
claude_mpm/services/diagnostics/checks/mcp_services_check.py,sha256=
|
|
628
|
-
claude_mpm/services/diagnostics/checks/monitor_check.py,sha256=
|
|
629
|
-
claude_mpm/services/diagnostics/checks/startup_log_check.py,sha256=
|
|
620
|
+
claude_mpm/services/diagnostics/checks/claude_code_check.py,sha256=gXc8ASRiSFZN4nBG2gP7wNp_DSnBNYtXxip80o0aMvk,10526
|
|
621
|
+
claude_mpm/services/diagnostics/checks/common_issues_check.py,sha256=9ZgnursqBaX-JX7La7qdOCF98UmIyq-nCg7--me4D_A,13465
|
|
622
|
+
claude_mpm/services/diagnostics/checks/configuration_check.py,sha256=nQv0vWNUs_iRl6m1IMNyWK4SoS-V4PprKe_4n2EC3qg,11285
|
|
623
|
+
claude_mpm/services/diagnostics/checks/filesystem_check.py,sha256=oG6BWV7NBfseQ0lK6ENahLW8fejz-vBwr3iuut7sEv4,8381
|
|
624
|
+
claude_mpm/services/diagnostics/checks/installation_check.py,sha256=aSkRSkJML3BjaI_AUEdELR3AokIz_D7fE4ibQnTkgb0,19698
|
|
625
|
+
claude_mpm/services/diagnostics/checks/instructions_check.py,sha256=rlJAtFORtOOSoCan1MxdgSMWVq43OuRNkf-iesgwm9Q,16387
|
|
626
|
+
claude_mpm/services/diagnostics/checks/mcp_check.py,sha256=HVkY_G9UCROZKhQFJXIJBvI9A1sDT1wLOj7l96UTVyQ,12728
|
|
627
|
+
claude_mpm/services/diagnostics/checks/mcp_services_check.py,sha256=j87Sq7FJXZbCjbY0KB6MJzS5hbSUef6i9YAqHPOIsNY,43981
|
|
628
|
+
claude_mpm/services/diagnostics/checks/monitor_check.py,sha256=DG57wv2orB1NH2_cbaxq0-kN0aknKPNSCy5Y7OSRq7Y,10200
|
|
629
|
+
claude_mpm/services/diagnostics/checks/startup_log_check.py,sha256=9qKaVSvpV-pY6Hqf5ywZv-jSFrrYQ7_tWePR5DawfV0,12380
|
|
630
630
|
claude_mpm/services/event_bus/__init__.py,sha256=ETCo4a6puIeyVWAv55uCDjjhzNyUwbVAHEcAVkVapx8,688
|
|
631
631
|
claude_mpm/services/event_bus/config.py,sha256=MJdOBK3XgLpW66N81tetThslnKsFIWYtbqRamyTDxlU,4943
|
|
632
632
|
claude_mpm/services/event_bus/direct_relay.py,sha256=35kwO6S0gOeKGBq-dZ4aUH3NWno_evKfTyHJcMIzS7A,13623
|
|
@@ -864,9 +864,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
|
864
864
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
865
865
|
claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
|
|
866
866
|
claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
|
|
867
|
-
claude_mpm-4.15.
|
|
868
|
-
claude_mpm-4.15.
|
|
869
|
-
claude_mpm-4.15.
|
|
870
|
-
claude_mpm-4.15.
|
|
871
|
-
claude_mpm-4.15.
|
|
872
|
-
claude_mpm-4.15.
|
|
867
|
+
claude_mpm-4.15.1.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
|
868
|
+
claude_mpm-4.15.1.dist-info/METADATA,sha256=VM-GlVhmpLRaOewBxf1Vh0umANJlmvUcllDAy6dm6xk,17967
|
|
869
|
+
claude_mpm-4.15.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
870
|
+
claude_mpm-4.15.1.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
|
|
871
|
+
claude_mpm-4.15.1.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
872
|
+
claude_mpm-4.15.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|