claude-mpm 4.1.24__py3-none-any.whl → 4.1.25__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 (25) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/dashboard/static/built/components/activity-tree.js +1 -1
  3. claude_mpm/dashboard/static/built/components/code-tree.js +1 -1
  4. claude_mpm/dashboard/static/built/components/event-viewer.js +1 -1
  5. claude_mpm/dashboard/static/built/components/module-viewer.js +1 -1
  6. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +2 -0
  7. claude_mpm/dashboard/static/built/dashboard.js +1 -1
  8. claude_mpm/dashboard/static/dist/components/activity-tree.js +1 -1
  9. claude_mpm/dashboard/static/dist/components/event-viewer.js +1 -1
  10. claude_mpm/dashboard/static/dist/components/module-viewer.js +1 -1
  11. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +2 -0
  12. claude_mpm/dashboard/static/dist/dashboard.js +1 -1
  13. claude_mpm/dashboard/static/js/components/activity-tree.js +4 -2
  14. claude_mpm/dashboard/static/js/components/event-processor.js +0 -107
  15. claude_mpm/dashboard/static/js/components/module-viewer.js +21 -198
  16. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +104 -11
  17. claude_mpm/dashboard/static/js/dashboard.js +22 -428
  18. claude_mpm/tools/code_tree_analyzer.py +3 -1
  19. {claude_mpm-4.1.24.dist-info → claude_mpm-4.1.25.dist-info}/METADATA +1 -1
  20. {claude_mpm-4.1.24.dist-info → claude_mpm-4.1.25.dist-info}/RECORD +24 -23
  21. claude_mpm/dashboard/static/dist/chunks/unified-data-viewer.B7wmm2bD.js +0 -2
  22. {claude_mpm-4.1.24.dist-info → claude_mpm-4.1.25.dist-info}/WHEEL +0 -0
  23. {claude_mpm-4.1.24.dist-info → claude_mpm-4.1.25.dist-info}/entry_points.txt +0 -0
  24. {claude_mpm-4.1.24.dist-info → claude_mpm-4.1.25.dist-info}/licenses/LICENSE +0 -0
  25. {claude_mpm-4.1.24.dist-info → claude_mpm-4.1.25.dist-info}/top_level.txt +0 -0
@@ -33,6 +33,10 @@ class Dashboard {
33
33
  this.eventViewer = null;
34
34
  this.moduleViewer = null;
35
35
  this.sessionManager = null;
36
+
37
+ // Retry prevention
38
+ this.activityTreeRetryCount = 0;
39
+ this.maxRetryAttempts = 10;
36
40
 
37
41
  // New modular components
38
42
  this.socketManager = null;
@@ -385,6 +389,9 @@ class Dashboard {
385
389
  // Trigger Activity tab rendering through the component
386
390
  // Check if ActivityTree class is available (from built module)
387
391
  if (window.ActivityTree && typeof window.ActivityTree === 'function') {
392
+ // Reset retry count on successful load
393
+ this.activityTreeRetryCount = 0;
394
+
388
395
  // Create or get instance
389
396
  if (!window.activityTreeInstance) {
390
397
  console.log('Creating new ActivityTree instance...');
@@ -423,13 +430,22 @@ class Dashboard {
423
430
  }
424
431
  }
425
432
  } else {
426
- // Module not loaded yet, retry after a delay
427
- console.warn('Activity tree component not available, retrying in 100ms...');
428
- setTimeout(() => {
429
- if (this.currentTab === 'activity') {
430
- this.renderCurrentTab();
433
+ // Module not loaded yet, retry after a delay (with retry limit)
434
+ if (this.activityTreeRetryCount < this.maxRetryAttempts) {
435
+ this.activityTreeRetryCount++;
436
+ console.warn(`Activity tree component not available, retrying in 100ms... (attempt ${this.activityTreeRetryCount}/${this.maxRetryAttempts})`);
437
+ setTimeout(() => {
438
+ if (this.uiStateManager.getCurrentTab() === 'activity') {
439
+ this.renderCurrentTab();
440
+ }
441
+ }, 100);
442
+ } else {
443
+ console.error('Maximum retry attempts reached for ActivityTree initialization. Giving up.');
444
+ const activityContainer = document.getElementById('activity-tree-container') || document.getElementById('activity-tree');
445
+ if (activityContainer) {
446
+ activityContainer.innerHTML = '<div class="error-message">⚠️ Activity Tree failed to load. Please refresh the page.</div>';
431
447
  }
432
- }, 100);
448
+ }
433
449
  }
434
450
  break;
435
451
  case 'agents':
@@ -1485,428 +1501,6 @@ function formatFileSize(bytes) {
1485
1501
  return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
1486
1502
  }
1487
1503
 
1488
- // Git Diff Modal Functions - restored from original dashboard
1489
- window.showGitDiffModal = function(filePath, timestamp, workingDir) {
1490
- // Use the dashboard's current working directory if not provided
1491
- if (!workingDir && window.dashboard && window.dashboard.currentWorkingDir) {
1492
- workingDir = window.dashboard.currentWorkingDir;
1493
- }
1494
-
1495
- // Create modal if it doesn't exist
1496
- let modal = document.getElementById('git-diff-modal');
1497
- if (!modal) {
1498
- modal = createGitDiffModal();
1499
- document.body.appendChild(modal);
1500
- }
1501
-
1502
- // Update modal content
1503
- updateGitDiffModal(modal, filePath, timestamp, workingDir);
1504
-
1505
- // Show the modal as flex container
1506
- modal.style.display = 'flex';
1507
- document.body.style.overflow = 'hidden'; // Prevent background scrolling
1508
- };
1509
-
1510
- window.hideGitDiffModal = function() {
1511
- const modal = document.getElementById('git-diff-modal');
1512
- if (modal) {
1513
- modal.style.display = 'none';
1514
- document.body.style.overflow = ''; // Restore background scrolling
1515
- }
1516
- };
1517
-
1518
- window.copyGitDiff = function() {
1519
- const modal = document.getElementById('git-diff-modal');
1520
- if (!modal) return;
1521
-
1522
- const codeElement = modal.querySelector('.git-diff-code');
1523
- if (!codeElement) return;
1524
-
1525
- const text = codeElement.textContent;
1526
-
1527
- if (navigator.clipboard && navigator.clipboard.writeText) {
1528
- navigator.clipboard.writeText(text).then(() => {
1529
- // Show brief feedback
1530
- const button = modal.querySelector('.git-diff-copy');
1531
- const originalText = button.textContent;
1532
- button.textContent = '✅ Copied!';
1533
- setTimeout(() => {
1534
- button.textContent = originalText;
1535
- }, 2000);
1536
- }).catch(err => {
1537
- console.error('Failed to copy text:', err);
1538
- });
1539
- } else {
1540
- // Fallback for older browsers
1541
- const textarea = document.createElement('textarea');
1542
- textarea.value = text;
1543
- document.body.appendChild(textarea);
1544
- textarea.select();
1545
- document.execCommand('copy');
1546
- document.body.removeChild(textarea);
1547
-
1548
- const button = modal.querySelector('.git-diff-copy');
1549
- const originalText = button.textContent;
1550
- button.textContent = '✅ Copied!';
1551
- setTimeout(() => {
1552
- button.textContent = originalText;
1553
- }, 2000);
1554
- }
1555
- };
1556
-
1557
- function createGitDiffModal() {
1558
- const modal = document.createElement('div');
1559
- modal.id = 'git-diff-modal';
1560
- modal.className = 'modal git-diff-modal';
1561
-
1562
- modal.innerHTML = `
1563
- <div class="modal-content git-diff-content">
1564
- <div class="git-diff-header">
1565
- <h2 class="git-diff-title">
1566
- <span class="git-diff-icon">📋</span>
1567
- <span class="git-diff-title-text">Git Diff</span>
1568
- </h2>
1569
- <div class="git-diff-meta">
1570
- <span class="git-diff-file-path"></span>
1571
- <span class="git-diff-timestamp"></span>
1572
- </div>
1573
- <button class="git-diff-close" onclick="hideGitDiffModal()">
1574
- <span>&times;</span>
1575
- </button>
1576
- </div>
1577
- <div class="git-diff-body">
1578
- <div class="git-diff-loading">
1579
- <div class="loading-spinner"></div>
1580
- <span>Loading git diff...</span>
1581
- </div>
1582
- <div class="git-diff-error" style="display: none;">
1583
- <div class="error-icon">⚠️</div>
1584
- <div class="error-message"></div>
1585
- <div class="error-suggestions"></div>
1586
- </div>
1587
- <div class="git-diff-content-area" style="display: none;">
1588
- <div class="git-diff-toolbar">
1589
- <div class="git-diff-info">
1590
- <span class="commit-hash"></span>
1591
- <span class="diff-method"></span>
1592
- </div>
1593
- <div class="git-diff-actions">
1594
- <button class="git-diff-copy" onclick="copyGitDiff()">
1595
- 📋 Copy
1596
- </button>
1597
- </div>
1598
- </div>
1599
- <div class="git-diff-scroll-wrapper">
1600
- <pre class="git-diff-display"><code class="git-diff-code"></code></pre>
1601
- </div>
1602
- </div>
1603
- </div>
1604
- </div>
1605
- `;
1606
-
1607
- // Close modal when clicking outside
1608
- modal.addEventListener('click', (e) => {
1609
- if (e.target === modal) {
1610
- hideGitDiffModal();
1611
- }
1612
- });
1613
-
1614
- // Close modal with Escape key
1615
- document.addEventListener('keydown', (e) => {
1616
- if (e.key === 'Escape' && modal.style.display === 'flex') {
1617
- hideGitDiffModal();
1618
- }
1619
- });
1620
-
1621
- return modal;
1622
- }
1623
-
1624
- async function updateGitDiffModal(modal, filePath, timestamp, workingDir) {
1625
- // Update header info
1626
- const filePathElement = modal.querySelector('.git-diff-file-path');
1627
- const timestampElement = modal.querySelector('.git-diff-timestamp');
1628
-
1629
- filePathElement.textContent = filePath;
1630
- timestampElement.textContent = timestamp ? new Date(timestamp).toLocaleString() : 'Latest';
1631
-
1632
- // Show loading state
1633
- modal.querySelector('.git-diff-loading').style.display = 'flex';
1634
- modal.querySelector('.git-diff-error').style.display = 'none';
1635
- modal.querySelector('.git-diff-content-area').style.display = 'none';
1636
-
1637
- try {
1638
- // Get the Socket.IO server port with multiple fallbacks
1639
- let port = 8765; // Default fallback
1640
-
1641
- // Try to get port from socketClient first
1642
- if (window.dashboard && window.dashboard.socketClient && window.dashboard.socketClient.port) {
1643
- port = window.dashboard.socketClient.port;
1644
- }
1645
- // Fallback to port input field if socketClient port is not available
1646
- else {
1647
- const portInput = document.getElementById('port-input');
1648
- if (portInput && portInput.value) {
1649
- port = portInput.value;
1650
- }
1651
- }
1652
-
1653
- // Build URL parameters
1654
- const params = new URLSearchParams({
1655
- file: filePath
1656
- });
1657
-
1658
- if (timestamp) {
1659
- params.append('timestamp', timestamp);
1660
- }
1661
- if (workingDir) {
1662
- params.append('working_dir', workingDir);
1663
- }
1664
-
1665
- const requestUrl = `http://localhost:${port}/api/git-diff?${params}`;
1666
- console.log('🌐 Making git diff request to:', requestUrl);
1667
- console.log('📋 Git diff request parameters:', {
1668
- filePath,
1669
- timestamp,
1670
- workingDir,
1671
- urlParams: params.toString()
1672
- });
1673
-
1674
- // Test server connectivity first
1675
- try {
1676
- const healthResponse = await fetch(`http://localhost:${port}/health`, {
1677
- method: 'GET',
1678
- headers: {
1679
- 'Accept': 'application/json',
1680
- 'Content-Type': 'application/json'
1681
- },
1682
- mode: 'cors'
1683
- });
1684
-
1685
- if (!healthResponse.ok) {
1686
- throw new Error(`Server health check failed: ${healthResponse.status} ${healthResponse.statusText}`);
1687
- }
1688
-
1689
- // Server health check passed
1690
- } catch (healthError) {
1691
- throw new Error(`Cannot reach server at localhost:${port}. Health check failed: ${healthError.message}`);
1692
- }
1693
-
1694
- // Make the actual git diff request
1695
- const response = await fetch(requestUrl, {
1696
- method: 'GET',
1697
- headers: {
1698
- 'Accept': 'application/json',
1699
- 'Content-Type': 'application/json'
1700
- },
1701
- mode: 'cors'
1702
- });
1703
-
1704
- if (!response.ok) {
1705
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
1706
- }
1707
-
1708
- const result = await response.json();
1709
- // Git diff response received
1710
-
1711
- // Hide loading
1712
- modal.querySelector('.git-diff-loading').style.display = 'none';
1713
-
1714
- if (result.success) {
1715
- // Displaying successful git diff
1716
- // Show successful diff
1717
- displayGitDiff(modal, result);
1718
- } else {
1719
- // Displaying git diff error
1720
- // Show error
1721
- displayGitDiffError(modal, result);
1722
- }
1723
-
1724
- } catch (error) {
1725
- console.error('❌ Failed to fetch git diff:', error);
1726
- console.error('Error details:', {
1727
- name: error.name,
1728
- message: error.message,
1729
- stack: error.stack,
1730
- filePath,
1731
- timestamp,
1732
- workingDir
1733
- });
1734
-
1735
- modal.querySelector('.git-diff-loading').style.display = 'none';
1736
-
1737
- // Create detailed error message based on error type
1738
- let errorMessage = `Network error: ${error.message}`;
1739
- let suggestions = [];
1740
-
1741
- if (error.message.includes('Failed to fetch')) {
1742
- errorMessage = 'Failed to connect to the monitoring server';
1743
- suggestions = [
1744
- 'Check if the monitoring server is running on port 8765',
1745
- 'Verify the port configuration in the dashboard',
1746
- 'Check browser console for CORS or network errors',
1747
- 'Try refreshing the page and reconnecting'
1748
- ];
1749
- } else if (error.message.includes('health check failed')) {
1750
- errorMessage = error.message;
1751
- suggestions = [
1752
- 'The server may be starting up - try again in a few seconds',
1753
- 'Check if another process is using port 8765',
1754
- 'Restart the claude-mpm monitoring server'
1755
- ];
1756
- } else if (error.message.includes('HTTP')) {
1757
- errorMessage = `Server error: ${error.message}`;
1758
- suggestions = [
1759
- 'The server encountered an internal error',
1760
- 'Check the server logs for more details',
1761
- 'Try with a different file or working directory'
1762
- ];
1763
- }
1764
-
1765
- displayGitDiffError(modal, {
1766
- error: errorMessage,
1767
- file_path: filePath,
1768
- working_dir: workingDir,
1769
- suggestions: suggestions,
1770
- debug_info: {
1771
- error_type: error.name,
1772
- original_message: error.message,
1773
- port: window.dashboard?.socketClient?.port || document.getElementById('port-input')?.value || '8765',
1774
- timestamp: new Date().toISOString()
1775
- }
1776
- });
1777
- }
1778
- }
1779
-
1780
- function highlightGitDiff(diffText) {
1781
- /**
1782
- * Apply basic syntax highlighting to git diff output
1783
- * WHY: Git diffs have a standard format that can be highlighted for better readability:
1784
- * - Lines starting with '+' are additions (green)
1785
- * - Lines starting with '-' are deletions (red)
1786
- * - Lines starting with '@@' are context headers (blue)
1787
- * - File headers and metadata get special formatting
1788
- */
1789
- return diffText
1790
- .split('\n')
1791
- .map(line => {
1792
- // Escape HTML entities
1793
- const escaped = line
1794
- .replace(/&/g, '&amp;')
1795
- .replace(/</g, '&lt;')
1796
- .replace(/>/g, '&gt;');
1797
-
1798
- // Apply diff highlighting
1799
- if (line.startsWith('+++') || line.startsWith('---')) {
1800
- return `<span class="diff-header">${escaped}</span>`;
1801
- } else if (line.startsWith('@@')) {
1802
- return `<span class="diff-meta">${escaped}</span>`;
1803
- } else if (line.startsWith('+')) {
1804
- return `<span class="diff-addition">${escaped}</span>`;
1805
- } else if (line.startsWith('-')) {
1806
- return `<span class="diff-deletion">${escaped}</span>`;
1807
- } else if (line.startsWith('commit ') || line.startsWith('Author:') || line.startsWith('Date:')) {
1808
- return `<span class="diff-header">${escaped}</span>`;
1809
- } else {
1810
- return `<span class="diff-context">${escaped}</span>`;
1811
- }
1812
- })
1813
- .join('\n');
1814
- }
1815
-
1816
- function displayGitDiff(modal, result) {
1817
- // Display git diff content
1818
- const contentArea = modal.querySelector('.git-diff-content-area');
1819
- const commitHashElement = modal.querySelector('.commit-hash');
1820
- const methodElement = modal.querySelector('.diff-method');
1821
- const codeElement = modal.querySelector('.git-diff-code');
1822
-
1823
- // Elements found for diff display
1824
-
1825
- // Update metadata
1826
- if (commitHashElement) commitHashElement.textContent = `Commit: ${result.commit_hash}`;
1827
- if (methodElement) methodElement.textContent = `Method: ${result.method}`;
1828
-
1829
- // Update diff content with basic syntax highlighting
1830
- if (codeElement && result.diff) {
1831
- // Setting diff content
1832
- codeElement.innerHTML = highlightGitDiff(result.diff);
1833
-
1834
- // Force scrolling to work by setting explicit heights
1835
- const wrapper = modal.querySelector('.git-diff-scroll-wrapper');
1836
- if (wrapper) {
1837
- // Give it a moment for content to render
1838
- setTimeout(() => {
1839
- const modalContent = modal.querySelector('.modal-content');
1840
- const header = modal.querySelector('.git-diff-header');
1841
- const toolbar = modal.querySelector('.git-diff-toolbar');
1842
-
1843
- const modalHeight = modalContent?.offsetHeight || 0;
1844
- const headerHeight = header?.offsetHeight || 0;
1845
- const toolbarHeight = toolbar?.offsetHeight || 0;
1846
-
1847
- const availableHeight = modalHeight - headerHeight - toolbarHeight - 40; // 40px for padding
1848
-
1849
- // Setting explicit scroll height
1850
-
1851
- wrapper.style.maxHeight = `${availableHeight}px`;
1852
- wrapper.style.overflowY = 'auto';
1853
- }, 50);
1854
- }
1855
- } else {
1856
- console.warn('⚠️ Missing codeElement or diff data');
1857
- }
1858
-
1859
- // Show content area
1860
- if (contentArea) {
1861
- contentArea.style.display = 'block';
1862
- // Content area displayed
1863
- }
1864
- }
1865
-
1866
- function displayGitDiffError(modal, result) {
1867
- const errorArea = modal.querySelector('.git-diff-error');
1868
- const messageElement = modal.querySelector('.error-message');
1869
- const suggestionsElement = modal.querySelector('.error-suggestions');
1870
-
1871
- // Create more user-friendly error messages
1872
- let errorMessage = result.error || 'Unknown error occurred';
1873
- let isUntracked = false;
1874
-
1875
- if (errorMessage.includes('not tracked by git')) {
1876
- errorMessage = '📝 This file is not tracked by git yet';
1877
- isUntracked = true;
1878
- } else if (errorMessage.includes('No git history found')) {
1879
- errorMessage = '📋 No git history available for this file';
1880
- }
1881
-
1882
- messageElement.innerHTML = `
1883
- <div class="error-main">${errorMessage}</div>
1884
- ${result.file_path ? `<div class="error-file">File: ${result.file_path}</div>` : ''}
1885
- ${result.working_dir ? `<div class="error-dir">Working directory: ${result.working_dir}</div>` : ''}
1886
- `;
1887
-
1888
- if (result.suggestions && result.suggestions.length > 0) {
1889
- const suggestionTitle = isUntracked ? 'How to track this file:' : 'Suggestions:';
1890
- suggestionsElement.innerHTML = `
1891
- <h4>${suggestionTitle}</h4>
1892
- <ul>
1893
- ${result.suggestions.map(s => `<li>${s}</li>`).join('')}
1894
- </ul>
1895
- `;
1896
- } else {
1897
- suggestionsElement.innerHTML = '';
1898
- }
1899
-
1900
- console.log('📋 Displaying git diff error:', {
1901
- originalError: result.error,
1902
- processedMessage: errorMessage,
1903
- isUntracked,
1904
- suggestions: result.suggestions
1905
- });
1906
-
1907
- errorArea.style.display = 'block';
1908
- }
1909
-
1910
1504
  // File Viewer Modal Functions
1911
1505
  window.showFileViewerModal = function(filePath) {
1912
1506
  // Use the dashboard's current working directory
@@ -791,9 +791,11 @@ class CodeTreeAnalyzer:
791
791
  CODE_EXTENSIONS = {
792
792
  ".py",
793
793
  ".js",
794
+ ".jsx",
794
795
  ".ts",
795
796
  ".tsx",
796
- ".jsx",
797
+ ".mjs", # Added missing extension
798
+ ".cjs", # Added missing extension
797
799
  ".java",
798
800
  ".cpp",
799
801
  ".c",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.1.24
3
+ Version: 4.1.25
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=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
2
- claude_mpm/VERSION,sha256=6LRtTefrGK5zvl6gbr7jlidPvfCnlzPAt-1I1YdYbEQ,7
2
+ claude_mpm/VERSION,sha256=KXCENAY067PP5Yu9b8ktjjExA4LIy4rK7JsWbLXFy2A,7
3
3
  claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=I946iCQzIIPRZVVJ8aO7lA4euiyDnNw2IX7EelAOkIE,5915
@@ -171,70 +171,71 @@ claude_mpm/dashboard/index.html,sha256=d0DPXBFdtIYWPv0TsLnnYBY8jY2wnoAL9EYAkrUN7
171
171
  claude_mpm/dashboard/open_dashboard.py,sha256=i4OHdjeQLtZX4UnLVMiFlq6iSENvlCcdcmodmaaU94Q,2205
172
172
  claude_mpm/dashboard/test_dashboard.html,sha256=Aakmm9O-pWld_CCXLuUBOJC81Ix9D1avytTN93u0zfc,15090
173
173
  claude_mpm/dashboard/.claude-mpm/socketio-instances.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
174
- claude_mpm/dashboard/static/built/dashboard.js,sha256=kShaKMMdwk1cKcHnXsn-3kLfYMHI14HUgGu_QJQpzZc,52792
174
+ claude_mpm/dashboard/static/built/dashboard.js,sha256=CcG0fB2BBYUKTiol9scTF8JQCleoaQpDHhyam_lUxxE,44400
175
175
  claude_mpm/dashboard/static/built/socket-client.js,sha256=z9HU1HePow8Yvh-7QMcjChwMYsR_p-ZvJVu8HU6d5Xg,29110
176
- claude_mpm/dashboard/static/built/components/activity-tree.js,sha256=UQqob5vOBJZ2NGfyfDDypRd_4Y8DHDFAVYnNq2RpdoY,27791
176
+ claude_mpm/dashboard/static/built/components/activity-tree.js,sha256=chhLu89ZJ9FvoSg4pDnM7v0Pd5GQx1-PHwUby1Ek3ns,29496
177
177
  claude_mpm/dashboard/static/built/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
178
- claude_mpm/dashboard/static/built/components/code-tree.js,sha256=uYGXTz8XhNmZ5HP03scjhiPo6FJLA7CGotQGzij_0BY,41165
178
+ claude_mpm/dashboard/static/built/components/code-tree.js,sha256=cM_S8PObjhYpj0CcMgtv5BAn-h1IBSiFtQWmwR2KYrY,46609
179
179
  claude_mpm/dashboard/static/built/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
180
180
  claude_mpm/dashboard/static/built/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
181
- claude_mpm/dashboard/static/built/components/event-viewer.js,sha256=D5tFt75KIj6NINZ0pd1cS3xLQr2XEXyV6-Xk4d6eZGY,26423
181
+ claude_mpm/dashboard/static/built/components/event-viewer.js,sha256=oyfvK8VO1RNSyN1CRoZiB22cNJ4D05p_ahM8WPCH27k,24902
182
182
  claude_mpm/dashboard/static/built/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
183
183
  claude_mpm/dashboard/static/built/components/file-tool-tracker.js,sha256=fZgUsg_u52KRYZFQooF_ZZjvKvYHaY9N7uJIS3XR9s8,9824
184
184
  claude_mpm/dashboard/static/built/components/hud-library-loader.js,sha256=v08Xntd0Lwf-q6Nww1X2r5AWokYLgg9xUWe6ExHiNAg,2964
185
185
  claude_mpm/dashboard/static/built/components/hud-manager.js,sha256=CvgzgqprROjl0DP4yQx4aAypONuNlzU2EP8woGk-8Sc,27392
186
186
  claude_mpm/dashboard/static/built/components/hud-visualizer.js,sha256=igUUu1OLKOgwrdsfCEb-bKOsbi61bMLlpKa3hR2wQdI,69
187
- claude_mpm/dashboard/static/built/components/module-viewer.js,sha256=w8oCXuubv1RGHAkUl2n89gAF6Qu-riP_mxRbDBpf3Bw,56764
187
+ claude_mpm/dashboard/static/built/components/module-viewer.js,sha256=ZcRJFUZ77eH5uKZyzVMDGmmfAk_hdrnaOpgPKzsZ6TU,50919
188
188
  claude_mpm/dashboard/static/built/components/session-manager.js,sha256=ZG__csNeB8-cG1VhRNoojD-DSmNHijXI4To410hGf2E,8970
189
189
  claude_mpm/dashboard/static/built/components/socket-manager.js,sha256=LEqCS0_EABAsQVUfb6WQk152mSicK2k039zne5cKR8A,131
190
190
  claude_mpm/dashboard/static/built/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
191
+ claude_mpm/dashboard/static/built/components/unified-data-viewer.js,sha256=bJbMeo8PciFPWLYe9NBtJrTwqpJ92xddRGD9mjDuhOM,29533
191
192
  claude_mpm/dashboard/static/built/components/working-directory.js,sha256=xE1ydpKDzRWrzHzfjrCiq5wbf3vDhmgQTGKS7myQcPM,15790
192
193
  claude_mpm/dashboard/static/css/activity.css,sha256=0SJUwGB6fr4OlVqMwhvVKrPndg2R3QTZPnN6DkAo4aU,37987
193
194
  claude_mpm/dashboard/static/css/code-tree.css,sha256=x0MlVKrBBYr7XU8ndhxx7cjCe35GouhthIM32Zc9SA8,25599
194
195
  claude_mpm/dashboard/static/css/connection-status.css,sha256=nQiMLxIFjY5MDgrVCG58VR5H1PpE1vLlgXmnn01-P64,6729
195
196
  claude_mpm/dashboard/static/css/dashboard.css,sha256=k_tHegUSiIFHAD2Ez1qX4PJCh4Ut-Tk0BgJ4EANqT54,75294
196
- claude_mpm/dashboard/static/dist/dashboard.js,sha256=BlDQDaezsu4Qqa6XBoCaWT041FggkyGrfWlz4dxdCUA,52841
197
+ claude_mpm/dashboard/static/dist/dashboard.js,sha256=Fm2v_pxM_jISp--n9XasrcL2nHYlfC1wcVZW4zGekw4,44966
197
198
  claude_mpm/dashboard/static/dist/socket-client.js,sha256=z9HU1HePow8Yvh-7QMcjChwMYsR_p-ZvJVu8HU6d5Xg,29110
198
- claude_mpm/dashboard/static/dist/chunks/unified-data-viewer.B7wmm2bD.js,sha256=fyPbOJ6Q1_Sf5m2yVwf5OXpta8YR_sa4wIU9uaCI-TY,27500
199
- claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=lfm--V2-UCjPkfoIuxCc14LNZdskeV1bxXZuPj17LEk,29513
199
+ claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=c7vYmCvMgq7irVrX-EFbNqVMgVuDJ_cwcvsZ4LSO3bU,29594
200
200
  claude_mpm/dashboard/static/dist/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
201
201
  claude_mpm/dashboard/static/dist/components/code-tree.js,sha256=cM_S8PObjhYpj0CcMgtv5BAn-h1IBSiFtQWmwR2KYrY,46609
202
202
  claude_mpm/dashboard/static/dist/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
203
203
  claude_mpm/dashboard/static/dist/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
204
- claude_mpm/dashboard/static/dist/components/event-viewer.js,sha256=D5tFt75KIj6NINZ0pd1cS3xLQr2XEXyV6-Xk4d6eZGY,26423
204
+ claude_mpm/dashboard/static/dist/components/event-viewer.js,sha256=oyfvK8VO1RNSyN1CRoZiB22cNJ4D05p_ahM8WPCH27k,24902
205
205
  claude_mpm/dashboard/static/dist/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
206
206
  claude_mpm/dashboard/static/dist/components/file-tool-tracker.js,sha256=fZgUsg_u52KRYZFQooF_ZZjvKvYHaY9N7uJIS3XR9s8,9824
207
207
  claude_mpm/dashboard/static/dist/components/hud-library-loader.js,sha256=v08Xntd0Lwf-q6Nww1X2r5AWokYLgg9xUWe6ExHiNAg,2964
208
208
  claude_mpm/dashboard/static/dist/components/hud-manager.js,sha256=CvgzgqprROjl0DP4yQx4aAypONuNlzU2EP8woGk-8Sc,27392
209
209
  claude_mpm/dashboard/static/dist/components/hud-visualizer.js,sha256=igUUu1OLKOgwrdsfCEb-bKOsbi61bMLlpKa3hR2wQdI,69
210
- claude_mpm/dashboard/static/dist/components/module-viewer.js,sha256=wlPT2g_q0zijyVxik1fJ78Va4wehQETQTIXE_VS7Yto,57056
210
+ claude_mpm/dashboard/static/dist/components/module-viewer.js,sha256=ZcRJFUZ77eH5uKZyzVMDGmmfAk_hdrnaOpgPKzsZ6TU,50919
211
211
  claude_mpm/dashboard/static/dist/components/session-manager.js,sha256=ZG__csNeB8-cG1VhRNoojD-DSmNHijXI4To410hGf2E,8970
212
212
  claude_mpm/dashboard/static/dist/components/socket-manager.js,sha256=LEqCS0_EABAsQVUfb6WQk152mSicK2k039zne5cKR8A,131
213
213
  claude_mpm/dashboard/static/dist/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
214
+ claude_mpm/dashboard/static/dist/components/unified-data-viewer.js,sha256=bJbMeo8PciFPWLYe9NBtJrTwqpJ92xddRGD9mjDuhOM,29533
214
215
  claude_mpm/dashboard/static/dist/components/working-directory.js,sha256=xE1ydpKDzRWrzHzfjrCiq5wbf3vDhmgQTGKS7myQcPM,15790
215
216
  claude_mpm/dashboard/static/js/connection-manager.js,sha256=nn7x1jmwEnBClcChbFk1uMhRPu5U1xmXz3sjuo0LNm4,17981
216
- claude_mpm/dashboard/static/js/dashboard.js,sha256=SFVWeJTG2w0fzAbVKzunN1NMPx13tJs7RqORVMAfuNI,79401
217
+ claude_mpm/dashboard/static/js/dashboard.js,sha256=RYzzhNr1pPAHZ12pgWjTpe15Nzaqrm-S9vzTRfqob5A,64712
217
218
  claude_mpm/dashboard/static/js/extension-error-handler.js,sha256=DZHrJ3gbfv4nsjmZpNMj-Sc3GKjVJ5ds8lgoaLRnq5I,6274
218
219
  claude_mpm/dashboard/static/js/socket-client.js,sha256=wC4vH0oP6xIDcSA-Q8cNI2bPW3hg3SAS9TZ75cD6y9Y,56052
219
- claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=3Hd18AJ_gFfU8AXv7tosYlBhVDEp2nFEJgZ5LvrduI4,72518
220
+ claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=1j46X0qjYReP6gwv0WGRpJSJNuBwuj6bKmumWrCZKUo,72740
220
221
  claude_mpm/dashboard/static/js/components/agent-hierarchy.js,sha256=Xihxog_vJrk8VBEkDogV_wbye2GIFWmH71VQ1lETOHk,28243
221
222
  claude_mpm/dashboard/static/js/components/agent-inference.js,sha256=RUVZ_fLOyDkHYjrROen_Pzzay79Bh29eXp_GRIPbIRg,37493
222
223
  claude_mpm/dashboard/static/js/components/build-tracker.js,sha256=iouv35tNhnyx9UKtD7X1eakJkpCnvZVCrAJ_VdzsKUY,11251
223
224
  claude_mpm/dashboard/static/js/components/code-tree.js,sha256=bLLU7MBZmTccIa3h3WCAyEwsyhRn5jicgJ7rpPPAYxQ,117432
224
225
  claude_mpm/dashboard/static/js/components/code-viewer.js,sha256=vhesEPYOM6MggweaYvYsv7ufVbuVpIcyJPXpJXyJwpM,14453
225
226
  claude_mpm/dashboard/static/js/components/connection-debug.js,sha256=Qxr_ofDNkxDlZAwbLnhZkXVMyuO9jOe-NMWC9VHxNnA,22196
226
- claude_mpm/dashboard/static/js/components/event-processor.js,sha256=_GnAz8pxN1iyXw0O4AIR482QFyQAigEKO9IDUOUbGqc,24844
227
+ claude_mpm/dashboard/static/js/components/event-processor.js,sha256=pP15JIf2yEh7gqEdam42m_B1B4hDlfKbkDcGmQhyjM8,20567
227
228
  claude_mpm/dashboard/static/js/components/event-viewer.js,sha256=Ahl9eTxCYMhDC_533Gf4O96S04W5O_Ts0PAGWSVivkI,43672
228
229
  claude_mpm/dashboard/static/js/components/export-manager.js,sha256=T1YtaR758FaB9aP_5V1xZC9EBIFQOG5H8f_sLopxR5A,11863
229
230
  claude_mpm/dashboard/static/js/components/file-tool-tracker.js,sha256=y8O7kW5uP6KBT2gWvjRoH1aJG-7o1qzyrVnvShsNAK0,28620
230
231
  claude_mpm/dashboard/static/js/components/hud-library-loader.js,sha256=SK6tY8TL88lnewi4M-i092HdgYondv_lVfHoQ-A_cWU,7170
231
232
  claude_mpm/dashboard/static/js/components/hud-manager.js,sha256=hpvz1Ls5UcNgTbwjl7tK0OgNZ_QHnRXgNqqYaq4jjvM,25956
232
233
  claude_mpm/dashboard/static/js/components/hud-visualizer.js,sha256=crgq3eA4xiXDE4SV9m-S94Of2y7znd1a3F4GYn2yjnU,61127
233
- claude_mpm/dashboard/static/js/components/module-viewer.js,sha256=5OQpPfBr0AmNF4tKPw5eZ9HRVCFegHp4lVBs4iOb_JA,116834
234
+ claude_mpm/dashboard/static/js/components/module-viewer.js,sha256=jhgPVOtg_827p6b1-NxkeQQBNF-sztLqur4xdTyflTk,107647
234
235
  claude_mpm/dashboard/static/js/components/session-manager.js,sha256=pJrlMcSBNTXoK5nDLWLcIesOosk0FQtkTEM6X7eSI_I,22807
235
236
  claude_mpm/dashboard/static/js/components/socket-manager.js,sha256=KC-aOJDEPSiMPYk0ABgvCC1xmO7TVQ4SVqohi2GNsWQ,13303
236
237
  claude_mpm/dashboard/static/js/components/ui-state-manager.js,sha256=EWm0HpPI9TShChitRCyZvZCiUk5rIBVyw10BoHdnTzI,13178
237
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js,sha256=JLlmoC5c6BySNikdC4MpusfzI-W53xR_mNsGXfrD92o,44900
238
+ claude_mpm/dashboard/static/js/components/unified-data-viewer.js,sha256=8PmpiYWUdd6m4dgP-wkygmD_AYuZk2M2FkmUtY76RWs,48717
238
239
  claude_mpm/dashboard/static/js/components/working-directory.js,sha256=BRsPYwVnhbhFl0mC0Gvb-Ev1zxAu6yZpZcl1T1aJWWA,33558
239
240
  claude_mpm/dashboard/templates/index.html,sha256=dGb4Z2vcboxvZdNS8zv41mOM5VtHkD6gt7dlvc3tb2U,30667
240
241
  claude_mpm/experimental/__init__.py,sha256=R_aclOvWpvSTHWAx9QXyg9OIPVK2dXT5tQJhxLQN11Y,369
@@ -573,7 +574,7 @@ claude_mpm/storage/__init__.py,sha256=DXnmee6iGqC6ctFLW7_Ty1cVCjYDFuCMkwO4EV0i25
573
574
  claude_mpm/storage/state_storage.py,sha256=1fFqkFy63T32JQvhUdVBNhaLQyUlkq4unjeyl0Z6j8I,16865
574
575
  claude_mpm/tools/__init__.py,sha256=T3GuCYNAHtjVcKCeivY674PaDm48WX96AriQfTKUknY,347
575
576
  claude_mpm/tools/__main__.py,sha256=MKDuxFuujqD5FZcLTqniDNQ2BI8yg5fDSLU3ElV6m6U,5709
576
- claude_mpm/tools/code_tree_analyzer.py,sha256=_qoQcH_gMSeZQsEx2xkGuj-ZKmxabGCtk92-0XFo-Ug,59398
577
+ claude_mpm/tools/code_tree_analyzer.py,sha256=TCjjktDqBxJelW2atVtZEwN-FrEhDb4ISrnCRdXuOKs,59490
577
578
  claude_mpm/tools/code_tree_builder.py,sha256=gwnsFO5ajs55UzX3SU34OMZBwhjouruQhGdQ3fJHjeA,18126
578
579
  claude_mpm/tools/code_tree_events.py,sha256=ypUmxQRUpxQt2LQfXV_qpdL42KNvLO-K5XstxZIj9-w,13277
579
580
  claude_mpm/tools/socketio_debug.py,sha256=H0mKHO6EIYqCVm4YU-SJ4Cw8ssA7VqJ3vU7y6eF7brk,22212
@@ -597,9 +598,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
597
598
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
598
599
  claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
599
600
  claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
600
- claude_mpm-4.1.24.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
601
- claude_mpm-4.1.24.dist-info/METADATA,sha256=9bT1nP2mYJ349jHYJVNLd594TLafVdPKODLp9fIWuyo,13777
602
- claude_mpm-4.1.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
603
- claude_mpm-4.1.24.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
604
- claude_mpm-4.1.24.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
605
- claude_mpm-4.1.24.dist-info/RECORD,,
601
+ claude_mpm-4.1.25.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
602
+ claude_mpm-4.1.25.dist-info/METADATA,sha256=NaZANeklcu-Go63wrBLs9CwR99-Jp3IyJE7ycvffWuo,13777
603
+ claude_mpm-4.1.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
604
+ claude_mpm-4.1.25.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
605
+ claude_mpm-4.1.25.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
606
+ claude_mpm-4.1.25.dist-info/RECORD,,