claude-mpm 5.6.29__py3-none-any.whl → 5.6.31__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/commands/commander.py +6 -6
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/auto_pause_handler.py +0 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
- claude_mpm/hooks/claude_hooks/hook_handler.py +6 -6
- claude_mpm/hooks/claude_hooks/installer.py +9 -5
- claude_mpm/hooks/claude_hooks/memory_integration.py +0 -0
- claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
- claude_mpm/hooks/templates/pre_tool_use_simple.py +6 -6
- claude_mpm/hooks/templates/pre_tool_use_template.py +6 -6
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +0 -0
- claude_mpm/services/hook_installer_service.py +7 -2
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/METADATA +1 -1
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/RECORD +16 -16
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/WHEEL +0 -0
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/entry_points.txt +0 -0
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/licenses/LICENSE-FAQ.md +0 -0
- {claude_mpm-5.6.29.dist-info → claude_mpm-5.6.31.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.6.
|
|
1
|
+
5.6.31
|
|
@@ -43,12 +43,12 @@ def display_commander_banner():
|
|
|
43
43
|
|
|
44
44
|
# Commander ASCII art banner
|
|
45
45
|
banner = f"""
|
|
46
|
-
{CYAN}╭{
|
|
47
|
-
{CYAN}│{RESET}{BOLD} ⚡ MPM Commander {RESET}{DIM}v{version}{RESET}{
|
|
48
|
-
{CYAN}│{RESET}{DIM} Multi-Project AI Orchestration{RESET}{
|
|
49
|
-
{CYAN}├{
|
|
50
|
-
{CYAN}│{RESET} {YELLOW}ALPHA{RESET} - APIs may change {
|
|
51
|
-
{CYAN}╰{
|
|
46
|
+
{CYAN}╭{"─" * (width - 2)}╮{RESET}
|
|
47
|
+
{CYAN}│{RESET}{BOLD} ⚡ MPM Commander {RESET}{DIM}v{version}{RESET}{" " * (width - 24 - len(version))}│
|
|
48
|
+
{CYAN}│{RESET}{DIM} Multi-Project AI Orchestration{RESET}{" " * (width - 36)}│
|
|
49
|
+
{CYAN}├{"─" * (width - 2)}┤{RESET}
|
|
50
|
+
{CYAN}│{RESET} {YELLOW}ALPHA{RESET} - APIs may change {" " * (width - 55)}│
|
|
51
|
+
{CYAN}╰{"─" * (width - 2)}╯{RESET}
|
|
52
52
|
"""
|
|
53
53
|
print(banner)
|
|
54
54
|
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
@@ -496,11 +496,11 @@ class ClaudeHookHandler:
|
|
|
496
496
|
if modified_input is not None:
|
|
497
497
|
# Claude Code v2.0.30+ supports modifying PreToolUse tool inputs
|
|
498
498
|
print(
|
|
499
|
-
json.dumps({"
|
|
499
|
+
json.dumps({"continue": True, "tool_input": modified_input}),
|
|
500
500
|
flush=True,
|
|
501
501
|
)
|
|
502
502
|
else:
|
|
503
|
-
print(json.dumps({"
|
|
503
|
+
print(json.dumps({"continue": True}), flush=True)
|
|
504
504
|
|
|
505
505
|
# Delegation methods for compatibility with event_handlers
|
|
506
506
|
def _track_delegation(self, session_id: str, agent_type: str, request_data=None):
|
|
@@ -673,7 +673,7 @@ def main():
|
|
|
673
673
|
# This prevents errors on older Claude Code versions
|
|
674
674
|
if version:
|
|
675
675
|
_log(f"Skipping hook processing due to version incompatibility ({version})")
|
|
676
|
-
print(json.dumps({"
|
|
676
|
+
print(json.dumps({"continue": True}), flush=True)
|
|
677
677
|
sys.exit(0)
|
|
678
678
|
|
|
679
679
|
def cleanup_handler(signum=None, frame=None):
|
|
@@ -682,7 +682,7 @@ def main():
|
|
|
682
682
|
_log(f"Hook handler cleanup (pid: {os.getpid()}, signal: {signum})")
|
|
683
683
|
# Only output continue if we haven't already (i.e., if interrupted by signal)
|
|
684
684
|
if signum is not None and not _continue_printed:
|
|
685
|
-
print(json.dumps({"
|
|
685
|
+
print(json.dumps({"continue": True}), flush=True)
|
|
686
686
|
_continue_printed = True
|
|
687
687
|
sys.exit(0)
|
|
688
688
|
|
|
@@ -715,7 +715,7 @@ def main():
|
|
|
715
715
|
except Exception as e:
|
|
716
716
|
# Only output continue if not already printed
|
|
717
717
|
if not _continue_printed:
|
|
718
|
-
print(json.dumps({"
|
|
718
|
+
print(json.dumps({"continue": True}), flush=True)
|
|
719
719
|
_continue_printed = True
|
|
720
720
|
# Log error for debugging
|
|
721
721
|
_log(f"Hook handler error: {e}")
|
|
@@ -727,5 +727,5 @@ if __name__ == "__main__":
|
|
|
727
727
|
main()
|
|
728
728
|
except Exception:
|
|
729
729
|
# Catastrophic failure (import error, etc.) - always output valid JSON
|
|
730
|
-
print(json.dumps({"
|
|
730
|
+
print(json.dumps({"continue": True}), flush=True)
|
|
731
731
|
sys.exit(0)
|
|
@@ -149,7 +149,7 @@ main() {
|
|
|
149
149
|
if [ "${CLAUDE_MPM_HOOK_DEBUG}" = "true" ]; then
|
|
150
150
|
echo "[$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)] Claude MPM not found, continuing..." >> /tmp/claude-mpm-hook.log
|
|
151
151
|
fi
|
|
152
|
-
echo '{"
|
|
152
|
+
echo '{"continue": true}'
|
|
153
153
|
exit 0
|
|
154
154
|
fi
|
|
155
155
|
|
|
@@ -176,7 +176,7 @@ main() {
|
|
|
176
176
|
echo "[$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)] Hook handler failed, see /tmp/claude-mpm-hook-error.log" >> /tmp/claude-mpm-hook.log
|
|
177
177
|
echo "[$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)] Error: $(cat /tmp/claude-mpm-hook-error.log 2>/dev/null | head -5)" >> /tmp/claude-mpm-hook.log
|
|
178
178
|
fi
|
|
179
|
-
echo '{"
|
|
179
|
+
echo '{"continue": true}'
|
|
180
180
|
exit 0
|
|
181
181
|
fi
|
|
182
182
|
|
|
@@ -203,10 +203,14 @@ main "$@"
|
|
|
203
203
|
import logging
|
|
204
204
|
|
|
205
205
|
self.logger = logging.getLogger(__name__)
|
|
206
|
-
|
|
206
|
+
# Use project-level paths, NEVER global ~/.claude/settings.json
|
|
207
|
+
# This ensures hooks are scoped to the current project only
|
|
208
|
+
self.project_root = Path.cwd()
|
|
209
|
+
self.claude_dir = self.project_root / ".claude"
|
|
207
210
|
self.hooks_dir = self.claude_dir / "hooks" # Kept for backward compatibility
|
|
208
|
-
# Use settings.json for
|
|
209
|
-
|
|
211
|
+
# Use settings.local.json for project-level hook settings
|
|
212
|
+
# Claude Code reads project-level settings from .claude/settings.local.json
|
|
213
|
+
self.settings_file = self.claude_dir / "settings.local.json"
|
|
210
214
|
# There is no legacy settings file - this was a bug where both pointed to same file
|
|
211
215
|
# Setting to None to disable cleanup that was deleting freshly installed hooks
|
|
212
216
|
self.old_settings_file = None
|
|
File without changes
|
|
File without changes
|
|
@@ -38,7 +38,7 @@ def main():
|
|
|
38
38
|
# Read event from stdin
|
|
39
39
|
event_data = sys.stdin.read()
|
|
40
40
|
if not event_data.strip():
|
|
41
|
-
print(json.dumps({"
|
|
41
|
+
print(json.dumps({"continue": True}))
|
|
42
42
|
return
|
|
43
43
|
|
|
44
44
|
event = json.loads(event_data)
|
|
@@ -49,7 +49,7 @@ def main():
|
|
|
49
49
|
if tool_name == "Grep" and "-n" not in tool_input:
|
|
50
50
|
modified_input = tool_input.copy()
|
|
51
51
|
modified_input["-n"] = True
|
|
52
|
-
print(json.dumps({"
|
|
52
|
+
print(json.dumps({"continue": True, "tool_input": modified_input}))
|
|
53
53
|
return
|
|
54
54
|
|
|
55
55
|
# Example: Block operations on .env files
|
|
@@ -59,19 +59,19 @@ def main():
|
|
|
59
59
|
print(
|
|
60
60
|
json.dumps(
|
|
61
61
|
{
|
|
62
|
-
"
|
|
63
|
-
"
|
|
62
|
+
"continue": False,
|
|
63
|
+
"stopReason": "Access to .env file blocked for security",
|
|
64
64
|
}
|
|
65
65
|
)
|
|
66
66
|
)
|
|
67
67
|
return
|
|
68
68
|
|
|
69
69
|
# Default: continue without modification
|
|
70
|
-
print(json.dumps({"
|
|
70
|
+
print(json.dumps({"continue": True}))
|
|
71
71
|
|
|
72
72
|
except Exception:
|
|
73
73
|
# Always continue on error to avoid blocking Claude
|
|
74
|
-
print(json.dumps({"
|
|
74
|
+
print(json.dumps({"continue": True}))
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
if __name__ == "__main__":
|
|
@@ -29,7 +29,7 @@ Input Format (stdin):
|
|
|
29
29
|
|
|
30
30
|
Output Format (stdout):
|
|
31
31
|
{
|
|
32
|
-
"
|
|
32
|
+
"continue": true,
|
|
33
33
|
"tool_input": {
|
|
34
34
|
"file_path": "/path/to/file.py",
|
|
35
35
|
"old_string": "foo",
|
|
@@ -39,13 +39,13 @@ Output Format (stdout):
|
|
|
39
39
|
|
|
40
40
|
Or to block execution:
|
|
41
41
|
{
|
|
42
|
-
"
|
|
43
|
-
"
|
|
42
|
+
"continue": false,
|
|
43
|
+
"stopReason": "Reason for blocking"
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
Or to continue without modification:
|
|
47
47
|
{
|
|
48
|
-
"
|
|
48
|
+
"continue": true
|
|
49
49
|
}
|
|
50
50
|
"""
|
|
51
51
|
|
|
@@ -94,14 +94,14 @@ class PreToolUseHook:
|
|
|
94
94
|
self, modified_input: Optional[Dict[str, Any]] = None
|
|
95
95
|
) -> None:
|
|
96
96
|
"""Continue execution with optional modified input."""
|
|
97
|
-
response = {"
|
|
97
|
+
response = {"continue": True}
|
|
98
98
|
if modified_input is not None:
|
|
99
99
|
response["tool_input"] = modified_input
|
|
100
100
|
print(json.dumps(response))
|
|
101
101
|
|
|
102
102
|
def block_execution(self, message: str) -> None:
|
|
103
103
|
"""Block execution with a message."""
|
|
104
|
-
response = {"
|
|
104
|
+
response = {"continue": False, "stopReason": message}
|
|
105
105
|
print(json.dumps(response))
|
|
106
106
|
|
|
107
107
|
def modify_input(
|
|
@@ -222,13 +222,13 @@ log_debug() {
|
|
|
222
222
|
if [[ "$PYTHON_CMD" == "uv run"* ]]; then
|
|
223
223
|
if ! uv run --directory "$CLAUDE_MPM_ROOT" python -c "import claude_mpm" 2>/dev/null; then
|
|
224
224
|
log_debug "claude_mpm module not available, continuing without hook"
|
|
225
|
-
echo '{"
|
|
225
|
+
echo '{"continue": true}'
|
|
226
226
|
exit 0
|
|
227
227
|
fi
|
|
228
228
|
else
|
|
229
229
|
if ! $PYTHON_CMD -c "import claude_mpm" 2>/dev/null; then
|
|
230
230
|
log_debug "claude_mpm module not available, continuing without hook"
|
|
231
|
-
echo '{"
|
|
231
|
+
echo '{"continue": true}'
|
|
232
232
|
exit 0
|
|
233
233
|
fi
|
|
234
234
|
fi
|
|
@@ -250,5 +250,5 @@ if [ "${CLAUDE_MPM_HOOK_DEBUG}" = "true" ]; then
|
|
|
250
250
|
echo "[$(date -u +%Y-%m-%dT%H:%M:%S.%3NZ)] Error: $(cat /tmp/claude-mpm-hook-error.log 2>/dev/null | head -5)" >> /tmp/claude-mpm-hook.log
|
|
251
251
|
fi
|
|
252
252
|
# Return continue action to prevent blocking Claude Code
|
|
253
|
-
echo '{"
|
|
253
|
+
echo '{"continue": true}'
|
|
254
254
|
exit 0
|
|
File without changes
|
|
@@ -20,8 +20,13 @@ class HookInstallerService:
|
|
|
20
20
|
def __init__(self):
|
|
21
21
|
"""Initialize the hook installer service."""
|
|
22
22
|
self.logger = get_logger(__name__)
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
# Use project-level paths, NEVER global ~/.claude/settings.json
|
|
24
|
+
# This ensures hooks are scoped to the current project only
|
|
25
|
+
self.project_root = Path.cwd()
|
|
26
|
+
self.claude_dir = self.project_root / ".claude"
|
|
27
|
+
# Use settings.local.json for project-level hook settings
|
|
28
|
+
# Claude Code reads project-level settings from .claude/settings.local.json
|
|
29
|
+
self.settings_file = self.claude_dir / "settings.local.json"
|
|
25
30
|
|
|
26
31
|
def is_hooks_configured(self) -> bool:
|
|
27
32
|
"""Check if hooks are configured in Claude settings.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
|
|
2
|
-
claude_mpm/VERSION,sha256=
|
|
2
|
+
claude_mpm/VERSION,sha256=qA_UH0QMgAvTCzfuWWxESBiXsP0lh8bSznuGUwuOEl8,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
|
|
@@ -61,7 +61,7 @@ claude_mpm/cli/commands/auto_configure.py,sha256=0Suzil6O0SBNeHUCwHOkt2q7gfuXRTy
|
|
|
61
61
|
claude_mpm/cli/commands/autotodos.py,sha256=mm2R6dIfHOjAMCgFkjfjBzdFQ-ou19b_R3Lo0Vi8vCI,19428
|
|
62
62
|
claude_mpm/cli/commands/cleanup.py,sha256=RQikOGLuLFWXzjeoHArdr5FA4Pf7tSK9w2NXL4vCrok,19769
|
|
63
63
|
claude_mpm/cli/commands/cleanup_orphaned_agents.py,sha256=JR8crvgrz7Sa6d-SI-gKywok5S9rwc_DzDVk_h85sVs,4467
|
|
64
|
-
claude_mpm/cli/commands/commander.py,sha256=
|
|
64
|
+
claude_mpm/cli/commands/commander.py,sha256=iZ8DCb3bxdWKuIGRlDu24ERdKPyYaWYro2MpwKGtKJU,7243
|
|
65
65
|
claude_mpm/cli/commands/config.py,sha256=2M9VUPYcQkBUCIyyB-v1qTL3xYvao9YI2l_JGBUDauA,23374
|
|
66
66
|
claude_mpm/cli/commands/configure.py,sha256=VUokhUcV90GzEEivV3xNmfQHogM94mdDadW3S4mp83M,136509
|
|
67
67
|
claude_mpm/cli/commands/configure_agent_display.py,sha256=oSvUhR861o_Pyqmop4ACAQNjwL02-Rf6TMqFvmQNh24,10575
|
|
@@ -430,9 +430,9 @@ claude_mpm/hooks/claude_hooks/auto_pause_handler.py,sha256=Fm8d_a0KJ1GBPPQ3xmQo-
|
|
|
430
430
|
claude_mpm/hooks/claude_hooks/connection_pool.py,sha256=vpi-XbVf61GWhh85tHBzubbOgbJly_I-5-QmsleND2M,8658
|
|
431
431
|
claude_mpm/hooks/claude_hooks/correlation_manager.py,sha256=3n-RxzqE8egG4max_NcpJgL9gzrBY6Ti529LrjleI1g,2033
|
|
432
432
|
claude_mpm/hooks/claude_hooks/event_handlers.py,sha256=ztkKTr5xFAY-K5gxhsXFtR_4tir3Cjx2l4auSYbJErU,46745
|
|
433
|
-
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=
|
|
433
|
+
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=UbBypLK1xhm6NdBBLLjqlsjLGWg1GgW-XSfeR7gLAOc,28242
|
|
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=Od_xgLaqL3ZEerRrCiRuM5LiTKVZLwjYHI-fMozPBI8,35179
|
|
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
|
|
@@ -440,7 +440,7 @@ claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXq
|
|
|
440
440
|
claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=lw3g7dHPcJ258xtcmbXOk-tCqVz0JAc5PZ10LUfG4Zo,20829
|
|
441
441
|
claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc,sha256=SQX5iiP9bQZkLL-cj_2tlGH7lpAzarO0mYal7btj3tc,3521
|
|
442
442
|
claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=72KlsOUX_pQDIl36j7sQukPRarsLIsjINtzsBIpxCtw,45568
|
|
443
|
-
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=
|
|
443
|
+
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=rEfK930vlg9myUn4xdP6mRjPvOhSFdjlxwZN-HexhjM,30759
|
|
444
444
|
claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=1llucgjrun0H6q8V8_BXTHtkTiYAwNGyptluhoIi7ss,11185
|
|
445
445
|
claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc,sha256=E_pRoKx-mAB5gEv2_5TneMC_K10zj7FYCPwQPnPd88g,16228
|
|
446
446
|
claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc,sha256=ZjcNfNY5Ht6FhalPeh7M7OzMffcey5iF4AVjDDg9kak,10694
|
|
@@ -459,8 +459,8 @@ claude_mpm/hooks/failure_learning/__init__.py,sha256=iJ80AKFHiT8DjIH2a72DQVJvL6n
|
|
|
459
459
|
claude_mpm/hooks/failure_learning/failure_detection_hook.py,sha256=KENoB5N-dBm5hb0SxeIZtCvNKbmG2BKHOJSrSO-3Z_I,7500
|
|
460
460
|
claude_mpm/hooks/failure_learning/fix_detection_hook.py,sha256=XUk1bnBVLdfhQ9AMQSvGsTSeFQsKsVud2wbWX-Jjor8,7164
|
|
461
461
|
claude_mpm/hooks/failure_learning/learning_extraction_hook.py,sha256=vAOwVuZa_bBBSrFvM9v3wt7T1frZO_Yb5iNGOCgWVuk,9981
|
|
462
|
-
claude_mpm/hooks/templates/pre_tool_use_simple.py,sha256=
|
|
463
|
-
claude_mpm/hooks/templates/pre_tool_use_template.py,sha256=
|
|
462
|
+
claude_mpm/hooks/templates/pre_tool_use_simple.py,sha256=IBk6E2DMHvEMrLKacTgdpIuV9qdR5lxKUNOL5udce5Q,2143
|
|
463
|
+
claude_mpm/hooks/templates/pre_tool_use_template.py,sha256=nl8lbzv7zXwedXkQ--s3rE4X87cs0m5uPtIqLmoINAU,10224
|
|
464
464
|
claude_mpm/models/__init__.py,sha256=GADyLAiF-1VVghYKI7Urz3zSnf2sjJUXlOEMuCOs7_g,468
|
|
465
465
|
claude_mpm/models/agent_definition.py,sha256=rMCVu4qYpHvw0wSmr5KPyNf8p6Hne049w2erb2Ba_20,7122
|
|
466
466
|
claude_mpm/models/agent_session.py,sha256=Tc-0OfAorb5BCmOpoZmC7jMdbtm6zZKF1Wtj16MO27s,20054
|
|
@@ -468,7 +468,7 @@ claude_mpm/models/git_repository.py,sha256=Lp2I5tv4fu6idIXCTW50MCTWgjuIE-rwsgVIr
|
|
|
468
468
|
claude_mpm/models/resume_log.py,sha256=aDiFC_2FR7tue_Kn46ZDUiKmuw9a_W9yE9zE7gA6Hys,12515
|
|
469
469
|
claude_mpm/schemas/__init__.py,sha256=2SLpkojJq34KnwPkVxrsVmw_cEI66872i75QBT1C2To,446
|
|
470
470
|
claude_mpm/scripts/__init__.py,sha256=IffMdVD99Pxyw85yluRa0VDPi4dRQecIWce764pcfZE,553
|
|
471
|
-
claude_mpm/scripts/claude-hook-handler.sh,sha256=
|
|
471
|
+
claude_mpm/scripts/claude-hook-handler.sh,sha256=aGlg1QqA27oc7sXOLO8kE9RZjXqCgGzAeUAMuZq-0_Y,10895
|
|
472
472
|
claude_mpm/scripts/launch_monitor.py,sha256=M0CSAYJp5UnoyXKnICZgrAFwqqP5XAWDCiii_IIcrCk,5348
|
|
473
473
|
claude_mpm/scripts/mpm_doctor.py,sha256=98vBiTIB4xpaSgOvTP9N3EU22V2Odxd9DivhQizG0VM,8822
|
|
474
474
|
claude_mpm/scripts/socketio_daemon.py,sha256=wWFcvKkHa_oR-NQwhvV-O8s3m1TgicBp9UQ-NR8AQmU,6041
|
|
@@ -483,7 +483,7 @@ claude_mpm/services/delegation_detector.py,sha256=ZpElqjhTbuEeeTjTMUsl-G1lHMJ9m1
|
|
|
483
483
|
claude_mpm/services/event_aggregator.py,sha256=V_5Wln1RzozLMDZawIPl5gSjIN5KHniNPaaSP11Lihc,20251
|
|
484
484
|
claude_mpm/services/event_log.py,sha256=pMKc8p2lXRoRi_cvVxaU1uNuUCNrGc0EXqBv8TeueyI,10043
|
|
485
485
|
claude_mpm/services/exceptions.py,sha256=5lVZETr_6-xk0ItH7BTfYUiX5RlckS1e8ah_UalYG9c,26475
|
|
486
|
-
claude_mpm/services/hook_installer_service.py,sha256=
|
|
486
|
+
claude_mpm/services/hook_installer_service.py,sha256=2Oioyp3LOY4Tra2hNMd_9erW2RxWA7j33ybIwKXsTmk,20049
|
|
487
487
|
claude_mpm/services/hook_service.py,sha256=I6JILbackBsdvrDNQ9TeGSB7XNqozNRP26T4E9_ROtU,15693
|
|
488
488
|
claude_mpm/services/mcp_config_manager.py,sha256=pQcu5g3lHo082TMX0RDgnfspnvW8huiKysCnFGOD54A,57792
|
|
489
489
|
claude_mpm/services/mcp_service_verifier.py,sha256=C2DhHY9R4j91WQbe1XSpfYeHjxHg2UyiJ1VQsBgjnlc,25808
|
|
@@ -1102,10 +1102,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
|
1102
1102
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
1103
1103
|
claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
|
|
1104
1104
|
claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
|
|
1105
|
-
claude_mpm-5.6.
|
|
1106
|
-
claude_mpm-5.6.
|
|
1107
|
-
claude_mpm-5.6.
|
|
1108
|
-
claude_mpm-5.6.
|
|
1109
|
-
claude_mpm-5.6.
|
|
1110
|
-
claude_mpm-5.6.
|
|
1111
|
-
claude_mpm-5.6.
|
|
1105
|
+
claude_mpm-5.6.31.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
|
|
1106
|
+
claude_mpm-5.6.31.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
|
|
1107
|
+
claude_mpm-5.6.31.dist-info/METADATA,sha256=9AEOst6iPDmwxY5OD3hWc1wxmn8Az6V8sO3De5zK7M8,15245
|
|
1108
|
+
claude_mpm-5.6.31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1109
|
+
claude_mpm-5.6.31.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
|
|
1110
|
+
claude_mpm-5.6.31.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
1111
|
+
claude_mpm-5.6.31.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|