claude-mpm 5.6.33__py3-none-any.whl → 5.6.35__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 (27) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/core/socketio_pool.py +34 -10
  3. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-314.pyc +0 -0
  4. claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-314.pyc +0 -0
  5. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-314.pyc +0 -0
  6. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-314.pyc +0 -0
  7. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-314.pyc +0 -0
  8. claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-314.pyc +0 -0
  9. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-314.pyc +0 -0
  10. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-314.pyc +0 -0
  11. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-314.pyc +0 -0
  12. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-314.pyc +0 -0
  13. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-314.pyc +0 -0
  14. claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc +0 -0
  15. claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-314.pyc +0 -0
  16. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-314.pyc +0 -0
  17. claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-314.pyc +0 -0
  18. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-314.pyc +0 -0
  19. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-314.pyc +0 -0
  20. claude_mpm/hooks/claude_hooks/services/container.py +24 -8
  21. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/METADATA +1 -1
  22. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/RECORD +27 -11
  23. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/WHEEL +0 -0
  24. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/entry_points.txt +0 -0
  25. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/licenses/LICENSE +0 -0
  26. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  27. {claude_mpm-5.6.33.dist-info → claude_mpm-5.6.35.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 5.6.33
1
+ 5.6.35
@@ -192,9 +192,14 @@ class SocketIOConnectionPool:
192
192
  self.health_running = False
193
193
  self.last_health_check = datetime.now(timezone.utc)
194
194
 
195
- # Server configuration
196
- self.server_url = None
197
- self.server_port = None
195
+ # Server configuration - use default immediately, update async
196
+ self.server_port = int(
197
+ os.environ.get(
198
+ "CLAUDE_MPM_SOCKETIO_PORT", str(NetworkConfig.DEFAULT_SOCKETIO_PORT)
199
+ )
200
+ )
201
+ self.server_url = f"http://localhost:{self.server_port}"
202
+ self._port_detection_complete = False
198
203
 
199
204
  # Pool lifecycle
200
205
  self._running = False
@@ -208,7 +213,10 @@ class SocketIOConnectionPool:
208
213
  return
209
214
 
210
215
  self._running = True
211
- self._detect_server()
216
+
217
+ # Start async port detection in background (non-blocking)
218
+ # Default port is already set in __init__, this just updates if a better one is found
219
+ self._detect_server_async()
212
220
 
213
221
  # Start batch processing thread
214
222
  self.batch_running = True
@@ -274,14 +282,29 @@ class SocketIOConnectionPool:
274
282
 
275
283
  self.logger.info("Socket.IO connection pool stopped")
276
284
 
285
+ def _detect_server_async(self):
286
+ """Start server detection in background thread.
287
+
288
+ This runs port scanning asynchronously to avoid blocking the main thread.
289
+ The default port is already set in __init__, so this just updates if a better one is found.
290
+ """
291
+ threading.Thread(
292
+ target=self._detect_server, daemon=True, name="port-detect"
293
+ ).start()
294
+
277
295
  def _detect_server(self):
278
- """Detect Socket.IO server configuration."""
279
- # Check environment variable first
296
+ """Detect Socket.IO server configuration.
297
+
298
+ This method scans ports to find a running Socket.IO server.
299
+ It's designed to be run in a background thread to avoid blocking.
300
+ """
301
+ # Check environment variable first - if set, use it and skip detection
280
302
  env_port = os.environ.get("CLAUDE_MPM_SOCKETIO_PORT")
281
303
  if env_port:
282
304
  try:
283
305
  self.server_port = int(env_port)
284
306
  self.server_url = f"http://localhost:{self.server_port}"
307
+ self._port_detection_complete = True
285
308
  self.logger.debug(
286
309
  f"Using Socket.IO server from environment: {self.server_url}"
287
310
  )
@@ -310,19 +333,20 @@ class SocketIOConnectionPool:
310
333
  for port in common_ports:
311
334
  try:
312
335
  with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
313
- s.settimeout(0.05)
336
+ # Use 10ms timeout (reduced from 50ms) for faster scanning
337
+ s.settimeout(0.01)
314
338
  result = s.connect_ex(("localhost", port))
315
339
  if result == 0:
316
340
  self.server_port = port
317
341
  self.server_url = f"http://localhost:{port}"
342
+ self._port_detection_complete = True
318
343
  self.logger.debug(f"Detected Socket.IO server on port {port}")
319
344
  return
320
345
  except Exception: # nosec B112 - intentional: skip ports that fail
321
346
  continue
322
347
 
323
- # Fall back to default
324
- self.server_port = NetworkConfig.DEFAULT_DASHBOARD_PORT
325
- self.server_url = f"http://localhost:{self.server_port}"
348
+ # Keep default port set in __init__, mark detection complete
349
+ self._port_detection_complete = True
326
350
  self.logger.debug(f"Using default Socket.IO server: {self.server_url}")
327
351
 
328
352
  def _create_client(self) -> Optional[socketio.AsyncClient]:
@@ -101,7 +101,9 @@ class HookServiceContainer:
101
101
  if self._state_manager is None:
102
102
  with self._init_lock:
103
103
  if self._state_manager is None:
104
- from .state_manager import StateManagerService
104
+ from claude_mpm.hooks.claude_hooks.services.state_manager import (
105
+ StateManagerService,
106
+ )
105
107
 
106
108
  self._state_manager = StateManagerService()
107
109
  return self._state_manager
@@ -114,7 +116,9 @@ class HookServiceContainer:
114
116
  if self._connection_manager is None:
115
117
  with self._init_lock:
116
118
  if self._connection_manager is None:
117
- from .connection_manager_http import ConnectionManagerService
119
+ from claude_mpm.hooks.claude_hooks.services.connection_manager_http import (
120
+ ConnectionManagerService,
121
+ )
118
122
 
119
123
  self._connection_manager = ConnectionManagerService()
120
124
  return self._connection_manager
@@ -127,7 +131,9 @@ class HookServiceContainer:
127
131
  if self._duplicate_detector is None:
128
132
  with self._init_lock:
129
133
  if self._duplicate_detector is None:
130
- from .duplicate_detector import DuplicateEventDetector
134
+ from claude_mpm.hooks.claude_hooks.services.duplicate_detector import (
135
+ DuplicateEventDetector,
136
+ )
131
137
 
132
138
  self._duplicate_detector = DuplicateEventDetector()
133
139
  return self._duplicate_detector
@@ -140,7 +146,9 @@ class HookServiceContainer:
140
146
  if self._response_tracking_manager is None:
141
147
  with self._init_lock:
142
148
  if self._response_tracking_manager is None:
143
- from ..response_tracking import ResponseTrackingManager
149
+ from claude_mpm.hooks.claude_hooks.response_tracking import (
150
+ ResponseTrackingManager,
151
+ )
144
152
 
145
153
  self._response_tracking_manager = ResponseTrackingManager()
146
154
  return self._response_tracking_manager
@@ -153,7 +161,9 @@ class HookServiceContainer:
153
161
  if self._memory_hook_manager is None:
154
162
  with self._init_lock:
155
163
  if self._memory_hook_manager is None:
156
- from ..memory_integration import MemoryHookManager
164
+ from claude_mpm.hooks.claude_hooks.memory_integration import (
165
+ MemoryHookManager,
166
+ )
157
167
 
158
168
  self._memory_hook_manager = MemoryHookManager()
159
169
  return self._memory_hook_manager
@@ -170,7 +180,9 @@ class HookServiceContainer:
170
180
  with self._init_lock:
171
181
  if self._auto_pause_handler is None:
172
182
  try:
173
- from ..auto_pause_handler import AutoPauseHandler
183
+ from claude_mpm.hooks.claude_hooks.auto_pause_handler import (
184
+ AutoPauseHandler,
185
+ )
174
186
 
175
187
  self._auto_pause_handler = AutoPauseHandler()
176
188
  except Exception:
@@ -197,7 +209,9 @@ class HookServiceContainer:
197
209
  if self._subagent_processor is None:
198
210
  with self._init_lock:
199
211
  if self._subagent_processor is None:
200
- from .subagent_processor import SubagentResponseProcessor
212
+ from claude_mpm.hooks.claude_hooks.services.subagent_processor import (
213
+ SubagentResponseProcessor,
214
+ )
201
215
 
202
216
  # Use provided dependencies or get from container
203
217
  sm = state_manager or self.get_state_manager()
@@ -223,7 +237,9 @@ class HookServiceContainer:
223
237
  if self._event_handlers is None:
224
238
  with self._init_lock:
225
239
  if self._event_handlers is None:
226
- from ..event_handlers import EventHandlers
240
+ from claude_mpm.hooks.claude_hooks.event_handlers import (
241
+ EventHandlers,
242
+ )
227
243
 
228
244
  if hook_handler is None:
229
245
  raise ValueError(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.6.33
3
+ Version: 5.6.35
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=0FjKy7oZHmAktOrZfX5b30udaYuk4tBuRZrvWGVLnoc,7
2
+ claude_mpm/VERSION,sha256=xe3eZEgC4fdpm_JlvNnT9oVYFmSxxs9wnYcLvnZj_eE,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
@@ -305,7 +305,7 @@ claude_mpm/core/output_style_manager.py,sha256=1N_SLBGcUAFIaI7HkhscXuwi_S6f5f6sZ
305
305
  claude_mpm/core/pm_hook_interceptor.py,sha256=92C8TrpK-XVQD8BiXbqs8lSCX72PU0KZG5oAjhf8GOQ,11197
306
306
  claude_mpm/core/service_registry.py,sha256=QpmAMWCov8XXaxQwE7WiNbgv6u_CRjpKPB64kLYvZKk,11722
307
307
  claude_mpm/core/session_manager.py,sha256=iEDZWKBYHSu001nFX8vFvH33RvQOW0eIgomWhFM53sw,12078
308
- claude_mpm/core/socketio_pool.py,sha256=exJYYR-EOT9be01LXTXsyHaU0dvWU9Dxzp2EKKb94n4,31497
308
+ claude_mpm/core/socketio_pool.py,sha256=MBpOYVoVvfkLSLGVdHFuwaFehs9AO5Fk2ouP1JEec4M,32660
309
309
  claude_mpm/core/system_context.py,sha256=zKSKOQfhmILE8SV31TIGhGPvZ7CkZtfFRQdpdLTQvQU,1565
310
310
  claude_mpm/core/tool_access_control.py,sha256=dpdxxp_77SuxGM2C7SsHUZbtysJmHw1rLDXIeOvS7IA,6428
311
311
  claude_mpm/core/types.py,sha256=Sv62QhMYvfxbt7oIGoAhhN_jxonFTeLRf-BuhxZ4vYw,7719
@@ -437,28 +437,44 @@ claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=YOMD4Ah003uMh7A454w8n
437
437
  claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=1KOGC19rYRNYbc1Tfe7FAP6AtvgOMSM5uEPxMi2N6-c,16323
438
438
  claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2fSZfepN7lI4P1meSQ,7862
439
439
  claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXqhPM0iRRZtCqHaLVQ6wDH42OH_M7Gt5GiFLyro,346
440
+ claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-314.pyc,sha256=tBzcQ_3WxkmgPTQAPd7uKgFGtz-Yb6r2hEgF9Y_Flwc,319
440
441
  claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=lw3g7dHPcJ258xtcmbXOk-tCqVz0JAc5PZ10LUfG4Zo,20829
442
+ claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-314.pyc,sha256=TW6wmI4uZSKYTZLvzRUo8a2BNrJRumyIPJEy5SwbPY0,21381
441
443
  claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc,sha256=SQX5iiP9bQZkLL-cj_2tlGH7lpAzarO0mYal7btj3tc,3521
444
+ claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-314.pyc,sha256=EsrmN8bVySuKI2cdojP30zm6kao4N-6Y57p0-AeJBYM,3966
442
445
  claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=NSsuyYiHY1rY6PPIceasOrzJ3f_qnvJnWimj3TbHuzk,51316
446
+ claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-314.pyc,sha256=ygzt-9jVNwEB8y9AlaRO7-DFxVh04td10zY14U8HPRg,51225
443
447
  claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=NQtvV9vs1OMKQTZWRQrAie83y4Q61mJ-QFawC2GnsUQ,32799
448
+ claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-314.pyc,sha256=Y42877bxn92Yjwep0Htoq9oHSCuyxBQ2EdJ0F0b6MRA,32590
449
+ claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-314.pyc,sha256=o_VDKXRxxNBrosgfuPQRLmzDC_zZtF0yOWxnYTdw0Yk,41573
444
450
  claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=1llucgjrun0H6q8V8_BXTHtkTiYAwNGyptluhoIi7ss,11185
451
+ claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-314.pyc,sha256=I4vC0wDRgWcosl44rxzCqeiLaubCPdwzn2mnMBcCe7o,11081
445
452
  claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc,sha256=E_pRoKx-mAB5gEv2_5TneMC_K10zj7FYCPwQPnPd88g,16228
453
+ claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-314.pyc,sha256=HGqXKBQrB8f01TCf7n07AeFgIF48bnBRrPxsuoZ6TdE,15820
446
454
  claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc,sha256=ZjcNfNY5Ht6FhalPeh7M7OzMffcey5iF4AVjDDg9kak,10694
455
+ claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-314.pyc,sha256=ck8ifVIoVPaMVVRcMgvsM8RfIHnQbwGBUVs25A-yQBw,10771
447
456
  claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=Hb4SqNzSN-JKzp8pMM3SbDMTCsUydypfXiDx4_4QvBI,1112
448
457
  claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=46y84lKi3KuExWyJgFcEfgLxrzQY3IjGRob_6I4hXp4,10196
449
458
  claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=uJH0CGsszvhlg7zfEI2JB7uuxXtYBk9Yey-u2F6VoNo,7582
450
- claude_mpm/hooks/claude_hooks/services/container.py,sha256=8cA8evVMsRBE1mvwovdzViTH-Wc0RKtTrAJrYvXrstc,12074
459
+ claude_mpm/hooks/claude_hooks/services/container.py,sha256=0bsBczEHwVMz8h3CL7ua6_B6CLi4ZCDu6ke2dUFkIpY,12738
451
460
  claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM9t0U1v2l_fuBwvNpVkl_0EF8Wu5KLHQ,3882
452
461
  claude_mpm/hooks/claude_hooks/services/protocols.py,sha256=vbGAhbg1vJVwyY6zQn5cNbrZYIW0XEr5h0cR2A5G0fc,8712
453
462
  claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=uuYJVsxIinmOhu7muqJsRZvFMN83YaoYoOWWIiORhr0,10898
454
463
  claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=Wq0CKzgBnAtJfxiWHTipjkmFbuvMGu1mqcmQoEMMyyQ,15039
455
464
  claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc,sha256=Ourc5IO3cUSZ9lg-1SKh5HaF01L5DmWXTRl38UN35NE,1145
465
+ claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-314.pyc,sha256=2sEfKbiRDzZ31YPdbcmYCyMD2RrsBvV2dz6rIUM4hwo,957
456
466
  claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc,sha256=a7ERR-95KADLqU8bgoPzpCvEPo0yoYjhfXq_u2sCKuk,9613
457
- claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc,sha256=h2w9kuP7UZdP29uLNwRehC-i_SutGhDQic7gl_LdcpM,14933
467
+ claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-314.pyc,sha256=IiHEGNWsa-DRr1m8ixEIHv_duHT5SorIcg1d2vZBR34,9627
468
+ claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc,sha256=3SkPihhEUk3S39IvnM3bZ-ijoLE0qqHMvoeeM-hebdk,15390
469
+ claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-314.pyc,sha256=eRT9Kt1X0AlA1r_W357BE47IgmKvHxR9mgtJR1easUg,18050
458
470
  claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc,sha256=Yy_REAUhJCiFjOhxeDb4v0qyEvEbUtCmXD9PAz40dhw,5321
471
+ claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-314.pyc,sha256=Xy9iNAtQMfXC_eW9rvumG9rFqK5t-QlLPmUahlqza_I,5341
459
472
  claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-311.pyc,sha256=rmXujh8AxeOajj_40rSug1QdKCFNl5cFjn_pQE6DExY,15962
473
+ claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-314.pyc,sha256=0YrvSRdqX6CI5Fh3_Oy-ax16HD4b0H9tbL87pqpS1Pk,20861
460
474
  claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc,sha256=FkVlm20olvS286fK1SKPBDo9tOy0A9hRW0o5Gkyszuc,12352
475
+ claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-314.pyc,sha256=dk8pUEtJS1CFnaQ62Wt4Z9E8-dePdqiP3ObrDgZLDVc,13101
461
476
  claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc,sha256=LILTBRAG9Wxpu_FmVod_5hnJO-wbaewqKrxEZ_GJTEI,14931
477
+ claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-314.pyc,sha256=Y_3P-WuOGBdmRbGj7CmsOofU5KzQ_K9vXFxKDYKZPwA,15104
462
478
  claude_mpm/hooks/failure_learning/__init__.py,sha256=iJ80AKFHiT8DjIH2a72DQVJvL6nAFrizNA2yTKwZ4rw,1805
463
479
  claude_mpm/hooks/failure_learning/failure_detection_hook.py,sha256=KENoB5N-dBm5hb0SxeIZtCvNKbmG2BKHOJSrSO-3Z_I,7500
464
480
  claude_mpm/hooks/failure_learning/fix_detection_hook.py,sha256=XUk1bnBVLdfhQ9AMQSvGsTSeFQsKsVud2wbWX-Jjor8,7164
@@ -1106,10 +1122,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
1106
1122
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
1107
1123
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
1108
1124
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
1109
- claude_mpm-5.6.33.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1110
- claude_mpm-5.6.33.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1111
- claude_mpm-5.6.33.dist-info/METADATA,sha256=8Efv-cMY5sX8vIi6qxwPynj7PzKJniSpxPPYExlFrb0,15245
1112
- claude_mpm-5.6.33.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1113
- claude_mpm-5.6.33.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1114
- claude_mpm-5.6.33.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1115
- claude_mpm-5.6.33.dist-info/RECORD,,
1125
+ claude_mpm-5.6.35.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1126
+ claude_mpm-5.6.35.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1127
+ claude_mpm-5.6.35.dist-info/METADATA,sha256=0b-IlQQmbEn7N6Aut3-6G4PwDdXpc2gZE0Ed1uOA3tY,15245
1128
+ claude_mpm-5.6.35.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1129
+ claude_mpm-5.6.35.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1130
+ claude_mpm-5.6.35.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1131
+ claude_mpm-5.6.35.dist-info/RECORD,,