claude-mpm 4.1.4__py3-none-any.whl → 4.1.5__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/cli/commands/tickets.py +365 -784
- claude_mpm/core/output_style_manager.py +24 -0
- claude_mpm/core/unified_agent_registry.py +46 -15
- claude_mpm/services/agents/deployment/agent_discovery_service.py +12 -3
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +172 -233
- claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +575 -0
- claude_mpm/services/agents/deployment/agent_operation_service.py +573 -0
- claude_mpm/services/agents/deployment/agent_record_service.py +419 -0
- claude_mpm/services/agents/deployment/agent_state_service.py +381 -0
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +4 -2
- claude_mpm/services/infrastructure/__init__.py +31 -5
- claude_mpm/services/infrastructure/monitoring/__init__.py +43 -0
- claude_mpm/services/infrastructure/monitoring/aggregator.py +437 -0
- claude_mpm/services/infrastructure/monitoring/base.py +130 -0
- claude_mpm/services/infrastructure/monitoring/legacy.py +203 -0
- claude_mpm/services/infrastructure/monitoring/network.py +218 -0
- claude_mpm/services/infrastructure/monitoring/process.py +342 -0
- claude_mpm/services/infrastructure/monitoring/resources.py +243 -0
- claude_mpm/services/infrastructure/monitoring/service.py +367 -0
- claude_mpm/services/infrastructure/monitoring.py +67 -1030
- claude_mpm/services/project/analyzer.py +13 -4
- claude_mpm/services/project/analyzer_refactored.py +450 -0
- claude_mpm/services/project/analyzer_v2.py +566 -0
- claude_mpm/services/project/architecture_analyzer.py +461 -0
- claude_mpm/services/project/dependency_analyzer.py +462 -0
- claude_mpm/services/project/language_analyzer.py +265 -0
- claude_mpm/services/project/metrics_collector.py +410 -0
- claude_mpm/services/ticket_manager.py +5 -1
- claude_mpm/services/ticket_services/__init__.py +26 -0
- claude_mpm/services/ticket_services/crud_service.py +328 -0
- claude_mpm/services/ticket_services/formatter_service.py +290 -0
- claude_mpm/services/ticket_services/search_service.py +324 -0
- claude_mpm/services/ticket_services/validation_service.py +303 -0
- claude_mpm/services/ticket_services/workflow_service.py +244 -0
- {claude_mpm-4.1.4.dist-info → claude_mpm-4.1.5.dist-info}/METADATA +1 -1
- {claude_mpm-4.1.4.dist-info → claude_mpm-4.1.5.dist-info}/RECORD +41 -17
- {claude_mpm-4.1.4.dist-info → claude_mpm-4.1.5.dist-info}/WHEEL +0 -0
- {claude_mpm-4.1.4.dist-info → claude_mpm-4.1.5.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.1.4.dist-info → claude_mpm-4.1.5.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.1.4.dist-info → claude_mpm-4.1.5.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Workflow service for ticket state transitions.
|
|
3
|
+
|
|
4
|
+
WHY: Manages ticket workflow states and transitions, ensuring valid
|
|
5
|
+
state changes and maintaining workflow integrity.
|
|
6
|
+
|
|
7
|
+
DESIGN DECISIONS:
|
|
8
|
+
- Enforces valid state transitions
|
|
9
|
+
- Handles workflow-specific operations (comments, notifications)
|
|
10
|
+
- Provides workflow history tracking
|
|
11
|
+
- Abstracts aitrackdown workflow commands
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import subprocess
|
|
15
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
16
|
+
|
|
17
|
+
from ...core.logger import get_logger
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class TicketWorkflowService:
|
|
21
|
+
"""Service for managing ticket workflow states."""
|
|
22
|
+
|
|
23
|
+
# Valid workflow transitions
|
|
24
|
+
WORKFLOW_TRANSITIONS = {
|
|
25
|
+
"todo": ["in_progress", "blocked"],
|
|
26
|
+
"in_progress": ["ready", "blocked", "todo"],
|
|
27
|
+
"ready": ["tested", "in_progress", "blocked"],
|
|
28
|
+
"tested": ["done", "ready", "blocked"],
|
|
29
|
+
"done": ["tested", "ready"], # Can reopen
|
|
30
|
+
"blocked": ["todo", "in_progress", "ready"],
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
# Status to workflow state mapping
|
|
34
|
+
STATUS_TO_WORKFLOW = {
|
|
35
|
+
"open": "todo",
|
|
36
|
+
"in_progress": "in_progress",
|
|
37
|
+
"ready": "ready",
|
|
38
|
+
"tested": "tested",
|
|
39
|
+
"done": "done",
|
|
40
|
+
"closed": "done",
|
|
41
|
+
"blocked": "blocked",
|
|
42
|
+
"waiting": "blocked",
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
def __init__(self):
|
|
46
|
+
"""Initialize the workflow service."""
|
|
47
|
+
self.logger = get_logger("services.ticket_workflow")
|
|
48
|
+
|
|
49
|
+
def transition_ticket(
|
|
50
|
+
self,
|
|
51
|
+
ticket_id: str,
|
|
52
|
+
new_state: str,
|
|
53
|
+
comment: Optional[str] = None,
|
|
54
|
+
force: bool = False,
|
|
55
|
+
) -> Dict[str, Any]:
|
|
56
|
+
"""
|
|
57
|
+
Transition a ticket to a new workflow state.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
ticket_id: ID of the ticket
|
|
61
|
+
new_state: Target workflow state
|
|
62
|
+
comment: Optional comment for the transition
|
|
63
|
+
force: Force transition even if not normally allowed
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Dict with success status and message
|
|
67
|
+
"""
|
|
68
|
+
try:
|
|
69
|
+
# Validate the transition if not forced
|
|
70
|
+
if not force:
|
|
71
|
+
valid, error = self.validate_transition(ticket_id, new_state)
|
|
72
|
+
if not valid:
|
|
73
|
+
return {"success": False, "error": error}
|
|
74
|
+
|
|
75
|
+
# Use aitrackdown CLI for the transition
|
|
76
|
+
result = self._transition_via_aitrackdown(ticket_id, new_state, comment)
|
|
77
|
+
|
|
78
|
+
if result["success"]:
|
|
79
|
+
# Log successful transition
|
|
80
|
+
self.logger.info(f"Transitioned {ticket_id} to {new_state}")
|
|
81
|
+
|
|
82
|
+
return result
|
|
83
|
+
|
|
84
|
+
except Exception as e:
|
|
85
|
+
self.logger.error(f"Error transitioning ticket {ticket_id}: {e}")
|
|
86
|
+
return {"success": False, "error": str(e)}
|
|
87
|
+
|
|
88
|
+
def _transition_via_aitrackdown(
|
|
89
|
+
self, ticket_id: str, state: str, comment: Optional[str]
|
|
90
|
+
) -> Dict[str, Any]:
|
|
91
|
+
"""Transition ticket using aitrackdown CLI."""
|
|
92
|
+
try:
|
|
93
|
+
cmd = ["aitrackdown", "transition", ticket_id, state]
|
|
94
|
+
|
|
95
|
+
if comment:
|
|
96
|
+
cmd.extend(["--comment", comment])
|
|
97
|
+
|
|
98
|
+
subprocess.run(cmd, check=True, capture_output=True, text=True)
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
"success": True,
|
|
102
|
+
"message": f"Updated workflow state for {ticket_id} to: {state}",
|
|
103
|
+
}
|
|
104
|
+
except subprocess.CalledProcessError as e:
|
|
105
|
+
self.logger.error(f"Failed to transition via CLI: {e}")
|
|
106
|
+
return {
|
|
107
|
+
"success": False,
|
|
108
|
+
"error": f"Failed to update workflow state for ticket: {ticket_id}",
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
def validate_transition(
|
|
112
|
+
self, ticket_id: str, new_state: str
|
|
113
|
+
) -> Tuple[bool, Optional[str]]:
|
|
114
|
+
"""
|
|
115
|
+
Validate if a workflow transition is allowed.
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
Tuple of (is_valid, error_message)
|
|
119
|
+
"""
|
|
120
|
+
# For now, we assume all transitions are valid since we don't
|
|
121
|
+
# have access to current state without fetching the ticket
|
|
122
|
+
# In a real implementation, this would check current state
|
|
123
|
+
|
|
124
|
+
if new_state not in self.WORKFLOW_TRANSITIONS:
|
|
125
|
+
return False, f"Invalid workflow state: {new_state}"
|
|
126
|
+
|
|
127
|
+
# TODO: Fetch current state and validate transition
|
|
128
|
+
# current_state = self._get_current_state(ticket_id)
|
|
129
|
+
# if new_state not in self.WORKFLOW_TRANSITIONS.get(current_state, []):
|
|
130
|
+
# return False, f"Cannot transition from {current_state} to {new_state}"
|
|
131
|
+
|
|
132
|
+
return True, None
|
|
133
|
+
|
|
134
|
+
def add_comment(self, ticket_id: str, comment: str) -> Dict[str, Any]:
|
|
135
|
+
"""
|
|
136
|
+
Add a comment to a ticket.
|
|
137
|
+
|
|
138
|
+
Args:
|
|
139
|
+
ticket_id: ID of the ticket
|
|
140
|
+
comment: Comment text
|
|
141
|
+
|
|
142
|
+
Returns:
|
|
143
|
+
Dict with success status and message
|
|
144
|
+
"""
|
|
145
|
+
try:
|
|
146
|
+
cmd = ["aitrackdown", "comment", ticket_id, comment]
|
|
147
|
+
|
|
148
|
+
subprocess.run(cmd, check=True, capture_output=True, text=True)
|
|
149
|
+
|
|
150
|
+
return {"success": True, "message": f"Added comment to ticket: {ticket_id}"}
|
|
151
|
+
except subprocess.CalledProcessError as e:
|
|
152
|
+
self.logger.error(f"Failed to add comment: {e}")
|
|
153
|
+
return {
|
|
154
|
+
"success": False,
|
|
155
|
+
"error": f"Failed to add comment to ticket: {ticket_id}",
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
def get_workflow_states(self) -> List[str]:
|
|
159
|
+
"""
|
|
160
|
+
Get list of all valid workflow states.
|
|
161
|
+
|
|
162
|
+
Returns:
|
|
163
|
+
List of workflow state names
|
|
164
|
+
"""
|
|
165
|
+
return list(self.WORKFLOW_TRANSITIONS.keys())
|
|
166
|
+
|
|
167
|
+
def get_valid_transitions(self, current_state: str) -> List[str]:
|
|
168
|
+
"""
|
|
169
|
+
Get valid transitions from a given state.
|
|
170
|
+
|
|
171
|
+
Args:
|
|
172
|
+
current_state: Current workflow state
|
|
173
|
+
|
|
174
|
+
Returns:
|
|
175
|
+
List of valid target states
|
|
176
|
+
"""
|
|
177
|
+
return self.WORKFLOW_TRANSITIONS.get(current_state, [])
|
|
178
|
+
|
|
179
|
+
def map_status_to_workflow(self, status: str) -> str:
|
|
180
|
+
"""
|
|
181
|
+
Map a ticket status to a workflow state.
|
|
182
|
+
|
|
183
|
+
Args:
|
|
184
|
+
status: Ticket status
|
|
185
|
+
|
|
186
|
+
Returns:
|
|
187
|
+
Corresponding workflow state
|
|
188
|
+
"""
|
|
189
|
+
return self.STATUS_TO_WORKFLOW.get(status, "todo")
|
|
190
|
+
|
|
191
|
+
def bulk_transition(
|
|
192
|
+
self, ticket_ids: List[str], new_state: str, comment: Optional[str] = None
|
|
193
|
+
) -> Dict[str, Any]:
|
|
194
|
+
"""
|
|
195
|
+
Transition multiple tickets to a new state.
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
ticket_ids: List of ticket IDs
|
|
199
|
+
new_state: Target workflow state
|
|
200
|
+
comment: Optional comment for all transitions
|
|
201
|
+
|
|
202
|
+
Returns:
|
|
203
|
+
Dict with results for each ticket
|
|
204
|
+
"""
|
|
205
|
+
results = {"succeeded": [], "failed": [], "total": len(ticket_ids)}
|
|
206
|
+
|
|
207
|
+
for ticket_id in ticket_ids:
|
|
208
|
+
result = self.transition_ticket(ticket_id, new_state, comment)
|
|
209
|
+
|
|
210
|
+
if result["success"]:
|
|
211
|
+
results["succeeded"].append(ticket_id)
|
|
212
|
+
else:
|
|
213
|
+
results["failed"].append(
|
|
214
|
+
{
|
|
215
|
+
"ticket_id": ticket_id,
|
|
216
|
+
"error": result.get("error", "Unknown error"),
|
|
217
|
+
}
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
return {"success": len(results["failed"]) == 0, "results": results}
|
|
221
|
+
|
|
222
|
+
def get_workflow_summary(self, tickets: List[Dict[str, Any]]) -> Dict[str, int]:
|
|
223
|
+
"""
|
|
224
|
+
Get summary of tickets by workflow state.
|
|
225
|
+
|
|
226
|
+
Args:
|
|
227
|
+
tickets: List of ticket dictionaries
|
|
228
|
+
|
|
229
|
+
Returns:
|
|
230
|
+
Dict mapping workflow states to counts
|
|
231
|
+
"""
|
|
232
|
+
summary = dict.fromkeys(self.WORKFLOW_TRANSITIONS.keys(), 0)
|
|
233
|
+
summary["unknown"] = 0
|
|
234
|
+
|
|
235
|
+
for ticket in tickets:
|
|
236
|
+
status = ticket.get("status", "unknown")
|
|
237
|
+
workflow_state = self.map_status_to_workflow(status)
|
|
238
|
+
|
|
239
|
+
if workflow_state in summary:
|
|
240
|
+
summary[workflow_state] += 1
|
|
241
|
+
else:
|
|
242
|
+
summary["unknown"] += 1
|
|
243
|
+
|
|
244
|
+
return summary
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
|
2
|
-
claude_mpm/VERSION,sha256=
|
|
2
|
+
claude_mpm/VERSION,sha256=czjCYBagmbs_O-Ak6fxF_2zjRM56SKuPyTJA1i1M2lw,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
|
|
@@ -82,7 +82,7 @@ claude_mpm/cli/commands/memory.py,sha256=Yzfs3_oiKciv3sfOoDm2lJL4M9idG7ARV3-sNw1
|
|
|
82
82
|
claude_mpm/cli/commands/monitor.py,sha256=F4HY3x1A6hJgtHJlLssIWJFgND1xFGfzZSLU0ylwHpM,27308
|
|
83
83
|
claude_mpm/cli/commands/run.py,sha256=7jvKy4emK8szoHR9nEigXnOrkugx4MduLmUadfWnUv0,43113
|
|
84
84
|
claude_mpm/cli/commands/socketio_monitor.py,sha256=GHHY5pKg0XCffoqLoO0l0Nxa9HQY4gdrpYebLVahzl4,9540
|
|
85
|
-
claude_mpm/cli/commands/tickets.py,sha256=
|
|
85
|
+
claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
|
|
86
86
|
claude_mpm/cli/parsers/__init__.py,sha256=f0Fm1DDXorlVOZPLxUpjC-GIvLh01G-FZOK7TEV1L3I,1005
|
|
87
87
|
claude_mpm/cli/parsers/agent_manager_parser.py,sha256=8HuGpTnHSOnTOqOHriBTzi8EzKLMSfqH2eFHs0dEuu4,8009
|
|
88
88
|
claude_mpm/cli/parsers/agents_parser.py,sha256=DxAZMotptyaJbROqbRbTipOKLLJ96ATrXhwiFK6Dbm0,5450
|
|
@@ -136,7 +136,7 @@ claude_mpm/core/mixins.py,sha256=vmZ7Nu2ZOnKjbhN07Ixk4noIej9nsJiknrp-Sclfu0A,534
|
|
|
136
136
|
claude_mpm/core/oneshot_session.py,sha256=QkSw-gs7tTQkdKQiZh7mbia5hc5PMt_xaMoDY-9_bZk,17693
|
|
137
137
|
claude_mpm/core/optimized_agent_loader.py,sha256=Suwu3jXf3g8s6Y_HMK8ruPH7mkUQzTIAUQsUKy5HfIk,15788
|
|
138
138
|
claude_mpm/core/optimized_startup.py,sha256=bvCLSmUstzObl5XxA252EWXzcmwFSYvKHazKgttMhmo,15478
|
|
139
|
-
claude_mpm/core/output_style_manager.py,sha256=
|
|
139
|
+
claude_mpm/core/output_style_manager.py,sha256=LjEADIvCZr8iGL1RGwh15EDDVdkOCgTepIN2TDY50ho,20729
|
|
140
140
|
claude_mpm/core/pm_hook_interceptor.py,sha256=vidXG7BSrsMH4eORrBrBGpiZZJGlJ8DjhK1JHqJrhlo,7099
|
|
141
141
|
claude_mpm/core/service_registry.py,sha256=l0vnKNsxZVlKH-_g-WXRAIoQRqyqsKdTyo5_EAwYW1c,11580
|
|
142
142
|
claude_mpm/core/session_manager.py,sha256=wlrPnoFJMDbFz1_J_FNTHmCL0WQwgA4jkdUYI3LWkBo,11943
|
|
@@ -144,7 +144,7 @@ claude_mpm/core/socketio_pool.py,sha256=10OdPPhnUJUJSVS8-nUYmHEfylYvOuTdmTUeaQGU
|
|
|
144
144
|
claude_mpm/core/tool_access_control.py,sha256=9PiLGhe7bN9yMIqDPqIVIPUmxKsPwb5PUgcOFSl1QBk,6396
|
|
145
145
|
claude_mpm/core/types.py,sha256=RQ6MQlV_G3ohLPSdQRRAlQkoCt1BuLK-vnl2JbuFQYA,7835
|
|
146
146
|
claude_mpm/core/typing_utils.py,sha256=MXPPuTYT6uY-a2T-G8gouoDXn7rRPAqE3xNQ0vP1Lfo,13244
|
|
147
|
-
claude_mpm/core/unified_agent_registry.py,sha256=
|
|
147
|
+
claude_mpm/core/unified_agent_registry.py,sha256=wAJp7mI9s1t14IseL1nwzsTd4BecVJz3Tuz0_4sBn34,25656
|
|
148
148
|
claude_mpm/core/unified_config.py,sha256=MptDUDXv0scgo1zxrGQYg19A0xDHDzPFJPlYeVJPZWA,19659
|
|
149
149
|
claude_mpm/core/unified_paths.py,sha256=tBb-1QCHDpmXYn1gdget8y-5fVE-vEtS1HWABVBN-J4,35958
|
|
150
150
|
claude_mpm/core/shared/__init__.py,sha256=1mPHE8qCOAgJPgUZ6bYNO27xhnPN0h9ChHiMcqF1vQc,401
|
|
@@ -259,7 +259,7 @@ claude_mpm/services/socketio_client_manager.py,sha256=9TDSdiaScEbWdJpmdVUbiwzlcu
|
|
|
259
259
|
claude_mpm/services/socketio_server.py,sha256=yE14_4pHERXBC5L1WQCpIBHuy0tpklsUY_icyl-nLkg,3033
|
|
260
260
|
claude_mpm/services/subprocess_launcher_service.py,sha256=b8FeO0kh6AblWqnFX4XtSxEw93tENCczVvK0OjbYvpk,10999
|
|
261
261
|
claude_mpm/services/system_instructions_service.py,sha256=Lk4SWNVfMZ0XaN-2OTGdWu3hCkaHwy98vuFOBpiZQGA,9994
|
|
262
|
-
claude_mpm/services/ticket_manager.py,sha256=
|
|
262
|
+
claude_mpm/services/ticket_manager.py,sha256=LpmbUFo7OkG48leZscHIvNoHY_thLWh2wquFxSfDg-o,785
|
|
263
263
|
claude_mpm/services/utility_service.py,sha256=Cp9od5ggkElK6S-8cKxgXPOu5B17o3zfte6iiTL6HL8,8367
|
|
264
264
|
claude_mpm/services/version_service.py,sha256=Ql2HKB9OoHGdqkfWyFFLSSVBwShap0dFIjbmTXrf6dE,10163
|
|
265
265
|
claude_mpm/services/agents/__init__.py,sha256=8cRLDOXq_CGH3uVl6Uk816wsx7VY8HSDOYms2MPaFBA,2175
|
|
@@ -269,14 +269,18 @@ claude_mpm/services/agents/deployment/agent_config_provider.py,sha256=_voUMuk_6I
|
|
|
269
269
|
claude_mpm/services/agents/deployment/agent_configuration_manager.py,sha256=5nf69hfo7lUa3_55sDcU5WfpzBtOZCMSTPYGr2dlIdY,12173
|
|
270
270
|
claude_mpm/services/agents/deployment/agent_definition_factory.py,sha256=DaJ__b3-ADinfd-qNnW6LKWfclOaZbkBBcfuHgqlUic,2697
|
|
271
271
|
claude_mpm/services/agents/deployment/agent_deployment.py,sha256=6YFg1ZcAMI_cb7xGhSm0e3qdPOrVNoQ_-o1qoc_PM2k,35514
|
|
272
|
-
claude_mpm/services/agents/deployment/agent_discovery_service.py,sha256=
|
|
272
|
+
claude_mpm/services/agents/deployment/agent_discovery_service.py,sha256=931oHXx6mlXw-ZJ1xKofl8gsJmdJ5cuOzmAcdzik4Sw,13919
|
|
273
273
|
claude_mpm/services/agents/deployment/agent_environment_manager.py,sha256=kjMiLyZYHs-s9pVdtj4av4hJW0gNXnD7lZz2CJpxmZI,9863
|
|
274
274
|
claude_mpm/services/agents/deployment/agent_filesystem_manager.py,sha256=kstcGvufqF3cmmkJ_hDIHutPbIrMo_ZsGCKlIKmNbMA,12904
|
|
275
275
|
claude_mpm/services/agents/deployment/agent_format_converter.py,sha256=iR-uciEkUiFQ4nR3ciEbS1uodfqTszdjjLzOyJs4KG4,15640
|
|
276
276
|
claude_mpm/services/agents/deployment/agent_frontmatter_validator.py,sha256=H0yhsLbjVpwKNTUdGOgXBE-2gypT8-zFHqOBdv2XLPQ,7119
|
|
277
|
-
claude_mpm/services/agents/deployment/agent_lifecycle_manager.py,sha256=
|
|
277
|
+
claude_mpm/services/agents/deployment/agent_lifecycle_manager.py,sha256=JcFYvLPz2Mp3q9th5_9DUVyZucHGUE6cHlubNzw8BgM,37833
|
|
278
|
+
claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py,sha256=VfzhWm1MzcmmC0avwSWUSaylZxUN72oSH2FCOE6aLn0,21027
|
|
278
279
|
claude_mpm/services/agents/deployment/agent_metrics_collector.py,sha256=LUCvBve2_6qmixEJvsVRbDMsIJ_qlsS7_crJxMuqtlA,10024
|
|
280
|
+
claude_mpm/services/agents/deployment/agent_operation_service.py,sha256=wPoGYf3FU6OS0aaIgotsKGVRwiic1X4_20G2gC1RwGU,20390
|
|
281
|
+
claude_mpm/services/agents/deployment/agent_record_service.py,sha256=nYpfIuyDhLnzG3EUywDHgwpUerFWPyjgvsjIiSWUiEI,14064
|
|
279
282
|
claude_mpm/services/agents/deployment/agent_restore_handler.py,sha256=YDPVY4m_4l5wSFq9fxsTqm0ixX8AeTyzERh-PtabuUY,3101
|
|
283
|
+
claude_mpm/services/agents/deployment/agent_state_service.py,sha256=yjuVG-rwyXBS0T8yKfrx1QTOSmfB_Ejvm-0QLjBNDDI,11772
|
|
280
284
|
claude_mpm/services/agents/deployment/agent_template_builder.py,sha256=sUBUQ0pjSPM_C6iEthdA8uVBvLBXxXKhaBPZdibIjXg,15513
|
|
281
285
|
claude_mpm/services/agents/deployment/agent_validator.py,sha256=kXzOmkUzMdr_m4Feys5FfNLKvaIttFeOqZ_KaBlIhwY,12562
|
|
282
286
|
claude_mpm/services/agents/deployment/agent_version_manager.py,sha256=RtU3zrz9VJmQdNoPHQ1FA3ewhOlUmbqGAxqMel-7YcY,10910
|
|
@@ -291,7 +295,7 @@ claude_mpm/services/agents/deployment/deployment_wrapper.py,sha256=qu2U43LBmAGhG
|
|
|
291
295
|
claude_mpm/services/agents/deployment/interface_adapter.py,sha256=mOsQ5IJHLEezq8vCoGSY5OarxolDw1B6Yr0dAYUMMVE,8078
|
|
292
296
|
claude_mpm/services/agents/deployment/lifecycle_health_checker.py,sha256=2dphAvYRABNlsvi3XfVwS8kvv-YURNEwPBVtCc1g3Zc,3164
|
|
293
297
|
claude_mpm/services/agents/deployment/lifecycle_performance_tracker.py,sha256=lK_yg0uRL55opUoecOJBL83Tjj6Pu_z4-4EYWPeN6tM,4336
|
|
294
|
-
claude_mpm/services/agents/deployment/multi_source_deployment_service.py,sha256=
|
|
298
|
+
claude_mpm/services/agents/deployment/multi_source_deployment_service.py,sha256=Feq2YRGAIjg-6ckFv4Wr0Ugo-mYgsv4iS-zppNJp6eU,39341
|
|
295
299
|
claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py,sha256=5-StpaZYqVvm-WrmLMsoIp85WFYL2p0VLWQOfZEn8jU,11707
|
|
296
300
|
claude_mpm/services/agents/deployment/single_agent_deployer.py,sha256=6QtHP-y4T_-UXYXYvdQgdIooOfjnC5NArlbkUo4EPl0,11492
|
|
297
301
|
claude_mpm/services/agents/deployment/system_instructions_deployer.py,sha256=SCBBXleIn322X_w-swOHjO22J3HCxSHGkd3V-rSbbOs,4060
|
|
@@ -425,11 +429,19 @@ claude_mpm/services/framework_claude_md_generator/section_generators/role_design
|
|
|
425
429
|
claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py,sha256=wzqpNwsrjcDobjot71wSa4brtrmOSoNfolHnKAOR9v0,4122
|
|
426
430
|
claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py,sha256=qg3tPG8RBtXHXPqmkdmgJaoBWWaYyTEoBPqm7ib4OP8,5765
|
|
427
431
|
claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py,sha256=Omhcjcvw-sNjxcyqbaN4RaABV4JNKCOplk9pzgi-fmo,1892
|
|
428
|
-
claude_mpm/services/infrastructure/__init__.py,sha256
|
|
432
|
+
claude_mpm/services/infrastructure/__init__.py,sha256=dKXYEeDbAHMImXmefgcHrlTdcg3E7OlWvyC3mEE2DLg,1361
|
|
429
433
|
claude_mpm/services/infrastructure/context_preservation.py,sha256=QzN0SOaFx7PndLZTNn2rO8G6XGnbZvasm7Y-zOU0x-E,21060
|
|
430
434
|
claude_mpm/services/infrastructure/daemon_manager.py,sha256=ZfEmSSwyP7nYRfdpEl7GdNuFOxPV99XlGnSTg_akEHI,8555
|
|
431
435
|
claude_mpm/services/infrastructure/logging.py,sha256=3bYMJi-qzpPNgs1-Epfp6EAuRm5iP-hypIluSpgy0Eg,6473
|
|
432
|
-
claude_mpm/services/infrastructure/monitoring.py,sha256=
|
|
436
|
+
claude_mpm/services/infrastructure/monitoring.py,sha256=gxM2x3F4uvSlw_9YdHKNHGScWp5f6sHiRjk-bN0Xegk,2205
|
|
437
|
+
claude_mpm/services/infrastructure/monitoring/__init__.py,sha256=LoekELvXE7kYGQZkaBQWEb9PzbhiOOVuSC9mv2ChIu8,1066
|
|
438
|
+
claude_mpm/services/infrastructure/monitoring/aggregator.py,sha256=vvPSDrvJmO2l9QhUajz4ZxBNT1Yk3XOVp-8wZKxv_wc,15201
|
|
439
|
+
claude_mpm/services/infrastructure/monitoring/base.py,sha256=f4sOTWbfH5p9P7n4N2iOVe3GWGxhqlLv6UD1LdKzV70,3864
|
|
440
|
+
claude_mpm/services/infrastructure/monitoring/legacy.py,sha256=Na1nomigLkJ25pdmofQVBWEca7tDxUxfsDmp2Hy9nPc,7171
|
|
441
|
+
claude_mpm/services/infrastructure/monitoring/network.py,sha256=L874kGjryP_R8tDwz4jgN7MGlfGrDJGa2tM8zVbtrEk,6933
|
|
442
|
+
claude_mpm/services/infrastructure/monitoring/process.py,sha256=_gh124mIemvHZE2wV1VWuMf-u7qI3VpXAUSSmuCOIJY,11054
|
|
443
|
+
claude_mpm/services/infrastructure/monitoring/resources.py,sha256=7Mt9zvNAYGf7OTLBUFpGoDQncCuTYkpODRKV42T6wyI,7665
|
|
444
|
+
claude_mpm/services/infrastructure/monitoring/service.py,sha256=guYB6rJtU18T2kPhZbKKg85l96lm2f7XVtPnBt1O3So,12613
|
|
433
445
|
claude_mpm/services/mcp_gateway/__init__.py,sha256=cRO71-BE1meBbxJgurS9_4NM1cRlcxJ0w0JENFVUW_I,4465
|
|
434
446
|
claude_mpm/services/mcp_gateway/auto_configure.py,sha256=4Oea5cwzCXMXn216640mEFxZt0FmrbBdvX4DJqdeWek,12040
|
|
435
447
|
claude_mpm/services/mcp_gateway/main.py,sha256=D7jZ1hSfo8ovq8xu8lhHvdmUYIU8DpvRWZAsqU2H5Xc,15748
|
|
@@ -467,7 +479,13 @@ claude_mpm/services/memory/cache/__init__.py,sha256=6M6-P8ParyxX8vOgp_IxHgLMvacr
|
|
|
467
479
|
claude_mpm/services/memory/cache/shared_prompt_cache.py,sha256=crnYPUT8zcS7TvoE1vW7pyaf4T77N5rJ1wUf_YQ2vvo,28704
|
|
468
480
|
claude_mpm/services/memory/cache/simple_cache.py,sha256=qsTjbcsPxj-kNfaod9VN_uE5NioIwpfkUin_mMVUJCg,10218
|
|
469
481
|
claude_mpm/services/project/__init__.py,sha256=IUclN1L7ChHCNya7PJiVxu4nttxsrj3WRIpwyA1A_hw,512
|
|
470
|
-
claude_mpm/services/project/analyzer.py,sha256=
|
|
482
|
+
claude_mpm/services/project/analyzer.py,sha256=VHlLrP8-S5gr12w4Yzs7-6d7LWdJKISHPCFSG7SDiQU,38434
|
|
483
|
+
claude_mpm/services/project/analyzer_refactored.py,sha256=USYEdPAhSoGPqZCpaT89Dw6ElFW_L1yXSURheQjAhLA,18243
|
|
484
|
+
claude_mpm/services/project/analyzer_v2.py,sha256=YZ_AZPXST-ZcvnJ1yXDWUm2oXuermpkk3e5E8lHBoGE,24655
|
|
485
|
+
claude_mpm/services/project/architecture_analyzer.py,sha256=X79O_BAARrPLsONknT5RHRrO8iDse6EVVxlile0crX8,16885
|
|
486
|
+
claude_mpm/services/project/dependency_analyzer.py,sha256=ZOwvbiBJvD4WN2UgXO88kvsMSQk7-8Y03ybijSAbCPA,15631
|
|
487
|
+
claude_mpm/services/project/language_analyzer.py,sha256=Zrs0Ru-3-0G2LJ5DhN63fGqub5_tX5VRcV23iExKUr8,9229
|
|
488
|
+
claude_mpm/services/project/metrics_collector.py,sha256=IlBV2hAyv_PNp6zdGmAIEZ4rFQMawWVL_Q-EYyIkqzs,12929
|
|
471
489
|
claude_mpm/services/project/registry.py,sha256=XhPmkuEz9tKKKnT9Ca1zsUuNgZJQy40WFHJERj09-40,24166
|
|
472
490
|
claude_mpm/services/shared/__init__.py,sha256=62_AM4liuLAwXtHns0ujePI3L4X5UhzT4ajzUNUMUPw,549
|
|
473
491
|
claude_mpm/services/shared/async_service_base.py,sha256=46Z-ATX5N0FhugNsF6byJ42frs4Rw5ZWfhw3Paf2788,7010
|
|
@@ -493,6 +511,12 @@ claude_mpm/services/socketio/server/broadcaster.py,sha256=mQ_HQdvYPmPz95sRCAn5JQ
|
|
|
493
511
|
claude_mpm/services/socketio/server/core.py,sha256=a07XpUQ_TZPPs6dR3vKyPX9OGbrgb8a6z5OPwL_Pv34,18453
|
|
494
512
|
claude_mpm/services/socketio/server/eventbus_integration.py,sha256=C8XghwK5ZomW4aPkPw7xonIIz-DwpHPwoAhkQPozf0o,7285
|
|
495
513
|
claude_mpm/services/socketio/server/main.py,sha256=I_n0gFjqMC06HwJY9LMI9Ft7iKAGRjCcnRTx3wVdiec,15288
|
|
514
|
+
claude_mpm/services/ticket_services/__init__.py,sha256=I01W25n-tBWwZ0TD-dPA63nqzCU2KnpOvbqeysmaa2E,798
|
|
515
|
+
claude_mpm/services/ticket_services/crud_service.py,sha256=4Ab1HONY219QSdRaLTgRInm6DNJXIUKiihyAree8y8A,11193
|
|
516
|
+
claude_mpm/services/ticket_services/formatter_service.py,sha256=MQ981yaFuvXWUDLpHHiasc8BIFdeIeMS7Us0CgZHJ0A,9101
|
|
517
|
+
claude_mpm/services/ticket_services/search_service.py,sha256=CHDITcE6Dqu_98LOeb55qxr4yNpA7iBYSlnWXMg8KAI,9918
|
|
518
|
+
claude_mpm/services/ticket_services/validation_service.py,sha256=5Wo4YHLjQmZ1Ey9sYHyTjmtWqidywcV16B1T4zS_d-c,8623
|
|
519
|
+
claude_mpm/services/ticket_services/workflow_service.py,sha256=qbFMHaV3PlZ6J-YD2RVUugJ6WLVzAy_xCT0xMSPx1SY,7803
|
|
496
520
|
claude_mpm/services/version_control/__init__.py,sha256=U3bFV1upF3FgNrQGFld0GZt0vb3Eunm71mscgTg7zD0,1510
|
|
497
521
|
claude_mpm/services/version_control/branch_strategy.py,sha256=NtNBeGJfUbBkxUyyXTdFou7JPNSW-V8N0FC-yT-WTKs,23168
|
|
498
522
|
claude_mpm/services/version_control/conflict_resolution.py,sha256=D7MCcrMifBic-My4CvWPpM0gn84rgYOAhnmpKs7R67Q,26061
|
|
@@ -521,9 +545,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
|
|
|
521
545
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
|
522
546
|
claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
|
|
523
547
|
claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
|
|
524
|
-
claude_mpm-4.1.
|
|
525
|
-
claude_mpm-4.1.
|
|
526
|
-
claude_mpm-4.1.
|
|
527
|
-
claude_mpm-4.1.
|
|
528
|
-
claude_mpm-4.1.
|
|
529
|
-
claude_mpm-4.1.
|
|
548
|
+
claude_mpm-4.1.5.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
|
549
|
+
claude_mpm-4.1.5.dist-info/METADATA,sha256=bb1YYVA8ne8WRhQuu9NgFQOu7utVnGkL6od9I9w1Tto,13327
|
|
550
|
+
claude_mpm-4.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
551
|
+
claude_mpm-4.1.5.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
|
|
552
|
+
claude_mpm-4.1.5.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
|
553
|
+
claude_mpm-4.1.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|