claude-mpm 4.2.44__py3-none-any.whl → 4.2.51__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/agents/BASE_PM.md +43 -1
- claude_mpm/agents/INSTRUCTIONS.md +75 -1
- claude_mpm/agents/WORKFLOW.md +46 -1
- claude_mpm/agents/frontmatter_validator.py +20 -12
- claude_mpm/agents/templates/nextjs_engineer.json +277 -0
- claude_mpm/agents/templates/python_engineer.json +289 -0
- claude_mpm/agents/templates/react_engineer.json +11 -3
- claude_mpm/agents/templates/security.json +50 -9
- claude_mpm/cli/commands/agents.py +2 -2
- claude_mpm/cli/commands/uninstall.py +1 -2
- claude_mpm/cli/interactive/agent_wizard.py +3 -3
- claude_mpm/cli/parsers/agent_manager_parser.py +3 -3
- claude_mpm/cli/parsers/agents_parser.py +1 -1
- claude_mpm/constants.py +1 -1
- claude_mpm/core/error_handler.py +2 -4
- claude_mpm/core/file_utils.py +4 -12
- claude_mpm/core/log_manager.py +8 -5
- claude_mpm/core/logger.py +1 -1
- claude_mpm/core/logging_utils.py +6 -6
- claude_mpm/core/unified_agent_registry.py +18 -4
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +188 -0
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +156 -0
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +38 -0
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +92 -0
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +248 -0
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +61 -0
- claude_mpm/dashboard/static/archive/test_activity_connection.html +179 -0
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +68 -0
- claude_mpm/dashboard/static/archive/test_dashboard.html +409 -0
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +519 -0
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +181 -0
- claude_mpm/dashboard/static/archive/test_file_data.html +315 -0
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +243 -0
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +234 -0
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +117 -0
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +115 -0
- claude_mpm/dashboard/static/archive/test_file_viewer.html +224 -0
- claude_mpm/dashboard/static/archive/test_final_activity.html +220 -0
- claude_mpm/dashboard/static/archive/test_tab_fix.html +139 -0
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +1 -0
- claude_mpm/dashboard/static/built/components/activity-tree.js +1 -1
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +777 -0
- claude_mpm/dashboard/static/built/components/agent-inference.js +1 -1
- claude_mpm/dashboard/static/built/components/build-tracker.js +333 -0
- claude_mpm/dashboard/static/built/components/code-simple.js +857 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +353 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +235 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +409 -0
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +435 -0
- claude_mpm/dashboard/static/built/components/code-viewer.js +2 -1076
- claude_mpm/dashboard/static/built/components/connection-debug.js +654 -0
- claude_mpm/dashboard/static/built/components/diff-viewer.js +891 -0
- claude_mpm/dashboard/static/built/components/event-processor.js +1 -1
- claude_mpm/dashboard/static/built/components/event-viewer.js +1 -1
- claude_mpm/dashboard/static/built/components/export-manager.js +1 -1
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +443 -0
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +690 -0
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +1 -1
- claude_mpm/dashboard/static/built/components/module-viewer.js +1 -1
- claude_mpm/dashboard/static/built/components/nav-bar.js +145 -0
- claude_mpm/dashboard/static/built/components/page-structure.js +429 -0
- claude_mpm/dashboard/static/built/components/session-manager.js +1 -1
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +2 -465
- claude_mpm/dashboard/static/built/components/working-directory.js +1 -1
- claude_mpm/dashboard/static/built/connection-manager.js +536 -0
- claude_mpm/dashboard/static/built/dashboard.js +1 -1
- claude_mpm/dashboard/static/built/extension-error-handler.js +164 -0
- claude_mpm/dashboard/static/built/react/events.js +30 -0
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +396 -0
- claude_mpm/dashboard/static/built/shared/event-bus.js +330 -0
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +540 -0
- claude_mpm/dashboard/static/built/shared/logger.js +385 -0
- claude_mpm/dashboard/static/built/shared/page-structure.js +251 -0
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +253 -0
- claude_mpm/dashboard/static/built/socket-client.js +1 -1
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +185 -0
- claude_mpm/dashboard/static/css/dashboard.css +28 -5
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +1 -0
- claude_mpm/dashboard/static/dist/components/activity-tree.js +1 -1
- claude_mpm/dashboard/static/dist/components/agent-inference.js +1 -1
- claude_mpm/dashboard/static/dist/components/code-viewer.js +2 -0
- claude_mpm/dashboard/static/dist/components/event-processor.js +1 -1
- claude_mpm/dashboard/static/dist/components/event-viewer.js +1 -1
- claude_mpm/dashboard/static/dist/components/export-manager.js +1 -1
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +1 -1
- claude_mpm/dashboard/static/dist/components/module-viewer.js +1 -1
- claude_mpm/dashboard/static/dist/components/session-manager.js +1 -1
- claude_mpm/dashboard/static/dist/components/working-directory.js +1 -1
- claude_mpm/dashboard/static/dist/dashboard.js +1 -1
- claude_mpm/dashboard/static/dist/react/events.js +30 -0
- claude_mpm/dashboard/static/dist/socket-client.js +1 -1
- claude_mpm/dashboard/static/events.html +607 -0
- claude_mpm/dashboard/static/index.html +713 -0
- claude_mpm/dashboard/static/js/components/activity-tree.js +3 -17
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +4 -1
- claude_mpm/dashboard/static/js/components/agent-inference.js +3 -0
- claude_mpm/dashboard/static/js/components/build-tracker.js +8 -0
- claude_mpm/dashboard/static/js/components/code-viewer.js +306 -66
- claude_mpm/dashboard/static/js/components/event-processor.js +3 -0
- claude_mpm/dashboard/static/js/components/event-viewer.js +39 -2
- claude_mpm/dashboard/static/js/components/export-manager.js +3 -0
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +30 -10
- claude_mpm/dashboard/static/js/components/socket-manager.js +4 -0
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +285 -85
- claude_mpm/dashboard/static/js/components/working-directory.js +3 -0
- claude_mpm/dashboard/static/js/dashboard.js +61 -33
- claude_mpm/dashboard/static/js/socket-client.js +12 -8
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +562 -0
- claude_mpm/dashboard/static/js/tab-isolation-fix.js +185 -0
- claude_mpm/dashboard/static/legacy/activity.html +736 -0
- claude_mpm/dashboard/static/legacy/agents.html +786 -0
- claude_mpm/dashboard/static/legacy/files.html +747 -0
- claude_mpm/dashboard/static/legacy/tools.html +831 -0
- claude_mpm/dashboard/static/monitors-index.html +218 -0
- claude_mpm/dashboard/static/monitors.html +431 -0
- claude_mpm/dashboard/static/production/events.html +659 -0
- claude_mpm/dashboard/static/production/main.html +715 -0
- claude_mpm/dashboard/static/production/monitors.html +483 -0
- claude_mpm/dashboard/static/socket.io.min.js +7 -0
- claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +7 -0
- claude_mpm/dashboard/static/test-archive/dashboard.html +635 -0
- claude_mpm/dashboard/static/test-archive/debug-events.html +147 -0
- claude_mpm/dashboard/static/test-archive/test-navigation.html +256 -0
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +180 -0
- claude_mpm/dashboard/templates/index.html +79 -9
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +1 -1
- claude_mpm/services/agents/deployment/agent_discovery_service.py +3 -0
- claude_mpm/services/agents/deployment/agent_template_builder.py +25 -8
- claude_mpm/services/agents/deployment/agent_validator.py +3 -0
- claude_mpm/services/agents/deployment/validation/template_validator.py +13 -4
- claude_mpm/services/agents/local_template_manager.py +2 -6
- claude_mpm/services/monitor/daemon.py +1 -2
- claude_mpm/services/monitor/daemon_manager.py +2 -5
- claude_mpm/services/monitor/event_emitter.py +2 -2
- claude_mpm/services/monitor/handlers/code_analysis.py +4 -6
- claude_mpm/services/monitor/handlers/hooks.py +2 -4
- claude_mpm/services/monitor/server.py +27 -4
- claude_mpm/tools/code_tree_analyzer.py +2 -2
- {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/METADATA +1 -1
- {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/RECORD +146 -81
- claude_mpm/dashboard/static/test-browser-monitor.html +0 -470
- claude_mpm/dashboard/static/test-simple.html +0 -97
- /claude_mpm/dashboard/static/{test_debug.html → test-archive/test_debug.html} +0 -0
- {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/WHEEL +0 -0
- {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,185 @@
|
|
1
|
+
/**
|
2
|
+
* BULLETPROOF FILE TREE TAB ISOLATION FIX
|
3
|
+
*
|
4
|
+
* This is a surgical fix to resolve the File Tree tab isolation issue
|
5
|
+
* without requiring changes to the complex build system or existing dashboard.
|
6
|
+
*
|
7
|
+
* This script can be loaded independently and will override any existing
|
8
|
+
* problematic tab switching behavior.
|
9
|
+
*/
|
10
|
+
|
11
|
+
console.log('[TAB-FIX] Bulletproof File Tree tab isolation fix loaded');
|
12
|
+
|
13
|
+
// Wait for DOM to be ready
|
14
|
+
function whenReady(callback) {
|
15
|
+
if (document.readyState === 'loading') {
|
16
|
+
document.addEventListener('DOMContentLoaded', callback);
|
17
|
+
} else {
|
18
|
+
callback();
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
function implementTabFix() {
|
23
|
+
console.log('[TAB-FIX] Implementing bulletproof tab switching...');
|
24
|
+
|
25
|
+
let tabSwitchingInProgress = false;
|
26
|
+
|
27
|
+
function switchToTab(tabName) {
|
28
|
+
if (tabSwitchingInProgress) {
|
29
|
+
console.log('[TAB-FIX] Tab switching already in progress, queuing...');
|
30
|
+
setTimeout(() => switchToTab(tabName), 100);
|
31
|
+
return;
|
32
|
+
}
|
33
|
+
|
34
|
+
tabSwitchingInProgress = true;
|
35
|
+
console.log(`[TAB-FIX] Switching to tab: ${tabName}`);
|
36
|
+
|
37
|
+
try {
|
38
|
+
// STEP 1: Remove ALL active states
|
39
|
+
document.querySelectorAll('.tab-button').forEach(btn => {
|
40
|
+
btn.classList.remove('active');
|
41
|
+
});
|
42
|
+
|
43
|
+
document.querySelectorAll('.tab-content').forEach(content => {
|
44
|
+
content.classList.remove('active');
|
45
|
+
});
|
46
|
+
|
47
|
+
// STEP 2: Add active to the correct tab button
|
48
|
+
const targetButton = document.querySelector(`[data-tab="${tabName}"]`);
|
49
|
+
if (targetButton) {
|
50
|
+
targetButton.classList.add('active');
|
51
|
+
console.log(`[TAB-FIX] Activated tab button: ${tabName}`);
|
52
|
+
} else {
|
53
|
+
console.warn(`[TAB-FIX] Tab button not found: ${tabName}`);
|
54
|
+
}
|
55
|
+
|
56
|
+
// STEP 3: Add active to the correct content
|
57
|
+
const targetContent = document.getElementById(`${tabName}-tab`);
|
58
|
+
if (targetContent) {
|
59
|
+
targetContent.classList.add('active');
|
60
|
+
console.log(`[TAB-FIX] Activated tab content: ${tabName}-tab`);
|
61
|
+
|
62
|
+
// STEP 4: Special handling for File Tree
|
63
|
+
if (tabName === 'claude-tree') {
|
64
|
+
// Ensure File Tree content is clean
|
65
|
+
const eventsInFileTree = targetContent.querySelectorAll('.event-item');
|
66
|
+
if (eventsInFileTree.length > 0) {
|
67
|
+
console.warn(`[TAB-FIX] Found ${eventsInFileTree.length} event items in File Tree, removing...`);
|
68
|
+
eventsInFileTree.forEach(item => item.remove());
|
69
|
+
}
|
70
|
+
|
71
|
+
// Trigger CodeViewer if available
|
72
|
+
if (window.CodeViewer && typeof window.CodeViewer.show === 'function') {
|
73
|
+
setTimeout(() => {
|
74
|
+
window.CodeViewer.show();
|
75
|
+
}, 100);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
} else {
|
79
|
+
console.warn(`[TAB-FIX] Tab content not found: ${tabName}-tab`);
|
80
|
+
}
|
81
|
+
|
82
|
+
} finally {
|
83
|
+
setTimeout(() => {
|
84
|
+
tabSwitchingInProgress = false;
|
85
|
+
}, 200);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
// Override any existing tab switching
|
90
|
+
function setupTabClickHandlers() {
|
91
|
+
console.log('[TAB-FIX] Setting up click handlers...');
|
92
|
+
|
93
|
+
document.querySelectorAll('.tab-button').forEach(button => {
|
94
|
+
// Remove any existing listeners by cloning the element
|
95
|
+
const newButton = button.cloneNode(true);
|
96
|
+
button.parentNode.replaceChild(newButton, button);
|
97
|
+
|
98
|
+
// Add our handler
|
99
|
+
newButton.addEventListener('click', function(e) {
|
100
|
+
e.preventDefault();
|
101
|
+
e.stopPropagation();
|
102
|
+
|
103
|
+
const tabName = this.getAttribute('data-tab');
|
104
|
+
if (tabName) {
|
105
|
+
console.log(`[TAB-FIX] Tab clicked: ${tabName}`);
|
106
|
+
switchToTab(tabName);
|
107
|
+
|
108
|
+
// Update hash
|
109
|
+
const hashMap = {
|
110
|
+
'events': '#events',
|
111
|
+
'agents': '#agents',
|
112
|
+
'tools': '#tools',
|
113
|
+
'files': '#files',
|
114
|
+
'activity': '#activity',
|
115
|
+
'claude-tree': '#file_tree'
|
116
|
+
};
|
117
|
+
if (hashMap[tabName]) {
|
118
|
+
history.replaceState(null, null, hashMap[tabName]);
|
119
|
+
}
|
120
|
+
} else {
|
121
|
+
console.warn('[TAB-FIX] No data-tab attribute found on button');
|
122
|
+
}
|
123
|
+
});
|
124
|
+
});
|
125
|
+
|
126
|
+
console.log(`[TAB-FIX] Set up handlers for ${document.querySelectorAll('.tab-button').length} tab buttons`);
|
127
|
+
}
|
128
|
+
|
129
|
+
// Handle hash navigation
|
130
|
+
function handleHashNavigation() {
|
131
|
+
const hash = window.location.hash;
|
132
|
+
const hashToTab = {
|
133
|
+
'#events': 'events',
|
134
|
+
'#agents': 'agents',
|
135
|
+
'#tools': 'tools',
|
136
|
+
'#files': 'files',
|
137
|
+
'#activity': 'activity',
|
138
|
+
'#file_tree': 'claude-tree',
|
139
|
+
'': 'events'
|
140
|
+
};
|
141
|
+
|
142
|
+
const tabName = hashToTab[hash] || 'events';
|
143
|
+
console.log(`[TAB-FIX] Hash navigation: ${hash} -> ${tabName}`);
|
144
|
+
switchToTab(tabName);
|
145
|
+
}
|
146
|
+
|
147
|
+
// Wait for tabs to be available
|
148
|
+
function waitForTabsAndSetup() {
|
149
|
+
const tabs = document.querySelectorAll('.tab-button');
|
150
|
+
if (tabs.length > 0) {
|
151
|
+
console.log(`[TAB-FIX] Found ${tabs.length} tabs, setting up handlers...`);
|
152
|
+
setupTabClickHandlers();
|
153
|
+
|
154
|
+
// Set up hash navigation
|
155
|
+
window.addEventListener('hashchange', handleHashNavigation);
|
156
|
+
|
157
|
+
// Handle initial hash
|
158
|
+
setTimeout(handleHashNavigation, 100);
|
159
|
+
|
160
|
+
console.log('[TAB-FIX] Bulletproof tab fix fully activated!');
|
161
|
+
} else {
|
162
|
+
console.log('[TAB-FIX] Tabs not ready yet, retrying in 500ms...');
|
163
|
+
setTimeout(waitForTabsAndSetup, 500);
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
167
|
+
// Start the setup process
|
168
|
+
waitForTabsAndSetup();
|
169
|
+
}
|
170
|
+
|
171
|
+
// Export functions for global access
|
172
|
+
window.TabFix = {
|
173
|
+
implement: implementTabFix,
|
174
|
+
switchToTab: function(tabName) {
|
175
|
+
// This will be available after implementTabFix is called
|
176
|
+
const event = new CustomEvent('tabfix-switch', { detail: { tabName } });
|
177
|
+
document.dispatchEvent(event);
|
178
|
+
}
|
179
|
+
};
|
180
|
+
|
181
|
+
// Auto-implement when ready
|
182
|
+
whenReady(() => {
|
183
|
+
console.log('[TAB-FIX] DOM ready, waiting 3 seconds for other scripts to load...');
|
184
|
+
setTimeout(implementTabFix, 3000);
|
185
|
+
});
|