claude-mpm 4.1.2__py3-none-any.whl → 4.1.4__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/BASE_AGENT_TEMPLATE.md +16 -19
- claude_mpm/agents/MEMORY.md +21 -49
- claude_mpm/agents/templates/OPTIMIZATION_REPORT.md +156 -0
- claude_mpm/agents/templates/api_qa.json +36 -116
- claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +42 -9
- claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +29 -6
- claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +34 -6
- claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +41 -9
- claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +30 -8
- claude_mpm/agents/templates/backup/research_agent_2025011_234551.json +2 -2
- claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +29 -6
- claude_mpm/agents/templates/backup/research_memory_efficient.json +2 -2
- claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +41 -9
- claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +23 -7
- claude_mpm/agents/templates/code_analyzer.json +18 -36
- claude_mpm/agents/templates/data_engineer.json +43 -14
- claude_mpm/agents/templates/documentation.json +55 -74
- claude_mpm/agents/templates/engineer.json +57 -40
- claude_mpm/agents/templates/imagemagick.json +7 -2
- claude_mpm/agents/templates/memory_manager.json +1 -1
- claude_mpm/agents/templates/ops.json +36 -4
- claude_mpm/agents/templates/project_organizer.json +23 -71
- claude_mpm/agents/templates/qa.json +34 -2
- claude_mpm/agents/templates/refactoring_engineer.json +9 -5
- claude_mpm/agents/templates/research.json +36 -4
- claude_mpm/agents/templates/security.json +29 -2
- claude_mpm/agents/templates/ticketing.json +3 -3
- claude_mpm/agents/templates/vercel_ops_agent.json +2 -2
- claude_mpm/agents/templates/version_control.json +28 -2
- claude_mpm/agents/templates/web_qa.json +38 -151
- claude_mpm/agents/templates/web_ui.json +2 -2
- claude_mpm/cli/commands/agent_manager.py +221 -1
- claude_mpm/cli/commands/agents.py +556 -1009
- claude_mpm/cli/commands/memory.py +248 -927
- claude_mpm/cli/commands/run.py +139 -484
- claude_mpm/cli/parsers/agent_manager_parser.py +34 -0
- claude_mpm/cli/startup_logging.py +76 -0
- claude_mpm/core/agent_registry.py +6 -10
- claude_mpm/core/framework_loader.py +205 -595
- claude_mpm/core/log_manager.py +49 -1
- claude_mpm/core/logging_config.py +2 -4
- claude_mpm/hooks/claude_hooks/event_handlers.py +7 -117
- claude_mpm/hooks/claude_hooks/hook_handler.py +91 -755
- claude_mpm/hooks/claude_hooks/hook_handler_original.py +1040 -0
- claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +347 -0
- claude_mpm/hooks/claude_hooks/services/__init__.py +13 -0
- claude_mpm/hooks/claude_hooks/services/connection_manager.py +190 -0
- claude_mpm/hooks/claude_hooks/services/duplicate_detector.py +106 -0
- claude_mpm/hooks/claude_hooks/services/state_manager.py +282 -0
- claude_mpm/hooks/claude_hooks/services/subagent_processor.py +374 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +42 -454
- claude_mpm/services/agents/deployment/base_agent_locator.py +132 -0
- claude_mpm/services/agents/deployment/deployment_results_manager.py +185 -0
- claude_mpm/services/agents/deployment/single_agent_deployer.py +315 -0
- claude_mpm/services/agents/memory/agent_memory_manager.py +42 -508
- claude_mpm/services/agents/memory/memory_categorization_service.py +165 -0
- claude_mpm/services/agents/memory/memory_file_service.py +103 -0
- claude_mpm/services/agents/memory/memory_format_service.py +201 -0
- claude_mpm/services/agents/memory/memory_limits_service.py +99 -0
- claude_mpm/services/agents/registry/__init__.py +1 -1
- claude_mpm/services/cli/__init__.py +18 -0
- claude_mpm/services/cli/agent_cleanup_service.py +407 -0
- claude_mpm/services/cli/agent_dependency_service.py +395 -0
- claude_mpm/services/cli/agent_listing_service.py +463 -0
- claude_mpm/services/cli/agent_output_formatter.py +605 -0
- claude_mpm/services/cli/agent_validation_service.py +589 -0
- claude_mpm/services/cli/dashboard_launcher.py +424 -0
- claude_mpm/services/cli/memory_crud_service.py +617 -0
- claude_mpm/services/cli/memory_output_formatter.py +604 -0
- claude_mpm/services/cli/session_manager.py +513 -0
- claude_mpm/services/cli/socketio_manager.py +498 -0
- claude_mpm/services/cli/startup_checker.py +370 -0
- claude_mpm/services/core/cache_manager.py +311 -0
- claude_mpm/services/core/memory_manager.py +637 -0
- claude_mpm/services/core/path_resolver.py +498 -0
- claude_mpm/services/core/service_container.py +520 -0
- claude_mpm/services/core/service_interfaces.py +436 -0
- claude_mpm/services/diagnostics/checks/agent_check.py +65 -19
- claude_mpm/services/memory/router.py +116 -10
- {claude_mpm-4.1.2.dist-info → claude_mpm-4.1.4.dist-info}/METADATA +1 -1
- {claude_mpm-4.1.2.dist-info → claude_mpm-4.1.4.dist-info}/RECORD +86 -55
- claude_mpm/cli/commands/run_config_checker.py +0 -159
- {claude_mpm-4.1.2.dist-info → claude_mpm-4.1.4.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.2.dist-info → claude_mpm-4.1.4.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.1.2.dist-info → claude_mpm-4.1.4.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.1.2.dist-info → claude_mpm-4.1.4.dist-info}/top_level.txt +0 -0
|
@@ -25,6 +25,7 @@ from datetime import datetime
|
|
|
25
25
|
from typing import Any, Dict, List, Optional, Tuple
|
|
26
26
|
|
|
27
27
|
from claude_mpm.core.config import Config
|
|
28
|
+
from claude_mpm.core.framework_loader import FrameworkLoader
|
|
28
29
|
from claude_mpm.core.mixins import LoggerMixin
|
|
29
30
|
|
|
30
31
|
|
|
@@ -467,6 +468,84 @@ class MemoryRouter(LoggerMixin):
|
|
|
467
468
|
"""
|
|
468
469
|
super().__init__()
|
|
469
470
|
self.config = config or Config()
|
|
471
|
+
self._dynamic_patterns_loaded = False
|
|
472
|
+
self._dynamic_patterns = {}
|
|
473
|
+
|
|
474
|
+
def _load_dynamic_patterns(self) -> None:
|
|
475
|
+
"""Load memory routing patterns dynamically from agent templates.
|
|
476
|
+
|
|
477
|
+
WHY: Allows agents to define their own memory routing patterns
|
|
478
|
+
in their template files, making the system more flexible and
|
|
479
|
+
maintainable.
|
|
480
|
+
"""
|
|
481
|
+
if self._dynamic_patterns_loaded:
|
|
482
|
+
return
|
|
483
|
+
|
|
484
|
+
try:
|
|
485
|
+
# Initialize framework loader to access agent templates
|
|
486
|
+
framework_loader = FrameworkLoader()
|
|
487
|
+
|
|
488
|
+
# Try to load patterns from deployed agents
|
|
489
|
+
from pathlib import Path
|
|
490
|
+
|
|
491
|
+
# Check both project and user agent directories
|
|
492
|
+
agent_dirs = [
|
|
493
|
+
Path(".claude/agents"), # Project agents
|
|
494
|
+
Path.home() / ".claude-mpm/agents", # User agents
|
|
495
|
+
]
|
|
496
|
+
|
|
497
|
+
for agent_dir in agent_dirs:
|
|
498
|
+
if not agent_dir.exists():
|
|
499
|
+
continue
|
|
500
|
+
|
|
501
|
+
# Look for deployed agent files
|
|
502
|
+
for agent_file in agent_dir.glob("*.md"):
|
|
503
|
+
agent_name = agent_file.stem
|
|
504
|
+
|
|
505
|
+
# Try to load memory routing from template
|
|
506
|
+
memory_routing = (
|
|
507
|
+
framework_loader._load_memory_routing_from_template(agent_name)
|
|
508
|
+
)
|
|
509
|
+
|
|
510
|
+
if memory_routing:
|
|
511
|
+
# Convert agent name to pattern key format
|
|
512
|
+
# e.g., "research-agent" -> "research"
|
|
513
|
+
pattern_key = (
|
|
514
|
+
agent_name.replace("-agent", "")
|
|
515
|
+
.replace("_agent", "")
|
|
516
|
+
.replace("-", "_")
|
|
517
|
+
)
|
|
518
|
+
|
|
519
|
+
# Build pattern structure from memory routing
|
|
520
|
+
pattern_data = {
|
|
521
|
+
"keywords": memory_routing.get("keywords", []),
|
|
522
|
+
"sections": memory_routing.get("categories", []),
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
# Merge with existing patterns or add new
|
|
526
|
+
if pattern_key in self.AGENT_PATTERNS:
|
|
527
|
+
# Merge keywords, keeping unique values
|
|
528
|
+
existing_keywords = set(
|
|
529
|
+
self.AGENT_PATTERNS[pattern_key]["keywords"]
|
|
530
|
+
)
|
|
531
|
+
new_keywords = set(memory_routing.get("keywords", []))
|
|
532
|
+
pattern_data["keywords"] = list(
|
|
533
|
+
existing_keywords | new_keywords
|
|
534
|
+
)
|
|
535
|
+
|
|
536
|
+
self._dynamic_patterns[pattern_key] = pattern_data
|
|
537
|
+
self.logger.debug(
|
|
538
|
+
f"Loaded dynamic memory routing for {pattern_key}"
|
|
539
|
+
)
|
|
540
|
+
|
|
541
|
+
self._dynamic_patterns_loaded = True
|
|
542
|
+
self.logger.info(
|
|
543
|
+
f"Loaded memory routing patterns for {len(self._dynamic_patterns)} agents"
|
|
544
|
+
)
|
|
545
|
+
|
|
546
|
+
except Exception as e:
|
|
547
|
+
self.logger.warning(f"Could not load dynamic memory routing patterns: {e}")
|
|
548
|
+
self._dynamic_patterns_loaded = True # Don't retry
|
|
470
549
|
|
|
471
550
|
def get_supported_agents(self) -> List[str]:
|
|
472
551
|
"""Get list of supported agent types.
|
|
@@ -477,7 +556,12 @@ class MemoryRouter(LoggerMixin):
|
|
|
477
556
|
Returns:
|
|
478
557
|
List of supported agent type names
|
|
479
558
|
"""
|
|
480
|
-
|
|
559
|
+
self._load_dynamic_patterns()
|
|
560
|
+
|
|
561
|
+
# Combine static and dynamic patterns
|
|
562
|
+
all_agents = set(self.AGENT_PATTERNS.keys())
|
|
563
|
+
all_agents.update(self._dynamic_patterns.keys())
|
|
564
|
+
return list(all_agents)
|
|
481
565
|
|
|
482
566
|
def is_agent_supported(self, agent_type: str) -> bool:
|
|
483
567
|
"""Check if an agent type is supported by the memory router.
|
|
@@ -491,7 +575,8 @@ class MemoryRouter(LoggerMixin):
|
|
|
491
575
|
Returns:
|
|
492
576
|
True if agent type is supported, False otherwise
|
|
493
577
|
"""
|
|
494
|
-
|
|
578
|
+
self._load_dynamic_patterns()
|
|
579
|
+
return agent_type in self.AGENT_PATTERNS or agent_type in self._dynamic_patterns
|
|
495
580
|
|
|
496
581
|
def analyze_and_route(
|
|
497
582
|
self, content: str, context: Optional[Dict] = None
|
|
@@ -605,21 +690,30 @@ class MemoryRouter(LoggerMixin):
|
|
|
605
690
|
Returns:
|
|
606
691
|
Dict containing routing patterns and statistics
|
|
607
692
|
"""
|
|
693
|
+
self._load_dynamic_patterns()
|
|
694
|
+
|
|
695
|
+
# Combine static and dynamic patterns
|
|
696
|
+
all_patterns = dict(self.AGENT_PATTERNS)
|
|
697
|
+
all_patterns.update(self._dynamic_patterns)
|
|
698
|
+
|
|
608
699
|
return {
|
|
609
|
-
"agents": list(
|
|
700
|
+
"agents": list(all_patterns.keys()),
|
|
610
701
|
"default_agent": self.DEFAULT_AGENT,
|
|
702
|
+
"static_agents": list(self.AGENT_PATTERNS.keys()),
|
|
703
|
+
"dynamic_agents": list(self._dynamic_patterns.keys()),
|
|
611
704
|
"patterns": {
|
|
612
705
|
agent: {
|
|
613
706
|
"keyword_count": len(patterns["keywords"]),
|
|
614
707
|
"section_count": len(patterns["sections"]),
|
|
615
708
|
"keywords": patterns["keywords"][:10], # Show first 10
|
|
616
709
|
"sections": patterns["sections"],
|
|
710
|
+
"source": (
|
|
711
|
+
"dynamic" if agent in self._dynamic_patterns else "static"
|
|
712
|
+
),
|
|
617
713
|
}
|
|
618
|
-
for agent, patterns in
|
|
714
|
+
for agent, patterns in all_patterns.items()
|
|
619
715
|
},
|
|
620
|
-
"total_keywords": sum(
|
|
621
|
-
len(p["keywords"]) for p in self.AGENT_PATTERNS.values()
|
|
622
|
-
),
|
|
716
|
+
"total_keywords": sum(len(p["keywords"]) for p in all_patterns.values()),
|
|
623
717
|
}
|
|
624
718
|
|
|
625
719
|
def _normalize_content(self, content: str) -> str:
|
|
@@ -663,9 +757,14 @@ class MemoryRouter(LoggerMixin):
|
|
|
663
757
|
Returns:
|
|
664
758
|
Dict mapping agent names to relevance scores
|
|
665
759
|
"""
|
|
760
|
+
self._load_dynamic_patterns()
|
|
666
761
|
scores = {}
|
|
667
762
|
|
|
668
|
-
|
|
763
|
+
# Combine static and dynamic patterns
|
|
764
|
+
all_patterns = dict(self.AGENT_PATTERNS)
|
|
765
|
+
all_patterns.update(self._dynamic_patterns)
|
|
766
|
+
|
|
767
|
+
for agent, patterns in all_patterns.items():
|
|
669
768
|
score = 0.0
|
|
670
769
|
matched_keywords = []
|
|
671
770
|
|
|
@@ -773,10 +872,17 @@ class MemoryRouter(LoggerMixin):
|
|
|
773
872
|
Returns:
|
|
774
873
|
Section name for memory storage
|
|
775
874
|
"""
|
|
776
|
-
|
|
875
|
+
self._load_dynamic_patterns()
|
|
876
|
+
|
|
877
|
+
# Check both static and dynamic patterns
|
|
878
|
+
if agent in self.AGENT_PATTERNS:
|
|
879
|
+
sections = self.AGENT_PATTERNS[agent]["sections"]
|
|
880
|
+
elif agent in self._dynamic_patterns:
|
|
881
|
+
sections = self._dynamic_patterns[agent]["sections"]
|
|
882
|
+
else:
|
|
777
883
|
return "Recent Learnings"
|
|
778
884
|
|
|
779
|
-
sections =
|
|
885
|
+
sections = sections if sections else []
|
|
780
886
|
|
|
781
887
|
# Simple heuristics for section selection
|
|
782
888
|
if "mistake" in content or "error" in content or "avoid" in content:
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
|
2
|
-
claude_mpm/VERSION,sha256=
|
|
2
|
+
claude_mpm/VERSION,sha256=o5FP181BUxf8Ay2o_LTaCIABFLB3K9OJ0P32IWJvxhw,6
|
|
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=8iLwOogyO85tq8hnBIlX2JfOoAL_eu8_9hDEEtNS394,5650
|
|
6
6
|
claude_mpm/init.py,sha256=mcBonXUyP9pxEFFYfFcQ4OFLWiICT1XnonM_EdjIhoI,15133
|
|
7
7
|
claude_mpm/ticket_wrapper.py,sha256=qe5xY579t7_7fK5nyeAfHN_fr7CXdeOD3jfXEc8-7yo,828
|
|
8
|
-
claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=
|
|
8
|
+
claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=aK9qxS1FRpm_8VaB5GI2I6YA9Wr8dGHuea_txMFe44M,5524
|
|
9
9
|
claude_mpm/agents/BASE_PM.md,sha256=OMWebRWA4ZDk9z3H9DxvksNYqfG4ZExFVNF2vUirUBo,9299
|
|
10
10
|
claude_mpm/agents/INSTRUCTIONS.md,sha256=bTTlGVJwcYjdQ51PMsJXPW6FIEg15wItyHY2u0BYJSU,10777
|
|
11
|
-
claude_mpm/agents/MEMORY.md,sha256=
|
|
11
|
+
claude_mpm/agents/MEMORY.md,sha256=EeY1MwnrhaAij5_pUCt_lcOc2-coo3EYkWRyRbPyJmM,3181
|
|
12
12
|
claude_mpm/agents/OUTPUT_STYLE.md,sha256=HZ5GhiTwMWj9G_uefmMguH4Ukhs2CQqa8u5FQ6HBrbo,2538
|
|
13
13
|
claude_mpm/agents/WORKFLOW.md,sha256=y-tYNbSqJ4D4ND5TMc5bvcnq_mYw3Gwq9bnpz-LzwvQ,7972
|
|
14
14
|
claude_mpm/agents/__init__.py,sha256=jRFxvV_DIZ-NdENa-703Xu3YpwvlQj6yv-mQ6FgmldM,3220
|
|
@@ -23,47 +23,48 @@ claude_mpm/agents/frontmatter_validator.py,sha256=GiCxr13b-SFwvZNbNHDO0lFH9dFhsQ
|
|
|
23
23
|
claude_mpm/agents/system_agent_config.py,sha256=HBDrtRld1ruPqrThA0j4vtMr4cBt0fT7qjDeCR79bps,24105
|
|
24
24
|
claude_mpm/agents/backups/INSTRUCTIONS.md,sha256=tdekngpZ5RjECYZosOaDSBmXPZsVvZcwDQEmmlw7fOQ,14268
|
|
25
25
|
claude_mpm/agents/schema/agent_schema.json,sha256=3p-_vcEAz5Py0ik7LPSJB9CQyE9L_zHhC82J0eCfn78,8784
|
|
26
|
+
claude_mpm/agents/templates/OPTIMIZATION_REPORT.md,sha256=qSIZ77DARoOcR4pL-izYDFCgNmXO3m6tbJyAXuYX20E,5765
|
|
26
27
|
claude_mpm/agents/templates/__init__.py,sha256=kghxAWs3KvcAA9Esk3NI7caumYgW6fiW8vRO1-MEndU,2735
|
|
27
28
|
claude_mpm/agents/templates/agent-manager.json,sha256=pRMILoAMxVZcc5g_XwStpJoz2K8LJo8sUyJB6bep6rI,628
|
|
28
29
|
claude_mpm/agents/templates/agent-manager.md,sha256=vsy49vWxIlMVLX6H7_BtjPDaR4j_gkechvgWbN88aPI,8218
|
|
29
|
-
claude_mpm/agents/templates/api_qa.json,sha256=
|
|
30
|
-
claude_mpm/agents/templates/code_analyzer.json,sha256=
|
|
31
|
-
claude_mpm/agents/templates/data_engineer.json,sha256=
|
|
32
|
-
claude_mpm/agents/templates/documentation.json,sha256=
|
|
33
|
-
claude_mpm/agents/templates/engineer.json,sha256=
|
|
34
|
-
claude_mpm/agents/templates/imagemagick.json,sha256=
|
|
35
|
-
claude_mpm/agents/templates/memory_manager.json,sha256=
|
|
36
|
-
claude_mpm/agents/templates/ops.json,sha256=
|
|
37
|
-
claude_mpm/agents/templates/project_organizer.json,sha256=
|
|
38
|
-
claude_mpm/agents/templates/qa.json,sha256=
|
|
39
|
-
claude_mpm/agents/templates/refactoring_engineer.json,sha256=
|
|
40
|
-
claude_mpm/agents/templates/research.json,sha256=
|
|
41
|
-
claude_mpm/agents/templates/security.json,sha256=
|
|
42
|
-
claude_mpm/agents/templates/ticketing.json,sha256=
|
|
43
|
-
claude_mpm/agents/templates/vercel_ops_agent.json,sha256=
|
|
30
|
+
claude_mpm/agents/templates/api_qa.json,sha256=hTdeNOgA2tzADCb2V9ExguFSvAv267yQYqa26AnOQHk,5786
|
|
31
|
+
claude_mpm/agents/templates/code_analyzer.json,sha256=UOTXl6VTmzx1OoF5M4Bc9lQGriLf6Jq84rz30J77tEM,4718
|
|
32
|
+
claude_mpm/agents/templates/data_engineer.json,sha256=rP3ffuaHwe0xGVpXShhVHTn1jEVMV2aAlnNGZL8j3jc,5629
|
|
33
|
+
claude_mpm/agents/templates/documentation.json,sha256=6G7U_48t8XX16YKI4NYMnmUU7eQ5ARGpQ7jzUshAuHc,6389
|
|
34
|
+
claude_mpm/agents/templates/engineer.json,sha256=ecb84bedntQHRttqxiQhgeI9GL6KJx5SboToG94pE3s,6622
|
|
35
|
+
claude_mpm/agents/templates/imagemagick.json,sha256=Hh5Y3OmhexTESiOZNyq79imbZ0-Vs8vpD2lpRi1x7FM,17747
|
|
36
|
+
claude_mpm/agents/templates/memory_manager.json,sha256=aQKZCnkljawXaY4fgtyzqKziIAsL2mtQOsh1HZ7qcws,12613
|
|
37
|
+
claude_mpm/agents/templates/ops.json,sha256=oC1pjdJrlRn4YBbP3RWFnmzpy-2ImabFR6GjsaWe3pI,7409
|
|
38
|
+
claude_mpm/agents/templates/project_organizer.json,sha256=wFpdLeMgpTMWPpd7zHDgJq-0_fyph9VOXMoZkRgwD5c,5632
|
|
39
|
+
claude_mpm/agents/templates/qa.json,sha256=2JunnzgFNdz_HE6_S3W84gShPnMPzH1sT63eoO1-Ie8,9526
|
|
40
|
+
claude_mpm/agents/templates/refactoring_engineer.json,sha256=EArflslbK27cCYtBlLpprf6BxIj5YHDpMneW5rk3jCc,11877
|
|
41
|
+
claude_mpm/agents/templates/research.json,sha256=EWCIP6GMtpnlVGeV9Ee2jf_PMzENaSxnau937lBIEec,8636
|
|
42
|
+
claude_mpm/agents/templates/security.json,sha256=Y04JVClNb1iGuMtaRjzXz3abQ8o1hR1cEBp3HHNOj5Y,14833
|
|
43
|
+
claude_mpm/agents/templates/ticketing.json,sha256=1aWHb9ASS178VDcNCIAz-cxWnk_jmODmwg87SV7ZqJo,11514
|
|
44
|
+
claude_mpm/agents/templates/vercel_ops_agent.json,sha256=FAg-erdW4b0o7zs2uUiEHdFEymT8ENxWZH4bpvjCPKQ,7927
|
|
44
45
|
claude_mpm/agents/templates/vercel_ops_instructions.md,sha256=yDf5_2IEC22t6CqZaKCpbk1PIccHt3BbbnQ6IbAay38,15500
|
|
45
|
-
claude_mpm/agents/templates/version_control.json,sha256=
|
|
46
|
-
claude_mpm/agents/templates/web_qa.json,sha256=
|
|
47
|
-
claude_mpm/agents/templates/web_ui.json,sha256=
|
|
48
|
-
claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json,sha256=
|
|
49
|
-
claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json,sha256=
|
|
50
|
-
claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json,sha256=
|
|
51
|
-
claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json,sha256=
|
|
52
|
-
claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json,sha256=
|
|
53
|
-
claude_mpm/agents/templates/backup/research_agent_2025011_234551.json,sha256=
|
|
54
|
-
claude_mpm/agents/templates/backup/research_agent_20250726_234551.json,sha256=
|
|
55
|
-
claude_mpm/agents/templates/backup/research_memory_efficient.json,sha256=
|
|
56
|
-
claude_mpm/agents/templates/backup/security_agent_20250726_234551.json,sha256=
|
|
57
|
-
claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json,sha256=
|
|
46
|
+
claude_mpm/agents/templates/version_control.json,sha256=QulRKPGVBvcCsvrQNdZWMcwyFhLMVzo3Lzy63cWwlrY,14430
|
|
47
|
+
claude_mpm/agents/templates/web_qa.json,sha256=Mykq_61giWYQWW30iU3zuRh9P8yOPvoXkp_x3vOVAR0,6344
|
|
48
|
+
claude_mpm/agents/templates/web_ui.json,sha256=l1DHRCrXpHDl01K5lkhiLYjPtv6i90lMRE_jZjPkifM,34852
|
|
49
|
+
claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json,sha256=k0iVEhxBfcSbeoTmoZ9oXpV3iT9cylrJ_GF1fp3ngV8,5264
|
|
50
|
+
claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json,sha256=SkaO4cDfV3rVMQX6awTVIZFpa2_KojzohPp32yIzRRo,2403
|
|
51
|
+
claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json,sha256=9p1_Ad4neaXI05eaIF7tyd2582zYin5H5Zvo_tNUios,8654
|
|
52
|
+
claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json,sha256=GZZE11TqEoo2EiA6e-ZYw2ZEIP4cJC_mj-QNb37iXZw,2425
|
|
53
|
+
claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json,sha256=P3JOCnlcO-lF-d_D9YmT12gDAGhUHjnF6nHbHmU7rWE,2294
|
|
54
|
+
claude_mpm/agents/templates/backup/research_agent_2025011_234551.json,sha256=3_Qo1ZBORi7xtroqh5_fXk1xUdG5LGKdaCf3yed8gF4,12337
|
|
55
|
+
claude_mpm/agents/templates/backup/research_agent_20250726_234551.json,sha256=mgajkxBOfzIWzPN0XkFW-4GeXZjhA7yLRz40tm02kC0,5774
|
|
56
|
+
claude_mpm/agents/templates/backup/research_memory_efficient.json,sha256=4ucuMNzAkL5XFFpxYuHH0Qei3ekAoQ8RKlkyO9zjgcQ,8420
|
|
57
|
+
claude_mpm/agents/templates/backup/security_agent_20250726_234551.json,sha256=sSMY54y7cEWjV1vEfFkIvL8UfNvC1u1Rd9znB6MSRmk,2520
|
|
58
|
+
claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json,sha256=2Xrc5FW5udGnzQC5uluvnw5qLcVswi9HVxse7BWhAl8,2244
|
|
58
59
|
claude_mpm/cli/__init__.py,sha256=Ld4NA9EoNj5SHeYFWU26Hdd1mCP4lrlSwss-tvnbfKA,15522
|
|
59
60
|
claude_mpm/cli/__main__.py,sha256=WnVGBwe10InxuZjJRFdwuMF6Gh16aXox6zFgxr0sRXk,847
|
|
60
61
|
claude_mpm/cli/parser.py,sha256=pG4B8kcROCNLF5-3YiZTXwDBs4EoKxTdhw8CHKezYHc,1362
|
|
61
|
-
claude_mpm/cli/startup_logging.py,sha256=
|
|
62
|
+
claude_mpm/cli/startup_logging.py,sha256=Xq1SHRZloSlH2UcszYvW1SETHsYnbpakS2-25x5h3Vk,22230
|
|
62
63
|
claude_mpm/cli/ticket_cli.py,sha256=Cco0riIeo-PuzBslX3-5LAtLUcsLvexSRtVlheb7-cQ,916
|
|
63
64
|
claude_mpm/cli/utils.py,sha256=-ObCOxPff4CB6xYulsneC19Fwwb3UHn53UI7u-B_pJ8,7023
|
|
64
65
|
claude_mpm/cli/commands/__init__.py,sha256=fpng_LKNL_kdi1qmZ1I6wVop0U8rShOnPyv-GtZ50xE,979
|
|
65
|
-
claude_mpm/cli/commands/agent_manager.py,sha256=
|
|
66
|
-
claude_mpm/cli/commands/agents.py,sha256=
|
|
66
|
+
claude_mpm/cli/commands/agent_manager.py,sha256=BYyoyyTx06Oy-kN6EwDOc1aFqw_HKRFhn3XYaT99u-M,29642
|
|
67
|
+
claude_mpm/cli/commands/agents.py,sha256=Zz0UZF8t6KOsgMSehTDjEb39pevPwKCDhH-2WoYFq-Y,38064
|
|
67
68
|
claude_mpm/cli/commands/aggregate.py,sha256=rLwZxXmIyTPuDUYKTooVtTgiW4mU3vw4_383jK1nXHU,18065
|
|
68
69
|
claude_mpm/cli/commands/cleanup.py,sha256=c4QyAs9odx7__rSM9RDy2r9iwPlrfeIzx2vINbl7WaA,19694
|
|
69
70
|
claude_mpm/cli/commands/cleanup_orphaned_agents.py,sha256=JR8crvgrz7Sa6d-SI-gKywok5S9rwc_DzDVk_h85sVs,4467
|
|
@@ -77,14 +78,13 @@ claude_mpm/cli/commands/mcp_install_commands.py,sha256=dFjMT2p15-F2VLS6o1whXgmBt
|
|
|
77
78
|
claude_mpm/cli/commands/mcp_pipx_config.py,sha256=sE62VD6Q1CcO2k1nlbIhHMfAJFQTZfIzCss99LmfNqA,6088
|
|
78
79
|
claude_mpm/cli/commands/mcp_server_commands.py,sha256=-1G_2Y5ScTvzDd-kY8fTAao2H6FH7DnsLimleF1rVqQ,6197
|
|
79
80
|
claude_mpm/cli/commands/mcp_tool_commands.py,sha256=q17GzlFT3JiLTrDqwPO2tz1-fKmPO5QU449syTnKTz4,1283
|
|
80
|
-
claude_mpm/cli/commands/memory.py,sha256=
|
|
81
|
+
claude_mpm/cli/commands/memory.py,sha256=Yzfs3_oiKciv3sfOoDm2lJL4M9idG7ARV3-sNw1ge_g,26186
|
|
81
82
|
claude_mpm/cli/commands/monitor.py,sha256=F4HY3x1A6hJgtHJlLssIWJFgND1xFGfzZSLU0ylwHpM,27308
|
|
82
|
-
claude_mpm/cli/commands/run.py,sha256=
|
|
83
|
-
claude_mpm/cli/commands/run_config_checker.py,sha256=OEtAyBMG83Ws_cX-HeAluFZe4xuxL4An9i06gkuN-DM,6929
|
|
83
|
+
claude_mpm/cli/commands/run.py,sha256=7jvKy4emK8szoHR9nEigXnOrkugx4MduLmUadfWnUv0,43113
|
|
84
84
|
claude_mpm/cli/commands/socketio_monitor.py,sha256=GHHY5pKg0XCffoqLoO0l0Nxa9HQY4gdrpYebLVahzl4,9540
|
|
85
85
|
claude_mpm/cli/commands/tickets.py,sha256=gK8IL4IRZmLQTqJh3eEWU4TU_kbdo-Z9BE1QtFaF9dI,33514
|
|
86
86
|
claude_mpm/cli/parsers/__init__.py,sha256=f0Fm1DDXorlVOZPLxUpjC-GIvLh01G-FZOK7TEV1L3I,1005
|
|
87
|
-
claude_mpm/cli/parsers/agent_manager_parser.py,sha256=
|
|
87
|
+
claude_mpm/cli/parsers/agent_manager_parser.py,sha256=8HuGpTnHSOnTOqOHriBTzi8EzKLMSfqH2eFHs0dEuu4,8009
|
|
88
88
|
claude_mpm/cli/parsers/agents_parser.py,sha256=DxAZMotptyaJbROqbRbTipOKLLJ96ATrXhwiFK6Dbm0,5450
|
|
89
89
|
claude_mpm/cli/parsers/base_parser.py,sha256=3paei6ok6gg7QGrCEqmNd7bh4CoJCWVXdo_MMFaJq9w,12192
|
|
90
90
|
claude_mpm/cli/parsers/config_parser.py,sha256=wp6NbV8_p9txP28MXFcQrri0JDIfGFM7u4aJbYJXcYQ,2699
|
|
@@ -109,7 +109,7 @@ claude_mpm/config/paths.py,sha256=Dl35_QF0kfC2I6Fy7ETcNjz7jlumNGt45qlRKqsPJrk,76
|
|
|
109
109
|
claude_mpm/config/socketio_config.py,sha256=qNLvjKZWUZEsNmSXUe0ueXu1q7-EOlxK3mdQquEZwTI,9714
|
|
110
110
|
claude_mpm/core/__init__.py,sha256=QhEX_NpiCprUp87bV75FnMapblMeqC5soNVJXVvZObc,887
|
|
111
111
|
claude_mpm/core/agent_name_normalizer.py,sha256=_h92sTPltmvqevCjdKQ7EsOz-CAm1-hd8GOubWjuRgw,8907
|
|
112
|
-
claude_mpm/core/agent_registry.py,sha256=
|
|
112
|
+
claude_mpm/core/agent_registry.py,sha256=cPQsOSIyrspr3KpS-P9MQ6Dv_BLXa9BWhs9RM0iu4C4,18798
|
|
113
113
|
claude_mpm/core/agent_session_manager.py,sha256=JmhP67tZuJhGaXOriWeYdl69edxB8szVMLMxcO9EGsg,11043
|
|
114
114
|
claude_mpm/core/base_service.py,sha256=OGFg2IrvkSVhDUoN12y9HD6L6YGka0pc6Wj3AmHKxYk,29182
|
|
115
115
|
claude_mpm/core/cache.py,sha256=aCvZg08gT8uMFSDp-s0-xqRYSgcfBTDGM3MlJTTboMY,17170
|
|
@@ -121,16 +121,16 @@ claude_mpm/core/constants.py,sha256=88J9bGT05Fbr3lzHLWtLQbBYRuJuLBjK3Bfq_qyWcIo,
|
|
|
121
121
|
claude_mpm/core/container.py,sha256=tktmoChULNzNm_wUNR0YCzzRO8wH2AEy-hCaCFis4JU,32137
|
|
122
122
|
claude_mpm/core/exceptions.py,sha256=vrEJGpgThvqRRD6qsNkmaQcYAoUMQSNuHUOnNFJcEGg,19628
|
|
123
123
|
claude_mpm/core/factories.py,sha256=vtlwkbpxeWzqgPRGO1ehnMOzddLCHWTeiKa8halV_dU,7271
|
|
124
|
-
claude_mpm/core/framework_loader.py,sha256=
|
|
124
|
+
claude_mpm/core/framework_loader.py,sha256=Ei0lJUFdNGMF-Eb0xKWTFr3w1_mL1zDBlXpJXS_LX8U,72650
|
|
125
125
|
claude_mpm/core/hook_manager.py,sha256=_Y7QWv8MfZgSHbKmWYfojuDRPxC2niZgOb7JkeUFQaE,11059
|
|
126
126
|
claude_mpm/core/hook_performance_config.py,sha256=e7a7oFctkRhA3aPXMO5Wavr-E6ku7ikLxMzPU7P1-yg,5779
|
|
127
127
|
claude_mpm/core/injectable_service.py,sha256=6MUqTVTBBw6legToIVj1C_BzdERO0zKYEPnFPVZJJfE,7398
|
|
128
128
|
claude_mpm/core/interactive_session.py,sha256=OO0Oqv5hXfEtnAUNUc2WKd6BtxbT_p4Kcei-53GKxno,21973
|
|
129
129
|
claude_mpm/core/interfaces.py,sha256=RNqXxUioEpV4vOaEoUJ38OvKYPMlpSb3V5Sb97l0w3Q,25625
|
|
130
130
|
claude_mpm/core/lazy.py,sha256=6EYpXGZwsMAMQ3GXepNtyw_b7IxDwOTjfOVE6mV-S2s,14774
|
|
131
|
-
claude_mpm/core/log_manager.py,sha256=
|
|
131
|
+
claude_mpm/core/log_manager.py,sha256=jE6ZJNv6P2dZcpMIG9x8EQXWxH4g-xAj6sGjq-fSA1k,21504
|
|
132
132
|
claude_mpm/core/logger.py,sha256=O_6X9LS-qpkpQnbQMitwpBj-C7Ll0HmTvo3nWAf_H1Y,20730
|
|
133
|
-
claude_mpm/core/logging_config.py,sha256=
|
|
133
|
+
claude_mpm/core/logging_config.py,sha256=tCxM3EpSmjZ7kT7hckQxQZlrxuWVm4g-qu9RHe8hDcw,14588
|
|
134
134
|
claude_mpm/core/minimal_framework_loader.py,sha256=vmDEjL3MjnV7W4WIR-ymaL8QgsGsgxJJ0KdiQqAtudM,3640
|
|
135
135
|
claude_mpm/core/mixins.py,sha256=vmZ7Nu2ZOnKjbhN07Ixk4noIej9nsJiknrp-Sclfu0A,5344
|
|
136
136
|
claude_mpm/core/oneshot_session.py,sha256=QkSw-gs7tTQkdKQiZh7mbia5hc5PMt_xaMoDY-9_bZk,17693
|
|
@@ -214,13 +214,20 @@ claude_mpm/hooks/tool_call_interceptor.py,sha256=mTE3QLC3UN8DeH2pwUBaDfPcGAQCp7p
|
|
|
214
214
|
claude_mpm/hooks/validation_hooks.py,sha256=qTkO93lJWInqvEibKbY-Fj-qDvMtKRcE6dDfV29VTiQ,6433
|
|
215
215
|
claude_mpm/hooks/claude_hooks/__init__.py,sha256=b4mud_g3S-3itHY_Dzpbb_SmdMEcJwtUU8fTcqpLqqs,130
|
|
216
216
|
claude_mpm/hooks/claude_hooks/connection_pool.py,sha256=OSVJk4q-Zj_4UrQIKyGsJv6sab-oZfq-BB4_9mQqPYU,8618
|
|
217
|
-
claude_mpm/hooks/claude_hooks/event_handlers.py,sha256=
|
|
218
|
-
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=
|
|
217
|
+
claude_mpm/hooks/claude_hooks/event_handlers.py,sha256=OWglHktyzLmuNhkKmV_Bgka7M_YUB84lspYJlR3HQ7I,30312
|
|
218
|
+
claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=TW8i7heEzLT0EkQmZrc8LWpBMiQbfOSLZ3XzvWiGweI,14171
|
|
219
219
|
claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py,sha256=IZKE3cJok_gb4UGFEtftic5MjYBAPupt3iDq20L9Pfc,14848
|
|
220
|
+
claude_mpm/hooks/claude_hooks/hook_handler_original.py,sha256=AOcGOf2WiA_aaRsaENKBvaj3Vi_UzeL_zaEgN3zxCrk,42964
|
|
221
|
+
claude_mpm/hooks/claude_hooks/hook_handler_refactored.py,sha256=e8phCM18f-IcovV9_xVNYSV8nndVKdzmFJa-xjKGkq8,12983
|
|
220
222
|
claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=4lG3TlLVoVfTJipPj1X_ICUlS-KpnkbUp1U3oSq80Bw,2476
|
|
221
223
|
claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=TXLavDM9eEoakPX_n2WtnfXyqGn80N-xgAvcYgvoW8s,8832
|
|
222
224
|
claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=4RcM54LyYeINf3A_toaSOPuD3oXS6jZtiRstHxgSOao,14990
|
|
223
225
|
claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2fSZfepN7lI4P1meSQ,7862
|
|
226
|
+
claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=xd8L37zh9JccPvliQEQj6SiUlrWL2oZDzZf_sPXPkqA,410
|
|
227
|
+
claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=brkw3wE5m5RWa3fOo4noRO0xl0GpLWUPVacxcP6QYpM,7496
|
|
228
|
+
claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM9t0U1v2l_fuBwvNpVkl_0EF8Wu5KLHQ,3882
|
|
229
|
+
claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=c7OldfemaMU37YGJxgO2uEcTOuPc-C80SRhzEH07j7I,11072
|
|
230
|
+
claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=l8fPF5CgmYnj1GqZQs3D_611xuZkRq3bFeg9axl-EEg,15229
|
|
224
231
|
claude_mpm/models/__init__.py,sha256=GADyLAiF-1VVghYKI7Urz3zSnf2sjJUXlOEMuCOs7_g,468
|
|
225
232
|
claude_mpm/models/agent_definition.py,sha256=LC7EwihixF2Gw4QqOxiCNchsEzzyQJPR6AgPrcTrWTM,6674
|
|
226
233
|
claude_mpm/models/agent_session.py,sha256=7YU9oklwqEDyH3PTKUQ52yh6N9C9eJX8GJKhxDCpDj0,19988
|
|
@@ -261,7 +268,7 @@ claude_mpm/services/agents/deployment/__init__.py,sha256=iprW-Ww3LBtWu9pVFjAX45_
|
|
|
261
268
|
claude_mpm/services/agents/deployment/agent_config_provider.py,sha256=_voUMuk_6IiJy_VHloDC6OA803-Z2wENOK60extV_ZU,13312
|
|
262
269
|
claude_mpm/services/agents/deployment/agent_configuration_manager.py,sha256=5nf69hfo7lUa3_55sDcU5WfpzBtOZCMSTPYGr2dlIdY,12173
|
|
263
270
|
claude_mpm/services/agents/deployment/agent_definition_factory.py,sha256=DaJ__b3-ADinfd-qNnW6LKWfclOaZbkBBcfuHgqlUic,2697
|
|
264
|
-
claude_mpm/services/agents/deployment/agent_deployment.py,sha256=
|
|
271
|
+
claude_mpm/services/agents/deployment/agent_deployment.py,sha256=6YFg1ZcAMI_cb7xGhSm0e3qdPOrVNoQ_-o1qoc_PM2k,35514
|
|
265
272
|
claude_mpm/services/agents/deployment/agent_discovery_service.py,sha256=VxTm-jq51nDlGek_srK5BRTAQk2XH5OxGjEgazL1e6o,13443
|
|
266
273
|
claude_mpm/services/agents/deployment/agent_environment_manager.py,sha256=kjMiLyZYHs-s9pVdtj4av4hJW0gNXnD7lZz2CJpxmZI,9863
|
|
267
274
|
claude_mpm/services/agents/deployment/agent_filesystem_manager.py,sha256=kstcGvufqF3cmmkJ_hDIHutPbIrMo_ZsGCKlIKmNbMA,12904
|
|
@@ -276,7 +283,9 @@ claude_mpm/services/agents/deployment/agent_version_manager.py,sha256=RtU3zrz9VJ
|
|
|
276
283
|
claude_mpm/services/agents/deployment/agent_versioning.py,sha256=cDkSv12m6_XjhhD6Tr_tmcnvx4RrXhMAKpjm6E_fKyQ,989
|
|
277
284
|
claude_mpm/services/agents/deployment/agents_directory_resolver.py,sha256=4ylwNMs9i8eGa1jSBkU0wW1O0Jvr4GNrrWX81F0wQWU,2175
|
|
278
285
|
claude_mpm/services/agents/deployment/async_agent_deployment.py,sha256=VDUw-UcGDby99ZULTK6G4rF3yp33Pef3O5zmnQxdQFg,28163
|
|
286
|
+
claude_mpm/services/agents/deployment/base_agent_locator.py,sha256=szw9N1Di6AJuuWGIZHRfgWij6wwMbag--6XzjFvmpiA,4751
|
|
279
287
|
claude_mpm/services/agents/deployment/deployment_config_loader.py,sha256=Wlm64Ovb-9qgm6F4AOMoBNsUb796Ixe0lDh8gRvKO3o,1935
|
|
288
|
+
claude_mpm/services/agents/deployment/deployment_results_manager.py,sha256=oNJ8DhmeXswD4_6qmLpDusI2edyJy2gd203ePxmJEy8,6609
|
|
280
289
|
claude_mpm/services/agents/deployment/deployment_type_detector.py,sha256=b6x6qpGVSGPzNzioqN4kSOXHAhSiIqbqiaLTdlcvwsY,4378
|
|
281
290
|
claude_mpm/services/agents/deployment/deployment_wrapper.py,sha256=qu2U43LBmAGhGWOEgzD9H9-Kj5tGt_J5hODP5UaGU5c,2400
|
|
282
291
|
claude_mpm/services/agents/deployment/interface_adapter.py,sha256=mOsQ5IJHLEezq8vCoGSY5OarxolDw1B6Yr0dAYUMMVE,8078
|
|
@@ -284,6 +293,7 @@ claude_mpm/services/agents/deployment/lifecycle_health_checker.py,sha256=2dphAvY
|
|
|
284
293
|
claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py,sha256=lK_yg0uRL55opUoecOJBL83Tjj6Pu_z4-4EYWPeN6tM,4336
|
|
285
294
|
claude_mpm/services/agents/deployment/multi_source_deployment_service.py,sha256=OHiNvdd4qb5gpmXLcHzUsm0OvJHNfyyOZQ8clWTB8No,39184
|
|
286
295
|
claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py,sha256=5-StpaZYqVvm-WrmLMsoIp85WFYL2p0VLWQOfZEn8jU,11707
|
|
296
|
+
claude_mpm/services/agents/deployment/single_agent_deployer.py,sha256=6QtHP-y4T_-UXYXYvdQgdIooOfjnC5NArlbkUo4EPl0,11492
|
|
287
297
|
claude_mpm/services/agents/deployment/system_instructions_deployer.py,sha256=SCBBXleIn322X_w-swOHjO22J3HCxSHGkd3V-rSbbOs,4060
|
|
288
298
|
claude_mpm/services/agents/deployment/config/__init__.py,sha256=gVzYqpnF_1it3VjDHRQoUs2VRDVm_WwkhDzNv8x23nM,397
|
|
289
299
|
claude_mpm/services/agents/deployment/config/deployment_config.py,sha256=CdKUySW30GRE3aR4WL8oTDxtOcNkHdkiofsOMVpYcOQ,6427
|
|
@@ -329,17 +339,38 @@ claude_mpm/services/agents/management/__init__.py,sha256=--BL1mjPq28_Lil5Ogsz367
|
|
|
329
339
|
claude_mpm/services/agents/management/agent_capabilities_generator.py,sha256=CR2aPfgcKHEq_c5OPGHPMn2-LxjY0b3U1V2q0_nFWIU,6971
|
|
330
340
|
claude_mpm/services/agents/management/agent_management_service.py,sha256=EmwywtVTtxcARJTSZVSPQHqsGpSGj_fy0VeX1fz7ERA,22949
|
|
331
341
|
claude_mpm/services/agents/memory/__init__.py,sha256=cu8XUsFeI06NjPwDIysofA0dSpALEKd1f3_E_hJ9wyI,608
|
|
332
|
-
claude_mpm/services/agents/memory/agent_memory_manager.py,sha256=
|
|
342
|
+
claude_mpm/services/agents/memory/agent_memory_manager.py,sha256=ewmfS80ZqLGdoalGCVNxlpPVBp5qf1uGUfUpqPtwtOA,31721
|
|
333
343
|
claude_mpm/services/agents/memory/agent_persistence_service.py,sha256=1_wMyoXRdAo82xg8yLBd4vR1nl-hze0gECOJDOPwsZc,2757
|
|
334
344
|
claude_mpm/services/agents/memory/content_manager.py,sha256=OUrTFKvw1Ym8JyMt6bPQbfCARgMGN__nqNVPkxQnF6A,16385
|
|
345
|
+
claude_mpm/services/agents/memory/memory_categorization_service.py,sha256=nJTztLXl_g5Z6bjUFvvDL8mOqqfLNFrbqYBJR5_EchM,4713
|
|
346
|
+
claude_mpm/services/agents/memory/memory_file_service.py,sha256=uQ7Ou39UsFabHCNYocO9XjkJdlXmR7Z6LS4o1L7yA98,3319
|
|
347
|
+
claude_mpm/services/agents/memory/memory_format_service.py,sha256=Y4lgKb6SV1iVTSFNDSGy8Ve267mvKaPJZhzYxYOJHtc,6183
|
|
348
|
+
claude_mpm/services/agents/memory/memory_limits_service.py,sha256=6nkCXOE3_3aPla7n8GwWBVJTxZI7w0aA596E9J-a48c,3310
|
|
335
349
|
claude_mpm/services/agents/memory/template_generator.py,sha256=bfRY_GEhsO3WoIU36VjlVYWqmXR9UEPngeBcSpWoDUQ,2547
|
|
336
|
-
claude_mpm/services/agents/registry/__init__.py,sha256=
|
|
350
|
+
claude_mpm/services/agents/registry/__init__.py,sha256=ROBX82Ac4iLHEE7-aFUy7mT3NSz5eIub19ck5Q81NHQ,681
|
|
337
351
|
claude_mpm/services/agents/registry/deployed_agent_discovery.py,sha256=aaqu50tjonWURgBWFXUKZvWw9qJYLQgUtCux9xCL1rE,10213
|
|
338
352
|
claude_mpm/services/agents/registry/modification_tracker.py,sha256=bA4F2chibZCTTK_aUVapuK_z0mYZQ7wOi8-OejjZ0AU,33909
|
|
353
|
+
claude_mpm/services/cli/__init__.py,sha256=6yavdruQywt9k39RBOrPxUTz6dEEJ6mHzjY4pl_Q3Do,559
|
|
354
|
+
claude_mpm/services/cli/agent_cleanup_service.py,sha256=2d_f4owY06Vr6NqFyq3zAOm02VgHSiM6tuPZhuzi5KE,14098
|
|
355
|
+
claude_mpm/services/cli/agent_dependency_service.py,sha256=a9bt0Crkglo3D4X-yVgUYKY_FPok_vLfPjHeJh3-WOc,13700
|
|
356
|
+
claude_mpm/services/cli/agent_listing_service.py,sha256=bRb7rAsybTOZ-0F22xE3a4S1QPkuq3K7FavlFePCrVc,15999
|
|
357
|
+
claude_mpm/services/cli/agent_output_formatter.py,sha256=FcJ18m3CyeFr_wotJfEmIURHeZ71eomqO_vK7wsPWsM,20521
|
|
358
|
+
claude_mpm/services/cli/agent_validation_service.py,sha256=6qRpRm6Qwjr_Kj4dH1RxIyffdN_3wJsYH5XxviuK5gU,21756
|
|
359
|
+
claude_mpm/services/cli/dashboard_launcher.py,sha256=l0bwF37jU_P9bHYBfQj0Sr9GtdHHF-XembC8LTSOstg,14473
|
|
360
|
+
claude_mpm/services/cli/memory_crud_service.py,sha256=ciN9Pl_12iDAqF9zPBWOzu-iXiAzpy3CiIwXRoeB5m0,22645
|
|
361
|
+
claude_mpm/services/cli/memory_output_formatter.py,sha256=nbf7VsjGvH4e9fLv9c7PzjuO9COZhbK5P2fNZ79055w,24783
|
|
362
|
+
claude_mpm/services/cli/session_manager.py,sha256=rla_Stbcvt93wa9G9MCMu9UqB3FLGqlPt_eN5lQb3Gg,16599
|
|
363
|
+
claude_mpm/services/cli/socketio_manager.py,sha256=90pvf97Q2Upz9WMP4_SOMfDmlgdkdiCJ0ix6vA7hgco,16745
|
|
364
|
+
claude_mpm/services/cli/startup_checker.py,sha256=FfRoJV0lEjw7hFJhl0JHHOZPHhQSnLCrQx2ni5RLhCY,12687
|
|
339
365
|
claude_mpm/services/communication/__init__.py,sha256=b4qc7_Rqy4DE9q7BAUlfUZjoYG4uimAyUnE0irPcXyU,560
|
|
340
366
|
claude_mpm/services/core/__init__.py,sha256=evEayLlBqJvxMZhrhuK6aagXmNrKGSj8Jm9OOxKzqvU,2195
|
|
341
367
|
claude_mpm/services/core/base.py,sha256=iA-F7DgGp-FJIMvQTiHQ68RkG_k-AtUWlArJPMw6ZPk,7297
|
|
368
|
+
claude_mpm/services/core/cache_manager.py,sha256=KI70dHFuh4SgF1be49eQHJ6cP5lQnM_2-bGd6EILF5g,11594
|
|
342
369
|
claude_mpm/services/core/interfaces.py,sha256=FbLhWiOUMlvBfqjYBCeoWgsmRscQGBKteRMW-BGz4hQ,1261
|
|
370
|
+
claude_mpm/services/core/memory_manager.py,sha256=CxKyA9uquU6FPKfCz3lxlP56-2t_5hEOaeq9f7EPlWk,23953
|
|
371
|
+
claude_mpm/services/core/path_resolver.py,sha256=sY7EoZ6SZa1VTlSwn0kAylJPUhrA5Fd7AEMWy4H7iUA,17703
|
|
372
|
+
claude_mpm/services/core/service_container.py,sha256=iwfZAGTKO-pt8pNV9J3ZYDs1aPWlh79vCEnTK1cJSsc,18496
|
|
373
|
+
claude_mpm/services/core/service_interfaces.py,sha256=dlNp0K4gaMcLiNSZxXjsL-kto6vipYw87pBuFK7oVNo,10770
|
|
343
374
|
claude_mpm/services/core/interfaces/__init__.py,sha256=1oFXxW9U8rQNQGzWd9kI_FJeo4uU17-24wC63-KswWE,6398
|
|
344
375
|
claude_mpm/services/core/interfaces/agent.py,sha256=EaPYn6k9HjB2DRTiZIMJwEIBABZFvQ9fUPEtfERkIIE,10368
|
|
345
376
|
claude_mpm/services/core/interfaces/communication.py,sha256=evwtLbYCFa3Zb8kEfL10LOBVdwP4-n3a3wa7NqIHmKQ,8887
|
|
@@ -350,7 +381,7 @@ claude_mpm/services/diagnostics/diagnostic_runner.py,sha256=zPWNEV0YYmocz2S0X05h
|
|
|
350
381
|
claude_mpm/services/diagnostics/doctor_reporter.py,sha256=Z8hYLqUbGC02gL7nX9kZKbLWRzOmTORRINfCr7EHbBI,10537
|
|
351
382
|
claude_mpm/services/diagnostics/models.py,sha256=nqOQLllZyZmw3Zt5eFJfE1Al7C3Vrn3REgFlARtT3jQ,3831
|
|
352
383
|
claude_mpm/services/diagnostics/checks/__init__.py,sha256=6FGHqefdlt17BGhwHSOFFk9QCBW_LNL8hxEby-MUGmc,848
|
|
353
|
-
claude_mpm/services/diagnostics/checks/agent_check.py,sha256=
|
|
384
|
+
claude_mpm/services/diagnostics/checks/agent_check.py,sha256=JZwqu4o4Q46uk2jKKU-AS0Y_n4AjVcmq2XR61t18UKE,14022
|
|
354
385
|
claude_mpm/services/diagnostics/checks/base_check.py,sha256=FdCPk4z5wdBVR5Y4bikwVY4P4BIIXBkYCmhr-qu1ChM,1574
|
|
355
386
|
claude_mpm/services/diagnostics/checks/claude_desktop_check.py,sha256=fRM-hZM5nkM4aB6PhbydSBLpM5u80xSyLXHu0AmI4qY,11337
|
|
356
387
|
claude_mpm/services/diagnostics/checks/common_issues_check.py,sha256=Yi73_1yGNcQUCF8Jwba6xHvDHr4QbklWEbzidby-o0o,13353
|
|
@@ -431,7 +462,7 @@ claude_mpm/services/memory/__init__.py,sha256=vOZrdDfYdgjV5jhUyqGiICoywAwUNGcE_d
|
|
|
431
462
|
claude_mpm/services/memory/builder.py,sha256=SWL8TjDxriCCXK5UU1xZaFsnp6dfcARqZnQgso0R6cc,34272
|
|
432
463
|
claude_mpm/services/memory/indexed_memory.py,sha256=wtRLfAhRJb693ZKI7R5mbI_nzHJ8EvDeZCyAkE9r0TA,19492
|
|
433
464
|
claude_mpm/services/memory/optimizer.py,sha256=Ns4YDLuwBHDzhEZIaEEEpexojtCeDSaR36hSVcLPvAE,22908
|
|
434
|
-
claude_mpm/services/memory/router.py,sha256=
|
|
465
|
+
claude_mpm/services/memory/router.py,sha256=FHhoRV5Q-UwG5eUkKvF4d0Bgz5qsEiEsLx1Q7v2HMe0,31026
|
|
435
466
|
claude_mpm/services/memory/cache/__init__.py,sha256=6M6-P8ParyxX8vOgp_IxHgLMvacrQHPnXeZIvwJKtw8,351
|
|
436
467
|
claude_mpm/services/memory/cache/shared_prompt_cache.py,sha256=crnYPUT8zcS7TvoE1vW7pyaf4T77N5rJ1wUf_YQ2vvo,28704
|
|
437
468
|
claude_mpm/services/memory/cache/simple_cache.py,sha256=qsTjbcsPxj-kNfaod9VN_uE5NioIwpfkUin_mMVUJCg,10218
|
|
@@ -490,9 +521,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
|
|
|
490
521
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
491
522
|
claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
|
|
492
523
|
claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
|
|
493
|
-
claude_mpm-4.1.
|
|
494
|
-
claude_mpm-4.1.
|
|
495
|
-
claude_mpm-4.1.
|
|
496
|
-
claude_mpm-4.1.
|
|
497
|
-
claude_mpm-4.1.
|
|
498
|
-
claude_mpm-4.1.
|
|
524
|
+
claude_mpm-4.1.4.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
|
525
|
+
claude_mpm-4.1.4.dist-info/METADATA,sha256=i1zuYiyiu907sxco_kgZp8Bixd6hM-avOusLxtYaxyM,13327
|
|
526
|
+
claude_mpm-4.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
527
|
+
claude_mpm-4.1.4.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
|
|
528
|
+
claude_mpm-4.1.4.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
529
|
+
claude_mpm-4.1.4.dist-info/RECORD,,
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
"""Configuration checking functionality for run commands.
|
|
2
|
-
|
|
3
|
-
This module provides configuration health checking and memory validation.
|
|
4
|
-
Extracted from run.py to reduce complexity and improve maintainability.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
import os
|
|
8
|
-
from pathlib import Path
|
|
9
|
-
|
|
10
|
-
from ...core.config import Config
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class RunConfigChecker:
|
|
14
|
-
"""Handles configuration checking for run commands."""
|
|
15
|
-
|
|
16
|
-
def __init__(self, logger):
|
|
17
|
-
"""Initialize the config checker."""
|
|
18
|
-
self.logger = logger
|
|
19
|
-
|
|
20
|
-
def check_claude_json_memory(self, args):
|
|
21
|
-
"""Check .claude.json file size and warn about memory issues.
|
|
22
|
-
|
|
23
|
-
WHY: Large .claude.json files (>500KB) cause significant memory issues when
|
|
24
|
-
using --resume. Claude Code loads the entire conversation history into
|
|
25
|
-
memory, leading to 2GB+ memory consumption.
|
|
26
|
-
"""
|
|
27
|
-
try:
|
|
28
|
-
# Only check if --mpm-resume is being used
|
|
29
|
-
if not getattr(args, "mpm_resume", False):
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
claude_json_path = Path.cwd() / ".claude.json"
|
|
33
|
-
if not claude_json_path.exists():
|
|
34
|
-
self.logger.debug("No .claude.json file found")
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
file_size = claude_json_path.stat().st_size
|
|
38
|
-
|
|
39
|
-
def format_size(size_bytes):
|
|
40
|
-
"""Format file size in human readable format."""
|
|
41
|
-
if size_bytes < 1024:
|
|
42
|
-
return f"{size_bytes} B"
|
|
43
|
-
if size_bytes < 1024 * 1024:
|
|
44
|
-
return f"{size_bytes / 1024:.1f} KB"
|
|
45
|
-
return f"{size_bytes / (1024 * 1024):.1f} MB"
|
|
46
|
-
|
|
47
|
-
# Warn if file is larger than 500KB
|
|
48
|
-
if file_size > 500 * 1024: # 500KB threshold
|
|
49
|
-
print(
|
|
50
|
-
f"\n⚠️ WARNING: Large .claude.json file detected ({format_size(file_size)})"
|
|
51
|
-
)
|
|
52
|
-
print(" This may cause memory issues when using --mpm-resume")
|
|
53
|
-
print(
|
|
54
|
-
" 💡 Consider running 'claude-mpm cleanup-memory' to archive old conversations\n"
|
|
55
|
-
)
|
|
56
|
-
# Just warn, don't block execution
|
|
57
|
-
|
|
58
|
-
self.logger.info(f".claude.json size: {format_size(file_size)}")
|
|
59
|
-
|
|
60
|
-
except Exception as e:
|
|
61
|
-
self.logger.warning(f"Failed to check .claude.json size: {e}")
|
|
62
|
-
# Just warn, don't block execution
|
|
63
|
-
|
|
64
|
-
def check_configuration_health(self):
|
|
65
|
-
"""Check configuration health at startup and warn about issues.
|
|
66
|
-
|
|
67
|
-
WHY: Configuration errors can cause silent failures, especially for response
|
|
68
|
-
logging. This function proactively checks configuration at startup and warns
|
|
69
|
-
users about any issues, providing actionable guidance.
|
|
70
|
-
|
|
71
|
-
DESIGN DECISIONS:
|
|
72
|
-
- Non-blocking: Issues are logged as warnings, not errors
|
|
73
|
-
- Actionable: Provides specific commands to fix issues
|
|
74
|
-
- Focused: Only checks critical configuration that affects runtime
|
|
75
|
-
"""
|
|
76
|
-
try:
|
|
77
|
-
config = Config()
|
|
78
|
-
|
|
79
|
-
# Check response logging configuration
|
|
80
|
-
response_logging = config.get("response_logging", {})
|
|
81
|
-
if response_logging.get("enabled", False):
|
|
82
|
-
log_dir = response_logging.get("directory")
|
|
83
|
-
if log_dir:
|
|
84
|
-
log_path = Path(log_dir)
|
|
85
|
-
if not log_path.exists():
|
|
86
|
-
self.logger.warning(
|
|
87
|
-
f"Response logging directory does not exist: {log_path}"
|
|
88
|
-
)
|
|
89
|
-
print(f"⚠️ Response logging directory missing: {log_path}")
|
|
90
|
-
print(f" Run: mkdir -p {log_path}")
|
|
91
|
-
elif not log_path.is_dir():
|
|
92
|
-
self.logger.warning(
|
|
93
|
-
f"Response logging path is not a directory: {log_path}"
|
|
94
|
-
)
|
|
95
|
-
print(
|
|
96
|
-
f"⚠️ Response logging path is not a directory: {log_path}"
|
|
97
|
-
)
|
|
98
|
-
elif not os.access(log_path, os.W_OK):
|
|
99
|
-
self.logger.warning(
|
|
100
|
-
f"Response logging directory is not writable: {log_path}"
|
|
101
|
-
)
|
|
102
|
-
print(
|
|
103
|
-
f"⚠️ Response logging directory is not writable: {log_path}"
|
|
104
|
-
)
|
|
105
|
-
print(f" Run: chmod 755 {log_path}")
|
|
106
|
-
|
|
107
|
-
# Check agent deployment configuration
|
|
108
|
-
agent_deployment = config.get("agent_deployment", {})
|
|
109
|
-
excluded_agents = agent_deployment.get("excluded_agents", [])
|
|
110
|
-
if excluded_agents:
|
|
111
|
-
self.logger.info(f"Agent exclusions configured: {excluded_agents}")
|
|
112
|
-
|
|
113
|
-
# Check memory management configuration
|
|
114
|
-
memory_config = config.get("memory_management", {})
|
|
115
|
-
if memory_config.get("auto_cleanup", False):
|
|
116
|
-
cleanup_threshold = memory_config.get("cleanup_threshold_mb", 100)
|
|
117
|
-
if cleanup_threshold < 50:
|
|
118
|
-
self.logger.warning(
|
|
119
|
-
f"Memory cleanup threshold very low: {cleanup_threshold}MB"
|
|
120
|
-
)
|
|
121
|
-
print(
|
|
122
|
-
f"⚠️ Memory cleanup threshold is very low: {cleanup_threshold}MB"
|
|
123
|
-
)
|
|
124
|
-
print(" Consider increasing to at least 50MB")
|
|
125
|
-
|
|
126
|
-
# Check for common configuration issues
|
|
127
|
-
self._check_common_config_issues(config)
|
|
128
|
-
|
|
129
|
-
except Exception as e:
|
|
130
|
-
self.logger.warning(f"Configuration health check failed: {e}")
|
|
131
|
-
# Don't block execution for config check failures
|
|
132
|
-
|
|
133
|
-
def _check_common_config_issues(self, config):
|
|
134
|
-
"""Check for common configuration issues."""
|
|
135
|
-
try:
|
|
136
|
-
import os
|
|
137
|
-
|
|
138
|
-
# Check if config file exists and is readable
|
|
139
|
-
config_file = config.config_file
|
|
140
|
-
if config_file and Path(config_file).exists():
|
|
141
|
-
if not os.access(config_file, os.R_OK):
|
|
142
|
-
self.logger.warning(
|
|
143
|
-
f"Configuration file is not readable: {config_file}"
|
|
144
|
-
)
|
|
145
|
-
print(f"⚠️ Configuration file is not readable: {config_file}")
|
|
146
|
-
print(f" Run: chmod 644 {config_file}")
|
|
147
|
-
|
|
148
|
-
# Check for deprecated configuration keys
|
|
149
|
-
deprecated_keys = ["legacy_mode", "old_agent_format", "deprecated_logging"]
|
|
150
|
-
|
|
151
|
-
for key in deprecated_keys:
|
|
152
|
-
if config.get(key) is not None:
|
|
153
|
-
self.logger.warning(f"Deprecated configuration key found: {key}")
|
|
154
|
-
print(f"⚠️ Deprecated configuration key: {key}")
|
|
155
|
-
print(" Consider removing this key from your configuration")
|
|
156
|
-
|
|
157
|
-
except Exception as e:
|
|
158
|
-
self.logger.debug(f"Common config issues check failed: {e}")
|
|
159
|
-
# Don't propagate errors from this check
|
|
File without changes
|