claude-mpm 4.2.13__py3-none-any.whl → 4.2.14__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/core/constants.py +65 -0
- claude_mpm/core/error_handler.py +625 -0
- claude_mpm/core/file_utils.py +770 -0
- claude_mpm/core/logging_utils.py +502 -0
- claude_mpm/dashboard/static/dist/components/code-tree.js +1 -1
- claude_mpm/dashboard/static/dist/components/file-viewer.js +1 -1
- claude_mpm/dashboard/static/dist/dashboard.js +1 -1
- claude_mpm/dashboard/static/dist/socket-client.js +1 -1
- claude_mpm/dashboard/static/js/components/code-simple.js +44 -1
- claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +353 -0
- claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +235 -0
- claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +409 -0
- claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +435 -0
- claude_mpm/dashboard/static/js/components/code-tree.js +29 -5
- claude_mpm/dashboard/static/js/components/file-viewer.js +69 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/working-directory.js +18 -9
- claude_mpm/dashboard/static/js/dashboard.js +55 -9
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +396 -0
- claude_mpm/dashboard/static/js/shared/event-bus.js +330 -0
- claude_mpm/dashboard/static/js/shared/logger.js +385 -0
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +253 -0
- claude_mpm/dashboard/static/js/socket-client.js +18 -0
- claude_mpm/dashboard/templates/index.html +21 -8
- claude_mpm/services/monitor/handlers/__init__.py +2 -1
- claude_mpm/services/monitor/handlers/file.py +263 -0
- claude_mpm/services/monitor/server.py +81 -1
- claude_mpm/services/socketio/handlers/file.py +40 -5
- {claude_mpm-4.2.13.dist-info → claude_mpm-4.2.14.dist-info}/METADATA +1 -1
- {claude_mpm-4.2.13.dist-info → claude_mpm-4.2.14.dist-info}/RECORD +34 -22
- {claude_mpm-4.2.13.dist-info → claude_mpm-4.2.14.dist-info}/WHEEL +0 -0
- {claude_mpm-4.2.13.dist-info → claude_mpm-4.2.14.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.2.13.dist-info → claude_mpm-4.2.14.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.2.13.dist-info → claude_mpm-4.2.14.dist-info}/top_level.txt +0 -0
|
@@ -16,8 +16,10 @@ DESIGN DECISIONS:
|
|
|
16
16
|
|
|
17
17
|
import asyncio
|
|
18
18
|
import threading
|
|
19
|
+
import time
|
|
20
|
+
from datetime import datetime
|
|
19
21
|
from pathlib import Path
|
|
20
|
-
from typing import Dict
|
|
22
|
+
from typing import Dict, Optional
|
|
21
23
|
|
|
22
24
|
import socketio
|
|
23
25
|
from aiohttp import web
|
|
@@ -27,6 +29,7 @@ from ...dashboard.api.simple_directory import list_directory
|
|
|
27
29
|
from .event_emitter import get_event_emitter
|
|
28
30
|
from .handlers.code_analysis import CodeAnalysisHandler
|
|
29
31
|
from .handlers.dashboard import DashboardHandler
|
|
32
|
+
from .handlers.file import FileHandler
|
|
30
33
|
from .handlers.hooks import HookHandler
|
|
31
34
|
|
|
32
35
|
# EventBus integration
|
|
@@ -66,6 +69,7 @@ class UnifiedMonitorServer:
|
|
|
66
69
|
# Event handlers
|
|
67
70
|
self.code_analysis_handler = None
|
|
68
71
|
self.dashboard_handler = None
|
|
72
|
+
self.file_handler = None
|
|
69
73
|
self.hook_handler = None
|
|
70
74
|
|
|
71
75
|
# High-performance event emitter
|
|
@@ -76,6 +80,11 @@ class UnifiedMonitorServer:
|
|
|
76
80
|
self.loop = None
|
|
77
81
|
self.server_thread = None
|
|
78
82
|
|
|
83
|
+
# Heartbeat tracking
|
|
84
|
+
self.heartbeat_task: Optional[asyncio.Task] = None
|
|
85
|
+
self.server_start_time = time.time()
|
|
86
|
+
self.heartbeat_count = 0
|
|
87
|
+
|
|
79
88
|
def start(self) -> bool:
|
|
80
89
|
"""Start the unified monitor server.
|
|
81
90
|
|
|
@@ -192,6 +201,10 @@ class UnifiedMonitorServer:
|
|
|
192
201
|
"Using high-performance async event architecture with direct calls"
|
|
193
202
|
)
|
|
194
203
|
|
|
204
|
+
# Start heartbeat task
|
|
205
|
+
self.heartbeat_task = asyncio.create_task(self._heartbeat_loop())
|
|
206
|
+
self.logger.info("Heartbeat task started (3-minute interval)")
|
|
207
|
+
|
|
195
208
|
# Setup HTTP routes
|
|
196
209
|
self._setup_http_routes()
|
|
197
210
|
|
|
@@ -221,11 +234,13 @@ class UnifiedMonitorServer:
|
|
|
221
234
|
# Create event handlers
|
|
222
235
|
self.code_analysis_handler = CodeAnalysisHandler(self.sio)
|
|
223
236
|
self.dashboard_handler = DashboardHandler(self.sio)
|
|
237
|
+
self.file_handler = FileHandler(self.sio)
|
|
224
238
|
self.hook_handler = HookHandler(self.sio)
|
|
225
239
|
|
|
226
240
|
# Register handlers
|
|
227
241
|
self.code_analysis_handler.register()
|
|
228
242
|
self.dashboard_handler.register()
|
|
243
|
+
self.file_handler.register()
|
|
229
244
|
self.hook_handler.register()
|
|
230
245
|
|
|
231
246
|
self.logger.info("Event handlers registered successfully")
|
|
@@ -475,9 +490,73 @@ class UnifiedMonitorServer:
|
|
|
475
490
|
except Exception as e:
|
|
476
491
|
self.logger.error(f"Error stopping unified monitor server: {e}")
|
|
477
492
|
|
|
493
|
+
async def _heartbeat_loop(self):
|
|
494
|
+
"""Send heartbeat events every 3 minutes."""
|
|
495
|
+
try:
|
|
496
|
+
while self.running:
|
|
497
|
+
# Wait 3 minutes (180 seconds)
|
|
498
|
+
await asyncio.sleep(180)
|
|
499
|
+
|
|
500
|
+
if not self.running:
|
|
501
|
+
break
|
|
502
|
+
|
|
503
|
+
# Increment heartbeat count
|
|
504
|
+
self.heartbeat_count += 1
|
|
505
|
+
|
|
506
|
+
# Calculate server uptime
|
|
507
|
+
uptime_seconds = int(time.time() - self.server_start_time)
|
|
508
|
+
uptime_minutes = uptime_seconds // 60
|
|
509
|
+
uptime_hours = uptime_minutes // 60
|
|
510
|
+
|
|
511
|
+
# Format uptime string
|
|
512
|
+
if uptime_hours > 0:
|
|
513
|
+
uptime_str = f"{uptime_hours}h {uptime_minutes % 60}m"
|
|
514
|
+
else:
|
|
515
|
+
uptime_str = f"{uptime_minutes}m {uptime_seconds % 60}s"
|
|
516
|
+
|
|
517
|
+
# Get connected client count
|
|
518
|
+
connected_clients = 0
|
|
519
|
+
if self.dashboard_handler:
|
|
520
|
+
connected_clients = len(self.dashboard_handler.connected_clients)
|
|
521
|
+
|
|
522
|
+
# Create heartbeat data
|
|
523
|
+
heartbeat_data = {
|
|
524
|
+
"timestamp": datetime.utcnow().isoformat() + "Z",
|
|
525
|
+
"type": "heartbeat",
|
|
526
|
+
"server_uptime": uptime_seconds,
|
|
527
|
+
"server_uptime_formatted": uptime_str,
|
|
528
|
+
"connected_clients": connected_clients,
|
|
529
|
+
"heartbeat_number": self.heartbeat_count,
|
|
530
|
+
"message": f"Server heartbeat #{self.heartbeat_count} - Socket.IO connection active",
|
|
531
|
+
"service": "unified-monitor",
|
|
532
|
+
"port": self.port,
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
# Emit heartbeat event
|
|
536
|
+
if self.sio:
|
|
537
|
+
await self.sio.emit("heartbeat", heartbeat_data)
|
|
538
|
+
self.logger.debug(
|
|
539
|
+
f"Heartbeat #{self.heartbeat_count} sent - "
|
|
540
|
+
f"{connected_clients} clients connected, uptime: {uptime_str}"
|
|
541
|
+
)
|
|
542
|
+
|
|
543
|
+
except asyncio.CancelledError:
|
|
544
|
+
self.logger.debug("Heartbeat task cancelled")
|
|
545
|
+
except Exception as e:
|
|
546
|
+
self.logger.error(f"Error in heartbeat loop: {e}")
|
|
547
|
+
|
|
478
548
|
async def _cleanup_async(self):
|
|
479
549
|
"""Cleanup async resources."""
|
|
480
550
|
try:
|
|
551
|
+
# Cancel heartbeat task if running
|
|
552
|
+
if self.heartbeat_task and not self.heartbeat_task.done():
|
|
553
|
+
self.heartbeat_task.cancel()
|
|
554
|
+
try:
|
|
555
|
+
await self.heartbeat_task
|
|
556
|
+
except asyncio.CancelledError:
|
|
557
|
+
pass
|
|
558
|
+
self.logger.debug("Heartbeat task cancelled")
|
|
559
|
+
|
|
481
560
|
# Close the Socket.IO server first to stop accepting new connections
|
|
482
561
|
if self.sio:
|
|
483
562
|
try:
|
|
@@ -544,6 +623,7 @@ class UnifiedMonitorServer:
|
|
|
544
623
|
"handlers": {
|
|
545
624
|
"code_analysis": self.code_analysis_handler is not None,
|
|
546
625
|
"dashboard": self.dashboard_handler is not None,
|
|
626
|
+
"file": self.file_handler is not None,
|
|
547
627
|
"hooks": self.hook_handler is not None,
|
|
548
628
|
},
|
|
549
629
|
}
|
|
@@ -24,6 +24,12 @@ class FileEventHandler(BaseEventHandler):
|
|
|
24
24
|
|
|
25
25
|
def register_events(self) -> None:
|
|
26
26
|
"""Register file operation event handlers."""
|
|
27
|
+
self.logger.info(
|
|
28
|
+
"[FileEventHandler] Starting registration of read_file event handler"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# Capture self reference to avoid closure issues
|
|
32
|
+
handler_self = self
|
|
27
33
|
|
|
28
34
|
@self.sio.event
|
|
29
35
|
async def read_file(sid, data):
|
|
@@ -33,13 +39,19 @@ class FileEventHandler(BaseEventHandler):
|
|
|
33
39
|
click on files, but we must ensure secure file access with
|
|
34
40
|
proper validation and size limits.
|
|
35
41
|
"""
|
|
42
|
+
handler_self.logger.info(
|
|
43
|
+
f"[FileEventHandler] Received read_file event from {sid} with data: {data}"
|
|
44
|
+
)
|
|
36
45
|
try:
|
|
37
46
|
file_path = data.get("file_path")
|
|
38
47
|
working_dir = data.get("working_dir", os.getcwd())
|
|
39
48
|
max_size = data.get("max_size", 1024 * 1024) # 1MB default limit
|
|
40
49
|
|
|
41
50
|
if not file_path:
|
|
42
|
-
|
|
51
|
+
handler_self.logger.warning(
|
|
52
|
+
f"[FileEventHandler] Missing file_path in request from {sid}"
|
|
53
|
+
)
|
|
54
|
+
await handler_self.emit_to_client(
|
|
43
55
|
sid,
|
|
44
56
|
"file_content_response",
|
|
45
57
|
{
|
|
@@ -51,14 +63,29 @@ class FileEventHandler(BaseEventHandler):
|
|
|
51
63
|
return
|
|
52
64
|
|
|
53
65
|
# Use the shared file reading logic
|
|
54
|
-
|
|
66
|
+
handler_self.logger.info(
|
|
67
|
+
f"[FileEventHandler] Reading file: {file_path} from working_dir: {working_dir}"
|
|
68
|
+
)
|
|
69
|
+
result = await handler_self._read_file_safely(
|
|
70
|
+
file_path, working_dir, max_size
|
|
71
|
+
)
|
|
55
72
|
|
|
56
73
|
# Send the result back to the client
|
|
57
|
-
|
|
74
|
+
handler_self.logger.info(
|
|
75
|
+
f"[FileEventHandler] Sending file_content_response to {sid}, success: {result.get('success', False)}"
|
|
76
|
+
)
|
|
77
|
+
await handler_self.emit_to_client(sid, "file_content_response", result)
|
|
78
|
+
handler_self.logger.info(
|
|
79
|
+
f"[FileEventHandler] Response sent successfully to {sid}"
|
|
80
|
+
)
|
|
58
81
|
|
|
59
82
|
except Exception as e:
|
|
60
|
-
|
|
61
|
-
|
|
83
|
+
handler_self.logger.error(
|
|
84
|
+
f"[FileEventHandler] Exception in read_file handler: {e}",
|
|
85
|
+
exc_info=True,
|
|
86
|
+
)
|
|
87
|
+
handler_self.log_error("read_file", e, data)
|
|
88
|
+
await handler_self.emit_to_client(
|
|
62
89
|
sid,
|
|
63
90
|
"file_content_response",
|
|
64
91
|
{
|
|
@@ -67,6 +94,14 @@ class FileEventHandler(BaseEventHandler):
|
|
|
67
94
|
"file_path": data.get("file_path", "unknown"),
|
|
68
95
|
},
|
|
69
96
|
)
|
|
97
|
+
handler_self.logger.info(
|
|
98
|
+
f"[FileEventHandler] Error response sent to {sid}"
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Log successful registration
|
|
102
|
+
self.logger.info(
|
|
103
|
+
"[FileEventHandler] read_file event handler registered successfully"
|
|
104
|
+
)
|
|
70
105
|
|
|
71
106
|
async def _read_file_safely(
|
|
72
107
|
self,
|
|
@@ -137,10 +137,12 @@ claude_mpm/core/claude_runner.py,sha256=e6ob7FwcBzvhw9gnPvmL8Zw_BasdfzuV8b1dvqtv
|
|
|
137
137
|
claude_mpm/core/config.py,sha256=3TrDkcraWdij6LZ3Vermg3CadLy8XqxkAJ3k5qYAniw,39356
|
|
138
138
|
claude_mpm/core/config_aliases.py,sha256=asgAgMGlZSv-5PXPBH8e__QfwJQy_Or9ldPD9yzCrM0,9643
|
|
139
139
|
claude_mpm/core/config_constants.py,sha256=MEF35Y2Lj5FMzRdhgSgZrZeTzHfCzistPGZVY8INta4,10073
|
|
140
|
-
claude_mpm/core/constants.py,sha256=
|
|
140
|
+
claude_mpm/core/constants.py,sha256=uBCd4kUbwSFKW79pH7_yUzRpMoNY2AcAflENTkIZIaU,11558
|
|
141
141
|
claude_mpm/core/container.py,sha256=tktmoChULNzNm_wUNR0YCzzRO8wH2AEy-hCaCFis4JU,32137
|
|
142
|
+
claude_mpm/core/error_handler.py,sha256=S6ZNQ7X3SEkkSsaUVzZeI8cjS7ZdaL_e7c6b8Uzx4T0,19248
|
|
142
143
|
claude_mpm/core/exceptions.py,sha256=vrEJGpgThvqRRD6qsNkmaQcYAoUMQSNuHUOnNFJcEGg,19628
|
|
143
144
|
claude_mpm/core/factories.py,sha256=vtlwkbpxeWzqgPRGO1ehnMOzddLCHWTeiKa8halV_dU,7271
|
|
145
|
+
claude_mpm/core/file_utils.py,sha256=RNsWchLFjEq-2z6XEJtM-iv5yhLXLngKX66rojeNE9c,19912
|
|
144
146
|
claude_mpm/core/framework_loader.py,sha256=-3081VeWTZpId3fBaomqHy15aYQiRFfIgWF3WVMazK8,77649
|
|
145
147
|
claude_mpm/core/hook_manager.py,sha256=_Y7QWv8MfZgSHbKmWYfojuDRPxC2niZgOb7JkeUFQaE,11059
|
|
146
148
|
claude_mpm/core/hook_performance_config.py,sha256=e7a7oFctkRhA3aPXMO5Wavr-E6ku7ikLxMzPU7P1-yg,5779
|
|
@@ -152,6 +154,7 @@ claude_mpm/core/lazy.py,sha256=6EYpXGZwsMAMQ3GXepNtyw_b7IxDwOTjfOVE6mV-S2s,14774
|
|
|
152
154
|
claude_mpm/core/log_manager.py,sha256=dM0E5Q_LGoIBZO5SPXGvIuD8d6fW9WxgJICRuHGjhQ8,21798
|
|
153
155
|
claude_mpm/core/logger.py,sha256=zgC6eJ8SJ2uet6Nq3ZwCoeXJm39tirDBM5QUh_p_gKo,20722
|
|
154
156
|
claude_mpm/core/logging_config.py,sha256=tCxM3EpSmjZ7kT7hckQxQZlrxuWVm4g-qu9RHe8hDcw,14588
|
|
157
|
+
claude_mpm/core/logging_utils.py,sha256=XPaNQeuJvKUpaeoxktQTRmqCGsOH90OTg1pDt7Bbypo,15004
|
|
155
158
|
claude_mpm/core/minimal_framework_loader.py,sha256=vmDEjL3MjnV7W4WIR-ymaL8QgsGsgxJJ0KdiQqAtudM,3640
|
|
156
159
|
claude_mpm/core/mixins.py,sha256=vmZ7Nu2ZOnKjbhN07Ixk4noIej9nsJiknrp-Sclfu0A,5344
|
|
157
160
|
claude_mpm/core/oneshot_session.py,sha256=QkSw-gs7tTQkdKQiZh7mbia5hc5PMt_xaMoDY-9_bZk,17693
|
|
@@ -204,17 +207,17 @@ claude_mpm/dashboard/static/css/activity.css,sha256=0SJUwGB6fr4OlVqMwhvVKrPndg2R
|
|
|
204
207
|
claude_mpm/dashboard/static/css/code-tree.css,sha256=Sx74ilt7exGOdxCBEtjP9gZ74lB5e8QWr3_SIcl_0hw,30708
|
|
205
208
|
claude_mpm/dashboard/static/css/connection-status.css,sha256=nQiMLxIFjY5MDgrVCG58VR5H1PpE1vLlgXmnn01-P64,6729
|
|
206
209
|
claude_mpm/dashboard/static/css/dashboard.css,sha256=Uc97_y9UL6waqnx6bDdXkJUqPjj7w8B064C5xeJnlrg,85774
|
|
207
|
-
claude_mpm/dashboard/static/dist/dashboard.js,sha256=
|
|
208
|
-
claude_mpm/dashboard/static/dist/socket-client.js,sha256=
|
|
210
|
+
claude_mpm/dashboard/static/dist/dashboard.js,sha256=tc8XJaiwaPJF09_6O_Sy1BTHTNH_j3jkvRfIOViep7c,47603
|
|
211
|
+
claude_mpm/dashboard/static/dist/socket-client.js,sha256=mT4kPTg5wDSX86UEKR9TbVy_6cm2fxgs4v1LQFT_XYc,28893
|
|
209
212
|
claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=c7vYmCvMgq7irVrX-EFbNqVMgVuDJ_cwcvsZ4LSO3bU,29594
|
|
210
213
|
claude_mpm/dashboard/static/dist/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
|
|
211
|
-
claude_mpm/dashboard/static/dist/components/code-tree.js,sha256=
|
|
214
|
+
claude_mpm/dashboard/static/dist/components/code-tree.js,sha256=TxTyCUdmilFH_QYmClk-hN0_QHmtNroZ3Ovxi7KImjc,96245
|
|
212
215
|
claude_mpm/dashboard/static/dist/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
|
|
213
216
|
claude_mpm/dashboard/static/dist/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
|
|
214
217
|
claude_mpm/dashboard/static/dist/components/event-viewer.js,sha256=oyfvK8VO1RNSyN1CRoZiB22cNJ4D05p_ahM8WPCH27k,24902
|
|
215
218
|
claude_mpm/dashboard/static/dist/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
|
|
216
219
|
claude_mpm/dashboard/static/dist/components/file-tool-tracker.js,sha256=fZgUsg_u52KRYZFQooF_ZZjvKvYHaY9N7uJIS3XR9s8,9824
|
|
217
|
-
claude_mpm/dashboard/static/dist/components/file-viewer.js,sha256=
|
|
220
|
+
claude_mpm/dashboard/static/dist/components/file-viewer.js,sha256=FXTNKfHZuFhE2YXmNJFXgM2ig8dc1OyP6wmPcGMK6C4,13032
|
|
218
221
|
claude_mpm/dashboard/static/dist/components/hud-library-loader.js,sha256=v08Xntd0Lwf-q6Nww1X2r5AWokYLgg9xUWe6ExHiNAg,2964
|
|
219
222
|
claude_mpm/dashboard/static/dist/components/hud-manager.js,sha256=CvgzgqprROjl0DP4yQx4aAypONuNlzU2EP8woGk-8Sc,27392
|
|
220
223
|
claude_mpm/dashboard/static/dist/components/hud-visualizer.js,sha256=igUUu1OLKOgwrdsfCEb-bKOsbi61bMLlpKa3hR2wQdI,69
|
|
@@ -225,33 +228,41 @@ claude_mpm/dashboard/static/dist/components/ui-state-manager.js,sha256=PtZs6sxNh
|
|
|
225
228
|
claude_mpm/dashboard/static/dist/components/unified-data-viewer.js,sha256=pMA1iYfpmDObyySbGCUT2240fSrcqZmgfjxXrnHsnlM,36759
|
|
226
229
|
claude_mpm/dashboard/static/dist/components/working-directory.js,sha256=xE1ydpKDzRWrzHzfjrCiq5wbf3vDhmgQTGKS7myQcPM,15790
|
|
227
230
|
claude_mpm/dashboard/static/js/connection-manager.js,sha256=nn7x1jmwEnBClcChbFk1uMhRPu5U1xmXz3sjuo0LNm4,17981
|
|
228
|
-
claude_mpm/dashboard/static/js/dashboard.js,sha256=
|
|
231
|
+
claude_mpm/dashboard/static/js/dashboard.js,sha256=UYNtaBDK_Z8WEnXL5ElVqMtxUHTq64_29tY0SCt-eQw,67479
|
|
229
232
|
claude_mpm/dashboard/static/js/extension-error-handler.js,sha256=DZHrJ3gbfv4nsjmZpNMj-Sc3GKjVJ5ds8lgoaLRnq5I,6274
|
|
230
|
-
claude_mpm/dashboard/static/js/socket-client.js,sha256=
|
|
233
|
+
claude_mpm/dashboard/static/js/socket-client.js,sha256=LQyB7jf8oCqJ3uNyZ3WEix2faMO1TbMyIoV9a-ebScE,57251
|
|
231
234
|
claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=1j46X0qjYReP6gwv0WGRpJSJNuBwuj6bKmumWrCZKUo,72740
|
|
232
235
|
claude_mpm/dashboard/static/js/components/agent-hierarchy.js,sha256=Xihxog_vJrk8VBEkDogV_wbye2GIFWmH71VQ1lETOHk,28243
|
|
233
236
|
claude_mpm/dashboard/static/js/components/agent-inference.js,sha256=RUVZ_fLOyDkHYjrROen_Pzzay79Bh29eXp_GRIPbIRg,37493
|
|
234
237
|
claude_mpm/dashboard/static/js/components/build-tracker.js,sha256=iouv35tNhnyx9UKtD7X1eakJkpCnvZVCrAJ_VdzsKUY,11251
|
|
235
|
-
claude_mpm/dashboard/static/js/components/code-simple.js,sha256=
|
|
236
|
-
claude_mpm/dashboard/static/js/components/code-tree.js,sha256=
|
|
238
|
+
claude_mpm/dashboard/static/js/components/code-simple.js,sha256=2yOEr5ziM0rKlsE65cemZIlFK31ylmcJeXAQZFHQF5Y,33797
|
|
239
|
+
claude_mpm/dashboard/static/js/components/code-tree.js,sha256=Fi3s9Psojgj2lH9cXPAINc4n-Z_y9KLjiCkM9VpYyoo,223576
|
|
237
240
|
claude_mpm/dashboard/static/js/components/code-viewer.js,sha256=vhesEPYOM6MggweaYvYsv7ufVbuVpIcyJPXpJXyJwpM,14453
|
|
238
241
|
claude_mpm/dashboard/static/js/components/connection-debug.js,sha256=Qxr_ofDNkxDlZAwbLnhZkXVMyuO9jOe-NMWC9VHxNnA,22196
|
|
239
242
|
claude_mpm/dashboard/static/js/components/event-processor.js,sha256=pP15JIf2yEh7gqEdam42m_B1B4hDlfKbkDcGmQhyjM8,20567
|
|
240
243
|
claude_mpm/dashboard/static/js/components/event-viewer.js,sha256=Ahl9eTxCYMhDC_533Gf4O96S04W5O_Ts0PAGWSVivkI,43672
|
|
241
244
|
claude_mpm/dashboard/static/js/components/export-manager.js,sha256=T1YtaR758FaB9aP_5V1xZC9EBIFQOG5H8f_sLopxR5A,11863
|
|
242
245
|
claude_mpm/dashboard/static/js/components/file-tool-tracker.js,sha256=y8O7kW5uP6KBT2gWvjRoH1aJG-7o1qzyrVnvShsNAK0,28620
|
|
243
|
-
claude_mpm/dashboard/static/js/components/file-viewer.js,sha256=
|
|
246
|
+
claude_mpm/dashboard/static/js/components/file-viewer.js,sha256=Q9twY64RJD4ozcsI9k0foUvDCCsDMWCX-ojywqImhNY,19777
|
|
244
247
|
claude_mpm/dashboard/static/js/components/hud-library-loader.js,sha256=SK6tY8TL88lnewi4M-i092HdgYondv_lVfHoQ-A_cWU,7170
|
|
245
248
|
claude_mpm/dashboard/static/js/components/hud-manager.js,sha256=hpvz1Ls5UcNgTbwjl7tK0OgNZ_QHnRXgNqqYaq4jjvM,25956
|
|
246
249
|
claude_mpm/dashboard/static/js/components/hud-visualizer.js,sha256=crgq3eA4xiXDE4SV9m-S94Of2y7znd1a3F4GYn2yjnU,61127
|
|
247
250
|
claude_mpm/dashboard/static/js/components/module-viewer.js,sha256=Ndw3ZDLRP4xaMw2akEH5Dvkof4Vp9umk8yFQzQntLkI,109010
|
|
248
|
-
claude_mpm/dashboard/static/js/components/session-manager.js,sha256=
|
|
251
|
+
claude_mpm/dashboard/static/js/components/session-manager.js,sha256=fPzAB-H4a5cjbxplpiiFglGzl54Vnrvlu9n6BWN0Kjk,22777
|
|
249
252
|
claude_mpm/dashboard/static/js/components/socket-manager.js,sha256=KC-aOJDEPSiMPYk0ABgvCC1xmO7TVQ4SVqohi2GNsWQ,13303
|
|
250
253
|
claude_mpm/dashboard/static/js/components/ui-state-manager.js,sha256=EWm0HpPI9TShChitRCyZvZCiUk5rIBVyw10BoHdnTzI,13178
|
|
251
254
|
claude_mpm/dashboard/static/js/components/unified-data-viewer.js,sha256=afHCGAg7v3PVhmOr77Bzx3TTZlzHI_5pq16ut3xEYWk,65302
|
|
252
|
-
claude_mpm/dashboard/static/js/components/working-directory.js,sha256=
|
|
255
|
+
claude_mpm/dashboard/static/js/components/working-directory.js,sha256=BMzcjZ3VNGMhfj0tPQlozxgBOTvyan8AnIwpOUlubAc,33951
|
|
256
|
+
claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js,sha256=oijL6R5JFqSm9aHEbh46D7rgK_EDSmAGW-PO2vmacGM,10481
|
|
257
|
+
claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js,sha256=aqsoqklN92XmeiYN6V1zl-_EEcyNSEnqn46f6du5Pm4,6357
|
|
258
|
+
claude_mpm/dashboard/static/js/components/code-tree/tree-search.js,sha256=n7rbxIlE8ahBZVpGf0v4m4P0m2XmzaZtzNPPvqpjXRk,11788
|
|
259
|
+
claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js,sha256=gEjjClXna7BxIsVhmYegahuO49kaE0FbbmHvV0oMmk8,12913
|
|
260
|
+
claude_mpm/dashboard/static/js/shared/dom-helpers.js,sha256=PXY8iLBJqsWP_NNyFiSgnxu7cGzhnjjjiKHkJj7Z3SU,12233
|
|
261
|
+
claude_mpm/dashboard/static/js/shared/event-bus.js,sha256=aV2QMt8Ris1BFxuFUYoOvMYXb3M4AmPHsppaBDbbxXo,9906
|
|
262
|
+
claude_mpm/dashboard/static/js/shared/logger.js,sha256=nQE-6b8pAAhWsafgon6UT-ueyOmhukrNFaGkcT77RS0,10431
|
|
263
|
+
claude_mpm/dashboard/static/js/shared/tooltip-service.js,sha256=T0_0koY2SNHTlctzU4Z5VBH0EWRXmO-ODo9WvO2HUto,7588
|
|
253
264
|
claude_mpm/dashboard/templates/code_simple.html,sha256=xrmTLFow0M5NWFlk4ci1eLWML-IHr35i5pqIVaEg2TU,4329
|
|
254
|
-
claude_mpm/dashboard/templates/index.html,sha256
|
|
265
|
+
claude_mpm/dashboard/templates/index.html,sha256=bwSSJr1bBQngE-Hf3fWMoVE8MrMvLquWAbKbDPXY4RA,31651
|
|
255
266
|
claude_mpm/experimental/__init__.py,sha256=R_aclOvWpvSTHWAx9QXyg9OIPVK2dXT5tQJhxLQN11Y,369
|
|
256
267
|
claude_mpm/experimental/cli_enhancements.py,sha256=rlYOMVlj8vQzuyCkHWQ7TtjcsDeFq3y1Ng5qty2fyY8,11486
|
|
257
268
|
claude_mpm/generators/__init__.py,sha256=rG8vwF_BjPmeMKvyMXpUA8uJ-7mtW2HTNfalZzgRlNk,153
|
|
@@ -532,10 +543,11 @@ claude_mpm/services/memory/cache/simple_cache.py,sha256=qsTjbcsPxj-kNfaod9VN_uE5
|
|
|
532
543
|
claude_mpm/services/monitor/__init__.py,sha256=X7gxSLUm9Fg_zEsX6LtCHP2ipF0qj6Emkun20h2So7g,745
|
|
533
544
|
claude_mpm/services/monitor/daemon.py,sha256=9PyhEXpMUJ1LBmZdoLwzQmfjdCnXn8GeErywBnMScoY,12588
|
|
534
545
|
claude_mpm/services/monitor/event_emitter.py,sha256=JzRLNg8PUJ5s3ulNnq_D4yqCPItvidJzu8DmFxriieQ,12224
|
|
535
|
-
claude_mpm/services/monitor/server.py,sha256=
|
|
536
|
-
claude_mpm/services/monitor/handlers/__init__.py,sha256=
|
|
546
|
+
claude_mpm/services/monitor/server.py,sha256=wyOT0dnXXpTVulnG29kgRKaPjzhTojFRvraRTAVnr9U,25150
|
|
547
|
+
claude_mpm/services/monitor/handlers/__init__.py,sha256=jgPIf4IJVERm_tAeD9834tfx9IcxtlHj5r9rhEWpkfM,701
|
|
537
548
|
claude_mpm/services/monitor/handlers/code_analysis.py,sha256=mHyI27Wp6WVmUBc0m0i991ogyFZBTvkrfR7Kf3EAk5U,11474
|
|
538
549
|
claude_mpm/services/monitor/handlers/dashboard.py,sha256=uGBhb-6RG6u4WLipUXgdx7RCW-vb_qek5dIfHIwAC7o,9805
|
|
550
|
+
claude_mpm/services/monitor/handlers/file.py,sha256=p3C4wffl0GIcN00b-KkrmZ8F-AmdZlGqLzBqQcqZ9Ns,9729
|
|
539
551
|
claude_mpm/services/monitor/handlers/hooks.py,sha256=s9CVlDLd-onH6WCOPeN06UjpEYVfuGjHw_icz220K_M,16533
|
|
540
552
|
claude_mpm/services/monitor/management/__init__.py,sha256=mxaEFRgvvgV85gUpXu_DsnHtywihdP14EisvISAVZuQ,525
|
|
541
553
|
claude_mpm/services/monitor/management/health.py,sha256=Wm92Cli_4cWD6B89KX_CdpAvvevuEaGB8Ah59ILhFww,3772
|
|
@@ -566,7 +578,7 @@ claude_mpm/services/socketio/handlers/base.py,sha256=DjUODCOLTQSsC_-NP9yr-8g77ar
|
|
|
566
578
|
claude_mpm/services/socketio/handlers/code_analysis.py,sha256=BmcJiygXaCVjVJndE-GFi4eN7_b8v7mqScddMTj5DUk,26271
|
|
567
579
|
claude_mpm/services/socketio/handlers/connection.py,sha256=sa6Rg5Y9tcf-e4PEb6f4fNhFQcpZ9WbwdiGXmkzlFTs,26781
|
|
568
580
|
claude_mpm/services/socketio/handlers/connection_handler.py,sha256=DTY0pa--HQu4C6-WCgE1zskvHm3gVuEKWwaSFNBAoec,13287
|
|
569
|
-
claude_mpm/services/socketio/handlers/file.py,sha256=
|
|
581
|
+
claude_mpm/services/socketio/handlers/file.py,sha256=28ghfPO8-7jZuX723WzW3vDHg6H6iJ3pvfneDA3mf5A,9866
|
|
570
582
|
claude_mpm/services/socketio/handlers/git.py,sha256=xIjGGShyVNXzCtJfydbbnFTJhqzXwHLzGhLrqgy0JGQ,37934
|
|
571
583
|
claude_mpm/services/socketio/handlers/hook.py,sha256=JVQufL_u85z3r-n3fnKExuziheJ2lzY6d0GDoUB9iXs,7786
|
|
572
584
|
claude_mpm/services/socketio/handlers/memory.py,sha256=Ape6cCMe3uOgMiXRbgQttvgHUABsFXrrxQ9OI-mGM8M,971
|
|
@@ -620,9 +632,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
|
|
|
620
632
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
621
633
|
claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
|
|
622
634
|
claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
|
|
623
|
-
claude_mpm-4.2.
|
|
624
|
-
claude_mpm-4.2.
|
|
625
|
-
claude_mpm-4.2.
|
|
626
|
-
claude_mpm-4.2.
|
|
627
|
-
claude_mpm-4.2.
|
|
628
|
-
claude_mpm-4.2.
|
|
635
|
+
claude_mpm-4.2.14.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
|
636
|
+
claude_mpm-4.2.14.dist-info/METADATA,sha256=AjAb1374OGRoa63GQQSviTHkHFRuTry1TLeZO4YZJJY,13777
|
|
637
|
+
claude_mpm-4.2.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
638
|
+
claude_mpm-4.2.14.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
|
|
639
|
+
claude_mpm-4.2.14.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
640
|
+
claude_mpm-4.2.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|