auto-coder 0.1.264__py3-none-any.whl → 0.1.265__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 (50) hide show
  1. {auto_coder-0.1.264.dist-info → auto_coder-0.1.265.dist-info}/METADATA +1 -1
  2. {auto_coder-0.1.264.dist-info → auto_coder-0.1.265.dist-info}/RECORD +50 -48
  3. autocoder/agent/planner.py +4 -4
  4. autocoder/auto_coder.py +26 -21
  5. autocoder/auto_coder_server.py +7 -7
  6. autocoder/chat_auto_coder.py +150 -49
  7. autocoder/commands/auto_command.py +81 -4
  8. autocoder/commands/tools.py +48 -50
  9. autocoder/common/__init__.py +0 -1
  10. autocoder/common/auto_coder_lang.py +37 -3
  11. autocoder/common/code_auto_generate.py +3 -3
  12. autocoder/common/code_auto_generate_diff.py +3 -6
  13. autocoder/common/code_auto_generate_editblock.py +3 -3
  14. autocoder/common/code_auto_generate_strict_diff.py +3 -3
  15. autocoder/common/code_auto_merge_diff.py +2 -2
  16. autocoder/common/code_auto_merge_editblock.py +1 -1
  17. autocoder/common/code_auto_merge_strict_diff.py +3 -3
  18. autocoder/common/command_completer.py +3 -0
  19. autocoder/common/command_generator.py +24 -8
  20. autocoder/common/command_templates.py +2 -2
  21. autocoder/common/conf_import_export.py +105 -0
  22. autocoder/common/conf_validator.py +1 -1
  23. autocoder/common/files.py +41 -2
  24. autocoder/common/image_to_page.py +11 -11
  25. autocoder/common/index_import_export.py +38 -18
  26. autocoder/common/mcp_hub.py +3 -3
  27. autocoder/common/mcp_server.py +2 -2
  28. autocoder/common/shells.py +254 -13
  29. autocoder/common/stats_panel.py +126 -0
  30. autocoder/dispacher/actions/action.py +6 -18
  31. autocoder/dispacher/actions/copilot.py +2 -2
  32. autocoder/dispacher/actions/plugins/action_regex_project.py +1 -3
  33. autocoder/dispacher/actions/plugins/action_translate.py +1 -1
  34. autocoder/index/index.py +5 -5
  35. autocoder/models.py +2 -2
  36. autocoder/pyproject/__init__.py +5 -5
  37. autocoder/rag/cache/byzer_storage_cache.py +4 -4
  38. autocoder/rag/cache/file_monitor_cache.py +2 -2
  39. autocoder/rag/cache/simple_cache.py +4 -4
  40. autocoder/rag/long_context_rag.py +2 -2
  41. autocoder/regexproject/__init__.py +3 -2
  42. autocoder/suffixproject/__init__.py +3 -2
  43. autocoder/tsproject/__init__.py +3 -2
  44. autocoder/utils/conversation_store.py +1 -1
  45. autocoder/utils/operate_config_api.py +3 -3
  46. autocoder/version.py +1 -1
  47. {auto_coder-0.1.264.dist-info → auto_coder-0.1.265.dist-info}/LICENSE +0 -0
  48. {auto_coder-0.1.264.dist-info → auto_coder-0.1.265.dist-info}/WHEEL +0 -0
  49. {auto_coder-0.1.264.dist-info → auto_coder-0.1.265.dist-info}/entry_points.txt +0 -0
  50. {auto_coder-0.1.264.dist-info → auto_coder-0.1.265.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.264
3
+ Version: 0.1.265
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -1,17 +1,17 @@
1
1
  autocoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- autocoder/auto_coder.py,sha256=RT2rE8c30gnD4mFrmoRiumZK6vy0ukYFLVwphUvqtzk,64752
2
+ autocoder/auto_coder.py,sha256=wAPeIawQCOxl8MfT_-PMaDI9ZNB8fNoI6FSSMnHRJeI,65206
3
3
  autocoder/auto_coder_lang.py,sha256=Rtupq6N3_HT7JRhDKdgCBcwRaiAnyCOR_Gsp4jUomrI,3229
4
4
  autocoder/auto_coder_rag.py,sha256=nwgsXO2-scssWStjX3S910tDp-OZXZRddSYrpyC4Nq0,29021
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_server.py,sha256=XU9b4SBH7zjPPXaTWWHV4_zJm-XYa6njuLQaplYJH_c,20290
7
+ autocoder/auto_coder_server.py,sha256=6YQweNEKUrGAZ3yPvw8_qlNZJYLVSVUXGrn1K6udLts,20413
8
8
  autocoder/benchmark.py,sha256=Ypomkdzd1T3GE6dRICY3Hj547dZ6_inqJbBJIp5QMco,4423
9
- autocoder/chat_auto_coder.py,sha256=LektrcL3jr9iTgmDK4B5YjkFskIkdJB7y5JTVJODuWw,110454
9
+ autocoder/chat_auto_coder.py,sha256=fX_VusqljMF6Mq4TIrnFEehksHlJzc_g9S-5ctOXVbk,114803
10
10
  autocoder/chat_auto_coder_lang.py,sha256=ShOQVOnMA-WlT-fB9OrOer-xQkbcWxJGl-WMPuZcUkM,19572
11
11
  autocoder/command_args.py,sha256=9aYJ-AmPxP1sQh6ciw04FWHjSn31f2W9afXFwo8wgx4,30441
12
12
  autocoder/lang.py,sha256=U6AjVV8Rs1uLyjFCZ8sT6WWuNUxMBqkXXIOs4S120uk,14511
13
- autocoder/models.py,sha256=rG7ckiKlers-XoO1gWxNK-Y-IbqD82WS3qFMPHqvFsc,9072
14
- autocoder/version.py,sha256=grAb0FoqsepZ1Bs3Y464jN2s0QwFZDiqKUTBSvFupwk,23
13
+ autocoder/models.py,sha256=PlG1tKHSHwB57cKLOl5gTl5yTzFUDzCgeHPJU3N9F6Q,9106
14
+ autocoder/version.py,sha256=EntDFQhTLlfrujVHW6wuw1ZG6qiMaNd9zEEox9wX600,23
15
15
  autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  autocoder/agent/auto_demand_organizer.py,sha256=NWSAEsEk94vT3lGjfo25kKLMwYdPcpy9e-i21txPasQ,6942
17
17
  autocoder/agent/auto_filegroup.py,sha256=CW7bqp0FW1GIEMnl-blyAc2UGT7O9Mom0q66ITz1ckM,6635
@@ -20,49 +20,50 @@ autocoder/agent/auto_review_commit.py,sha256=Ks5oCDp-82YXiRfcDCgYabKq0pcMJkMrP4C
20
20
  autocoder/agent/auto_tool.py,sha256=DBzip-P_T6ZtT2eHexPcusmKYD0h7ufzp7TLwXAY10E,11554
21
21
  autocoder/agent/coder.py,sha256=x6bdJwDuETGg9ebQnYlUWCxCtQcDGg73LtI6McpWslQ,72034
22
22
  autocoder/agent/designer.py,sha256=EpRbzO58Xym3GrnppIT1Z8ZFAlnNfgzHbIzZ3PX-Yv8,27037
23
- autocoder/agent/planner.py,sha256=wvvuX9o6yhWlGm9t7fIT0wiChV5NkXBrYElxKiAjldU,9127
23
+ autocoder/agent/planner.py,sha256=SZTSZHxHzDmuWZo3K5fs79RwvJLWurg-nbJRRNbX65o,9195
24
24
  autocoder/agent/project_reader.py,sha256=tWLaPoLw1gI6kO_NzivQj28KbobU2ceOLuppHMbfGl8,18234
25
25
  autocoder/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  autocoder/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- autocoder/commands/auto_command.py,sha256=nPzTdVJES1MDfBfRuKl7SxKh_8CZGCz-pPAtEijeEtA,49084
28
- autocoder/commands/tools.py,sha256=rgZWuTtmn-Ck7G2EkeBRMFh6_TjLzssW1mabQoCrzR0,20327
27
+ autocoder/commands/auto_command.py,sha256=AgKgjPixxiCGbtrOZ88r069-6uQ_SuPSwqXncwxOhtA,51798
28
+ autocoder/commands/tools.py,sha256=xDhGD1jRN67fGfeck33pM74TxXlAMeo49S3Q9K-VKco,20107
29
29
  autocoder/common/JupyterClient.py,sha256=O-wi6pXeAEYhAY24kDa0BINrLYvKS6rKyWe98pDClS0,2816
30
30
  autocoder/common/ShellClient.py,sha256=fM1q8t_XMSbLBl2zkCNC2J9xuyKN3eXzGm6hHhqL2WY,2286
31
- autocoder/common/__init__.py,sha256=Y9HeCK6yNRsfNFvrfVHZSb_QUZcoGr1pcCO3JEkHBco,12787
31
+ autocoder/common/__init__.py,sha256=eH5NyEsiCzJaNzsxI-Y8TJbB5kpFzuwBgbTrWz9Uthk,12786
32
32
  autocoder/common/anything2images.py,sha256=0ILBbWzY02M-CiWB-vzuomb_J1hVdxRcenAfIrAXq9M,25283
33
33
  autocoder/common/anything2img.py,sha256=4TREa-sOA-iargieUy7MpyCYVUE-9Mmq0wJtwomPqnE,7662
34
34
  autocoder/common/audio.py,sha256=Kn9nWKQddWnUrAz0a_ZUgjcu4VUU_IcZBigT7n3N3qc,7439
35
- autocoder/common/auto_coder_lang.py,sha256=nEVmME_daf4ldRjRwAWt3zFhTTH1Ss3Do6---EX9eYA,26212
35
+ autocoder/common/auto_coder_lang.py,sha256=sAHM_ne0oy49iLuO1fdzRHLVTvolyVVoeBSF25nWClM,28874
36
36
  autocoder/common/auto_configure.py,sha256=tdEwfycZUjomZAgps1GOCtocYEtfuUgRksYPFHBP_bs,12211
37
37
  autocoder/common/buildin_tokenizer.py,sha256=L7d5t39ZFvUd6EoMPXUhYK1toD0FHlRH1jtjKRGokWU,1236
38
38
  autocoder/common/chunk_validation.py,sha256=BrR_ZWavW8IANuueEE7hS8NFAwEvm8TX34WnPx_1hs8,3030
39
39
  autocoder/common/cleaner.py,sha256=NU72i8C6o9m0vXExab7nao5bstBUsfJFcj11cXa9l4U,1089
40
40
  autocoder/common/code_auto_execute.py,sha256=4KXGmiGObr_B1d6tzV9dwS6MifCSc3Gm4j2d6ildBXQ,6867
41
- autocoder/common/code_auto_generate.py,sha256=74wCscxVEnY_VDkHcr-QA3b79RhDR_OeVPOI7UKRJwA,13040
42
- autocoder/common/code_auto_generate_diff.py,sha256=d6ALHEeCTFfoJVwkBhusUUib665UJDoMn1dV7Uze4sE,18809
43
- autocoder/common/code_auto_generate_editblock.py,sha256=LcGfG4bJVCVsWehex7MYWDF4NX0B2Rp2ALSh-27MclA,20472
44
- autocoder/common/code_auto_generate_strict_diff.py,sha256=JvKnD5Ph3JtAiVIO_k_XKUnVBeUxwLw_AHF_xWWtX7c,17488
41
+ autocoder/common/code_auto_generate.py,sha256=i0f0BPTvt8QN5-arC2PqfMs4sukGJqFw58ERFET6vUE,13091
42
+ autocoder/common/code_auto_generate_diff.py,sha256=EYGHf24fVAk3M8kXllXukdUvzo2I2Fb8qNrTiU_Qtug,18759
43
+ autocoder/common/code_auto_generate_editblock.py,sha256=1XmoLZl-XrrPOyHkSfqe0pOxi0Lp4d69oDQX6zzqs_c,20523
44
+ autocoder/common/code_auto_generate_strict_diff.py,sha256=68fAks4S6Hz0wAeXrdI1PjdeCiy0gXRhgEeIlgxB04E,17539
45
45
  autocoder/common/code_auto_merge.py,sha256=cMEX44QT59iMPEo5B8OQKU9fAzn4iIahEPk2n3rNFvg,8643
46
- autocoder/common/code_auto_merge_diff.py,sha256=r_-5He34g8BJvyrk6ntX6da9qICRAPR-35m8v_xivLw,16808
47
- autocoder/common/code_auto_merge_editblock.py,sha256=5D8uJPz9O3hzqbDQshHGy18kJ7c33rBb0Y_O5raOiCQ,18793
48
- autocoder/common/code_auto_merge_strict_diff.py,sha256=d2DWtgjLh3-BpQR4F3x1Piz8zXw-VUjaUxGNRbB91sw,10827
46
+ autocoder/common/code_auto_merge_diff.py,sha256=6jy4udNovMKq0MNhjiU4wZzX-wzRWVVLBkD0qLFZhKY,16799
47
+ autocoder/common/code_auto_merge_editblock.py,sha256=B5lNgUKu9xJXx_H_6BiGdc49Yc-2MQCPHiC4tEo1tos,18801
48
+ autocoder/common/code_auto_merge_strict_diff.py,sha256=n-szSE3ye07tB-5SFUVC7PrsL_7Y2qJ9C6yMKbPrd1s,10854
49
49
  autocoder/common/code_modification_ranker.py,sha256=sRNIPIsQP8FucxSuBeAHKJ7RWB_iB5Pb_cd0BAhvgGc,10926
50
- autocoder/common/command_completer.py,sha256=Nd-DdlFd2MMy9jpSI5N5rGKek-zEzI4Wa2g9w7mjQYk,35122
51
- autocoder/common/command_generator.py,sha256=-hmbD_AnCa5HxL4BznuEfYAf_l8AxU5fAG5F0sM_fuE,2116
52
- autocoder/common/command_templates.py,sha256=lAdr0-iyJKY2dOH2mZ0Tm3GlT_a1Oj8mgdKXmDiQN3A,8654
53
- autocoder/common/conf_validator.py,sha256=Pqf8m12YqZtxEEjvSD4mqj6jeZiwfV9ggEMd2PKq1kw,8787
50
+ autocoder/common/command_completer.py,sha256=Nw_EFXLDuVXbOKGlmzTODNRJUV9mSUEWV73GUmO_WLw,35166
51
+ autocoder/common/command_generator.py,sha256=Je7OKJvyzeb4krdEspUJx2tyM2tjk-PkNpkc6bZ7PbA,2563
52
+ autocoder/common/command_templates.py,sha256=BrmRwOJnyuMETY8v5AQw9D00UQb7ql00BiGjj-T9fU8,8690
53
+ autocoder/common/conf_import_export.py,sha256=w__WsIobe6nmsGns2pV-laU7R5ZvtQNuIbXebxhbY7A,3967
54
+ autocoder/common/conf_validator.py,sha256=EzSmadpZ22D9e8iWmfeWodUeYJt0IgMoaAOmCleXliI,8795
54
55
  autocoder/common/const.py,sha256=eTjhjh4Aj4CUzviJ81jaf3Y5cwqsLATySn2wJxaS6RQ,2911
55
56
  autocoder/common/context_pruner.py,sha256=yaDAMX8Zgfgl666gp1Rwxd7I7jmZXtEKaf3_TebJ0I4,12021
56
57
  autocoder/common/conversation_pruner.py,sha256=mdMpTpTdPJl8f0UjC1TGKRiYtDc1o6QQD0nYPR9yp1c,5628
57
- autocoder/common/files.py,sha256=CguxG9digkWBJpRaILErZmL_G5ryPRahPmPFWGB7X18,1973
58
+ autocoder/common/files.py,sha256=2-9CJwOZtyWkk2TQM4gPSkpJ3_cwb-l_3sdsCd1H5GQ,3380
58
59
  autocoder/common/git_utils.py,sha256=qeuF_IB3G3M72asHxWokROU3hINCuFA1nar-UtF9wIU,26022
59
60
  autocoder/common/global_cancel.py,sha256=hT7J7J5ChThIhk2x11_v4v9ASIn4HtwyPD26t2s-fwc,418
60
- autocoder/common/image_to_page.py,sha256=O0cNO_vHHUP-fP4GXiVojShmNqkPnZXeIyiY1MRLpKg,13936
61
- autocoder/common/index_import_export.py,sha256=Dg_j-tBaJO_xMXhZUseJcOcA9I79etI_Xri3lUEvYmw,3495
61
+ autocoder/common/image_to_page.py,sha256=yWiTJQ49Lm3j0FngiJhQ9u7qayqE_bOGb8Rk0TmSWx0,14123
62
+ autocoder/common/index_import_export.py,sha256=h758AYY1df6JMTKUXYmMkSgxItfymDt82XT7O-ygEuw,4565
62
63
  autocoder/common/interpreter.py,sha256=62-dIakOunYB4yjmX8SHC0Gdy2h8NtxdgbpdqRZJ5vk,2833
63
64
  autocoder/common/llm_rerank.py,sha256=FbvtCzaR661Mt2wn0qsuiEL1Y3puD6jeIJS4zg_e7Bs,3260
64
- autocoder/common/mcp_hub.py,sha256=2ZyJv3Aiv4Y97UHut49oYhIFcu7ICR-mptDEBSgT3uE,14234
65
- autocoder/common/mcp_server.py,sha256=1G6e0IbeS_h7CA1vr0dPAnf0o2H1f1A8I4bua8EUtKw,12318
65
+ autocoder/common/mcp_hub.py,sha256=bmoXlCcH8THd46KwdwxopcZ-LYGLpAVCz3g4omOJb2U,14285
66
+ autocoder/common/mcp_server.py,sha256=RoO91X-wZng893pD3AEF0rmdN46xxVqNW6QjlM1tnEk,12352
66
67
  autocoder/common/mcp_tools.py,sha256=KsLvRrB6pvmebqd-lDaSH6IBJR0AIxWRE-dtCEG_w9k,12485
67
68
  autocoder/common/memory_manager.py,sha256=2ZjYG7BPyvbYalZBF6AM_G5e10Qkw_zrqtD4Zd7GSsQ,3663
68
69
  autocoder/common/model_speed_test.py,sha256=U48xUUpOnbwUal1cdij4YAn_H2PD2pNaqrMHaYtQRfI,15200
@@ -72,7 +73,8 @@ autocoder/common/result_manager.py,sha256=nBcFRj5reBC7vp13M91f4B8iPW8B8OehayHlUd
72
73
  autocoder/common/screenshots.py,sha256=_gA-z1HxGjPShBrtgkdideq58MG6rqFB2qMUJKjrycs,3769
73
74
  autocoder/common/search.py,sha256=245iPFgWhMldoUK3CqCP89ltaxZiNPK73evoG6Fp1h8,16518
74
75
  autocoder/common/search_replace.py,sha256=GphFkc57Hb673CAwmbiocqTbw8vrV7TrZxtOhD0332g,22147
75
- autocoder/common/shells.py,sha256=Lu7JxF49Wi8kJ1WYAxmYnHUxs5JeQLO9N2OU05Gwrj8,7570
76
+ autocoder/common/shells.py,sha256=xSyQChybfClMgp8o07oS5CipME-XQgU564sjrRYK6fM,15977
77
+ autocoder/common/stats_panel.py,sha256=wGl9O45pjVVDxhNumLv4_NfLYSlUP_18Tw4hcJSjw50,4596
76
78
  autocoder/common/sys_prompt.py,sha256=JlexfjZt554faqbgkCmzOJqYUzDHfbnxly5ugFfHfEE,26403
77
79
  autocoder/common/text.py,sha256=KGRQq314GHBmY4MWG8ossRoQi1_DTotvhxchpn78c-k,1003
78
80
  autocoder/common/types.py,sha256=PXTETrsTvhLE49jqAeUKGySvxBN9pjeyCgRHLDYdd9U,664
@@ -85,15 +87,15 @@ autocoder/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
87
  autocoder/db/store.py,sha256=tFT66bP2ZKIqZip-uhLkHRSLaaOAUUDZfozJwcqix3c,1908
86
88
  autocoder/dispacher/__init__.py,sha256=YoA64dIxnx4jcE1pwSfg81sjkQtjDkhddkfac1-cMWo,1230
87
89
  autocoder/dispacher/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- autocoder/dispacher/actions/action.py,sha256=BWdGHhvco005vHvmBlCGS7DgsizBluKyENdK7c4z1NA,25283
89
- autocoder/dispacher/actions/copilot.py,sha256=iMh4ckj9hO5Q-iemF3CStXd7DatWai7Eci5zOlKxK9c,13072
90
+ autocoder/dispacher/actions/action.py,sha256=fLXuk2CbWB7_JARr-4HwVfbRw0SZ2r4McvDt3OlHUeY,24865
91
+ autocoder/dispacher/actions/copilot.py,sha256=2nQzKt8Sr40mIDOizZWyl4ekCwaHYklvgGlVfvhOlFM,13106
90
92
  autocoder/dispacher/actions/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- autocoder/dispacher/actions/plugins/action_regex_project.py,sha256=2Ikj6dlgezXJQC3hnbC5mrDuSGtF20bVbpOrEDOq25s,6984
92
- autocoder/dispacher/actions/plugins/action_translate.py,sha256=nVAtRSQpdGNmZxg1R_9zXG3AuTv3CHf2v7ODgj8u65c,7727
93
+ autocoder/dispacher/actions/plugins/action_regex_project.py,sha256=AqGIkjbqV1eOS3vBoZUTSOpyOlkv1p5h35mI2Kcvekw,6906
94
+ autocoder/dispacher/actions/plugins/action_translate.py,sha256=GEn7dZA22jy5WyzINomjmzzB795p2Olg-CJla97lRF8,7744
93
95
  autocoder/index/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
96
  autocoder/index/entry.py,sha256=XCq1GCBq1mDK8xo35VzixTwodx4mPytY0gqPoz6EvzU,13401
95
97
  autocoder/index/for_command.py,sha256=BFvljE4t6VaMBGboZAuhUCzVK0EitCy_n5D_7FEnihw,3204
96
- autocoder/index/index.py,sha256=SGRp77_Dkfs0qWVCrB0lyO8aLPLtj-vc3tZOaODezKI,25422
98
+ autocoder/index/index.py,sha256=lott5kcNN0Q5iyfl2dgkOSeDnsMpODKVWV3H54ISaiI,25507
97
99
  autocoder/index/symbols_utils.py,sha256=_EP7E_qWXxluAxq3FGZLlLfdrfwx3FmxCdulI8VGuac,2244
98
100
  autocoder/index/types.py,sha256=a2s_KV5FJlq7jqA2ELSo9E1sjuLwDB-JJYMhSpzBAhU,596
99
101
  autocoder/index/filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -101,13 +103,13 @@ autocoder/index/filter/normal_filter.py,sha256=QrG3YJU5F9CjmVm6kjfce_3_pYhvw_Q65
101
103
  autocoder/index/filter/quick_filter.py,sha256=FL-Hn8Cz0IC4e752dKpOKLXO92V7yOGl_crFmRGqwhE,22552
102
104
  autocoder/privacy/__init__.py,sha256=LnIVvGu_K66zCE-yhN_-dPO8R80pQyedCsXJ7wRqQaI,72
103
105
  autocoder/privacy/model_filter.py,sha256=-N9ZvxxDKpxU7hkn-tKv-QHyXjvkCopUaKgvJwTOGQs,3369
104
- autocoder/pyproject/__init__.py,sha256=bRuGxFV4QyE85xVjDzeMFmlLVqGbbcFs09FI15Uss4Q,14423
106
+ autocoder/pyproject/__init__.py,sha256=ms-A_pocgGv0oZPEW8JAdXi7G-VSVhkQ6CnWFe535Ec,14477
105
107
  autocoder/rag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
108
  autocoder/rag/api_server.py,sha256=dRbhAZVRAOlZ64Cnxf4_rKb4iJwHnrWS9Zr67IVORw0,7288
107
109
  autocoder/rag/doc_filter.py,sha256=ZCixxUXNBbz6UiGbgXvbDWdn5moLac3HnZEphpasTDc,6579
108
110
  autocoder/rag/document_retriever.py,sha256=5oThtxukGuRFF96o3pHKsk306a8diXbhgSrbqyU2BvM,8894
109
111
  autocoder/rag/llm_wrapper.py,sha256=sbDxCANiZyWb_ocqNgqu2oy3c2t8orPNRGleEs-Uwl8,2649
110
- autocoder/rag/long_context_rag.py,sha256=wmNmGsXN8RAFl6e9HaVzlwISXV9D-3bvf2qiaWjRy7w,24646
112
+ autocoder/rag/long_context_rag.py,sha256=SwU6UhTVjdKQu1VOaj07VGHFMG-mRTwRuOH1GwwFygo,24680
111
113
  autocoder/rag/rag_config.py,sha256=8LwFcTd8OJWWwi1_WY4IzjqgtT6RyE2j4PjxS5cCTDE,802
112
114
  autocoder/rag/rag_entry.py,sha256=6TKtErZ0Us9XSV6HgRKXA6yR3SiZGPHpynOKSaR1wgE,2463
113
115
  autocoder/rag/raw_rag.py,sha256=BOr0YGf3umjqXOIDVO1LXQ0bIHx8hzBdiubND2ezyxc,2946
@@ -122,9 +124,9 @@ autocoder/rag/utils.py,sha256=x5L8gskxUUGkVEP5K-0C-iYntE84asuDXOCqdzdNUoA,4956
122
124
  autocoder/rag/variable_holder.py,sha256=PFvBjFcR7-fNDD4Vcsc8CpH2Te057vcpwJMxtrfUgKI,75
123
125
  autocoder/rag/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
126
  autocoder/rag/cache/base_cache.py,sha256=KxrPKP-PunL7reXh5txT97DYLzGKm9M5O4CnOLDyX-c,403
125
- autocoder/rag/cache/byzer_storage_cache.py,sha256=LS-Z8x5HBL5u8Zrn0kniFX-tdR1ZsMp8fKoKFluSwuU,15375
126
- autocoder/rag/cache/file_monitor_cache.py,sha256=ZfWFEzhanwM78sj87dnDWS_mj1SjvK4U_-XdqMZOnhM,4947
127
- autocoder/rag/cache/simple_cache.py,sha256=4ZnDHuQyNDxaJ70_OlRMiuwPbjYId8ZaukTRfKAtzCw,9279
127
+ autocoder/rag/cache/byzer_storage_cache.py,sha256=iYRLKIrTOCmoHI1eUqEfYn_LK1fbU3vF5oYTWIC_HmM,15443
128
+ autocoder/rag/cache/file_monitor_cache.py,sha256=2TnOW8Y81Zc0WA1upRrkmQH18IMdv40CeNccmnTvd3c,4981
129
+ autocoder/rag/cache/simple_cache.py,sha256=8FMmBAfhAPcdSNUWC6Ga43LBFGXD-klwabVbzm_bciI,9347
128
130
  autocoder/rag/loaders/__init__.py,sha256=EQHEZ5Cmz-mGP2SllUTvcIbYCnF7W149dNpNItfs0yE,304
129
131
  autocoder/rag/loaders/docx_loader.py,sha256=ejonb3OFxeMBEV_qRRh556SrjlBbDIsU7lTuxuXCQXg,610
130
132
  autocoder/rag/loaders/excel_loader.py,sha256=Ue8YB1z_kBs8SjIPuBskyM08Q1JiONs_BJZPrzi59oo,896
@@ -134,19 +136,19 @@ autocoder/rag/stream_event/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
134
136
  autocoder/rag/stream_event/event_writer.py,sha256=l7kq_LnDDE8E5dZ-73C7J2MgzSL7WrozdXk0eV-k55Q,409
135
137
  autocoder/rag/stream_event/types.py,sha256=rtLwOE8rShmi1dJdxyBpAV5ZjLBGG9vptMiSzMxGuIA,318
136
138
  autocoder/regex_project/__init__.py,sha256=EBZeCL5ORyD_9_5u_UuG4s7XtpXOu0y1sWDmxWFtufE,6781
137
- autocoder/regexproject/__init__.py,sha256=cEr-ZOaQjLD5sx7T7F2DhD5ips03HcJ02rded9EpSXc,9693
138
- autocoder/suffixproject/__init__.py,sha256=2dxh8vizDLiSqGpCx-V2VQ6cOfRZGxJMgosjwSlAsQM,11078
139
- autocoder/tsproject/__init__.py,sha256=zGVSrxFo15Nh8GcSXHwdk4Fr-W7Bdb6IwVUX46PZKy4,11771
139
+ autocoder/regexproject/__init__.py,sha256=OGlfVe2yulGIZstACbVePVbNXajvVLRFyubnIc-9Gw0,9758
140
+ autocoder/suffixproject/__init__.py,sha256=EOb8eUqfu3ka8mrggkXUfwX3SWnxqEoiYmDF7Zkf0F8,11143
141
+ autocoder/tsproject/__init__.py,sha256=LPehIUgzFbZ5DT_Pc0a_xCQQXEDxACPTMwXfFF7rcL0,11836
140
142
  autocoder/utils/__init__.py,sha256=KtcGElFNBgZPF7dEL8zF9JpXkCAjoyDrzaREJBhJrcs,994
141
143
  autocoder/utils/_markitdown.py,sha256=RU88qn4eZfYIy0GDrPxlI8oYXIypbi63VRJjdlnE0VU,47431
142
144
  autocoder/utils/coder.py,sha256=rK8e0svQBe0NOP26dIGToUXgha_hUDgxlWoC_p_r7oc,5698
143
- autocoder/utils/conversation_store.py,sha256=sz-hhY7sttPAUOAQU6Pze-5zJc3j0_Emj22dM_0l5ro,1161
145
+ autocoder/utils/conversation_store.py,sha256=esd9zLarKYe0ZsYqjjwHc_ksmVQDDEhVt-Ejul2oyys,1178
144
146
  autocoder/utils/llm_client_interceptors.py,sha256=FEHNXoFZlCjAHQcjPRyX8FOMjo6rPXpO2AJ2zn2KTTo,901
145
147
  autocoder/utils/llms.py,sha256=HM5K_v4AcuWo65lgcp66DEqaU9-fjoT7mcI1iv2Fopg,3839
146
148
  autocoder/utils/log_capture.py,sha256=I-bsJFLWoGUiX-GKoZsH9kWJCKSV7ZlUnRt7jh-fOL0,1548
147
149
  autocoder/utils/model_provider_selector.py,sha256=g5O9frBWkXR7iqjYDdTvhoxzTQx0NaPVPu9M2ItqhpE,7602
148
150
  autocoder/utils/multi_turn.py,sha256=unK9OpqVRbK6uIcTKXgggX2wNmyj7s5eyEAQ2xUwHoM,88
149
- autocoder/utils/operate_config_api.py,sha256=99YAKsuUFLPwrRvj0CJal_bAPgyiXWMma6ZKMU56thw,5790
151
+ autocoder/utils/operate_config_api.py,sha256=K1lQxXNHiAYTgRDS2EGpWmjdJTrQaeP16RUWS0DIorw,5841
150
152
  autocoder/utils/print_table.py,sha256=ZMRhCA9DD0FUfKyJBWd5bDdj1RrtPtgOMWSJwtvZcLs,403
151
153
  autocoder/utils/project_structure.py,sha256=3X94fkXC1aMztHaLwKGxucE3s_1hD4gFarg4vvN-pfE,10313
152
154
  autocoder/utils/queue_communicate.py,sha256=buyEzdvab1QA4i2QKbq35rG5v_9x9PWVLWWMTznWcYM,6832
@@ -159,9 +161,9 @@ autocoder/utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
161
  autocoder/utils/auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
162
  autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=lkJ_A-sYU36JMzjFWkk3pR6uos8oZHYt9GPsPe_CPAo,11766
161
163
  autocoder/utils/chat_auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
- auto_coder-0.1.264.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
163
- auto_coder-0.1.264.dist-info/METADATA,sha256=QrJeenHIyx1s1s0gNNEKJ0VD_2vV4_pwpDQaIo7Lado,2616
164
- auto_coder-0.1.264.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
165
- auto_coder-0.1.264.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
166
- auto_coder-0.1.264.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
167
- auto_coder-0.1.264.dist-info/RECORD,,
164
+ auto_coder-0.1.265.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
165
+ auto_coder-0.1.265.dist-info/METADATA,sha256=LhsjMk8LZ10QZiODlTP-iZ9uvGmw32G07-hzcv1mDAg,2616
166
+ auto_coder-0.1.265.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
167
+ auto_coder-0.1.265.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
168
+ auto_coder-0.1.265.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
169
+ auto_coder-0.1.265.dist-info/RECORD,,
@@ -119,11 +119,11 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
119
119
 
120
120
  if not prev_files:
121
121
  new_file = os.path.join(actions_dir, f"{new_seq}_{yaml_file_name}.yml")
122
- with open(new_file, "w") as f:
122
+ with open(new_file, "w",encoding="utf-8") as f:
123
123
  pass
124
124
  else:
125
125
  prev_file = sorted(prev_files)[-1] # 取序号最大的文件
126
- with open(os.path.join(actions_dir, prev_file), "r") as f:
126
+ with open(os.path.join(actions_dir, prev_file), "r",encoding="utf-8") as f:
127
127
  content = f.read()
128
128
 
129
129
  yaml_content = yaml.safe_load(content)
@@ -137,7 +137,7 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
137
137
 
138
138
  new_content = yaml.safe_dump(yaml_content, allow_unicode=True, default_flow_style=False)
139
139
  new_file = os.path.join(actions_dir, f"{new_seq}_{yaml_file_name}.yml")
140
- with open(new_file, "w") as f:
140
+ with open(new_file, "w",encoding="utf-8") as f:
141
141
  f.write(new_content + "\n" + yaml_str)
142
142
 
143
143
  return new_file
@@ -151,7 +151,7 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
151
151
  paths = [p.strip() for p in paths.split(",")]
152
152
  source_code_str = ""
153
153
  for path in paths:
154
- with open(path, "r") as f:
154
+ with open(path, "r",encoding="utf-8") as f:
155
155
  source_code = f.read()
156
156
  sc = SourceCode(module_name=path, source_code=source_code)
157
157
  source_code_str += f"##File: {sc.module_name}\n"
autocoder/auto_coder.py CHANGED
@@ -75,7 +75,7 @@ def load_include_files(config, base_path, max_depth=10, current_depth=0):
75
75
 
76
76
  for include_file in include_files:
77
77
  abs_include_path = resolve_include_path(base_path, include_file)
78
- with open(abs_include_path, "r") as f:
78
+ with open(abs_include_path, "r",encoding="utf-8") as f:
79
79
  include_config = yaml.safe_load(f)
80
80
  if not include_config:
81
81
  logger.info(
@@ -103,7 +103,7 @@ def main(input_args: Optional[List[str]] = None):
103
103
  args: AutoCoderArgs = args
104
104
 
105
105
  if args.file:
106
- with open(args.file, "r") as f:
106
+ with open(args.file, "r",encoding="utf-8") as f:
107
107
  config = yaml.safe_load(f)
108
108
  config = load_include_files(config, args.file)
109
109
  for key, value in config.items():
@@ -178,8 +178,8 @@ def main(input_args: Optional[List[str]] = None):
178
178
 
179
179
  with open(os.path.join(source_dir, ".gitignore"), "a") as f:
180
180
  f.write("\n.auto-coder/")
181
- f.write("\nactions/")
182
- f.write("\noutput.txt")
181
+ f.write("\n/actions/")
182
+ f.write("\n/output.txt")
183
183
 
184
184
  print(
185
185
  f"""Successfully initialized auto-coder project in {os.path.abspath(args.source_dir)}."""
@@ -224,11 +224,11 @@ def main(input_args: Optional[List[str]] = None):
224
224
  f for f in action_files if f.startswith(raw_args.from_yaml)]
225
225
  if from_files:
226
226
  from_file = from_files[0] # Take the first match
227
- with open(os.path.join(actions_dir, from_file), "r") as f:
227
+ with open(os.path.join(actions_dir, from_file), "r",encoding="utf-8") as f:
228
228
  content = f.read()
229
229
  new_file = os.path.join(
230
230
  actions_dir, f"{new_seq}_{raw_args.name}.yml")
231
- with open(new_file, "w") as f:
231
+ with open(new_file, "w",encoding="utf-8") as f:
232
232
  f.write(content)
233
233
  else:
234
234
  print(
@@ -239,15 +239,15 @@ def main(input_args: Optional[List[str]] = None):
239
239
  if not prev_files:
240
240
  new_file = os.path.join(
241
241
  actions_dir, f"{new_seq}_{raw_args.name}.yml")
242
- with open(new_file, "w") as f:
242
+ with open(new_file, "w",encoding="utf-8") as f:
243
243
  pass
244
244
  else:
245
245
  prev_file = sorted(prev_files)[-1] # 取序号最大的文件
246
- with open(os.path.join(actions_dir, prev_file), "r") as f:
246
+ with open(os.path.join(actions_dir, prev_file), "r",encoding="utf-8") as f:
247
247
  content = f.read()
248
248
  new_file = os.path.join(
249
249
  actions_dir, f"{new_seq}_{raw_args.name}.yml")
250
- with open(new_file, "w") as f:
250
+ with open(new_file, "w",encoding="utf-8") as f:
251
251
  f.write(content)
252
252
  # open_yaml_file_in_editor(new_file)
253
253
  return
@@ -485,6 +485,9 @@ def main(input_args: Optional[List[str]] = None):
485
485
  )
486
486
  instruction = input_value[0]["instruction"]
487
487
  final_ins = instruction
488
+
489
+ with open(args.target_file, "w",encoding="utf-8") as f:
490
+ f.write(final_ins)
488
491
 
489
492
  try:
490
493
  import pyperclip
@@ -959,7 +962,7 @@ def main(input_args: Optional[List[str]] = None):
959
962
  )
960
963
  )
961
964
 
962
- with open(os.path.join(".auto-coder", "exchange.txt"), "w") as f:
965
+ with open(os.path.join(".auto-coder", "exchange.txt"), "w",encoding="utf-8") as f:
963
966
  f.write(transcription)
964
967
 
965
968
  request_queue.add_request(
@@ -987,7 +990,7 @@ def main(input_args: Optional[List[str]] = None):
987
990
  )
988
991
  )
989
992
 
990
- with open(os.path.join(".auto-coder", "exchange.txt"), "w") as f:
993
+ with open(os.path.join(".auto-coder", "exchange.txt"), "w",encoding="utf-8") as f:
991
994
  f.write(shell_script)
992
995
 
993
996
  request_queue.add_request(
@@ -1066,7 +1069,7 @@ def main(input_args: Optional[List[str]] = None):
1066
1069
  result_manager = ResultManager()
1067
1070
  if args.new_session:
1068
1071
  if os.path.exists(memory_file):
1069
- with open(memory_file, "r") as f:
1072
+ with open(memory_file, "r",encoding="utf-8") as f:
1070
1073
  old_chat_history = json.load(f)
1071
1074
  if "conversation_history" not in old_chat_history:
1072
1075
  old_chat_history["conversation_history"] = []
@@ -1077,7 +1080,7 @@ def main(input_args: Optional[List[str]] = None):
1077
1080
  else:
1078
1081
  chat_history = {"ask_conversation": [],
1079
1082
  "conversation_history": []}
1080
- with open(memory_file, "w") as f:
1083
+ with open(memory_file, "w",encoding="utf-8") as f:
1081
1084
  json.dump(chat_history, f, ensure_ascii=False)
1082
1085
 
1083
1086
  result_manager.add_result(content=get_message("new_session_started"), meta={
@@ -1098,7 +1101,7 @@ def main(input_args: Optional[List[str]] = None):
1098
1101
  return
1099
1102
 
1100
1103
  if os.path.exists(memory_file):
1101
- with open(memory_file, "r") as f:
1104
+ with open(memory_file, "r",encoding="utf-8") as f:
1102
1105
  chat_history = json.load(f)
1103
1106
  if "conversation_history" not in chat_history:
1104
1107
  chat_history["conversation_history"] = []
@@ -1218,7 +1221,11 @@ def main(input_args: Optional[List[str]] = None):
1218
1221
  source_codes=source_codes,
1219
1222
  pre_conversations=loaded_conversations[source_count * 2: -1],
1220
1223
  last_conversation=loaded_conversations[-1],
1221
- )
1224
+ )
1225
+
1226
+ with open(args.target_file, "w",encoding="utf-8") as f:
1227
+ f.write(chat_content)
1228
+
1222
1229
  try:
1223
1230
  import pyperclip
1224
1231
 
@@ -1274,9 +1281,7 @@ def main(input_args: Optional[List[str]] = None):
1274
1281
  lines.append(line)
1275
1282
 
1276
1283
  result = "\n".join(lines)
1277
-
1278
- with open(args.target_file, "w") as f:
1279
- f.write(chat_content)
1284
+
1280
1285
 
1281
1286
  result_manager = ResultManager()
1282
1287
  result_manager.append(content=result,
@@ -1289,7 +1294,7 @@ def main(input_args: Optional[List[str]] = None):
1289
1294
  {"role": "assistant", "content": result}
1290
1295
  )
1291
1296
 
1292
- with open(memory_file, "w") as f:
1297
+ with open(memory_file, "w",encoding="utf-8") as f:
1293
1298
  json.dump(chat_history, f, ensure_ascii=False)
1294
1299
 
1295
1300
  request_queue.add_request(
@@ -1397,7 +1402,7 @@ def main(input_args: Optional[List[str]] = None):
1397
1402
  {"role": "assistant", "content": assistant_response}
1398
1403
  )
1399
1404
 
1400
- with open(memory_file, "w") as f:
1405
+ with open(memory_file, "w",encoding="utf-8") as f:
1401
1406
  json.dump(chat_history, f, ensure_ascii=False)
1402
1407
 
1403
1408
  if "copy" in args.action:
@@ -1500,7 +1505,7 @@ def main(input_args: Optional[List[str]] = None):
1500
1505
  else:
1501
1506
  http_doc = HttpDoc(args=args, llm=llm, urls=None)
1502
1507
  source_codes = http_doc.crawl_urls()
1503
- with open(args.target_file, "w") as f:
1508
+ with open(args.target_file, "w",encoding="utf-8") as f:
1504
1509
  f.write("\n".join([sc.source_code for sc in source_codes]))
1505
1510
  return
1506
1511
 
@@ -88,7 +88,7 @@ def load_memory():
88
88
  global memory
89
89
  memory_path = os.path.join(base_persist_dir, "memory.json")
90
90
  if os.path.exists(memory_path):
91
- with open(memory_path, "r") as f:
91
+ with open(memory_path, "r",encoding="utf-8") as f:
92
92
  memory = json.load(f)
93
93
 
94
94
 
@@ -222,7 +222,7 @@ async def coding(request: QueryRequest, background_tasks: BackgroundTasks):
222
222
 
223
223
  yaml_content = convert_yaml_config_to_str(yaml_config=yaml_config)
224
224
  execute_file = os.path.join("actions", latest_yaml_file)
225
- with open(execute_file, "w") as f:
225
+ with open(execute_file, "w", encoding="utf-8") as f:
226
226
  f.write(yaml_content)
227
227
 
228
228
  try:
@@ -262,7 +262,7 @@ async def chat(request: QueryRequest, background_tasks: BackgroundTasks):
262
262
  file_contents = []
263
263
  for file in current_files:
264
264
  if os.path.exists(file):
265
- with open(file, "r") as f:
265
+ with open(file, "r",encoding="utf-8") as f:
266
266
  content = f.read()
267
267
  s = f"##File: {file}\n{content}\n\n"
268
268
  file_contents.append(s)
@@ -282,7 +282,7 @@ async def chat(request: QueryRequest, background_tasks: BackgroundTasks):
282
282
 
283
283
  yaml_content = convert_yaml_config_to_str(yaml_config=yaml_config)
284
284
 
285
- with open(execute_file, "w") as f:
285
+ with open(execute_file, "w",encoding="utf-8") as f:
286
286
  f.write(yaml_content)
287
287
  auto_coder_main(
288
288
  ["agent", "chat", "--file", execute_file, "--request_id", request_id]
@@ -318,7 +318,7 @@ async def ask(request: QueryRequest, background_tasks: BackgroundTasks):
318
318
 
319
319
  execute_file = os.path.join("actions", f"{uuid.uuid4()}.yml")
320
320
 
321
- with open(execute_file, "w") as f:
321
+ with open(execute_file, "w", encoding="utf-8") as f:
322
322
  f.write(yaml_content)
323
323
 
324
324
  try:
@@ -372,7 +372,7 @@ async def index_build(background_tasks: BackgroundTasks):
372
372
  include_file:
373
373
  - ./base/base.yml
374
374
  """
375
- with open(yaml_file, "w") as f:
375
+ with open(yaml_file, "w", encoding="utf-8") as f:
376
376
  f.write(yaml_content)
377
377
 
378
378
  log_capture = LogCapture(request_id=request_id)
@@ -400,7 +400,7 @@ async def index_query(request: QueryRequest, background_tasks: BackgroundTasks):
400
400
  query: |
401
401
  {request.query}
402
402
  """
403
- with open(yaml_file, "w") as f:
403
+ with open(yaml_file, "w", encoding="utf-8") as f:
404
404
  f.write(yaml_content)
405
405
  try:
406
406
  auto_coder_main(