entari-plugin-hyw 3.5.0rc4__tar.gz → 3.5.0rc7__tar.gz

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.

Files changed (94) hide show
  1. {entari_plugin_hyw-3.5.0rc4/src/entari_plugin_hyw.egg-info → entari_plugin_hyw-3.5.0rc7}/PKG-INFO +2 -2
  2. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/pyproject.toml +2 -2
  3. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/pipeline.py +39 -14
  4. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/render_vue.py +2 -2
  5. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7/src/entari_plugin_hyw.egg-info}/PKG-INFO +2 -2
  6. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/MANIFEST.in +0 -0
  7. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/README.md +0 -0
  8. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/setup.cfg +0 -0
  9. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/__init__.py +0 -0
  10. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/index.html +0 -0
  11. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/anthropic.svg +0 -0
  12. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/cerebras.svg +0 -0
  13. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/deepseek.png +0 -0
  14. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/gemini.svg +0 -0
  15. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/google.svg +0 -0
  16. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/grok.png +0 -0
  17. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/huggingface.png +0 -0
  18. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/microsoft.svg +0 -0
  19. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/minimax.png +0 -0
  20. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/mistral.png +0 -0
  21. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/nvida.png +0 -0
  22. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/openai.svg +0 -0
  23. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/openrouter.png +0 -0
  24. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/perplexity.svg +0 -0
  25. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/qwen.png +0 -0
  26. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/xai.png +0 -0
  27. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/xiaomi.png +0 -0
  28. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/logos/zai.png +0 -0
  29. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/card-dist/vite.svg +0 -0
  30. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/anthropic.svg +0 -0
  31. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/cerebras.svg +0 -0
  32. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/deepseek.png +0 -0
  33. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/gemini.svg +0 -0
  34. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/google.svg +0 -0
  35. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/grok.png +0 -0
  36. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/huggingface.png +0 -0
  37. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/microsoft.svg +0 -0
  38. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/minimax.png +0 -0
  39. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/mistral.png +0 -0
  40. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/nvida.png +0 -0
  41. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/openai.svg +0 -0
  42. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/openrouter.png +0 -0
  43. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/perplexity.svg +0 -0
  44. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/qwen.png +0 -0
  45. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/xai.png +0 -0
  46. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/xiaomi.png +0 -0
  47. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/assets/icon/zai.png +0 -0
  48. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/.gitignore +0 -0
  49. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/README.md +0 -0
  50. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/index.html +0 -0
  51. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/package-lock.json +0 -0
  52. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/package.json +0 -0
  53. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/anthropic.svg +0 -0
  54. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/cerebras.svg +0 -0
  55. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/deepseek.png +0 -0
  56. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/gemini.svg +0 -0
  57. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/google.svg +0 -0
  58. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/grok.png +0 -0
  59. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/huggingface.png +0 -0
  60. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/microsoft.svg +0 -0
  61. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/minimax.png +0 -0
  62. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/mistral.png +0 -0
  63. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/nvida.png +0 -0
  64. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/openai.svg +0 -0
  65. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/openrouter.png +0 -0
  66. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/perplexity.svg +0 -0
  67. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/qwen.png +0 -0
  68. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/xai.png +0 -0
  69. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/xiaomi.png +0 -0
  70. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/logos/zai.png +0 -0
  71. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/public/vite.svg +0 -0
  72. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/App.vue +0 -0
  73. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/assets/vue.svg +0 -0
  74. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/components/HelloWorld.vue +0 -0
  75. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/components/MarkdownContent.vue +0 -0
  76. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/components/SectionCard.vue +0 -0
  77. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/components/StageCard.vue +0 -0
  78. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/main.ts +0 -0
  79. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/style.css +0 -0
  80. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/test_regex.js +0 -0
  81. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/src/types.ts +0 -0
  82. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/tsconfig.app.json +0 -0
  83. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/tsconfig.json +0 -0
  84. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/tsconfig.node.json +0 -0
  85. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/card-ui/vite.config.ts +0 -0
  86. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/history.py +0 -0
  87. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/image_cache.py +0 -0
  88. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/misc.py +0 -0
  89. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/prompts.py +0 -0
  90. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw/search.py +0 -0
  91. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw.egg-info/SOURCES.txt +0 -0
  92. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw.egg-info/dependency_links.txt +0 -0
  93. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw.egg-info/requires.txt +0 -0
  94. {entari_plugin_hyw-3.5.0rc4 → entari_plugin_hyw-3.5.0rc7}/src/entari_plugin_hyw.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: entari_plugin_hyw
3
- Version: 3.5.0rc4
3
+ Version: 3.5.0rc7
4
4
  Summary: Use large language models to interpret chat messages
5
5
  Author-email: kumoSleeping <zjr2992@outlook.com>
6
6
  License: MIT
@@ -14,7 +14,7 @@ Classifier: License :: OSI Approved :: MIT License
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
- Requires-Python: >=3.10
17
+ Requires-Python: <3.13,>=3.10
18
18
  Description-Content-Type: text/markdown
19
19
  Requires-Dist: arclet-entari[full]>=0.16.5
20
20
  Requires-Dist: openai
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "entari_plugin_hyw"
7
- version = "3.5.0-rc4"
7
+ version = "3.5.0-rc7"
8
8
  description = "Use large language models to interpret chat messages"
9
9
  authors = [{name = "kumoSleeping", email = "zjr2992@outlook.com"}]
10
10
  dependencies = [
@@ -16,7 +16,7 @@ dependencies = [
16
16
  "jinja2>=3.0",
17
17
  "ddgs>=9.10.0",
18
18
  ]
19
- requires-python = ">=3.10"
19
+ requires-python = ">=3.10,<3.13"
20
20
  readme = "README.md"
21
21
  license = {text = "MIT"}
22
22
  keywords = ["entari", "llm", "ai", "bot", "chat"]
@@ -798,15 +798,18 @@ class ProcessingPipeline:
798
798
  # Cancel all background image tasks on error
799
799
  if hasattr(self, '_image_search_tasks') and self._image_search_tasks:
800
800
  for task in self._image_search_tasks:
801
- if not task.done():
802
- task.cancel()
801
+ if not task.done(): task.cancel()
802
+ # Wait briefly for cleanup
803
+ await asyncio.wait(self._image_search_tasks, timeout=0.1)
803
804
  self._image_search_tasks.clear()
805
+
804
806
  from .image_cache import get_image_cache
805
807
  cache = get_image_cache()
806
808
  if cache._pending:
807
- for task in cache._pending.values():
808
- if not task.done():
809
- task.cancel()
809
+ pending_tasks = list(cache._pending.values())
810
+ for task in pending_tasks:
811
+ if not task.done(): task.cancel()
812
+ await asyncio.wait(pending_tasks, timeout=0.1)
810
813
  cache._pending.clear()
811
814
  return {
812
815
  "llm_response": f"I encountered a critical error: {e}",
@@ -941,7 +944,7 @@ class ProcessingPipeline:
941
944
  return f"[{unified_id_map[oid]}]"
942
945
  if oid in image_url_map:
943
946
  return "" # Remove standalone image citations like [5] if they aren't in ![]()
944
- return match.group(0)
947
+ return "" # Remove hallucinated or invalid citations like [99] if not found in results
945
948
 
946
949
  return body_pattern.sub(sub_norm_ref, text)
947
950
 
@@ -993,12 +996,12 @@ class ProcessingPipeline:
993
996
  item["is_image"] = True
994
997
  self.all_web_results.append(item)
995
998
  logger.info(f"Background image search completed: {len(images)} images for query '{query}'")
996
- except asyncio.CancelledError:
997
- # Task was cancelled when agent ended - this is expected
998
- logger.debug(f"Background image search cancelled for query '{query}' (agent ended)")
999
- raise # Re-raise to properly handle cancellation
1000
- except Exception as e:
1001
- logger.error(f"Background image search failed for query '{query}': {e}")
999
+ except (asyncio.CancelledError, Exception) as e:
1000
+ # Silently handle cancellation or minor errors in background pre-warming
1001
+ if isinstance(e, asyncio.CancelledError):
1002
+ logger.debug(f"Background image search cancelled for query '{query}'")
1003
+ else:
1004
+ logger.error(f"Background image search failed for query '{query}': {e}")
1002
1005
 
1003
1006
  task = asyncio.create_task(_background_image_search())
1004
1007
  self._image_search_tasks.append(task)
@@ -1309,5 +1312,27 @@ class ProcessingPipeline:
1309
1312
  await self.search_service.close()
1310
1313
  except Exception:
1311
1314
  pass
1312
- # Do NOT close shared crawler here, as pipeline instances are now per-request.
1313
- # Shared crawler lifecycle is managed globally.
1315
+
1316
+ # Gracefully handle background tasks completion
1317
+ if hasattr(self, '_image_search_tasks') and self._image_search_tasks:
1318
+ for task in self._image_search_tasks:
1319
+ if not task.done(): task.cancel()
1320
+ try:
1321
+ # Wait briefly for cancellation to propagate
1322
+ await asyncio.wait(self._image_search_tasks, timeout=0.2)
1323
+ except Exception: pass
1324
+ self._image_search_tasks = []
1325
+
1326
+ # Also cleanup image cache pending tasks if any
1327
+ try:
1328
+ from .image_cache import get_image_cache
1329
+ cache = get_image_cache()
1330
+ if cache._pending:
1331
+ pending = list(cache._pending.values())
1332
+ for task in pending:
1333
+ if not task.done(): task.cancel()
1334
+ await asyncio.wait(pending, timeout=0.2)
1335
+ cache._pending.clear()
1336
+ except Exception: pass
1337
+
1338
+ self.all_web_results = []
@@ -93,7 +93,7 @@ class ContentRenderer:
93
93
  "theme_color": "#ef4444",
94
94
  }
95
95
  await self._page.evaluate("(data) => window.updateRenderData(data)", warmup_data)
96
- await asyncio.sleep(0.1) # Let Vue render
96
+ # await asyncio.sleep(0.1) # Removed as requested
97
97
  logger.success("ContentRenderer: Browser + page ready!")
98
98
  except Exception as e:
99
99
  logger.error(f"ContentRenderer: Failed to start browser: {e}")
@@ -224,7 +224,7 @@ class ContentRenderer:
224
224
  await self._page.evaluate("(data) => window.updateRenderData(data)", render_data)
225
225
 
226
226
  # Wait for Vue to update DOM
227
- await asyncio.sleep(0.1)
227
+ # await asyncio.sleep(0.1) # Removed as requested
228
228
 
229
229
  # Wait for images to load
230
230
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: entari_plugin_hyw
3
- Version: 3.5.0rc4
3
+ Version: 3.5.0rc7
4
4
  Summary: Use large language models to interpret chat messages
5
5
  Author-email: kumoSleeping <zjr2992@outlook.com>
6
6
  License: MIT
@@ -14,7 +14,7 @@ Classifier: License :: OSI Approved :: MIT License
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
- Requires-Python: >=3.10
17
+ Requires-Python: <3.13,>=3.10
18
18
  Description-Content-Type: text/markdown
19
19
  Requires-Dist: arclet-entari[full]>=0.16.5
20
20
  Requires-Dist: openai