auto-coder 0.1.220__py3-none-any.whl → 0.1.222__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.220.dist-info → auto_coder-0.1.222.dist-info}/METADATA +1 -1
- {auto_coder-0.1.220.dist-info → auto_coder-0.1.222.dist-info}/RECORD +13 -13
- autocoder/auto_coder.py +35 -5
- autocoder/chat_auto_coder.py +35 -4
- autocoder/common/__init__.py +2 -0
- autocoder/common/command_completer.py +1 -1
- autocoder/common/mcp_servers/mcp_server_perplexity.py +2 -2
- autocoder/rag/long_context_rag.py +3 -0
- autocoder/version.py +1 -1
- {auto_coder-0.1.220.dist-info → auto_coder-0.1.222.dist-info}/LICENSE +0 -0
- {auto_coder-0.1.220.dist-info → auto_coder-0.1.222.dist-info}/WHEEL +0 -0
- {auto_coder-0.1.220.dist-info → auto_coder-0.1.222.dist-info}/entry_points.txt +0 -0
- {auto_coder-0.1.220.dist-info → auto_coder-0.1.222.dist-info}/top_level.txt +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
autocoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
autocoder/auto_coder.py,sha256=
|
|
2
|
+
autocoder/auto_coder.py,sha256=BQvCwOc-4XgOtpwQWHCTvcx97XEejdwRordyrCYSf0s,43554
|
|
3
3
|
autocoder/auto_coder_lang.py,sha256=Rtupq6N3_HT7JRhDKdgCBcwRaiAnyCOR_Gsp4jUomrI,3229
|
|
4
4
|
autocoder/auto_coder_rag.py,sha256=illKgzP2bv-Tq50ujsofJnOHdI4pzr0ALtfR8NHHWdQ,22351
|
|
5
5
|
autocoder/auto_coder_server.py,sha256=XU9b4SBH7zjPPXaTWWHV4_zJm-XYa6njuLQaplYJH_c,20290
|
|
6
6
|
autocoder/benchmark.py,sha256=Ypomkdzd1T3GE6dRICY3Hj547dZ6_inqJbBJIp5QMco,4423
|
|
7
|
-
autocoder/chat_auto_coder.py,sha256=
|
|
7
|
+
autocoder/chat_auto_coder.py,sha256=x98afu7PCzYtf2545tIdJP13tI3lixFJg4sSSFtRjeM,95346
|
|
8
8
|
autocoder/chat_auto_coder_lang.py,sha256=ReWukXKVvuzVvpbYk5O9kc1ev7XNmAv3DnuQhmpLmnc,8717
|
|
9
9
|
autocoder/command_args.py,sha256=9aYJ-AmPxP1sQh6ciw04FWHjSn31f2W9afXFwo8wgx4,30441
|
|
10
10
|
autocoder/lang.py,sha256=U6AjVV8Rs1uLyjFCZ8sT6WWuNUxMBqkXXIOs4S120uk,14511
|
|
11
|
-
autocoder/version.py,sha256=
|
|
11
|
+
autocoder/version.py,sha256=tEdfS6Yw3kxd6NglROcL14L5i85YA9bN5_7H9HyePxA,24
|
|
12
12
|
autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
autocoder/agent/auto_demand_organizer.py,sha256=NWSAEsEk94vT3lGjfo25kKLMwYdPcpy9e-i21txPasQ,6942
|
|
14
14
|
autocoder/agent/auto_filegroup.py,sha256=CW7bqp0FW1GIEMnl-blyAc2UGT7O9Mom0q66ITz1ckM,6635
|
|
@@ -21,7 +21,7 @@ autocoder/agent/project_reader.py,sha256=tWLaPoLw1gI6kO_NzivQj28KbobU2ceOLuppHMb
|
|
|
21
21
|
autocoder/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
autocoder/common/JupyterClient.py,sha256=O-wi6pXeAEYhAY24kDa0BINrLYvKS6rKyWe98pDClS0,2816
|
|
23
23
|
autocoder/common/ShellClient.py,sha256=fM1q8t_XMSbLBl2zkCNC2J9xuyKN3eXzGm6hHhqL2WY,2286
|
|
24
|
-
autocoder/common/__init__.py,sha256=
|
|
24
|
+
autocoder/common/__init__.py,sha256=jwjsx9qT_5fJmdlbNt3I5UiDtDKcdeLqQ8s_Tw_sT0U,11492
|
|
25
25
|
autocoder/common/anything2images.py,sha256=0ILBbWzY02M-CiWB-vzuomb_J1hVdxRcenAfIrAXq9M,25283
|
|
26
26
|
autocoder/common/anything2img.py,sha256=4TREa-sOA-iargieUy7MpyCYVUE-9Mmq0wJtwomPqnE,7662
|
|
27
27
|
autocoder/common/audio.py,sha256=Kn9nWKQddWnUrAz0a_ZUgjcu4VUU_IcZBigT7n3N3qc,7439
|
|
@@ -38,7 +38,7 @@ autocoder/common/code_auto_merge_diff.py,sha256=5SI6ggklJ0QDHvsS0cpNXFuIkFRQxp1i
|
|
|
38
38
|
autocoder/common/code_auto_merge_editblock.py,sha256=l6yEiZqXyIlUNIIPXvkHOnLCIInXR78TzSjF-jtJkkg,17035
|
|
39
39
|
autocoder/common/code_auto_merge_strict_diff.py,sha256=ABYOTDUQYA4Bn4BwT1Rw812y49cHW3UH_JSpM9uJ6ig,9399
|
|
40
40
|
autocoder/common/code_modification_ranker.py,sha256=DFlbwgdg8GK47zVcvfZSzkyniEKmTVLTOWejjcVIgaw,5121
|
|
41
|
-
autocoder/common/command_completer.py,sha256=
|
|
41
|
+
autocoder/common/command_completer.py,sha256=xXDatBOkjV78jsgG1eF8pcMFC0glTm1poesjd_Q6kSw,9169
|
|
42
42
|
autocoder/common/command_generator.py,sha256=v4LmU7sO-P7jEZIXCWHUC6P-vT7AvBi_x_PTwCqBAE8,1323
|
|
43
43
|
autocoder/common/command_templates.py,sha256=3G-pCNbL6iHbnkG6v1JZpbIK3Mc9d373_RYGmCcDPMY,8548
|
|
44
44
|
autocoder/common/const.py,sha256=eTjhjh4Aj4CUzviJ81jaf3Y5cwqsLATySn2wJxaS6RQ,2911
|
|
@@ -57,7 +57,7 @@ autocoder/common/sys_prompt.py,sha256=JlexfjZt554faqbgkCmzOJqYUzDHfbnxly5ugFfHfE
|
|
|
57
57
|
autocoder/common/text.py,sha256=KGRQq314GHBmY4MWG8ossRoQi1_DTotvhxchpn78c-k,1003
|
|
58
58
|
autocoder/common/types.py,sha256=oQKPE1TG0O7DQQLaBSMp6CP3Bbvg0K8elFdidlV52Lg,631
|
|
59
59
|
autocoder/common/mcp_servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
-
autocoder/common/mcp_servers/mcp_server_perplexity.py,sha256=
|
|
60
|
+
autocoder/common/mcp_servers/mcp_server_perplexity.py,sha256=jz0LkCgZcqKkNdLZ9swNOu9Besoba4JOyHDedoZnWHo,5546
|
|
61
61
|
autocoder/data/tokenizer.json,sha256=QfO_ZCE9qMAS2L0IcaWKH99wRj6PCPEQ3bsQgvUp9mk,4607451
|
|
62
62
|
autocoder/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
63
|
autocoder/db/store.py,sha256=tFT66bP2ZKIqZip-uhLkHRSLaaOAUUDZfozJwcqix3c,1908
|
|
@@ -78,7 +78,7 @@ autocoder/rag/api_server.py,sha256=dRbhAZVRAOlZ64Cnxf4_rKb4iJwHnrWS9Zr67IVORw0,7
|
|
|
78
78
|
autocoder/rag/doc_filter.py,sha256=B99Qcy3tcNLuSz2kWbpgfBj2_Igme91zWKOJ2Niq2UY,6652
|
|
79
79
|
autocoder/rag/document_retriever.py,sha256=5oThtxukGuRFF96o3pHKsk306a8diXbhgSrbqyU2BvM,8894
|
|
80
80
|
autocoder/rag/llm_wrapper.py,sha256=sbDxCANiZyWb_ocqNgqu2oy3c2t8orPNRGleEs-Uwl8,2649
|
|
81
|
-
autocoder/rag/long_context_rag.py,sha256=
|
|
81
|
+
autocoder/rag/long_context_rag.py,sha256=F-ulTwSZ9ogIGL9jTXDUnI44zStH02EjrztZgRkW9-g,25246
|
|
82
82
|
autocoder/rag/rag_config.py,sha256=8LwFcTd8OJWWwi1_WY4IzjqgtT6RyE2j4PjxS5cCTDE,802
|
|
83
83
|
autocoder/rag/rag_entry.py,sha256=6TKtErZ0Us9XSV6HgRKXA6yR3SiZGPHpynOKSaR1wgE,2463
|
|
84
84
|
autocoder/rag/raw_rag.py,sha256=yS2Ur6kG0IRjhCj2_VonwxjY_xls_E62jO5Gz5j2nqE,2952
|
|
@@ -122,9 +122,9 @@ autocoder/utils/request_event_queue.py,sha256=r3lo5qGsB1dIjzVQ05dnr0z_9Z3zOkBdP1
|
|
|
122
122
|
autocoder/utils/request_queue.py,sha256=nwp6PMtgTCiuwJI24p8OLNZjUiprC-TsefQrhMI-yPE,3889
|
|
123
123
|
autocoder/utils/rest.py,sha256=HawagAap3wMIDROGhY1730zSZrJR_EycODAA5qOj83c,8807
|
|
124
124
|
autocoder/utils/tests.py,sha256=BqphrwyycGAvs-5mhH8pKtMZdObwhFtJ5MC_ZAOiLq8,1340
|
|
125
|
-
auto_coder-0.1.
|
|
126
|
-
auto_coder-0.1.
|
|
127
|
-
auto_coder-0.1.
|
|
128
|
-
auto_coder-0.1.
|
|
129
|
-
auto_coder-0.1.
|
|
130
|
-
auto_coder-0.1.
|
|
125
|
+
auto_coder-0.1.222.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
|
126
|
+
auto_coder-0.1.222.dist-info/METADATA,sha256=T3YPAkMEoTSY8J8xgPi-f-Rn_szn6-A4wJhbQfn5Gvs,2615
|
|
127
|
+
auto_coder-0.1.222.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
128
|
+
auto_coder-0.1.222.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
|
|
129
|
+
auto_coder-0.1.222.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
|
|
130
|
+
auto_coder-0.1.222.dist-info/RECORD,,
|
autocoder/auto_coder.py
CHANGED
|
@@ -577,6 +577,9 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
577
577
|
with Live(
|
|
578
578
|
Panel("", title="Response", border_style="green", expand=False),
|
|
579
579
|
refresh_per_second=4,
|
|
580
|
+
auto_refresh=True,
|
|
581
|
+
vertical_overflow="visible",
|
|
582
|
+
console=Console(force_terminal=True, color_system="auto", height=None)
|
|
580
583
|
) as live:
|
|
581
584
|
live.update(
|
|
582
585
|
Panel(
|
|
@@ -689,6 +692,9 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
689
692
|
with Live(
|
|
690
693
|
Panel("", title="Response", border_style="green", expand=False),
|
|
691
694
|
refresh_per_second=4,
|
|
695
|
+
auto_refresh=True,
|
|
696
|
+
vertical_overflow="visible",
|
|
697
|
+
console=Console(force_terminal=True, color_system="auto", height=None)
|
|
692
698
|
) as live:
|
|
693
699
|
live.update(
|
|
694
700
|
Panel(
|
|
@@ -698,8 +704,8 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
698
704
|
expand=False,
|
|
699
705
|
)
|
|
700
706
|
)
|
|
701
|
-
return
|
|
702
707
|
|
|
708
|
+
return
|
|
703
709
|
elif raw_args.agent_command == "designer":
|
|
704
710
|
from autocoder.agent.designer import SVGDesigner, SDDesigner, LogoDesigner
|
|
705
711
|
|
|
@@ -938,11 +944,24 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
938
944
|
|
|
939
945
|
return {}
|
|
940
946
|
|
|
941
|
-
if args.
|
|
947
|
+
if args.action == "rag":
|
|
948
|
+
args.enable_rag_search = True
|
|
949
|
+
args.enable_rag_context = False
|
|
942
950
|
rag = RAGFactory.get_rag(llm=chat_llm, args=args, path="")
|
|
943
951
|
response = rag.stream_chat_oai(
|
|
944
|
-
conversations=
|
|
952
|
+
conversations=[{"role": "user", "content": args.query}])[0]
|
|
945
953
|
v = ([item, None] for item in response)
|
|
954
|
+
|
|
955
|
+
elif args.action == "mcp":
|
|
956
|
+
from autocoder.common.mcp_server import get_mcp_server, McpRequest, McpInstallRequest, McpRemoveRequest, McpListRequest, McpListRunningRequest, McpRefreshRequest
|
|
957
|
+
mcp_server = get_mcp_server()
|
|
958
|
+
response = mcp_server.send_request(
|
|
959
|
+
McpRequest(
|
|
960
|
+
query=args.query,
|
|
961
|
+
model=args.inference_model or args.model
|
|
962
|
+
)
|
|
963
|
+
)
|
|
964
|
+
v = [[response.result,None]]
|
|
946
965
|
else:
|
|
947
966
|
v = chat_llm.stream_chat_oai(
|
|
948
967
|
conversations=loaded_conversations, delta_mode=True
|
|
@@ -953,8 +972,11 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
953
972
|
|
|
954
973
|
try:
|
|
955
974
|
with Live(
|
|
956
|
-
Panel("", title="Response"),
|
|
975
|
+
Panel("", title="Response", border_style="green", expand=False),
|
|
957
976
|
refresh_per_second=4,
|
|
977
|
+
auto_refresh=True,
|
|
978
|
+
vertical_overflow="visible",
|
|
979
|
+
console=Console(force_terminal=True, color_system="auto", height=None)
|
|
958
980
|
) as live:
|
|
959
981
|
for res in v:
|
|
960
982
|
markdown_content += res[0]
|
|
@@ -975,6 +997,14 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
975
997
|
expand=False,
|
|
976
998
|
)
|
|
977
999
|
)
|
|
1000
|
+
live.update(
|
|
1001
|
+
Panel(
|
|
1002
|
+
Markdown(markdown_content),
|
|
1003
|
+
title="Response",
|
|
1004
|
+
border_style="green",
|
|
1005
|
+
expand=False,
|
|
1006
|
+
)
|
|
1007
|
+
)
|
|
978
1008
|
except Exception as e:
|
|
979
1009
|
request_queue.add_request(
|
|
980
1010
|
args.request_id,
|
|
@@ -989,7 +1019,7 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
989
1019
|
value=StreamValue(value=[""]), status=RequestOption.COMPLETED
|
|
990
1020
|
),
|
|
991
1021
|
)
|
|
992
|
-
|
|
1022
|
+
|
|
993
1023
|
chat_history["ask_conversation"].append(
|
|
994
1024
|
{"role": "assistant", "content": assistant_response}
|
|
995
1025
|
)
|
autocoder/chat_auto_coder.py
CHANGED
|
@@ -38,6 +38,7 @@ from rich.table import Table
|
|
|
38
38
|
from rich.live import Live
|
|
39
39
|
from rich.text import Text
|
|
40
40
|
from rich.live import Live
|
|
41
|
+
from rich.markdown import Markdown
|
|
41
42
|
from byzerllm.utils.nontext import Image
|
|
42
43
|
import git
|
|
43
44
|
from autocoder.common import git_utils
|
|
@@ -46,6 +47,7 @@ from autocoder.utils import operate_config_api
|
|
|
46
47
|
from autocoder.agent.auto_guess_query import AutoGuessQuery
|
|
47
48
|
from autocoder.common.mcp_server import get_mcp_server, McpRequest, McpInstallRequest, McpRemoveRequest, McpListRequest, McpListRunningRequest, McpRefreshRequest
|
|
48
49
|
import byzerllm
|
|
50
|
+
from byzerllm.utils import format_str_jinja2
|
|
49
51
|
|
|
50
52
|
|
|
51
53
|
class SymbolItem(BaseModel):
|
|
@@ -1499,11 +1501,32 @@ def mcp(query: str):
|
|
|
1499
1501
|
model=args.inference_model or args.model
|
|
1500
1502
|
)
|
|
1501
1503
|
)
|
|
1502
|
-
|
|
1504
|
+
console = Console()
|
|
1503
1505
|
if response.error:
|
|
1504
|
-
print(
|
|
1506
|
+
console.print(Panel(
|
|
1507
|
+
f"Error from MCP server: {response.error}",
|
|
1508
|
+
title="Error",
|
|
1509
|
+
border_style="red"
|
|
1510
|
+
))
|
|
1505
1511
|
else:
|
|
1506
|
-
|
|
1512
|
+
# Save conversation
|
|
1513
|
+
mcp_dir = os.path.join(".auto-coder", "mcp", "conversations")
|
|
1514
|
+
os.makedirs(mcp_dir, exist_ok=True)
|
|
1515
|
+
timestamp = str(int(time.time()))
|
|
1516
|
+
file_path = os.path.join(mcp_dir, f"{timestamp}.md")
|
|
1517
|
+
|
|
1518
|
+
# Format response as markdown
|
|
1519
|
+
markdown_content = f"# MCP Response\n\n{response.result}"
|
|
1520
|
+
|
|
1521
|
+
# Save to file
|
|
1522
|
+
with open(file_path, "w", encoding="utf-8") as f:
|
|
1523
|
+
f.write(markdown_content)
|
|
1524
|
+
|
|
1525
|
+
# Print with markdown formatting
|
|
1526
|
+
console.print(Panel(
|
|
1527
|
+
Markdown(markdown_content),
|
|
1528
|
+
border_style="green"
|
|
1529
|
+
))
|
|
1507
1530
|
|
|
1508
1531
|
|
|
1509
1532
|
def code_next(query: str):
|
|
@@ -1837,10 +1860,18 @@ def chat(query: str):
|
|
|
1837
1860
|
if "emb_model" in conf:
|
|
1838
1861
|
yaml_config["emb_model"] = conf["emb_model"]
|
|
1839
1862
|
|
|
1840
|
-
is_new =
|
|
1863
|
+
is_new = "/new" in query
|
|
1841
1864
|
if is_new:
|
|
1842
1865
|
query = query.replace("/new", "", 1).strip()
|
|
1843
1866
|
|
|
1867
|
+
if "/mcp " in query:
|
|
1868
|
+
yaml_config["action"] = "mcp"
|
|
1869
|
+
query = query.replace("/mcp ", "", 1).strip()
|
|
1870
|
+
|
|
1871
|
+
if "/rag " in query:
|
|
1872
|
+
yaml_config["action"] = "rag"
|
|
1873
|
+
query = query.replace("/rag ", "", 1).strip()
|
|
1874
|
+
|
|
1844
1875
|
is_review = query.strip().startswith("/review")
|
|
1845
1876
|
if is_review:
|
|
1846
1877
|
query = query.replace("/review", "", 1).strip()
|
autocoder/common/__init__.py
CHANGED
|
@@ -13,7 +13,7 @@ COMMANDS = {
|
|
|
13
13
|
"/sd": {},
|
|
14
14
|
},
|
|
15
15
|
"/coding": {"/apply": {}, "/next": {}},
|
|
16
|
-
"/chat": {"/new": {}, "/review": {}, "/no_context": {}},
|
|
16
|
+
"/chat": {"/new": {}, "/mcp": {}, "/rag": {}, "/review": {}, "/no_context": {}},
|
|
17
17
|
"/mcp": {
|
|
18
18
|
"/add": "",
|
|
19
19
|
"/remove": "",
|
|
@@ -51,11 +51,11 @@ async def handle_list_tools() -> list[types.Tool]:
|
|
|
51
51
|
"type": "string",
|
|
52
52
|
"description": "The name of the model that will complete your prompt.",
|
|
53
53
|
"enum": [
|
|
54
|
-
"llama-3.1-sonar-small-128k-online",
|
|
54
|
+
# "llama-3.1-sonar-small-128k-online",
|
|
55
55
|
# Commenting out larger models,which have higher risks of timing out,
|
|
56
56
|
# until Claude Desktop can handle long-running tasks effectively.
|
|
57
57
|
# "llama-3.1-sonar-large-128k-online",
|
|
58
|
-
|
|
58
|
+
"llama-3.1-sonar-huge-128k-online",
|
|
59
59
|
],
|
|
60
60
|
},
|
|
61
61
|
"messages": {
|
|
@@ -104,6 +104,8 @@ class LongContextRAG:
|
|
|
104
104
|
raise ValueError(
|
|
105
105
|
"You are in client mode, please provide the RAG token. e.g. rag_token: your_token_here"
|
|
106
106
|
)
|
|
107
|
+
if not args.rag_url.endswith("/v1"):
|
|
108
|
+
args.rag_url = args.rag_url.rstrip("/") + "/v1"
|
|
107
109
|
self.client = OpenAI(api_key=args.rag_token, base_url=args.rag_url)
|
|
108
110
|
else:
|
|
109
111
|
self.client = None
|
|
@@ -340,6 +342,7 @@ class LongContextRAG:
|
|
|
340
342
|
model=model,
|
|
341
343
|
messages=conversations,
|
|
342
344
|
stream=True,
|
|
345
|
+
max_tokens=self.args.rag_params_max_tokens
|
|
343
346
|
)
|
|
344
347
|
|
|
345
348
|
def response_generator():
|
autocoder/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.222"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|