auto-coder 0.1.305__py3-none-any.whl → 0.1.307__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.305.dist-info → auto_coder-0.1.307.dist-info}/METADATA +1 -1
- {auto_coder-0.1.305.dist-info → auto_coder-0.1.307.dist-info}/RECORD +43 -38
- autocoder/agent/auto_demand_organizer.py +13 -20
- autocoder/agent/auto_filegroup.py +10 -16
- autocoder/agent/auto_learn_from_commit.py +25 -33
- autocoder/agent/auto_review_commit.py +15 -64
- autocoder/auto_coder.py +6 -8
- autocoder/auto_coder_runner.py +153 -8
- autocoder/chat_auto_coder.py +9 -1
- autocoder/chat_auto_coder_lang.py +552 -278
- autocoder/commands/auto_command.py +31 -7
- autocoder/common/__init__.py +6 -0
- autocoder/common/action_yml_file_manager.py +75 -37
- autocoder/common/auto_coder_lang.py +737 -401
- autocoder/common/code_auto_generate.py +104 -16
- autocoder/common/code_auto_generate_diff.py +101 -10
- autocoder/common/code_auto_generate_editblock.py +103 -9
- autocoder/common/code_auto_generate_strict_diff.py +99 -9
- autocoder/common/code_auto_merge.py +8 -0
- autocoder/common/code_auto_merge_diff.py +8 -0
- autocoder/common/code_auto_merge_editblock.py +7 -0
- autocoder/common/code_auto_merge_strict_diff.py +5 -0
- autocoder/common/code_modification_ranker.py +9 -3
- autocoder/common/command_completer.py +12 -0
- autocoder/common/command_generator.py +5 -4
- autocoder/common/git_utils.py +86 -63
- autocoder/common/stream_out_type.py +8 -1
- autocoder/common/utils_code_auto_generate.py +29 -3
- autocoder/dispacher/__init__.py +18 -19
- autocoder/dispacher/actions/action.py +0 -132
- autocoder/index/filter/quick_filter.py +6 -3
- autocoder/memory/__init__.py +7 -0
- autocoder/memory/active_context_manager.py +649 -0
- autocoder/memory/active_package.py +469 -0
- autocoder/memory/async_processor.py +161 -0
- autocoder/memory/directory_mapper.py +67 -0
- autocoder/utils/auto_coder_utils/chat_stream_out.py +5 -0
- autocoder/utils/project_structure.py +35 -1
- autocoder/version.py +1 -1
- {auto_coder-0.1.305.dist-info → auto_coder-0.1.307.dist-info}/LICENSE +0 -0
- {auto_coder-0.1.305.dist-info → auto_coder-0.1.307.dist-info}/WHEEL +0 -0
- {auto_coder-0.1.305.dist-info → auto_coder-0.1.307.dist-info}/entry_points.txt +0 -0
- {auto_coder-0.1.305.dist-info → auto_coder-0.1.307.dist-info}/top_level.txt +0 -0
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
autocoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
autocoder/auto_coder.py,sha256=
|
|
2
|
+
autocoder/auto_coder.py,sha256=ifhdnd39tOIDu_4LdYTxjVCnwmpDoOC90RRwD8bhIKU,65983
|
|
3
3
|
autocoder/auto_coder_lang.py,sha256=Rtupq6N3_HT7JRhDKdgCBcwRaiAnyCOR_Gsp4jUomrI,3229
|
|
4
4
|
autocoder/auto_coder_rag.py,sha256=5TtAfbEBwyt-cB4WcI8eQ1G3AuKij0056wFYRViDhLs,34036
|
|
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=bvd1UXYzVT2L-I2ZCkdxy9Ap8P2Q6F2JD-F7QLvaIPc,106545
|
|
8
8
|
autocoder/auto_coder_server.py,sha256=E3Z829TPSooRSNhuh3_x9yaZi0f5G0Lm0ntoZhjGaoQ,20576
|
|
9
9
|
autocoder/benchmark.py,sha256=Ypomkdzd1T3GE6dRICY3Hj547dZ6_inqJbBJIp5QMco,4423
|
|
10
|
-
autocoder/chat_auto_coder.py,sha256=
|
|
11
|
-
autocoder/chat_auto_coder_lang.py,sha256
|
|
10
|
+
autocoder/chat_auto_coder.py,sha256=Cp5_m3pCxEDcRrVG1uojTfD8xecdl9FvYtD948TvLsg,25223
|
|
11
|
+
autocoder/chat_auto_coder_lang.py,sha256=p1SUPw1_YBHK69yNViXr6iFhHL-PjFnrXExA2mXJ5ko,21655
|
|
12
12
|
autocoder/command_args.py,sha256=9aYJ-AmPxP1sQh6ciw04FWHjSn31f2W9afXFwo8wgx4,30441
|
|
13
13
|
autocoder/command_parser.py,sha256=fx1g9E6GaM273lGTcJqaFQ-hoksS_Ik2glBMnVltPCE,10013
|
|
14
14
|
autocoder/lang.py,sha256=U6AjVV8Rs1uLyjFCZ8sT6WWuNUxMBqkXXIOs4S120uk,14511
|
|
15
15
|
autocoder/models.py,sha256=AyoZ-Pzy0oyYUmWCxOIRiOImsqboSfRET7LO9-UOuxI,11172
|
|
16
16
|
autocoder/run_context.py,sha256=IUfSO6_gp2Wt1blFWAmOpN0b0nDrTTk4LmtCYUBIoro,1643
|
|
17
|
-
autocoder/version.py,sha256=
|
|
17
|
+
autocoder/version.py,sha256=SL-SjrRE3j5Bdry_MqdGwfa7ZysXlPPGduCZPe8eo98,23
|
|
18
18
|
autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
-
autocoder/agent/auto_demand_organizer.py,sha256=
|
|
20
|
-
autocoder/agent/auto_filegroup.py,sha256=
|
|
19
|
+
autocoder/agent/auto_demand_organizer.py,sha256=URAq0gSEiHeV_W4zwhOI_83kHz0Ryfj1gcfh5jwCv_w,6501
|
|
20
|
+
autocoder/agent/auto_filegroup.py,sha256=pBsAkBcpFTff-9L5OwI8xhf2xPKpl-aZwz-skF2B6dc,6296
|
|
21
21
|
autocoder/agent/auto_guess_query.py,sha256=rDSdhpPHcOGE5MuDXvIrhCXAPR4ARS1LqpyoLsx2Jhw,11374
|
|
22
|
-
autocoder/agent/auto_learn_from_commit.py,sha256=
|
|
23
|
-
autocoder/agent/auto_review_commit.py,sha256=
|
|
22
|
+
autocoder/agent/auto_learn_from_commit.py,sha256=edD4GQJyO2qvVnTKyldeswWoNeKe1Aaua6ieJzlGlFI,10662
|
|
23
|
+
autocoder/agent/auto_review_commit.py,sha256=mHi26sU4gJAsutqJyLyXfg7DfNZJNt-H7_2a-a8pLEQ,10563
|
|
24
24
|
autocoder/agent/auto_tool.py,sha256=DBzip-P_T6ZtT2eHexPcusmKYD0h7ufzp7TLwXAY10E,11554
|
|
25
25
|
autocoder/agent/coder.py,sha256=x6bdJwDuETGg9ebQnYlUWCxCtQcDGg73LtI6McpWslQ,72034
|
|
26
26
|
autocoder/agent/designer.py,sha256=EpRbzO58Xym3GrnppIT1Z8ZFAlnNfgzHbIzZ3PX-Yv8,27037
|
|
@@ -28,33 +28,33 @@ autocoder/agent/planner.py,sha256=SZTSZHxHzDmuWZo3K5fs79RwvJLWurg-nbJRRNbX65o,91
|
|
|
28
28
|
autocoder/agent/project_reader.py,sha256=tWLaPoLw1gI6kO_NzivQj28KbobU2ceOLuppHMbfGl8,18234
|
|
29
29
|
autocoder/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
autocoder/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
autocoder/commands/auto_command.py,sha256=
|
|
31
|
+
autocoder/commands/auto_command.py,sha256=fZ4TNU4YA9qdoVHmZX0rb6sV_N-DEcgSLaC5s3PGSHA,64200
|
|
32
32
|
autocoder/commands/auto_web.py,sha256=Cc0eb6JN3SvFy3GD_lpSLvIqj7F1eFDTcwg1t-zDcKg,39024
|
|
33
33
|
autocoder/commands/tools.py,sha256=uSPyEcx6o1upuw6clHdL4yeqoXbywnvCxAPo2mt5rJk,28117
|
|
34
34
|
autocoder/common/JupyterClient.py,sha256=O-wi6pXeAEYhAY24kDa0BINrLYvKS6rKyWe98pDClS0,2816
|
|
35
35
|
autocoder/common/ShellClient.py,sha256=fM1q8t_XMSbLBl2zkCNC2J9xuyKN3eXzGm6hHhqL2WY,2286
|
|
36
|
-
autocoder/common/__init__.py,sha256=
|
|
37
|
-
autocoder/common/action_yml_file_manager.py,sha256=
|
|
36
|
+
autocoder/common/__init__.py,sha256=sIbE0Gm30MkCmZ9ClQeKx1Hw-vjdcVF65hO5TschS1Y,14070
|
|
37
|
+
autocoder/common/action_yml_file_manager.py,sha256=w-422xnvOfhf3MFxNLCZuAEUDa8RrYX12ngHs-fsH0k,17358
|
|
38
38
|
autocoder/common/anything2images.py,sha256=0ILBbWzY02M-CiWB-vzuomb_J1hVdxRcenAfIrAXq9M,25283
|
|
39
39
|
autocoder/common/anything2img.py,sha256=iZQmg8srXlD7N5uGl5b_ONKJMBjYoW8kPmokkG6ISF0,10118
|
|
40
40
|
autocoder/common/audio.py,sha256=Kn9nWKQddWnUrAz0a_ZUgjcu4VUU_IcZBigT7n3N3qc,7439
|
|
41
|
-
autocoder/common/auto_coder_lang.py,sha256=
|
|
41
|
+
autocoder/common/auto_coder_lang.py,sha256=ZE9HSvSNM8w8ZZosdyA4CHL8wM3dErSmRWshWdpl_Gw,36982
|
|
42
42
|
autocoder/common/auto_configure.py,sha256=D4N-fl9v8bKM5-Ds-uhkC2uGDmHH_ZjLJ759F8KXMKs,13129
|
|
43
43
|
autocoder/common/buildin_tokenizer.py,sha256=L7d5t39ZFvUd6EoMPXUhYK1toD0FHlRH1jtjKRGokWU,1236
|
|
44
44
|
autocoder/common/chunk_validation.py,sha256=BrR_ZWavW8IANuueEE7hS8NFAwEvm8TX34WnPx_1hs8,3030
|
|
45
45
|
autocoder/common/cleaner.py,sha256=NU72i8C6o9m0vXExab7nao5bstBUsfJFcj11cXa9l4U,1089
|
|
46
46
|
autocoder/common/code_auto_execute.py,sha256=4KXGmiGObr_B1d6tzV9dwS6MifCSc3Gm4j2d6ildBXQ,6867
|
|
47
|
-
autocoder/common/code_auto_generate.py,sha256=
|
|
48
|
-
autocoder/common/code_auto_generate_diff.py,sha256=
|
|
49
|
-
autocoder/common/code_auto_generate_editblock.py,sha256=
|
|
50
|
-
autocoder/common/code_auto_generate_strict_diff.py,sha256=
|
|
51
|
-
autocoder/common/code_auto_merge.py,sha256=
|
|
52
|
-
autocoder/common/code_auto_merge_diff.py,sha256=
|
|
53
|
-
autocoder/common/code_auto_merge_editblock.py,sha256=
|
|
54
|
-
autocoder/common/code_auto_merge_strict_diff.py,sha256=
|
|
55
|
-
autocoder/common/code_modification_ranker.py,sha256=
|
|
56
|
-
autocoder/common/command_completer.py,sha256=
|
|
57
|
-
autocoder/common/command_generator.py,sha256=
|
|
47
|
+
autocoder/common/code_auto_generate.py,sha256=mxCPG-RC36q5POPMozPytjJcK0ExUeyau7b9ZWWScps,17228
|
|
48
|
+
autocoder/common/code_auto_generate_diff.py,sha256=lddReDQzJts25x55YDbFWJBJ_n9OzsLkyQ-cc1DFw1M,23095
|
|
49
|
+
autocoder/common/code_auto_generate_editblock.py,sha256=YfXuSYogJ5YoHTsx6LN5pPskZPop-noNViiDSRACOYU,24988
|
|
50
|
+
autocoder/common/code_auto_generate_strict_diff.py,sha256=cKCcDfVADSbkwPMWmHGhRjzKutieEw80NjFjwZbFudw,21990
|
|
51
|
+
autocoder/common/code_auto_merge.py,sha256=WaU-T-ZVn3QDaA_SrdkHciUPKDcTfVa-IbhHKBYEv5w,9961
|
|
52
|
+
autocoder/common/code_auto_merge_diff.py,sha256=DcljWrtlejq2cb9Gj-jBjvUQzRbCE2uMNGg8SBOhEnk,19271
|
|
53
|
+
autocoder/common/code_auto_merge_editblock.py,sha256=pLgs1HsS4mRkO2cm7T18u4w8T3PjSMxqNbJZ4LHnnWI,21765
|
|
54
|
+
autocoder/common/code_auto_merge_strict_diff.py,sha256=C35pFxhkgypsm50VDAFOBAT6YXMtzKTvIpEUH1GjZZg,13209
|
|
55
|
+
autocoder/common/code_modification_ranker.py,sha256=Ld3wtjV10zW7lN_L3bKEsvi7RvAleB8r1DD9eLmVnx4,13462
|
|
56
|
+
autocoder/common/command_completer.py,sha256=jBFi8Y1xWmMcxwdDz6Gs7r8ADFPb7eRr9egWU0vLxLo,35787
|
|
57
|
+
autocoder/common/command_generator.py,sha256=YwB_E818vx0fQDOpLD61GivsSgLnrIoxKrY22ka49JU,2797
|
|
58
58
|
autocoder/common/command_templates.py,sha256=WAixVjue5QmCFAD13K4ElfcOEjdeGr8tFb0atDAbEoo,8658
|
|
59
59
|
autocoder/common/computer_use.py,sha256=Z5RL-DgkcbF55YDsqnJ37loXGcm_1tzTheukjTTayJM,35816
|
|
60
60
|
autocoder/common/conf_import_export.py,sha256=w__WsIobe6nmsGns2pV-laU7R5ZvtQNuIbXebxhbY7A,3967
|
|
@@ -63,7 +63,7 @@ autocoder/common/const.py,sha256=eTjhjh4Aj4CUzviJ81jaf3Y5cwqsLATySn2wJxaS6RQ,291
|
|
|
63
63
|
autocoder/common/context_pruner.py,sha256=HlU5BmxpCX7uVTJUsTFLlXvkwcOQuidI9uCKZaFxh6s,19874
|
|
64
64
|
autocoder/common/conversation_pruner.py,sha256=pzmrQEa7pFzA66eYSS_h7VqP6ZwUABeooDQzm0PGu0A,5770
|
|
65
65
|
autocoder/common/files.py,sha256=nPiKcnUcYZbSUn3TskKeTVnAxCJRtuehPuB_5d2imX8,4618
|
|
66
|
-
autocoder/common/git_utils.py,sha256=
|
|
66
|
+
autocoder/common/git_utils.py,sha256=yxV-eYYwsncNpVs07Nk61506FFpG2REC43l6ppFCYWM,27081
|
|
67
67
|
autocoder/common/global_cancel.py,sha256=TyjYQPESwo04D1BOTmC9hH7IbkKDDM-b2zPacEHGIQ8,3264
|
|
68
68
|
autocoder/common/image_to_page.py,sha256=yWiTJQ49Lm3j0FngiJhQ9u7qayqE_bOGb8Rk0TmSWx0,14123
|
|
69
69
|
autocoder/common/index_import_export.py,sha256=h758AYY1df6JMTKUXYmMkSgxItfymDt82XT7O-ygEuw,4565
|
|
@@ -82,11 +82,11 @@ autocoder/common/search.py,sha256=245iPFgWhMldoUK3CqCP89ltaxZiNPK73evoG6Fp1h8,16
|
|
|
82
82
|
autocoder/common/search_replace.py,sha256=GphFkc57Hb673CAwmbiocqTbw8vrV7TrZxtOhD0332g,22147
|
|
83
83
|
autocoder/common/shells.py,sha256=elminFpNosnV0hsEUcsugDxlGO8NfH96uah-8bkaBvA,19929
|
|
84
84
|
autocoder/common/stats_panel.py,sha256=wGl9O45pjVVDxhNumLv4_NfLYSlUP_18Tw4hcJSjw50,4596
|
|
85
|
-
autocoder/common/stream_out_type.py,sha256=
|
|
85
|
+
autocoder/common/stream_out_type.py,sha256=uNHRg-1my6CxcPzQM6pACrYpTZbxOenVT8aLxnruv2w,333
|
|
86
86
|
autocoder/common/sys_prompt.py,sha256=JlexfjZt554faqbgkCmzOJqYUzDHfbnxly5ugFfHfEE,26403
|
|
87
87
|
autocoder/common/text.py,sha256=KGRQq314GHBmY4MWG8ossRoQi1_DTotvhxchpn78c-k,1003
|
|
88
88
|
autocoder/common/types.py,sha256=PXTETrsTvhLE49jqAeUKGySvxBN9pjeyCgRHLDYdd9U,664
|
|
89
|
-
autocoder/common/utils_code_auto_generate.py,sha256=
|
|
89
|
+
autocoder/common/utils_code_auto_generate.py,sha256=Tvb3Mqxedj0Jhi0faKyWvILuNCty9fZi341fyIs33tA,4550
|
|
90
90
|
autocoder/common/mcp_servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
91
|
autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py,sha256=TApShxgoozLluobXHOK1-oAE1zm0-9jdRoPLQB1qwMI,5688
|
|
92
92
|
autocoder/common/mcp_servers/mcp_server_perplexity.py,sha256=CIC26UkfH1lYoVCjfyY5xGGYVx8h0oz0Uj1c7YJ3OPw,5560
|
|
@@ -94,9 +94,9 @@ autocoder/data/byzerllm.md,sha256=SGCMpEaUQ0ysPxQsgzyyp5sgvEr8dZsxEGAfVcPBIq0,47
|
|
|
94
94
|
autocoder/data/tokenizer.json,sha256=7Lb5_DaYlDRvBRH0B0ynXO5c1fOwbQLxujX805-OEh0,7847602
|
|
95
95
|
autocoder/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
96
|
autocoder/db/store.py,sha256=tFT66bP2ZKIqZip-uhLkHRSLaaOAUUDZfozJwcqix3c,1908
|
|
97
|
-
autocoder/dispacher/__init__.py,sha256=
|
|
97
|
+
autocoder/dispacher/__init__.py,sha256=GTGpU9KbyAu3QMsbecnETYHMoIDBfKKP8iEVsU8gKcg,957
|
|
98
98
|
autocoder/dispacher/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
|
-
autocoder/dispacher/actions/action.py,sha256=
|
|
99
|
+
autocoder/dispacher/actions/action.py,sha256=hidiI3CWxHBjjVyJZseWRsiXku5W5jX0mdRV1Ok-M7E,22225
|
|
100
100
|
autocoder/dispacher/actions/copilot.py,sha256=2nQzKt8Sr40mIDOizZWyl4ekCwaHYklvgGlVfvhOlFM,13106
|
|
101
101
|
autocoder/dispacher/actions/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
102
|
autocoder/dispacher/actions/plugins/action_regex_project.py,sha256=vH-O0rM2ig-5u-n-hlX1SvwQW8IjsGSl-dC4DUAwfII,7632
|
|
@@ -115,7 +115,12 @@ autocoder/index/symbols_utils.py,sha256=_EP7E_qWXxluAxq3FGZLlLfdrfwx3FmxCdulI8VG
|
|
|
115
115
|
autocoder/index/types.py,sha256=a2s_KV5FJlq7jqA2ELSo9E1sjuLwDB-JJYMhSpzBAhU,596
|
|
116
116
|
autocoder/index/filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
117
|
autocoder/index/filter/normal_filter.py,sha256=MI-8xdXCrniaxYCHVTLkq5tafvcUiauD3LN0b3ymRXI,8361
|
|
118
|
-
autocoder/index/filter/quick_filter.py,sha256=
|
|
118
|
+
autocoder/index/filter/quick_filter.py,sha256=ozESEgy506FQ5ecjOumyo4D_KMrterB1QLmnVtiyOiM,43264
|
|
119
|
+
autocoder/memory/__init__.py,sha256=5FeGvsesRViYL4BkFiHw9SdlyHeWlqALpTyqOpfnBRw,179
|
|
120
|
+
autocoder/memory/active_context_manager.py,sha256=7f7DznnLXbXH6yptN8rOSSJcre0bSJ2dU9mM9L6bvno,27106
|
|
121
|
+
autocoder/memory/active_package.py,sha256=CyfqZSgNucE5mGQH5JGHTE8lTU0KjFGkW2YN8vl9SoI,17480
|
|
122
|
+
autocoder/memory/async_processor.py,sha256=htHzLGupw9IHQAEdLe2AEaALZSItPi3AltDt8FMTRHk,4643
|
|
123
|
+
autocoder/memory/directory_mapper.py,sha256=BXHblOdRpeZb7URDECALp9uN5oi91KmkW9g_UaWFuZY,2513
|
|
119
124
|
autocoder/plugins/__init__.py,sha256=uc8UNSAVb9uQvr5zUSS-Xu_RhrdbO2i3w2NhkrVtODM,43023
|
|
120
125
|
autocoder/plugins/dynamic_completion_example.py,sha256=dDTeISsGqcWjxY_PzbFSZ4Q7_QwYUcuHUdWJT8x7q-4,4693
|
|
121
126
|
autocoder/plugins/git_helper_plugin.py,sha256=nKQWkU-nQ39A4WC8nC8KI-x68VjwVARQvtrtQQ1GTMI,8386
|
|
@@ -181,7 +186,7 @@ autocoder/utils/model_provider_selector.py,sha256=h1eVf4F7qfSOdJbtdwv7_xfIRcNBk3
|
|
|
181
186
|
autocoder/utils/multi_turn.py,sha256=unK9OpqVRbK6uIcTKXgggX2wNmyj7s5eyEAQ2xUwHoM,88
|
|
182
187
|
autocoder/utils/operate_config_api.py,sha256=K1lQxXNHiAYTgRDS2EGpWmjdJTrQaeP16RUWS0DIorw,5841
|
|
183
188
|
autocoder/utils/print_table.py,sha256=ZMRhCA9DD0FUfKyJBWd5bDdj1RrtPtgOMWSJwtvZcLs,403
|
|
184
|
-
autocoder/utils/project_structure.py,sha256
|
|
189
|
+
autocoder/utils/project_structure.py,sha256=-RxWM30a9xXIKLwH3mBNAXdrU_0uMQjfixWXiOnfdkU,11375
|
|
185
190
|
autocoder/utils/queue_communicate.py,sha256=buyEzdvab1QA4i2QKbq35rG5v_9x9PWVLWWMTznWcYM,6832
|
|
186
191
|
autocoder/utils/request_event_queue.py,sha256=r3lo5qGsB1dIjzVQ05dnr0z_9Z3zOkBdP1vmRciKdi4,2095
|
|
187
192
|
autocoder/utils/request_queue.py,sha256=nwp6PMtgTCiuwJI24p8OLNZjUiprC-TsefQrhMI-yPE,3889
|
|
@@ -191,11 +196,11 @@ autocoder/utils/tests.py,sha256=BqphrwyycGAvs-5mhH8pKtMZdObwhFtJ5MC_ZAOiLq8,1340
|
|
|
191
196
|
autocoder/utils/thread_utils.py,sha256=VQCDrkTdij_5-01FE_X2Fprz_0uA-GahUY4h7DnAlw0,5426
|
|
192
197
|
autocoder/utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
193
198
|
autocoder/utils/auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
194
|
-
autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=
|
|
199
|
+
autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=xuBeWD0YOckqRo8JB1WkVIMOYH6c24m7JfV4svBfPDo,15113
|
|
195
200
|
autocoder/utils/chat_auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
|
-
auto_coder-0.1.
|
|
197
|
-
auto_coder-0.1.
|
|
198
|
-
auto_coder-0.1.
|
|
199
|
-
auto_coder-0.1.
|
|
200
|
-
auto_coder-0.1.
|
|
201
|
-
auto_coder-0.1.
|
|
201
|
+
auto_coder-0.1.307.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
|
202
|
+
auto_coder-0.1.307.dist-info/METADATA,sha256=3zdlrR3qOtRYS5giLuNFcXbUERBGTgE4hKVtz3CgZ7I,2721
|
|
203
|
+
auto_coder-0.1.307.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
204
|
+
auto_coder-0.1.307.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
|
|
205
|
+
auto_coder-0.1.307.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
|
|
206
|
+
auto_coder-0.1.307.dist-info/RECORD,,
|
|
@@ -6,6 +6,8 @@ import byzerllm
|
|
|
6
6
|
import pydantic
|
|
7
7
|
import git
|
|
8
8
|
|
|
9
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
10
|
+
|
|
9
11
|
|
|
10
12
|
class DemandItem(pydantic.BaseModel):
|
|
11
13
|
"""单个需求项"""
|
|
@@ -44,6 +46,7 @@ class AutoDemandOrganizer:
|
|
|
44
46
|
file_size_limit: 最多分析多少历史任务
|
|
45
47
|
"""
|
|
46
48
|
self.project_dir = project_dir
|
|
49
|
+
self.action_file_manager = ActionYmlFileManager(project_dir)
|
|
47
50
|
self.actions_dir = os.path.join(project_dir, "actions")
|
|
48
51
|
self.llm = llm
|
|
49
52
|
self.file_size_limit = file_size_limit
|
|
@@ -162,26 +165,16 @@ class AutoDemandOrganizer:
|
|
|
162
165
|
|
|
163
166
|
if query and urls:
|
|
164
167
|
commit_diff = ""
|
|
165
|
-
if not self.skip_diff:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
parent = commit.parents[0]
|
|
176
|
-
commit_diff = repo.git.diff(
|
|
177
|
-
parent.hexsha, commit.hexsha)
|
|
178
|
-
else:
|
|
179
|
-
commit_diff = repo.git.show(commit.hexsha)
|
|
180
|
-
break
|
|
181
|
-
except git.exc.GitCommandError as e:
|
|
182
|
-
logger.error(f"Git命令执行错误: {str(e)}")
|
|
183
|
-
except Exception as e:
|
|
184
|
-
logger.error(f"获取commit diff时出错: {str(e)}")
|
|
168
|
+
if not self.skip_diff:
|
|
169
|
+
commit_id = self.action_file_manager.get_commit_id_from_file(yaml_file)
|
|
170
|
+
commit = repo.commit(commit_id)
|
|
171
|
+
if commit:
|
|
172
|
+
if commit.parents:
|
|
173
|
+
parent = commit.parents[0]
|
|
174
|
+
commit_diff = repo.git.diff(
|
|
175
|
+
parent.hexsha, commit.hexsha)
|
|
176
|
+
else:
|
|
177
|
+
commit_diff = repo.git.show(commit.hexsha)
|
|
185
178
|
|
|
186
179
|
querie_with_urls_and_diffs.append((query, urls, commit_diff))
|
|
187
180
|
|
|
@@ -4,6 +4,7 @@ import yaml
|
|
|
4
4
|
from loguru import logger
|
|
5
5
|
import byzerllm
|
|
6
6
|
import pydantic
|
|
7
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class FileGroup(pydantic.BaseModel):
|
|
@@ -40,6 +41,7 @@ class AutoFileGroup:
|
|
|
40
41
|
actions_dir: 包含YAML文件的目录
|
|
41
42
|
"""
|
|
42
43
|
self.project_dir = project_dir
|
|
44
|
+
self.action_manager = ActionYmlFileManager(project_dir)
|
|
43
45
|
self.actions_dir = os.path.join(project_dir, "actions")
|
|
44
46
|
self.llm = llm
|
|
45
47
|
self.file_size_limit = file_size_limit
|
|
@@ -152,23 +154,15 @@ class AutoFileGroup:
|
|
|
152
154
|
commit_diff = ""
|
|
153
155
|
if not self.skip_diff:
|
|
154
156
|
# 计算文件的MD5用于匹配commit
|
|
155
|
-
|
|
156
|
-
|
|
157
|
+
commit_id = self.action_manager.get_commit_id_from_file(yaml_file)
|
|
158
|
+
commit = repo.commit(commit_id)
|
|
157
159
|
# 查找对应的commit
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
parent.hexsha, commit.hexsha)
|
|
165
|
-
else:
|
|
166
|
-
commit_diff = repo.git.show(commit.hexsha)
|
|
167
|
-
break
|
|
168
|
-
except git.exc.GitCommandError as e:
|
|
169
|
-
logger.error(f"Git命令执行错误: {str(e)}")
|
|
170
|
-
except Exception as e:
|
|
171
|
-
logger.error(f"获取commit diff时出错: {str(e)}")
|
|
160
|
+
if commit and commit.parents:
|
|
161
|
+
parent = commit.parents[0]
|
|
162
|
+
commit_diff = repo.git.diff(
|
|
163
|
+
parent.hexsha, commit.hexsha)
|
|
164
|
+
else:
|
|
165
|
+
commit_diff = repo.git.show(commit.hexsha)
|
|
172
166
|
|
|
173
167
|
querie_with_urls_and_diffs.append((query, urls, commit_diff))
|
|
174
168
|
|
|
@@ -37,6 +37,7 @@ class AutoLearnFromCommit:
|
|
|
37
37
|
skip_diff: 是否跳过获取 diff 信息
|
|
38
38
|
"""
|
|
39
39
|
self.project_dir = args.source_dir
|
|
40
|
+
self.args = args
|
|
40
41
|
self.actions_dir = os.path.join(args.source_dir, "actions")
|
|
41
42
|
self.llm = llm
|
|
42
43
|
self.skip_diff = skip_diff
|
|
@@ -120,40 +121,30 @@ class AutoLearnFromCommit:
|
|
|
120
121
|
if not self.skip_diff:
|
|
121
122
|
# 使用 ActionManager 获取 commit ID
|
|
122
123
|
commit_id = self.action_manager.get_commit_id_from_file(action_file)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
before_content = repo.git.show(f"{parent.hexsha}:{file_path}")
|
|
138
|
-
except git.exc.GitCommandError:
|
|
139
|
-
pass # 文件可能是新增的
|
|
124
|
+
commit = repo.commit(commit_id)
|
|
125
|
+
if commit and commit.parents:
|
|
126
|
+
parent = commit.parents[0]
|
|
127
|
+
# 获取所有文件的前后内容
|
|
128
|
+
for diff_item in parent.diff(commit):
|
|
129
|
+
file_path = diff_item.a_path if diff_item.a_path else diff_item.b_path
|
|
130
|
+
|
|
131
|
+
# 获取变更前内容
|
|
132
|
+
before_content = None
|
|
133
|
+
try:
|
|
134
|
+
if diff_item.a_blob:
|
|
135
|
+
before_content = repo.git.show(f"{parent.hexsha}:{file_path}")
|
|
136
|
+
except git.exc.GitCommandError:
|
|
137
|
+
pass # 文件可能是新增的
|
|
140
138
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
139
|
+
# 获取变更后内容
|
|
140
|
+
after_content = None
|
|
141
|
+
try:
|
|
142
|
+
if diff_item.b_blob:
|
|
143
|
+
after_content = repo.git.show(f"{commit.hexsha}:{file_path}")
|
|
144
|
+
except git.exc.GitCommandError:
|
|
145
|
+
pass # 文件可能被删除
|
|
148
146
|
|
|
149
|
-
|
|
150
|
-
break
|
|
151
|
-
except git.exc.GitCommandError as e:
|
|
152
|
-
printer = Printer()
|
|
153
|
-
printer.print_in_terminal("git_command_error", style="red", error=str(e))
|
|
154
|
-
except Exception as e:
|
|
155
|
-
printer = Printer()
|
|
156
|
-
printer.print_in_terminal("get_commit_changes_error", style="red", error=str(e))
|
|
147
|
+
changes[file_path] = (before_content, after_content)
|
|
157
148
|
|
|
158
149
|
querie_with_urls_and_changes.append((query, urls, changes))
|
|
159
150
|
|
|
@@ -267,7 +258,8 @@ class AutoLearnFromCommit:
|
|
|
267
258
|
v = stream_chat_with_continue(
|
|
268
259
|
llm=self.llm,
|
|
269
260
|
conversations=new_conversations,
|
|
270
|
-
llm_config={}
|
|
261
|
+
llm_config={},
|
|
262
|
+
args=self.args
|
|
271
263
|
)
|
|
272
264
|
return v, commit_file_name
|
|
273
265
|
except Exception as e:
|
|
@@ -9,6 +9,7 @@ from autocoder.common.printer import Printer
|
|
|
9
9
|
from autocoder.common import AutoCoderArgs
|
|
10
10
|
from autocoder.common.utils_code_auto_generate import stream_chat_with_continue
|
|
11
11
|
import hashlib
|
|
12
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
def load_yaml_config(yaml_file: str) -> Dict:
|
|
@@ -36,10 +37,12 @@ class AutoReviewCommit:
|
|
|
36
37
|
skip_diff: 是否跳过获取 diff 信息
|
|
37
38
|
"""
|
|
38
39
|
self.project_dir = args.source_dir
|
|
40
|
+
self.args = args
|
|
39
41
|
self.actions_dir = os.path.join(args.source_dir, "actions")
|
|
40
42
|
self.llm = llm
|
|
41
43
|
self.skip_diff = skip_diff
|
|
42
44
|
self.console = console or Console()
|
|
45
|
+
self.action_yml_manager = ActionYmlFileManager(source_dir=args.source_dir)
|
|
43
46
|
|
|
44
47
|
@byzerllm.prompt()
|
|
45
48
|
def review(self, querie_with_urls_and_changes: List[Tuple[str, List[str], Dict[str, Tuple[str, str]]]], query: str) -> Generator[str,None,None]:
|
|
@@ -140,66 +143,16 @@ class AutoReviewCommit:
|
|
|
140
143
|
action_files = sorted(action_files, key=get_seq)
|
|
141
144
|
action_files.reverse()
|
|
142
145
|
|
|
146
|
+
if not action_files:
|
|
147
|
+
return []
|
|
148
|
+
|
|
143
149
|
action_file = action_files[0]
|
|
144
|
-
|
|
145
150
|
querie_with_urls_and_changes = []
|
|
146
|
-
repo = git.Repo(self.project_dir)
|
|
147
|
-
|
|
148
|
-
# 收集所有query、urls和对应的文件变化
|
|
149
|
-
for yaml_file in [action_file]:
|
|
150
|
-
yaml_path = os.path.join(self.actions_dir, yaml_file)
|
|
151
|
-
config = load_yaml_config(yaml_path)
|
|
152
151
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
urls = config.get('urls', [])
|
|
158
|
-
|
|
159
|
-
if query:
|
|
160
|
-
changes = {}
|
|
161
|
-
if not self.skip_diff:
|
|
162
|
-
# 计算文件的MD5用于匹配commit
|
|
163
|
-
with open(yaml_path, 'r', encoding='utf-8') as f:
|
|
164
|
-
yaml_content = f.read()
|
|
165
|
-
file_md5 = hashlib.md5(yaml_content.encode("utf-8")).hexdigest()
|
|
166
|
-
response_id = f"auto_coder_{yaml_file}_{file_md5}"
|
|
167
|
-
# 查找对应的commit
|
|
168
|
-
try:
|
|
169
|
-
for commit in repo.iter_commits():
|
|
170
|
-
if response_id in commit.message:
|
|
171
|
-
if commit.parents:
|
|
172
|
-
parent = commit.parents[0]
|
|
173
|
-
# 获取所有文件的前后内容
|
|
174
|
-
for diff_item in parent.diff(commit):
|
|
175
|
-
file_path = diff_item.a_path if diff_item.a_path else diff_item.b_path
|
|
176
|
-
|
|
177
|
-
# 获取变更前内容
|
|
178
|
-
before_content = None
|
|
179
|
-
try:
|
|
180
|
-
if diff_item.a_blob:
|
|
181
|
-
before_content = repo.git.show(f"{parent.hexsha}:{file_path}")
|
|
182
|
-
except git.exc.GitCommandError:
|
|
183
|
-
pass # 文件可能是新增的
|
|
184
|
-
|
|
185
|
-
# 获取变更后内容
|
|
186
|
-
after_content = None
|
|
187
|
-
try:
|
|
188
|
-
if diff_item.b_blob:
|
|
189
|
-
after_content = repo.git.show(f"{commit.hexsha}:{file_path}")
|
|
190
|
-
except git.exc.GitCommandError:
|
|
191
|
-
pass # 文件可能被删除
|
|
192
|
-
|
|
193
|
-
changes[file_path] = (before_content, after_content)
|
|
194
|
-
break
|
|
195
|
-
except git.exc.GitCommandError as e:
|
|
196
|
-
printer = Printer()
|
|
197
|
-
printer.print_in_terminal("git_command_error", style="red", error=str(e))
|
|
198
|
-
except Exception as e:
|
|
199
|
-
printer = Printer()
|
|
200
|
-
printer.print_in_terminal("get_commit_changes_error", style="red", error=str(e))
|
|
201
|
-
|
|
202
|
-
querie_with_urls_and_changes.append((query, urls, changes))
|
|
152
|
+
# 使用ActionYmlFileManager获取提交变更
|
|
153
|
+
changes = self.action_yml_manager.get_commit_changes(action_file)
|
|
154
|
+
if changes:
|
|
155
|
+
querie_with_urls_and_changes = changes
|
|
203
156
|
|
|
204
157
|
return querie_with_urls_and_changes
|
|
205
158
|
|
|
@@ -288,14 +241,11 @@ class AutoReviewCommit:
|
|
|
288
241
|
printer = Printer()
|
|
289
242
|
commit_file_name = None
|
|
290
243
|
if commit_id:
|
|
244
|
+
# 利用ActionYmlFileManager获取文件名
|
|
291
245
|
repo = git.Repo(self.project_dir)
|
|
292
246
|
commit = repo.commit(commit_id)
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
commit_file_info = msg.split("_")[0]
|
|
296
|
-
if commit_file_info.startswith("auto_coder_"):
|
|
297
|
-
commit_file_name = "_".join(msg.split("_",)[0:-1])
|
|
298
|
-
|
|
247
|
+
commit_file_name = self.action_yml_manager.get_file_name_from_commit_msg(commit.message)
|
|
248
|
+
|
|
299
249
|
if not commit_file_name:
|
|
300
250
|
raise ValueError(printer.get_message_from_key_with_format("no_commit_file_name",commit_id=commit_id))
|
|
301
251
|
|
|
@@ -315,7 +265,8 @@ class AutoReviewCommit:
|
|
|
315
265
|
v = stream_chat_with_continue(
|
|
316
266
|
llm=self.llm,
|
|
317
267
|
conversations=new_conversations,
|
|
318
|
-
llm_config={}
|
|
268
|
+
llm_config={},
|
|
269
|
+
args=self.args
|
|
319
270
|
)
|
|
320
271
|
return v
|
|
321
272
|
except Exception as e:
|
autocoder/auto_coder.py
CHANGED
|
@@ -27,7 +27,6 @@ from autocoder.utils.rest import HttpDoc
|
|
|
27
27
|
from byzerllm.apps.byzer_storage.env import get_latest_byzer_retrieval_lib
|
|
28
28
|
from autocoder.command_args import parse_args
|
|
29
29
|
from autocoder.rag.api_server import serve, ServerArgs
|
|
30
|
-
from autocoder.utils import open_yaml_file_in_editor, get_last_yaml_file
|
|
31
30
|
from autocoder.utils.request_queue import (
|
|
32
31
|
request_queue,
|
|
33
32
|
RequestValue,
|
|
@@ -120,12 +119,10 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
120
119
|
# args.request_id = str(uuid.uuid4())
|
|
121
120
|
|
|
122
121
|
if raw_args.command == "revert":
|
|
123
|
-
repo_path = args.source_dir
|
|
124
|
-
|
|
125
122
|
file_name = os.path.basename(args.file)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
action_file_manager = ActionYmlFileManager(source_dir=args.source_dir)
|
|
124
|
+
revert_result = action_file_manager.revert_file(file_name)
|
|
125
|
+
|
|
129
126
|
if revert_result:
|
|
130
127
|
print(f"Successfully reverted changes for {args.file}")
|
|
131
128
|
else:
|
|
@@ -945,7 +942,7 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
945
942
|
|
|
946
943
|
console = Console()
|
|
947
944
|
|
|
948
|
-
shell_script = generate_shell_script(args
|
|
945
|
+
shell_script = generate_shell_script(args, llm)
|
|
949
946
|
|
|
950
947
|
console.print(
|
|
951
948
|
Panel(
|
|
@@ -1340,7 +1337,8 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1340
1337
|
v = stream_chat_with_continue(
|
|
1341
1338
|
llm=chat_llm,
|
|
1342
1339
|
conversations=loaded_conversations,
|
|
1343
|
-
llm_config={}
|
|
1340
|
+
llm_config={},
|
|
1341
|
+
args=args
|
|
1344
1342
|
)
|
|
1345
1343
|
|
|
1346
1344
|
|