auto-coder 0.1.305__py3-none-any.whl → 0.1.306__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.

Files changed (39) hide show
  1. {auto_coder-0.1.305.dist-info → auto_coder-0.1.306.dist-info}/METADATA +1 -1
  2. {auto_coder-0.1.305.dist-info → auto_coder-0.1.306.dist-info}/RECORD +39 -34
  3. autocoder/agent/auto_learn_from_commit.py +3 -1
  4. autocoder/agent/auto_review_commit.py +3 -1
  5. autocoder/auto_coder.py +3 -2
  6. autocoder/auto_coder_runner.py +116 -3
  7. autocoder/chat_auto_coder.py +9 -1
  8. autocoder/chat_auto_coder_lang.py +552 -278
  9. autocoder/common/__init__.py +4 -0
  10. autocoder/common/auto_coder_lang.py +737 -401
  11. autocoder/common/code_auto_generate.py +104 -16
  12. autocoder/common/code_auto_generate_diff.py +101 -10
  13. autocoder/common/code_auto_generate_editblock.py +103 -9
  14. autocoder/common/code_auto_generate_strict_diff.py +99 -9
  15. autocoder/common/code_auto_merge.py +8 -0
  16. autocoder/common/code_auto_merge_diff.py +8 -0
  17. autocoder/common/code_auto_merge_editblock.py +7 -0
  18. autocoder/common/code_auto_merge_strict_diff.py +5 -0
  19. autocoder/common/code_modification_ranker.py +4 -2
  20. autocoder/common/command_completer.py +12 -0
  21. autocoder/common/command_generator.py +5 -4
  22. autocoder/common/git_utils.py +13 -7
  23. autocoder/common/stream_out_type.py +5 -1
  24. autocoder/common/utils_code_auto_generate.py +29 -3
  25. autocoder/dispacher/__init__.py +18 -19
  26. autocoder/dispacher/actions/action.py +0 -132
  27. autocoder/index/filter/quick_filter.py +6 -3
  28. autocoder/memory/__init__.py +7 -0
  29. autocoder/memory/active_context_manager.py +649 -0
  30. autocoder/memory/active_package.py +469 -0
  31. autocoder/memory/async_processor.py +161 -0
  32. autocoder/memory/directory_mapper.py +67 -0
  33. autocoder/utils/auto_coder_utils/chat_stream_out.py +5 -0
  34. autocoder/utils/project_structure.py +35 -1
  35. autocoder/version.py +1 -1
  36. {auto_coder-0.1.305.dist-info → auto_coder-0.1.306.dist-info}/LICENSE +0 -0
  37. {auto_coder-0.1.305.dist-info → auto_coder-0.1.306.dist-info}/WHEEL +0 -0
  38. {auto_coder-0.1.305.dist-info → auto_coder-0.1.306.dist-info}/entry_points.txt +0 -0
  39. {auto_coder-0.1.305.dist-info → auto_coder-0.1.306.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.305
3
+ Version: 0.1.306
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -1,26 +1,26 @@
1
1
  autocoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- autocoder/auto_coder.py,sha256=HWRWa5Emg1KH0Qa9OLHOhe6fTO9epodO7EUejnEVPGs,66022
2
+ autocoder/auto_coder.py,sha256=4NyaafKENW-yRRoaIQbbVac8CLRXQQ_0WFUmxpuIdf8,66047
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=8QziYc2y3ngZSYRHTQ2KbXSG8iQr9_1U_QrsMsSWPXw,100790
7
+ autocoder/auto_coder_runner.py,sha256=bJKALThUBFKCmX-BB3Cjh9go9HRMnh9yZdKHZz8fAoc,104751
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=iDsxUt6RnW5ETSTprZAWLTXNrktdMec-r3AZyV8UJ4g,24784
11
- autocoder/chat_auto_coder_lang.py,sha256=-vyKq02RGn6N275YA06JZqXpfJkNq6PNjQ8wy4MmITE,20833
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=5GWW6mtaPl30mzqFO3ZxXUWEcruPKj3ItmKpxg9QBvQ,23
17
+ autocoder/version.py,sha256=XqstJG2NUtLXeLrUSdvICbSPFolVEqrCnUeMEAadQlM,23
18
18
  autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  autocoder/agent/auto_demand_organizer.py,sha256=NWSAEsEk94vT3lGjfo25kKLMwYdPcpy9e-i21txPasQ,6942
20
20
  autocoder/agent/auto_filegroup.py,sha256=CW7bqp0FW1GIEMnl-blyAc2UGT7O9Mom0q66ITz1ckM,6635
21
21
  autocoder/agent/auto_guess_query.py,sha256=rDSdhpPHcOGE5MuDXvIrhCXAPR4ARS1LqpyoLsx2Jhw,11374
22
- autocoder/agent/auto_learn_from_commit.py,sha256=YtiMkdcZ29etZxwU5Zir2LFnvfJlwEbpAaW_JYSa4nk,11465
23
- autocoder/agent/auto_review_commit.py,sha256=rFADQbBikC8y9GTYXIvT6HONR26pLfrwoqOOhEiL7Ok,13262
22
+ autocoder/agent/auto_learn_from_commit.py,sha256=ssttfsB4Xxjez6bVz1Y1NQlkX8PwpDjUeIhMUitIW0g,11526
23
+ autocoder/agent/auto_review_commit.py,sha256=PGlP_-dSWcT4sqMCaBpNAm7JHNrDYjJorwlO4mBbobo,13323
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
@@ -33,28 +33,28 @@ autocoder/commands/auto_web.py,sha256=Cc0eb6JN3SvFy3GD_lpSLvIqj7F1eFDTcwg1t-zDcK
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=PDukO4-iFDdPUjMqsKVW2b055YpgWl1Oa4nJzeFoY3c,13931
36
+ autocoder/common/__init__.py,sha256=S8edUoKW4EV5L7kKfZ6MSuEI-hLwop1PKJa-parNhg0,14026
37
37
  autocoder/common/action_yml_file_manager.py,sha256=q0QBlptWtR9DhqguMBZJfHmmTP9fVGjI5DdDer29sis,16109
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=NSVg3pJldxoyfqxD68mtj6VDsx-Dn-lCvEcPunmYKzM,36972
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=i0f0BPTvt8QN5-arC2PqfMs4sukGJqFw58ERFET6vUE,13091
48
- autocoder/common/code_auto_generate_diff.py,sha256=EYGHf24fVAk3M8kXllXukdUvzo2I2Fb8qNrTiU_Qtug,18759
49
- autocoder/common/code_auto_generate_editblock.py,sha256=1XmoLZl-XrrPOyHkSfqe0pOxi0Lp4d69oDQX6zzqs_c,20523
50
- autocoder/common/code_auto_generate_strict_diff.py,sha256=68fAks4S6Hz0wAeXrdI1PjdeCiy0gXRhgEeIlgxB04E,17539
51
- autocoder/common/code_auto_merge.py,sha256=6XSJbY6oAKPFoeYLbEyVDFH3kqeXCAJXcqK-olvlZWg,9454
52
- autocoder/common/code_auto_merge_diff.py,sha256=FhgYKSNprZhdEXdrVyQdbpofduD_aCKFTXvAvHDnP5M,18764
53
- autocoder/common/code_auto_merge_editblock.py,sha256=5iSV5IiZKr5LHtw0TO_2ALPf8F9sz7pHi9dHiuRuB9s,21223
54
- autocoder/common/code_auto_merge_strict_diff.py,sha256=M0tTA0QKfY4qoihgH8ua5h8UJgp1Ut-VAR8DV0cia5k,12915
55
- autocoder/common/code_modification_ranker.py,sha256=e1i8oNPN_PfG4O8HQnQWxh9tyOd-ur6jFTXfkHPVXYo,13152
56
- autocoder/common/command_completer.py,sha256=xuCxYGKDccaozmzB6p3q0QI6mlzyM180g9mnVG5zvIk,35284
57
- autocoder/common/command_generator.py,sha256=t1o1d7xEyfnPvY_MpG5usyx0eKW7WCUR0urKoqCex60,2761
47
+ autocoder/common/code_auto_generate.py,sha256=lAuvMggASauLsWmynQxDcb0B0N1BZukrk2hwHVviwNk,17206
48
+ autocoder/common/code_auto_generate_diff.py,sha256=KqmOq5BsmM18t4ZPc5o1WfmXabfL9fNhCw2x_mRVHm4,23073
49
+ autocoder/common/code_auto_generate_editblock.py,sha256=rY-zqQ8qSgcui8FDsOXdcwqVZeTSPxI3LejKNkFkXIc,24966
50
+ autocoder/common/code_auto_generate_strict_diff.py,sha256=Jz234Nk9G-e7wLojvWiwfLTEpWvJigo9GnEUXK-kCyE,21968
51
+ autocoder/common/code_auto_merge.py,sha256=VWUWxubvbd1eF0ToupCGHP3uHD4wHUhQFOmeSLdCYYo,9941
52
+ autocoder/common/code_auto_merge_diff.py,sha256=xg79LqyuEsuT2SVKGbYGTisIi1NUtSHXwSwazP315uM,19251
53
+ autocoder/common/code_auto_merge_editblock.py,sha256=5m0q1047Ew02gINbB7ZHujW2D21R5st8RB2MenXq1I4,21745
54
+ autocoder/common/code_auto_merge_strict_diff.py,sha256=VbpK-jB-58I0rxYGogcOTBkRYDnfaWVlDWF6GwGhhcg,13189
55
+ autocoder/common/code_modification_ranker.py,sha256=i_ycikE9pE83vtb3oMGK8TLWMWkjzADxuzR-Zop7WLI,13246
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=EK8gekbXsG6BNDVrd1Nsan_7kJ71dd8_w9FiOFxjsVI,26276
66
+ autocoder/common/git_utils.py,sha256=d2J5APFIw2LxxRHN8UMY3qwiLeYA1WIf74IO72t0Rbc,26587
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=F0fvsjE2LxQD8HKtyI1UfSbrN1vK0m_5Qp3se9GYMGs,187
85
+ autocoder/common/stream_out_type.py,sha256=3caVTArt1mjKMxl-W3bMhBxqtXdr2SgPjOCroNJAWy8,265
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=oiBjdCgdcQErfhMozFdHxkU84WmDo2euBA86yezha-g,3597
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=YoA64dIxnx4jcE1pwSfg81sjkQtjDkhddkfac1-cMWo,1230
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=Bc_6Iwcd7KhNM6jbMB9zUt3uhzJz8QWRCsO0tfnz3OI,27865
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=QzBCBRuvcnoF-f3nzXXOzrrbCKz0MtMvQusDgkmHzi8,43171
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=yf_AiA8TUt7A7Tlg5TAlLm5iv9Jd86pOQrhXjOQsXT0,27111
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=3X94fkXC1aMztHaLwKGxucE3s_1hD4gFarg4vvN-pfE,10313
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=A1ka4FVf_SKH7T6pez5R460qvGdEquzfIAjRR_TRxF8,15010
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.305.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
197
- auto_coder-0.1.305.dist-info/METADATA,sha256=IM7ILt4a0lg_Lq7SHGZK0T0oPsi272WyLa9gLhSLjcE,2721
198
- auto_coder-0.1.305.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
199
- auto_coder-0.1.305.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
200
- auto_coder-0.1.305.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
201
- auto_coder-0.1.305.dist-info/RECORD,,
201
+ auto_coder-0.1.306.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
202
+ auto_coder-0.1.306.dist-info/METADATA,sha256=dRRK97KSeiakq3KrfZwTZbUUAzwCb24dqfbcnA-OiGE,2721
203
+ auto_coder-0.1.306.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
204
+ auto_coder-0.1.306.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
205
+ auto_coder-0.1.306.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
206
+ auto_coder-0.1.306.dist-info/RECORD,,
@@ -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
@@ -267,7 +268,8 @@ class AutoLearnFromCommit:
267
268
  v = stream_chat_with_continue(
268
269
  llm=self.llm,
269
270
  conversations=new_conversations,
270
- llm_config={}
271
+ llm_config={},
272
+ args=self.args
271
273
  )
272
274
  return v, commit_file_name
273
275
  except Exception as e:
@@ -36,6 +36,7 @@ class AutoReviewCommit:
36
36
  skip_diff: 是否跳过获取 diff 信息
37
37
  """
38
38
  self.project_dir = args.source_dir
39
+ self.args = args
39
40
  self.actions_dir = os.path.join(args.source_dir, "actions")
40
41
  self.llm = llm
41
42
  self.skip_diff = skip_diff
@@ -315,7 +316,8 @@ class AutoReviewCommit:
315
316
  v = stream_chat_with_continue(
316
317
  llm=self.llm,
317
318
  conversations=new_conversations,
318
- llm_config={}
319
+ llm_config={},
320
+ args=self.args
319
321
  )
320
322
  return v
321
323
  except Exception as e:
autocoder/auto_coder.py CHANGED
@@ -945,7 +945,7 @@ def main(input_args: Optional[List[str]] = None):
945
945
 
946
946
  console = Console()
947
947
 
948
- shell_script = generate_shell_script(args.query, llm)
948
+ shell_script = generate_shell_script(args, llm)
949
949
 
950
950
  console.print(
951
951
  Panel(
@@ -1340,7 +1340,8 @@ def main(input_args: Optional[List[str]] = None):
1340
1340
  v = stream_chat_with_continue(
1341
1341
  llm=chat_llm,
1342
1342
  conversations=loaded_conversations,
1343
- llm_config={}
1343
+ llm_config={},
1344
+ args=args
1344
1345
  )
1345
1346
 
1346
1347
 
@@ -49,10 +49,12 @@ from autocoder.utils.llms import get_single_llm
49
49
  import pkg_resources
50
50
  from autocoder.common.printer import Printer
51
51
  from autocoder.utils.thread_utils import run_in_raw_thread
52
+ from autocoder.memory.active_context_manager import ActiveContextManager
52
53
  from autocoder.common.command_completer import CommandCompleter,FileSystemModel as CCFileSystemModel,MemoryConfig as CCMemoryModel
53
54
  from autocoder.common.conf_validator import ConfigValidator
54
55
  from autocoder import command_parser as CommandParser
55
56
  from loguru import logger
57
+ from autocoder.utils.project_structure import EnhancedFileAnalyzer
56
58
 
57
59
  class SymbolItem(BaseModel):
58
60
  symbol_name: str
@@ -168,9 +170,10 @@ def configure_project_type():
168
170
  print_info(get_message("examples"))
169
171
 
170
172
  print_warning(f"{get_message('default_type')}\n")
171
-
173
+
174
+ extensions = get_all_extensions(project_root) or "py"
172
175
  project_type = prompt(
173
- get_message("enter_project_type"), default="py", style=style
176
+ get_message("enter_project_type"), default=extensions, style=style
174
177
  ).strip()
175
178
 
176
179
  if project_type:
@@ -186,6 +189,32 @@ def configure_project_type():
186
189
  return project_type
187
190
 
188
191
 
192
+ def get_all_extensions(directory: str = ".") -> str:
193
+ """获取指定目录下所有文件的后缀名,多个按逗号分隔,并且带."""
194
+ args = AutoCoderArgs(
195
+ source_dir=directory,
196
+ # 其他必要参数设置为默认值
197
+ target_file="",
198
+ git_url="",
199
+ project_type="",
200
+ conversation_prune_safe_zone_tokens=0
201
+ )
202
+
203
+ analyzer = EnhancedFileAnalyzer(
204
+ args=args,
205
+ llm=None, # 如果只是获取后缀名,可以不需要LLM
206
+ config=None # 使用默认配置
207
+ )
208
+
209
+ # 获取分析结果
210
+ analysis_result = analyzer.analyze_extensions()
211
+
212
+ # 合并 code 和 config 的后缀名
213
+ all_extensions = set(analysis_result["code"] + analysis_result["config"])
214
+
215
+ # 转换为逗号分隔的字符串
216
+ return ",".join(sorted(all_extensions))
217
+
189
218
  def initialize_system(args:InitializeSystemRequest):
190
219
  from autocoder.utils.model_provider_selector import ModelProviderSelector
191
220
  from autocoder import models as models_module
@@ -1417,7 +1446,7 @@ def commit(query: str):
1417
1446
 
1418
1447
 
1419
1448
  @run_in_raw_thread()
1420
- def coding(query: str):
1449
+ def coding(query: str):
1421
1450
  console = Console()
1422
1451
  is_apply = query.strip().startswith("/apply")
1423
1452
  if is_apply:
@@ -1756,6 +1785,90 @@ def design(query: str):
1756
1785
  os.remove(execute_file)
1757
1786
 
1758
1787
 
1788
+ @run_in_raw_thread()
1789
+ def active_context(query: str):
1790
+ """
1791
+ 管理活动上下文任务,支持列表、查询等操作
1792
+
1793
+ Args:
1794
+ query: 命令参数,例如 "list" 列出所有任务
1795
+ """
1796
+ # 解析命令
1797
+ commands_infos = CommandParser.parse_query(query)
1798
+ command = "list" # 默认命令是列出所有任务
1799
+
1800
+ if len(commands_infos) > 0:
1801
+ if "list" in commands_infos:
1802
+ command = "list"
1803
+
1804
+ args = get_final_config()
1805
+ # 获取LLM实例
1806
+ llm = get_single_llm(args.model,product_mode=args.product_mode)
1807
+
1808
+ # 获取配置和参数
1809
+
1810
+
1811
+ # 获取ActiveContextManager单例
1812
+ active_context_manager = ActiveContextManager(llm, args)
1813
+
1814
+ # 处理不同的命令
1815
+ if command == "list":
1816
+ # 获取所有任务
1817
+ all_tasks = active_context_manager.get_all_tasks()
1818
+
1819
+ if not all_tasks:
1820
+ console = Console()
1821
+ console.print("[yellow]没有找到任何活动上下文任务[/yellow]")
1822
+ return
1823
+
1824
+ # 创建表格
1825
+ table = Table(title="活动上下文任务列表")
1826
+ table.add_column("任务ID", style="cyan")
1827
+ table.add_column("状态", style="green")
1828
+ table.add_column("开始时间", style="yellow")
1829
+ table.add_column("完成时间", style="yellow")
1830
+ table.add_column("文件", style="blue")
1831
+
1832
+ # 添加任务数据
1833
+ for task in all_tasks:
1834
+ status = task.get("status", "未知")
1835
+ status_display = status
1836
+
1837
+ # 根据状态设置不同的显示样式
1838
+ if status == "completed":
1839
+ status_display = "[green]已完成[/green]"
1840
+ elif status == "running":
1841
+ status_display = "[blue]运行中[/blue]"
1842
+ elif status == "queued":
1843
+ position = task.get("queue_position", 0)
1844
+ status_display = f"[yellow]排队中 (位置: {position})[/yellow]"
1845
+ elif status == "failed":
1846
+ status_display = "[red]失败[/red]"
1847
+
1848
+ # 格式化时间
1849
+ start_time = task.get("start_time", "")
1850
+ start_time_str = start_time.strftime("%Y-%m-%d %H:%M:%S") if start_time else "未知"
1851
+
1852
+ completion_time = task.get("completion_time", "")
1853
+ completion_time_str = completion_time.strftime("%Y-%m-%d %H:%M:%S") if completion_time else "-"
1854
+
1855
+ # 获取文件名
1856
+ file_name = task.get("file_name", "未知")
1857
+
1858
+ # 添加到表格
1859
+ table.add_row(
1860
+ task.get("task_id", "未知"),
1861
+ status_display,
1862
+ start_time_str,
1863
+ completion_time_str,
1864
+ file_name
1865
+ )
1866
+
1867
+ # 显示表格
1868
+ console = Console()
1869
+ console.print(table)
1870
+
1871
+
1759
1872
  def voice_input():
1760
1873
  conf = memory.get("conf", {})
1761
1874
  yaml_config = {
@@ -49,6 +49,7 @@ from autocoder.auto_coder_runner import (
49
49
  completer,
50
50
  summon,
51
51
  get_memory,
52
+ active_context,
52
53
  )
53
54
 
54
55
  # Create a global plugin manager
@@ -63,6 +64,7 @@ original_functions = {
63
64
  "voice_input": voice_input,
64
65
  "auto_command": auto_command,
65
66
  "execute_shell_command": execute_shell_command,
67
+ "active_context": active_context,
66
68
  }
67
69
 
68
70
 
@@ -149,6 +151,7 @@ def show_help():
149
151
  print(f" \033[94m/lib\033[0m - \033[92m{get_message('lib_desc')}\033[0m")
150
152
  print(f" \033[94m/models\033[0m - \033[92m{get_message('models_desc')}\033[0m")
151
153
  print(f" \033[94m/plugins\033[0m - \033[92m{get_message('plugins_desc')}\033[0m")
154
+ print(f" \033[94m/active_context\033[0m - \033[92m{get_message('active_context_desc')}\033[0m")
152
155
  print(f" \033[94m/exit\033[0m - \033[92m{get_message('exit_desc')}\033[0m")
153
156
  print()
154
157
 
@@ -423,13 +426,14 @@ def main():
423
426
  )
424
427
 
425
428
  # Replace original functions with wrapped versions
426
- global ask, coding, chat, design, voice_input, auto_command, execute_shell_command
429
+ global ask, coding, chat, design, voice_input, auto_command, execute_shell_command, active_context
427
430
  ask = wrapped_functions.get("ask", ask)
428
431
  coding = wrapped_functions.get("coding", coding)
429
432
  chat = wrapped_functions.get("chat", chat)
430
433
  design = wrapped_functions.get("design", design)
431
434
  voice_input = wrapped_functions.get("voice_input", voice_input)
432
435
  auto_command = wrapped_functions.get("auto_command", auto_command)
436
+ active_context = wrapped_functions.get("active_context", active_context)
433
437
  execute_shell_command = wrapped_functions.get(
434
438
  "execute_shell_command", execute_shell_command
435
439
  )
@@ -620,6 +624,10 @@ def main():
620
624
  print("Please enter your query.")
621
625
  else:
622
626
  mcp(query)
627
+
628
+ elif user_input.startswith("/active_context"):
629
+ query = user_input[len("/active_context") :].strip()
630
+ active_context(query)
623
631
 
624
632
  elif user_input.startswith("/auto"):
625
633
  query = user_input[len("/auto") :].strip()