aient 1.1.5__py3-none-any.whl → 1.1.7__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.
@@ -12,6 +12,32 @@ IS_UNIX = hasattr(os, 'fork')
12
12
  if IS_UNIX:
13
13
  import pty
14
14
 
15
+ import difflib
16
+
17
+ last_line = ""
18
+ def calculate_similarity(string1: str, string2: str) -> float:
19
+ """Calculates the similarity ratio between two strings.
20
+
21
+ Args:
22
+ string1: The first string.
23
+ string2: The second string.
24
+
25
+ Returns:
26
+ A float between 0 and 1, where 1 means the strings are identical
27
+ and 0 means they are completely different.
28
+ """
29
+ return difflib.SequenceMatcher(None, string1, string2).ratio()
30
+
31
+ def compare_line(line: str) -> bool:
32
+ global last_line
33
+ if last_line == "":
34
+ last_line = line
35
+ return False
36
+ similarity = calculate_similarity(line, last_line)
37
+ last_line = line
38
+ # print(f"similarity: {similarity}")
39
+ return similarity > 0.89
40
+
15
41
  def unescape_html(input_string: str) -> str:
16
42
  """
17
43
  将字符串中的 HTML 实体(例如 &)转换回其原始字符(例如 &)。
@@ -101,6 +127,10 @@ def excute_command(command):
101
127
  data_str = repr(data_bytes) + " (decode error)\n"
102
128
 
103
129
  print(data_str, end='', flush=True)
130
+ if "pip install" in command and '━━' in data_str:
131
+ continue
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):
133
+ continue
104
134
  output_lines.append(data_str)
105
135
  # 检查进程是否已结束,避免在进程已退出后 select 仍然阻塞
106
136
  if process.poll() is not None and not r:
@@ -141,7 +171,21 @@ def excute_command(command):
141
171
  stderr_output = process.stderr.read()
142
172
  process.stderr.close()
143
173
 
144
- final_output_log = "".join(output_lines)
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)}")
145
189
 
146
190
  if process.returncode == 0:
147
191
  return f"执行命令成功:\n{final_output_log}"
@@ -171,6 +215,31 @@ if __name__ == "__main__":
171
215
  # print('\\n-------TQDM 任务完成.')
172
216
  # """
173
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
+
231
+ tqdm_script = """
232
+ import time
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)
237
+ """
238
+ processed_tqdm_script = tqdm_script.replace('"', '\\"')
239
+ tqdm_command = f"python -c \"{processed_tqdm_script}\""
240
+ # print(f"执行: {tqdm_command}")
241
+ print(excute_command(tqdm_command))
242
+
174
243
  # tqdm_script = """
175
244
  # import time
176
245
  # from tqdm import tqdm
@@ -184,9 +253,9 @@ if __name__ == "__main__":
184
253
  # print(excute_command(tqdm_command))
185
254
 
186
255
 
187
- tqdm_command = f"pip install requests"
188
- # print(f"执行: {tqdm_command}")
189
- print(excute_command(tqdm_command))
256
+ # tqdm_command = f"pip install requests"
257
+ # # print(f"执行: {tqdm_command}")
258
+ # print(excute_command(tqdm_command))
190
259
 
191
260
 
192
261
  # long_running_command_unix = "echo '开始长时间任务...' && for i in 1 2 3; do echo \"正在处理步骤 $i/3...\"; sleep 1; done && echo '长时间任务完成!'"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.1.5
3
+ Version: 1.1.7
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -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=aUhszsXK-x6IOtQEu-kpRb8V10eyy2s6PUXqE1BZ028,7871
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
@@ -37,8 +37,8 @@ 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.5.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
41
- aient-1.1.5.dist-info/METADATA,sha256=vhRceQwCI5GvuEi900uKSzD6U9RRemCwdXvdVLEq6i4,4967
42
- aient-1.1.5.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
43
- aient-1.1.5.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
44
- aient-1.1.5.dist-info/RECORD,,
40
+ aient-1.1.7.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
41
+ aient-1.1.7.dist-info/METADATA,sha256=E5vt-IeBPRrujR_c4oJPrm58dSm-hOX252wPmZ7QIYw,4967
42
+ aient-1.1.7.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
43
+ aient-1.1.7.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
44
+ aient-1.1.7.dist-info/RECORD,,
File without changes