claude-mpm 4.0.8__py3-none-any.whl → 4.0.10__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/BUILD_NUMBER +1 -0
- claude_mpm/VERSION +1 -1
- claude_mpm/cli/parsers/base_parser.py +34 -1
- claude_mpm/core/framework_loader.py +36 -20
- claude_mpm/scripts/socketio_daemon.py +0 -0
- claude_mpm/scripts/start_activity_logging.py +0 -0
- claude_mpm/services/version_service.py +18 -11
- {claude_mpm-4.0.8.dist-info → claude_mpm-4.0.10.dist-info}/METADATA +1 -1
- {claude_mpm-4.0.8.dist-info → claude_mpm-4.0.10.dist-info}/RECORD +11 -10
- {claude_mpm-4.0.8.dist-info → claude_mpm-4.0.10.dist-info}/WHEEL +0 -0
- {claude_mpm-4.0.8.dist-info → claude_mpm-4.0.10.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.0.8.dist-info → claude_mpm-4.0.10.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.0.8.dist-info → claude_mpm-4.0.10.dist-info}/top_level.txt +0 -0
claude_mpm/BUILD_NUMBER
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
287
|
claude_mpm/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.0.
|
|
1
|
+
4.0.10
|
|
@@ -16,6 +16,37 @@ from typing import List, Optional
|
|
|
16
16
|
from ...constants import CLICommands, CLIPrefix, LogLevel
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
def _get_enhanced_version(base_version: str) -> str:
|
|
20
|
+
"""
|
|
21
|
+
Get enhanced version string with build number if available.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
base_version: Base version string (e.g., "4.0.8")
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
Enhanced version string with build number if available
|
|
28
|
+
"""
|
|
29
|
+
try:
|
|
30
|
+
# Try to use VersionService for enhanced version display
|
|
31
|
+
from ...services.version_service import VersionService
|
|
32
|
+
|
|
33
|
+
version_service = VersionService()
|
|
34
|
+
enhanced = version_service.get_version()
|
|
35
|
+
|
|
36
|
+
# If we got an enhanced version (with build number), use it
|
|
37
|
+
# Remove the 'v' prefix since argparse will add the program name
|
|
38
|
+
if enhanced and enhanced.startswith('v'):
|
|
39
|
+
enhanced = enhanced[1:] # Remove 'v' prefix
|
|
40
|
+
|
|
41
|
+
if enhanced and enhanced != base_version:
|
|
42
|
+
return enhanced
|
|
43
|
+
except Exception:
|
|
44
|
+
# If anything fails, fall back to base version
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
return base_version
|
|
48
|
+
|
|
49
|
+
|
|
19
50
|
def add_common_arguments(parser: argparse.ArgumentParser, version: str = None) -> None:
|
|
20
51
|
"""
|
|
21
52
|
Add common arguments that apply to all commands.
|
|
@@ -29,8 +60,10 @@ def add_common_arguments(parser: argparse.ArgumentParser, version: str = None) -
|
|
|
29
60
|
"""
|
|
30
61
|
# Version - only add to main parser, not subparsers
|
|
31
62
|
if version is not None:
|
|
63
|
+
# Use enhanced version display with build number if available
|
|
64
|
+
enhanced_version = _get_enhanced_version(version)
|
|
32
65
|
parser.add_argument(
|
|
33
|
-
"--version", action="version", version=f"%(prog)s {
|
|
66
|
+
"--version", action="version", version=f"%(prog)s {enhanced_version}"
|
|
34
67
|
)
|
|
35
68
|
|
|
36
69
|
# Logging arguments
|
|
@@ -721,31 +721,47 @@ Extract tickets from these patterns:
|
|
|
721
721
|
Path.home() / ".claude" / "agents", # User's system agents
|
|
722
722
|
]
|
|
723
723
|
|
|
724
|
-
|
|
725
|
-
|
|
724
|
+
# Collect agents from all directories with proper precedence
|
|
725
|
+
# Project agents override user agents with the same name
|
|
726
|
+
all_agents = {} # key: agent_id, value: (agent_data, priority)
|
|
727
|
+
|
|
728
|
+
for priority, potential_dir in enumerate(agents_dirs):
|
|
726
729
|
if potential_dir.exists() and any(potential_dir.glob("*.md")):
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
730
|
+
self.logger.debug(f"Found agents directory at: {potential_dir}")
|
|
731
|
+
|
|
732
|
+
# Collect agents from this directory
|
|
733
|
+
for agent_file in potential_dir.glob("*.md"):
|
|
734
|
+
if agent_file.name.startswith("."):
|
|
735
|
+
continue
|
|
736
|
+
|
|
737
|
+
# Parse agent metadata
|
|
738
|
+
agent_data = self._parse_agent_metadata(agent_file)
|
|
739
|
+
if agent_data:
|
|
740
|
+
agent_id = agent_data["id"]
|
|
741
|
+
# Only add if not already present (project has priority 0, user has priority 1)
|
|
742
|
+
# Lower priority number wins (project > user)
|
|
743
|
+
if agent_id not in all_agents or priority < all_agents[agent_id][1]:
|
|
744
|
+
all_agents[agent_id] = (agent_data, priority)
|
|
745
|
+
self.logger.debug(f"Added/Updated agent {agent_id} from {potential_dir} (priority {priority})")
|
|
746
|
+
|
|
747
|
+
if not all_agents:
|
|
748
|
+
self.logger.warning(f"No agents found in any location: {agents_dirs}")
|
|
734
749
|
return self._get_fallback_capabilities()
|
|
735
|
-
|
|
750
|
+
|
|
751
|
+
# Log agent collection summary
|
|
752
|
+
project_agents = [aid for aid, (_, pri) in all_agents.items() if pri == 0]
|
|
753
|
+
user_agents = [aid for aid, (_, pri) in all_agents.items() if pri == 1]
|
|
754
|
+
|
|
755
|
+
if project_agents:
|
|
756
|
+
self.logger.info(f"Loaded {len(project_agents)} project agents: {', '.join(sorted(project_agents))}")
|
|
757
|
+
if user_agents:
|
|
758
|
+
self.logger.info(f"Loaded {len(user_agents)} user agents: {', '.join(sorted(user_agents))}")
|
|
759
|
+
|
|
736
760
|
# Build capabilities section
|
|
737
761
|
section = "\n\n## Available Agent Capabilities\n\n"
|
|
738
762
|
|
|
739
|
-
#
|
|
740
|
-
deployed_agents = []
|
|
741
|
-
for agent_file in agents_dir.glob("*.md"):
|
|
742
|
-
if agent_file.name.startswith("."):
|
|
743
|
-
continue
|
|
744
|
-
|
|
745
|
-
# Parse agent metadata
|
|
746
|
-
agent_data = self._parse_agent_metadata(agent_file)
|
|
747
|
-
if agent_data:
|
|
748
|
-
deployed_agents.append(agent_data)
|
|
763
|
+
# Extract just the agent data (drop priority info) and sort
|
|
764
|
+
deployed_agents = [agent_data for agent_data, _ in all_agents.values()]
|
|
749
765
|
|
|
750
766
|
if not deployed_agents:
|
|
751
767
|
return self._get_fallback_capabilities()
|
|
File without changes
|
|
File without changes
|
|
@@ -8,6 +8,7 @@ This service handles:
|
|
|
8
8
|
Extracted from ClaudeRunner to follow Single Responsibility Principle.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
+
from pathlib import Path
|
|
11
12
|
from typing import Any, Dict, Optional
|
|
12
13
|
|
|
13
14
|
from claude_mpm.config.paths import paths
|
|
@@ -122,17 +123,23 @@ class VersionService(BaseService, VersionServiceInterface):
|
|
|
122
123
|
Returns:
|
|
123
124
|
Build number as integer or None if not available
|
|
124
125
|
"""
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
126
|
+
# Try multiple locations for BUILD_NUMBER file
|
|
127
|
+
build_file_locations = [
|
|
128
|
+
paths.project_root / "BUILD_NUMBER", # Development location
|
|
129
|
+
Path(__file__).parent.parent / "BUILD_NUMBER", # Package location
|
|
130
|
+
]
|
|
131
|
+
|
|
132
|
+
for build_file in build_file_locations:
|
|
133
|
+
try:
|
|
134
|
+
if build_file.exists():
|
|
135
|
+
build_content = build_file.read_text().strip()
|
|
136
|
+
build_number = int(build_content)
|
|
137
|
+
self.logger.debug(f"Build number obtained from {build_file}: {build_number}")
|
|
138
|
+
return build_number
|
|
139
|
+
except (ValueError, IOError) as e:
|
|
140
|
+
self.logger.debug(f"Could not read BUILD_NUMBER from {build_file}: {e}")
|
|
141
|
+
except Exception as e:
|
|
142
|
+
self.logger.debug(f"Unexpected error reading BUILD_NUMBER from {build_file}: {e}")
|
|
136
143
|
|
|
137
144
|
return None
|
|
138
145
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
claude_mpm/
|
|
1
|
+
claude_mpm/BUILD_NUMBER,sha256=ra2KPUYLh7RotFiDIuCPImXsbEcwnA847UFNgGToN-0,4
|
|
2
|
+
claude_mpm/VERSION,sha256=Xm0N5pw0LsSAcOK92caP5MeunVmgHR49Xdv_Ai2jKCg,7
|
|
2
3
|
claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
|
|
3
4
|
claude_mpm/__main__.py,sha256=Lfi2z17WSKiMrTAhA0LNsdLJRiV-J2dAezXPt0R9Qis,643
|
|
4
5
|
claude_mpm/constants.py,sha256=cwfhDsstU5KK7esKnoq0PtSUg7LjneujdHjR-o5dX00,5597
|
|
@@ -71,7 +72,7 @@ claude_mpm/cli/commands/socketio_monitor.py,sha256=3QnUrbd7l6wZyYKA3mGoT_AbenhSg
|
|
|
71
72
|
claude_mpm/cli/commands/tickets.py,sha256=CU8_SupT6KCRKqGKAY8eE3_3K5nSvBC8PBD-WQFsdUM,25977
|
|
72
73
|
claude_mpm/cli/parsers/__init__.py,sha256=z6xJz7lumf54qkqv5hvDYr3P1ib_MqvoxSW8-gFz9Kg,1005
|
|
73
74
|
claude_mpm/cli/parsers/agents_parser.py,sha256=KK2XQjheedr2OpQ2vGfH1iOWHYLgGgpNZx0yU5un_Aw,4576
|
|
74
|
-
claude_mpm/cli/parsers/base_parser.py,sha256=
|
|
75
|
+
claude_mpm/cli/parsers/base_parser.py,sha256=DfQC148y86Alo5jYSur3cyuZMKOlWHcyYanoyjhOyfU,11486
|
|
75
76
|
claude_mpm/cli/parsers/config_parser.py,sha256=wp6NbV8_p9txP28MXFcQrri0JDIfGFM7u4aJbYJXcYQ,2699
|
|
76
77
|
claude_mpm/cli/parsers/mcp_parser.py,sha256=SUwOagXlNP3qbRUvjuNU17plTyCD2ppJXBIPLQ0rmvw,5050
|
|
77
78
|
claude_mpm/cli/parsers/memory_parser.py,sha256=ZwCDxJEgp-w03L-1tZsWTgisiwamP42s424bA5bvDJc,4760
|
|
@@ -101,7 +102,7 @@ claude_mpm/core/constants.py,sha256=6e_IMQMOeW3oMgUsLFGvbqzM8Sf4fDYMpn3rGpfWVhM,
|
|
|
101
102
|
claude_mpm/core/container.py,sha256=SERH3YOH9BXtHbv-kWu0bViNpdcGccDXR0NXFXbw1Pc,32155
|
|
102
103
|
claude_mpm/core/exceptions.py,sha256=lNVLqVuRjygHe89NJg1rPAyevVdzpLOKgHFMQtGSxdA,19654
|
|
103
104
|
claude_mpm/core/factories.py,sha256=A7WcjYWjhkc-tzUnef0YaW0Jj8oxMP-7_g2jIj1XYa8,7265
|
|
104
|
-
claude_mpm/core/framework_loader.py,sha256=
|
|
105
|
+
claude_mpm/core/framework_loader.py,sha256=E_l5hrqwrGvAWCE-CHwjqAQErjxdzwgJ7AY31au5Hhk,42122
|
|
105
106
|
claude_mpm/core/hook_manager.py,sha256=N-54QwNsyrUZSrH533HAo6hlJKPFbgMeDirg92H8en8,11014
|
|
106
107
|
claude_mpm/core/hook_performance_config.py,sha256=Cqf-89mjiLlFJ-v4PhxfzsaOVovYYQa5pa-RMm42Ki8,5748
|
|
107
108
|
claude_mpm/core/injectable_service.py,sha256=HXuviYX-h0sNxOFzgZiYjf-gLDUnQIeG-0-KuWdfCzk,7397
|
|
@@ -219,7 +220,7 @@ claude_mpm/services/subprocess_launcher_service.py,sha256=ZfMPJ2TvHP3SIho5wtCiBC
|
|
|
219
220
|
claude_mpm/services/system_instructions_service.py,sha256=OVrTABcN99Hb7hcr95UEObUyLj45CVj_-aTvDsfioLY,10058
|
|
220
221
|
claude_mpm/services/ticket_manager.py,sha256=SJCaVqDnsv-ZyjBZ38zwR-GhoCMTXhr0HF7fJjP7dYo,606
|
|
221
222
|
claude_mpm/services/utility_service.py,sha256=zAt1EaTXfsyXymRD6UTuFFAM6kZORkdGaKFV0jhBGlI,8465
|
|
222
|
-
claude_mpm/services/version_service.py,sha256=
|
|
223
|
+
claude_mpm/services/version_service.py,sha256=MG88cKmDQTcxVKXB_X0dI1CNNvXYZoxACfJii2cMlVE,10159
|
|
223
224
|
claude_mpm/services/agents/__init__.py,sha256=ExaFbDQt4cf1bpLvrVHkZA-ev8chEBeZPI35AQRGh_E,2175
|
|
224
225
|
claude_mpm/services/agents/deployment/__init__.py,sha256=d9l1uaf-G7v_mCxcz8OUQMFtgG8-JZviqXacOOlaU4g,539
|
|
225
226
|
claude_mpm/services/agents/deployment/agent_config_provider.py,sha256=iH_N4Qi7gq_Pc4OYqsnaaX5KPVMlJ2dYkQS_PEVmLtY,13312
|
|
@@ -409,9 +410,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=e74VlIPozCljZss_0SwLO3J1ZuIKRT9FrrFi
|
|
|
409
410
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
410
411
|
claude_mpm/validation/agent_validator.py,sha256=szbK9d29v_T6xE_KvW845WLKXbS_yYpXQscrSrSeldI,20937
|
|
411
412
|
claude_mpm/validation/frontmatter_validator.py,sha256=Q_aTyjigfKZQG7eSwLtwMfd0h_eyS9FQAm59ZFf5VYA,7036
|
|
412
|
-
claude_mpm-4.0.
|
|
413
|
-
claude_mpm-4.0.
|
|
414
|
-
claude_mpm-4.0.
|
|
415
|
-
claude_mpm-4.0.
|
|
416
|
-
claude_mpm-4.0.
|
|
417
|
-
claude_mpm-4.0.
|
|
413
|
+
claude_mpm-4.0.10.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
|
414
|
+
claude_mpm-4.0.10.dist-info/METADATA,sha256=sCeWoa3vLWYxaX2_PRoWeyQraB037QdGukeFuEELcSc,11819
|
|
415
|
+
claude_mpm-4.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
416
|
+
claude_mpm-4.0.10.dist-info/entry_points.txt,sha256=uafLVeHm4AXrzvdR77fXO3a2MmvvfGtmVU2iY8uIPt8,403
|
|
417
|
+
claude_mpm-4.0.10.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
418
|
+
claude_mpm-4.0.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|