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.
Files changed (148) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +43 -1
  3. claude_mpm/agents/INSTRUCTIONS.md +75 -1
  4. claude_mpm/agents/WORKFLOW.md +46 -1
  5. claude_mpm/agents/frontmatter_validator.py +20 -12
  6. claude_mpm/agents/templates/nextjs_engineer.json +277 -0
  7. claude_mpm/agents/templates/python_engineer.json +289 -0
  8. claude_mpm/agents/templates/react_engineer.json +11 -3
  9. claude_mpm/agents/templates/security.json +50 -9
  10. claude_mpm/cli/commands/agents.py +2 -2
  11. claude_mpm/cli/commands/uninstall.py +1 -2
  12. claude_mpm/cli/interactive/agent_wizard.py +3 -3
  13. claude_mpm/cli/parsers/agent_manager_parser.py +3 -3
  14. claude_mpm/cli/parsers/agents_parser.py +1 -1
  15. claude_mpm/constants.py +1 -1
  16. claude_mpm/core/error_handler.py +2 -4
  17. claude_mpm/core/file_utils.py +4 -12
  18. claude_mpm/core/log_manager.py +8 -5
  19. claude_mpm/core/logger.py +1 -1
  20. claude_mpm/core/logging_utils.py +6 -6
  21. claude_mpm/core/unified_agent_registry.py +18 -4
  22. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +188 -0
  23. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +156 -0
  24. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +38 -0
  25. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +92 -0
  26. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +248 -0
  27. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +61 -0
  28. claude_mpm/dashboard/static/archive/test_activity_connection.html +179 -0
  29. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +68 -0
  30. claude_mpm/dashboard/static/archive/test_dashboard.html +409 -0
  31. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +519 -0
  32. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +181 -0
  33. claude_mpm/dashboard/static/archive/test_file_data.html +315 -0
  34. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +243 -0
  35. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +234 -0
  36. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +117 -0
  37. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +115 -0
  38. claude_mpm/dashboard/static/archive/test_file_viewer.html +224 -0
  39. claude_mpm/dashboard/static/archive/test_final_activity.html +220 -0
  40. claude_mpm/dashboard/static/archive/test_tab_fix.html +139 -0
  41. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +1 -0
  42. claude_mpm/dashboard/static/built/components/activity-tree.js +1 -1
  43. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +777 -0
  44. claude_mpm/dashboard/static/built/components/agent-inference.js +1 -1
  45. claude_mpm/dashboard/static/built/components/build-tracker.js +333 -0
  46. claude_mpm/dashboard/static/built/components/code-simple.js +857 -0
  47. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +353 -0
  48. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +235 -0
  49. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +409 -0
  50. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +435 -0
  51. claude_mpm/dashboard/static/built/components/code-viewer.js +2 -1076
  52. claude_mpm/dashboard/static/built/components/connection-debug.js +654 -0
  53. claude_mpm/dashboard/static/built/components/diff-viewer.js +891 -0
  54. claude_mpm/dashboard/static/built/components/event-processor.js +1 -1
  55. claude_mpm/dashboard/static/built/components/event-viewer.js +1 -1
  56. claude_mpm/dashboard/static/built/components/export-manager.js +1 -1
  57. claude_mpm/dashboard/static/built/components/file-change-tracker.js +443 -0
  58. claude_mpm/dashboard/static/built/components/file-change-viewer.js +690 -0
  59. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +1 -1
  60. claude_mpm/dashboard/static/built/components/module-viewer.js +1 -1
  61. claude_mpm/dashboard/static/built/components/nav-bar.js +145 -0
  62. claude_mpm/dashboard/static/built/components/page-structure.js +429 -0
  63. claude_mpm/dashboard/static/built/components/session-manager.js +1 -1
  64. claude_mpm/dashboard/static/built/components/ui-state-manager.js +2 -465
  65. claude_mpm/dashboard/static/built/components/working-directory.js +1 -1
  66. claude_mpm/dashboard/static/built/connection-manager.js +536 -0
  67. claude_mpm/dashboard/static/built/dashboard.js +1 -1
  68. claude_mpm/dashboard/static/built/extension-error-handler.js +164 -0
  69. claude_mpm/dashboard/static/built/react/events.js +30 -0
  70. claude_mpm/dashboard/static/built/shared/dom-helpers.js +396 -0
  71. claude_mpm/dashboard/static/built/shared/event-bus.js +330 -0
  72. claude_mpm/dashboard/static/built/shared/event-filter-service.js +540 -0
  73. claude_mpm/dashboard/static/built/shared/logger.js +385 -0
  74. claude_mpm/dashboard/static/built/shared/page-structure.js +251 -0
  75. claude_mpm/dashboard/static/built/shared/tooltip-service.js +253 -0
  76. claude_mpm/dashboard/static/built/socket-client.js +1 -1
  77. claude_mpm/dashboard/static/built/tab-isolation-fix.js +185 -0
  78. claude_mpm/dashboard/static/css/dashboard.css +28 -5
  79. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +1 -0
  80. claude_mpm/dashboard/static/dist/components/activity-tree.js +1 -1
  81. claude_mpm/dashboard/static/dist/components/agent-inference.js +1 -1
  82. claude_mpm/dashboard/static/dist/components/code-viewer.js +2 -0
  83. claude_mpm/dashboard/static/dist/components/event-processor.js +1 -1
  84. claude_mpm/dashboard/static/dist/components/event-viewer.js +1 -1
  85. claude_mpm/dashboard/static/dist/components/export-manager.js +1 -1
  86. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +1 -1
  87. claude_mpm/dashboard/static/dist/components/module-viewer.js +1 -1
  88. claude_mpm/dashboard/static/dist/components/session-manager.js +1 -1
  89. claude_mpm/dashboard/static/dist/components/working-directory.js +1 -1
  90. claude_mpm/dashboard/static/dist/dashboard.js +1 -1
  91. claude_mpm/dashboard/static/dist/react/events.js +30 -0
  92. claude_mpm/dashboard/static/dist/socket-client.js +1 -1
  93. claude_mpm/dashboard/static/events.html +607 -0
  94. claude_mpm/dashboard/static/index.html +713 -0
  95. claude_mpm/dashboard/static/js/components/activity-tree.js +3 -17
  96. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +4 -1
  97. claude_mpm/dashboard/static/js/components/agent-inference.js +3 -0
  98. claude_mpm/dashboard/static/js/components/build-tracker.js +8 -0
  99. claude_mpm/dashboard/static/js/components/code-viewer.js +306 -66
  100. claude_mpm/dashboard/static/js/components/event-processor.js +3 -0
  101. claude_mpm/dashboard/static/js/components/event-viewer.js +39 -2
  102. claude_mpm/dashboard/static/js/components/export-manager.js +3 -0
  103. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +30 -10
  104. claude_mpm/dashboard/static/js/components/socket-manager.js +4 -0
  105. claude_mpm/dashboard/static/js/components/ui-state-manager.js +285 -85
  106. claude_mpm/dashboard/static/js/components/working-directory.js +3 -0
  107. claude_mpm/dashboard/static/js/dashboard.js +61 -33
  108. claude_mpm/dashboard/static/js/socket-client.js +12 -8
  109. claude_mpm/dashboard/static/js/stores/dashboard-store.js +562 -0
  110. claude_mpm/dashboard/static/js/tab-isolation-fix.js +185 -0
  111. claude_mpm/dashboard/static/legacy/activity.html +736 -0
  112. claude_mpm/dashboard/static/legacy/agents.html +786 -0
  113. claude_mpm/dashboard/static/legacy/files.html +747 -0
  114. claude_mpm/dashboard/static/legacy/tools.html +831 -0
  115. claude_mpm/dashboard/static/monitors-index.html +218 -0
  116. claude_mpm/dashboard/static/monitors.html +431 -0
  117. claude_mpm/dashboard/static/production/events.html +659 -0
  118. claude_mpm/dashboard/static/production/main.html +715 -0
  119. claude_mpm/dashboard/static/production/monitors.html +483 -0
  120. claude_mpm/dashboard/static/socket.io.min.js +7 -0
  121. claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +7 -0
  122. claude_mpm/dashboard/static/test-archive/dashboard.html +635 -0
  123. claude_mpm/dashboard/static/test-archive/debug-events.html +147 -0
  124. claude_mpm/dashboard/static/test-archive/test-navigation.html +256 -0
  125. claude_mpm/dashboard/static/test-archive/test-react-exports.html +180 -0
  126. claude_mpm/dashboard/templates/index.html +79 -9
  127. claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +1 -1
  128. claude_mpm/services/agents/deployment/agent_discovery_service.py +3 -0
  129. claude_mpm/services/agents/deployment/agent_template_builder.py +25 -8
  130. claude_mpm/services/agents/deployment/agent_validator.py +3 -0
  131. claude_mpm/services/agents/deployment/validation/template_validator.py +13 -4
  132. claude_mpm/services/agents/local_template_manager.py +2 -6
  133. claude_mpm/services/monitor/daemon.py +1 -2
  134. claude_mpm/services/monitor/daemon_manager.py +2 -5
  135. claude_mpm/services/monitor/event_emitter.py +2 -2
  136. claude_mpm/services/monitor/handlers/code_analysis.py +4 -6
  137. claude_mpm/services/monitor/handlers/hooks.py +2 -4
  138. claude_mpm/services/monitor/server.py +27 -4
  139. claude_mpm/tools/code_tree_analyzer.py +2 -2
  140. {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/METADATA +1 -1
  141. {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/RECORD +146 -81
  142. claude_mpm/dashboard/static/test-browser-monitor.html +0 -470
  143. claude_mpm/dashboard/static/test-simple.html +0 -97
  144. /claude_mpm/dashboard/static/{test_debug.html → test-archive/test_debug.html} +0 -0
  145. {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/WHEEL +0 -0
  146. {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/entry_points.txt +0 -0
  147. {claude_mpm-4.2.44.dist-info → claude_mpm-4.2.51.dist-info}/licenses/LICENSE +0 -0
  148. {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
+ });