aient 1.1.25__tar.gz → 1.1.27__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.
Files changed (81) hide show
  1. {aient-1.1.25/src/aient.egg-info → aient-1.1.27}/PKG-INFO +1 -1
  2. {aient-1.1.25 → aient-1.1.27}/setup.py +1 -1
  3. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/excute_command.py +1 -14
  4. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/write_file.py +1 -13
  5. {aient-1.1.25 → aient-1.1.27}/src/aient/utils/scripts.py +51 -9
  6. {aient-1.1.25 → aient-1.1.27/src/aient.egg-info}/PKG-INFO +1 -1
  7. {aient-1.1.25 → aient-1.1.27}/LICENSE +0 -0
  8. {aient-1.1.25 → aient-1.1.27}/MANIFEST.in +0 -0
  9. {aient-1.1.25 → aient-1.1.27}/README.md +0 -0
  10. {aient-1.1.25 → aient-1.1.27}/setup.cfg +0 -0
  11. {aient-1.1.25 → aient-1.1.27}/src/aient/__init__.py +0 -0
  12. {aient-1.1.25 → aient-1.1.27}/src/aient/core/.git +0 -0
  13. {aient-1.1.25 → aient-1.1.27}/src/aient/core/.gitignore +0 -0
  14. {aient-1.1.25 → aient-1.1.27}/src/aient/core/__init__.py +0 -0
  15. {aient-1.1.25 → aient-1.1.27}/src/aient/core/log_config.py +0 -0
  16. {aient-1.1.25 → aient-1.1.27}/src/aient/core/models.py +0 -0
  17. {aient-1.1.25 → aient-1.1.27}/src/aient/core/request.py +0 -0
  18. {aient-1.1.25 → aient-1.1.27}/src/aient/core/response.py +0 -0
  19. {aient-1.1.25 → aient-1.1.27}/src/aient/core/test/test_base_api.py +0 -0
  20. {aient-1.1.25 → aient-1.1.27}/src/aient/core/test/test_geminimask.py +0 -0
  21. {aient-1.1.25 → aient-1.1.27}/src/aient/core/test/test_image.py +0 -0
  22. {aient-1.1.25 → aient-1.1.27}/src/aient/core/test/test_payload.py +0 -0
  23. {aient-1.1.25 → aient-1.1.27}/src/aient/core/utils.py +0 -0
  24. {aient-1.1.25 → aient-1.1.27}/src/aient/models/__init__.py +0 -0
  25. {aient-1.1.25 → aient-1.1.27}/src/aient/models/audio.py +0 -0
  26. {aient-1.1.25 → aient-1.1.27}/src/aient/models/base.py +0 -0
  27. {aient-1.1.25 → aient-1.1.27}/src/aient/models/chatgpt.py +0 -0
  28. {aient-1.1.25 → aient-1.1.27}/src/aient/models/claude.py +0 -0
  29. {aient-1.1.25 → aient-1.1.27}/src/aient/models/duckduckgo.py +0 -0
  30. {aient-1.1.25 → aient-1.1.27}/src/aient/models/gemini.py +0 -0
  31. {aient-1.1.25 → aient-1.1.27}/src/aient/models/groq.py +0 -0
  32. {aient-1.1.25 → aient-1.1.27}/src/aient/models/vertex.py +0 -0
  33. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/__init__.py +0 -0
  34. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/arXiv.py +0 -0
  35. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/config.py +0 -0
  36. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/get_time.py +0 -0
  37. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/image.py +0 -0
  38. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/list_directory.py +0 -0
  39. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/read_file.py +0 -0
  40. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/read_image.py +0 -0
  41. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/readonly.py +0 -0
  42. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/registry.py +0 -0
  43. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/run_python.py +0 -0
  44. {aient-1.1.25 → aient-1.1.27}/src/aient/plugins/websearch.py +0 -0
  45. {aient-1.1.25 → aient-1.1.27}/src/aient/prompt/__init__.py +0 -0
  46. {aient-1.1.25 → aient-1.1.27}/src/aient/prompt/agent.py +0 -0
  47. {aient-1.1.25 → aient-1.1.27}/src/aient/utils/__init__.py +0 -0
  48. {aient-1.1.25 → aient-1.1.27}/src/aient/utils/prompt.py +0 -0
  49. {aient-1.1.25 → aient-1.1.27}/src/aient.egg-info/SOURCES.txt +0 -0
  50. {aient-1.1.25 → aient-1.1.27}/src/aient.egg-info/dependency_links.txt +0 -0
  51. {aient-1.1.25 → aient-1.1.27}/src/aient.egg-info/requires.txt +0 -0
  52. {aient-1.1.25 → aient-1.1.27}/src/aient.egg-info/top_level.txt +0 -0
  53. {aient-1.1.25 → aient-1.1.27}/test/test.py +0 -0
  54. {aient-1.1.25 → aient-1.1.27}/test/test_API.py +0 -0
  55. {aient-1.1.25 → aient-1.1.27}/test/test_Deepbricks.py +0 -0
  56. {aient-1.1.25 → aient-1.1.27}/test/test_Web_crawler.py +0 -0
  57. {aient-1.1.25 → aient-1.1.27}/test/test_aiwaves.py +0 -0
  58. {aient-1.1.25 → aient-1.1.27}/test/test_aiwaves_arxiv.py +0 -0
  59. {aient-1.1.25 → aient-1.1.27}/test/test_ask_gemini.py +0 -0
  60. {aient-1.1.25 → aient-1.1.27}/test/test_class.py +0 -0
  61. {aient-1.1.25 → aient-1.1.27}/test/test_claude.py +0 -0
  62. {aient-1.1.25 → aient-1.1.27}/test/test_claude_zh_char.py +0 -0
  63. {aient-1.1.25 → aient-1.1.27}/test/test_ddg_search.py +0 -0
  64. {aient-1.1.25 → aient-1.1.27}/test/test_download_pdf.py +0 -0
  65. {aient-1.1.25 → aient-1.1.27}/test/test_gemini.py +0 -0
  66. {aient-1.1.25 → aient-1.1.27}/test/test_get_token_dict.py +0 -0
  67. {aient-1.1.25 → aient-1.1.27}/test/test_google_search.py +0 -0
  68. {aient-1.1.25 → aient-1.1.27}/test/test_jieba.py +0 -0
  69. {aient-1.1.25 → aient-1.1.27}/test/test_json.py +0 -0
  70. {aient-1.1.25 → aient-1.1.27}/test/test_logging.py +0 -0
  71. {aient-1.1.25 → aient-1.1.27}/test/test_ollama.py +0 -0
  72. {aient-1.1.25 → aient-1.1.27}/test/test_plugin.py +0 -0
  73. {aient-1.1.25 → aient-1.1.27}/test/test_py_run.py +0 -0
  74. {aient-1.1.25 → aient-1.1.27}/test/test_requests.py +0 -0
  75. {aient-1.1.25 → aient-1.1.27}/test/test_search.py +0 -0
  76. {aient-1.1.25 → aient-1.1.27}/test/test_tikitoken.py +0 -0
  77. {aient-1.1.25 → aient-1.1.27}/test/test_token.py +0 -0
  78. {aient-1.1.25 → aient-1.1.27}/test/test_url.py +0 -0
  79. {aient-1.1.25 → aient-1.1.27}/test/test_whisper.py +0 -0
  80. {aient-1.1.25 → aient-1.1.27}/test/test_wildcard.py +0 -0
  81. {aient-1.1.25 → aient-1.1.27}/test/test_yjh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.1.25
3
+ Version: 1.1.27
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
4
4
 
5
5
  setup(
6
6
  name="aient",
7
- version="1.1.25",
7
+ version="1.1.27",
8
8
  description="Aient: The Awakening of Agent.",
9
9
  long_description=Path.open(Path("README.md"), encoding="utf-8").read(),
10
10
  long_description_content_type="text/markdown",
@@ -1,10 +1,9 @@
1
1
  import subprocess
2
2
  from .registry import register_tool
3
- from ..utils.scripts import sandbox
3
+ from ..utils.scripts import sandbox, unescape_html
4
4
 
5
5
  import re
6
6
  import os
7
- import html
8
7
  import select
9
8
 
10
9
  # 检查是否在 Unix-like 系统上 (pty 模块主要用于 Unix)
@@ -39,18 +38,6 @@ def compare_line(line: str) -> bool:
39
38
  # print(f"similarity: {similarity}")
40
39
  return similarity > 0.89
41
40
 
42
- def unescape_html(input_string: str) -> str:
43
- """
44
- 将字符串中的 HTML 实体(例如 &)转换回其原始字符(例如 &)。
45
-
46
- Args:
47
- input_string: 包含 HTML 实体的输入字符串。
48
-
49
- Returns:
50
- 转换后的字符串。
51
- """
52
- return html.unescape(input_string)
53
-
54
41
  def get_python_executable(command: str) -> str:
55
42
  """
56
43
  获取 Python 可执行文件的路径。
@@ -1,19 +1,7 @@
1
1
  from .registry import register_tool
2
+ from ..utils.scripts import unescape_html
2
3
 
3
4
  import os
4
- import html
5
-
6
- def unescape_html(input_string: str) -> str:
7
- """
8
- 将字符串中的 HTML 实体(例如 &)转换回其原始字符(例如 &)。
9
-
10
- Args:
11
- input_string: 包含 HTML 实体的输入字符串。
12
-
13
- Returns:
14
- 转换后的字符串。
15
- """
16
- return html.unescape(input_string)
17
5
 
18
6
  @register_tool()
19
7
  def write_to_file(path, content, mode='w'):
@@ -202,6 +202,19 @@ def parse_tools_from_cursor_prompt(text):
202
202
  print(f"解析 JSON 时出错: {e}")
203
203
  return []
204
204
 
205
+ import html
206
+ def unescape_html(input_string: str) -> str:
207
+ """
208
+ 将字符串中的 HTML 实体(例如 &)转换回其原始字符(例如 &)。
209
+
210
+ Args:
211
+ input_string: 包含 HTML 实体的输入字符串。
212
+
213
+ Returns:
214
+ 转换后的字符串。
215
+ """
216
+ return html.unescape(input_string)
217
+
205
218
  import sys
206
219
  import shlex
207
220
  import builtins
@@ -241,17 +254,46 @@ def _sandboxed_open(file, mode='r', *args, **kwargs):
241
254
 
242
255
  builtins.open = _sandboxed_open
243
256
 
244
- # 2. 智能判断原始命令是脚本还是模块,并执行
257
+ # 2. 智能判断原始命令是脚本、模块还是代码字符串,并执行
245
258
  original_argv = sys.argv[1:]
246
- if original_argv and original_argv[0] == '-m':
247
- sys.argv = original_argv[1:]
248
- runpy.run_module(sys.argv[0], run_name='__main__')
249
- elif original_argv:
250
- target_path = original_argv[0]
251
- sys.argv = original_argv
259
+
260
+ action = None
261
+ action_arg = None
262
+ passthrough_args = []
263
+ i = 0
264
+ while i < len(original_argv):
265
+ arg = original_argv[i]
266
+ if arg == '-m':
267
+ action = 'module'
268
+ if i + 1 < len(original_argv):
269
+ action_arg = original_argv[i+1]
270
+ passthrough_args = original_argv[i+2:]
271
+ break
272
+ elif arg == '-c':
273
+ action = 'command'
274
+ if i + 1 < len(original_argv):
275
+ action_arg = original_argv[i+1]
276
+ passthrough_args = original_argv[i+2:]
277
+ break
278
+ elif arg.startswith('-'):
279
+ i += 1
280
+ else:
281
+ action = 'file'
282
+ action_arg = arg
283
+ passthrough_args = original_argv[i+1:]
284
+ break
285
+
286
+ if action == 'module' and action_arg:
287
+ sys.argv = [action_arg] + passthrough_args
288
+ runpy.run_module(action_arg, run_name='__main__')
289
+ elif action == 'command' and action_arg:
290
+ sys.argv = ['-c'] + passthrough_args
291
+ exec(action_arg, {'__name__': '__main__'})
292
+ elif action == 'file' and action_arg:
293
+ sys.argv = [action_arg] + passthrough_args
252
294
  # 使用原始的 open 来读取要执行的脚本,因为它本身不应受沙箱限制
253
- with original_open(target_path, 'r') as f:
254
- code = compile(f.read(), target_path, 'exec')
295
+ with original_open(action_arg, 'r') as f:
296
+ code = compile(f.read(), action_arg, 'exec')
255
297
  exec(code, {'__name__': '__main__'})
256
298
  else:
257
299
  pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.1.25
3
+ Version: 1.1.27
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes