auto-coder 0.1.362__py3-none-any.whl → 0.1.364__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.
Potentially problematic release.
This version of auto-coder might be problematic. Click here for more details.
- {auto_coder-0.1.362.dist-info → auto_coder-0.1.364.dist-info}/METADATA +2 -2
- {auto_coder-0.1.362.dist-info → auto_coder-0.1.364.dist-info}/RECORD +65 -22
- autocoder/agent/base_agentic/__init__.py +0 -0
- autocoder/agent/base_agentic/agent_hub.py +169 -0
- autocoder/agent/base_agentic/agentic_lang.py +112 -0
- autocoder/agent/base_agentic/agentic_tool_display.py +180 -0
- autocoder/agent/base_agentic/base_agent.py +1582 -0
- autocoder/agent/base_agentic/default_tools.py +683 -0
- autocoder/agent/base_agentic/test_base_agent.py +82 -0
- autocoder/agent/base_agentic/tool_registry.py +425 -0
- autocoder/agent/base_agentic/tools/__init__.py +12 -0
- autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +72 -0
- autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +37 -0
- autocoder/agent/base_agentic/tools/base_tool_resolver.py +35 -0
- autocoder/agent/base_agentic/tools/example_tool_resolver.py +46 -0
- autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +72 -0
- autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +110 -0
- autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +35 -0
- autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +54 -0
- autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +156 -0
- autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +134 -0
- autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +96 -0
- autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +79 -0
- autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +44 -0
- autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +58 -0
- autocoder/agent/base_agentic/types.py +189 -0
- autocoder/agent/base_agentic/utils.py +100 -0
- autocoder/auto_coder_runner.py +6 -4
- autocoder/chat/conf_command.py +11 -10
- autocoder/common/__init__.py +2 -0
- autocoder/common/file_checkpoint/__init__.py +21 -0
- autocoder/common/file_checkpoint/backup.py +264 -0
- autocoder/common/file_checkpoint/examples.py +217 -0
- autocoder/common/file_checkpoint/manager.py +404 -0
- autocoder/common/file_checkpoint/models.py +156 -0
- autocoder/common/file_checkpoint/store.py +383 -0
- autocoder/common/file_checkpoint/test_backup.py +242 -0
- autocoder/common/file_checkpoint/test_manager.py +570 -0
- autocoder/common/file_checkpoint/test_models.py +360 -0
- autocoder/common/file_checkpoint/test_store.py +327 -0
- autocoder/common/file_checkpoint/test_utils.py +297 -0
- autocoder/common/file_checkpoint/utils.py +119 -0
- autocoder/common/rulefiles/autocoderrules_utils.py +138 -55
- autocoder/common/save_formatted_log.py +76 -5
- autocoder/common/v2/agent/agentic_edit.py +339 -216
- autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +2 -2
- autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +100 -5
- autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +322 -0
- autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +160 -10
- autocoder/common/v2/agent/agentic_edit_types.py +1 -2
- autocoder/common/v2/agent/agentic_tool_display.py +2 -3
- autocoder/compilers/normal_compiler.py +64 -0
- autocoder/events/event_manager_singleton.py +133 -4
- autocoder/linters/normal_linter.py +373 -0
- autocoder/linters/python_linter.py +4 -2
- autocoder/rag/long_context_rag.py +424 -397
- autocoder/rag/test_doc_filter.py +393 -0
- autocoder/rag/test_long_context_rag.py +473 -0
- autocoder/rag/test_token_limiter.py +342 -0
- autocoder/shadows/shadow_manager.py +1 -3
- autocoder/version.py +1 -1
- {auto_coder-0.1.362.dist-info → auto_coder-0.1.364.dist-info}/LICENSE +0 -0
- {auto_coder-0.1.362.dist-info → auto_coder-0.1.364.dist-info}/WHEEL +0 -0
- {auto_coder-0.1.362.dist-info → auto_coder-0.1.364.dist-info}/entry_points.txt +0 -0
- {auto_coder-0.1.362.dist-info → auto_coder-0.1.364.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: auto-coder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.364
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -28,7 +28,7 @@ Requires-Dist: prompt-toolkit
|
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
29
|
Requires-Dist: aiofiles
|
|
30
30
|
Requires-Dist: readerwriterlock
|
|
31
|
-
Requires-Dist: byzerllm[saas] >=0.1.
|
|
31
|
+
Requires-Dist: byzerllm[saas] >=0.1.182
|
|
32
32
|
Requires-Dist: patch
|
|
33
33
|
Requires-Dist: diff-match-patch
|
|
34
34
|
Requires-Dist: GitPython
|
|
@@ -4,7 +4,7 @@ autocoder/auto_coder_lang.py,sha256=Rtupq6N3_HT7JRhDKdgCBcwRaiAnyCOR_Gsp4jUomrI,
|
|
|
4
4
|
autocoder/auto_coder_rag.py,sha256=ru5o86IaKylyVRlVORmnrdf3Q1To2eWi2KLdT9FMW0k,37580
|
|
5
5
|
autocoder/auto_coder_rag_client_mcp.py,sha256=QRxUbjc6A8UmDMQ8lXgZkjgqtq3lgKYeatJbDY6rSo0,6270
|
|
6
6
|
autocoder/auto_coder_rag_mcp.py,sha256=-RrjNwFaS2e5v8XDIrKR-zlUNUE8UBaeOtojffBrvJo,8521
|
|
7
|
-
autocoder/auto_coder_runner.py,sha256=
|
|
7
|
+
autocoder/auto_coder_runner.py,sha256=VktQIEWjVMmraVjD7W73eZmYtdfm9Ma2w_Ib-cWZYhM,112263
|
|
8
8
|
autocoder/auto_coder_server.py,sha256=bLORGEclcVdbBVfM140JCI8WtdrU0jbgqdJIVVupiEU,20578
|
|
9
9
|
autocoder/benchmark.py,sha256=Ypomkdzd1T3GE6dRICY3Hj547dZ6_inqJbBJIp5QMco,4423
|
|
10
10
|
autocoder/chat_auto_coder.py,sha256=iHy8Kt1so1ZLOPpb5GTfi4BurDe3T1hOPqOw-XIBDpQ,26851
|
|
@@ -14,7 +14,7 @@ autocoder/command_parser.py,sha256=fx1g9E6GaM273lGTcJqaFQ-hoksS_Ik2glBMnVltPCE,1
|
|
|
14
14
|
autocoder/lang.py,sha256=PFtATuOhHRnfpqHQkXr6p4C893JvpsgwTMif3l-GEi0,14321
|
|
15
15
|
autocoder/models.py,sha256=Gu50IATQtZtgEir1PpCfwgH6o4ygw6XqqbQRj3lx5dU,13798
|
|
16
16
|
autocoder/run_context.py,sha256=IUfSO6_gp2Wt1blFWAmOpN0b0nDrTTk4LmtCYUBIoro,1643
|
|
17
|
-
autocoder/version.py,sha256=
|
|
17
|
+
autocoder/version.py,sha256=VL9hmmJg1RyRRRaJG6Hcv2loEzXKwXbfJgcVK9hH6Us,23
|
|
18
18
|
autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
autocoder/agent/agentic_edit.py,sha256=XsfePZ-t6M-uBSdG1VLZXk1goqXk2HPeJ_A8IYyBuWQ,58896
|
|
20
20
|
autocoder/agent/agentic_edit_types.py,sha256=oFcDd_cxJ2yH9Ed1uTpD3BipudgoIEWDMPb5pAkq4gI,3288
|
|
@@ -43,8 +43,33 @@ autocoder/agent/agentic_edit_tools/replace_in_file_tool_resolver.py,sha256=A2ODU
|
|
|
43
43
|
autocoder/agent/agentic_edit_tools/search_files_tool_resolver.py,sha256=Xx0nqrgBUP7MZuigdy_hjO89v1CgQEDE75O9la3VJbE,3754
|
|
44
44
|
autocoder/agent/agentic_edit_tools/use_mcp_tool_resolver.py,sha256=5WWH8-lEZO29dLOby9GNjkr-JH5rW8UT-7JZ1LuUtM8,2531
|
|
45
45
|
autocoder/agent/agentic_edit_tools/write_to_file_tool_resolver.py,sha256=HPX1g7Nh7H8I3P2MNmIK4HXLh8IZYaedQgRZAeGxNdc,5135
|
|
46
|
+
autocoder/agent/base_agentic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
+
autocoder/agent/base_agentic/agent_hub.py,sha256=3Al9rCKu-SRgAs1kvnMe4VIIErTIw85QTkhfFu5omO8,5605
|
|
48
|
+
autocoder/agent/base_agentic/agentic_lang.py,sha256=UCq1NY9USaYJakTWc-3cv_MeHxAb6se1PI4lsSwGrPM,3657
|
|
49
|
+
autocoder/agent/base_agentic/agentic_tool_display.py,sha256=UnAq8ovvpu88KLk19Ff0TW-Dq-k7YiRwZiIJgcYPwiY,6989
|
|
50
|
+
autocoder/agent/base_agentic/base_agent.py,sha256=cirGi77mw7OawO4Q1pGcqkhhNukKDS01-zzhnae_1yU,85580
|
|
51
|
+
autocoder/agent/base_agentic/default_tools.py,sha256=ggtJjysejfDWD6JoG4vBDFrnXFFPRm7JsVVG6XcKer8,33060
|
|
52
|
+
autocoder/agent/base_agentic/test_base_agent.py,sha256=jok9f-DoEagzZRWjk-Zpy3gKw2ztZrsNzEc0XlvE7HU,2804
|
|
53
|
+
autocoder/agent/base_agentic/tool_registry.py,sha256=YFnUXJ78y7g3pm3yGgrhZ-0mx-C1ctdcA0r_ljGiE6o,14292
|
|
54
|
+
autocoder/agent/base_agentic/types.py,sha256=y9BvgN1a38EWB3cIGYTgxPYsrHql09HyqdFmL7e76jQ,4159
|
|
55
|
+
autocoder/agent/base_agentic/utils.py,sha256=-AtaXBEp1dd9WnKrlkqiu8Ur5UfOvHko_fb32alCnN0,3264
|
|
56
|
+
autocoder/agent/base_agentic/tools/__init__.py,sha256=aBb5nA8dZAun6-4-7MTdJ74dGNQdA6RBrS73uom3ue0,332
|
|
57
|
+
autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py,sha256=_OL07TZ_bCGikX-DVv3HSrHT4jvZ7NYXd27J3pLWkIY,3081
|
|
58
|
+
autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py,sha256=9a_qPihfm45Q22kmxmFwYrZrtNsgtEyBePL8D4SXfes,1487
|
|
59
|
+
autocoder/agent/base_agentic/tools/base_tool_resolver.py,sha256=Y0PmRPhBLLdZpr2DNV0W5goGfAqylM5m1bHxa3T6vAY,1009
|
|
60
|
+
autocoder/agent/base_agentic/tools/example_tool_resolver.py,sha256=8WBIqEH_76S0iBHBM3RhLkk14UpJ28lRAw6dNUT-0no,1388
|
|
61
|
+
autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py,sha256=FDWheOy2NVG1RDeG2lhMlj0cFjG4UpqCkWPRMEM7Atc,3755
|
|
62
|
+
autocoder/agent/base_agentic/tools/list_files_tool_resolver.py,sha256=rIKcJ0xVI6Exdmqb2LhUQFL6_GNQFuYazqQSJR0Sf2g,5468
|
|
63
|
+
autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py,sha256=hiLdMRknR_Aljd7Ic2bOWZKs11aFHdhkRTKTlP3IIgw,1461
|
|
64
|
+
autocoder/agent/base_agentic/tools/read_file_tool_resolver.py,sha256=4GV8_hyVlO97MgI2pdUrxur3MFNJutlBT8r9OYfQjps,2857
|
|
65
|
+
autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py,sha256=yvVwQNxTeG-jIWVbhLqpoDqjKzDWoSuWiIge13-7HnI,8015
|
|
66
|
+
autocoder/agent/base_agentic/tools/search_files_tool_resolver.py,sha256=s14ojQWxpWL0d4fzKan95Dya3t3S0oMy9CWrX6qa-ZM,6848
|
|
67
|
+
autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py,sha256=t6y39KqCA3Jd865Xive7sO9dL-4OW10p7vRQr6-HLFE,3427
|
|
68
|
+
autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py,sha256=8ERHMoFJTkZx02TFrsPWvpOQOr9HPJcxD7hBE5lXxpc,2668
|
|
69
|
+
autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py,sha256=Ph63zm6973nxRdRINV3ME0rhDWqtaEveHqLjEEMN02I,1554
|
|
70
|
+
autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py,sha256=aVXrKaUshne1iBxOimjU31mW9SXOZ1aHjqJjdZC31AM,2994
|
|
46
71
|
autocoder/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
-
autocoder/chat/conf_command.py,sha256=
|
|
72
|
+
autocoder/chat/conf_command.py,sha256=sqsZEjFXUCaCydXbqLU_ockpwQ7efQCicEd-hjD29ts,11353
|
|
48
73
|
autocoder/chat/models_command.py,sha256=yISjvqNbKHVapGcXMcsIwRFfPruJ5ruSqR_e8TqhaPw,20105
|
|
49
74
|
autocoder/chat/rules_command.py,sha256=V9-Om7N7c_6siudtZMWuALxe2GNMkgqorWAP4P_Wl4k,17396
|
|
50
75
|
autocoder/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -53,7 +78,7 @@ autocoder/commands/auto_web.py,sha256=K0Gv7lil5UqmExr_sAJNOcwNxw_q1vhvre1jjQ7tA3
|
|
|
53
78
|
autocoder/commands/tools.py,sha256=IX_zx5mWAvQDED7wUHTqNtrCmLNo9ztFV1aZ6AflY4o,34292
|
|
54
79
|
autocoder/common/JupyterClient.py,sha256=O-wi6pXeAEYhAY24kDa0BINrLYvKS6rKyWe98pDClS0,2816
|
|
55
80
|
autocoder/common/ShellClient.py,sha256=fM1q8t_XMSbLBl2zkCNC2J9xuyKN3eXzGm6hHhqL2WY,2286
|
|
56
|
-
autocoder/common/__init__.py,sha256=
|
|
81
|
+
autocoder/common/__init__.py,sha256=LFR-2IrVK0NtHeefzCB8iqLb-6SuWJRPKQec6bS37_0,14734
|
|
57
82
|
autocoder/common/action_yml_file_manager.py,sha256=DdF5P1R_B_chCnnqoA2IgogakWLZk_nItiJZUfX0_Wo,17857
|
|
58
83
|
autocoder/common/anything2images.py,sha256=0ILBbWzY02M-CiWB-vzuomb_J1hVdxRcenAfIrAXq9M,25283
|
|
59
84
|
autocoder/common/anything2img.py,sha256=iZQmg8srXlD7N5uGl5b_ONKJMBjYoW8kPmokkG6ISF0,10118
|
|
@@ -104,7 +129,7 @@ autocoder/common/printer.py,sha256=T4XTAcQp5w1ZWYx5NAUXlIGd-9500Vl0JaG1JJXMdkg,2
|
|
|
104
129
|
autocoder/common/recall_validation.py,sha256=Avt9Q9dX3kG6Pf2zsdlOHmsjd-OeSj7U1PFBDp_Cve0,1700
|
|
105
130
|
autocoder/common/result_manager.py,sha256=tvWtqSDhP7yKGtmB9s1pJAuRnB7nDgjM6eVrXF9n4e0,4169
|
|
106
131
|
autocoder/common/run_cmd.py,sha256=2VrJpeqooasUoc-WKVrvFfesmRR55kOpPmmYgpQrKVc,8283
|
|
107
|
-
autocoder/common/save_formatted_log.py,sha256=
|
|
132
|
+
autocoder/common/save_formatted_log.py,sha256=VXeN3dzA1C0AX1slSwBTFMC1lZHR9GtziSVRqUDEKfU,5395
|
|
108
133
|
autocoder/common/screenshots.py,sha256=_gA-z1HxGjPShBrtgkdideq58MG6rqFB2qMUJKjrycs,3769
|
|
109
134
|
autocoder/common/search.py,sha256=245iPFgWhMldoUK3CqCP89ltaxZiNPK73evoG6Fp1h8,16518
|
|
110
135
|
autocoder/common/search_replace.py,sha256=GphFkc57Hb673CAwmbiocqTbw8vrV7TrZxtOhD0332g,22147
|
|
@@ -124,6 +149,18 @@ autocoder/common/conversations/example.py,sha256=Pz_EhO6qneUFMfHZiDmGAClZ6b0V4T1
|
|
|
124
149
|
autocoder/common/directory_cache/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
125
150
|
autocoder/common/directory_cache/cache.py,sha256=Jknygb_U6DkF04_SX04IwsOcQdd-2QQ4d6k9Ucc9OZ0,9358
|
|
126
151
|
autocoder/common/directory_cache/test_cache.py,sha256=0iQkHaZQPhZBwSS6dwK_je93QMLbYGY0BYrTSt45Cao,6610
|
|
152
|
+
autocoder/common/file_checkpoint/__init__.py,sha256=qwoM0tIU-IMr-zGVCMN8yZtmz0NWpRe027l8z8sCjjk,847
|
|
153
|
+
autocoder/common/file_checkpoint/backup.py,sha256=JO26vOG9k7d8b5jgT24PdccSrTuPqKghp1nz5cmjSiE,8813
|
|
154
|
+
autocoder/common/file_checkpoint/examples.py,sha256=HTik8E0ddvKjEPGwzizWJBHIP9URrWRyRUOKSjYRUG8,6272
|
|
155
|
+
autocoder/common/file_checkpoint/manager.py,sha256=DvPzXvU4LVNb8ZVbEIWJawevX6fIm4VgVmV1g7TrsS4,14774
|
|
156
|
+
autocoder/common/file_checkpoint/models.py,sha256=dcZL2QGnklsa_BV_QY81fH-H5hYfhelXrH6GSrubMZo,4730
|
|
157
|
+
autocoder/common/file_checkpoint/store.py,sha256=dgQe-1O_gPJ3QU6tHihGRp0G2jgD2IDxQ-w9zM6Yq54,12920
|
|
158
|
+
autocoder/common/file_checkpoint/test_backup.py,sha256=Z9Y2RyGqxwKPNc7nW-2jtsMAYzqt0qZGzLoq3pn2zCI,8930
|
|
159
|
+
autocoder/common/file_checkpoint/test_manager.py,sha256=jpeHTmuBJ6bgB32VWBF5MxUEutY4qn8m2Q8kZukuuNc,20109
|
|
160
|
+
autocoder/common/file_checkpoint/test_models.py,sha256=BtIF0gYRsLj7EISV8CXNS8PW7OtMd_S2ShWNIBbQDIc,10491
|
|
161
|
+
autocoder/common/file_checkpoint/test_store.py,sha256=SqHT5zExX2mD-OT9ynaayPtjjcp_HZWkd5PovFCUA8U,12038
|
|
162
|
+
autocoder/common/file_checkpoint/test_utils.py,sha256=wN0VZaM5gc2ltu-c3OPKgKDXqOjgSRCPHep_s4Ns0nI,10209
|
|
163
|
+
autocoder/common/file_checkpoint/utils.py,sha256=lWchNqiQNH13sSi5Tn9g9zit8mlWdYSdiiT59nWeFJE,3273
|
|
127
164
|
autocoder/common/file_monitor/__init__.py,sha256=9reL3IEnyLWU77WjPzeprM8-4lCetlSMZ94Nuxk5KNg,85
|
|
128
165
|
autocoder/common/file_monitor/monitor.py,sha256=biS9TJyNKga2dE-CeYAi9xfXvA9aMeMl0tBf68G-SBE,16609
|
|
129
166
|
autocoder/common/ignorefiles/__init__.py,sha256=P0hq7Avu1IeXBYEkPBZLsJhFzhzyktUWTqaRIXiAFLY,75
|
|
@@ -133,7 +170,7 @@ autocoder/common/mcp_servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
133
170
|
autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py,sha256=TApShxgoozLluobXHOK1-oAE1zm0-9jdRoPLQB1qwMI,5688
|
|
134
171
|
autocoder/common/mcp_servers/mcp_server_perplexity.py,sha256=CIC26UkfH1lYoVCjfyY5xGGYVx8h0oz0Uj1c7YJ3OPw,5560
|
|
135
172
|
autocoder/common/rulefiles/__init__.py,sha256=babSbPdFaXk1NvdHtH2zrJLb_tWd7d2ELIyS8NApY_Y,221
|
|
136
|
-
autocoder/common/rulefiles/autocoderrules_utils.py,sha256=
|
|
173
|
+
autocoder/common/rulefiles/autocoderrules_utils.py,sha256=TvzKt41wa1uPnYXHkUaJRCuxCJL9IB-Zx6FsEwdSExg,19454
|
|
137
174
|
autocoder/common/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
138
175
|
autocoder/common/v2/code_agentic_editblock_manager.py,sha256=pAh918YMgmLenXmNKXlmDPgKyVJjOuk69901VEEQHm4,34980
|
|
139
176
|
autocoder/common/v2/code_auto_generate.py,sha256=PAySLU8ZnpdF8GelwSCiEbzv7sBbn-Vhakinf4i6udE,11646
|
|
@@ -149,10 +186,10 @@ autocoder/common/v2/code_editblock_manager.py,sha256=DMwJw-FAM6VyaBQV3p4xespHpgZ
|
|
|
149
186
|
autocoder/common/v2/code_manager.py,sha256=C403bS-f6urixwitlKHcml-J03hci-UyNwHJOqBiY6Q,9182
|
|
150
187
|
autocoder/common/v2/code_strict_diff_manager.py,sha256=Bys7tFAq4G03R1zUZuxrszBTvP4QB96jIw2y5BDLyRM,9424
|
|
151
188
|
autocoder/common/v2/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
|
-
autocoder/common/v2/agent/agentic_edit.py,sha256=
|
|
189
|
+
autocoder/common/v2/agent/agentic_edit.py,sha256=hM2IPCV-Z3ajEsmVUGcFlD01544CloMehyxHAx320Qk,106932
|
|
153
190
|
autocoder/common/v2/agent/agentic_edit_conversation.py,sha256=pFgWPWHKhZ4J9EcFmIdiGsrSolTZuYcH1qkgKdD8nwk,7726
|
|
154
|
-
autocoder/common/v2/agent/agentic_edit_types.py,sha256=
|
|
155
|
-
autocoder/common/v2/agent/agentic_tool_display.py,sha256
|
|
191
|
+
autocoder/common/v2/agent/agentic_edit_types.py,sha256=ftFTXz-KF96GZvhnYRAxiiYOWfotwU_d9Lb8la2I47U,4779
|
|
192
|
+
autocoder/common/v2/agent/agentic_tool_display.py,sha256=-a-JTQLc4q03E_rdIILKMI0B6DHN-5gcGlrqq-mBYK4,7239
|
|
156
193
|
autocoder/common/v2/agent/ignore_utils.py,sha256=gnUchRzKMLbUm_jvnKL-r-K9MWKPtt-6iiuzijY7Es0,1717
|
|
157
194
|
autocoder/common/v2/agent/agentic_edit_tools/__init__.py,sha256=RbPZZcZg_VnGssL577GxSyFrYrxQ_LopJ4G_-mY3z_Q,1337
|
|
158
195
|
autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py,sha256=bwtf4m9N82TCP3piK5UglJk1FVFFm7ZX59XerA2qxko,3131
|
|
@@ -163,12 +200,13 @@ autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_res
|
|
|
163
200
|
autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py,sha256=FvpEyBwAfrYvnxcQ_gt7vTmfgoFoR7qr-r1OPx13Xks,5475
|
|
164
201
|
autocoder/common/v2/agent/agentic_edit_tools/list_package_info_tool_resolver.py,sha256=dIdV12VuczHpHuHgx2B1j_3BZYc9PL0jfHCuBk9ryk8,2005
|
|
165
202
|
autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py,sha256=lGT4_QYJK6Fa9f6HVSGo0cSsGK7qCsDYgJGUowNxPzk,1499
|
|
166
|
-
autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py,sha256=
|
|
167
|
-
autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py,sha256=
|
|
203
|
+
autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py,sha256=yO7ZORGsKpPOiwbFamWzC_UtUKc7_7AchZz2R6I8HP0,2850
|
|
204
|
+
autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py,sha256=iJ9OocL1pHCWpwXMRl6MtNMwdcdsXI3YfluwPqn2dsM,12274
|
|
168
205
|
autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py,sha256=ACvygitMVOroQ8I-07v9fIvX9Xm9bO1HrIW--Xv9qKw,6894
|
|
169
206
|
autocoder/common/v2/agent/agentic_edit_tools/test_search_files_tool_resolver.py,sha256=9eBo3WLkrr77iNotwIwVmH1ZL3UY0JQgLpdAIc9wTTM,6127
|
|
207
|
+
autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py,sha256=ZWRPsJny_My4UMzovrB8J2_x5N0rEW-xx3DVI-kDRFI,15870
|
|
170
208
|
autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py,sha256=wM2Xy4bcnD0TSLEmcM8rvvyyWenN5_KQnJMO6hJ8lTE,1716
|
|
171
|
-
autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py,sha256=
|
|
209
|
+
autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py,sha256=hRCFosXaf76Di3aJp_pEhTrXMfHRy5DdWeoNrelq55g,10129
|
|
172
210
|
autocoder/compilers/__init__.py,sha256=C0HOms70QA747XD0uZEMmGtRFcIPenohyqECNStv0Bw,1647
|
|
173
211
|
autocoder/compilers/base_compiler.py,sha256=dsTzMO4H_RoqWfE-SntIk2B52hWuvSlWVLtkdCbHgGs,3244
|
|
174
212
|
autocoder/compilers/compiler_config_api.py,sha256=QRSwWm_EX7jSeZ3dtQqM9HI__x5aZ7U0c3fHIW_2N48,13839
|
|
@@ -176,6 +214,7 @@ autocoder/compilers/compiler_config_manager.py,sha256=tNwHEk3t2o2L7ZVpHICDEOOIXR
|
|
|
176
214
|
autocoder/compilers/compiler_factory.py,sha256=SLUdvBZdqr_pkY-lfArHCuBVjtiMoIs9uxCGztYj6Ro,10950
|
|
177
215
|
autocoder/compilers/java_compiler.py,sha256=gR-_GB0_A1ZU3cTgRu1H9VPtLPmCWYo2UwBLEZIMvXU,26362
|
|
178
216
|
autocoder/compilers/models.py,sha256=ZqGQhiF5vfsK71xzLlsCUS_q_Oune3mqokJ8S8ZOPSc,9527
|
|
217
|
+
autocoder/compilers/normal_compiler.py,sha256=3FQO2KK_-pa9lUotXmtCp920lQi9PpcGtdcFpwzjkIQ,1931
|
|
179
218
|
autocoder/compilers/provided_compiler.py,sha256=gFxMOmFQYzsGCHJ9oPnSPQXboRdB0C4s5evdZMD99js,14667
|
|
180
219
|
autocoder/compilers/python_compiler.py,sha256=2w2OM_6H0ZWvaquQpDo1x4VciBWczCZkfwmEyJEEpn8,14389
|
|
181
220
|
autocoder/compilers/reactjs_compiler.py,sha256=h1_9OqiA8ca84-u3DIxQifvtH-2FSsKFWmhwALzNhqM,18159
|
|
@@ -195,7 +234,7 @@ autocoder/dispacher/actions/plugins/action_translate.py,sha256=GEn7dZA22jy5WyzIN
|
|
|
195
234
|
autocoder/events/__init__.py,sha256=1x_juwr9Ows2RADDa2LyI4QlmPxOVOXZeLO1cht-slM,1443
|
|
196
235
|
autocoder/events/event_content.py,sha256=eLHf5M1BifSqhzzEBgAWKn3JD5_z_1mWeNdZ53TpMqk,12240
|
|
197
236
|
autocoder/events/event_manager.py,sha256=ObbvPfNrrhC85w5VvsnLS9oy92oHEwqMN08qGPReNNA,11884
|
|
198
|
-
autocoder/events/event_manager_singleton.py,sha256=
|
|
237
|
+
autocoder/events/event_manager_singleton.py,sha256=F2OkC-rSTONZd4KS-ERnBAtBPO74aiEAMwJ9IKYa_b0,14742
|
|
199
238
|
autocoder/events/event_store.py,sha256=y6tT3P-o3yhDptrKi-UmqI_ZBNg7v21FriI3f7lo_ME,12709
|
|
200
239
|
autocoder/events/event_types.py,sha256=W_S6PTDIBdufcuPosgz64iITzQy79flL8s3hWB-vZ9o,3638
|
|
201
240
|
autocoder/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -218,7 +257,8 @@ autocoder/linters/base_linter.py,sha256=1_0DPESnSyF3ZcQhoFkBYJylT5w-B61Rx-3A9uhu
|
|
|
218
257
|
autocoder/linters/code_linter.py,sha256=JylTj-Mj4jl9-XSH3PVlbQ4l55Y6E1FG-glv860CGSs,22462
|
|
219
258
|
autocoder/linters/linter_factory.py,sha256=rsDzaY0jFnmEsbY8Co_xxpJe9lXgfs07Nnrht8_WWtY,10273
|
|
220
259
|
autocoder/linters/models.py,sha256=GBdayu_p50KBxoRms4X68zrDK-OsKDEKKjo926FevwE,9838
|
|
221
|
-
autocoder/linters/
|
|
260
|
+
autocoder/linters/normal_linter.py,sha256=5Yavs24XNMOryl0ZDpr1UbVboCZwaIs4x9mFqoC1ZYk,13022
|
|
261
|
+
autocoder/linters/python_linter.py,sha256=CurQa4pYeyPv_e4FxgVBHW-pHOzQTOftARLgY97AKBw,22511
|
|
222
262
|
autocoder/linters/reactjs_linter.py,sha256=LDCXmAI15LUq8nNPyYko3oryzCc2Su05ob63jEeDdIs,20815
|
|
223
263
|
autocoder/linters/shadow_linter.py,sha256=SKgRNVnTavNUviFC9osYMz18nGWCVOPOHx9LavEbnmc,15047
|
|
224
264
|
autocoder/linters/vue_linter.py,sha256=ZyvoxT0kSizFh_UkR7UZYO5DV9edbvDQZaibEF9W95I,20905
|
|
@@ -243,7 +283,7 @@ autocoder/rag/doc_filter.py,sha256=UduVO2mlrngwJICrefjDJTYfdmQ4GcRXrfWDQ7xXksk,1
|
|
|
243
283
|
autocoder/rag/document_retriever.py,sha256=rFwbAuHTvEFJq16HQNlmRLyJp2ddn2RNFslw_ncU7NI,8847
|
|
244
284
|
autocoder/rag/lang.py,sha256=HvcMeu6jReEJOGxyLMn4rwBoD-myFwmykS3VLceBJLs,3364
|
|
245
285
|
autocoder/rag/llm_wrapper.py,sha256=Ht5GF5yJtrztoliujsZzx_ooWZmHkd5xLZKcGEiicZw,4303
|
|
246
|
-
autocoder/rag/long_context_rag.py,sha256=
|
|
286
|
+
autocoder/rag/long_context_rag.py,sha256=zLo4SmdZ50Ex8egdXqwVx4Jp5cR1k4UMf49Z-_NbXL0,43550
|
|
247
287
|
autocoder/rag/qa_conversation_strategy.py,sha256=4CiMK88apKbJ2YM4HHq1KGpr5jUkTh0_m_aCyt-JYgc,10568
|
|
248
288
|
autocoder/rag/rag_config.py,sha256=8LwFcTd8OJWWwi1_WY4IzjqgtT6RyE2j4PjxS5cCTDE,802
|
|
249
289
|
autocoder/rag/rag_entry.py,sha256=6TKtErZ0Us9XSV6HgRKXA6yR3SiZGPHpynOKSaR1wgE,2463
|
|
@@ -252,6 +292,9 @@ autocoder/rag/relevant_utils.py,sha256=25wRiX-CrBsratASLGHsZE3ux7VjwaQoDNtl74UlV
|
|
|
252
292
|
autocoder/rag/searchable.py,sha256=miO2U-3J9JDYFOEv85vs9JExDQ0goLIeI20Ob2rNqU4,2067
|
|
253
293
|
autocoder/rag/simple_directory_reader.py,sha256=LkKreCkNdEOoL4fNhc3_hDoyyWTQUte4uqextISRz4U,24485
|
|
254
294
|
autocoder/rag/simple_rag.py,sha256=I902EUqOK1WM0Y2WFd7RzDJYofElvTZNLVCBtX5A9rc,14885
|
|
295
|
+
autocoder/rag/test_doc_filter.py,sha256=eE6IiMknCHDMVbdyOBQQVTKiyAnX1tAm7qFyfxmXSN0,15301
|
|
296
|
+
autocoder/rag/test_long_context_rag.py,sha256=hn50GKhXyRrlJ1mP9RI4bnObR6pZb2yDmJRcZmVSzVU,18365
|
|
297
|
+
autocoder/rag/test_token_limiter.py,sha256=rJmLUqPalkznL7PskKabuqu5dC6Yj-kWa498TaVMjAY,13744
|
|
255
298
|
autocoder/rag/token_checker.py,sha256=jc76x6KWmvVxds6W8juZfQGaoErudc2HenG3sNQfSLs,2819
|
|
256
299
|
autocoder/rag/token_counter.py,sha256=C-Lwc4oIjJpZDEqp9WLHGOe6hb4yhrdJpMtkrtp_1qc,2125
|
|
257
300
|
autocoder/rag/token_limiter.py,sha256=3VgJF4may3ESyATmBIiOe05oc3VsidJcJTJ5EhoSvH8,18854
|
|
@@ -283,7 +326,7 @@ autocoder/rag/stream_event/types.py,sha256=rtLwOE8rShmi1dJdxyBpAV5ZjLBGG9vptMiSz
|
|
|
283
326
|
autocoder/regex_project/__init__.py,sha256=EBZeCL5ORyD_9_5u_UuG4s7XtpXOu0y1sWDmxWFtufE,6781
|
|
284
327
|
autocoder/regexproject/__init__.py,sha256=QMXphSxjuv_LDIx0L_0jnnvCzMfmrOl0VMTVmXabeL0,8976
|
|
285
328
|
autocoder/shadows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
286
|
-
autocoder/shadows/shadow_manager.py,sha256=
|
|
329
|
+
autocoder/shadows/shadow_manager.py,sha256=atY6d9Si4twe3pqQ56SjMje5W1VxamPSZs_WzQtAQvM,19165
|
|
287
330
|
autocoder/suffixproject/__init__.py,sha256=Rew-M9W4pgO9cvw9UCdrc6QVCPdBhVcIpPBnJxrLJ3M,10374
|
|
288
331
|
autocoder/tsproject/__init__.py,sha256=e_TWVyXQQxYKsXqdQZuFVqNCQLdtBVNJRTs0fgLXVdA,11055
|
|
289
332
|
autocoder/utils/__init__.py,sha256=W47ac6IOZhNR1rdbho9fvhHnPI_N1i4oMcZOwxLelbU,1123
|
|
@@ -310,9 +353,9 @@ autocoder/utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
310
353
|
autocoder/utils/auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
311
354
|
autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=t902pKxQ5xM7zgIHiAOsTPLwxhE6VuvXAqPy751S7fg,14096
|
|
312
355
|
autocoder/utils/chat_auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
313
|
-
auto_coder-0.1.
|
|
314
|
-
auto_coder-0.1.
|
|
315
|
-
auto_coder-0.1.
|
|
316
|
-
auto_coder-0.1.
|
|
317
|
-
auto_coder-0.1.
|
|
318
|
-
auto_coder-0.1.
|
|
356
|
+
auto_coder-0.1.364.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
|
357
|
+
auto_coder-0.1.364.dist-info/METADATA,sha256=G52msypzQ4D-qqJYxzrJC3r8J3LleJ2lpj5BYpjyk6o,2775
|
|
358
|
+
auto_coder-0.1.364.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
359
|
+
auto_coder-0.1.364.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
|
|
360
|
+
auto_coder-0.1.364.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
|
|
361
|
+
auto_coder-0.1.364.dist-info/RECORD,,
|
|
File without changes
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
import byzerllm
|
|
3
|
+
from typing import List, Dict, Optional, Literal, Any, Union
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
from loguru import logger
|
|
6
|
+
import threading
|
|
7
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
8
|
+
import os
|
|
9
|
+
from datetime import datetime
|
|
10
|
+
from .types import Message, ReplyDecision
|
|
11
|
+
from .utils import GroupUtils,GroupMemberResponse
|
|
12
|
+
|
|
13
|
+
if typing.TYPE_CHECKING:
|
|
14
|
+
from .base_agent import BaseAgent
|
|
15
|
+
|
|
16
|
+
class AgentHub:
|
|
17
|
+
"""管理所有Agent实例的全局中心"""
|
|
18
|
+
_instance = None
|
|
19
|
+
agents: Dict[str, 'BaseAgent'] = {}
|
|
20
|
+
|
|
21
|
+
def __new__(cls):
|
|
22
|
+
if cls._instance is None:
|
|
23
|
+
cls._instance = super().__new__(cls)
|
|
24
|
+
return cls._instance
|
|
25
|
+
|
|
26
|
+
@classmethod
|
|
27
|
+
def register_agent(cls, agent: 'BaseAgent'):
|
|
28
|
+
"""注册一个新的Agent"""
|
|
29
|
+
if agent.name in cls.agents:
|
|
30
|
+
raise ValueError(f"Agent with name {agent.name} already exists")
|
|
31
|
+
cls.agents[agent.name] = agent
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def get_agent(cls, name: str) -> Optional['BaseAgent']:
|
|
35
|
+
"""根据名称获取Agent"""
|
|
36
|
+
return cls.agents.get(name)
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def list_agents(cls) -> List[str]:
|
|
40
|
+
"""获取所有Agent名称"""
|
|
41
|
+
return list(cls.agents.keys())
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def get_all_groups(cls) -> List['Group']:
|
|
45
|
+
"""获取所有群组实例"""
|
|
46
|
+
return list(GroupHub.groups.values())
|
|
47
|
+
|
|
48
|
+
class GroupHub:
|
|
49
|
+
"""管理所有Group实例的全局中心"""
|
|
50
|
+
_instance = None
|
|
51
|
+
groups: Dict[str, 'Group'] = {}
|
|
52
|
+
_groups_lock = threading.RLock()
|
|
53
|
+
|
|
54
|
+
def __new__(cls):
|
|
55
|
+
if cls._instance is None:
|
|
56
|
+
cls._instance = super().__new__(cls)
|
|
57
|
+
return cls._instance
|
|
58
|
+
|
|
59
|
+
@classmethod
|
|
60
|
+
def register_group(cls, group: 'Group'):
|
|
61
|
+
"""注册一个新的Group"""
|
|
62
|
+
with cls._groups_lock:
|
|
63
|
+
if group.name in cls.groups:
|
|
64
|
+
raise ValueError(f"Group with name {group.name} already exists")
|
|
65
|
+
cls.groups[group.name] = group
|
|
66
|
+
|
|
67
|
+
@classmethod
|
|
68
|
+
def get_group(cls, name: str) -> Optional['Group']:
|
|
69
|
+
"""根据名称获取Group"""
|
|
70
|
+
with cls._groups_lock:
|
|
71
|
+
return cls.groups.get(name)
|
|
72
|
+
|
|
73
|
+
@classmethod
|
|
74
|
+
def list_groups(cls) -> List[str]:
|
|
75
|
+
"""获取所有Group名称"""
|
|
76
|
+
with cls._groups_lock:
|
|
77
|
+
return list(cls.groups.keys())
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class Group:
|
|
82
|
+
# 类级线程池(所有 Group 实例共享)
|
|
83
|
+
_executor = ThreadPoolExecutor(max_workers=min(32, (os.cpu_count() or 1) * 4 + 4))
|
|
84
|
+
|
|
85
|
+
def __init__(self, name: str):
|
|
86
|
+
self.name = name
|
|
87
|
+
self.members: List[Agent] = []
|
|
88
|
+
self.history: List[Message] = []
|
|
89
|
+
# 成员列表和消息历史的读写锁
|
|
90
|
+
self._members_lock = threading.RLock()
|
|
91
|
+
self._history_lock = threading.RLock()
|
|
92
|
+
# 自动注册到GroupHub
|
|
93
|
+
GroupHub.register_group(self)
|
|
94
|
+
|
|
95
|
+
def add_member(self, agent: 'Agent'):
|
|
96
|
+
with self._members_lock:
|
|
97
|
+
if agent not in self.members:
|
|
98
|
+
self.members.append(agent)
|
|
99
|
+
with agent._group_lock: # 访问 Agent 的锁
|
|
100
|
+
agent.joined_groups[self.name] = self
|
|
101
|
+
|
|
102
|
+
def _safe_send_message(self, member: 'Agent', message: Message, print_conversation: bool):
|
|
103
|
+
try:
|
|
104
|
+
# 调用 Agent 的线程安全接收方法
|
|
105
|
+
member.threadsafe_receive(message,print_conversation=print_conversation)
|
|
106
|
+
except Exception as e:
|
|
107
|
+
import traceback
|
|
108
|
+
traceback.print_exc()
|
|
109
|
+
logger.error(f"Message delivery failed to {member.name}: {str(e)}")
|
|
110
|
+
|
|
111
|
+
def _handle_send_result(self, future):
|
|
112
|
+
try:
|
|
113
|
+
future.result()
|
|
114
|
+
except Exception as e:
|
|
115
|
+
logger.error(f"Message delivery error: {str(e)}")
|
|
116
|
+
|
|
117
|
+
def broadcast(self, message: Message, print_conversation: bool = False):
|
|
118
|
+
# 消息历史写入需要同步
|
|
119
|
+
with self._history_lock:
|
|
120
|
+
self.history.append(message)
|
|
121
|
+
|
|
122
|
+
# 使用线程池并行发送
|
|
123
|
+
futures = []
|
|
124
|
+
with self._members_lock: # 保护成员列表遍历
|
|
125
|
+
current_members = self.members.copy()
|
|
126
|
+
|
|
127
|
+
for member in current_members:
|
|
128
|
+
if member.name == message.sender:
|
|
129
|
+
continue
|
|
130
|
+
|
|
131
|
+
futures.append(
|
|
132
|
+
self._executor.submit(
|
|
133
|
+
self._safe_send_message,
|
|
134
|
+
member, message, print_conversation
|
|
135
|
+
)
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
# 异步等待所有任务完成(可选)
|
|
139
|
+
for future in futures:
|
|
140
|
+
future.add_done_callback(self._handle_send_result)
|
|
141
|
+
|
|
142
|
+
if print_conversation:
|
|
143
|
+
with self._history_lock: # 同步打印
|
|
144
|
+
print(f"[Group Broadcast End] {message.sender} finished broadcasting to {self.name} group")
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class GroupMembership:
|
|
148
|
+
def __init__(self, agent: 'BaseAgent', group: 'Group'):
|
|
149
|
+
self.agent = agent
|
|
150
|
+
self.group = group
|
|
151
|
+
|
|
152
|
+
def talk_to_all(self, content: str):
|
|
153
|
+
message = Message(
|
|
154
|
+
sender=self.agent.name,
|
|
155
|
+
content=content,
|
|
156
|
+
is_group=True,
|
|
157
|
+
group_name=self.group.name
|
|
158
|
+
)
|
|
159
|
+
self.group.broadcast(message)
|
|
160
|
+
|
|
161
|
+
def talk_to(self, content: str, mentions: List['BaseAgent']):
|
|
162
|
+
message = Message(
|
|
163
|
+
sender=self.agent.name,
|
|
164
|
+
content=f"@{' @'.join([a.name for a in mentions])} {content}",
|
|
165
|
+
is_group=True,
|
|
166
|
+
group_name=self.group.name,
|
|
167
|
+
mentions=[a.name for a in mentions]
|
|
168
|
+
)
|
|
169
|
+
self.group.broadcast(message)
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import locale
|
|
2
|
+
from byzerllm.utils import format_str_jinja2
|
|
3
|
+
|
|
4
|
+
MESSAGES = {
|
|
5
|
+
"auto_command_analyzing": {
|
|
6
|
+
"en": "Analyzing Command Request",
|
|
7
|
+
"zh": "正在分析命令请求"
|
|
8
|
+
},
|
|
9
|
+
# run_in_terminal方法的国际化文本
|
|
10
|
+
"agent_start": {
|
|
11
|
+
"en": "[bold cyan]Starting Agent: {{ project_name }}[/]",
|
|
12
|
+
"zh": "[bold cyan]启动代理: {{ project_name }}[/]"
|
|
13
|
+
},
|
|
14
|
+
"user_input": {
|
|
15
|
+
"en": "[bold]User Input:[/bold]\n{{ input }}",
|
|
16
|
+
"zh": "[bold]用户输入:[/bold]\n{{ input }}"
|
|
17
|
+
},
|
|
18
|
+
"user_input_title": {
|
|
19
|
+
"en": "Objective",
|
|
20
|
+
"zh": "目标"
|
|
21
|
+
},
|
|
22
|
+
"token_usage_log": {
|
|
23
|
+
"en": "Token Usage: Model={{ model }}, Input Tokens={{ input_tokens }}, Output Tokens={{ output_tokens }}, Input Cost=${{ input_cost }}, Output Cost=${{ output_cost }}",
|
|
24
|
+
"zh": "Token使用情况: 模型={{ model }}, 输入Token={{ input_tokens }}, 输出Token={{ output_tokens }}, 输入成本=${{ input_cost }}, 输出成本=${{ output_cost }}"
|
|
25
|
+
},
|
|
26
|
+
"tool_operation_title": {
|
|
27
|
+
"en": "🛠️ Operation: {{ tool_name }}",
|
|
28
|
+
"zh": "🛠️ 操作: {{ tool_name }}"
|
|
29
|
+
},
|
|
30
|
+
"tool_result_success_title": {
|
|
31
|
+
"en": "✅ Tool Result: {{ tool_name }}",
|
|
32
|
+
"zh": "✅ 工具结果: {{ tool_name }}"
|
|
33
|
+
},
|
|
34
|
+
"tool_result_failure_title": {
|
|
35
|
+
"en": "❌ Tool Result: {{ tool_name }}",
|
|
36
|
+
"zh": "❌ 工具结果: {{ tool_name }}"
|
|
37
|
+
},
|
|
38
|
+
"status": {
|
|
39
|
+
"en": "[bold]Status:[/bold] {{ status }}",
|
|
40
|
+
"zh": "[bold]状态:[/bold] {{ status }}"
|
|
41
|
+
},
|
|
42
|
+
"message": {
|
|
43
|
+
"en": "[bold]Message:[/bold] {{ message }}",
|
|
44
|
+
"zh": "[bold]消息:[/bold] {{ message }}"
|
|
45
|
+
},
|
|
46
|
+
"success_status": {
|
|
47
|
+
"en": "Success",
|
|
48
|
+
"zh": "成功"
|
|
49
|
+
},
|
|
50
|
+
"failure_status": {
|
|
51
|
+
"en": "Failure",
|
|
52
|
+
"zh": "失败"
|
|
53
|
+
},
|
|
54
|
+
"format_tool_error": {
|
|
55
|
+
"en": "Error formatting tool result content: {{ error }}",
|
|
56
|
+
"zh": "格式化工具结果内容时出错: {{ error }}"
|
|
57
|
+
},
|
|
58
|
+
"completion_title": {
|
|
59
|
+
"en": "🏁 Task Completed",
|
|
60
|
+
"zh": "🏁 任务完成"
|
|
61
|
+
},
|
|
62
|
+
"suggested_command": {
|
|
63
|
+
"en": "[dim]Suggested Command:[/dim] [bold cyan]{{ command }}[/]",
|
|
64
|
+
"zh": "[dim]建议命令:[/dim] [bold cyan]{{ command }}[/]"
|
|
65
|
+
},
|
|
66
|
+
"error_title": {
|
|
67
|
+
"en": "🔥 Error",
|
|
68
|
+
"zh": "🔥 错误"
|
|
69
|
+
},
|
|
70
|
+
"error_content": {
|
|
71
|
+
"en": "[bold red]Error:[/bold red] {{ message }}",
|
|
72
|
+
"zh": "[bold red]错误:[/bold red] {{ message }}"
|
|
73
|
+
},
|
|
74
|
+
"fatal_error_title": {
|
|
75
|
+
"en": "🔥 System Error",
|
|
76
|
+
"zh": "🔥 系统错误"
|
|
77
|
+
},
|
|
78
|
+
"fatal_error_content": {
|
|
79
|
+
"en": "[bold red]Fatal Error:[/bold red]\n{{ error }}",
|
|
80
|
+
"zh": "[bold red]致命错误:[/bold red]\n{{ error }}"
|
|
81
|
+
},
|
|
82
|
+
"shadow_merge_error": {
|
|
83
|
+
"en": "Error merging shadow changes to project: {{ error }}",
|
|
84
|
+
"zh": "合并影子更改到项目时出错: {{ error }}"
|
|
85
|
+
},
|
|
86
|
+
"agent_execution_complete": {
|
|
87
|
+
"en": "[bold cyan]Agent Execution Completed[/]",
|
|
88
|
+
"zh": "[bold cyan]代理执行完成[/]"
|
|
89
|
+
},
|
|
90
|
+
"unexpected_error": {
|
|
91
|
+
"en": "Unexpected error during agent execution:",
|
|
92
|
+
"zh": "代理执行过程中发生意外错误:"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def get_system_language():
|
|
98
|
+
try:
|
|
99
|
+
return locale.getdefaultlocale()[0][:2]
|
|
100
|
+
except:
|
|
101
|
+
return "en"
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def get_message(key):
|
|
105
|
+
lang = get_system_language()
|
|
106
|
+
if key in MESSAGES:
|
|
107
|
+
return MESSAGES[key].get(lang, MESSAGES[key].get("en", ""))
|
|
108
|
+
return ""
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def get_message_with_format(msg_key: str, **kwargs):
|
|
112
|
+
return format_str_jinja2(get_message(msg_key), **kwargs)
|