entari-plugin-hyw 3.3.3__py3-none-any.whl → 3.3.4__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 entari-plugin-hyw might be problematic. Click here for more details.

@@ -11,31 +11,38 @@ class HYW:
11
11
  """
12
12
  def __init__(self, config: HYWConfig):
13
13
  self.config = config
14
- self.pipeline = ProcessingPipeline(config)
14
+ # No persistent pipeline - we create one per request to ensure thread safety
15
+ # self.pipeline = ProcessingPipeline(config)
15
16
  logger.info(f"HYW V2 (Ironclad) initialized - Model: {config.model_name}")
16
17
 
17
18
  async def agent(self, user_input: str, conversation_history: List[Dict] = None, images: List[str] = None,
18
19
  selected_model: str = None, selected_vision_model: str = None, local_mode: bool = False) -> Dict[str, Any]:
19
20
  """
20
21
  Main entry point for the plugin (called by __init__.py).
22
+ Creates a fresh pipeline instance for each request to avoid state contamination (race conditions).
21
23
  """
22
- # Note: 'images' handling is skipped for V2 initial stability MVP as per user focus on 'search hangs'.
23
- # We can re-integrate vision later, but for now we focus on Text/Search stability.
24
-
25
- # Delegate completely to pipeline
26
- result = await self.pipeline.execute(
27
- user_input,
28
- conversation_history or [],
29
- model_name=selected_model,
30
- images=images,
31
- selected_vision_model=selected_vision_model,
32
- )
33
- return result
24
+ pipeline = ProcessingPipeline(self.config)
25
+ try:
26
+ # Delegate completely to pipeline
27
+ result = await pipeline.execute(
28
+ user_input,
29
+ conversation_history or [],
30
+ model_name=selected_model,
31
+ images=images,
32
+ selected_vision_model=selected_vision_model,
33
+ )
34
+ return result
35
+ finally:
36
+ await pipeline.close()
34
37
 
35
38
  async def close(self):
36
39
  """Explicit async close method. NO __del__."""
37
- if self.pipeline:
38
- await self.pipeline.close()
40
+ # Close shared resources
41
+ try:
42
+ from ..utils.search import close_shared_crawler
43
+ await close_shared_crawler()
44
+ except Exception:
45
+ pass
39
46
 
40
47
  # Legacy Compatibility (optional attributes just to prevent blind attribute errors if referenced externally)
41
48
  # in V2 we strongly discourage accessing internal tools directly.
@@ -1058,8 +1058,5 @@ class ProcessingPipeline:
1058
1058
  await self.search_service.close()
1059
1059
  except Exception:
1060
1060
  pass
1061
- try:
1062
- from ..utils.search import close_shared_crawler
1063
- await close_shared_crawler()
1064
- except Exception:
1065
- pass
1061
+ # Do NOT close shared crawler here, as pipeline instances are now per-request.
1062
+ # Shared crawler lifecycle is managed by HYW.close() or global cleanup.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: entari_plugin_hyw
3
- Version: 3.3.3
3
+ Version: 3.3.4
4
4
  Summary: Use large language models to interpret chat messages
5
5
  Author-email: kumoSleeping <zjr2992@outlook.com>
6
6
  License: MIT
@@ -30,8 +30,8 @@ entari_plugin_hyw/assets/libs/tailwind.css,sha256=QlYLtFooDB4H5-2bxuS8DJD5L1_cZg
30
30
  entari_plugin_hyw/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  entari_plugin_hyw/core/config.py,sha256=onodNERVzpjZBhi8_asyO38T0Yfxr7rHL-sEdTAwepQ,1607
32
32
  entari_plugin_hyw/core/history.py,sha256=vqp7itwR5-KaqC4Ftmq6GOz7OM9GsiFJnSN9JJ2P6L4,5894
33
- entari_plugin_hyw/core/hyw.py,sha256=QwLB2YpUnzbVCWXcJF0uUeDAjxd4LWMzm9EjB9T1G1g,1671
34
- entari_plugin_hyw/core/pipeline.py,sha256=Lw_x3Z12-hQDGj9FtVqeJHM91Yy90LMmiX7SRp3T-wY,48346
33
+ entari_plugin_hyw/core/hyw.py,sha256=RCRjV9uYmvXysiliztphLP3VyUabrf0LY2Bk66W5JGA,1927
34
+ entari_plugin_hyw/core/pipeline.py,sha256=kejGXClgE9o7G6p7Kc3Kgh-AJYQqN7tA-Z3I5U3iuJU,48356
35
35
  entari_plugin_hyw/core/render.py,sha256=ypfjcTXptW_I0Z9tz4pZ9lJ6hdjYVq07UIiuApMuS9c,28193
36
36
  entari_plugin_hyw/core/render.py.bak,sha256=qMd6Tk0p6ItqGmErR6dkWRwCuKQYXINc7KRxnP-mb_s,48768
37
37
  entari_plugin_hyw/utils/__init__.py,sha256=TnkxDqYr0zgRE7TC92tVbUaY8m1UyyoLg2zvzQ8nMVI,84
@@ -40,7 +40,7 @@ entari_plugin_hyw/utils/misc.py,sha256=_7iHVYj_mJ6OGq6FU1s_cFeS1Ao-neBjZYd6eI2p9
40
40
  entari_plugin_hyw/utils/playwright_tool.py,sha256=ZZNkzFtUt_Gxny3Od4boBAgNF9J0N84uySatzn1Bwe4,1272
41
41
  entari_plugin_hyw/utils/prompts.py,sha256=Hbp1zVrrlXrOp6wI5YNoDaob-3VwKc-_ohJJQhw83no,3607
42
42
  entari_plugin_hyw/utils/search.py,sha256=5fjV3k--VjNIwsAT4aP82xKvsK7spx8X9H0HzPBUEQ4,10029
43
- entari_plugin_hyw-3.3.3.dist-info/METADATA,sha256=4w5sqcXnZd5SvgePYAcOpzCq-23MYk8j1uIycCA--FI,4646
44
- entari_plugin_hyw-3.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
45
- entari_plugin_hyw-3.3.3.dist-info/top_level.txt,sha256=TIDsn6XPs6KA5e3ezsE65JoXsy03ejDdrB41I4SPjmo,18
46
- entari_plugin_hyw-3.3.3.dist-info/RECORD,,
43
+ entari_plugin_hyw-3.3.4.dist-info/METADATA,sha256=_dZ6feG2Omxw2u4wbupIlm1umo8A51kyBLkFUDmllcs,4646
44
+ entari_plugin_hyw-3.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
45
+ entari_plugin_hyw-3.3.4.dist-info/top_level.txt,sha256=TIDsn6XPs6KA5e3ezsE65JoXsy03ejDdrB41I4SPjmo,18
46
+ entari_plugin_hyw-3.3.4.dist-info/RECORD,,