claude-mpm 5.6.40__py3-none-any.whl → 5.6.42__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/hooks/claude_hooks/hook_handler.py +28 -0
- claude_mpm/hooks/claude_hooks/installer.py +3 -2
- claude_mpm/services/monitor/server.py +6 -1
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/METADATA +1 -1
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/RECORD +11 -26
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/WHEEL +0 -0
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/entry_points.txt +0 -0
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/licenses/LICENSE-FAQ.md +0 -0
- {claude_mpm-5.6.40.dist-info → claude_mpm-5.6.42.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.6.
|
|
1
|
+
5.6.42
|
|
@@ -1,4 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
+
# ==============================================================================
|
|
3
|
+
# CRITICAL: EARLY LOGGING SUPPRESSION - MUST BE FIRST
|
|
4
|
+
# ==============================================================================
|
|
5
|
+
# Suppress ALL logging before any other imports to prevent REPL pollution.
|
|
6
|
+
# The StreamingHandler in logger.py writes carriage returns (\r) and spaces
|
|
7
|
+
# to stderr which pollutes Claude Code's REPL output.
|
|
8
|
+
#
|
|
9
|
+
# This MUST be before any imports that could trigger module-level loggers.
|
|
10
|
+
# ==============================================================================
|
|
11
|
+
import logging as _early_logging
|
|
12
|
+
import sys as _early_sys
|
|
13
|
+
|
|
14
|
+
# Force redirect all logging to NullHandler before any module imports
|
|
15
|
+
# This prevents ANY log output from polluting stdout/stderr during hook execution
|
|
16
|
+
_early_logging.basicConfig(handlers=[_early_logging.NullHandler()], force=True)
|
|
17
|
+
# Also ensure root logger has no handlers that write to stderr
|
|
18
|
+
_early_logging.getLogger().handlers = [_early_logging.NullHandler()]
|
|
19
|
+
# Suppress all loggers by setting a very high level initially
|
|
20
|
+
_early_logging.getLogger().setLevel(_early_logging.CRITICAL + 1)
|
|
21
|
+
|
|
22
|
+
# Clean up namespace to avoid polluting module scope
|
|
23
|
+
del _early_logging
|
|
24
|
+
del _early_sys
|
|
25
|
+
|
|
26
|
+
# ==============================================================================
|
|
27
|
+
# END EARLY LOGGING SUPPRESSION
|
|
28
|
+
# ==============================================================================
|
|
29
|
+
|
|
2
30
|
"""Refactored Claude Code hook handler with modular service architecture.
|
|
3
31
|
|
|
4
32
|
This handler uses a service-oriented architecture with:
|
|
@@ -724,7 +724,8 @@ main "$@"
|
|
|
724
724
|
)
|
|
725
725
|
|
|
726
726
|
# Simple events (no subtypes, no matcher needed)
|
|
727
|
-
|
|
727
|
+
# Note: SubagentStart is NOT a valid Claude Code event (only SubagentStop is)
|
|
728
|
+
simple_events = ["Stop", "SubagentStop"]
|
|
728
729
|
for event_type in simple_events:
|
|
729
730
|
existing = settings["hooks"].get(event_type, [])
|
|
730
731
|
settings["hooks"][event_type] = merge_hooks_for_event(
|
|
@@ -843,10 +844,10 @@ main "$@"
|
|
|
843
844
|
issues.append("No hooks configured in Claude settings")
|
|
844
845
|
else:
|
|
845
846
|
# Check for required event types
|
|
847
|
+
# Note: SubagentStart is NOT a valid Claude Code event
|
|
846
848
|
required_events = [
|
|
847
849
|
"Stop",
|
|
848
850
|
"SubagentStop",
|
|
849
|
-
"SubagentStart",
|
|
850
851
|
"PreToolUse",
|
|
851
852
|
"PostToolUse",
|
|
852
853
|
]
|
|
@@ -576,8 +576,13 @@ class UnifiedMonitorServer:
|
|
|
576
576
|
event = data.get("event", "claude_event")
|
|
577
577
|
event_data = data.get("data", {})
|
|
578
578
|
|
|
579
|
+
# Extract actual event name from subtype or type within data
|
|
580
|
+
actual_event = (
|
|
581
|
+
event_data.get("subtype") or event_data.get("type") or event
|
|
582
|
+
)
|
|
583
|
+
|
|
579
584
|
# Categorize event and wrap in expected format
|
|
580
|
-
event_type = self._categorize_event(
|
|
585
|
+
event_type = self._categorize_event(actual_event)
|
|
581
586
|
wrapped_event = {
|
|
582
587
|
"type": event_type,
|
|
583
588
|
"subtype": event,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
|
|
2
|
-
claude_mpm/VERSION,sha256=
|
|
2
|
+
claude_mpm/VERSION,sha256=6i5h2VVQ0bXg54_2EfauTiWvh5YoKcSRaQiT5pvw8Nk,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
|
|
@@ -430,20 +430,12 @@ 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=VJ4kY_GMZkVv8WBAII4GTfY4qxFgoKdXpMdhEbzt980,50344
|
|
433
|
-
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=
|
|
433
|
+
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=ftrb-fF0kVTgn7VX_GxFBVoVWgLLb061AN_rpfN7BVw,32100
|
|
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=bmYWn-U9uEhZgPSUtFFuurRFyL2Mng704iYm0j2l-pY,40456
|
|
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
|
-
claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXqhPM0iRRZtCqHaLVQ6wDH42OH_M7Gt5GiFLyro,346
|
|
440
|
-
claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=lw3g7dHPcJ258xtcmbXOk-tCqVz0JAc5PZ10LUfG4Zo,20829
|
|
441
|
-
claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc,sha256=SQX5iiP9bQZkLL-cj_2tlGH7lpAzarO0mYal7btj3tc,3521
|
|
442
|
-
claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=rUcbnsARIgWenNkPv8LlHJBXmxTOExqgcwtBaBfGzg4,49040
|
|
443
|
-
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=UcqjwA6kRbd8BcTnmYekEiF98aSDszayGqbuCK-ff7s,32939
|
|
444
|
-
claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=1llucgjrun0H6q8V8_BXTHtkTiYAwNGyptluhoIi7ss,11185
|
|
445
|
-
claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc,sha256=E_pRoKx-mAB5gEv2_5TneMC_K10zj7FYCPwQPnPd88g,16228
|
|
446
|
-
claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc,sha256=ZjcNfNY5Ht6FhalPeh7M7OzMffcey5iF4AVjDDg9kak,10694
|
|
447
439
|
claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=Hb4SqNzSN-JKzp8pMM3SbDMTCsUydypfXiDx4_4QvBI,1112
|
|
448
440
|
claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=46y84lKi3KuExWyJgFcEfgLxrzQY3IjGRob_6I4hXp4,10196
|
|
449
441
|
claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=uJH0CGsszvhlg7zfEI2JB7uuxXtYBk9Yey-u2F6VoNo,7582
|
|
@@ -452,13 +444,6 @@ claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM
|
|
|
452
444
|
claude_mpm/hooks/claude_hooks/services/protocols.py,sha256=vbGAhbg1vJVwyY6zQn5cNbrZYIW0XEr5h0cR2A5G0fc,8712
|
|
453
445
|
claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=uuYJVsxIinmOhu7muqJsRZvFMN83YaoYoOWWIiORhr0,10898
|
|
454
446
|
claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=Wq0CKzgBnAtJfxiWHTipjkmFbuvMGu1mqcmQoEMMyyQ,15039
|
|
455
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc,sha256=Ourc5IO3cUSZ9lg-1SKh5HaF01L5DmWXTRl38UN35NE,1145
|
|
456
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc,sha256=a7ERR-95KADLqU8bgoPzpCvEPo0yoYjhfXq_u2sCKuk,9613
|
|
457
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc,sha256=3SkPihhEUk3S39IvnM3bZ-ijoLE0qqHMvoeeM-hebdk,15390
|
|
458
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc,sha256=Yy_REAUhJCiFjOhxeDb4v0qyEvEbUtCmXD9PAz40dhw,5321
|
|
459
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-311.pyc,sha256=rmXujh8AxeOajj_40rSug1QdKCFNl5cFjn_pQE6DExY,15962
|
|
460
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc,sha256=FkVlm20olvS286fK1SKPBDo9tOy0A9hRW0o5Gkyszuc,12352
|
|
461
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc,sha256=LILTBRAG9Wxpu_FmVod_5hnJO-wbaewqKrxEZ_GJTEI,14931
|
|
462
447
|
claude_mpm/hooks/failure_learning/__init__.py,sha256=iJ80AKFHiT8DjIH2a72DQVJvL6nAFrizNA2yTKwZ4rw,1805
|
|
463
448
|
claude_mpm/hooks/failure_learning/failure_detection_hook.py,sha256=KENoB5N-dBm5hb0SxeIZtCvNKbmG2BKHOJSrSO-3Z_I,7500
|
|
464
449
|
claude_mpm/hooks/failure_learning/fix_detection_hook.py,sha256=XUk1bnBVLdfhQ9AMQSvGsTSeFQsKsVud2wbWX-Jjor8,7164
|
|
@@ -780,7 +765,7 @@ claude_mpm/services/monitor/__init__.py,sha256=X7gxSLUm9Fg_zEsX6LtCHP2ipF0qj6Emk
|
|
|
780
765
|
claude_mpm/services/monitor/daemon.py,sha256=IfP0aE4RIW3xaNrF_RwxlorKzJoT1LQ2R3OFXpI_XGY,27534
|
|
781
766
|
claude_mpm/services/monitor/daemon_manager.py,sha256=W4g5Odf670emexERFSuLkITwt-fQYaJmbTvUqdn_meM,40541
|
|
782
767
|
claude_mpm/services/monitor/event_emitter.py,sha256=6bRpUbd-GFrGu9VxlyigVpZbM9Tr4LqSOkYxMTmc59A,12522
|
|
783
|
-
claude_mpm/services/monitor/server.py,sha256=
|
|
768
|
+
claude_mpm/services/monitor/server.py,sha256=RpwzDGukhe0V9TGDnMBr0xDrMKTyaDpq2N2JulVByDo,62939
|
|
784
769
|
claude_mpm/services/monitor/handlers/__init__.py,sha256=jgPIf4IJVERm_tAeD9834tfx9IcxtlHj5r9rhEWpkfM,701
|
|
785
770
|
claude_mpm/services/monitor/handlers/code_analysis.py,sha256=3na63aagO8DN3Z2e9c_VpStkd3-NTpA4c58b9G_Bv-Y,11404
|
|
786
771
|
claude_mpm/services/monitor/handlers/dashboard.py,sha256=FWhX4eLGedD9-KAXTBXQ5g2ZuwTUIpYQUNSxyQIzqUU,9856
|
|
@@ -1106,10 +1091,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
|
1106
1091
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
1107
1092
|
claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
|
|
1108
1093
|
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.
|
|
1094
|
+
claude_mpm-5.6.42.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
|
|
1095
|
+
claude_mpm-5.6.42.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
|
|
1096
|
+
claude_mpm-5.6.42.dist-info/METADATA,sha256=XItQDzXQ67rLHK2gK7K7AvymITxhJ5x5a_RWP186ST8,15245
|
|
1097
|
+
claude_mpm-5.6.42.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1098
|
+
claude_mpm-5.6.42.dist-info/entry_points.txt,sha256=1zA7qb37iArFuimIPKvNMoJz1WtKPNKfxfr8E_ijk30,290
|
|
1099
|
+
claude_mpm-5.6.42.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
1100
|
+
claude_mpm-5.6.42.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|