claude-mpm 4.7.2__py3-none-any.whl → 4.7.4__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.
@@ -204,23 +204,6 @@
204
204
  <div class="header-row">
205
205
  <div class="header-title">
206
206
  <h1>🚀 Claude MPM Monitor</h1>
207
- <a href="/static/monitors-index.html" style="
208
- display: inline-block;
209
- margin-left: 20px;
210
- padding: 8px 16px;
211
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
212
- color: white;
213
- text-decoration: none;
214
- border-radius: 8px;
215
- font-size: 14px;
216
- font-weight: 500;
217
- transition: transform 0.2s, box-shadow 0.2s;
218
- vertical-align: middle;
219
- "
220
- onmouseover="this.style.transform='translateY(-2px)'; this.style.boxShadow='0 5px 15px rgba(102, 126, 234, 0.4)';"
221
- onmouseout="this.style.transform=''; this.style.boxShadow='';">
222
- Try New Dashboard →
223
- </a>
224
207
  <div id="connection-status" class="status-badge status-disconnected">
225
208
  <span>●</span> Disconnected
226
209
  </div>
@@ -150,23 +150,6 @@
150
150
  <div class="header-row">
151
151
  <div class="header-title">
152
152
  <h1>🚀 Claude MPM Monitor</h1>
153
- <a href="/static/monitors-index.html" style="
154
- display: inline-block;
155
- margin-left: 20px;
156
- padding: 8px 16px;
157
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
158
- color: white;
159
- text-decoration: none;
160
- border-radius: 8px;
161
- font-size: 14px;
162
- font-weight: 500;
163
- transition: transform 0.2s, box-shadow 0.2s;
164
- vertical-align: middle;
165
- "
166
- onmouseover="this.style.transform='translateY(-2px)'; this.style.boxShadow='0 5px 15px rgba(102, 126, 234, 0.4)';"
167
- onmouseout="this.style.transform=''; this.style.boxShadow='';">
168
- Try New Dashboard →
169
- </a>
170
153
  <div id="connection-status" class="status-badge status-disconnected">
171
154
  <span>●</span> Disconnected
172
155
  </div>
@@ -16,6 +16,7 @@ Author: Claude MPM Development Team
16
16
  Created: 2025-01-26
17
17
  """
18
18
 
19
+ import os
19
20
  import subprocess
20
21
  from datetime import datetime, timedelta, timezone
21
22
  from pathlib import Path
@@ -32,10 +33,36 @@ console = Console()
32
33
  class EnhancedProjectAnalyzer:
33
34
  """Enhanced project analyzer with git history support."""
34
35
 
35
- def __init__(self, project_path: Path):
36
- """Initialize the enhanced analyzer."""
37
- self.project_path = project_path
38
- self.is_git_repo = (project_path / ".git").exists()
36
+ def __init__(self, project_path: Optional[Path] = None):
37
+ """
38
+ Initialize the enhanced analyzer.
39
+
40
+ Args:
41
+ project_path: Path to the project. If None, uses CLAUDE_MPM_USER_PWD
42
+ environment variable or current working directory.
43
+ """
44
+ # Determine project path with proper priority
45
+ if project_path is None:
46
+ # Try environment variable first (user's project, not framework)
47
+ env_path = os.getenv("CLAUDE_MPM_USER_PWD")
48
+ if env_path:
49
+ self.project_path = Path(env_path)
50
+ else:
51
+ self.project_path = Path.cwd()
52
+ else:
53
+ self.project_path = project_path
54
+
55
+ # Ensure path is absolute
56
+ if not self.project_path.is_absolute():
57
+ self.project_path = self.project_path.resolve()
58
+
59
+ # Check if it's a git repository
60
+ git_dir = self.project_path / ".git"
61
+ self.is_git_repo = git_dir.exists() and git_dir.is_dir()
62
+
63
+ # Log warning if not a git repository
64
+ if not self.is_git_repo:
65
+ logger.debug(f"Directory is not a git repository: {self.project_path}")
39
66
 
40
67
  def analyze_git_history(self, days_back: int = 30) -> Dict:
41
68
  """Analyze git history for recent changes and patterns."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.7.2
3
+ Version: 4.7.4
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
2
- claude_mpm/VERSION,sha256=lkv5sInR4clHT0uqsckJ7ir_wf6pRk7Or107jSzlVfQ,6
2
+ claude_mpm/VERSION,sha256=7l6EwjOR-pq8p3cqBD3TobvpQd2ubAiLeapnXloBUX4,6
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=cChN3myrAcF3jC-6DvHnBFTEnwlDk-TAsIXPvUZr_yw,5953
@@ -16,7 +16,7 @@ claude_mpm/agents/BASE_RESEARCH.md,sha256=2DZhDd5XxWWtsyNTBIwvtNWBu1JpFy5R5SAZDH
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
18
  claude_mpm/agents/OUTPUT_STYLE.md,sha256=IYbo4jmICihrfnChbdrRpwVk4VobCcNyYqZqd53VXMk,533
19
- claude_mpm/agents/PM_INSTRUCTIONS.md,sha256=Gp3vyt8_ufp0tWbiBrpYI4MwucxzedumNRiRyWIekhg,41104
19
+ claude_mpm/agents/PM_INSTRUCTIONS.md,sha256=-FWemY4obkXpmuJ9oUPdqenKhAEjnRV-oIyusVGYnOY,41026
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
22
22
  claude_mpm/agents/agent-template.yaml,sha256=mRlz5Yd0SmknTeoJWgFkZXzEF5T7OmGBJGs2-KPT93k,1969
@@ -45,7 +45,7 @@ claude_mpm/agents/templates/memory_manager.json,sha256=h1DCAn5Wd8TbTzCGjqZ9I8LgG
45
45
  claude_mpm/agents/templates/nextjs_engineer.json,sha256=9m0cT-AKEhMYV0AocRNESrEMg36FIR03RYA1cZOeFTA,19256
46
46
  claude_mpm/agents/templates/ops.json,sha256=z6qQyMOxuMMqL8kL8lsh0BsRa0kLgAozVsz-K6sOmkA,10912
47
47
  claude_mpm/agents/templates/php-engineer.json,sha256=K3VovBySAnUz1yFTU0HHa6ojoPx2ggwAgwNmNdskB7A,20386
48
- claude_mpm/agents/templates/project_organizer.json,sha256=sqGoA0eHSWIrpUskruKFUy0EFvzAOhUrAxPea6C5vLg,5632
48
+ claude_mpm/agents/templates/project_organizer.json,sha256=-u0JqiEjx9igxFbfHWwW8RLvhtPZld6FS2j6Hys9mA8,7314
49
49
  claude_mpm/agents/templates/prompt-engineer.json,sha256=WWBGnJxQPbixNUyDXDxuhaKfZ9KdB8bYwk2tT8HZ4UM,37300
50
50
  claude_mpm/agents/templates/python_engineer.json,sha256=5I3C2JDd6arZ49k70o35JOQIFflgdUyxK1kWMYZiuEs,17880
51
51
  claude_mpm/agents/templates/qa.json,sha256=B_pWrC78G3lOfxmKweOzbdG9fYOG42w6gSJTCkabDQs,10414
@@ -96,8 +96,8 @@ claude_mpm/cli/commands/mcp_setup_external.py,sha256=hfBHkaioNa0JRDhahNEc8agyrUw
96
96
  claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
97
97
  claude_mpm/cli/commands/memory.py,sha256=O4T5HGL-Ob_QPt2dZHQvoOrVohnaDKrBjyngq1Mcv1w,26185
98
98
  claude_mpm/cli/commands/monitor.py,sha256=Fjb68hf3dEwTFek2LV8Nh6iU0qEkY7qYlOn32IwNaNg,9566
99
- claude_mpm/cli/commands/mpm_init.py,sha256=QpkB-gw1nRhHfZn1PfdAS_rL8dFeerq_AGqz0za8Kco,45094
100
- claude_mpm/cli/commands/mpm_init_handler.py,sha256=X7ENga7k2_b3GEJ5obB9LHuxHUEC9F49Ooz7cZCn-dg,3294
99
+ claude_mpm/cli/commands/mpm_init.py,sha256=OLkoRLGTT7Y9pxsTev22KfK4DfHz9HlfZdKvxu9XAyI,63075
100
+ claude_mpm/cli/commands/mpm_init_handler.py,sha256=b1CSwZYJ89wMorKzPOKS-RVxOKR2kT9yv9KQLvKkd2U,3532
101
101
  claude_mpm/cli/commands/run.py,sha256=PB2H55piOPTy4yo4OBgbUCjMlcz9K79wbwpxQVc9m5Q,48225
102
102
  claude_mpm/cli/commands/search.py,sha256=_0qbUnop8v758MHsB0fAop8FVxwygD59tec_-iN7pLE,9806
103
103
  claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
@@ -118,7 +118,7 @@ claude_mpm/cli/parsers/debug_parser.py,sha256=F7MZdmiXiPfiIPMv21ZUqB2cMT8Ho1LDmp
118
118
  claude_mpm/cli/parsers/mcp_parser.py,sha256=2j6ULhdu55Z2k_-Gu2QxIsFoTQFbDCEMSGePXSuPoQQ,6532
119
119
  claude_mpm/cli/parsers/memory_parser.py,sha256=ZwCDxJEgp-w03L-1tZsWTgisiwamP42s424bA5bvDJc,4760
120
120
  claude_mpm/cli/parsers/monitor_parser.py,sha256=PeoznSi_5Bw6THK_Espl8M20o6dKvvBSmFzAbovkaFQ,4920
121
- claude_mpm/cli/parsers/mpm_init_parser.py,sha256=js8dmgb4d90-XBg6S7uJEb4cXFMiffUN50TfEi8JOtU,6223
121
+ claude_mpm/cli/parsers/mpm_init_parser.py,sha256=jMV67caBeC-LV-oOuAGJXvFbiBJQ4nGcl6ggfX0_7jI,7662
122
122
  claude_mpm/cli/parsers/run_parser.py,sha256=cs34qNonFZG8uYxTYEt0rXi2LcPz3pw8D8hxiywih6w,4927
123
123
  claude_mpm/cli/parsers/search_parser.py,sha256=L8-65kndg-zutSKpzj-eCvTNkeySCZ-WlSHdhk7pEak,6916
124
124
  claude_mpm/cli/parsers/tickets_parser.py,sha256=FYl-VNH7PrZzfZUCcjnf6F7g6JXnL8YDxwrmR5svIcg,6966
@@ -135,9 +135,10 @@ claude_mpm/commands/__init__.py,sha256=paX5Ub5-UmRgiQ8UgKWIKwU2-RjLu67OmNJND-fVt
135
135
  claude_mpm/commands/mpm-agents.md,sha256=JnYPJ-eWvIEEtiCB6iPu182P2xDBRvU3ArVXQ7h32kU,1341
136
136
  claude_mpm/commands/mpm-config.md,sha256=79Eb-srRpEVV3HCHDHZc8SKec6_LVP6HbXDEVkZKLgw,2929
137
137
  claude_mpm/commands/mpm-doctor.md,sha256=ut5LhFKVRw-2ecjMSPsnaTiRuFXa6Q9t-Wgl3CCnQvk,590
138
- claude_mpm/commands/mpm-help.md,sha256=Dik-wLRNeU2c96L6WXLeAqGsqmv6R5YwoKQLyh6UIP0,2743
139
- claude_mpm/commands/mpm-init.md,sha256=Rpzm_ZnhJ8Q9zD9GQIRHZcU6WhQ0rA7mEPWToWMFTXU,7996
140
- claude_mpm/commands/mpm-organize.md,sha256=JDP32AFX-j8FfsogiPwPiyoTnli6wPClqF3Kj8M6tf0,9167
138
+ claude_mpm/commands/mpm-help.md,sha256=zfhpE0Fd-wW5zWmYYAMRMT-xYK8saqbw-HXRD7csJHI,2850
139
+ claude_mpm/commands/mpm-init.md,sha256=hVVr71X0w67O08B_x9wP2FRijtkLUVIHWDi-0FSBRPA,10291
140
+ claude_mpm/commands/mpm-monitor.md,sha256=onTHf9Yac1KkdZdENtY2Q5jyw0A-vZLYgoKkPCtZLUY,12193
141
+ claude_mpm/commands/mpm-organize.md,sha256=T-ysjhwgfW9irjUj02vuY_1jeMdabO_zxcShyjmqsiM,10153
141
142
  claude_mpm/commands/mpm-status.md,sha256=oaM4ybL4ffp55nkT9F0mp_5H4tF-wX9mbqK-LEKEqUU,1919
142
143
  claude_mpm/commands/mpm-tickets.md,sha256=a2_mW56QDhw7-jMU92ycGaxvSSYpNoQFGhkWbr3MJ88,2356
143
144
  claude_mpm/commands/mpm.md,sha256=tv_Mr6p2olRKIltKui4ljfCNG69VokkyIg951CeMBas,559
@@ -221,8 +222,8 @@ claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css,sha256=
221
222
  claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css,sha256=v6uB3hr2dU7aGodvQVxu1y-bM-pN-jeOD_-iwGG7mIc,603
222
223
  claude_mpm/dashboard/react/components/shared/FilterBar.module.css,sha256=Ea-dpAlKoY7WobxLESQsNvLUVjFhJlQvLygCY8-47Vk,1690
223
224
  claude_mpm/dashboard/static/events.html,sha256=iKBH2gqxhU6JTmSglAVyNJkWA9c11L4Dxn40otAfnAU,17952
224
- claude_mpm/dashboard/static/index.html,sha256=5N7toUxcTQJgqwGPyk8J7kvzR71WCdMpy3F8niM-ZK0,26044
225
- claude_mpm/dashboard/static/monitors-index.html,sha256=T_mVVqXm5STLaFZWH7rFJaiYeG57WKnlNdVYII9nrY0,7232
225
+ claude_mpm/dashboard/static/index-hub-backup.html,sha256=5N7toUxcTQJgqwGPyk8J7kvzR71WCdMpy3F8niM-ZK0,26044
226
+ claude_mpm/dashboard/static/index.html,sha256=F971Wwl0opHFb-SKD3fi0tvZmrzMPLh7MkJsJzR9tAc,31192
226
227
  claude_mpm/dashboard/static/monitors.html,sha256=waNCJiIGWBvve7nbzvihnVDjaP49FPfFSNqOpkwiIaM,14229
227
228
  claude_mpm/dashboard/static/socket.io.min.js,sha256=c-uha8iV_fpFTifsuA3vMe3o2GH5nhdf-TsRDqvsBE8,49993
228
229
  claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js,sha256=sOc1gU-Nz-zWzbinzpWil6fh5fJyeinm9ZAYAdUvoMU,46831
@@ -283,7 +284,7 @@ claude_mpm/dashboard/static/built/shared/dom-helpers.js,sha256=PXY8iLBJqsWP_NNyF
283
284
  claude_mpm/dashboard/static/built/shared/event-bus.js,sha256=aV2QMt8Ris1BFxuFUYoOvMYXb3M4AmPHsppaBDbbxXo,9906
284
285
  claude_mpm/dashboard/static/built/shared/event-filter-service.js,sha256=DY1rRjGxFcUyAXSPj7hUrQVJ7UpgcGkc6NRZNpFwlq4,16149
285
286
  claude_mpm/dashboard/static/built/shared/logger.js,sha256=nQE-6b8pAAhWsafgon6UT-ueyOmhukrNFaGkcT77RS0,10431
286
- claude_mpm/dashboard/static/built/shared/page-structure.js,sha256=_SEs6D1H0zRLewEUj0uFgbZR80IN5lYdeRYfiMiX_oM,8681
287
+ claude_mpm/dashboard/static/built/shared/page-structure.js,sha256=yRGt_ZWMbDHM2sy_mTW5AhrfH1bPn1GngjALzdakK3g,8515
287
288
  claude_mpm/dashboard/static/built/shared/tooltip-service.js,sha256=T0_0koY2SNHTlctzU4Z5VBH0EWRXmO-ODo9WvO2HUto,7588
288
289
  claude_mpm/dashboard/static/css/activity.css,sha256=0SJUwGB6fr4OlVqMwhvVKrPndg2R3QTZPnN6DkAo4aU,37987
289
290
  claude_mpm/dashboard/static/css/code-tree.css,sha256=Sx74ilt7exGOdxCBEtjP9gZ74lB5e8QWr3_SIcl_0hw,30708
@@ -355,7 +356,7 @@ claude_mpm/dashboard/static/legacy/agents.html,sha256=9o1BfJSwSett1adw4ljJ704Pd8
355
356
  claude_mpm/dashboard/static/legacy/files.html,sha256=9lopC78Ah5Ott47N-fU_HRMWdSbWIVto3xvQnLNqxfs,24916
356
357
  claude_mpm/dashboard/static/legacy/tools.html,sha256=6YuAJ3Ggmtp4ysKDxhSbqk1D4ayIHc5o-GgF1o0YFP8,28401
357
358
  claude_mpm/dashboard/static/production/events.html,sha256=lEcviOUjOhgaY0znGpjdKJjNyVrriWEJ3GNO-GANpn8,19457
358
- claude_mpm/dashboard/static/production/main.html,sha256=u-l7YqIQK8JtVoynRquyd3lSbGv-zMLP-rkTFlE9Lw4,34294
359
+ claude_mpm/dashboard/static/production/main.html,sha256=p2nS9r8nky3ngh-zutqQxsktJEbF2NnlIrI7UKU8bUc,33367
359
360
  claude_mpm/dashboard/static/production/monitors.html,sha256=9FA-cNbS1-eKsPwvInq3SjpVRWKatXUar-VUnfSXTRo,15732
360
361
  claude_mpm/dashboard/static/test-archive/dashboard.html,sha256=F971Wwl0opHFb-SKD3fi0tvZmrzMPLh7MkJsJzR9tAc,31192
361
362
  claude_mpm/dashboard/static/test-archive/debug-events.html,sha256=fpAKX6vnSzxefP0y0SkwHaEnve04-rZy2HfxstJslNA,4755
@@ -363,7 +364,7 @@ claude_mpm/dashboard/static/test-archive/test-navigation.html,sha256=vVdEjz_EGhN
363
364
  claude_mpm/dashboard/static/test-archive/test-react-exports.html,sha256=lqMHNjEce0Ddgt7LPuVyCiqLUYCvPwAgu6oVCqf3sek,6464
364
365
  claude_mpm/dashboard/static/test-archive/test_debug.html,sha256=XZ0tcKA57VnlE_OLGusb0UWh8Hs4SgeD-wsc4neh8Zw,815
365
366
  claude_mpm/dashboard/templates/code_simple.html,sha256=xrmTLFow0M5NWFlk4ci1eLWML-IHr35i5pqIVaEg2TU,4329
366
- claude_mpm/dashboard/templates/index.html,sha256=oqB2_i0ezheBbGGR_mj61U0KyinXYFyuvkKQBwz9HZ8,32736
367
+ claude_mpm/dashboard/templates/index.html,sha256=0YjuhXGrqs4yz5ZPwsNQ1sKRUp4l3dChm6ejMLGw5Vk,31809
367
368
  claude_mpm/experimental/__init__.py,sha256=R_aclOvWpvSTHWAx9QXyg9OIPVK2dXT5tQJhxLQN11Y,369
368
369
  claude_mpm/experimental/cli_enhancements.py,sha256=PfAt-SI-crBoE0Dtx1JecpS5_6OT_0apJbo28KS6HUI,11541
369
370
  claude_mpm/generators/__init__.py,sha256=rG8vwF_BjPmeMKvyMXpUA8uJ-7mtW2HTNfalZzgRlNk,153
@@ -678,7 +679,7 @@ claude_mpm/services/project/architecture_analyzer.py,sha256=YpGDIk_yGM-vkGcnBo27
678
679
  claude_mpm/services/project/archive_manager.py,sha256=jksVgx7q7V675QEs3GzECYeb0lTphvtP2UeEZuubVMQ,39236
679
680
  claude_mpm/services/project/dependency_analyzer.py,sha256=CQGQgFSdozSE7gl2DD0Q9MLLtyzA99ntKRrCGywZhuQ,15621
680
681
  claude_mpm/services/project/documentation_manager.py,sha256=d50_vnG2Q8F2Bld5nivdPSm5zXVFKebHfTASHL1hevI,19118
681
- claude_mpm/services/project/enhanced_analyzer.py,sha256=IKlXRTIZYDYZKHwK6QWxMqpYhng3nd8UsRLcMcvfJcc,18764
682
+ claude_mpm/services/project/enhanced_analyzer.py,sha256=IE12g4ykXLkanyROOcztBs8gGq5UMNkI0yAolCkAhtA,19759
682
683
  claude_mpm/services/project/language_analyzer.py,sha256=KnbwHLtUcnzdMY6bseZk90bMo0yI9n_pXP5Mj4tLDgg,9209
683
684
  claude_mpm/services/project/metrics_collector.py,sha256=ctXgu-qWVZoKAJ2IC0tZ0lSuS7nfN0beZgTvcEomN70,12929
684
685
  claude_mpm/services/project/project_organizer.py,sha256=9uAHI5MISum7YKNibRwH2jxbFmUUUEAbzR5YxX60Gyo,37611
@@ -783,9 +784,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
783
784
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
784
785
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
785
786
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
786
- claude_mpm-4.7.2.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
787
- claude_mpm-4.7.2.dist-info/METADATA,sha256=MvYfNNXnEO1lyGEf0JZEl0gN243PZpIEs5l_E3HWRHw,17517
788
- claude_mpm-4.7.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
789
- claude_mpm-4.7.2.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
790
- claude_mpm-4.7.2.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
791
- claude_mpm-4.7.2.dist-info/RECORD,,
787
+ claude_mpm-4.7.4.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
788
+ claude_mpm-4.7.4.dist-info/METADATA,sha256=2c6NYh3MyaMjPYOXXXKRzFlHNTvdUD7WlNiKj2wfHWg,17517
789
+ claude_mpm-4.7.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
790
+ claude_mpm-4.7.4.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
791
+ claude_mpm-4.7.4.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
792
+ claude_mpm-4.7.4.dist-info/RECORD,,
@@ -1,218 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Claude MPM - Monitor Dashboard</title>
7
- <style>
8
- * { margin: 0; padding: 0; box-sizing: border-box; }
9
-
10
- body {
11
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
12
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
13
- color: #fff;
14
- min-height: 100vh;
15
- padding: 20px;
16
- }
17
-
18
- .container {
19
- max-width: 1200px;
20
- margin: 0 auto;
21
- }
22
-
23
- .header {
24
- text-align: center;
25
- margin-bottom: 40px;
26
- }
27
-
28
- .header h1 {
29
- font-size: 3em;
30
- margin-bottom: 10px;
31
- background: linear-gradient(135deg, #fff 0%, #e0e0e0 100%);
32
- -webkit-background-clip: text;
33
- -webkit-text-fill-color: transparent;
34
- }
35
-
36
- .header p {
37
- font-size: 1.2em;
38
- opacity: 0.9;
39
- }
40
-
41
- .monitors-grid {
42
- display: grid;
43
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
44
- gap: 20px;
45
- margin-bottom: 40px;
46
- }
47
-
48
- .monitor-card {
49
- background: rgba(255, 255, 255, 0.1);
50
- backdrop-filter: blur(10px);
51
- border-radius: 12px;
52
- padding: 25px;
53
- border: 1px solid rgba(255, 255, 255, 0.2);
54
- transition: transform 0.3s, box-shadow 0.3s;
55
- cursor: pointer;
56
- text-decoration: none;
57
- color: inherit;
58
- display: block;
59
- }
60
-
61
- .monitor-card:hover {
62
- transform: translateY(-5px);
63
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
64
- }
65
-
66
- .monitor-icon {
67
- font-size: 3em;
68
- margin-bottom: 15px;
69
- }
70
-
71
- .monitor-title {
72
- font-size: 1.5em;
73
- font-weight: 600;
74
- margin-bottom: 10px;
75
- }
76
-
77
- .monitor-description {
78
- font-size: 0.95em;
79
- opacity: 0.8;
80
- line-height: 1.5;
81
- }
82
-
83
- .status-bar {
84
- background: rgba(255, 255, 255, 0.1);
85
- backdrop-filter: blur(10px);
86
- border-radius: 12px;
87
- padding: 20px;
88
- border: 1px solid rgba(255, 255, 255, 0.2);
89
- text-align: center;
90
- }
91
-
92
- .status-indicator {
93
- display: inline-flex;
94
- align-items: center;
95
- gap: 10px;
96
- padding: 10px 20px;
97
- background: rgba(255, 255, 255, 0.1);
98
- border-radius: 25px;
99
- margin: 5px;
100
- }
101
-
102
- .status-dot {
103
- width: 12px;
104
- height: 12px;
105
- border-radius: 50%;
106
- background: #4ade80;
107
- box-shadow: 0 0 10px #4ade80;
108
- animation: pulse 2s infinite;
109
- }
110
-
111
- .status-dot.disconnected {
112
- background: #f87171;
113
- box-shadow: 0 0 10px #f87171;
114
- }
115
-
116
- @keyframes pulse {
117
- 0%, 100% { opacity: 1; }
118
- 50% { opacity: 0.5; }
119
- }
120
-
121
- .demo-notice {
122
- background: rgba(251, 191, 36, 0.2);
123
- border: 1px solid rgba(251, 191, 36, 0.5);
124
- border-radius: 8px;
125
- padding: 15px;
126
- margin-top: 20px;
127
- text-align: center;
128
- }
129
-
130
- .demo-notice strong {
131
- color: #fbbf24;
132
- }
133
- </style>
134
- </head>
135
- <body>
136
- <div class="container">
137
- <div class="header">
138
- <h1>Claude MPM Monitor Dashboard</h1>
139
- <p>Real-time monitoring for agents, tools, files, and events</p>
140
- </div>
141
-
142
- <div class="monitors-grid">
143
- <a href="/static/agents.html" class="monitor-card">
144
- <div class="monitor-icon">🤖</div>
145
- <div class="monitor-title">Agents Monitor</div>
146
- <div class="monitor-description">Track agent activities, delegations, and performance in real-time</div>
147
- </a>
148
-
149
- <a href="/static/tools.html" class="monitor-card">
150
- <div class="monitor-icon">🔧</div>
151
- <div class="monitor-title">Tools Monitor</div>
152
- <div class="monitor-description">Monitor tool operations, execution times, and success rates</div>
153
- </a>
154
-
155
- <a href="/static/files.html" class="monitor-card">
156
- <div class="monitor-icon">📁</div>
157
- <div class="monitor-title">Files Monitor</div>
158
- <div class="monitor-description">Track file operations, modifications, and access patterns</div>
159
- </a>
160
-
161
- <a href="/static/events.html" class="monitor-card">
162
- <div class="monitor-icon">📊</div>
163
- <div class="monitor-title">Events Stream</div>
164
- <div class="monitor-description">View raw event stream with filtering and search capabilities</div>
165
- </a>
166
-
167
- <a href="/static/dashboard.html" class="monitor-card">
168
- <div class="monitor-icon">📈</div>
169
- <div class="monitor-title">Main Dashboard</div>
170
- <div class="monitor-description">Comprehensive tabbed view with all monitoring features</div>
171
- </a>
172
-
173
- <a href="/static/test-socket.html" class="monitor-card">
174
- <div class="monitor-icon">🧪</div>
175
- <div class="monitor-title">Connection Test</div>
176
- <div class="monitor-description">Debug Socket.IO connection and test event flow</div>
177
- </a>
178
- </div>
179
-
180
- <div class="status-bar">
181
- <h3 style="margin-bottom: 15px;">Connection Status</h3>
182
- <div class="status-indicator">
183
- <div class="status-dot" id="connectionDot"></div>
184
- <span id="connectionStatus">Checking connection...</span>
185
- </div>
186
- <div class="status-indicator">
187
- <span>Server: <strong>localhost:8765</strong></span>
188
- </div>
189
- </div>
190
-
191
- <div class="demo-notice">
192
- <strong>💡 Demo Mode:</strong> Add <code>?demo</code> to any monitor URL to see simulated data
193
- <br>Example: <code>/static/agents.html?demo</code>
194
- </div>
195
- </div>
196
-
197
- <script src="/static/socket.io.min.js"></script>
198
- <script>
199
- // Test Socket.IO connection
200
- const socket = io('http://localhost:8765');
201
-
202
- socket.on('connect', () => {
203
- document.getElementById('connectionDot').classList.remove('disconnected');
204
- document.getElementById('connectionStatus').textContent = 'Connected to Socket.IO server';
205
- });
206
-
207
- socket.on('disconnect', () => {
208
- document.getElementById('connectionDot').classList.add('disconnected');
209
- document.getElementById('connectionStatus').textContent = 'Disconnected from server';
210
- });
211
-
212
- socket.on('connect_error', () => {
213
- document.getElementById('connectionDot').classList.add('disconnected');
214
- document.getElementById('connectionStatus').textContent = 'Connection error';
215
- });
216
- </script>
217
- </body>
218
- </html>