claude-mpm 4.14.8__py3-none-any.whl → 4.14.9__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.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 4.14.8
1
+ 4.14.9
@@ -38,6 +38,8 @@ from enum import Enum
38
38
  from pathlib import Path
39
39
  from typing import Any, Dict, List, Optional, Tuple, Union
40
40
 
41
+ from claude_mpm.core.enums import AgentCategory
42
+
41
43
  # Module-level logger
42
44
  from claude_mpm.core.logging_utils import get_logger
43
45
 
@@ -281,11 +283,21 @@ class AgentLoader:
281
283
  # Check for project memory
282
284
  has_memory = capabilities.get("has_project_memory", False)
283
285
 
286
+ # Get category with enum validation (fallback to GENERAL if invalid)
287
+ category_str = metadata.get("category", "general")
288
+ try:
289
+ category = AgentCategory(category_str)
290
+ except ValueError:
291
+ logger.warning(
292
+ f"Invalid category '{category_str}' for agent {agent_id}, using GENERAL"
293
+ )
294
+ category = AgentCategory.GENERAL
295
+
284
296
  result = {
285
297
  "agent_id": agent_id,
286
298
  "name": metadata.get("name", agent_id),
287
299
  "description": metadata.get("description", ""),
288
- "category": metadata.get("category", "general"),
300
+ "category": category.value, # Store as string for backward compatibility
289
301
  "version": metadata.get("version", "1.0.0"),
290
302
  "model": agent_data.get("model", "claude-sonnet-4-20250514"),
291
303
  "resource_tier": agent_data.get("resource_tier", "standard"),
claude_mpm/core/enums.py CHANGED
@@ -70,6 +70,9 @@ class OperationResult(StrEnum):
70
70
  PARTIAL = "partial"
71
71
  """Operation completed partially."""
72
72
 
73
+ ROLLBACK = "rollback"
74
+ """Operation rolled back due to failure or cancellation."""
75
+
73
76
  UNKNOWN = "unknown"
74
77
  """Operation result is unknown or indeterminate."""
75
78
 
@@ -179,6 +182,41 @@ class ValidationSeverity(StrEnum):
179
182
  """Debug-level information for troubleshooting."""
180
183
 
181
184
 
185
+ class HealthStatus(StrEnum):
186
+ """
187
+ Health check status codes for services and components.
188
+
189
+ Replaces health check status strings throughout monitoring and diagnostics.
190
+ Used in: Health checks, monitoring, service diagnostics, uptime tracking.
191
+
192
+ Migration Priority: MEDIUM (Week 3)
193
+ Coverage: ~2% of all magic strings
194
+
195
+ Notes:
196
+ - Added in Phase 3C for comprehensive service health monitoring
197
+ - Distinct from ServiceState (operational) and OperationResult (transactional)
198
+ - Maps to standard health check patterns (healthy/unhealthy/degraded)
199
+ """
200
+
201
+ HEALTHY = "healthy"
202
+ """Component is functioning normally."""
203
+
204
+ UNHEALTHY = "unhealthy"
205
+ """Component is not functioning correctly."""
206
+
207
+ DEGRADED = "degraded"
208
+ """Component is functioning with reduced capability."""
209
+
210
+ UNKNOWN = "unknown"
211
+ """Health status cannot be determined."""
212
+
213
+ CHECKING = "checking"
214
+ """Health check is currently in progress."""
215
+
216
+ TIMEOUT = "timeout"
217
+ """Health check exceeded time limit."""
218
+
219
+
182
220
  class ModelTier(StrEnum):
183
221
  """
184
222
  Claude model tier classifications and identifiers.
@@ -272,48 +310,87 @@ class AgentCategory(StrEnum):
272
310
 
273
311
  Migration Priority: MEDIUM (Week 3)
274
312
  Coverage: ~3% of all magic strings
313
+
314
+ Notes:
315
+ - Expanded in Phase 3C to include all template categories
316
+ - Maps to actual usage in agent JSON templates
317
+ - Supports both legacy and new category schemes
275
318
  """
276
319
 
320
+ # Core Engineering Categories
321
+ ENGINEERING = "engineering"
322
+ """Software engineering and implementation agents."""
323
+
324
+ # Research and Analysis
277
325
  RESEARCH = "research"
278
326
  """Research and analysis agents."""
279
327
 
280
- ENGINEERING = "engineering"
281
- """Software engineering and implementation agents."""
328
+ ANALYSIS = "analysis"
329
+ """Code analysis and architectural review agents."""
330
+
331
+ # Quality and Testing
332
+ QUALITY = "quality"
333
+ """Quality assurance and testing agents (replaces QA)."""
282
334
 
283
335
  QA = "qa"
284
- """Quality assurance and testing agents."""
336
+ """Legacy quality assurance category (use QUALITY for new agents)."""
285
337
 
286
338
  SECURITY = "security"
287
339
  """Security analysis and vulnerability assessment agents."""
288
340
 
341
+ # Operations and Infrastructure
342
+ OPERATIONS = "operations"
343
+ """DevOps and infrastructure management agents."""
344
+
345
+ INFRASTRUCTURE = "infrastructure"
346
+ """Infrastructure provisioning and cloud management agents."""
347
+
348
+ # Documentation and Content
289
349
  DOCUMENTATION = "documentation"
290
350
  """Documentation and technical writing agents."""
291
351
 
292
- OPERATIONS = "operations"
293
- """DevOps and infrastructure management agents."""
352
+ CONTENT = "content"
353
+ """Content creation, optimization, and management agents."""
294
354
 
355
+ # Data and Analytics
295
356
  DATA = "data"
296
357
  """Data engineering and analytics agents."""
297
358
 
359
+ # Specialized Functions
360
+ OPTIMIZATION = "optimization"
361
+ """Performance and resource optimization agents."""
362
+
363
+ SPECIALIZED = "specialized"
364
+ """Specialized single-purpose agents."""
365
+
366
+ SYSTEM = "system"
367
+ """System-level framework agents."""
368
+
369
+ # Management and Coordination
370
+ PROJECT_MANAGEMENT = "project-management"
371
+ """Project management and coordination agents."""
372
+
373
+ PRODUCT = "product"
374
+ """Product ownership and strategy agents."""
375
+
376
+ # Legacy and General
298
377
  VERSION_CONTROL = "version_control"
299
378
  """Version control and release management agents."""
300
379
 
380
+ DESIGN = "design"
381
+ """UI/UX design and frontend agents."""
382
+
301
383
  GENERAL = "general"
302
384
  """General-purpose agents without specific specialization."""
303
385
 
304
386
  CUSTOM = "custom"
305
387
  """User-defined custom agent categories."""
306
388
 
307
- PROJECT_MANAGEMENT = "project_management"
308
- """Project management and coordination agents."""
309
-
310
- DESIGN = "design"
311
- """UI/UX design and frontend agents."""
312
-
313
389
 
314
390
  # Export all enums for convenient access
315
391
  __all__ = [
316
392
  "AgentCategory",
393
+ "HealthStatus",
317
394
  "ModelTier",
318
395
  "OperationResult",
319
396
  "OutputFormat",
@@ -599,7 +599,7 @@ class DependencyAnalyzerStrategy(AnalyzerStrategy):
599
599
  """Extract key metrics from analysis results."""
600
600
  metrics = {}
601
601
 
602
- if analysis_result.get("status") != "success":
602
+ if analysis_result.get("status") != OperationResult.SUCCESS:
603
603
  return metrics
604
604
 
605
605
  # Extract dependency counts
@@ -241,7 +241,7 @@ class PerformanceAnalyzerStrategy(AnalyzerStrategy):
241
241
 
242
242
  except Exception as e:
243
243
  logger.error(f"Error analyzing file {file_path}: {e}")
244
- results["status"] = "error"
244
+ results["status"] = OperationResult.ERROR
245
245
  results["error"] = str(e)
246
246
 
247
247
  return results
@@ -292,7 +292,7 @@ class PerformanceAnalyzerStrategy(AnalyzerStrategy):
292
292
  continue
293
293
 
294
294
  file_result = self._analyze_file(file_path, options)
295
- if file_result["status"] == "success":
295
+ if file_result["status"] == OperationResult.SUCCESS:
296
296
  results["files_analyzed"] += 1
297
297
  total_score += file_result["performance_score"]
298
298
 
@@ -803,7 +803,7 @@ class PerformanceAnalyzerStrategy(AnalyzerStrategy):
803
803
  """Extract key metrics from analysis results."""
804
804
  metrics = {}
805
805
 
806
- if analysis_result.get("status") != "success":
806
+ if analysis_result.get("status") != OperationResult.SUCCESS:
807
807
  return metrics
808
808
 
809
809
  if analysis_result.get("type") == "file":
@@ -242,7 +242,7 @@ class SecurityAnalyzerStrategy(AnalyzerStrategy):
242
242
 
243
243
  except Exception as e:
244
244
  logger.error(f"Error analyzing file {file_path}: {e}")
245
- results["status"] = "error"
245
+ results["status"] = OperationResult.ERROR
246
246
  results["error"] = str(e)
247
247
 
248
248
  return results
@@ -641,7 +641,7 @@ class StructureAnalyzerStrategy(AnalyzerStrategy):
641
641
  """Extract key metrics from analysis results."""
642
642
  metrics = {}
643
643
 
644
- if analysis_result.get("status") != "success":
644
+ if analysis_result.get("status") != OperationResult.SUCCESS:
645
645
  return metrics
646
646
 
647
647
  # Extract structure statistics
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.14.8
3
+ Version: 4.14.9
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=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
2
- claude_mpm/VERSION,sha256=RP717o2gsEAjl8F9vEudNvfMiOVjs7f1vZetBz1gT0A,7
2
+ claude_mpm/VERSION,sha256=od8voLjqnnekPs-FuGM_0A7cmW41vjKUg_9Yg2lpt00,7
3
3
  claude_mpm/__init__.py,sha256=UCw6j9e_tZQ3kJtTqmdfNv7MHyw9nD1jkj80WurwM2g,2064
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=sLjJF6Kw7H4V9WWeaEYltM-77TgXqzEMX5vx4ukM5-0,5977
@@ -20,7 +20,7 @@ claude_mpm/agents/PM_INSTRUCTIONS.md,sha256=_E-J-4USZcADyJZ2280gX-AO8mLgPmiO2Cyf
20
20
  claude_mpm/agents/WORKFLOW.md,sha256=vJ9iXCVqAaeM_yVlXxbcP3bsL210-1BI3ZAanvWv4hI,9085
21
21
  claude_mpm/agents/__init__.py,sha256=jRFxvV_DIZ-NdENa-703Xu3YpwvlQj6yv-mQ6FgmldM,3220
22
22
  claude_mpm/agents/agent-template.yaml,sha256=mRlz5Yd0SmknTeoJWgFkZXzEF5T7OmGBJGs2-KPT93k,1969
23
- claude_mpm/agents/agent_loader.py,sha256=tseaXJRgitZdw5_H6fCmhVSr7J4zr-UILwxdJjq_evk,32563
23
+ claude_mpm/agents/agent_loader.py,sha256=4Il9Zk6M8VstV_qE1BE_gfLcsU2qNPZEb-ivyf4noOQ,33041
24
24
  claude_mpm/agents/agent_loader_integration.py,sha256=cU1LKCYvopZn66UefwzZxJUdTSxn6HLxdbukTjmP-KM,7280
25
25
  claude_mpm/agents/agents_metadata.py,sha256=XklRSaYxKt8_2hnGn9xr-V15RMcm57Fi-QzPbAe4ZR4,9867
26
26
  claude_mpm/agents/async_agent_loader.py,sha256=w9zk88SZUBycQeTHKrUiUez0CY_BrWZi13-EF6IOwWU,14597
@@ -197,7 +197,7 @@ claude_mpm/core/config_aliases.py,sha256=QpNNECkTY4TYYAhVlFZvB-msPnZrui90g19u0-v
197
197
  claude_mpm/core/config_constants.py,sha256=MEF35Y2Lj5FMzRdhgSgZrZeTzHfCzistPGZVY8INta4,10073
198
198
  claude_mpm/core/constants.py,sha256=uBCd4kUbwSFKW79pH7_yUzRpMoNY2AcAflENTkIZIaU,11558
199
199
  claude_mpm/core/container.py,sha256=oLM91UOJUQ6D-DDVomqkTAozpgBcM2YFzk_JDbjgg8o,32277
200
- claude_mpm/core/enums.py,sha256=abB6-gD41pxHTo-_G7c9TvhvuHvHLPxVxIH7BxjVCu8,8398
200
+ claude_mpm/core/enums.py,sha256=nLMPA14lE9476SIQPKAj1yQ6nq7R-xZFXbhq37-hzP8,10712
201
201
  claude_mpm/core/error_handler.py,sha256=fqTstzmWaidfiVm-IvPGBRCjDwqBbQgjofyP31EkVNU,19276
202
202
  claude_mpm/core/exceptions.py,sha256=vrEJGpgThvqRRD6qsNkmaQcYAoUMQSNuHUOnNFJcEGg,19628
203
203
  claude_mpm/core/factories.py,sha256=vtlwkbpxeWzqgPRGO1ehnMOzddLCHWTeiKa8halV_dU,7271
@@ -806,10 +806,10 @@ claude_mpm/services/unified/unified_config.py,sha256=IJRS-awkVNU-CrcMhTYElkyS73c
806
806
  claude_mpm/services/unified/unified_deployment.py,sha256=jrUL0p_56sZVRLUiKqQfjN8n5_CY-fpPe2X8RLw1B9w,15112
807
807
  claude_mpm/services/unified/analyzer_strategies/__init__.py,sha256=cQqmsHjYf9olriRFjiBVnpX75X4VHGd8rAwiWr1k540,1369
808
808
  claude_mpm/services/unified/analyzer_strategies/code_analyzer.py,sha256=p_sBOrHt3fUqFPJ4rmOSzCUK47rLNUczPtezFew7ppA,17943
809
- claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py,sha256=cUE8y3mMKRFubZSTdEHxu_KvXhIVnZO5v4E1P1roaTw,24219
810
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py,sha256=Feo3h7x5aVJ4Nh_tYab5n2dRDA4LPTk703OUWwxjco4,33763
811
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py,sha256=fa9cFPxCashhCeHRY5Z1ov7wBsOYnLTAcxTemARazT4,26646
812
- claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py,sha256=hidFF5mUoeGn-JvsSCkHowdq8u7gNuXFpLivpkQpxYY,25446
809
+ claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py,sha256=lMycu3JYxRlNvjf3kBCsu2aNa2Xa-GMU8_nnhFil8qU,24233
810
+ claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py,sha256=KLOlXfjsPNmTfivJg647ayC5rMY16Fw0BCIdlx4BWKI,33805
811
+ claude_mpm/services/unified/analyzer_strategies/security_analyzer.py,sha256=FILh1dvSqImA-NKGprull42Te3hcd0vUxYGkvGq4uyE,26660
812
+ claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py,sha256=HOej78KEu7ptCun67m-LiBiNSP-KjMGj4EF8sULkdnc,25460
813
813
  claude_mpm/services/unified/config_strategies/__init__.py,sha256=b39wSfMCI1ah8gbgZHZFRaaLdsNo1sVfCWikqTS3Olk,4298
814
814
  claude_mpm/services/unified/config_strategies/config_schema.py,sha256=GE4R8i1n2dz0VNVa52LuwocE-ZU9ymTTjLqP8ffN3Uk,24876
815
815
  claude_mpm/services/unified/config_strategies/context_strategy.py,sha256=gavjsjJU5yoMMoCl3aTR53JjRVaSatXPiSCqmKKsIL0,25287
@@ -864,9 +864,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
864
864
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
865
865
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
866
866
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
867
- claude_mpm-4.14.8.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
868
- claude_mpm-4.14.8.dist-info/METADATA,sha256=1h26niFsJ2dEtKCW8Y2y_88GZhMFoCbFoPziitbuibI,17967
869
- claude_mpm-4.14.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
870
- claude_mpm-4.14.8.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
871
- claude_mpm-4.14.8.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
872
- claude_mpm-4.14.8.dist-info/RECORD,,
867
+ claude_mpm-4.14.9.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
868
+ claude_mpm-4.14.9.dist-info/METADATA,sha256=8jG7uYQr7IalnFWrE5gPlHZZNOIgRYcT7yQIg4jzoPw,17967
869
+ claude_mpm-4.14.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
870
+ claude_mpm-4.14.9.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
871
+ claude_mpm-4.14.9.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
872
+ claude_mpm-4.14.9.dist-info/RECORD,,