claude-mpm 5.6.37__py3-none-any.whl → 5.6.39__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/VERSION +1 -1
- claude_mpm/cli/startup.py +51 -8
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/installer.py +84 -23
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-314.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-314.pyc +0 -0
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/METADATA +1 -1
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/RECORD +27 -10
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/entry_points.txt +1 -0
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/WHEEL +0 -0
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/licenses/LICENSE-FAQ.md +0 -0
- {claude_mpm-5.6.37.dist-info → claude_mpm-5.6.39.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.6.
|
|
1
|
+
5.6.39
|
claude_mpm/cli/startup.py
CHANGED
|
@@ -13,7 +13,7 @@ import sys
|
|
|
13
13
|
from pathlib import Path
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def cleanup_user_level_hooks() ->
|
|
16
|
+
def cleanup_user_level_hooks() -> bool:
|
|
17
17
|
"""Remove stale user-level hooks directory.
|
|
18
18
|
|
|
19
19
|
WHY: claude-mpm previously deployed hooks to ~/.claude/hooks/claude-mpm/
|
|
@@ -23,13 +23,16 @@ def cleanup_user_level_hooks() -> None:
|
|
|
23
23
|
|
|
24
24
|
DESIGN DECISION: Runs early in startup, before project hook sync.
|
|
25
25
|
Non-blocking - failures are logged at debug level but don't prevent startup.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
bool: True if hooks were cleaned up, False if none found or cleanup failed
|
|
26
29
|
"""
|
|
27
30
|
import shutil
|
|
28
31
|
|
|
29
32
|
user_hooks_dir = Path.home() / ".claude" / "hooks" / "claude-mpm"
|
|
30
33
|
|
|
31
34
|
if not user_hooks_dir.exists():
|
|
32
|
-
return
|
|
35
|
+
return False
|
|
33
36
|
|
|
34
37
|
try:
|
|
35
38
|
from ..core.logger import get_logger
|
|
@@ -40,6 +43,7 @@ def cleanup_user_level_hooks() -> None:
|
|
|
40
43
|
shutil.rmtree(user_hooks_dir)
|
|
41
44
|
|
|
42
45
|
logger.debug("User-level hooks cleanup complete")
|
|
46
|
+
return True
|
|
43
47
|
except Exception as e:
|
|
44
48
|
# Non-critical - log but don't fail startup
|
|
45
49
|
try:
|
|
@@ -49,6 +53,7 @@ def cleanup_user_level_hooks() -> None:
|
|
|
49
53
|
logger.debug(f"Failed to cleanup user-level hooks (non-fatal): {e}")
|
|
50
54
|
except Exception: # nosec B110
|
|
51
55
|
pass # Avoid any errors in error handling
|
|
56
|
+
return False
|
|
52
57
|
|
|
53
58
|
|
|
54
59
|
def sync_hooks_on_startup(quiet: bool = False) -> bool:
|
|
@@ -71,31 +76,45 @@ def sync_hooks_on_startup(quiet: bool = False) -> bool:
|
|
|
71
76
|
Returns:
|
|
72
77
|
bool: True if hooks were synced successfully, False otherwise
|
|
73
78
|
"""
|
|
79
|
+
is_tty = not quiet and sys.stdout.isatty()
|
|
80
|
+
|
|
74
81
|
# Step 1: Cleanup stale user-level hooks first
|
|
75
|
-
|
|
82
|
+
if is_tty:
|
|
83
|
+
print("Cleaning user-level hooks...", end=" ", flush=True)
|
|
76
84
|
|
|
85
|
+
cleaned = cleanup_user_level_hooks()
|
|
86
|
+
|
|
87
|
+
if is_tty:
|
|
88
|
+
if cleaned:
|
|
89
|
+
print("✓")
|
|
90
|
+
else:
|
|
91
|
+
print("(none found)")
|
|
92
|
+
|
|
93
|
+
# Step 2: Install project-level hooks
|
|
77
94
|
try:
|
|
78
95
|
from ..hooks.claude_hooks.installer import HookInstaller
|
|
79
96
|
|
|
80
97
|
installer = HookInstaller()
|
|
81
98
|
|
|
82
99
|
# Show brief status (hooks sync is fast)
|
|
83
|
-
if
|
|
84
|
-
print("
|
|
100
|
+
if is_tty:
|
|
101
|
+
print("Installing project hooks...", end=" ", flush=True)
|
|
85
102
|
|
|
86
103
|
# Reinstall hooks (force=True ensures update)
|
|
87
104
|
success = installer.install_hooks(force=True)
|
|
88
105
|
|
|
89
|
-
if
|
|
106
|
+
if is_tty:
|
|
90
107
|
if success:
|
|
91
|
-
|
|
108
|
+
# Count hooks from settings file
|
|
109
|
+
hook_count = _count_installed_hooks(installer.settings_file)
|
|
110
|
+
print(f"{hook_count} hooks configured ✓")
|
|
92
111
|
else:
|
|
93
112
|
print("(skipped)")
|
|
94
113
|
|
|
95
114
|
return success
|
|
96
115
|
|
|
97
116
|
except Exception as e:
|
|
98
|
-
if
|
|
117
|
+
if is_tty:
|
|
99
118
|
print("(error)")
|
|
100
119
|
# Log but don't fail startup
|
|
101
120
|
from ..core.logger import get_logger
|
|
@@ -105,6 +124,30 @@ def sync_hooks_on_startup(quiet: bool = False) -> bool:
|
|
|
105
124
|
return False
|
|
106
125
|
|
|
107
126
|
|
|
127
|
+
def _count_installed_hooks(settings_file: Path) -> int:
|
|
128
|
+
"""Count the number of hook event types configured in settings.
|
|
129
|
+
|
|
130
|
+
Args:
|
|
131
|
+
settings_file: Path to the settings.local.json file
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
int: Number of hook event types configured (e.g., 7 for all events)
|
|
135
|
+
"""
|
|
136
|
+
import json
|
|
137
|
+
|
|
138
|
+
try:
|
|
139
|
+
if not settings_file.exists():
|
|
140
|
+
return 0
|
|
141
|
+
|
|
142
|
+
with settings_file.open() as f:
|
|
143
|
+
settings = json.load(f)
|
|
144
|
+
|
|
145
|
+
hooks = settings.get("hooks", {})
|
|
146
|
+
return len(hooks)
|
|
147
|
+
except Exception:
|
|
148
|
+
return 0
|
|
149
|
+
|
|
150
|
+
|
|
108
151
|
def cleanup_legacy_agent_cache() -> None:
|
|
109
152
|
"""Remove legacy hierarchical agent cache directories.
|
|
110
153
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -387,8 +387,35 @@ main "$@"
|
|
|
387
387
|
return False
|
|
388
388
|
return self._version_meets_minimum(version, self.MIN_SKILLS_VERSION)
|
|
389
389
|
|
|
390
|
-
def
|
|
391
|
-
"""Get the
|
|
390
|
+
def get_hook_command(self) -> str:
|
|
391
|
+
"""Get the hook command based on installation method.
|
|
392
|
+
|
|
393
|
+
Priority order:
|
|
394
|
+
1. claude-hook entry point (uv tool install, pipx install, pip install)
|
|
395
|
+
2. Fallback to bash script (development installs)
|
|
396
|
+
|
|
397
|
+
Returns:
|
|
398
|
+
Command string for the hook handler (either 'claude-hook' or path to bash script)
|
|
399
|
+
|
|
400
|
+
Raises:
|
|
401
|
+
FileNotFoundError: If no hook handler can be found
|
|
402
|
+
"""
|
|
403
|
+
# Check if claude-hook entry point is available in PATH
|
|
404
|
+
claude_hook_path = shutil.which("claude-hook")
|
|
405
|
+
if claude_hook_path:
|
|
406
|
+
self.logger.info(f"Using claude-hook entry point: {claude_hook_path}")
|
|
407
|
+
return "claude-hook"
|
|
408
|
+
|
|
409
|
+
# Fallback to bash script for development installs
|
|
410
|
+
script_path = self._get_hook_script_path()
|
|
411
|
+
self.logger.info(f"Using fallback bash script: {script_path}")
|
|
412
|
+
return str(script_path.absolute())
|
|
413
|
+
|
|
414
|
+
def _get_hook_script_path(self) -> Path:
|
|
415
|
+
"""Get the path to the fallback bash hook handler script.
|
|
416
|
+
|
|
417
|
+
This is used when the claude-hook entry point is not available
|
|
418
|
+
(e.g., development installs without uv tool install).
|
|
392
419
|
|
|
393
420
|
Returns:
|
|
394
421
|
Path to the claude-hook-handler.sh script
|
|
@@ -441,6 +468,19 @@ main "$@"
|
|
|
441
468
|
|
|
442
469
|
raise FileNotFoundError(f"Hook handler script not found at {script_path}")
|
|
443
470
|
|
|
471
|
+
def get_hook_script_path(self) -> Path:
|
|
472
|
+
"""Get the path to the hook handler script based on installation method.
|
|
473
|
+
|
|
474
|
+
DEPRECATED: Use get_hook_command() instead for proper entry point support.
|
|
475
|
+
|
|
476
|
+
Returns:
|
|
477
|
+
Path to the claude-hook-handler.sh script
|
|
478
|
+
|
|
479
|
+
Raises:
|
|
480
|
+
FileNotFoundError: If the script cannot be found
|
|
481
|
+
"""
|
|
482
|
+
return self._get_hook_script_path()
|
|
483
|
+
|
|
444
484
|
def install_hooks(self, force: bool = False) -> bool:
|
|
445
485
|
"""
|
|
446
486
|
Install Claude MPM hooks.
|
|
@@ -473,18 +513,16 @@ main "$@"
|
|
|
473
513
|
# Create Claude directory (hooks_dir no longer needed)
|
|
474
514
|
self.claude_dir.mkdir(exist_ok=True)
|
|
475
515
|
|
|
476
|
-
# Get the
|
|
516
|
+
# Get the hook command (either claude-hook entry point or fallback bash script)
|
|
477
517
|
try:
|
|
478
|
-
|
|
479
|
-
self.logger.info(
|
|
480
|
-
f"Using deployment-root hook script: {hook_script_path}"
|
|
481
|
-
)
|
|
518
|
+
hook_command = self.get_hook_command()
|
|
519
|
+
self.logger.info(f"Using hook command: {hook_command}")
|
|
482
520
|
except FileNotFoundError as e:
|
|
483
|
-
self.logger.error(f"Failed to locate hook
|
|
521
|
+
self.logger.error(f"Failed to locate hook handler: {e}")
|
|
484
522
|
return False
|
|
485
523
|
|
|
486
|
-
# Update Claude settings to use
|
|
487
|
-
self._update_claude_settings(
|
|
524
|
+
# Update Claude settings to use the hook command
|
|
525
|
+
self._update_claude_settings(hook_command)
|
|
488
526
|
|
|
489
527
|
# Install commands if available
|
|
490
528
|
self._install_commands()
|
|
@@ -579,8 +617,12 @@ main "$@"
|
|
|
579
617
|
"StatusLine command already supports both schemas or not present"
|
|
580
618
|
)
|
|
581
619
|
|
|
582
|
-
def _update_claude_settings(self,
|
|
583
|
-
"""Update Claude settings to use the installed hook.
|
|
620
|
+
def _update_claude_settings(self, hook_cmd: str) -> None:
|
|
621
|
+
"""Update Claude settings to use the installed hook.
|
|
622
|
+
|
|
623
|
+
Args:
|
|
624
|
+
hook_cmd: The hook command to use (either 'claude-hook' or path to bash script)
|
|
625
|
+
"""
|
|
584
626
|
self.logger.info("Updating Claude settings...")
|
|
585
627
|
|
|
586
628
|
# Load existing settings.json or create new
|
|
@@ -603,15 +645,18 @@ main "$@"
|
|
|
603
645
|
settings["hooks"] = {}
|
|
604
646
|
|
|
605
647
|
# Hook configuration for each event type
|
|
606
|
-
hook_command = {"type": "command", "command":
|
|
648
|
+
hook_command = {"type": "command", "command": hook_cmd}
|
|
607
649
|
|
|
608
650
|
def is_our_hook(cmd: dict) -> bool:
|
|
609
651
|
"""Check if a hook command belongs to claude-mpm."""
|
|
610
652
|
if cmd.get("type") != "command":
|
|
611
653
|
return False
|
|
612
654
|
command = cmd.get("command", "")
|
|
613
|
-
|
|
614
|
-
|
|
655
|
+
# Match claude-hook entry point or bash script fallback
|
|
656
|
+
return (
|
|
657
|
+
command == "claude-hook"
|
|
658
|
+
or "claude-hook-handler.sh" in command
|
|
659
|
+
or command.endswith("claude-mpm-hook.sh")
|
|
615
660
|
)
|
|
616
661
|
|
|
617
662
|
def merge_hooks_for_event(
|
|
@@ -867,7 +912,8 @@ main "$@"
|
|
|
867
912
|
):
|
|
868
913
|
cmd = hook_cmd.get("command", "")
|
|
869
914
|
if (
|
|
870
|
-
"claude-hook
|
|
915
|
+
cmd == "claude-hook"
|
|
916
|
+
or "claude-hook-handler.sh" in cmd
|
|
871
917
|
or cmd.endswith("claude-mpm-hook.sh")
|
|
872
918
|
):
|
|
873
919
|
is_claude_mpm = True
|
|
@@ -912,27 +958,42 @@ main "$@"
|
|
|
912
958
|
|
|
913
959
|
is_valid, issues = self.verify_hooks()
|
|
914
960
|
|
|
915
|
-
# Try to get
|
|
961
|
+
# Try to get hook command (entry point or fallback script)
|
|
962
|
+
hook_command = None
|
|
963
|
+
using_entry_point = False
|
|
916
964
|
try:
|
|
917
|
-
|
|
965
|
+
hook_command = self.get_hook_command()
|
|
966
|
+
using_entry_point = hook_command == "claude-hook"
|
|
967
|
+
except FileNotFoundError:
|
|
968
|
+
hook_command = None
|
|
969
|
+
|
|
970
|
+
# For backward compatibility, also try to get the script path
|
|
971
|
+
hook_script_str = None
|
|
972
|
+
script_exists = False
|
|
973
|
+
try:
|
|
974
|
+
hook_script_path = self._get_hook_script_path()
|
|
918
975
|
hook_script_str = str(hook_script_path)
|
|
919
976
|
script_exists = hook_script_path.exists()
|
|
920
977
|
except FileNotFoundError:
|
|
921
|
-
|
|
922
|
-
script_exists = False
|
|
978
|
+
pass
|
|
923
979
|
|
|
924
980
|
status = {
|
|
925
|
-
"installed":
|
|
981
|
+
"installed": (hook_command is not None or script_exists)
|
|
982
|
+
and self.settings_file.exists(),
|
|
926
983
|
"valid": is_valid,
|
|
927
984
|
"issues": issues,
|
|
928
|
-
"
|
|
985
|
+
"hook_command": hook_command,
|
|
986
|
+
"hook_script": hook_script_str, # Kept for backward compatibility
|
|
987
|
+
"using_entry_point": using_entry_point,
|
|
929
988
|
"settings_file": (
|
|
930
989
|
str(self.settings_file) if self.settings_file.exists() else None
|
|
931
990
|
),
|
|
932
991
|
"claude_version": claude_version,
|
|
933
992
|
"version_compatible": is_compatible,
|
|
934
993
|
"version_message": version_message,
|
|
935
|
-
"deployment_type": "
|
|
994
|
+
"deployment_type": "entry-point"
|
|
995
|
+
if using_entry_point
|
|
996
|
+
else "deployment-root",
|
|
936
997
|
"pretool_modify_supported": pretool_modify_supported, # v2.0.30+ feature
|
|
937
998
|
"pretool_modify_message": (
|
|
938
999
|
f"PreToolUse input modification supported (v{claude_version})"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
|
|
2
|
-
claude_mpm/VERSION,sha256=
|
|
2
|
+
claude_mpm/VERSION,sha256=o33lw8E1XvRlHyJSIB4uJYtJR5yBSBweCbV6dacoztI,7
|
|
3
3
|
claude_mpm/__init__.py,sha256=AGfh00BHKvLYD-UVFw7qbKtl7NMRIzRXOWw7vEuZ-h4,2214
|
|
4
4
|
claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
|
|
5
5
|
claude_mpm/constants.py,sha256=pz3lTrZZR5HhV3eZzYtIbtBwWo7iM6pkBHP_ixxmI6Y,6827
|
|
@@ -42,7 +42,7 @@ claude_mpm/cli/chrome_devtools_installer.py,sha256=efA_ZX1iR3oaJi3222079BQw6DEG8
|
|
|
42
42
|
claude_mpm/cli/executor.py,sha256=eerqDVszBfTm8N2FgreLr-132Jb9BVZGNrrukvb_b-I,15106
|
|
43
43
|
claude_mpm/cli/helpers.py,sha256=CypEhw0tbNH6_GzVTaQdi4w7ThCWO43Ep92YbJzPR4I,3638
|
|
44
44
|
claude_mpm/cli/parser.py,sha256=Vqx9n-6Xo1uNhXR4rThmgWpZXTr0nOtkgDf3oMS9b0g,5855
|
|
45
|
-
claude_mpm/cli/startup.py,sha256=
|
|
45
|
+
claude_mpm/cli/startup.py,sha256=iYf_i1fzFPVCljsQM048h6vkpDz9DyVP_UfIEGmjO28,71438
|
|
46
46
|
claude_mpm/cli/startup_display.py,sha256=KI4GZ0uVoK7FXeK5jsS4JAyaKaKf5rCkY3h5tNeEY7M,17209
|
|
47
47
|
claude_mpm/cli/startup_logging.py,sha256=wHokzcCA0AJPxAqFrpY5PMOBh1iOhdhgP1gY1OvD0gY,29392
|
|
48
48
|
claude_mpm/cli/utils.py,sha256=5e3v-ow1gd-5nlad9OWCsL-3SRJcPjBJ9HS3zygwkiQ,8988
|
|
@@ -432,18 +432,28 @@ claude_mpm/hooks/claude_hooks/correlation_manager.py,sha256=3n-RxzqE8egG4max_Ncp
|
|
|
432
432
|
claude_mpm/hooks/claude_hooks/event_handlers.py,sha256=VJ4kY_GMZkVv8WBAII4GTfY4qxFgoKdXpMdhEbzt980,50344
|
|
433
433
|
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=AH0z6D06bo02UGyEdYlzll2EcELl-gmt8D42MPqu_SU,30459
|
|
434
434
|
claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=XYkdYtcM0nfnwYvMdyIFCasr80ry3uI5-fLYsLtDGw4,2214
|
|
435
|
-
claude_mpm/hooks/claude_hooks/installer.py,sha256=
|
|
435
|
+
claude_mpm/hooks/claude_hooks/installer.py,sha256=s4AqVbln4oWmVr4cSCXhMN4TxDPQ48P-qk-qKvv0690,40353
|
|
436
436
|
claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=YOMD4Ah003uMh7A454w8ngLmKw8RUAEIHpEj-FRk3TI,10759
|
|
437
437
|
claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=1KOGC19rYRNYbc1Tfe7FAP6AtvgOMSM5uEPxMi2N6-c,16323
|
|
438
438
|
claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2fSZfepN7lI4P1meSQ,7862
|
|
439
439
|
claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXqhPM0iRRZtCqHaLVQ6wDH42OH_M7Gt5GiFLyro,346
|
|
440
|
+
claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-314.pyc,sha256=tBzcQ_3WxkmgPTQAPd7uKgFGtz-Yb6r2hEgF9Y_Flwc,319
|
|
440
441
|
claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=lw3g7dHPcJ258xtcmbXOk-tCqVz0JAc5PZ10LUfG4Zo,20829
|
|
442
|
+
claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-314.pyc,sha256=TW6wmI4uZSKYTZLvzRUo8a2BNrJRumyIPJEy5SwbPY0,21381
|
|
441
443
|
claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc,sha256=SQX5iiP9bQZkLL-cj_2tlGH7lpAzarO0mYal7btj3tc,3521
|
|
444
|
+
claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-314.pyc,sha256=EsrmN8bVySuKI2cdojP30zm6kao4N-6Y57p0-AeJBYM,3966
|
|
442
445
|
claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=rUcbnsARIgWenNkPv8LlHJBXmxTOExqgcwtBaBfGzg4,49040
|
|
446
|
+
claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-314.pyc,sha256=l29mAnJP0z-1ofdS9D7uvotF0HJaYoKCpuFjrCZnCko,48746
|
|
443
447
|
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=NQtvV9vs1OMKQTZWRQrAie83y4Q61mJ-QFawC2GnsUQ,32799
|
|
448
|
+
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-314.pyc,sha256=Y42877bxn92Yjwep0Htoq9oHSCuyxBQ2EdJ0F0b6MRA,32590
|
|
449
|
+
claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc,sha256=MjEHwTWmXNGwIuQEhk9fwdMR3uCbd0c4msz5LV3weiQ,43292
|
|
450
|
+
claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-314.pyc,sha256=o_VDKXRxxNBrosgfuPQRLmzDC_zZtF0yOWxnYTdw0Yk,41573
|
|
444
451
|
claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=1llucgjrun0H6q8V8_BXTHtkTiYAwNGyptluhoIi7ss,11185
|
|
452
|
+
claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-314.pyc,sha256=I4vC0wDRgWcosl44rxzCqeiLaubCPdwzn2mnMBcCe7o,11081
|
|
445
453
|
claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc,sha256=E_pRoKx-mAB5gEv2_5TneMC_K10zj7FYCPwQPnPd88g,16228
|
|
454
|
+
claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-314.pyc,sha256=HGqXKBQrB8f01TCf7n07AeFgIF48bnBRrPxsuoZ6TdE,15820
|
|
446
455
|
claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc,sha256=ZjcNfNY5Ht6FhalPeh7M7OzMffcey5iF4AVjDDg9kak,10694
|
|
456
|
+
claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-314.pyc,sha256=ck8ifVIoVPaMVVRcMgvsM8RfIHnQbwGBUVs25A-yQBw,10771
|
|
447
457
|
claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=Hb4SqNzSN-JKzp8pMM3SbDMTCsUydypfXiDx4_4QvBI,1112
|
|
448
458
|
claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=46y84lKi3KuExWyJgFcEfgLxrzQY3IjGRob_6I4hXp4,10196
|
|
449
459
|
claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=uJH0CGsszvhlg7zfEI2JB7uuxXtYBk9Yey-u2F6VoNo,7582
|
|
@@ -453,12 +463,19 @@ claude_mpm/hooks/claude_hooks/services/protocols.py,sha256=vbGAhbg1vJVwyY6zQn5cN
|
|
|
453
463
|
claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=uuYJVsxIinmOhu7muqJsRZvFMN83YaoYoOWWIiORhr0,10898
|
|
454
464
|
claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=Wq0CKzgBnAtJfxiWHTipjkmFbuvMGu1mqcmQoEMMyyQ,15039
|
|
455
465
|
claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc,sha256=Ourc5IO3cUSZ9lg-1SKh5HaF01L5DmWXTRl38UN35NE,1145
|
|
466
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-314.pyc,sha256=2sEfKbiRDzZ31YPdbcmYCyMD2RrsBvV2dz6rIUM4hwo,957
|
|
456
467
|
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc,sha256=a7ERR-95KADLqU8bgoPzpCvEPo0yoYjhfXq_u2sCKuk,9613
|
|
468
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-314.pyc,sha256=IiHEGNWsa-DRr1m8ixEIHv_duHT5SorIcg1d2vZBR34,9627
|
|
457
469
|
claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc,sha256=3SkPihhEUk3S39IvnM3bZ-ijoLE0qqHMvoeeM-hebdk,15390
|
|
470
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-314.pyc,sha256=hx96Ck5d5IlRfCt5KYhWN9SSRYOMUexS-sNXr11YS_M,18427
|
|
458
471
|
claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc,sha256=Yy_REAUhJCiFjOhxeDb4v0qyEvEbUtCmXD9PAz40dhw,5321
|
|
472
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-314.pyc,sha256=Xy9iNAtQMfXC_eW9rvumG9rFqK5t-QlLPmUahlqza_I,5341
|
|
459
473
|
claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-311.pyc,sha256=rmXujh8AxeOajj_40rSug1QdKCFNl5cFjn_pQE6DExY,15962
|
|
474
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-314.pyc,sha256=0YrvSRdqX6CI5Fh3_Oy-ax16HD4b0H9tbL87pqpS1Pk,20861
|
|
460
475
|
claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc,sha256=FkVlm20olvS286fK1SKPBDo9tOy0A9hRW0o5Gkyszuc,12352
|
|
476
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-314.pyc,sha256=dk8pUEtJS1CFnaQ62Wt4Z9E8-dePdqiP3ObrDgZLDVc,13101
|
|
461
477
|
claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc,sha256=LILTBRAG9Wxpu_FmVod_5hnJO-wbaewqKrxEZ_GJTEI,14931
|
|
478
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-314.pyc,sha256=Y_3P-WuOGBdmRbGj7CmsOofU5KzQ_K9vXFxKDYKZPwA,15104
|
|
462
479
|
claude_mpm/hooks/failure_learning/__init__.py,sha256=iJ80AKFHiT8DjIH2a72DQVJvL6nAFrizNA2yTKwZ4rw,1805
|
|
463
480
|
claude_mpm/hooks/failure_learning/failure_detection_hook.py,sha256=KENoB5N-dBm5hb0SxeIZtCvNKbmG2BKHOJSrSO-3Z_I,7500
|
|
464
481
|
claude_mpm/hooks/failure_learning/fix_detection_hook.py,sha256=XUk1bnBVLdfhQ9AMQSvGsTSeFQsKsVud2wbWX-Jjor8,7164
|
|
@@ -1106,10 +1123,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
|
1106
1123
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
1107
1124
|
claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
|
|
1108
1125
|
claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
|
|
1109
|
-
claude_mpm-5.6.
|
|
1110
|
-
claude_mpm-5.6.
|
|
1111
|
-
claude_mpm-5.6.
|
|
1112
|
-
claude_mpm-5.6.
|
|
1113
|
-
claude_mpm-5.6.
|
|
1114
|
-
claude_mpm-5.6.
|
|
1115
|
-
claude_mpm-5.6.
|
|
1126
|
+
claude_mpm-5.6.39.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
|
|
1127
|
+
claude_mpm-5.6.39.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
|
|
1128
|
+
claude_mpm-5.6.39.dist-info/METADATA,sha256=pLeyCZn0vH_Ka6O0vA6FEajtYxMrkSaPehVFZRStIgo,15245
|
|
1129
|
+
claude_mpm-5.6.39.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1130
|
+
claude_mpm-5.6.39.dist-info/entry_points.txt,sha256=1zA7qb37iArFuimIPKvNMoJz1WtKPNKfxfr8E_ijk30,290
|
|
1131
|
+
claude_mpm-5.6.39.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
1132
|
+
claude_mpm-5.6.39.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|