beswarm 0.1.84__tar.gz → 0.1.85__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 (141) hide show
  1. {beswarm-0.1.84 → beswarm-0.1.85}/PKG-INFO +1 -1
  2. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/worker.py +18 -5
  3. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/utils.py +22 -0
  4. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm.egg-info/PKG-INFO +1 -1
  5. {beswarm-0.1.84 → beswarm-0.1.85}/pyproject.toml +1 -1
  6. {beswarm-0.1.84 → beswarm-0.1.85}/MANIFEST.in +0 -0
  7. {beswarm-0.1.84 → beswarm-0.1.85}/README.md +0 -0
  8. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/__init__.py +0 -0
  9. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/main.py +0 -0
  10. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/setup.py +0 -0
  11. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/__init__.py +0 -0
  12. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/__init__.py +0 -0
  13. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/log_config.py +0 -0
  14. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/models.py +0 -0
  15. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/request.py +0 -0
  16. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/response.py +0 -0
  17. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/test/test_base_api.py +0 -0
  18. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/test/test_geminimask.py +0 -0
  19. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/test/test_image.py +0 -0
  20. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/test/test_payload.py +0 -0
  21. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/core/utils.py +0 -0
  22. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/__init__.py +0 -0
  23. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/audio.py +0 -0
  24. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/base.py +0 -0
  25. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/chatgpt.py +0 -0
  26. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/claude.py +0 -0
  27. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/duckduckgo.py +0 -0
  28. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/gemini.py +0 -0
  29. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/groq.py +0 -0
  30. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/models/vertex.py +0 -0
  31. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/__init__.py +0 -0
  32. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/arXiv.py +0 -0
  33. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/config.py +0 -0
  34. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/excute_command.py +0 -0
  35. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/get_time.py +0 -0
  36. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/image.py +0 -0
  37. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/list_directory.py +0 -0
  38. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/read_file.py +0 -0
  39. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/read_image.py +0 -0
  40. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/readonly.py +0 -0
  41. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/registry.py +0 -0
  42. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/run_python.py +0 -0
  43. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/websearch.py +0 -0
  44. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/plugins/write_file.py +0 -0
  45. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/utils/__init__.py +0 -0
  46. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/utils/prompt.py +0 -0
  47. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/src/aient/utils/scripts.py +0 -0
  48. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/chatgpt.py +0 -0
  49. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/claude.py +0 -0
  50. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test.py +0 -0
  51. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_API.py +0 -0
  52. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_Deepbricks.py +0 -0
  53. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_Web_crawler.py +0 -0
  54. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_aiwaves.py +0 -0
  55. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_aiwaves_arxiv.py +0 -0
  56. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_ask_gemini.py +0 -0
  57. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_class.py +0 -0
  58. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_claude.py +0 -0
  59. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_claude_zh_char.py +0 -0
  60. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_ddg_search.py +0 -0
  61. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_download_pdf.py +0 -0
  62. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_gemini.py +0 -0
  63. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_get_token_dict.py +0 -0
  64. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_google_search.py +0 -0
  65. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_jieba.py +0 -0
  66. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_json.py +0 -0
  67. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_logging.py +0 -0
  68. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_ollama.py +0 -0
  69. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_plugin.py +0 -0
  70. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_py_run.py +0 -0
  71. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_requests.py +0 -0
  72. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_search.py +0 -0
  73. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_tikitoken.py +0 -0
  74. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_token.py +0 -0
  75. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_url.py +0 -0
  76. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_whisper.py +0 -0
  77. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_wildcard.py +0 -0
  78. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/aient/test/test_yjh.py +0 -0
  79. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/prompt.py +0 -0
  80. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/README.md +0 -0
  81. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  82. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  83. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  84. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  85. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  86. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  87. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  88. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  89. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  90. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  91. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  92. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  93. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  94. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  95. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  96. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  97. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  98. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  99. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  100. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  101. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  102. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  103. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  104. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  105. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  106. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  107. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/README.md +0 -0
  108. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/c-tags.scm +0 -0
  109. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  110. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  111. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/dart-tags.scm +0 -0
  112. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  113. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  114. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/elm-tags.scm +0 -0
  115. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/go-tags.scm +0 -0
  116. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  117. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/java-tags.scm +0 -0
  118. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  119. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  120. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  121. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/php-tags.scm +0 -0
  122. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/python-tags.scm +0 -0
  123. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/ql-tags.scm +0 -0
  124. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  125. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/rust-tags.scm +0 -0
  126. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/scala-tags.scm +0 -0
  127. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  128. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/__init__.py +0 -0
  129. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/click.py +0 -0
  130. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/edit_file.py +0 -0
  131. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/planner.py +0 -0
  132. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/repomap.py +0 -0
  133. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/screenshot.py +0 -0
  134. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/search_arxiv.py +0 -0
  135. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/search_web.py +0 -0
  136. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm/tools/think.py +0 -0
  137. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm.egg-info/SOURCES.txt +0 -0
  138. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm.egg-info/dependency_links.txt +0 -0
  139. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm.egg-info/requires.txt +0 -0
  140. {beswarm-0.1.84 → beswarm-0.1.85}/beswarm.egg-info/top_level.txt +0 -0
  141. {beswarm-0.1.84 → beswarm-0.1.85}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beswarm
3
- Version: 0.1.84
3
+ Version: 0.1.85
4
4
  Summary: MAS
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -3,12 +3,13 @@ import re
3
3
  import copy
4
4
  import json
5
5
  import platform
6
+ from pathlib import Path
6
7
  from datetime import datetime
7
8
 
8
9
  from ..aient.src.aient.models import chatgpt
9
10
  from ..aient.src.aient.plugins import register_tool, get_function_call_list
10
11
  from ..prompt import worker_system_prompt, instruction_system_prompt
11
- from ..utils import extract_xml_content, get_current_screen_image_message
12
+ from ..utils import extract_xml_content, get_current_screen_image_message, replace_xml_content
12
13
 
13
14
  @register_tool()
14
15
  async def worker(goal, tools, work_dir, cache_messages=None):
@@ -48,7 +49,13 @@ async def worker(goal, tools, work_dir, cache_messages=None):
48
49
  "function_call_max_loop": 100,
49
50
  }
50
51
  if cache_messages:
51
- work_agent_config["cache_messages"] = cache_messages
52
+ if isinstance(cache_messages, bool) and cache_messages == True:
53
+ cache_file_path = Path(work_dir) / ".beswarm" / "work_agent_conversation_history.json"
54
+ if cache_file_path.exists():
55
+ with cache_file_path.open("r", encoding="utf-8") as f:
56
+ cache_messages = json.load(f)
57
+ first_user_message = replace_xml_content(cache_messages[1]["content"], "goal", goal)
58
+ work_agent_config["cache_messages"] = cache_messages[0:1] + [{"role": "user", "content": first_user_message}] + cache_messages[2:]
52
59
 
53
60
  instruction_agent_config = {
54
61
  "api_key": os.getenv("API_KEY"),
@@ -131,7 +138,7 @@ async def worker(goal, tools, work_dir, cache_messages=None):
131
138
  if conversation_history == []:
132
139
  next_instruction = (
133
140
  "任务描述:\n"
134
- f"{goal}\n\n"
141
+ f"<goal>{goal}</goal>\n\n"
135
142
  "现在开始执行第一步:\n"
136
143
  f"{next_instruction}"
137
144
  )
@@ -186,7 +193,13 @@ async def worker_gen(goal, tools, work_dir, cache_messages=None):
186
193
  "function_call_max_loop": 100,
187
194
  }
188
195
  if cache_messages:
189
- work_agent_config["cache_messages"] = cache_messages
196
+ if isinstance(cache_messages, bool) and cache_messages == True:
197
+ cache_file_path = Path(work_dir) / ".beswarm" / "work_agent_conversation_history.json"
198
+ if cache_file_path.exists():
199
+ with cache_file_path.open("r", encoding="utf-8") as f:
200
+ cache_messages = json.load(f)
201
+ first_user_message = replace_xml_content(cache_messages[1]["content"], "goal", goal)
202
+ work_agent_config["cache_messages"] = cache_messages[0:1] + [{"role": "user", "content": first_user_message}] + cache_messages[2:]
190
203
 
191
204
  instruction_agent_config = {
192
205
  "api_key": os.getenv("API_KEY"),
@@ -270,7 +283,7 @@ async def worker_gen(goal, tools, work_dir, cache_messages=None):
270
283
  if conversation_history == []:
271
284
  next_instruction = (
272
285
  "任务描述:\n"
273
- f"{goal}\n\n"
286
+ f"<goal>{goal}</goal>\n\n"
274
287
  "现在开始执行第一步:\n"
275
288
  f"{next_instruction}"
276
289
  )
@@ -10,6 +10,28 @@ def extract_xml_content(text, xml_tag):
10
10
  return ''
11
11
  return result
12
12
 
13
+ def replace_xml_content(original_string: str, tag_name: str, replacement_content: str) -> str:
14
+ """
15
+ 将指定XML标签内的内容替换为新内容。
16
+
17
+ 此函数使用正则表达式查找所有匹配的XML标签对(例如 `<tag>...</tag>`),
18
+ 并将其中的内容替换为 `replacement_content`。
19
+
20
+ Args:
21
+ original_string (str): 包含XML标记的原始字符串。
22
+ tag_name (str): 要定位的XML标签的名称(不带尖括号)。
23
+ replacement_content (str): 用于替换标签内部内容的新字符串。
24
+
25
+ Returns:
26
+ str: 返回内容已被替换的新字符串。如果未找到匹配的标签,则返回原始字符串。
27
+ """
28
+ pattern = f"<{tag_name}>.*?<\\/{tag_name}>"
29
+ replacement = f"<{tag_name}>{replacement_content}</{tag_name}>"
30
+
31
+ new_string = re.sub(pattern, replacement, original_string, flags=re.DOTALL)
32
+
33
+ return new_string
34
+
13
35
  import io
14
36
  import base64
15
37
  from .aient.src.aient.core.utils import get_image_message, get_text_message
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beswarm
3
- Version: 0.1.84
3
+ Version: 0.1.85
4
4
  Summary: MAS
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "beswarm"
3
- version = "0.1.84"
3
+ version = "0.1.85"
4
4
  description = "MAS"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes