claude-mpm 5.4.97__py3-none-any.whl → 5.4.99__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/PM_INSTRUCTIONS.md +35 -9
  3. claude_mpm/agents/WORKFLOW.md +2 -0
  4. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  5. claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc +0 -0
  6. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  7. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  8. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  9. claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
  10. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  11. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  12. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  13. claude_mpm/hooks/claude_hooks/auto_pause_handler.py +0 -0
  14. claude_mpm/hooks/claude_hooks/event_handlers.py +0 -0
  15. claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  16. claude_mpm/hooks/claude_hooks/response_tracking.py +0 -0
  17. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  18. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  19. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  20. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  21. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  22. claude_mpm/scripts/start_activity_logging.py +0 -0
  23. claude_mpm/services/skills/skill_discovery_service.py +57 -3
  24. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/METADATA +1 -1
  25. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/RECORD +25 -11
  26. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/WHEEL +0 -0
  27. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/entry_points.txt +0 -0
  28. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/licenses/LICENSE +0 -0
  29. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  30. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.99.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 5.4.97
1
+ 5.4.99
@@ -8,6 +8,16 @@
8
8
 
9
9
  The Project Manager (PM) agent coordinates work across specialized agents in the Claude MPM framework. The PM's responsibility is orchestration and quality assurance, not direct execution.
10
10
 
11
+ ## 🔴 DELEGATION-BY-DEFAULT PRINCIPLE 🔴
12
+
13
+ **PM ALWAYS delegates unless the user explicitly asks PM to do something directly.**
14
+
15
+ This is the opposite of "delegate when you see trigger keywords." Instead:
16
+ - **DEFAULT action = Delegate to appropriate agent**
17
+ - **EXCEPTION = User says "you do it", "don't delegate", "handle this yourself"**
18
+
19
+ When in doubt, delegate. The PM's value is orchestration, not execution.
20
+
11
21
  ## 🔴 ABSOLUTE PROHIBITIONS 🔴
12
22
 
13
23
  **PM must NEVER:**
@@ -16,6 +26,8 @@ The Project Manager (PM) agent coordinates work across specialized agents in the
16
26
  3. Investigate, debug, or analyze code directly - DELEGATE to Research
17
27
  4. Use Edit/Write tools on any file - DELEGATE to Engineer
18
28
  5. Run verification commands (`curl`, `wget`, `lsof`, `netstat`, `ps`, `pm2`, `docker ps`) - DELEGATE to local-ops/QA
29
+ 6. Attempt ANY task directly without first considering delegation
30
+ 7. Assume "simple" tasks don't need delegation - delegate anyway
19
31
 
20
32
  **Violation of any prohibition = Circuit Breaker triggered**
21
33
 
@@ -266,13 +278,11 @@ See mpm-tool-usage-guide skill for complete tool usage patterns and examples.
266
278
  - NEVER source code files (`.py`, `.js`, `.ts`, `.tsx`, etc.)
267
279
  - Investigation keywords trigger delegation, not Read
268
280
 
269
- **Bash Tool** (Navigation and git tracking ONLY):
270
- - **ALLOWED**: `ls`, `pwd`, `cd`, `git status`, `git add`, `git commit`, `git push`, `git log`
271
- - **FORBIDDEN** (must delegate):
272
- - Verification: `curl`, `wget`, `lsof`, `netstat`, `ps`, `pm2 status`, `docker ps`
273
- - Implementation: `sed`, `awk`, `echo >`, `npm`, `pip`, `make`
274
- - Investigation: `grep`, `find`, `cat`, `head`, `tail`
275
- - **WHY**: Verification is technical work requiring domain expertise. Delegate to local-ops/QA.
281
+ **Bash Tool** (MINIMAL - navigation and git tracking ONLY):
282
+ - **ALLOWED**: `ls`, `pwd`, `git status`, `git add`, `git commit`, `git push`, `git log`
283
+ - **EVERYTHING ELSE**: Delegate to appropriate agent
284
+
285
+ If you're about to run ANY other command, stop and delegate instead.
276
286
 
277
287
  **Vector Search** (Quick semantic search):
278
288
  - MANDATORY: Use mcp-vector-search BEFORE Read/Research if available
@@ -320,13 +330,14 @@ All agents inherit from BASE_AGENT.md which includes:
320
330
  See `src/claude_mpm/agents/BASE_AGENT.md` for complete base instructions.
321
331
 
322
332
 
323
- ## Ops Agent Routing (MANDATORY)
333
+ ## Ops Agent Routing (Examples)
324
334
 
325
- PM MUST route ops tasks to the correct specialized agent:
335
+ These are EXAMPLES of routing, not an exhaustive list. **Default to delegation for ALL ops/infrastructure/deployment/build tasks.**
326
336
 
327
337
  | Trigger Keywords | Agent | Use Case |
328
338
  |------------------|-------|----------|
329
339
  | localhost, PM2, npm, docker-compose, port, process | **local-ops** | Local development |
340
+ | version, release, publish, bump, pyproject.toml, package.json | **local-ops** | Version management, releases |
330
341
  | vercel, edge function, serverless | **vercel-ops** | Vercel platform |
331
342
  | gcp, google cloud, IAM, OAuth consent | **gcp-ops** | Google Cloud |
332
343
  | clerk, auth middleware, OAuth provider | **clerk-ops** | Clerk authentication |
@@ -763,6 +774,10 @@ The skill contains:
763
774
 
764
775
  ## Common User Request Patterns
765
776
 
777
+ **DEFAULT**: Delegate to appropriate agent.
778
+
779
+ The patterns below are guidance for WHICH agent to delegate to, not WHETHER to delegate. Always delegate unless user explicitly says otherwise.
780
+
766
781
  When the user says "just do it" or "handle it", delegate to the full workflow pipeline (Research → Engineer → Ops → QA → Documentation).
767
782
 
768
783
  When the user says "verify", "check", or "test", delegate to the QA agent with specific verification criteria.
@@ -773,6 +788,8 @@ When the user mentions "localhost", "local server", or "PM2", delegate to **loca
773
788
 
774
789
  When the user mentions "verify running", "check port", or requests verification of deployments, delegate to **local-ops** for local verification or QA agents for deployed endpoints.
775
790
 
791
+ When the user mentions "version", "release", "publish", "bump", or modifying version files (pyproject.toml, package.json, Cargo.toml), delegate to **local-ops** for all version and release management.
792
+
776
793
  When the user mentions ticket IDs or says "ticket", "issue", "create ticket", delegate to ticketing agent for all ticket operations.
777
794
 
778
795
  When the user requests "stacked PRs" or "dependent PRs", delegate to version-control agent with stacked PR parameters.
@@ -781,6 +798,15 @@ When the user says "commit to main" or "push to main", check git user email firs
781
798
 
782
799
  When the user mentions "skill", "add skill", "create skill", "improve skill", "recommend skills", or asks about "project stack", "technologies", "frameworks", delegate to mpm-skills-manager agent for all skill operations and technology analysis.
783
800
 
801
+ ## When PM Acts Directly (Exceptions)
802
+
803
+ PM acts directly ONLY when:
804
+ 1. User explicitly says "you do this", "don't delegate", "handle this yourself"
805
+ 2. Pure orchestration tasks (updating TodoWrite, reporting status)
806
+ 3. Answering questions about PM capabilities or agent availability
807
+
808
+ Everything else = Delegate.
809
+
784
810
  ## Session Management
785
811
 
786
812
  **[SKILL: mpm-session-management]**
@@ -64,6 +64,8 @@ Return: Clean or list of blocked items
64
64
 
65
65
  ## Publish and Release Workflow
66
66
 
67
+ **CRITICAL**: PM MUST DELEGATE all version bumps and releases to local-ops. PM never edits version files (pyproject.toml, package.json, VERSION) directly.
68
+
67
69
  **Note**: Release workflows are project-specific and should be customized per project. See the local-ops agent memory for this project's release workflow, or create one using `/mpm-init` for new projects.
68
70
 
69
71
  For projects with specific release requirements (PyPI, npm, Homebrew, Docker, etc.), the local-ops agent should have the complete workflow documented in its memory file.
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -163,10 +163,22 @@ class SkillDiscoveryService:
163
163
  skill_md_files = list(self.skills_dir.rglob("SKILL.md"))
164
164
 
165
165
  # Also find legacy *.md files in top-level directory for backward compatibility
166
+ # Exclude common non-skill documentation files
167
+ excluded_filenames = {
168
+ "skill.md", # Case variations of SKILL.md
169
+ "readme.md",
170
+ "claude.md",
171
+ "contributing.md",
172
+ "changelog.md",
173
+ "license.md",
174
+ "authors.md",
175
+ "code_of_conduct.md",
176
+ }
177
+
166
178
  legacy_md_files = [
167
179
  f
168
180
  for f in self.skills_dir.glob("*.md")
169
- if f.name != "SKILL.md" and f.name.lower() != "readme.md"
181
+ if f.name.lower() not in excluded_filenames
170
182
  ]
171
183
 
172
184
  all_skill_files = skill_md_files + legacy_md_files
@@ -255,7 +267,35 @@ class SkillDiscoveryService:
255
267
  try:
256
268
  frontmatter, body = self._extract_frontmatter(content)
257
269
  except Exception as e:
258
- self.logger.warning(f"No valid frontmatter in {skill_file.name}: {e}")
270
+ # Only log as debug for documentation files to reduce noise
271
+ # Common documentation files (CLAUDE.md, README.md) are expected to lack skill frontmatter
272
+ relative_path = (
273
+ skill_file.relative_to(self.skills_dir)
274
+ if skill_file.is_relative_to(self.skills_dir)
275
+ else skill_file
276
+ )
277
+
278
+ # Check if this looks like a documentation file
279
+ is_documentation = any(
280
+ doc_pattern in skill_file.name.lower()
281
+ for doc_pattern in [
282
+ "readme",
283
+ "claude",
284
+ "contributing",
285
+ "changelog",
286
+ "license",
287
+ ]
288
+ )
289
+
290
+ if is_documentation:
291
+ self.logger.debug(
292
+ f"Skipping documentation file {relative_path} (no skill frontmatter): {e}"
293
+ )
294
+ else:
295
+ # For actual skill files with invalid YAML, use warning level
296
+ self.logger.warning(
297
+ f"Failed to parse skill frontmatter in {relative_path}: {e}"
298
+ )
259
299
  return None
260
300
 
261
301
  # Validate required fields
@@ -354,10 +394,24 @@ class SkillDiscoveryService:
354
394
  frontmatter_text = match.group(1)
355
395
  body = match.group(2)
356
396
 
357
- # Parse YAML
397
+ # Parse YAML with improved error handling
358
398
  try:
359
399
  frontmatter = yaml.safe_load(frontmatter_text)
360
400
  except yaml.YAMLError as e:
401
+ # Provide more specific error message with context
402
+ error_line = getattr(e, "problem_mark", None)
403
+ if error_line:
404
+ line_num = error_line.line + 1
405
+ col_num = error_line.column + 1
406
+ # Extract problematic line for context
407
+ lines = frontmatter_text.split("\n")
408
+ problem_line = (
409
+ lines[error_line.line] if error_line.line < len(lines) else ""
410
+ )
411
+ raise ValueError(
412
+ f"Invalid YAML in frontmatter at line {line_num}, column {col_num}: {e.problem}\n"
413
+ f" Problematic line: {problem_line.strip()}"
414
+ ) from e
361
415
  raise ValueError(f"Invalid YAML in frontmatter: {e}") from e
362
416
 
363
417
  if not isinstance(frontmatter, dict):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.4.97
3
+ Version: 5.4.99
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=BdiMNKt3O_zm2CNWcenla-qyFB2MItaHAgpbSdn2wrk,7
2
+ claude_mpm/VERSION,sha256=o8s-H57kiL0ykkN1vhlSmHa5efdVvUKwOcCKKi-b59s,7
3
3
  claude_mpm/__init__.py,sha256=AGfh00BHKvLYD-UVFw7qbKtl7NMRIzRXOWw7vEuZ-h4,2214
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=pz3lTrZZR5HhV3eZzYtIbtBwWo7iM6pkBHP_ixxmI6Y,6827
@@ -11,8 +11,8 @@ claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md,sha256=C61nb8szGeeGaXQd9-VPpL1t79G2
11
11
  claude_mpm/agents/CLAUDE_MPM_RESEARCH_OUTPUT_STYLE.md,sha256=OIVDU0Ypw5qrXix9rmMDG4u0V4ePnYDlsu5AoTmfZzs,13294
12
12
  claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md,sha256=vneNW5vHjfKsRIukkuGbAnvnyp_-EC3qpFzHDdsMOwc,4796
13
13
  claude_mpm/agents/MEMORY.md,sha256=V1mGx5oEaLdN9AYLX3Xetslmr2Ja6vnLPATeEoR6bvw,3303
14
- claude_mpm/agents/PM_INSTRUCTIONS.md,sha256=A0TBjt4sxwahevpnubh2wgVzKOisX2AluBiqyuolQ0E,33500
15
- claude_mpm/agents/WORKFLOW.md,sha256=BD5V5wNgz4C2gHPn4ekRmj4i7nn56s1ZF8YnhWBPkFw,3331
14
+ claude_mpm/agents/PM_INSTRUCTIONS.md,sha256=S4xzeFlMSfBRbzu1zJzcpB7jC04Bh4yVs_ZRK7gBhRc,34728
15
+ claude_mpm/agents/WORKFLOW.md,sha256=jKs3V9RUrE1Tn5_CtwZGKRDSUBgD6USaCBxAnxv3-Zc,3487
16
16
  claude_mpm/agents/__init__.py,sha256=3cCQh2Hf_-2F9XDT5In533Bw7oKuGIqZvOdBW7af6dY,3403
17
17
  claude_mpm/agents/agent-template.yaml,sha256=mRlz5Yd0SmknTeoJWgFkZXzEF5T7OmGBJGs2-KPT93k,1969
18
18
  claude_mpm/agents/agent_loader.py,sha256=lrE6IMmvFeGVFguNTmi8d6WYyMb8goqcXj6RmiPoYJE,31484
@@ -343,12 +343,26 @@ claude_mpm/hooks/claude_hooks/installer.py,sha256=VbvVGMcrmCXQB3Pf9zOdjeGET2AFqb
343
343
  claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=73w7A5-3s5i1oYdkbEgw7qhgalQvSuJjfx6OFqfaw64,9963
344
344
  claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=bgX4iVQqmX0L3_GHyKs1q4CSIjnavdxYnJZT0GaT4gs,17148
345
345
  claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2fSZfepN7lI4P1meSQ,7862
346
+ claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXqhPM0iRRZtCqHaLVQ6wDH42OH_M7Gt5GiFLyro,346
347
+ claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=X7A8O4KPXkuDaLDFbF7Izi1qVDyS0tQjHVo1xy_HzNQ,21172
348
+ claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc,sha256=SQX5iiP9bQZkLL-cj_2tlGH7lpAzarO0mYal7btj3tc,3521
349
+ claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=YXRFrqgSXTixzi59oYYwFi0dd_EMQ5yeFnsOPaW-F90,44311
350
+ claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=ehLm68zhDmqOwzr1Di6xYjGuE9SRg0mvKePQfepuuQ4,30577
351
+ claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc,sha256=9mpAKY4gNcbU5VvZ5tGbf2UM0uIEWdreKSUvVr_BKcM,33917
352
+ claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=YbwauQDKSGvXkT1972faalJLuxwyvq328DYQhkCnel0,10513
353
+ claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc,sha256=-L-n4xvi1eHY48MdZ-7v249UaNfkuiIwfwxdPgxwd80,16730
354
+ claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc,sha256=ZjcNfNY5Ht6FhalPeh7M7OzMffcey5iF4AVjDDg9kak,10694
346
355
  claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=OIYOKsUNw1BHYawOCp-KFK5kmQKuj92cCqCEPO0nwo0,585
347
356
  claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=6MhoPiSQSkG5Xsb9KjPk_eu60h6-v5uNXjn6ry255aA,10452
348
357
  claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=7YKEsD45us5SNnj-jpSyFBYbU0KrZ8FWoIdZDUeU2gI,7795
349
358
  claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM9t0U1v2l_fuBwvNpVkl_0EF8Wu5KLHQ,3882
350
359
  claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=QB0JPJQThTVg0TGRO3Dc_3y3bac-hkulgMqqzo_71ng,11189
351
360
  claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=nJw1ERCMxq23ioZ5DKwprmwO0fuvuqpdFHJ03XaMiDo,16052
361
+ claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc,sha256=xBfLBSqnpcKfcQBWfh7xUm454g1lq1LvbO7SxGvcOPc,644
362
+ claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc,sha256=xN6QYqLTQ9I9qPDKsSikhAhncXrxYemjfQp4wLiiq9M,9774
363
+ claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc,sha256=Yy_REAUhJCiFjOhxeDb4v0qyEvEbUtCmXD9PAz40dhw,5321
364
+ claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc,sha256=TPkEc-Zi3oNS5dCXBpGbSZwg_8RQvzNzd4pVx9B3WeM,12364
365
+ claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc,sha256=WffRFbZrgwiOypPUMgcm_LT18AtyGckgDny5IXhkogg,15554
352
366
  claude_mpm/hooks/failure_learning/__init__.py,sha256=iJ80AKFHiT8DjIH2a72DQVJvL6nAFrizNA2yTKwZ4rw,1805
353
367
  claude_mpm/hooks/failure_learning/failure_detection_hook.py,sha256=KENoB5N-dBm5hb0SxeIZtCvNKbmG2BKHOJSrSO-3Z_I,7500
354
368
  claude_mpm/hooks/failure_learning/fix_detection_hook.py,sha256=XUk1bnBVLdfhQ9AMQSvGsTSeFQsKsVud2wbWX-Jjor8,7164
@@ -704,7 +718,7 @@ claude_mpm/services/shared/service_factory.py,sha256=9yvnD62urrNQCGmtk_3OcR5tVUC
704
718
  claude_mpm/services/skills/__init__.py,sha256=X1fPRCGZjteLd35HlhWv2M6tAJ_WbYrEv84kbaqBAiU,742
705
719
  claude_mpm/services/skills/git_skill_source_manager.py,sha256=q8pKRLBza7Uh3vEpCXuQKdp1pF0b9P1CTUzUkL5VBJA,51623
706
720
  claude_mpm/services/skills/selective_skill_deployer.py,sha256=yUiciVynJ3WDTO-l7Oz6_y9NaqeQS4xwNVp3KXDOtgA,29565
707
- claude_mpm/services/skills/skill_discovery_service.py,sha256=riy0PTnJS8e5R2ai8y1KPhBIR7SxlYIa9bnI9YccRMQ,20247
721
+ claude_mpm/services/skills/skill_discovery_service.py,sha256=guul1xME46hzHqTRIJeTDIKQz55AQlOX1CRALWvfnoI,22403
708
722
  claude_mpm/services/skills/skill_to_agent_mapper.py,sha256=4PRwcSDSNGS55lg4t-VmBK2ottE_cGFq1zsvjiumAlI,14847
709
723
  claude_mpm/services/socketio/__init__.py,sha256=PS-2twllga-2mhSfKdu4MgpikfKp_730gMLAqU_9YX4,556
710
724
  claude_mpm/services/socketio/client_proxy.py,sha256=DFPO5OIl-cHusldHPYWKSbnL0dxSLz8h07D9307FfzY,8853
@@ -983,10 +997,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
983
997
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
984
998
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
985
999
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
986
- claude_mpm-5.4.97.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
987
- claude_mpm-5.4.97.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
988
- claude_mpm-5.4.97.dist-info/METADATA,sha256=hlWS-oaVXxxH2ac2RGflbYhcb3ohULWQYotGwtsqTSc,14349
989
- claude_mpm-5.4.97.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
990
- claude_mpm-5.4.97.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
991
- claude_mpm-5.4.97.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
992
- claude_mpm-5.4.97.dist-info/RECORD,,
1000
+ claude_mpm-5.4.99.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1001
+ claude_mpm-5.4.99.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1002
+ claude_mpm-5.4.99.dist-info/METADATA,sha256=GK4Tr8h6-NGTEn6K-3E4dsn-n04m7r2L-46ntDxtDwE,14349
1003
+ claude_mpm-5.4.99.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1004
+ claude_mpm-5.4.99.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1005
+ claude_mpm-5.4.99.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1006
+ claude_mpm-5.4.99.dist-info/RECORD,,