claude-mpm 4.1.15__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 CHANGED
@@ -1 +1 @@
1
- 4.1.15
1
+ 4.1.17
@@ -3,6 +3,9 @@ MPM-Init Command - Initialize projects for optimal Claude Code and Claude MPM su
3
3
 
4
4
  This command delegates to the Agentic Coder Optimizer agent to establish clear,
5
5
  single-path project standards for documentation, tooling, and workflows.
6
+
7
+ Enhanced with AST inspection capabilities for generating comprehensive developer
8
+ documentation with code structure analysis.
6
9
  """
7
10
 
8
11
  import logging
@@ -35,6 +38,7 @@ class MPMInitCommand:
35
38
  force: bool = False,
36
39
  verbose: bool = False,
37
40
  use_venv: bool = False,
41
+ ast_analysis: bool = True,
38
42
  ) -> Dict:
39
43
  """
40
44
  Initialize project with Agentic Coder Optimizer standards.
@@ -44,6 +48,8 @@ class MPMInitCommand:
44
48
  framework: Specific framework if applicable
45
49
  force: Force initialization even if project already configured
46
50
  verbose: Show detailed output
51
+ use_venv: Force use of venv instead of mamba
52
+ ast_analysis: Enable AST analysis for enhanced documentation
47
53
 
48
54
  Returns:
49
55
  Dict containing initialization results
@@ -59,7 +65,9 @@ class MPMInitCommand:
59
65
  return {"status": "cancelled", "message": "Initialization cancelled"}
60
66
 
61
67
  # Build the delegation prompt
62
- prompt = self._build_initialization_prompt(project_type, framework)
68
+ prompt = self._build_initialization_prompt(
69
+ project_type, framework, ast_analysis
70
+ )
63
71
 
64
72
  # Show initialization plan
65
73
  console.print(
@@ -71,8 +79,15 @@ class MPMInitCommand:
71
79
  "• Optimized project structure\n"
72
80
  "• Tool configurations (linting, formatting, testing)\n"
73
81
  "• GitHub workflows and CI/CD setup\n"
74
- "• Memory system initialization\n\n"
75
- "[dim]Powered by Agentic Coder Optimizer Agent[/dim]",
82
+ "• Memory system initialization\n"
83
+ + (
84
+ "• AST analysis for comprehensive code documentation\n"
85
+ if ast_analysis
86
+ else ""
87
+ )
88
+ + "• Holistic CLAUDE.md organization with ranked instructions\n"
89
+ + "• Priority-based content structure (🔴🟡🟢⚪)\n"
90
+ + "\n[dim]Powered by Agentic Coder Optimizer Agent[/dim]",
76
91
  title="MPM-Init",
77
92
  border_style="cyan",
78
93
  )
@@ -111,7 +126,10 @@ class MPMInitCommand:
111
126
  return Path("claude-mpm")
112
127
 
113
128
  def _build_initialization_prompt(
114
- self, project_type: Optional[str] = None, framework: Optional[str] = None
129
+ self,
130
+ project_type: Optional[str] = None,
131
+ framework: Optional[str] = None,
132
+ ast_analysis: bool = True,
115
133
  ) -> str:
116
134
  """Build the initialization prompt for the agent."""
117
135
  base_prompt = f"""Please delegate this task to the Agentic Coder Optimizer agent:
@@ -173,9 +191,122 @@ Please perform the following initialization tasks:
173
191
  - Step-by-step setup instructions
174
192
  - Common commands reference
175
193
  - Troubleshooting guide
194
+ """
195
+
196
+ if ast_analysis:
197
+ base_prompt += """
198
+ 9. **Perform AST Analysis** (using Code Analyzer agent if needed):
199
+ - Parse code files to extract structure (classes, functions, methods)
200
+ - Generate comprehensive API documentation
201
+ - Create code architecture diagrams
202
+ - Document function signatures and dependencies
203
+ - Extract docstrings and inline comments
204
+ - Map code relationships and inheritance hierarchies
205
+ - Generate developer documentation with:
206
+ * Module overview and purpose
207
+ * Class hierarchies and relationships
208
+ * Function/method documentation
209
+ * Type annotations and parameter descriptions
210
+ * Code complexity metrics
211
+ * Dependency graphs
212
+ - Create DEVELOPER.md with technical architecture details
213
+ - Add CODE_STRUCTURE.md with AST-derived insights
214
+ """
215
+
216
+ base_prompt += """
217
+
218
+ 10. **Holistic CLAUDE.md Organization** (CRITICAL - Do this LAST):
219
+ After completing all initialization tasks, take a holistic look at the CLAUDE.md file and:
220
+
221
+ a) **Reorganize Content by Priority**:
222
+ - CRITICAL instructions (security, data handling, core business rules) at the TOP
223
+ - Project overview and purpose
224
+ - Key architectural decisions and constraints
225
+ - Development guidelines and standards
226
+ - Common tasks and workflows
227
+ - Links to additional documentation
228
+ - Nice-to-have or optional information at the BOTTOM
229
+
230
+ b) **Rank Instructions by Importance**:
231
+ - Use clear markers:
232
+ * 🔴 CRITICAL: Security, data handling, breaking changes, core business rules
233
+ * 🟡 IMPORTANT: Key workflows, architecture decisions, performance requirements
234
+ * 🟢 STANDARD: Common operations, coding standards, best practices
235
+ * ⚪ OPTIONAL: Nice-to-have features, experimental code, future considerations
236
+ - Group related instructions together
237
+ - Ensure no contradictory instructions exist
238
+ - Remove redundant or outdated information
239
+ - Add a "Priority Index" at the top listing all CRITICAL and IMPORTANT items
240
+
241
+ c) **Optimize for AI Agent Understanding**:
242
+ - Use consistent formatting and structure
243
+ - Provide clear examples for complex instructions
244
+ - Include "WHY" explanations for critical rules
245
+ - Add quick reference sections for common operations
246
+ - Ensure instructions are actionable and unambiguous
247
+
248
+ d) **Validate Completeness**:
249
+ - Ensure ALL critical project knowledge is captured
250
+ - Verify single-path principle (ONE way to do each task)
251
+ - Check that all referenced documentation exists
252
+ - Confirm all tools and dependencies are documented
253
+ - Test that a new AI agent could understand the project from CLAUDE.md alone
254
+
255
+ e) **Add Meta-Instructions Section**:
256
+ - Include a section about how to maintain CLAUDE.md
257
+ - Document when and how to update instructions
258
+ - Provide guidelines for instruction priority levels
259
+ - Add a changelog or last-updated timestamp
260
+
261
+ f) **Follow This CLAUDE.md Template Structure**:
262
+ ```markdown
263
+ # Project Name - CLAUDE.md
264
+
265
+ ## 🎯 Priority Index
266
+ ### 🔴 CRITICAL Instructions
267
+ - [List all critical items with links to their sections]
268
+
269
+ ### 🟡 IMPORTANT Instructions
270
+ - [List all important items with links to their sections]
271
+
272
+ ## 📋 Project Overview
273
+ [Brief description and purpose]
274
+
275
+ ## 🔴 CRITICAL: Security & Data Handling
276
+ [Critical security rules and data handling requirements]
277
+
278
+ ## 🔴 CRITICAL: Core Business Rules
279
+ [Non-negotiable business logic and constraints]
280
+
281
+ ## 🟡 IMPORTANT: Architecture & Design
282
+ [Key architectural decisions and patterns]
283
+
284
+ ## 🟡 IMPORTANT: Development Workflow
285
+ ### ONE Way to Build
286
+ ### ONE Way to Test
287
+ ### ONE Way to Deploy
288
+
289
+ ## 🟢 STANDARD: Coding Guidelines
290
+ [Standard practices and conventions]
291
+
292
+ ## 🟢 STANDARD: Common Tasks
293
+ [How to perform routine operations]
294
+
295
+ ## 📚 Documentation Links
296
+ [Links to additional resources]
297
+
298
+ ## ⚪ OPTIONAL: Future Enhancements
299
+ [Nice-to-have features and ideas]
300
+
301
+ ## 📝 Meta: Maintaining This Document
302
+ - Last Updated: [timestamp]
303
+ - Update Frequency: [when to update]
304
+ - Priority Guidelines: [how to assign priorities]
305
+ ```
176
306
 
177
307
  Please ensure all documentation is clear, concise, and optimized for AI agents to understand and follow.
178
308
  Focus on establishing ONE clear way to do ANYTHING in the project.
309
+ The final CLAUDE.md should be a comprehensive, well-organized guide that any AI agent can follow to work effectively on this project.
179
310
  """
180
311
 
181
312
  return base_prompt
@@ -369,7 +500,11 @@ Focus on establishing ONE clear way to do ANYTHING in the project.
369
500
  "[green]Your project is now optimized for Claude Code and Claude MPM![/green]\n\n"
370
501
  "Key files:\n"
371
502
  "• [cyan]CLAUDE.md[/cyan] - Main documentation for AI agents\n"
372
- "• [cyan].claude-mpm/[/cyan] - Configuration and memories\n\n"
503
+ " - Organized with priority rankings (🔴🟡🟢⚪)\n"
504
+ " - Instructions ranked by importance for AI understanding\n"
505
+ " - Holistic documentation review completed\n"
506
+ "• [cyan].claude-mpm/[/cyan] - Configuration and memories\n"
507
+ "• [cyan]CODE_STRUCTURE.md[/cyan] - AST-derived architecture documentation (if enabled)\n\n"
373
508
  "[dim]Run 'claude-mpm run' to start using the optimized setup[/dim]",
374
509
  title="Success",
375
510
  border_style="green",
@@ -398,13 +533,18 @@ Focus on establishing ONE clear way to do ANYTHING in the project.
398
533
  @click.option(
399
534
  "--verbose", is_flag=True, help="Show detailed output during initialization"
400
535
  )
536
+ @click.option(
537
+ "--ast-analysis/--no-ast-analysis",
538
+ default=True,
539
+ help="Enable/disable AST analysis for enhanced documentation (default: enabled)",
540
+ )
401
541
  @click.argument(
402
542
  "project_path",
403
543
  type=click.Path(exists=True, file_okay=False, dir_okay=True),
404
544
  required=False,
405
545
  default=".",
406
546
  )
407
- def mpm_init(project_type, framework, force, verbose, project_path):
547
+ def mpm_init(project_type, framework, force, verbose, ast_analysis, project_path):
408
548
  """
409
549
  Initialize a project for optimal use with Claude Code and Claude MPM.
410
550
 
@@ -414,11 +554,14 @@ def mpm_init(project_type, framework, force, verbose, project_path):
414
554
  - Configure development tools and standards
415
555
  - Set up memory systems for project knowledge
416
556
  - Optimize for AI agent understanding
557
+ - Perform AST analysis for enhanced developer documentation
417
558
 
418
559
  Examples:
419
560
  claude-mpm mpm-init
420
561
  claude-mpm mpm-init --project-type web --framework react
421
562
  claude-mpm mpm-init /path/to/project --force
563
+ claude-mpm mpm-init --ast-analysis # Enable AST analysis (default)
564
+ claude-mpm mpm-init --no-ast-analysis # Disable AST analysis
422
565
  """
423
566
  try:
424
567
  # Create command instance
@@ -426,7 +569,11 @@ def mpm_init(project_type, framework, force, verbose, project_path):
426
569
 
427
570
  # Run initialization (now synchronous)
428
571
  result = command.initialize_project(
429
- project_type=project_type, framework=framework, force=force, verbose=verbose
572
+ project_type=project_type,
573
+ framework=framework,
574
+ force=force,
575
+ verbose=verbose,
576
+ ast_analysis=ast_analysis,
430
577
  )
431
578
 
432
579
  # Exit with appropriate code
@@ -56,6 +56,7 @@ def manage_mpm_init(args):
56
56
  "force": getattr(args, "force", False),
57
57
  "verbose": getattr(args, "verbose", False),
58
58
  "use_venv": getattr(args, "use_venv", False),
59
+ "ast_analysis": getattr(args, "ast_analysis", True),
59
60
  }
60
61
 
61
62
  # Execute initialization (now synchronous)
@@ -88,6 +88,19 @@ def add_mpm_init_subparser(subparsers: Any) -> None:
88
88
  action="store_true",
89
89
  help="Use traditional Python venv instead of mamba/conda environment",
90
90
  )
91
+ init_group.add_argument(
92
+ "--ast-analysis",
93
+ action="store_true",
94
+ default=True,
95
+ dest="ast_analysis",
96
+ help="Enable AST analysis for enhanced developer documentation (default: enabled)",
97
+ )
98
+ init_group.add_argument(
99
+ "--no-ast-analysis",
100
+ action="store_false",
101
+ dest="ast_analysis",
102
+ help="Disable AST analysis for documentation generation",
103
+ )
91
104
 
92
105
  # Template options
93
106
  template_group = mpm_init_parser.add_argument_group("template options")
@@ -0,0 +1,162 @@
1
+ # /mpm-init
2
+
3
+ Initialize your project for optimal use with Claude Code and Claude MPM using the Agentic Coder Optimizer agent.
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ /mpm-init
9
+ /mpm-init --project-type web --framework react
10
+ /mpm-init --force
11
+ /mpm-init --ast-analysis
12
+ /mpm-init --comprehensive
13
+ ```
14
+
15
+ ## Description
16
+
17
+ This command delegates to the Agentic Coder Optimizer agent to establish clear, single-path project standards for documentation, tooling, and workflows. It creates comprehensive documentation optimized for AI agents.
18
+
19
+ ## Features
20
+
21
+ - **📚 Comprehensive CLAUDE.md**: Creates AI-optimized project documentation
22
+ - **🎯 Priority-based Organization**: Ranks instructions by importance (🔴🟡🟢⚪)
23
+ - **🔍 AST Analysis**: Deep code structure analysis for enhanced documentation
24
+ - **🚀 Single-path Workflows**: Establishes ONE way to do ANYTHING
25
+ - **🧠 Memory System**: Initializes project knowledge retention
26
+ - **🔧 Tool Configuration**: Sets up linting, formatting, testing
27
+ - **📝 Holistic Review**: Final organization and validation pass
28
+
29
+ ## Options
30
+
31
+ - `--project-type [type]`: Specify project type (web, api, cli, library, etc.)
32
+ - `--framework [name]`: Specify framework (react, vue, django, fastapi, etc.)
33
+ - `--force`: Force reinitialization even if project is already configured
34
+ - `--ast-analysis`: Enable AST analysis for enhanced documentation (default: enabled)
35
+ - `--no-ast-analysis`: Disable AST analysis for faster initialization
36
+ - `--comprehensive`: Create comprehensive setup including CI/CD and deployment
37
+ - `--minimal`: Create minimal configuration (CLAUDE.md only)
38
+
39
+ ## What This Command Does
40
+
41
+ ### 1. Project Analysis
42
+ - Scans project structure and existing configurations
43
+ - Identifies project type, language, and frameworks
44
+ - Checks for existing documentation and tooling
45
+
46
+ ### 2. CLAUDE.md Creation/Update
47
+ The command creates a well-organized CLAUDE.md with:
48
+
49
+ ```markdown
50
+ ## 🎯 Priority Index
51
+ ### 🔴 CRITICAL Instructions
52
+ - Security rules, data handling, core business logic
53
+
54
+ ### 🟡 IMPORTANT Instructions
55
+ - Key workflows, architecture decisions
56
+
57
+ ### 🟢 STANDARD Instructions
58
+ - Common operations, coding standards
59
+
60
+ ### ⚪ OPTIONAL Instructions
61
+ - Nice-to-have features, future enhancements
62
+ ```
63
+
64
+ ### 3. Single-Path Standards
65
+ - ONE command for building: `make build`
66
+ - ONE command for testing: `make test`
67
+ - ONE command for deployment: `make deploy`
68
+ - Clear documentation of THE way to do things
69
+
70
+ ### 4. AST Analysis (Optional)
71
+ When enabled, performs:
72
+ - Code structure extraction (classes, functions, methods)
73
+ - API documentation generation
74
+ - Architecture diagram creation
75
+ - Function signature and dependency mapping
76
+ - Creates DEVELOPER.md with technical details
77
+ - Adds CODE_STRUCTURE.md with AST insights
78
+
79
+ ### 5. Tool Configuration
80
+ - Linting setup and configuration
81
+ - Code formatting standards
82
+ - Testing framework setup
83
+ - Pre-commit hooks if needed
84
+
85
+ ### 6. Memory System
86
+ - Creates `.claude-mpm/memories/` directory
87
+ - Initializes memory files for project knowledge
88
+ - Documents memory usage patterns
89
+
90
+ ### 7. Holistic Organization (Final Step)
91
+ After all tasks, performs a comprehensive review:
92
+ - Reorganizes content by priority
93
+ - Validates completeness
94
+ - Ensures single-path principle
95
+ - Adds meta-instructions for maintenance
96
+
97
+ ## Examples
98
+
99
+ ### Basic Initialization
100
+ ```bash
101
+ /mpm-init
102
+ ```
103
+ Analyzes current directory and creates optimal setup.
104
+
105
+ ### Web Project with React
106
+ ```bash
107
+ /mpm-init --project-type web --framework react
108
+ ```
109
+ Initializes with web-specific configurations and React patterns.
110
+
111
+ ### Force Reinitialization
112
+ ```bash
113
+ /mpm-init --force --comprehensive
114
+ ```
115
+ Overwrites existing configuration with comprehensive setup.
116
+
117
+ ### Fast Mode (No AST)
118
+ ```bash
119
+ /mpm-init --no-ast-analysis --minimal
120
+ ```
121
+ Quick initialization without code analysis.
122
+
123
+ ## Implementation
124
+
125
+ This command executes:
126
+ ```bash
127
+ claude-mpm mpm-init [options]
128
+ ```
129
+
130
+ The command delegates to the Agentic Coder Optimizer agent which:
131
+ 1. Analyzes your project structure
132
+ 2. Creates comprehensive documentation
133
+ 3. Establishes single-path workflows
134
+ 4. Configures development tools
135
+ 5. Sets up memory systems
136
+ 6. Performs AST analysis (if enabled)
137
+ 7. Organizes everything with priority rankings
138
+
139
+ ## Expected Output
140
+
141
+ After successful execution:
142
+ - ✅ **CLAUDE.md**: Main AI agent documentation with priority rankings
143
+ - ✅ **Single-path workflows**: Clear commands for all operations
144
+ - ✅ **Tool configurations**: Linting, formatting, testing setup
145
+ - ✅ **Memory system**: Initialized for knowledge retention
146
+ - ✅ **Developer docs**: Technical documentation (with AST analysis)
147
+ - ✅ **Priority organization**: Instructions ranked by importance
148
+
149
+ ## Notes
150
+
151
+ - The command uses the Agentic Coder Optimizer agent for implementation
152
+ - AST analysis is enabled by default for comprehensive documentation
153
+ - Priority rankings help AI agents focus on critical instructions first
154
+ - The holistic review ensures documentation quality and completeness
155
+ - All documentation is optimized for AI agent understanding
156
+
157
+ ## Related Commands
158
+
159
+ - `/mpm-status`: Check current project setup status
160
+ - `/mpm-agents`: Manage specialized agents
161
+ - `/mpm-config`: Configure Claude MPM settings
162
+ - `/mpm-doctor`: Diagnose and fix issues
@@ -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
  }