aient 1.1.6__py3-none-any.whl → 1.1.8__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.
- aient/plugins/excute_command.py +35 -12
- aient/plugins/write_file.py +39 -2
- {aient-1.1.6.dist-info → aient-1.1.8.dist-info}/METADATA +1 -1
- {aient-1.1.6.dist-info → aient-1.1.8.dist-info}/RECORD +7 -7
- {aient-1.1.6.dist-info → aient-1.1.8.dist-info}/WHEEL +0 -0
- {aient-1.1.6.dist-info → aient-1.1.8.dist-info}/licenses/LICENSE +0 -0
- {aient-1.1.6.dist-info → aient-1.1.8.dist-info}/top_level.txt +0 -0
aient/plugins/excute_command.py
CHANGED
@@ -35,7 +35,8 @@ def compare_line(line: str) -> bool:
|
|
35
35
|
return False
|
36
36
|
similarity = calculate_similarity(line, last_line)
|
37
37
|
last_line = line
|
38
|
-
|
38
|
+
# print(f"similarity: {similarity}")
|
39
|
+
return similarity > 0.89
|
39
40
|
|
40
41
|
def unescape_html(input_string: str) -> str:
|
41
42
|
"""
|
@@ -130,8 +131,6 @@ def excute_command(command):
|
|
130
131
|
continue
|
131
132
|
if "git clone" in command and ('Counting objects' in data_str or 'Resolving deltas' in data_str or 'Receiving objects' in data_str or 'Compressing objects' in data_str):
|
132
133
|
continue
|
133
|
-
if compare_line(data_str):
|
134
|
-
continue
|
135
134
|
output_lines.append(data_str)
|
136
135
|
# 检查进程是否已结束,避免在进程已退出后 select 仍然阻塞
|
137
136
|
if process.poll() is not None and not r:
|
@@ -160,8 +159,6 @@ def excute_command(command):
|
|
160
159
|
continue
|
161
160
|
if "git clone" in command and ('Counting objects' in line or 'Resolving deltas' in line or 'Receiving objects' in line or 'Compressing objects' in line):
|
162
161
|
continue
|
163
|
-
if compare_line(line):
|
164
|
-
continue
|
165
162
|
output_lines.append(line)
|
166
163
|
process.stdout.close()
|
167
164
|
# print(f"\n--- 命令实时输出结束 (PIPE) ---")
|
@@ -174,8 +171,21 @@ def excute_command(command):
|
|
174
171
|
stderr_output = process.stderr.read()
|
175
172
|
process.stderr.close()
|
176
173
|
|
177
|
-
|
178
|
-
|
174
|
+
new_output_lines = []
|
175
|
+
output_lines = "".join(output_lines).strip().replace("\\u001b[A", "").replace("\\r", "\r").replace("\\\\", "").replace("\\n", "\n").replace("\r", "+++").replace("\n", "+++")
|
176
|
+
for line in output_lines.split("+++"):
|
177
|
+
if line.strip() == "":
|
178
|
+
continue
|
179
|
+
# aaa = last_line.strip()
|
180
|
+
is_same = compare_line(repr(line.strip()))
|
181
|
+
if not is_same:
|
182
|
+
# print(f"{repr(aaa)}", flush=True)
|
183
|
+
# print(f"{repr(line.strip())}", flush=True)
|
184
|
+
# print(f"is_same: {is_same}", flush=True)
|
185
|
+
# print(f"\n\n\n", flush=True)
|
186
|
+
new_output_lines.append(line)
|
187
|
+
final_output_log = "\n".join(new_output_lines)
|
188
|
+
# print(f"output_lines: {len(new_output_lines)}")
|
179
189
|
|
180
190
|
if process.returncode == 0:
|
181
191
|
return f"执行命令成功:\n{final_output_log}"
|
@@ -205,18 +215,31 @@ if __name__ == "__main__":
|
|
205
215
|
# print('\\n-------TQDM 任务完成.')
|
206
216
|
# """
|
207
217
|
|
218
|
+
# tqdm_script = """
|
219
|
+
# import time
|
220
|
+
# print("Hello, World!1")
|
221
|
+
# print("Hello, World!2")
|
222
|
+
# for i in range(10):
|
223
|
+
# print(f"TQDM 进度条测试: {i}")
|
224
|
+
# time.sleep(1)
|
225
|
+
# """
|
226
|
+
# processed_tqdm_script = tqdm_script.replace('"', '\\"')
|
227
|
+
# tqdm_command = f"python -c \"{processed_tqdm_script}\""
|
228
|
+
# # print(f"执行: {tqdm_command}")
|
229
|
+
# print(excute_command(tqdm_command))
|
230
|
+
|
208
231
|
tqdm_script = """
|
209
232
|
import time
|
210
|
-
|
211
|
-
|
212
|
-
for i in
|
213
|
-
print(
|
214
|
-
time.sleep(1)
|
233
|
+
with open("/Users/yanyuming/Downloads/GitHub/beswarm/1.txt", "r") as f:
|
234
|
+
content = f.read()
|
235
|
+
for i in content.split("\\n"):
|
236
|
+
print(i)
|
215
237
|
"""
|
216
238
|
processed_tqdm_script = tqdm_script.replace('"', '\\"')
|
217
239
|
tqdm_command = f"python -c \"{processed_tqdm_script}\""
|
218
240
|
# print(f"执行: {tqdm_command}")
|
219
241
|
print(excute_command(tqdm_command))
|
242
|
+
|
220
243
|
# tqdm_script = """
|
221
244
|
# import time
|
222
245
|
# from tqdm import tqdm
|
aient/plugins/write_file.py
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
from .registry import register_tool
|
2
2
|
|
3
3
|
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)
|
4
17
|
|
5
18
|
@register_tool()
|
6
19
|
def write_to_file(path, content, mode='w'):
|
@@ -49,6 +62,30 @@ Example: Requesting to write to frontend-config.json
|
|
49
62
|
|
50
63
|
# 写入文件
|
51
64
|
with open(path, mode, encoding='utf-8') as file:
|
52
|
-
file.write(content)
|
65
|
+
file.write(unescape_html(content))
|
53
66
|
|
54
|
-
return f"已成功写入文件:{path}"
|
67
|
+
return f"已成功写入文件:{path}"
|
68
|
+
|
69
|
+
|
70
|
+
if __name__ == "__main__":
|
71
|
+
text = """
|
72
|
+
<!DOCTYPE html>
|
73
|
+
<html lang="zh-CN">
|
74
|
+
<head>
|
75
|
+
<meta charset="UTF-8">
|
76
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
77
|
+
<title>Continuous Thought Machines (CTM) 原理解读</title>
|
78
|
+
<script>MathJax={chtml:{fontURL:'https://cdn.jsdelivr.net/npm/mathjax@3/es5/output/chtml/fonts/woff-v2'}}</script>
|
79
|
+
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js" id="MathJax-script" async></script>
|
80
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/viz.js" defer></script>
|
81
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/full.render.js" defer></script>
|
82
|
+
<script src="https://unpkg.com/@panzoom/panzoom@4.5.1/dist/panzoom.min.js" defer></script>
|
83
|
+
<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css" rel="stylesheet"/>
|
84
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap" rel="stylesheet">
|
85
|
+
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel="stylesheet">
|
86
|
+
<style>
|
87
|
+
"""
|
88
|
+
with open("test.txt", "r", encoding="utf-8") as file:
|
89
|
+
content = file.read()
|
90
|
+
print(write_to_file("test.txt", content))
|
91
|
+
# python -m beswarm.aient.src.aient.plugins.write_file
|
@@ -23,7 +23,7 @@ aient/models/vertex.py,sha256=qVD5l1Q538xXUPulxG4nmDjXE1VoV4yuAkTCpIeJVw0,16795
|
|
23
23
|
aient/plugins/__init__.py,sha256=p3KO6Aa3Lupos4i2SjzLQw1hzQTigOAfEHngsldrsyk,986
|
24
24
|
aient/plugins/arXiv.py,sha256=yHjb6PS3GUWazpOYRMKMzghKJlxnZ5TX8z9F6UtUVow,1461
|
25
25
|
aient/plugins/config.py,sha256=Vp6CG9ocdC_FAlCMEGtKj45xamir76DFxdJVvURNtog,6539
|
26
|
-
aient/plugins/excute_command.py,sha256=
|
26
|
+
aient/plugins/excute_command.py,sha256=A3WmfZboEikU1EHvtMWhBv-xHxCyMxbDddQ982I_8wE,10482
|
27
27
|
aient/plugins/get_time.py,sha256=Ih5XIW5SDAIhrZ9W4Qe5Hs1k4ieKPUc_LAd6ySNyqZk,654
|
28
28
|
aient/plugins/image.py,sha256=ZElCIaZznE06TN9xW3DrSukS7U3A5_cjk1Jge4NzPxw,2072
|
29
29
|
aient/plugins/list_directory.py,sha256=5ubm-mfrj-tanGSDp4M_Tmb6vQb3dx2-XVfQ2yL2G8A,1394
|
@@ -31,14 +31,14 @@ aient/plugins/read_file.py,sha256=-RRmaj-rSl8y--5VKnxCsZ1YQHe75OhnqvsDRLJyujM,84
|
|
31
31
|
aient/plugins/registry.py,sha256=YknzhieU_8nQ3oKlUSSWDB4X7t2Jx0JnqT2Jd9Xsvfk,3574
|
32
32
|
aient/plugins/run_python.py,sha256=dgcUwBunMuDkaSKR5bToudVzSdrXVewktDDFUz_iIOQ,4589
|
33
33
|
aient/plugins/websearch.py,sha256=I4tYU7CGLdyG6Hd3yK19V-PoG5IbFI9FEEVggyrshRg,15227
|
34
|
-
aient/plugins/write_file.py,sha256=
|
34
|
+
aient/plugins/write_file.py,sha256=YRvQKMvV-5lwohxlvwt9hjfxz2dRJP85AJWAMUIqbBY,3804
|
35
35
|
aient/prompt/__init__.py,sha256=GBtn6-JDT8KHFCcuPpfSNE_aGddg5p4FEyMCy4BfwGs,20
|
36
36
|
aient/prompt/agent.py,sha256=6f5ZB66Rb8y0iQScHMRhvXZ1qMM3YsKpCBPCTAAw2rg,24917
|
37
37
|
aient/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
38
|
aient/utils/prompt.py,sha256=UcSzKkFE4-h_1b6NofI6xgk3GoleqALRKY8VBaXLjmI,11311
|
39
39
|
aient/utils/scripts.py,sha256=NXmTxcZqHoRv3S13isLsv7kvqktXnA5ej7uMsxCJUe0,26656
|
40
|
-
aient-1.1.
|
41
|
-
aient-1.1.
|
42
|
-
aient-1.1.
|
43
|
-
aient-1.1.
|
44
|
-
aient-1.1.
|
40
|
+
aient-1.1.8.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
|
41
|
+
aient-1.1.8.dist-info/METADATA,sha256=vKhyqOW5DHgaoPPSdFa9Pmbp1YWNYRkaSjQ0DiWwIQE,4967
|
42
|
+
aient-1.1.8.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
43
|
+
aient-1.1.8.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
|
44
|
+
aient-1.1.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|