beswarm 0.1.2__py3-none-any.whl → 0.1.3__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.
- beswarm/queries/tree-sitter-language-pack/README.md +7 -0
- beswarm/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
- beswarm/queries/tree-sitter-language-pack/c-tags.scm +9 -0
- beswarm/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
- beswarm/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
- beswarm/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
- beswarm/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
- beswarm/queries/tree-sitter-language-pack/d-tags.scm +26 -0
- beswarm/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
- beswarm/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
- beswarm/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
- beswarm/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
- beswarm/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
- beswarm/queries/tree-sitter-language-pack/go-tags.scm +42 -0
- beswarm/queries/tree-sitter-language-pack/java-tags.scm +20 -0
- beswarm/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
- beswarm/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
- beswarm/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
- beswarm/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
- beswarm/queries/tree-sitter-language-pack/python-tags.scm +14 -0
- beswarm/queries/tree-sitter-language-pack/r-tags.scm +21 -0
- beswarm/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
- beswarm/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
- beswarm/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
- beswarm/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
- beswarm/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
- beswarm/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
- beswarm/queries/tree-sitter-languages/README.md +23 -0
- beswarm/queries/tree-sitter-languages/c-tags.scm +9 -0
- beswarm/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
- beswarm/queries/tree-sitter-languages/cpp-tags.scm +15 -0
- beswarm/queries/tree-sitter-languages/dart-tags.scm +91 -0
- beswarm/queries/tree-sitter-languages/elisp-tags.scm +8 -0
- beswarm/queries/tree-sitter-languages/elixir-tags.scm +54 -0
- beswarm/queries/tree-sitter-languages/elm-tags.scm +19 -0
- beswarm/queries/tree-sitter-languages/go-tags.scm +30 -0
- beswarm/queries/tree-sitter-languages/hcl-tags.scm +77 -0
- beswarm/queries/tree-sitter-languages/java-tags.scm +20 -0
- beswarm/queries/tree-sitter-languages/javascript-tags.scm +88 -0
- beswarm/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
- beswarm/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
- beswarm/queries/tree-sitter-languages/php-tags.scm +26 -0
- beswarm/queries/tree-sitter-languages/python-tags.scm +12 -0
- beswarm/queries/tree-sitter-languages/ql-tags.scm +26 -0
- beswarm/queries/tree-sitter-languages/ruby-tags.scm +64 -0
- beswarm/queries/tree-sitter-languages/rust-tags.scm +60 -0
- beswarm/queries/tree-sitter-languages/scala-tags.scm +65 -0
- beswarm/queries/tree-sitter-languages/typescript-tags.scm +41 -0
- beswarm/tools/__init__.py +13 -0
- beswarm/tools/edit_file.py +162 -0
- beswarm/tools/planner.py +33 -0
- beswarm/tools/repomap.py +1289 -0
- beswarm/tools/search_arxiv.py +206 -0
- beswarm/tools/think.py +40 -0
- beswarm/tools/worker.py +118 -0
- {beswarm-0.1.2.dist-info → beswarm-0.1.3.dist-info}/METADATA +1 -1
- beswarm-0.1.3.dist-info/RECORD +60 -0
- beswarm-0.1.2.dist-info/RECORD +0 -5
- {beswarm-0.1.2.dist-info → beswarm-0.1.3.dist-info}/WHEEL +0 -0
- {beswarm-0.1.2.dist-info → beswarm-0.1.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,206 @@
|
|
1
|
+
import requests
|
2
|
+
from datetime import datetime
|
3
|
+
from aient.plugins import register_tool
|
4
|
+
|
5
|
+
@register_tool()
|
6
|
+
def search_arxiv(query, max_results=5, sort_by='relevance', sort_order='descending',
|
7
|
+
categories=None, date_range=None, authors=None, include_abstract=True):
|
8
|
+
"""
|
9
|
+
使用关键词搜索arXiv论文,并返回相关论文的信息。
|
10
|
+
|
11
|
+
此工具允许你通过关键词、类别、日期范围和作者等条件搜索arXiv上的学术论文。
|
12
|
+
你可以指定排序方式和返回结果数量,获取最相关或最新的研究论文信息。
|
13
|
+
|
14
|
+
如果要查询具体架构,直接查询架构名称即可。
|
15
|
+
|
16
|
+
for example:
|
17
|
+
|
18
|
+
correct:
|
19
|
+
<search_arxiv>
|
20
|
+
<query>
|
21
|
+
NoProp
|
22
|
+
</query>
|
23
|
+
</search_arxiv>
|
24
|
+
|
25
|
+
incorrect:
|
26
|
+
<search_arxiv>
|
27
|
+
<query>
|
28
|
+
NoProp: Training Neural Networks without Back-propagation or Forward-propagation
|
29
|
+
</query>
|
30
|
+
</search_arxiv>
|
31
|
+
|
32
|
+
参数:
|
33
|
+
query: 搜索关键词,支持AND, OR, NOT等布尔操作符和引号精确匹配(如:"quantum computing")
|
34
|
+
max_results: 返回结果的最大数量,默认为5篇论文
|
35
|
+
sort_by: 排序方式,可选值为'relevance'(相关性)或'lastUpdatedDate'(最后更新日期),默认为'relevance'
|
36
|
+
sort_order: 排序顺序,可选值为'ascending'(升序)或'descending'(降序),默认为'descending'
|
37
|
+
categories: arXiv类别限制,可以是单个类别或类别列表(如:'cs.CV'或['cs.AI', 'cs.CL'])
|
38
|
+
date_range: 日期范围限制,格式为字典{'from': 'YYYY-MM-DD', 'to': 'YYYY-MM-DD'}
|
39
|
+
authors: 作者限制,可以是单个作者名称或作者列表
|
40
|
+
include_abstract: 是否包含论文摘要,默认为True
|
41
|
+
|
42
|
+
返回:
|
43
|
+
包含搜索结果的字典列表,每个字典包含论文的标题、作者、摘要、发布日期、最后更新日期、arXiv ID、类别和PDF链接等信息
|
44
|
+
"""
|
45
|
+
try:
|
46
|
+
base_url = "http://export.arxiv.org/api/query"
|
47
|
+
|
48
|
+
# 构建查询参数
|
49
|
+
search_query = f"all:{query}"
|
50
|
+
|
51
|
+
# 添加类别过滤
|
52
|
+
if categories:
|
53
|
+
if isinstance(categories, list):
|
54
|
+
cat_query = " OR ".join([f"cat:{cat}" for cat in categories])
|
55
|
+
search_query += f" AND ({cat_query})"
|
56
|
+
else:
|
57
|
+
search_query += f" AND cat:{categories}"
|
58
|
+
|
59
|
+
# 添加作者过滤
|
60
|
+
if authors:
|
61
|
+
if isinstance(authors, list):
|
62
|
+
author_query = " OR ".join([f"au:\"{author}\"" for author in authors])
|
63
|
+
search_query += f" AND ({author_query})"
|
64
|
+
else:
|
65
|
+
search_query += f" AND au:\"{authors}\""
|
66
|
+
|
67
|
+
# 添加日期过滤
|
68
|
+
# arXiv API不直接支持日期范围过滤,需要在结果中过滤
|
69
|
+
|
70
|
+
params = {
|
71
|
+
"search_query": search_query,
|
72
|
+
"max_results": max_results,
|
73
|
+
"sortBy": sort_by,
|
74
|
+
"sortOrder": sort_order
|
75
|
+
}
|
76
|
+
|
77
|
+
# 发送请求
|
78
|
+
response = requests.get(base_url, params=params)
|
79
|
+
|
80
|
+
if response.status_code != 200:
|
81
|
+
return f"错误: API请求失败,状态码 {response.status_code}"
|
82
|
+
|
83
|
+
# 解析结果(arXiv API返回的是Atom XML格式)
|
84
|
+
# 这里使用简化的解析方式,在实际使用中可能需要更复杂的XML解析
|
85
|
+
import xml.etree.ElementTree as ET
|
86
|
+
|
87
|
+
root = ET.fromstring(response.content)
|
88
|
+
|
89
|
+
# 定义arXiv命名空间
|
90
|
+
ns = {
|
91
|
+
'atom': 'http://www.w3.org/2005/Atom',
|
92
|
+
'arxiv': 'http://arxiv.org/schemas/atom'
|
93
|
+
}
|
94
|
+
|
95
|
+
results = []
|
96
|
+
|
97
|
+
# 解析每个条目
|
98
|
+
for entry in root.findall('.//atom:entry', ns):
|
99
|
+
published = entry.find('./atom:published', ns).text
|
100
|
+
updated = entry.find('./atom:updated', ns).text
|
101
|
+
|
102
|
+
# 应用日期过滤
|
103
|
+
if date_range:
|
104
|
+
pub_date = datetime.strptime(published.split('T')[0], '%Y-%m-%d')
|
105
|
+
|
106
|
+
if 'from' in date_range and datetime.strptime(date_range['from'], '%Y-%m-%d') > pub_date:
|
107
|
+
continue
|
108
|
+
|
109
|
+
if 'to' in date_range and datetime.strptime(date_range['to'], '%Y-%m-%d') < pub_date:
|
110
|
+
continue
|
111
|
+
|
112
|
+
# 获取论文ID
|
113
|
+
id_url = entry.find('./atom:id', ns).text
|
114
|
+
arxiv_id = id_url.split('/abs/')[-1]
|
115
|
+
|
116
|
+
# 获取标题和去除多余空格
|
117
|
+
title = ' '.join(entry.find('./atom:title', ns).text.split())
|
118
|
+
|
119
|
+
# 获取作者
|
120
|
+
authors_list = []
|
121
|
+
for author in entry.findall('./atom:author/atom:name', ns):
|
122
|
+
authors_list.append(author.text)
|
123
|
+
|
124
|
+
# 获取分类
|
125
|
+
categories_list = []
|
126
|
+
for category in entry.findall('./arxiv:primary_category', ns):
|
127
|
+
categories_list.append(category.get('term'))
|
128
|
+
for category in entry.findall('./atom:category', ns):
|
129
|
+
cat_term = category.get('term')
|
130
|
+
if cat_term not in categories_list:
|
131
|
+
categories_list.append(cat_term)
|
132
|
+
|
133
|
+
# 获取摘要
|
134
|
+
abstract = ""
|
135
|
+
if include_abstract:
|
136
|
+
abstract_elem = entry.find('./atom:summary', ns)
|
137
|
+
if abstract_elem is not None and abstract_elem.text:
|
138
|
+
abstract = ' '.join(abstract_elem.text.split())
|
139
|
+
|
140
|
+
# 获取PDF链接
|
141
|
+
pdf_link = f"https://arxiv.org/pdf/{arxiv_id}.pdf"
|
142
|
+
|
143
|
+
paper_info = {
|
144
|
+
"title": title,
|
145
|
+
"authors": authors_list,
|
146
|
+
"abstract": abstract if include_abstract else "",
|
147
|
+
"published_date": published.split('T')[0],
|
148
|
+
"last_updated": updated.split('T')[0],
|
149
|
+
"arxiv_id": arxiv_id,
|
150
|
+
"categories": categories_list,
|
151
|
+
"pdf_url": pdf_link,
|
152
|
+
"arxiv_url": f"https://arxiv.org/abs/{arxiv_id}"
|
153
|
+
}
|
154
|
+
|
155
|
+
results.append(paper_info)
|
156
|
+
|
157
|
+
if not results:
|
158
|
+
return f"未找到与查询'{query}'匹配的论文"
|
159
|
+
|
160
|
+
return results
|
161
|
+
|
162
|
+
except Exception as e:
|
163
|
+
return f"搜索arXiv论文时发生错误: {str(e)}"
|
164
|
+
|
165
|
+
if __name__ == '__main__':
|
166
|
+
# 简单的测试用例
|
167
|
+
test_query = "NoProp"
|
168
|
+
print(f"使用关键词 '{test_query}' 测试搜索...")
|
169
|
+
|
170
|
+
search_results = search_arxiv(query=test_query, max_results=5, sort_by='lastUpdatedDate')
|
171
|
+
|
172
|
+
if isinstance(search_results, str):
|
173
|
+
# 如果返回的是错误信息字符串,则打印错误
|
174
|
+
print(search_results)
|
175
|
+
elif isinstance(search_results, list):
|
176
|
+
if search_results:
|
177
|
+
print("\n搜索结果:")
|
178
|
+
for i, paper in enumerate(search_results):
|
179
|
+
print(f"--- 论文 {i+1} ---")
|
180
|
+
print(f" 标题: {paper['title']}")
|
181
|
+
print(f" 作者: {', '.join(paper['authors'])}")
|
182
|
+
print(f" 发布日期: {paper['published_date']}")
|
183
|
+
print(f" arXiv ID: {paper['arxiv_id']}")
|
184
|
+
print(f" PDF链接: {paper['pdf_url']}")
|
185
|
+
print(f" 摘要: {paper['abstract'][:150]}...") # 打印摘要前150个字符
|
186
|
+
print("-" * 20)
|
187
|
+
else:
|
188
|
+
print("未找到相关论文。")
|
189
|
+
else:
|
190
|
+
print("返回了未知格式的结果。")
|
191
|
+
|
192
|
+
# # 测试带有分类过滤的搜索
|
193
|
+
# print("\n使用关键词 'computer vision' 和分类 'cs.CV' 测试搜索...")
|
194
|
+
# cv_results = search_arxiv(query="computer vision", categories='cs.CV', max_results=2)
|
195
|
+
# if isinstance(cv_results, str):
|
196
|
+
# print(cv_results)
|
197
|
+
# elif isinstance(cv_results, list):
|
198
|
+
# if cv_results:
|
199
|
+
# print("\n搜索结果:")
|
200
|
+
# for i, paper in enumerate(cv_results):
|
201
|
+
# print(f"--- 论文 {i+1} ---")
|
202
|
+
# print(f" 标题: {paper['title']}")
|
203
|
+
# print(f" 链接: {paper['arxiv_url']}")
|
204
|
+
# print("-" * 20)
|
205
|
+
# else:
|
206
|
+
# print("未找到相关论文。")
|
beswarm/tools/think.py
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
from aient.plugins import register_tool
|
2
|
+
from pdfminer.high_level import extract_text
|
3
|
+
|
4
|
+
@register_tool()
|
5
|
+
def think(thought: str):
|
6
|
+
"""
|
7
|
+
为模型(即我自己)提供的结构化思考空间
|
8
|
+
|
9
|
+
作为语言模型,当我处理复杂问题时,有时需要停下来整理思路。这个工具创建了一个专门的空间,
|
10
|
+
让我可以在不直接回复用户的情况下,先进行结构化的思考和推理。
|
11
|
+
|
12
|
+
当我应该使用此工具:
|
13
|
+
- 在处理多步骤工具调用链时,需要分析前一步的结果再决定下一步行动
|
14
|
+
- 面对复杂的政策或规则,需要逐条检查合规性
|
15
|
+
- 解决需要深入推理的问题,特别是当中间步骤很重要时
|
16
|
+
- 需要评估多个可能的解决方案并选择最佳方案时
|
17
|
+
- 在不确定如何进行时,通过结构化思考来明确下一步
|
18
|
+
|
19
|
+
思考内容建议结构:
|
20
|
+
1. 问题分解:将复杂问题分解为更小的部分
|
21
|
+
2. 信息分析:整理已知信息,识别缺失的关键信息
|
22
|
+
3. 解决方案生成:考虑多种可能的解决方案
|
23
|
+
4. 方案评估:分析每种方案的优缺点
|
24
|
+
5. 决策计划:确定最终行动计划和下一步
|
25
|
+
|
26
|
+
注意:这与"扩展思考"不同。"扩展思考"发生在开始生成回复之前,而此工具用于我在已开始
|
27
|
+
回复后需要处理新信息时的思考过程。
|
28
|
+
|
29
|
+
参数:
|
30
|
+
thought (str): 我的详细思考过程
|
31
|
+
|
32
|
+
返回:
|
33
|
+
str: 确认已记录思考内容的消息(这不会直接展示给用户)
|
34
|
+
"""
|
35
|
+
# 仅记录思考过程,不执行实际操作
|
36
|
+
return f"已记录思考。请遵从思考内容,进行下一步操作。"
|
37
|
+
|
38
|
+
|
39
|
+
if __name__ == "__main__":
|
40
|
+
print(think("我想吃火锅"))
|
beswarm/tools/worker.py
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
import os
|
2
|
+
import copy
|
3
|
+
from aient.plugins import register_tool
|
4
|
+
|
5
|
+
from aient.models import chatgpt
|
6
|
+
from aient.plugins import get_function_call_list
|
7
|
+
from aient.prompt import system_prompt, instruction_system_prompt
|
8
|
+
|
9
|
+
from utils import extract_xml_content
|
10
|
+
|
11
|
+
@register_tool()
|
12
|
+
async def worker(goal, tools, work_dir):
|
13
|
+
"""
|
14
|
+
启动一个 **工作智能体 (Worker Agent)** 来自动完成指定的任务目标 (`goal`)。
|
15
|
+
|
16
|
+
这个工作智能体接收一个清晰的任务描述、一组可供调用的工具 (`tools`),以及一个工作目录 (`work_dir`)。
|
17
|
+
它会利用语言模型的能力,结合可用的工具,自主规划并逐步执行必要的操作,直到最终完成指定的任务目标。
|
18
|
+
核心功能是根据输入的目标,驱动整个任务执行流程。
|
19
|
+
|
20
|
+
Args:
|
21
|
+
goal (str): 需要完成的具体任务目标描述。工作智能体将围绕此目标进行工作。必须清晰、具体。
|
22
|
+
tools (list[str]): 一个包含可用工具函数对象的列表。工作智能体在执行任务时可能会调用这些工具来与环境交互(例如读写文件、执行命令等)。
|
23
|
+
work_dir (str): 工作目录的绝对路径。工作智能体将在此目录上下文中执行操作。
|
24
|
+
|
25
|
+
Returns:
|
26
|
+
str: 当任务成功完成时,返回字符串 "任务已完成"。
|
27
|
+
"""
|
28
|
+
|
29
|
+
tools_json = [value for _, value in get_function_call_list(tools).items()]
|
30
|
+
work_agent_system_prompt = system_prompt.format(
|
31
|
+
os_name=os.name,
|
32
|
+
os_version=os.uname().version,
|
33
|
+
workspace_path=work_dir,
|
34
|
+
shell=os.getenv('SHELL', 'Unknown'),
|
35
|
+
tools_list=tools_json
|
36
|
+
)
|
37
|
+
|
38
|
+
work_agent_config = {
|
39
|
+
"api_key": os.getenv("API_KEY"),
|
40
|
+
"api_url": os.getenv("BASE_URL"),
|
41
|
+
"engine": os.getenv("MODEL"),
|
42
|
+
"system_prompt": work_agent_system_prompt,
|
43
|
+
"print_log": True,
|
44
|
+
# "max_tokens": 8000,
|
45
|
+
"temperature": 0.5,
|
46
|
+
"function_call_max_loop": 100,
|
47
|
+
}
|
48
|
+
|
49
|
+
instruction_agent_config = {
|
50
|
+
"api_key": os.getenv("API_KEY"),
|
51
|
+
"api_url": os.getenv("BASE_URL"),
|
52
|
+
"engine": os.getenv("MODEL"),
|
53
|
+
"system_prompt": instruction_system_prompt.format(tools_list=tools_json, workspace_path=work_dir),
|
54
|
+
"print_log": False,
|
55
|
+
# "max_tokens": 4000,
|
56
|
+
"temperature": 0.7,
|
57
|
+
"use_plugins": False,
|
58
|
+
}
|
59
|
+
|
60
|
+
# 工作agent初始化
|
61
|
+
work_agent = chatgpt(**work_agent_config)
|
62
|
+
async def instruction_agent_task():
|
63
|
+
while True:
|
64
|
+
# 指令agent初始化
|
65
|
+
instruction_agent = chatgpt(**instruction_agent_config)
|
66
|
+
|
67
|
+
# 获取工作agent的对话历史
|
68
|
+
conversation_history = copy.deepcopy(work_agent.conversation["default"])
|
69
|
+
conversation_history.pop(0)
|
70
|
+
|
71
|
+
conversation_len = len(conversation_history) - 1
|
72
|
+
message_index = 0
|
73
|
+
while message_index < conversation_len:
|
74
|
+
if conversation_history[message_index]["content"].strip() == "":
|
75
|
+
conversation_history.pop(message_index)
|
76
|
+
conversation_len = conversation_len - 1
|
77
|
+
else:
|
78
|
+
message_index = message_index + 1
|
79
|
+
|
80
|
+
instruction_prompt = f"""
|
81
|
+
任务目标: {goal}
|
82
|
+
|
83
|
+
工作智能体的对话历史:
|
84
|
+
{conversation_history}
|
85
|
+
|
86
|
+
根据以上对话历史和目标,请生成下一步指令。如果任务已完成,请回复"任务已完成"。
|
87
|
+
"""
|
88
|
+
# 让指令agent分析对话历史并生成新指令
|
89
|
+
next_instruction = await instruction_agent.ask_async(instruction_prompt)
|
90
|
+
print("\n🤖 指令智能体生成的下一步指令:", next_instruction)
|
91
|
+
next_instruction = extract_xml_content(next_instruction, "instructions")
|
92
|
+
if not next_instruction:
|
93
|
+
print("\n❌ 指令智能体生成的指令不符合要求,请重新生成。")
|
94
|
+
continue
|
95
|
+
else:
|
96
|
+
break
|
97
|
+
return next_instruction
|
98
|
+
|
99
|
+
need_instruction = True
|
100
|
+
while True:
|
101
|
+
next_instruction = ''
|
102
|
+
if need_instruction:
|
103
|
+
next_instruction = await instruction_agent_task()
|
104
|
+
|
105
|
+
# 检查任务是否完成
|
106
|
+
if "任务已完成" in next_instruction:
|
107
|
+
print("\n✅ 任务已完成!")
|
108
|
+
break
|
109
|
+
|
110
|
+
result = await work_agent.ask_async(next_instruction)
|
111
|
+
if result.strip() == '' or result.strip() == '</content>\n</write_to_file>':
|
112
|
+
print("\n❌ 工作智能体回复为空,请重新生成指令。")
|
113
|
+
need_instruction = False
|
114
|
+
continue
|
115
|
+
print("✅ 工作智能体回复:", result)
|
116
|
+
need_instruction = True
|
117
|
+
|
118
|
+
return "任务已完成"
|
@@ -0,0 +1,60 @@
|
|
1
|
+
beswarm/__init__.py,sha256=S5B34hB2J9aGOT3doiKZ6KlAPLbyunnRQRQf9EWkeIQ,19
|
2
|
+
beswarm/queries/tree-sitter-language-pack/README.md,sha256=ivZSEuWqYfUVLZl2AZZGRlm0bQsaG-VTBKBwACyM07k,291
|
3
|
+
beswarm/queries/tree-sitter-language-pack/arduino-tags.scm,sha256=HbgdothT9Jjk56COXTtUkVAdZ14rZNnqzLbWVLeRs5U,177
|
4
|
+
beswarm/queries/tree-sitter-language-pack/c-tags.scm,sha256=EIz45o5hBh8yEuck5ZR_4IpcGyWSeNrzxFmtkKZGt2k,461
|
5
|
+
beswarm/queries/tree-sitter-language-pack/chatito-tags.scm,sha256=ISkmrp5gIVxoYIPnoqxxqBlZj5G9tzhwJMx6b0dEKnQ,338
|
6
|
+
beswarm/queries/tree-sitter-language-pack/commonlisp-tags.scm,sha256=GYJlluTPEdrxn4jpYTX5YQAqk171rVBw7IBiCygMgtw,4713
|
7
|
+
beswarm/queries/tree-sitter-language-pack/cpp-tags.scm,sha256=2fSqTUcc01ABMHkA0JeG8axEOEXRfEIul8UKc9_tKGI,809
|
8
|
+
beswarm/queries/tree-sitter-language-pack/csharp-tags.scm,sha256=KORfK3ehKor6Pf6T5iniuoQr16EcHtUe0q3XIsCjPJs,1162
|
9
|
+
beswarm/queries/tree-sitter-language-pack/d-tags.scm,sha256=LDP3orqZ98TTFSkV_PODEs8LspTcCqUMvKcLdZwtgkc,1420
|
10
|
+
beswarm/queries/tree-sitter-language-pack/dart-tags.scm,sha256=Pa_leZjxxXQO7mH_zF5o-kZ5lqVxgvbyp8oQb_nZ9KA,2267
|
11
|
+
beswarm/queries/tree-sitter-language-pack/elisp-tags.scm,sha256=1r8iOMM_DEpXEvlA1rE7KlhGEzcqa2W6eH4F2d1iu7Y,246
|
12
|
+
beswarm/queries/tree-sitter-language-pack/elixir-tags.scm,sha256=fg9TDpbCixLr8UXNcNnfgFlR3Y7d3vtzLRb3LK84UaQ,1682
|
13
|
+
beswarm/queries/tree-sitter-language-pack/elm-tags.scm,sha256=Wp1D5wEGzFa_2biBWRaKbghDs57lDGqqsZd7DbPkdn4,953
|
14
|
+
beswarm/queries/tree-sitter-language-pack/gleam-tags.scm,sha256=wdFVAkepPAZ10-5sBIVQSl45v95wZP9Foi_iYvM4YII,1416
|
15
|
+
beswarm/queries/tree-sitter-language-pack/go-tags.scm,sha256=TE4fQ7PtQvHKPetrhHeDqjMz01KFKFsxFjypnJMv8pI,1339
|
16
|
+
beswarm/queries/tree-sitter-language-pack/java-tags.scm,sha256=Xid8cnOPL1v5SOtxfq8dOi98bWrUPL7XeO8_I2qBrfE,624
|
17
|
+
beswarm/queries/tree-sitter-language-pack/javascript-tags.scm,sha256=0qlZIwDdsvoEGM0cYD3s2ez27FbYuz8epZAo-cLP1uI,2306
|
18
|
+
beswarm/queries/tree-sitter-language-pack/lua-tags.scm,sha256=lqhCVn7KnBVhW8oo_wY9me15nEBTu9BS5YlF1zUTOPs,945
|
19
|
+
beswarm/queries/tree-sitter-language-pack/pony-tags.scm,sha256=gGNWmiHzv8Ge0HZo81tev-xIqHIQqjRxPR52G048-zs,2191
|
20
|
+
beswarm/queries/tree-sitter-language-pack/properties-tags.scm,sha256=AbcjxhGpG6F6lpCHs83HRXD223b-wrHQYv-i9j09wtc,135
|
21
|
+
beswarm/queries/tree-sitter-language-pack/python-tags.scm,sha256=KDCrM7iaUwXZ_hb2wVHrE2_EVCq_ASo3-BmbzsLtFk0,437
|
22
|
+
beswarm/queries/tree-sitter-language-pack/r-tags.scm,sha256=3cb2Wt-8Tt1RGBNDPgo4nI9qROf00ONNVqPHv8Th-Mk,461
|
23
|
+
beswarm/queries/tree-sitter-language-pack/racket-tags.scm,sha256=iri2aFEabiim-geb-t3ClDVp1Zi8T_rX1H9L0tlpqK8,224
|
24
|
+
beswarm/queries/tree-sitter-language-pack/ruby-tags.scm,sha256=vIidsCeE2A0vdFN18yXKqUWmpXMrGXyo4un_0Mxqr6s,1290
|
25
|
+
beswarm/queries/tree-sitter-language-pack/rust-tags.scm,sha256=3rz1XqKaOPKPWRUNPTW5OX_TYEDj5tQZfMxBH3EMB6g,1451
|
26
|
+
beswarm/queries/tree-sitter-language-pack/solidity-tags.scm,sha256=3uCJsbhwp-dVTiSsrGLt-PQ0uAnjmqUeHFPSEXd2JvM,1395
|
27
|
+
beswarm/queries/tree-sitter-language-pack/swift-tags.scm,sha256=ZvJcfjmUDZ9w14AXKSPPxf4gvpdE_qzBxDjfCczYrIQ,1439
|
28
|
+
beswarm/queries/tree-sitter-language-pack/udev-tags.scm,sha256=avj3u4prIR7o8hymHezOsqrOqjPSLGYo7C_lOL4Dxlg,417
|
29
|
+
beswarm/queries/tree-sitter-languages/README.md,sha256=xE2gaSTeKL13T-ebi3S_PxbPTwRQOm9ymcisZwt6-qI,2467
|
30
|
+
beswarm/queries/tree-sitter-languages/c-tags.scm,sha256=EIz45o5hBh8yEuck5ZR_4IpcGyWSeNrzxFmtkKZGt2k,461
|
31
|
+
beswarm/queries/tree-sitter-languages/c_sharp-tags.scm,sha256=wKyFtOFIk-kqIFB2yJBbu1VGRUhdkAnDpxo8sXubkjw,1025
|
32
|
+
beswarm/queries/tree-sitter-languages/cpp-tags.scm,sha256=cAFwtQk3ZKsvCVWrp1fmhSwOP8WGTCEDRR5CQuzLlY4,803
|
33
|
+
beswarm/queries/tree-sitter-languages/dart-tags.scm,sha256=AjxpyJIXuLjP5u3U89bhWergxus0fbUKk1x1uIHCKPw,2251
|
34
|
+
beswarm/queries/tree-sitter-languages/elisp-tags.scm,sha256=wjm1YYD1vgjBbh0E2CzUnmagl82Uq6-LcEojmvhiJkY,332
|
35
|
+
beswarm/queries/tree-sitter-languages/elixir-tags.scm,sha256=eO20nPIwI7_vq4Fob6U5RjX1wLKgn6Gglj41ITpE6eg,1605
|
36
|
+
beswarm/queries/tree-sitter-languages/elm-tags.scm,sha256=4qTEWJCAd7_BOfwyky0q_NYzAMtGdiq7qwo1GIhXmag,951
|
37
|
+
beswarm/queries/tree-sitter-languages/go-tags.scm,sha256=mHtS5NEuxWJGfVz1rq4YlJRMYVDAl5tf7iYnm6RikVE,848
|
38
|
+
beswarm/queries/tree-sitter-languages/hcl-tags.scm,sha256=yOVCBeF4C3ZrFG-gg0adWg2QkxylPcI2dbVeEgD7EPE,2137
|
39
|
+
beswarm/queries/tree-sitter-languages/java-tags.scm,sha256=7WKb-djGv0Ief6XEWQPYpfLpgJHtMPPukIUi55PegvE,627
|
40
|
+
beswarm/queries/tree-sitter-languages/javascript-tags.scm,sha256=svVct6pxbcYP_-xEBwzGy6t1SlN7ajkEUCivUkBZn_Q,2251
|
41
|
+
beswarm/queries/tree-sitter-languages/kotlin-tags.scm,sha256=ugk8v7Or3PXiBk-_HfZznwLuV-b-s3TYm03Wm3q2h_o,632
|
42
|
+
beswarm/queries/tree-sitter-languages/ocaml-tags.scm,sha256=NAcyzmQuQPUjkchrQvcfhsvKqdcqbAt5eFb1chfEhMA,2695
|
43
|
+
beswarm/queries/tree-sitter-languages/php-tags.scm,sha256=vmE5CH2N46HiQxUpR_FL41ilQqsWsigojiacWXtwTuE,714
|
44
|
+
beswarm/queries/tree-sitter-languages/python-tags.scm,sha256=6-npVJM6y6C1q7d6VgcfohN75_iu7QtrLnvwO_L2EmA,325
|
45
|
+
beswarm/queries/tree-sitter-languages/ql-tags.scm,sha256=9qVpBGSgFC9fSK4E_5sO2gYe4_jPvN-D18SD6S5lNR8,707
|
46
|
+
beswarm/queries/tree-sitter-languages/ruby-tags.scm,sha256=vIidsCeE2A0vdFN18yXKqUWmpXMrGXyo4un_0Mxqr6s,1290
|
47
|
+
beswarm/queries/tree-sitter-languages/rust-tags.scm,sha256=9ljM1nzhfPs_ZTRw7cr2P9ToOyhGcKkCoN4_HPXSWi4,1451
|
48
|
+
beswarm/queries/tree-sitter-languages/scala-tags.scm,sha256=UxQjz80JIrrJ7Pm56uUnQyThfmQNvwk7aQzPNypB-Ao,1761
|
49
|
+
beswarm/queries/tree-sitter-languages/typescript-tags.scm,sha256=OMdCeedPiA24ky82DpgTMKXK_l2ySTuF2zrQ2fJAi9E,1253
|
50
|
+
beswarm/tools/__init__.py,sha256=4B4VowEmOhXEA14SUbcmijs7oM01NFKbLgiidCHQ8J4,266
|
51
|
+
beswarm/tools/edit_file.py,sha256=liGc7S3siGTcpj5Ny2HsHVkp6V1kb4sVSvNO2VrrToE,6953
|
52
|
+
beswarm/tools/planner.py,sha256=4uWZHuXj37-YIuz8MgHAlg_TO7EuHrfJFMn5eSK_v9M,1229
|
53
|
+
beswarm/tools/repomap.py,sha256=g-DNw4loTKau_F2cFlH6CEmua8JZomOtvaFgqdC4FA4,40680
|
54
|
+
beswarm/tools/search_arxiv.py,sha256=NF21a1VB7u6cWFv7RviLN-HEEe-zzuOVJob0d9nP5w4,7925
|
55
|
+
beswarm/tools/think.py,sha256=E1ey-cwMtOdOiNVJqKpcK1zdloAR3fByVAbDDmtDxYU,1748
|
56
|
+
beswarm/tools/worker.py,sha256=Psev2BYQNORDxQ00X546eqIYnjHuSg7ypDVk4vKuAtM,4738
|
57
|
+
beswarm-0.1.3.dist-info/METADATA,sha256=1IS3gMzXkSAFFoozQqJZsdyTrYTaPsJRobRdGCdrN00,1650
|
58
|
+
beswarm-0.1.3.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
59
|
+
beswarm-0.1.3.dist-info/top_level.txt,sha256=pJw4O87wvt5882smuSO6DfByJz7FJ8SxxT8h9fHCmpo,8
|
60
|
+
beswarm-0.1.3.dist-info/RECORD,,
|
beswarm-0.1.2.dist-info/RECORD
DELETED
@@ -1,5 +0,0 @@
|
|
1
|
-
beswarm/__init__.py,sha256=S5B34hB2J9aGOT3doiKZ6KlAPLbyunnRQRQf9EWkeIQ,19
|
2
|
-
beswarm-0.1.2.dist-info/METADATA,sha256=gqjr02i2t_0i2LNcz32YVBhLDupyMbQwG0jbtYpySjA,1650
|
3
|
-
beswarm-0.1.2.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
4
|
-
beswarm-0.1.2.dist-info/top_level.txt,sha256=pJw4O87wvt5882smuSO6DfByJz7FJ8SxxT8h9fHCmpo,8
|
5
|
-
beswarm-0.1.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|