claude-mpm 5.4.98__py3-none-any.whl → 5.4.100__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 CHANGED
@@ -1 +1 @@
1
- 5.4.98
1
+ 5.4.100
@@ -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.
@@ -101,13 +101,16 @@ def format_delegation_event_as_todo(event: Dict[str, Any]) -> Dict[str, str]:
101
101
  }
102
102
 
103
103
 
104
- def get_autotodos() -> List[Dict[str, Any]]:
104
+ def get_autotodos(max_todos: int = 100) -> List[Dict[str, Any]]:
105
105
  """Get all pending hook error events formatted as todos.
106
106
 
107
107
  DESIGN DECISION: Only autotodo.error events are returned
108
108
  - autotodo.error = Script/coding failures → PM should delegate fix
109
109
  - pm.violation = Delegation anti-patterns → PM behavior error (not todo)
110
110
 
111
+ Args:
112
+ max_todos: Maximum number of todos to return (default: 100)
113
+
111
114
  Returns:
112
115
  List of todo dictionaries ready for PM injection
113
116
  """
@@ -119,13 +122,30 @@ def get_autotodos() -> List[Dict[str, Any]]:
119
122
  event_type="autotodo.error", status="pending"
120
123
  )
121
124
 
122
- for event in pending_error_events:
125
+ for event in pending_error_events[:max_todos]:
123
126
  todo = format_error_event_as_todo(event)
124
127
  todos.append(todo)
125
128
 
126
129
  return todos
127
130
 
128
131
 
132
+ def get_pending_todos(max_todos: int = 10) -> List[Dict[str, Any]]:
133
+ """Get pending autotodo errors for injection.
134
+
135
+ WHY this function exists:
136
+ - Provides a consistent API for retrieving pending autotodos
137
+ - Used by CLI inject command AND SessionStart hook
138
+ - Supports limiting number of todos to avoid overwhelming PM
139
+
140
+ Args:
141
+ max_todos: Maximum number of todos to return (default: 10)
142
+
143
+ Returns:
144
+ List of todo dicts with content, activeForm, status, metadata
145
+ """
146
+ return get_autotodos(max_todos=max_todos)
147
+
148
+
129
149
  @click.group(name="autotodos")
130
150
  def autotodos_group():
131
151
  """Auto-generate todos from hook errors.
claude_mpm/core/config.py CHANGED
@@ -605,6 +605,11 @@ class Config:
605
605
  "sync_interval": "startup", # Options: "startup", "hourly", "daily", "manual"
606
606
  "cache_dir": str(Path.home() / ".claude-mpm" / "cache" / "agents"),
607
607
  },
608
+ # Autotodos configuration
609
+ "autotodos": {
610
+ "auto_inject_on_startup": True, # Auto-inject pending todos on PM session start
611
+ "max_todos_per_session": 10, # Max todos to inject per session
612
+ },
608
613
  }
609
614
 
610
615
  # Apply defaults for missing keys
File without changes
@@ -949,6 +949,7 @@ class EventHandlers:
949
949
  - Provides visibility into new conversation sessions
950
950
  - Enables tracking of session lifecycle and duration
951
951
  - Useful for monitoring concurrent sessions and resource usage
952
+ - Auto-inject pending autotodos if enabled in config
952
953
  """
953
954
  session_id = event.get("session_id", "")
954
955
  working_dir = event.get("cwd", "")
@@ -962,6 +963,30 @@ class EventHandlers:
962
963
  "hook_event_name": "SessionStart",
963
964
  }
964
965
 
966
+ # Auto-inject pending autotodos if enabled
967
+ try:
968
+ from claude_mpm.cli.commands.autotodos import get_pending_todos
969
+ from claude_mpm.core.config import Config
970
+
971
+ config = Config()
972
+ auto_inject_enabled = config.get("autotodos.auto_inject_on_startup", True)
973
+ max_todos = config.get("autotodos.max_todos_per_session", 10)
974
+
975
+ if auto_inject_enabled:
976
+ pending_todos = get_pending_todos(max_todos=max_todos)
977
+ if pending_todos:
978
+ session_start_data["pending_autotodos"] = pending_todos
979
+ session_start_data["autotodos_count"] = len(pending_todos)
980
+ if DEBUG:
981
+ print(
982
+ f" - Auto-injected {len(pending_todos)} pending autotodos",
983
+ file=sys.stderr,
984
+ )
985
+ except Exception as e: # nosec B110
986
+ # Auto-injection is optional - continue if it fails
987
+ if DEBUG:
988
+ print(f" - Failed to auto-inject autotodos: {e}", file=sys.stderr)
989
+
965
990
  # Debug logging
966
991
  if DEBUG:
967
992
  print(
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.4.98
3
+ Version: 5.4.100
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=z19R3si2Jp-yEU6HDQz48V2xNInMNgau-vPD8A98zac,7
2
+ claude_mpm/VERSION,sha256=wNj81Ayxoy8s1abHHC9XYQjoIxpZanhi0H58D7e7Fm4,8
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
@@ -58,7 +58,7 @@ claude_mpm/cli/commands/aggregate.py,sha256=v5JzzoWf6Omc4DaWfx_3gm5EWiUmUp6ps3Bd
58
58
  claude_mpm/cli/commands/analyze.py,sha256=NuSreG9PINgf_1_41adMT_sOXz-z695Zqjwef4OEc9w,19162
59
59
  claude_mpm/cli/commands/analyze_code.py,sha256=5FAoubjZbEO_GlErj3xNgNbJXBjhtqSOWE2FkhAzTaM,17256
60
60
  claude_mpm/cli/commands/auto_configure.py,sha256=0Suzil6O0SBNeHUCwHOkt2q7gfuXRTyUu2UC99cCG4Y,40567
61
- claude_mpm/cli/commands/autotodos.py,sha256=xJbSp1JXe-uK9OIFxKeQmFkbHyLTfyW_c34jCuPsIRQ,18126
61
+ claude_mpm/cli/commands/autotodos.py,sha256=b-uyPq2tFITkW6YnTZrHdbO2UcVntDKyxtDII0yHgkg,18789
62
62
  claude_mpm/cli/commands/cleanup.py,sha256=RQikOGLuLFWXzjeoHArdr5FA4Pf7tSK9w2NXL4vCrok,19769
63
63
  claude_mpm/cli/commands/cleanup_orphaned_agents.py,sha256=JR8crvgrz7Sa6d-SI-gKywok5S9rwc_DzDVk_h85sVs,4467
64
64
  claude_mpm/cli/commands/config.py,sha256=2M9VUPYcQkBUCIyyB-v1qTL3xYvao9YI2l_JGBUDauA,23374
@@ -180,7 +180,7 @@ claude_mpm/core/api_validator.py,sha256=zxeUykC2asy1KwHBDu5w3Eoo64E51PJyNe4PT7CT
180
180
  claude_mpm/core/base_service.py,sha256=4Zrt-vQ6g_KVk4hEfvd4QccuItYoOf7wUHCimIW6zJQ,29953
181
181
  claude_mpm/core/cache.py,sha256=orh8B40oYnRRGmXdANR4P4f-KVMIHV0vg7vrsemk0no,17232
182
182
  claude_mpm/core/claude_runner.py,sha256=Wle-wI-ag25oC0EYX3n8dDC56I5GIdbpi5NtvT4IgBw,34263
183
- claude_mpm/core/config.py,sha256=RLjN1OSW5AadWju6kooEEbud8mntSkorapP1wzUrPGk,42491
183
+ claude_mpm/core/config.py,sha256=IGhNAkq8qtoIcayrIqGH0GY64S_J4nzQ1xN4p4LDpNw,42748
184
184
  claude_mpm/core/config_aliases.py,sha256=QpNNECkTY4TYYAhVlFZvB-msPnZrui90g19u0-v0HDE,9703
185
185
  claude_mpm/core/config_constants.py,sha256=MEF35Y2Lj5FMzRdhgSgZrZeTzHfCzistPGZVY8INta4,10073
186
186
  claude_mpm/core/constants.py,sha256=tm6IkmDxnsEqdEImtdQOeWvvGEHrThWCgAz5FMjckCQ,11557
@@ -336,7 +336,7 @@ claude_mpm/hooks/claude_hooks/__init__.py,sha256=b4mud_g3S-3itHY_Dzpbb_SmdMEcJwt
336
336
  claude_mpm/hooks/claude_hooks/auto_pause_handler.py,sha256=xDAQZ33I5OhGvtWvA9mxwVSoir9tM-aCvrWkSRdnVmU,17465
337
337
  claude_mpm/hooks/claude_hooks/connection_pool.py,sha256=vpi-XbVf61GWhh85tHBzubbOgbJly_I-5-QmsleND2M,8658
338
338
  claude_mpm/hooks/claude_hooks/correlation_manager.py,sha256=3n-RxzqE8egG4max_NcpJgL9gzrBY6Ti529LrjleI1g,2033
339
- claude_mpm/hooks/claude_hooks/event_handlers.py,sha256=ryhpNe9c8wzGb2p3s0kBjFxY8BsVlHjwCo9Xc5RQnhc,45520
339
+ claude_mpm/hooks/claude_hooks/event_handlers.py,sha256=fqB7FEhNxSg-eNMpirhGrpVPN2dKiYXT3a_30HkDe5w,46701
340
340
  claude_mpm/hooks/claude_hooks/hook_handler.py,sha256=R2RhUoRvI0q_EGu-d5L9bH7cGg5_OLDskQoNrl3JsU0,28504
341
341
  claude_mpm/hooks/claude_hooks/hook_wrapper.sh,sha256=4lG3TlLVoVfTJipPj1X_ICUlS-KpnkbUp1U3oSq80Bw,2476
342
342
  claude_mpm/hooks/claude_hooks/installer.py,sha256=VbvVGMcrmCXQB3Pf9zOdjeGET2AFqbUDMHDy5KXuvz0,30463
@@ -346,7 +346,7 @@ claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2
346
346
  claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXqhPM0iRRZtCqHaLVQ6wDH42OH_M7Gt5GiFLyro,346
347
347
  claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=X7A8O4KPXkuDaLDFbF7Izi1qVDyS0tQjHVo1xy_HzNQ,21172
348
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
349
+ claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=j_q1l_E9a_2c_JzHW_qNvxeYMv8O7QAw79JombVhdd4,45585
350
350
  claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=ehLm68zhDmqOwzr1Di6xYjGuE9SRg0mvKePQfepuuQ4,30577
351
351
  claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc,sha256=9mpAKY4gNcbU5VvZ5tGbf2UM0uIEWdreKSUvVr_BKcM,33917
352
352
  claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=YbwauQDKSGvXkT1972faalJLuxwyvq328DYQhkCnel0,10513
@@ -359,6 +359,7 @@ claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM
359
359
  claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=QB0JPJQThTVg0TGRO3Dc_3y3bac-hkulgMqqzo_71ng,11189
360
360
  claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=nJw1ERCMxq23ioZ5DKwprmwO0fuvuqpdFHJ03XaMiDo,16052
361
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.cpython-311.pyc,sha256=9BnGRXKqMq5FI3vqUlho0NyMxJTiMD_Pn560x-4kNh4,10513
362
363
  claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc,sha256=xN6QYqLTQ9I9qPDKsSikhAhncXrxYemjfQp4wLiiq9M,9774
363
364
  claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc,sha256=Yy_REAUhJCiFjOhxeDb4v0qyEvEbUtCmXD9PAz40dhw,5321
364
365
  claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc,sha256=TPkEc-Zi3oNS5dCXBpGbSZwg_8RQvzNzd4pVx9B3WeM,12364
@@ -997,10 +998,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
997
998
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
998
999
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
999
1000
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
1000
- claude_mpm-5.4.98.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1001
- claude_mpm-5.4.98.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1002
- claude_mpm-5.4.98.dist-info/METADATA,sha256=jE_K6msFV1hDsphBCY0z60AJDyA0sIilYQei0HDiLig,14349
1003
- claude_mpm-5.4.98.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1004
- claude_mpm-5.4.98.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1005
- claude_mpm-5.4.98.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1006
- claude_mpm-5.4.98.dist-info/RECORD,,
1001
+ claude_mpm-5.4.100.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1002
+ claude_mpm-5.4.100.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1003
+ claude_mpm-5.4.100.dist-info/METADATA,sha256=hxMCkIxcbXALLGrhl2i4lXGIKG8CZLv2v-HkmClrTB0,14350
1004
+ claude_mpm-5.4.100.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1005
+ claude_mpm-5.4.100.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1006
+ claude_mpm-5.4.100.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1007
+ claude_mpm-5.4.100.dist-info/RECORD,,