claude-mpm 4.2.40__py3-none-any.whl → 4.2.43__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 (36) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_ENGINEER.md +114 -1
  3. claude_mpm/agents/BASE_OPS.md +156 -1
  4. claude_mpm/agents/INSTRUCTIONS.md +120 -11
  5. claude_mpm/agents/WORKFLOW.md +160 -10
  6. claude_mpm/agents/templates/agentic-coder-optimizer.json +17 -12
  7. claude_mpm/agents/templates/react_engineer.json +217 -0
  8. claude_mpm/agents/templates/web_qa.json +40 -4
  9. claude_mpm/commands/mpm-browser-monitor.md +370 -0
  10. claude_mpm/commands/mpm-monitor.md +177 -0
  11. claude_mpm/dashboard/static/built/components/code-viewer.js +1076 -2
  12. claude_mpm/dashboard/static/built/components/ui-state-manager.js +465 -2
  13. claude_mpm/dashboard/static/css/dashboard.css +2 -0
  14. claude_mpm/dashboard/static/js/browser-console-monitor.js +495 -0
  15. claude_mpm/dashboard/static/js/components/browser-log-viewer.js +763 -0
  16. claude_mpm/dashboard/static/js/components/code-viewer.js +931 -340
  17. claude_mpm/dashboard/static/js/components/diff-viewer.js +891 -0
  18. claude_mpm/dashboard/static/js/components/file-change-tracker.js +443 -0
  19. claude_mpm/dashboard/static/js/components/file-change-viewer.js +690 -0
  20. claude_mpm/dashboard/static/js/components/ui-state-manager.js +156 -19
  21. claude_mpm/dashboard/static/js/dashboard.js +16 -0
  22. claude_mpm/dashboard/static/js/socket-client.js +2 -2
  23. claude_mpm/dashboard/static/test-browser-monitor.html +470 -0
  24. claude_mpm/dashboard/templates/index.html +64 -99
  25. claude_mpm/services/monitor/handlers/browser.py +451 -0
  26. claude_mpm/services/monitor/server.py +267 -4
  27. {claude_mpm-4.2.40.dist-info → claude_mpm-4.2.43.dist-info}/METADATA +1 -1
  28. {claude_mpm-4.2.40.dist-info → claude_mpm-4.2.43.dist-info}/RECORD +32 -26
  29. claude_mpm/agents/templates/agentic-coder-optimizer.md +0 -44
  30. claude_mpm/agents/templates/agentic_coder_optimizer.json +0 -238
  31. claude_mpm/agents/templates/test-non-mpm.json +0 -20
  32. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  33. {claude_mpm-4.2.40.dist-info → claude_mpm-4.2.43.dist-info}/WHEEL +0 -0
  34. {claude_mpm-4.2.40.dist-info → claude_mpm-4.2.43.dist-info}/entry_points.txt +0 -0
  35. {claude_mpm-4.2.40.dist-info → claude_mpm-4.2.43.dist-info}/licenses/LICENSE +0 -0
  36. {claude_mpm-4.2.40.dist-info → claude_mpm-4.2.43.dist-info}/top_level.txt +0 -0
@@ -28,6 +28,7 @@ from aiohttp import web
28
28
  from ...core.logging_config import get_logger
29
29
  from ...dashboard.api.simple_directory import list_directory
30
30
  from .event_emitter import get_event_emitter
31
+ from .handlers.browser import BrowserHandler
31
32
  from .handlers.code_analysis import CodeAnalysisHandler
32
33
  from .handlers.dashboard import DashboardHandler
33
34
  from .handlers.file import FileHandler
@@ -68,6 +69,7 @@ class UnifiedMonitorServer:
68
69
  self.site = None
69
70
 
70
71
  # Event handlers
72
+ self.browser_handler = None
71
73
  self.code_analysis_handler = None
72
74
  self.dashboard_handler = None
73
75
  self.file_handler = None
@@ -198,9 +200,13 @@ class UnifiedMonitorServer:
198
200
  async def _start_async_server(self):
199
201
  """Start the async server components."""
200
202
  try:
201
- # Create Socket.IO server
203
+ # Create Socket.IO server with proper ping configuration
202
204
  self.sio = socketio.AsyncServer(
203
- cors_allowed_origins="*", logger=False, engineio_logger=False
205
+ cors_allowed_origins="*",
206
+ logger=False,
207
+ engineio_logger=False,
208
+ ping_interval=30, # 30 seconds ping interval (matches client expectation)
209
+ ping_timeout=60, # 60 seconds ping timeout (generous for stability)
204
210
  )
205
211
 
206
212
  # Create aiohttp application
@@ -266,12 +272,14 @@ class UnifiedMonitorServer:
266
272
  """Setup Socket.IO event handlers."""
267
273
  try:
268
274
  # Create event handlers
275
+ self.browser_handler = BrowserHandler(self.sio)
269
276
  self.code_analysis_handler = CodeAnalysisHandler(self.sio)
270
277
  self.dashboard_handler = DashboardHandler(self.sio)
271
278
  self.file_handler = FileHandler(self.sio)
272
279
  self.hook_handler = HookHandler(self.sio)
273
280
 
274
281
  # Register handlers
282
+ self.browser_handler.register()
275
283
  self.code_analysis_handler.register()
276
284
  self.dashboard_handler.register()
277
285
  self.file_handler.register()
@@ -497,19 +505,273 @@ class UnifiedMonitorServer:
497
505
 
498
506
  return web.json_response(config)
499
507
 
508
+ # Working directory endpoint
509
+ async def working_directory_handler(request):
510
+ """Return the current working directory."""
511
+ return web.json_response(
512
+ {"working_directory": os.getcwd(), "success": True}
513
+ )
514
+
515
+ # Browser monitor script endpoint
516
+ async def browser_monitor_script_handler(request):
517
+ """Serve the browser console monitoring script with dynamic port injection."""
518
+ try:
519
+ # Read the browser monitor script template
520
+ script_path = (
521
+ dashboard_dir / "static" / "js" / "browser-console-monitor.js"
522
+ )
523
+
524
+ if not script_path.exists():
525
+ return web.Response(
526
+ text="Browser monitor script not found",
527
+ status=404,
528
+ content_type="text/javascript",
529
+ )
530
+
531
+ # Read script content
532
+ with open(script_path, encoding="utf-8") as f:
533
+ script_content = f.read()
534
+
535
+ # Replace the port placeholder with actual monitor port
536
+ script_content = script_content.replace(
537
+ "__MONITOR_PORT__", str(self.port)
538
+ )
539
+
540
+ # Set appropriate headers for JavaScript
541
+ headers = {
542
+ "Content-Type": "application/javascript; charset=utf-8",
543
+ "Access-Control-Allow-Origin": "*",
544
+ "Access-Control-Allow-Methods": "GET, OPTIONS",
545
+ "Access-Control-Allow-Headers": "Content-Type",
546
+ "Cache-Control": "no-cache, no-store, must-revalidate",
547
+ "Pragma": "no-cache",
548
+ "Expires": "0",
549
+ }
550
+
551
+ return web.Response(text=script_content, headers=headers)
552
+
553
+ except Exception as e:
554
+ self.logger.error(f"Error serving browser monitor script: {e}")
555
+ return web.Response(
556
+ text=f"// Error loading browser monitor script: {e}",
557
+ status=500,
558
+ content_type="application/javascript",
559
+ )
560
+
561
+ # Browser log endpoints
562
+ async def api_browser_logs_handler(request):
563
+ """Return list of browser log files."""
564
+ try:
565
+ from pathlib import Path
566
+
567
+ # Get browser log directory
568
+ log_dir = Path.home() / ".claude-mpm" / "logs" / "client"
569
+
570
+ if not log_dir.exists():
571
+ return web.json_response({"files": [], "total": 0})
572
+
573
+ # Get all log files
574
+ log_files = []
575
+ for file_path in log_dir.glob("*.log"):
576
+ stat = file_path.stat()
577
+ log_files.append(
578
+ {
579
+ "name": file_path.name,
580
+ "size": stat.st_size,
581
+ "modified": stat.st_mtime,
582
+ "modified_iso": datetime.fromtimestamp(
583
+ stat.st_mtime
584
+ ).isoformat(),
585
+ }
586
+ )
587
+
588
+ # Sort by modification time (newest first)
589
+ log_files.sort(key=lambda x: x["modified"], reverse=True)
590
+
591
+ return web.json_response(
592
+ {
593
+ "files": log_files,
594
+ "total": len(log_files),
595
+ "directory": str(log_dir),
596
+ }
597
+ )
598
+
599
+ except Exception as e:
600
+ self.logger.error(f"Error listing browser logs: {e}")
601
+ return web.json_response(
602
+ {"error": str(e), "files": [], "total": 0}, status=500
603
+ )
604
+
605
+ async def api_browser_log_file_handler(request):
606
+ """Return contents of specific browser log file."""
607
+ try:
608
+ import json
609
+ from pathlib import Path
610
+
611
+ filename = request.match_info.get("filename", "")
612
+
613
+ # Security: ensure filename is safe (no path traversal)
614
+ if (
615
+ not filename
616
+ or "/" in filename
617
+ or "\\" in filename
618
+ or ".." in filename
619
+ ):
620
+ return web.json_response(
621
+ {"error": "Invalid filename"}, status=400
622
+ )
623
+
624
+ # Get log file path
625
+ log_dir = Path.home() / ".claude-mpm" / "logs" / "client"
626
+ log_file = log_dir / filename
627
+
628
+ # Check if file exists and is within log directory
629
+ if not log_file.exists() or not log_file.is_file():
630
+ return web.json_response(
631
+ {"error": "Log file not found"}, status=404
632
+ )
633
+
634
+ # Ensure file is within the log directory (security check)
635
+ try:
636
+ log_file.resolve().relative_to(log_dir.resolve())
637
+ except ValueError:
638
+ return web.json_response(
639
+ {"error": "Invalid file path"}, status=403
640
+ )
641
+
642
+ # Read log entries
643
+ entries = []
644
+ with open(log_file, encoding="utf-8") as f:
645
+ for line in f:
646
+ line = line.strip()
647
+ if line:
648
+ try:
649
+ entry = json.loads(line)
650
+ entries.append(entry)
651
+ except json.JSONDecodeError:
652
+ # If not JSON, treat as plain text log
653
+ entries.append(
654
+ {
655
+ "timestamp": "",
656
+ "level": "INFO",
657
+ "message": line,
658
+ }
659
+ )
660
+
661
+ # Limit entries for performance
662
+ max_entries = 1000
663
+ if len(entries) > max_entries:
664
+ entries = entries[-max_entries:] # Get last N entries
665
+
666
+ return web.json_response(
667
+ {
668
+ "filename": filename,
669
+ "entries": entries,
670
+ "total": len(entries),
671
+ "truncated": len(entries) == max_entries,
672
+ }
673
+ )
674
+
675
+ except Exception as e:
676
+ self.logger.error(f"Error reading browser log file: {e}")
677
+ return web.json_response(
678
+ {"error": str(e), "entries": []}, status=500
679
+ )
680
+
681
+ async def api_browser_log_handler(request):
682
+ """Handle browser log submissions from injected monitoring script."""
683
+ try:
684
+ import json
685
+ from pathlib import Path
686
+
687
+ data = await request.json()
688
+
689
+ # Extract log data
690
+ browser_id = data.get("browser_id", "unknown")
691
+ timestamp = data.get("timestamp", datetime.utcnow().isoformat())
692
+ level = data.get("level", "INFO")
693
+ message = data.get("message", "")
694
+ url = data.get("url", "")
695
+ user_agent = data.get("userAgent", "")
696
+
697
+ # Create log entry
698
+ log_entry = {
699
+ "browser_id": browser_id,
700
+ "timestamp": timestamp,
701
+ "level": level,
702
+ "message": message,
703
+ "url": url,
704
+ "user_agent": user_agent,
705
+ }
706
+
707
+ # Save to file
708
+ log_dir = Path.home() / ".claude-mpm" / "logs" / "client"
709
+ log_dir.mkdir(parents=True, exist_ok=True)
710
+
711
+ # Use browser ID in filename for easy filtering
712
+ log_file = log_dir / f"{browser_id}.log"
713
+
714
+ # Append to log file
715
+ with open(log_file, "a", encoding="utf-8") as f:
716
+ f.write(json.dumps(log_entry) + "\n")
717
+
718
+ # Also emit to Socket.IO for real-time viewing
719
+ if self.sio:
720
+ await self.sio.emit("browser_log", log_entry)
721
+
722
+ return web.Response(status=204) # No content
723
+
724
+ except Exception as e:
725
+ self.logger.error(f"Error handling browser log: {e}")
726
+ return web.Response(text=str(e), status=500)
727
+
500
728
  # Register routes
501
729
  self.app.router.add_get("/", dashboard_index)
502
730
  self.app.router.add_get("/health", health_check)
503
731
  self.app.router.add_get("/version.json", version_handler)
504
732
  self.app.router.add_get("/api/config", config_handler)
733
+ self.app.router.add_get("/api/working-directory", working_directory_handler)
505
734
  self.app.router.add_get("/api/directory", list_directory)
735
+ self.app.router.add_get(
736
+ "/api/browser-monitor.js", browser_monitor_script_handler
737
+ )
738
+ self.app.router.add_get("/api/browser-logs", api_browser_logs_handler)
739
+ self.app.router.add_get(
740
+ "/api/browser-logs/{filename}", api_browser_log_file_handler
741
+ )
742
+ self.app.router.add_post("/api/browser-log", api_browser_log_handler)
506
743
  self.app.router.add_post("/api/events", api_events_handler)
507
744
  self.app.router.add_post("/api/file", api_file_handler)
508
745
 
509
- # Static files
746
+ # Static files with cache busting headers for development
510
747
  static_dir = dashboard_dir / "static"
511
748
  if static_dir.exists():
512
- self.app.router.add_static("/static/", static_dir)
749
+
750
+ async def static_handler(request):
751
+ """Serve static files with cache-control headers for development."""
752
+
753
+ from aiohttp.web_fileresponse import FileResponse
754
+
755
+ # Get the relative path from the request
756
+ rel_path = request.match_info["filepath"]
757
+ file_path = static_dir / rel_path
758
+
759
+ if not file_path.exists() or not file_path.is_file():
760
+ raise web.HTTPNotFound()
761
+
762
+ # Create file response
763
+ response = FileResponse(file_path)
764
+
765
+ # Add cache-busting headers for development
766
+ response.headers["Cache-Control"] = (
767
+ "no-cache, no-store, must-revalidate"
768
+ )
769
+ response.headers["Pragma"] = "no-cache"
770
+ response.headers["Expires"] = "0"
771
+
772
+ return response
773
+
774
+ self.app.router.add_get("/static/{filepath:.*}", static_handler)
513
775
 
514
776
  # Templates
515
777
  templates_dir = dashboard_dir / "templates"
@@ -699,6 +961,7 @@ class UnifiedMonitorServer:
699
961
  "host": self.host,
700
962
  "port": self.port,
701
963
  "handlers": {
964
+ "browser": self.browser_handler is not None,
702
965
  "code_analysis": self.code_analysis_handler is not None,
703
966
  "dashboard": self.dashboard_handler is not None,
704
967
  "file": self.file_handler is not None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.2.40
3
+ Version: 4.2.43
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=Ytc6ZB74poWqcejFEJHapI9Tv44jcmBlZEH-GuEoUwY,7
2
+ claude_mpm/VERSION,sha256=eiG-JpFA6vffCGII8wqgsEUGMl4nl01Pa84abWszlFU,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
@@ -7,15 +7,15 @@ claude_mpm/init.py,sha256=mcBonXUyP9pxEFFYfFcQ4OFLWiICT1XnonM_EdjIhoI,15133
7
7
  claude_mpm/ticket_wrapper.py,sha256=qe5xY579t7_7fK5nyeAfHN_fr7CXdeOD3jfXEc8-7yo,828
8
8
  claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=aK9qxS1FRpm_8VaB5GI2I6YA9Wr8dGHuea_txMFe44M,5524
9
9
  claude_mpm/agents/BASE_DOCUMENTATION.md,sha256=iGub94w3IRURz2PwT0YrfNegMlEzgZ9mzeWa_WBk1rA,1504
10
- claude_mpm/agents/BASE_ENGINEER.md,sha256=K-TIGjApOIFJQBKqfBCbYpE_gYmN6LwW-6QXL9X3NkA,1986
11
- claude_mpm/agents/BASE_OPS.md,sha256=lTeFnJ0_IdOHoo1yItmDXrAD7k2ptjYB2xqB1l6HiZg,1594
10
+ claude_mpm/agents/BASE_ENGINEER.md,sha256=lXkA6KoCopsRTWS1LOx2s5m6S0hT5UT0s3l5owBo0Hc,7491
11
+ claude_mpm/agents/BASE_OPS.md,sha256=vKtjqJm_mwTVBv07qnAKf56dC06AQLbJEd9f6Wa4ekA,6468
12
12
  claude_mpm/agents/BASE_PM.md,sha256=4vrUcddIIiZIr6sr0O4KSV8bDyvTRdZTxcJo62q9TEM,13724
13
13
  claude_mpm/agents/BASE_QA.md,sha256=tR4RH63IwxidDXlSnSIRRaoGtmVpJp-0_GkQkmFUbjM,1590
14
14
  claude_mpm/agents/BASE_RESEARCH.md,sha256=2DZhDd5XxWWtsyNTBIwvtNWBu1JpFy5R5SAZDHh0otU,1690
15
- claude_mpm/agents/INSTRUCTIONS.md,sha256=VjXX1b4GObTleu3-P5PwxcaglTgFSaSUTD6nCDA9o0Q,13996
15
+ claude_mpm/agents/INSTRUCTIONS.md,sha256=tq0m84TJBldR_jePPMOR5auv7pv0WzNIaaf7GYhVvHo,19703
16
16
  claude_mpm/agents/MEMORY.md,sha256=KbRwY_RYdOvTvFC2DD-ATfwjHkQWJ5PIjlGws_7RmjI,3307
17
17
  claude_mpm/agents/OUTPUT_STYLE.md,sha256=2UzQvboIn5Zt18Rotorua8tQsGrvIJp1bcjCYvA2QcY,1875
18
- claude_mpm/agents/WORKFLOW.md,sha256=zjgBsWZbL5Yg_cVUMxBZjnBQqheGl-etYWdahxxpe0Y,8899
18
+ claude_mpm/agents/WORKFLOW.md,sha256=sYenQFFnSZ3IGF0N5bH9-5Dv06icmMBFQxoX74v38kY,15217
19
19
  claude_mpm/agents/__init__.py,sha256=jRFxvV_DIZ-NdENa-703Xu3YpwvlQj6yv-mQ6FgmldM,3220
20
20
  claude_mpm/agents/agent-template.yaml,sha256=mRlz5Yd0SmknTeoJWgFkZXzEF5T7OmGBJGs2-KPT93k,1969
21
21
  claude_mpm/agents/agent_loader.py,sha256=sEoM3076qTOx9Rtk_HugK6X7T-dIVF8brHFpDbiXnzU,31817
@@ -29,9 +29,7 @@ claude_mpm/agents/system_agent_config.py,sha256=HBDrtRld1ruPqrThA0j4vtMr4cBt0fT7
29
29
  claude_mpm/agents/templates/__init__.py,sha256=kghxAWs3KvcAA9Esk3NI7caumYgW6fiW8vRO1-MEndU,2735
30
30
  claude_mpm/agents/templates/agent-manager.json,sha256=vj2-wdvtTpCrN9qpj_xTwcPxbJBARPc00ojFNSXd0PU,15482
31
31
  claude_mpm/agents/templates/agent-manager.md,sha256=rWQ7MREoMdQtJhMujEPVYud6N-fGvicMuBvYIdRo22w,19418
32
- claude_mpm/agents/templates/agentic-coder-optimizer.json,sha256=G_6W96cFYrVA0oH1mUq7L6TABFZsyjEl2N7SjYnROWg,15218
33
- claude_mpm/agents/templates/agentic-coder-optimizer.md,sha256=tlQngiRr9yX6J41t8BqoEYRZwrnB92ZzcG4k8I4cH9k,1071
34
- claude_mpm/agents/templates/agentic_coder_optimizer.json,sha256=JBgPNDczgefU9iqoih12o8A52_-SLJembH2gn46OkrY,15403
32
+ claude_mpm/agents/templates/agentic-coder-optimizer.json,sha256=JBgPNDczgefU9iqoih12o8A52_-SLJembH2gn46OkrY,15403
35
33
  claude_mpm/agents/templates/api_qa.json,sha256=5kPwahK5QlbDV-dxWTmso2EkWTCw9e332gEGaTvDzP8,5786
36
34
  claude_mpm/agents/templates/code_analyzer.json,sha256=ZxjJxtioSwfv8ELme4eUqazoJTsORVOLad_0_bQqZb8,7411
37
35
  claude_mpm/agents/templates/data_engineer.json,sha256=LjUVQe8VgoX5898Ustugy1zsb03U_lb51dyiRRUK3F8,5629
@@ -43,14 +41,14 @@ claude_mpm/agents/templates/memory_manager.json,sha256=b6bTMLFShY4-884pgjc6wsfLI
43
41
  claude_mpm/agents/templates/ops.json,sha256=zp1uBfxdp7Atja0oLcNr8TAv-CQuK4mAnbfnLQMFIF4,10904
44
42
  claude_mpm/agents/templates/project_organizer.json,sha256=p-4-7bLQk2RBAKglxWDcFR-U23uB7aTDcTep8WOOjGo,5632
45
43
  claude_mpm/agents/templates/qa.json,sha256=pHdf-N4k2FJLczuQcBONV1lo8hUXut9tpknyDal3C4A,9590
44
+ claude_mpm/agents/templates/react_engineer.json,sha256=8sFzkVNN-Rf6X8Dbg3FcsbYJ2oJs9HCBPn-C-dzzacY,10641
46
45
  claude_mpm/agents/templates/refactoring_engineer.json,sha256=PjaJx7AP-pRqZhZmbkHpZmD-ApeHy934cvq6SeJMk5A,11877
47
46
  claude_mpm/agents/templates/research.json,sha256=f-IsmrKFbSJmpaGUOuqJBc0CbWi9Zz29e2cwFlYyWA0,10679
48
47
  claude_mpm/agents/templates/security.json,sha256=KneO6U4jMGX8Oh-ViQVtnNOOvsUgmrkqZhiyrh9p7HE,14833
49
- claude_mpm/agents/templates/test-non-mpm.json,sha256=WZTZADYSGSfxTm7gyByeaHPC4CaclbORkSmiBmDKcXs,592
50
48
  claude_mpm/agents/templates/ticketing.json,sha256=MaLL7xBpZoqghVJ-cQNQOKHoGTkdiaJgE8ysZJqTiwM,11514
51
49
  claude_mpm/agents/templates/vercel_ops_agent.json,sha256=cOUo-QOx7MCEZpn3v50GTZk4EVLgu56NGP2di7Pm_-w,10077
52
50
  claude_mpm/agents/templates/version_control.json,sha256=fv4pCG-6DeFjB5cFnlC9otVmHUCl-9cJ9vgkQE0MOcw,14430
53
- claude_mpm/agents/templates/web_qa.json,sha256=2AM11a7dRK6E5FEzoC0J1ndl86l6Wbo0mcLlr-KVOd4,10350
51
+ claude_mpm/agents/templates/web_qa.json,sha256=oMMyZTpg8J4ylmWqqUajjV2ogz92e3nbnniK_1KVqhk,15326
54
52
  claude_mpm/agents/templates/web_ui.json,sha256=tqdNRMP8EgBL-yNSQ06WxMTyAziSbWVVqjqm6rLzmdw,34852
55
53
  claude_mpm/agents/templates/.claude-mpm/memories/README.md,sha256=vEiG7cPjHRZfwX2IQB-i30ArO8zJyuxMJzHh8hnVZ6A,483
56
54
  claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md,sha256=KMZSJrQi-wHOwfl2C0m3A4PpC4QuBtDolAtVybGahKc,77
@@ -120,10 +118,12 @@ claude_mpm/cli_module/commands.py,sha256=zZmjP4J19i9PNMA7gCI5Dl--R1u_H4sCt5ZtOad
120
118
  claude_mpm/cli_module/migration_example.py,sha256=DtQ59RyoBD6r8FIfrjKXCQ8-xnUiOqP5McBiS6_W1Qc,5183
121
119
  claude_mpm/commands/__init__.py,sha256=paX5Ub5-UmRgiQ8UgKWIKwU2-RjLu67OmNJND-fVtjg,588
122
120
  claude_mpm/commands/mpm-agents.md,sha256=JnYPJ-eWvIEEtiCB6iPu182P2xDBRvU3ArVXQ7h32kU,1341
121
+ claude_mpm/commands/mpm-browser-monitor.md,sha256=NPm-nqeK_xhC6eL-Oaqqud-2EcreVS4LLT4h9lxc0Vg,13219
123
122
  claude_mpm/commands/mpm-config.md,sha256=F-9kKUC30gT6QXvOr5OTpYOq6L97iA2-SXVGxXjyF8M,547
124
123
  claude_mpm/commands/mpm-doctor.md,sha256=ut5LhFKVRw-2ecjMSPsnaTiRuFXa6Q9t-Wgl3CCnQvk,590
125
124
  claude_mpm/commands/mpm-help.md,sha256=gUMhJ1aTWyNeNMLZJeDJMN2sPuL-ugUFalmrNDEP5bI,282
126
125
  claude_mpm/commands/mpm-init.md,sha256=G-SIbbU9X4bzumsCwL3kMG6Nn2MgSwV7ualtDm64tUw,5180
126
+ claude_mpm/commands/mpm-monitor.md,sha256=TUmlQFatPwt4js2kbpHTuaISIBYO7elP9fsWEaMntjE,6164
127
127
  claude_mpm/commands/mpm-status.md,sha256=zY9toecba_UZTEY3JEKV1EvENQ-FPPvZk4dZwLyZ3LM,351
128
128
  claude_mpm/commands/mpm-tickets.md,sha256=a2_mW56QDhw7-jMU92ycGaxvSSYpNoQFGhkWbr3MJ88,2356
129
129
  claude_mpm/commands/mpm.md,sha256=tv_Mr6p2olRKIltKui4ljfCNG69VokkyIg951CeMBas,559
@@ -187,6 +187,7 @@ claude_mpm/dashboard/open_dashboard.py,sha256=i4OHdjeQLtZX4UnLVMiFlq6iSENvlCcdcm
187
187
  claude_mpm/dashboard/test_dashboard.html,sha256=Aakmm9O-pWld_CCXLuUBOJC81Ix9D1avytTN93u0zfc,15090
188
188
  claude_mpm/dashboard/.claude-mpm/socketio-instances.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
189
189
  claude_mpm/dashboard/api/simple_directory.py,sha256=ZeYVPaACsCGfjNLGlo3nHGVQSsg3l-89xLRRbbZMeA8,7160
190
+ claude_mpm/dashboard/static/test-browser-monitor.html,sha256=_1FepA54mfYOQLYWt9D-FBRmaoiQ5ToZbgS0rjCAfr4,17479
190
191
  claude_mpm/dashboard/static/test-simple.html,sha256=PMLrT6yLSCUt1N-nsOTttHEIiy9b9-25ZAkxGJ3JeqY,3428
191
192
  claude_mpm/dashboard/static/test_debug.html,sha256=XZ0tcKA57VnlE_OLGusb0UWh8Hs4SgeD-wsc4neh8Zw,815
192
193
  claude_mpm/dashboard/static/built/dashboard.js,sha256=X0UbZB0SkqdBPWZdIVygwEXbPrl-jS_OPExHww3CB7s,48106
@@ -194,7 +195,7 @@ claude_mpm/dashboard/static/built/socket-client.js,sha256=qT9K5LsrcScj4w1WjSMBJY
194
195
  claude_mpm/dashboard/static/built/components/activity-tree.js,sha256=c7vYmCvMgq7irVrX-EFbNqVMgVuDJ_cwcvsZ4LSO3bU,29594
195
196
  claude_mpm/dashboard/static/built/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
196
197
  claude_mpm/dashboard/static/built/components/code-tree.js,sha256=TxTyCUdmilFH_QYmClk-hN0_QHmtNroZ3Ovxi7KImjc,96245
197
- claude_mpm/dashboard/static/built/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
198
+ claude_mpm/dashboard/static/built/components/code-viewer.js,sha256=VYQVD59tVFovoRC8fKsyO-Bi_2ZwczffYuYqhUtbjRg,41074
198
199
  claude_mpm/dashboard/static/built/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
199
200
  claude_mpm/dashboard/static/built/components/event-viewer.js,sha256=oyfvK8VO1RNSyN1CRoZiB22cNJ4D05p_ahM8WPCH27k,24902
200
201
  claude_mpm/dashboard/static/built/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
@@ -206,19 +207,18 @@ claude_mpm/dashboard/static/built/components/hud-visualizer.js,sha256=igUUu1OLKO
206
207
  claude_mpm/dashboard/static/built/components/module-viewer.js,sha256=eRpKOFuwPeb8SZycpH4IZF8pE04edS3LH0h06s3GdPg,51575
207
208
  claude_mpm/dashboard/static/built/components/session-manager.js,sha256=FHLvnEH8PYoZJS6zR9qbzWxp52fdd8jGiSiprLun8Cc,8928
208
209
  claude_mpm/dashboard/static/built/components/socket-manager.js,sha256=LEqCS0_EABAsQVUfb6WQk152mSicK2k039zne5cKR8A,131
209
- claude_mpm/dashboard/static/built/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
210
+ claude_mpm/dashboard/static/built/components/ui-state-manager.js,sha256=kGDSb8AcAp0DrNPdKj2nOu0Dq7D5k0hoeHO_SpcTY3E,14753
210
211
  claude_mpm/dashboard/static/built/components/unified-data-viewer.js,sha256=pMA1iYfpmDObyySbGCUT2240fSrcqZmgfjxXrnHsnlM,36759
211
212
  claude_mpm/dashboard/static/built/components/working-directory.js,sha256=eiZk4C1tNAA5JfKO9XbE7VI-CTI9AjN49kxfkRk320k,15937
212
213
  claude_mpm/dashboard/static/css/activity.css,sha256=0SJUwGB6fr4OlVqMwhvVKrPndg2R3QTZPnN6DkAo4aU,37987
213
214
  claude_mpm/dashboard/static/css/code-tree.css,sha256=Sx74ilt7exGOdxCBEtjP9gZ74lB5e8QWr3_SIcl_0hw,30708
214
215
  claude_mpm/dashboard/static/css/connection-status.css,sha256=nQiMLxIFjY5MDgrVCG58VR5H1PpE1vLlgXmnn01-P64,6729
215
- claude_mpm/dashboard/static/css/dashboard.css,sha256=Uc97_y9UL6waqnx6bDdXkJUqPjj7w8B064C5xeJnlrg,85774
216
+ claude_mpm/dashboard/static/css/dashboard.css,sha256=dDZQ5sno4_c0vrX5Pwgeo8Vin9dhJNhdAMDalQbMfps,85828
216
217
  claude_mpm/dashboard/static/dist/dashboard.js,sha256=X0UbZB0SkqdBPWZdIVygwEXbPrl-jS_OPExHww3CB7s,48106
217
218
  claude_mpm/dashboard/static/dist/socket-client.js,sha256=qT9K5LsrcScj4w1WjSMBJY-eWAN8Np05Xw4CenOIiJE,29244
218
219
  claude_mpm/dashboard/static/dist/components/activity-tree.js,sha256=c7vYmCvMgq7irVrX-EFbNqVMgVuDJ_cwcvsZ4LSO3bU,29594
219
220
  claude_mpm/dashboard/static/dist/components/agent-inference.js,sha256=fXK7kzvAXzYzOGdLw_APbDiEN51OX1I4-InnN2iZlu0,12978
220
221
  claude_mpm/dashboard/static/dist/components/code-tree.js,sha256=TxTyCUdmilFH_QYmClk-hN0_QHmtNroZ3Ovxi7KImjc,96245
221
- claude_mpm/dashboard/static/dist/components/code-viewer.js,sha256=wMggEwMt2RrBuXJO-WYZ5_HHDODfWLm_IS9lS5LLR7M,8495
222
222
  claude_mpm/dashboard/static/dist/components/event-processor.js,sha256=JycF1KIAmxhsNBCsne9CzRFPHMcnQz0WhTABpvuCWSc,131
223
223
  claude_mpm/dashboard/static/dist/components/event-viewer.js,sha256=oyfvK8VO1RNSyN1CRoZiB22cNJ4D05p_ahM8WPCH27k,24902
224
224
  claude_mpm/dashboard/static/dist/components/export-manager.js,sha256=iEbnirtMJ5bLpKbgBJfMI2bPC1Lf3_UrQntl04OUKEk,4196
@@ -233,21 +233,26 @@ claude_mpm/dashboard/static/dist/components/socket-manager.js,sha256=LEqCS0_EABA
233
233
  claude_mpm/dashboard/static/dist/components/ui-state-manager.js,sha256=PtZs6sxNhqMMFwdlr04kDKQbgOvxtMHdjSh56KR2ZBo,134
234
234
  claude_mpm/dashboard/static/dist/components/unified-data-viewer.js,sha256=pMA1iYfpmDObyySbGCUT2240fSrcqZmgfjxXrnHsnlM,36759
235
235
  claude_mpm/dashboard/static/dist/components/working-directory.js,sha256=l0E7R5iJpNX2dyWb5oG_InKFje31cO8om2ykzda0Jlg,16587
236
+ claude_mpm/dashboard/static/js/browser-console-monitor.js,sha256=_YLo3r0VOd_-RC7DEJXUQ2Z2vce6m8vU-ja1GTiBLXs,16377
236
237
  claude_mpm/dashboard/static/js/connection-manager.js,sha256=nn7x1jmwEnBClcChbFk1uMhRPu5U1xmXz3sjuo0LNm4,17981
237
- claude_mpm/dashboard/static/js/dashboard.js,sha256=VDnf-LdAKFOD08NCzZlMIWJW3EcDI_ZRo74_OX4FUxY,68876
238
+ claude_mpm/dashboard/static/js/dashboard.js,sha256=axABQwCvt33niR3xGsz7D5gWByAfAZcujSMaORBbnnE,69776
238
239
  claude_mpm/dashboard/static/js/extension-error-handler.js,sha256=DZHrJ3gbfv4nsjmZpNMj-Sc3GKjVJ5ds8lgoaLRnq5I,6274
239
- claude_mpm/dashboard/static/js/socket-client.js,sha256=LQyB7jf8oCqJ3uNyZ3WEix2faMO1TbMyIoV9a-ebScE,57251
240
+ claude_mpm/dashboard/static/js/socket-client.js,sha256=1XxJ6U0H9NxzaWQrL8amECpAiv8d8sbWGM9p-sPMHLQ,57264
240
241
  claude_mpm/dashboard/static/js/components/activity-tree.js,sha256=1j46X0qjYReP6gwv0WGRpJSJNuBwuj6bKmumWrCZKUo,72740
241
242
  claude_mpm/dashboard/static/js/components/agent-hierarchy.js,sha256=Xihxog_vJrk8VBEkDogV_wbye2GIFWmH71VQ1lETOHk,28243
242
243
  claude_mpm/dashboard/static/js/components/agent-inference.js,sha256=RUVZ_fLOyDkHYjrROen_Pzzay79Bh29eXp_GRIPbIRg,37493
244
+ claude_mpm/dashboard/static/js/components/browser-log-viewer.js,sha256=L2M0CRmlmDvxbYlQ87V0WZUdGJItTEo8KArj2chWMNA,30136
243
245
  claude_mpm/dashboard/static/js/components/build-tracker.js,sha256=iouv35tNhnyx9UKtD7X1eakJkpCnvZVCrAJ_VdzsKUY,11251
244
246
  claude_mpm/dashboard/static/js/components/code-simple.js,sha256=2yOEr5ziM0rKlsE65cemZIlFK31ylmcJeXAQZFHQF5Y,33797
245
247
  claude_mpm/dashboard/static/js/components/code-tree.js,sha256=Fi3s9Psojgj2lH9cXPAINc4n-Z_y9KLjiCkM9VpYyoo,223576
246
- claude_mpm/dashboard/static/js/components/code-viewer.js,sha256=vhesEPYOM6MggweaYvYsv7ufVbuVpIcyJPXpJXyJwpM,14453
248
+ claude_mpm/dashboard/static/js/components/code-viewer.js,sha256=ZZsL_7y9XdH0XwAQD0gU4CMhf6eeO3DcAl5D0DKGKOI,40331
247
249
  claude_mpm/dashboard/static/js/components/connection-debug.js,sha256=Qxr_ofDNkxDlZAwbLnhZkXVMyuO9jOe-NMWC9VHxNnA,22196
250
+ claude_mpm/dashboard/static/js/components/diff-viewer.js,sha256=5Jyj1gYBkBawHG2EAEXwJE31S41Yhv-5QGjBHUXrOik,30329
248
251
  claude_mpm/dashboard/static/js/components/event-processor.js,sha256=pP15JIf2yEh7gqEdam42m_B1B4hDlfKbkDcGmQhyjM8,20567
249
252
  claude_mpm/dashboard/static/js/components/event-viewer.js,sha256=Ahl9eTxCYMhDC_533Gf4O96S04W5O_Ts0PAGWSVivkI,43672
250
253
  claude_mpm/dashboard/static/js/components/export-manager.js,sha256=T1YtaR758FaB9aP_5V1xZC9EBIFQOG5H8f_sLopxR5A,11863
254
+ claude_mpm/dashboard/static/js/components/file-change-tracker.js,sha256=r8jfHD_uSNrqQtX1iD-2tGy1I8YW16SB-Y3Aek92Rto,14991
255
+ claude_mpm/dashboard/static/js/components/file-change-viewer.js,sha256=UvJo6NcwUJAtLg6-DUoathauZ3Lkj5dvKuufwYagLoU,22910
251
256
  claude_mpm/dashboard/static/js/components/file-tool-tracker.js,sha256=y8O7kW5uP6KBT2gWvjRoH1aJG-7o1qzyrVnvShsNAK0,28620
252
257
  claude_mpm/dashboard/static/js/components/file-viewer.js,sha256=Q9twY64RJD4ozcsI9k0foUvDCCsDMWCX-ojywqImhNY,19777
253
258
  claude_mpm/dashboard/static/js/components/hud-library-loader.js,sha256=SK6tY8TL88lnewi4M-i092HdgYondv_lVfHoQ-A_cWU,7170
@@ -256,7 +261,7 @@ claude_mpm/dashboard/static/js/components/hud-visualizer.js,sha256=crgq3eA4xiXDE
256
261
  claude_mpm/dashboard/static/js/components/module-viewer.js,sha256=Ndw3ZDLRP4xaMw2akEH5Dvkof4Vp9umk8yFQzQntLkI,109010
257
262
  claude_mpm/dashboard/static/js/components/session-manager.js,sha256=1J6XdWJPZ_ykrK7y5S3p4Y3HyWGcYoLo69XudeG66nU,22769
258
263
  claude_mpm/dashboard/static/js/components/socket-manager.js,sha256=KC-aOJDEPSiMPYk0ABgvCC1xmO7TVQ4SVqohi2GNsWQ,13303
259
- claude_mpm/dashboard/static/js/components/ui-state-manager.js,sha256=EWm0HpPI9TShChitRCyZvZCiUk5rIBVyw10BoHdnTzI,13178
264
+ claude_mpm/dashboard/static/js/components/ui-state-manager.js,sha256=Ly_KONSmahhfDdXdg-hb4E6L0mwyZ64cwwYA_0lKUzU,19335
260
265
  claude_mpm/dashboard/static/js/components/unified-data-viewer.js,sha256=afHCGAg7v3PVhmOr77Bzx3TTZlzHI_5pq16ut3xEYWk,65302
261
266
  claude_mpm/dashboard/static/js/components/working-directory.js,sha256=q8CAvvqCLBIGNkdo-pVF4UmLr-ZvRjy9bLLofmgQZVI,35415
262
267
  claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js,sha256=oijL6R5JFqSm9aHEbh46D7rgK_EDSmAGW-PO2vmacGM,10481
@@ -268,7 +273,7 @@ claude_mpm/dashboard/static/js/shared/event-bus.js,sha256=aV2QMt8Ris1BFxuFUYoOvM
268
273
  claude_mpm/dashboard/static/js/shared/logger.js,sha256=nQE-6b8pAAhWsafgon6UT-ueyOmhukrNFaGkcT77RS0,10431
269
274
  claude_mpm/dashboard/static/js/shared/tooltip-service.js,sha256=T0_0koY2SNHTlctzU4Z5VBH0EWRXmO-ODo9WvO2HUto,7588
270
275
  claude_mpm/dashboard/templates/code_simple.html,sha256=xrmTLFow0M5NWFlk4ci1eLWML-IHr35i5pqIVaEg2TU,4329
271
- claude_mpm/dashboard/templates/index.html,sha256=3nT2CdpQWtEmyr7DogF7TfHdQkKZifMcc-haka9_Jy8,33231
276
+ claude_mpm/dashboard/templates/index.html,sha256=XvGCLpZ2qbw4no4EdOPosAgZ5wyCTKxS7JDrMTVMuyk,30791
272
277
  claude_mpm/experimental/__init__.py,sha256=R_aclOvWpvSTHWAx9QXyg9OIPVK2dXT5tQJhxLQN11Y,369
273
278
  claude_mpm/experimental/cli_enhancements.py,sha256=rlYOMVlj8vQzuyCkHWQ7TtjcsDeFq3y1Ng5qty2fyY8,11486
274
279
  claude_mpm/generators/__init__.py,sha256=rG8vwF_BjPmeMKvyMXpUA8uJ-7mtW2HTNfalZzgRlNk,153
@@ -555,8 +560,9 @@ claude_mpm/services/monitor/__init__.py,sha256=X7gxSLUm9Fg_zEsX6LtCHP2ipF0qj6Emk
555
560
  claude_mpm/services/monitor/daemon.py,sha256=ZeFZPoLKd8PGShNA-mRpFkQkQBbsP7iaDDlNJGCbFe0,25964
556
561
  claude_mpm/services/monitor/daemon_manager.py,sha256=fAcrRh-zBAHXP5_9s5WKCZ-V5EhTEijHPvrSJWwU7Yc,34238
557
562
  claude_mpm/services/monitor/event_emitter.py,sha256=JzRLNg8PUJ5s3ulNnq_D4yqCPItvidJzu8DmFxriieQ,12224
558
- claude_mpm/services/monitor/server.py,sha256=A8gBPqna_Yx5WT06_8OjHQuchgsWRXhfIOBYYtOTsI8,28659
563
+ claude_mpm/services/monitor/server.py,sha256=CSyfbRrDTyTDpuClMsusRFCwsHJ85u4TDQfoYXx57e8,40128
559
564
  claude_mpm/services/monitor/handlers/__init__.py,sha256=jgPIf4IJVERm_tAeD9834tfx9IcxtlHj5r9rhEWpkfM,701
565
+ claude_mpm/services/monitor/handlers/browser.py,sha256=xtUustTAWtNs35HdwdP1wDOrbS-P403xv5DmV3qtklU,15485
560
566
  claude_mpm/services/monitor/handlers/code_analysis.py,sha256=mHyI27Wp6WVmUBc0m0i991ogyFZBTvkrfR7Kf3EAk5U,11474
561
567
  claude_mpm/services/monitor/handlers/dashboard.py,sha256=uGBhb-6RG6u4WLipUXgdx7RCW-vb_qek5dIfHIwAC7o,9805
562
568
  claude_mpm/services/monitor/handlers/file.py,sha256=p3C4wffl0GIcN00b-KkrmZ8F-AmdZlGqLzBqQcqZ9Ns,9729
@@ -644,9 +650,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
644
650
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
645
651
  claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
646
652
  claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
647
- claude_mpm-4.2.40.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
648
- claude_mpm-4.2.40.dist-info/METADATA,sha256=vAL5h1M9CdSo3Po_0evvbLYZixbc_un0p70-FZqLD4g,14451
649
- claude_mpm-4.2.40.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
650
- claude_mpm-4.2.40.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
651
- claude_mpm-4.2.40.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
652
- claude_mpm-4.2.40.dist-info/RECORD,,
653
+ claude_mpm-4.2.43.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
654
+ claude_mpm-4.2.43.dist-info/METADATA,sha256=-vPbZYYI6Pvu7EFMUAuMnxrCfJ-9WkWwG5rBJq8far0,14451
655
+ claude_mpm-4.2.43.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
656
+ claude_mpm-4.2.43.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
657
+ claude_mpm-4.2.43.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
658
+ claude_mpm-4.2.43.dist-info/RECORD,,
@@ -1,44 +0,0 @@
1
- # Agentic Coder Optimizer
2
-
3
- ## Core Identity
4
-
5
- You are Agentic Coder Optimizer, a specialized agent in the Claude MPM framework.
6
-
7
- ## Purpose
8
-
9
- None
10
-
11
- ## Responsibilities
12
-
13
- - Primary focus on your specialized domain
14
- - Collaborate with other agents as needed
15
- - Follow Claude MPM framework conventions
16
- - Maintain high quality standards
17
-
18
- ## Operating Principles
19
-
20
- 1. **Expertise**: Apply deep knowledge in your domain
21
- 2. **Efficiency**: Complete tasks effectively and quickly
22
- 3. **Communication**: Provide clear, actionable responses
23
- 4. **Collaboration**: Work well with other agents
24
- 5. **Quality**: Maintain high standards in all outputs
25
-
26
- ## Output Format
27
-
28
- Provide structured responses with:
29
- - Clear summaries of actions taken
30
- - Detailed results when appropriate
31
- - Any issues or blockers encountered
32
- - Recommendations for next steps
33
-
34
- ## Integration
35
-
36
- - Follow framework patterns and conventions
37
- - Use appropriate tools for the task
38
- - Coordinate with PM for complex workflows
39
- - Report completion status clearly
40
-
41
- ---
42
-
43
- *Agent ID: agentic-coder-optimizer*
44
- *Generated by Agent Manager*