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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/templates/ops.json +15 -6
- claude_mpm/cli/commands/mpm_init.py +154 -7
- claude_mpm/cli/commands/mpm_init_handler.py +1 -0
- claude_mpm/cli/parsers/mpm_init_parser.py +13 -0
- claude_mpm/commands/__init__.py +14 -0
- claude_mpm/commands/mpm-agents.md +12 -0
- claude_mpm/commands/mpm-config.md +18 -0
- claude_mpm/commands/mpm-doctor.md +24 -0
- claude_mpm/commands/mpm-help.md +10 -0
- claude_mpm/commands/mpm-init.md +162 -0
- claude_mpm/commands/mpm-status.md +13 -0
- claude_mpm/commands/mpm-tickets.md +102 -0
- claude_mpm/commands/mpm.md +19 -0
- claude_mpm/dashboard/__init__.py +12 -0
- claude_mpm/dashboard/static/css/activity.css +165 -0
- claude_mpm/dashboard/static/css/dashboard.css +18 -15
- claude_mpm/dashboard/static/js/components/activity-tree.js +603 -475
- claude_mpm/experimental/__init__.py +10 -0
- claude_mpm/hooks/claude_hooks/installer.py +13 -3
- claude_mpm/schemas/__init__.py +12 -0
- claude_mpm/scripts/socketio_daemon_wrapper.py +78 -0
- claude_mpm/services/cli/socketio_manager.py +21 -13
- claude_mpm/services/command_deployment_service.py +8 -2
- claude_mpm/tools/__init__.py +10 -0
- {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/METADATA +8 -2
- {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/RECORD +31 -17
- {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.1.14.dist-info → claude_mpm-4.1.17.dist-info}/licenses/LICENSE +0 -0
- {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: #
|
|
665
|
-
color: #
|
|
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: #
|
|
2783
|
-
color: #
|
|
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: #
|
|
2842
|
-
color: #
|
|
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: #
|
|
2913
|
-
color: #
|
|
2914
|
-
border: 1px solid #
|
|
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: #
|
|
3690
|
-
color: #
|
|
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: #
|
|
3946
|
-
color: #
|
|
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: #
|
|
3977
|
-
background: #
|
|
3979
|
+
border-left-color: #9ca3af;
|
|
3980
|
+
background: #f9fafb;
|
|
3978
3981
|
}
|
|
3979
3982
|
|
|
3980
3983
|
.todo-icon {
|