claude-mpm 4.1.12__py3-none-any.whl → 4.1.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.
Files changed (31) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/cli/commands/monitor.py +88 -627
  3. claude_mpm/cli/commands/mpm_init.py +7 -2
  4. claude_mpm/dashboard/static/built/components/activity-tree.js +1 -1
  5. claude_mpm/dashboard/static/built/components/code-tree.js +1 -1
  6. claude_mpm/dashboard/static/built/dashboard.js +1 -1
  7. claude_mpm/dashboard/static/built/socket-client.js +1 -1
  8. claude_mpm/dashboard/static/css/activity.css +1239 -267
  9. claude_mpm/dashboard/static/css/code-tree.css +235 -2
  10. claude_mpm/dashboard/static/css/dashboard.css +511 -0
  11. claude_mpm/dashboard/static/dist/components/activity-tree.js +1 -1
  12. claude_mpm/dashboard/static/dist/components/code-tree.js +2 -2593
  13. claude_mpm/dashboard/static/dist/components/module-viewer.js +1 -1
  14. claude_mpm/dashboard/static/dist/dashboard.js +1 -1
  15. claude_mpm/dashboard/static/dist/socket-client.js +1 -1
  16. claude_mpm/dashboard/static/js/components/activity-tree.js +1193 -892
  17. claude_mpm/dashboard/static/js/components/code-tree.js +535 -258
  18. claude_mpm/dashboard/static/js/components/module-viewer.js +21 -7
  19. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +1066 -0
  20. claude_mpm/dashboard/static/js/connection-manager.js +1 -1
  21. claude_mpm/dashboard/static/js/dashboard.js +196 -43
  22. claude_mpm/dashboard/static/js/socket-client.js +2 -2
  23. claude_mpm/dashboard/templates/index.html +95 -25
  24. claude_mpm/services/cli/socketio_manager.py +1 -1
  25. claude_mpm/services/infrastructure/monitoring.py +1 -1
  26. {claude_mpm-4.1.12.dist-info → claude_mpm-4.1.14.dist-info}/METADATA +1 -1
  27. {claude_mpm-4.1.12.dist-info → claude_mpm-4.1.14.dist-info}/RECORD +31 -30
  28. {claude_mpm-4.1.12.dist-info → claude_mpm-4.1.14.dist-info}/WHEEL +0 -0
  29. {claude_mpm-4.1.12.dist-info → claude_mpm-4.1.14.dist-info}/entry_points.txt +0 -0
  30. {claude_mpm-4.1.12.dist-info → claude_mpm-4.1.14.dist-info}/licenses/LICENSE +0 -0
  31. {claude_mpm-4.1.12.dist-info → claude_mpm-4.1.14.dist-info}/top_level.txt +0 -0
@@ -461,6 +461,13 @@
461
461
  position: relative;
462
462
  overflow: auto;
463
463
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
464
+ border-left: 1px solid #e2e8f0;
465
+ }
466
+
467
+ /* Visual hierarchy improvements */
468
+ .code-tree-container:focus-within {
469
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
470
+ border-left-color: #3b82f6;
464
471
  }
465
472
 
466
473
  /* Loading indicator */
@@ -710,6 +717,78 @@
710
717
  filter: brightness(1.1);
711
718
  }
712
719
 
720
+ /* Directory node styling - make expandable directories obvious */
721
+ .code-node.directory circle {
722
+ fill: #f8fafc;
723
+ stroke: #3b82f6;
724
+ stroke-width: 2px;
725
+ }
726
+
727
+ .code-node.directory:hover circle {
728
+ fill: #eef2ff;
729
+ stroke: #2563eb;
730
+ stroke-width: 3px;
731
+ filter: drop-shadow(0 2px 4px rgba(59, 130, 246, 0.3));
732
+ }
733
+
734
+ /* Expanded directory styling */
735
+ .code-node.directory.expanded circle {
736
+ fill: #dbeafe;
737
+ stroke: #1d4ed8;
738
+ }
739
+
740
+ /* File node styling */
741
+ .code-node.file circle {
742
+ fill: #f9fafb;
743
+ stroke: #6b7280;
744
+ stroke-width: 1.5px;
745
+ }
746
+
747
+ .code-node.file:hover circle {
748
+ fill: #f3f4f6;
749
+ stroke: #4b5563;
750
+ stroke-width: 2px;
751
+ }
752
+
753
+ /* Empty directory styling */
754
+ .code-node.directory.empty circle {
755
+ fill: #f9fafb;
756
+ stroke: #9ca3af;
757
+ stroke-dasharray: 3,3;
758
+ opacity: 0.7;
759
+ }
760
+
761
+ /* Directory expand/collapse icons */
762
+ .expand-icon {
763
+ font-family: monospace;
764
+ font-size: 12px;
765
+ font-weight: bold;
766
+ text-anchor: middle;
767
+ dominant-baseline: central;
768
+ fill: #374151;
769
+ pointer-events: none;
770
+ transition: all 0.2s ease;
771
+ }
772
+
773
+ .code-node.directory .expand-icon {
774
+ fill: #3b82f6;
775
+ }
776
+
777
+ .code-node.directory.expanded .expand-icon {
778
+ fill: #1d4ed8;
779
+ transform: rotate(90deg);
780
+ }
781
+
782
+ .code-node.directory.loading .expand-icon {
783
+ fill: #f59e0b;
784
+ animation: spin 1s linear infinite;
785
+ }
786
+
787
+ @keyframes spin {
788
+ from { transform: rotate(0deg); }
789
+ to { transform: rotate(360deg); }
790
+ }
791
+
713
792
  /* Visualization Controls */
714
793
  .viz-controls {
715
794
  position: absolute;
@@ -802,6 +881,31 @@
802
881
  fill: #ec4899;
803
882
  }
804
883
 
884
+ /* Search match highlighting */
885
+ .code-node.search-match circle {
886
+ stroke: #fbbf24 !important;
887
+ stroke-width: 3px;
888
+ fill: #fef3c7 !important;
889
+ filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.6));
890
+ animation: searchPulse 2s ease-in-out infinite;
891
+ }
892
+
893
+ .code-node.search-match text {
894
+ font-weight: bold;
895
+ fill: #92400e;
896
+ }
897
+
898
+ @keyframes searchPulse {
899
+ 0%, 100% {
900
+ stroke-width: 3px;
901
+ opacity: 1;
902
+ }
903
+ 50% {
904
+ stroke-width: 4px;
905
+ opacity: 0.8;
906
+ }
907
+ }
908
+
805
909
  /* Collapsed node indicator */
806
910
  .code-node.collapsed circle {
807
911
  fill: #e2e8f0 !important;
@@ -851,6 +955,31 @@
851
955
  fill: #fef3c7 !important;
852
956
  }
853
957
 
958
+ /* Enhanced loading states */
959
+ .code-node.loading circle {
960
+ stroke: #f59e0b !important;
961
+ fill: #fef3c7 !important;
962
+ animation: nodePulse 1.5s ease-in-out infinite;
963
+ }
964
+
965
+ .code-node.loading text {
966
+ fill: #92400e;
967
+ font-weight: 600;
968
+ }
969
+
970
+ /* Directory item count badge */
971
+ .item-count-badge {
972
+ font-size: 10px;
973
+ fill: #6b7280;
974
+ text-anchor: middle;
975
+ dominant-baseline: central;
976
+ font-weight: 500;
977
+ }
978
+
979
+ .code-node.directory:hover .item-count-badge {
980
+ fill: #374151;
981
+ }
982
+
854
983
  /* Tooltips */
855
984
  .code-tooltip {
856
985
  position: absolute;
@@ -864,11 +993,115 @@
864
993
  z-index: 1000;
865
994
  }
866
995
 
996
+ /* Tree control toolbar */
997
+ .tree-controls-toolbar {
998
+ position: absolute;
999
+ top: 15px;
1000
+ right: 15px;
1001
+ display: flex;
1002
+ gap: 8px;
1003
+ z-index: 100;
1004
+ background: rgba(255, 255, 255, 0.95);
1005
+ backdrop-filter: blur(4px);
1006
+ border: 1px solid #e5e7eb;
1007
+ border-radius: 8px;
1008
+ padding: 6px;
1009
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1010
+ }
1011
+
1012
+ .tree-control-btn {
1013
+ padding: 6px 10px;
1014
+ font-size: 12px;
1015
+ font-weight: 500;
1016
+ border: 1px solid #d1d5db;
1017
+ background: white;
1018
+ color: #374151;
1019
+ border-radius: 4px;
1020
+ cursor: pointer;
1021
+ transition: all 0.2s ease;
1022
+ display: flex;
1023
+ align-items: center;
1024
+ gap: 4px;
1025
+ min-width: 32px;
1026
+ justify-content: center;
1027
+ }
1028
+
1029
+ .tree-control-btn:hover {
1030
+ background: #f3f4f6;
1031
+ border-color: #9ca3af;
1032
+ transform: translateY(-1px);
1033
+ }
1034
+
1035
+ .tree-control-btn:active {
1036
+ transform: translateY(0);
1037
+ }
1038
+
1039
+ .tree-control-btn.active {
1040
+ background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
1041
+ color: white;
1042
+ border-color: #2563eb;
1043
+ box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
1044
+ }
1045
+
1046
+ .tree-control-btn:disabled {
1047
+ opacity: 0.5;
1048
+ cursor: not-allowed;
1049
+ transform: none;
1050
+ }
1051
+
1052
+ /* Breadcrumb navigation */
1053
+ .tree-breadcrumb {
1054
+ position: absolute;
1055
+ top: 15px;
1056
+ left: 15px;
1057
+ background: rgba(255, 255, 255, 0.95);
1058
+ backdrop-filter: blur(4px);
1059
+ border: 1px solid #e5e7eb;
1060
+ border-radius: 8px;
1061
+ padding: 6px 12px;
1062
+ font-size: 12px;
1063
+ color: #4b5563;
1064
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
1065
+ max-width: 400px;
1066
+ z-index: 100;
1067
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1068
+ }
1069
+
1070
+ .breadcrumb-path {
1071
+ display: flex;
1072
+ align-items: center;
1073
+ gap: 4px;
1074
+ font-weight: 500;
1075
+ }
1076
+
1077
+ .breadcrumb-separator {
1078
+ color: #9ca3af;
1079
+ margin: 0 2px;
1080
+ }
1081
+
1082
+ .breadcrumb-segment {
1083
+ color: #374151;
1084
+ cursor: pointer;
1085
+ padding: 2px 4px;
1086
+ border-radius: 3px;
1087
+ transition: background 0.2s ease;
1088
+ }
1089
+
1090
+ .breadcrumb-segment:hover {
1091
+ background: rgba(59, 130, 246, 0.1);
1092
+ color: #3b82f6;
1093
+ }
1094
+
1095
+ .breadcrumb-segment.current {
1096
+ color: #3b82f6;
1097
+ font-weight: 600;
1098
+ }
1099
+
867
1100
  /* Code tree notifications */
868
1101
  .code-tree-notification {
869
1102
  position: absolute;
870
- top: 10px;
871
- right: 10px;
1103
+ top: 70px;
1104
+ right: 15px;
872
1105
  padding: 12px 20px;
873
1106
  border-radius: 6px;
874
1107
  background: white;