claude-mpm 4.1.14__py3-none-any.whl → 4.1.17__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/agents/templates/ops.json +15 -6
  3. claude_mpm/cli/commands/mpm_init.py +154 -7
  4. claude_mpm/cli/commands/mpm_init_handler.py +1 -0
  5. claude_mpm/cli/parsers/mpm_init_parser.py +13 -0
  6. claude_mpm/commands/__init__.py +14 -0
  7. claude_mpm/commands/mpm-agents.md +12 -0
  8. claude_mpm/commands/mpm-config.md +18 -0
  9. claude_mpm/commands/mpm-doctor.md +24 -0
  10. claude_mpm/commands/mpm-help.md +10 -0
  11. claude_mpm/commands/mpm-init.md +162 -0
  12. claude_mpm/commands/mpm-status.md +13 -0
  13. claude_mpm/commands/mpm-tickets.md +102 -0
  14. claude_mpm/commands/mpm.md +19 -0
  15. claude_mpm/dashboard/__init__.py +12 -0
  16. claude_mpm/dashboard/static/css/activity.css +165 -0
  17. claude_mpm/dashboard/static/css/dashboard.css +18 -15
  18. claude_mpm/dashboard/static/js/components/activity-tree.js +603 -475
  19. claude_mpm/experimental/__init__.py +10 -0
  20. claude_mpm/hooks/claude_hooks/installer.py +13 -3
  21. claude_mpm/schemas/__init__.py +12 -0
  22. claude_mpm/scripts/socketio_daemon_wrapper.py +78 -0
  23. claude_mpm/services/cli/socketio_manager.py +21 -13
  24. claude_mpm/services/command_deployment_service.py +8 -2
  25. claude_mpm/tools/__init__.py +10 -0
  26. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/METADATA +8 -2
  27. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/RECORD +31 -17
  28. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/WHEEL +0 -0
  29. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/entry_points.txt +0 -0
  30. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/licenses/LICENSE +0 -0
  31. {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,102 @@
1
+ # mpm-tickets
2
+
3
+ Create and manage tickets using aitrackdown
4
+
5
+ ## Usage
6
+
7
+ Use this command to create and manage tickets (epics, issues, tasks) through aitrackdown CLI integration.
8
+
9
+ ## Commands
10
+
11
+ ### Create tickets
12
+ ```bash
13
+ # Create an epic
14
+ aitrackdown create epic "Title" --description "Description"
15
+
16
+ # Create an issue
17
+ aitrackdown create issue "Title" --description "Description"
18
+
19
+ # Create a task
20
+ aitrackdown create task "Title" --description "Description"
21
+
22
+ # Create task under an issue
23
+ aitrackdown create task "Title" --issue ISS-0001
24
+ ```
25
+
26
+ ### View tickets
27
+ ```bash
28
+ # Show all tasks
29
+ aitrackdown status tasks
30
+
31
+ # Show specific ticket
32
+ aitrackdown show ISS-0001
33
+ ```
34
+
35
+ ### Update tickets
36
+ ```bash
37
+ # Change status
38
+ aitrackdown transition ISS-0001 in-progress
39
+ aitrackdown transition ISS-0001 done
40
+
41
+ # Add comment
42
+ aitrackdown comment ISS-0001 "Your comment"
43
+ ```
44
+
45
+ ### Search tickets
46
+ ```bash
47
+ aitrackdown search tasks "keyword"
48
+ ```
49
+
50
+ ## Ticket Types
51
+
52
+ - **EP-XXXX**: Epics (major initiatives)
53
+ - **ISS-XXXX**: Issues (bugs, features, user requests)
54
+ - **TSK-XXXX**: Tasks (individual work items)
55
+
56
+ ## Workflow States
57
+
58
+ Valid transitions:
59
+ - `open` → `in-progress` → `ready` → `tested` → `done`
60
+ - Any state → `waiting` (when blocked)
61
+ - Any state → `closed` (to close)
62
+
63
+ ## Examples
64
+
65
+ ### Bug Report Flow
66
+ ```bash
67
+ # Create issue for bug
68
+ aitrackdown create issue "Login bug" --description "Users can't login" --severity high
69
+
70
+ # Create investigation task
71
+ aitrackdown create task "Investigate login bug" --issue ISS-0001
72
+
73
+ # Update status
74
+ aitrackdown transition TSK-0001 in-progress
75
+ aitrackdown comment TSK-0001 "Found the issue"
76
+
77
+ # Complete
78
+ aitrackdown transition TSK-0001 done
79
+ aitrackdown transition ISS-0001 done
80
+ ```
81
+
82
+ ### Feature Implementation
83
+ ```bash
84
+ # Create epic
85
+ aitrackdown create epic "OAuth2 Support"
86
+
87
+ # Create issues
88
+ aitrackdown create issue "Google OAuth2" --description "Add Google auth"
89
+ aitrackdown create issue "GitHub OAuth2" --description "Add GitHub auth"
90
+
91
+ # Create tasks
92
+ aitrackdown create task "Design OAuth flow" --issue ISS-0001
93
+ aitrackdown create task "Implement Google client" --issue ISS-0001
94
+ ```
95
+
96
+ ## Tips
97
+
98
+ - Always use aitrackdown directly (not claude-mpm tickets)
99
+ - Check ticket exists with `show` before updating
100
+ - Add comments to document progress
101
+ - Use `--severity` for bugs, `--priority` for features
102
+ - Associate tasks with issues using `--issue`
@@ -0,0 +1,19 @@
1
+ # Claude MPM - Multi-Agent Project Manager
2
+
3
+ Access Claude MPM functionality and manage your multi-agent orchestration.
4
+
5
+ Available MPM commands:
6
+ - /mpm-agents - Show available agents and versions
7
+ - /mpm-doctor - Run diagnostic checks
8
+ - /mpm-help - Show command help
9
+ - /mpm-status - Show MPM status
10
+ - /mpm-config - Manage configuration
11
+
12
+ Claude MPM extends Claude Code with:
13
+ - Multi-agent orchestration
14
+ - Project-specific PM instructions
15
+ - Agent memory management
16
+ - WebSocket monitoring
17
+ - Hook system for automation
18
+
19
+ For more information, use /mpm-help [command]
@@ -0,0 +1,12 @@
1
+ """
2
+ Dashboard package for Claude MPM.
3
+
4
+ This package contains the web-based dashboard components for Claude MPM,
5
+ including the analysis runner, dashboard opener, and static web assets.
6
+
7
+ The dashboard provides real-time monitoring, analysis visualization, and
8
+ interactive debugging capabilities for Claude MPM operations.
9
+
10
+ This __init__.py file is required to make this directory recognizable as a
11
+ Python package by setuptools for proper distribution and imports.
12
+ """
@@ -261,6 +261,14 @@
261
261
  flex-shrink: 0;
262
262
  }
263
263
 
264
+ .tree-status-icon {
265
+ font-size: 14px;
266
+ width: 18px;
267
+ text-align: center;
268
+ flex-shrink: 0;
269
+ margin-left: 2px;
270
+ }
271
+
264
272
  .tree-expand-icon {
265
273
  font-size: 12px;
266
274
  width: 16px;
@@ -470,6 +478,7 @@ body .activity-tree-container .linear-tree .tree-node.tool.status-in_progress,
470
478
  background: #e6fffa !important;
471
479
  border-left-color: #38b2ac !important;
472
480
  border-left-width: 3px !important;
481
+ animation: pulse-tool 2s infinite;
473
482
  }
474
483
 
475
484
  body .activity-tree-container .linear-tree .tree-node.tool.status-completed,
@@ -486,6 +495,43 @@ body .activity-tree-container .linear-tree .tree-node.tool.status-failed,
486
495
  border-left-width: 2px !important;
487
496
  }
488
497
 
498
+ /* Tool Status Icons */
499
+ .tree-node.tool .tree-status-icon {
500
+ color: #718096;
501
+ }
502
+
503
+ .tree-node.tool.status-in_progress .tree-status-icon {
504
+ color: #38b2ac;
505
+ animation: spin 2s linear infinite;
506
+ }
507
+
508
+ .tree-node.tool.status-completed .tree-status-icon {
509
+ color: #38a169;
510
+ }
511
+
512
+ .tree-node.tool.status-failed .tree-status-icon {
513
+ color: #e53e3e;
514
+ }
515
+
516
+ /* Spinning animation for in-progress tools */
517
+ @keyframes spin {
518
+ 0% { transform: rotate(0deg); }
519
+ 100% { transform: rotate(360deg); }
520
+ }
521
+
522
+ /* Pulse animation for in-progress tools */
523
+ @keyframes pulse-tool {
524
+ 0% {
525
+ background: #e6fffa !important;
526
+ }
527
+ 50% {
528
+ background: #b2f5ea !important;
529
+ }
530
+ 100% {
531
+ background: #e6fffa !important;
532
+ }
533
+ }
534
+
489
535
  /* Privileged Tool (TodoWrite) - High Specificity */
490
536
  body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool,
491
537
  .tree-node.tool.privileged-tool {
@@ -523,6 +569,7 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
523
569
  background: #e6fffa !important;
524
570
  border-left-color: #38b2ac !important;
525
571
  border-left-width: 3px !important;
572
+ animation: pulse-tool 2s infinite;
526
573
  }
527
574
 
528
575
  .tree-node.tool:not(.privileged-tool).status-completed {
@@ -612,6 +659,44 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
612
659
  }
613
660
  }
614
661
 
662
+ /* Pinned TODOs Styles */
663
+ .tree-node.pinned-todos {
664
+ background: linear-gradient(135deg, #fff8dc 0%, #f0e68c 100%) !important;
665
+ border-left: 4px solid #daa520 !important;
666
+ border-radius: 6px !important;
667
+ margin: 4px 0 !important;
668
+ font-weight: 600 !important;
669
+ }
670
+
671
+ .tree-node.pinned-todos:hover {
672
+ background: linear-gradient(135deg, #f0e68c 0%, #daa520 100%) !important;
673
+ box-shadow: 0 4px 8px rgba(218, 165, 32, 0.3) !important;
674
+ }
675
+
676
+ .tree-node.pinned-todos .tree-label {
677
+ color: #b8860b !important;
678
+ font-weight: bold !important;
679
+ }
680
+
681
+ .tree-node.pinned-todos .tree-icon {
682
+ color: #daa520 !important;
683
+ font-size: 18px !important;
684
+ }
685
+
686
+ .tree-node.pinned-todos .tree-params {
687
+ background: #f5deb3 !important;
688
+ color: #8b4513 !important;
689
+ font-weight: 600 !important;
690
+ border: 1px solid #daa520 !important;
691
+ }
692
+
693
+ .tree-node.pinned-todos .tree-status {
694
+ background: #daa520 !important;
695
+ color: white !important;
696
+ font-weight: bold !important;
697
+ text-transform: uppercase !important;
698
+ }
699
+
615
700
  /* Tree Legend */
616
701
  .tree-legend {
617
702
  position: absolute;
@@ -1518,4 +1603,84 @@ body .activity-tree-container .linear-tree .tree-node.tool.privileged-tool .tree
1518
1603
  .tree-expand-icon:focus {
1519
1604
  outline: 2px solid #4299e1;
1520
1605
  outline-offset: 2px;
1606
+ }
1607
+
1608
+ /* Active/current item highlighting */
1609
+ .tree-node.current-active {
1610
+ background: linear-gradient(90deg, rgba(245, 158, 11, 0.1) 0%, transparent 100%);
1611
+ border-left: 3px solid #f59e0b;
1612
+ animation: pulse-active 2s ease-in-out infinite;
1613
+ }
1614
+
1615
+ .tree-node.has-active .tree-node-content {
1616
+ font-weight: 600;
1617
+ }
1618
+
1619
+ .tree-node.todowrite.has-active .tree-icon {
1620
+ animation: rotate-icon 3s linear infinite;
1621
+ }
1622
+
1623
+ @keyframes pulse-active {
1624
+ 0%, 100% {
1625
+ background: linear-gradient(90deg, rgba(245, 158, 11, 0.1) 0%, transparent 100%);
1626
+ }
1627
+ 50% {
1628
+ background: linear-gradient(90deg, rgba(245, 158, 11, 0.2) 0%, transparent 100%);
1629
+ }
1630
+ }
1631
+
1632
+ @keyframes rotate-icon {
1633
+ from {
1634
+ transform: rotate(0deg);
1635
+ }
1636
+ to {
1637
+ transform: rotate(360deg);
1638
+ }
1639
+ }
1640
+
1641
+ /* Collapsed state indicators */
1642
+ .tree-node.agent:not(.expanded) .tree-label {
1643
+ font-style: italic;
1644
+ color: #4b5563;
1645
+ }
1646
+
1647
+ .tree-node.agent .tree-label .current-status {
1648
+ color: #f59e0b;
1649
+ font-weight: 600;
1650
+ margin-left: 10px;
1651
+ }
1652
+
1653
+ /* TodoWrite specific styles */
1654
+ .tree-node.todowrite {
1655
+ background: rgba(99, 102, 241, 0.05);
1656
+ border-radius: 4px;
1657
+ margin: 2px 0;
1658
+ }
1659
+
1660
+ .tree-node.todowrite .tree-node-content {
1661
+ padding: 4px 8px;
1662
+ }
1663
+
1664
+ /* Multiple call/update indicators */
1665
+ .tree-node .tree-label .call-count,
1666
+ .tree-node .tree-label .update-count {
1667
+ color: #6366f1;
1668
+ font-weight: 600;
1669
+ font-size: 0.85em;
1670
+ opacity: 0.8;
1671
+ }
1672
+
1673
+ .tree-node.tool .tree-label {
1674
+ position: relative;
1675
+ }
1676
+
1677
+ .tree-node.tool .call-indicator {
1678
+ display: inline-block;
1679
+ background: #f59e0b;
1680
+ color: white;
1681
+ border-radius: 10px;
1682
+ padding: 0 6px;
1683
+ font-size: 0.75em;
1684
+ margin-left: 5px;
1685
+ font-weight: 600;
1521
1686
  }
@@ -661,8 +661,8 @@ label {
661
661
  }
662
662
 
663
663
  .status-pending {
664
- background: #fed7d7;
665
- color: #742a2a;
664
+ background: #f3f4f6;
665
+ color: #4b5563;
666
666
  padding: 2px 6px;
667
667
  border-radius: 4px;
668
668
  font-size: 11px;
@@ -2779,13 +2779,15 @@ button:disabled:hover {
2779
2779
  }
2780
2780
 
2781
2781
  .tool-phase.pre_tool {
2782
- background: #fef3c7;
2783
- color: #92400e;
2782
+ background: #f0f9ff;
2783
+ color: #0369a1;
2784
+ border: 1px solid #bae6fd;
2784
2785
  }
2785
2786
 
2786
2787
  .tool-phase.post_tool {
2787
2788
  background: #d1fae5;
2788
2789
  color: #065f46;
2790
+ border: 1px solid #a7f3d0;
2789
2791
  }
2790
2792
 
2791
2793
  .tool-timestamp {
@@ -2838,8 +2840,9 @@ button:disabled:hover {
2838
2840
  }
2839
2841
 
2840
2842
  .tool-status-indicator.status-blocked {
2841
- background: #fef3c7;
2842
- color: #d97706;
2843
+ background: #fef2f2;
2844
+ color: #dc2626;
2845
+ border: 1px solid #fecaca;
2843
2846
  }
2844
2847
 
2845
2848
  .tool-status-indicator.status-running {
@@ -2909,9 +2912,9 @@ button:disabled:hover {
2909
2912
  }
2910
2913
 
2911
2914
  .tool-result-status.tool-blocked {
2912
- background: #fef3c7;
2913
- color: #92400e;
2914
- border: 1px solid #fde68a;
2915
+ background: #fff1f2;
2916
+ color: #be123c;
2917
+ border: 1px solid #fecdd3;
2915
2918
  }
2916
2919
 
2917
2920
  .tool-result-status.tool-running {
@@ -3686,8 +3689,8 @@ button:disabled:hover {
3686
3689
  }
3687
3690
 
3688
3691
  .status-pending {
3689
- background: #faf089;
3690
- color: #744210;
3692
+ background: #f3f4f6;
3693
+ color: #4b5563;
3691
3694
  }
3692
3695
 
3693
3696
  .agent-event-details {
@@ -3942,8 +3945,8 @@ button:disabled:hover {
3942
3945
  }
3943
3946
 
3944
3947
  .status-count.pending {
3945
- background: #faf089;
3946
- color: #744210;
3948
+ background: #f3f4f6;
3949
+ color: #4b5563;
3947
3950
  }
3948
3951
 
3949
3952
  .todo-list {
@@ -3973,8 +3976,8 @@ button:disabled:hover {
3973
3976
  }
3974
3977
 
3975
3978
  .todo-item.pending {
3976
- border-left-color: #d69e2e;
3977
- background: #fffbeb;
3979
+ border-left-color: #9ca3af;
3980
+ background: #f9fafb;
3978
3981
  }
3979
3982
 
3980
3983
  .todo-icon {