beswarm 0.2.20__tar.gz → 0.2.21__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 (149) hide show
  1. {beswarm-0.2.20 → beswarm-0.2.21}/PKG-INFO +1 -1
  2. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/setup.py +1 -1
  3. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/request.py +3 -1
  4. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/response.py +8 -2
  5. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/search_web.py +8 -3
  6. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm.egg-info/PKG-INFO +1 -1
  7. {beswarm-0.2.20 → beswarm-0.2.21}/pyproject.toml +1 -1
  8. {beswarm-0.2.20 → beswarm-0.2.21}/MANIFEST.in +0 -0
  9. {beswarm-0.2.20 → beswarm-0.2.21}/README.md +0 -0
  10. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/__init__.py +0 -0
  11. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/main.py +0 -0
  12. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/__init__.py +0 -0
  13. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/__init__.py +0 -0
  14. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/log_config.py +0 -0
  15. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/models.py +0 -0
  16. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/test/test_base_api.py +0 -0
  17. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/test/test_geminimask.py +0 -0
  18. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/test/test_image.py +0 -0
  19. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/test/test_payload.py +0 -0
  20. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/core/utils.py +0 -0
  21. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/__init__.py +0 -0
  22. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/audio.py +0 -0
  23. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/base.py +0 -0
  24. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/chatgpt.py +0 -0
  25. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/claude.py +0 -0
  26. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/duckduckgo.py +0 -0
  27. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/gemini.py +0 -0
  28. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/groq.py +0 -0
  29. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/models/vertex.py +0 -0
  30. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/__init__.py +0 -0
  31. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/arXiv.py +0 -0
  32. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/config.py +0 -0
  33. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/excute_command.py +0 -0
  34. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/get_time.py +0 -0
  35. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/image.py +0 -0
  36. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/list_directory.py +0 -0
  37. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/read_file.py +0 -0
  38. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/read_image.py +0 -0
  39. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/readonly.py +0 -0
  40. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/registry.py +0 -0
  41. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/run_python.py +0 -0
  42. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/websearch.py +0 -0
  43. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/plugins/write_file.py +0 -0
  44. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/utils/__init__.py +0 -0
  45. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/utils/prompt.py +0 -0
  46. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/src/aient/utils/scripts.py +0 -0
  47. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/chatgpt.py +0 -0
  48. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/claude.py +0 -0
  49. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test.py +0 -0
  50. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_API.py +0 -0
  51. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_Deepbricks.py +0 -0
  52. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_Web_crawler.py +0 -0
  53. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_aiwaves.py +0 -0
  54. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_aiwaves_arxiv.py +0 -0
  55. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_ask_gemini.py +0 -0
  56. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_class.py +0 -0
  57. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_claude.py +0 -0
  58. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_claude_zh_char.py +0 -0
  59. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_ddg_search.py +0 -0
  60. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_download_pdf.py +0 -0
  61. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_gemini.py +0 -0
  62. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_get_token_dict.py +0 -0
  63. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_google_search.py +0 -0
  64. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_jieba.py +0 -0
  65. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_json.py +0 -0
  66. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_logging.py +0 -0
  67. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_ollama.py +0 -0
  68. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_plugin.py +0 -0
  69. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_py_run.py +0 -0
  70. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_requests.py +0 -0
  71. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_search.py +0 -0
  72. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_tikitoken.py +0 -0
  73. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_token.py +0 -0
  74. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_url.py +0 -0
  75. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_whisper.py +0 -0
  76. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_wildcard.py +0 -0
  77. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/aient/test/test_yjh.py +0 -0
  78. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/bemcp/bemcp/__init__.py +0 -0
  79. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/bemcp/bemcp/decorator.py +0 -0
  80. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/bemcp/bemcp/main.py +0 -0
  81. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/bemcp/bemcp/utils.py +0 -0
  82. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/bemcp/test/client.py +0 -0
  83. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/bemcp/test/server.py +0 -0
  84. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/prompt.py +0 -0
  85. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/README.md +0 -0
  86. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  87. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  88. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  89. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  90. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  91. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  92. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  93. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  94. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  95. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  96. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  97. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  98. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  99. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  100. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  101. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  102. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  103. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  104. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  105. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  106. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  107. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  108. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  109. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  110. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  111. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  112. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/README.md +0 -0
  113. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/c-tags.scm +0 -0
  114. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  115. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  116. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/dart-tags.scm +0 -0
  117. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  118. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  119. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/elm-tags.scm +0 -0
  120. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/go-tags.scm +0 -0
  121. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  122. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/java-tags.scm +0 -0
  123. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  124. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  125. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  126. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/php-tags.scm +0 -0
  127. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/python-tags.scm +0 -0
  128. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/ql-tags.scm +0 -0
  129. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  130. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/rust-tags.scm +0 -0
  131. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/scala-tags.scm +0 -0
  132. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  133. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/__init__.py +0 -0
  134. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/click.py +0 -0
  135. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/edit_file.py +0 -0
  136. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/planner.py +0 -0
  137. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/repomap.py +0 -0
  138. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/request_input.py +0 -0
  139. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/screenshot.py +0 -0
  140. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/search_arxiv.py +0 -0
  141. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/taskmanager.py +0 -0
  142. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/tools/worker.py +0 -0
  143. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm/utils.py +0 -0
  144. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm.egg-info/SOURCES.txt +0 -0
  145. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm.egg-info/dependency_links.txt +0 -0
  146. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm.egg-info/requires.txt +0 -0
  147. {beswarm-0.2.20 → beswarm-0.2.21}/beswarm.egg-info/top_level.txt +0 -0
  148. {beswarm-0.2.20 → beswarm-0.2.21}/setup.cfg +0 -0
  149. {beswarm-0.2.20 → beswarm-0.2.21}/test/test_TaskManager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beswarm
3
- Version: 0.2.20
3
+ Version: 0.2.21
4
4
  Summary: MAS
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
4
4
 
5
5
  setup(
6
6
  name="aient",
7
- version="1.1.45",
7
+ version="1.1.46",
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",
@@ -70,9 +70,11 @@ async def get_gemini_payload(request, engine, provider, api_key=None):
70
70
  elif item.type == "image_url" and provider.get("image", True):
71
71
  image_message = await get_image_message(item.image_url.url, engine)
72
72
  content.append(image_message)
73
- else:
73
+ elif msg.content:
74
74
  content = [{"text": msg.content}]
75
75
  tool_calls = msg.tool_calls
76
+ elif msg.content is None:
77
+ continue
76
78
 
77
79
  if tool_calls:
78
80
  tool_call = tool_calls[0]
@@ -28,6 +28,7 @@ async def fetch_gemini_response_stream(client, url, headers, payload, model):
28
28
  yield error_message
29
29
  return
30
30
  buffer = ""
31
+ cache_buffer = ""
31
32
  revicing_function_call = False
32
33
  function_full_response = "{"
33
34
  need_function_call = False
@@ -45,6 +46,7 @@ async def fetch_gemini_response_stream(client, url, headers, payload, model):
45
46
  # is_thinking = False
46
47
  async for chunk in response.aiter_text():
47
48
  buffer += chunk
49
+ cache_buffer += chunk
48
50
 
49
51
  while "\n" in buffer:
50
52
  line, buffer = buffer.split("\n", 1)
@@ -139,8 +141,12 @@ async def fetch_gemini_response_stream(client, url, headers, payload, model):
139
141
  sse_string = await generate_sse_response(timestamp, model, content=None, tools_id="chatcmpl-9inWv0yEtgn873CxMBzHeCeiHctTV", function_call_name=None, function_call_content=function_full_response)
140
142
  yield sse_string
141
143
 
142
- sse_string = await generate_sse_response(timestamp, model, stop="stop")
143
- yield sse_string
144
+ if cache_buffer == "[]":
145
+ sse_string = await generate_sse_response(timestamp, model, stop="PROHIBITED_CONTENT")
146
+ yield sse_string
147
+ else:
148
+ sse_string = await generate_sse_response(timestamp, model, stop="stop")
149
+ yield sse_string
144
150
 
145
151
  sse_string = await generate_sse_response(timestamp, model, None, None, None, None, None, totalTokenCount, promptTokenCount, candidatesTokenCount)
146
152
  yield sse_string
@@ -2,6 +2,7 @@ import re
2
2
  import os
3
3
  import json
4
4
  import httpx
5
+ from urllib.parse import quote_plus
5
6
  import threading
6
7
 
7
8
  from ..aient.src.aient.plugins import register_tool, get_url_content # Assuming a similar plugin structure
@@ -36,7 +37,7 @@ async def search_web(query: str):
36
37
  "Authorization": f"Bearer {api_key}" # 请注意:硬编码的 API 密钥
37
38
  }
38
39
  payload = {
39
- "url": f"https://www.google.com/search?q={query}"
40
+ "url": f"https://www.google.com/search?q={quote_plus(query)}"
40
41
  }
41
42
  results = []
42
43
 
@@ -76,7 +77,10 @@ async def search_web(query: str):
76
77
  raise Exception(f"Error fetching search results for '{query}':")
77
78
  else:
78
79
  # print(f"Search results for '{query}':")
79
- html_content = results.get("data", {}).get("result", {}).get("html", "")
80
+ html_content = results.get("html", "")
81
+ # print(html_content)
82
+ if "Your search did not match any documents" in html_content:
83
+ return "Your search did not match any documents"
80
84
  if html_content:
81
85
  # 使用正则表达式查找所有 URL
82
86
  # 导入 html 和 urllib.parse 模块
@@ -284,7 +288,8 @@ if __name__ == '__main__':
284
288
 
285
289
  async def main():
286
290
  # 示例用法
287
- search_query = "美国"
291
+ # search_query = "美国"
292
+ search_query = "machine learning models for higher heating value prediction using proximate vs ultimate analysis"
288
293
  print(f"Performing web search for: '{search_query}'")
289
294
  results = await search_web(search_query) # results is a list of URLs
290
295
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beswarm
3
- Version: 0.2.20
3
+ Version: 0.2.21
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.2.20"
3
+ version = "0.2.21"
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
File without changes