auto-coder-web 0.1.38__tar.gz → 0.1.40__tar.gz

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.
Files changed (160) hide show
  1. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/PKG-INFO +1 -1
  2. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/auto_coder_runner_wrapper.py +6 -1
  3. auto_coder_web-0.1.40/src/auto_coder_web/common_router/model_router.py +312 -0
  4. auto_coder_web-0.1.40/src/auto_coder_web/init_project.py +26 -0
  5. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/proxy.py +40 -70
  6. auto_coder_web-0.1.40/src/auto_coder_web/version.py +1 -0
  7. auto_coder_web-0.1.40/src/auto_coder_web/web/asset-manifest.json +15 -0
  8. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/index.html +1 -1
  9. auto_coder_web-0.1.38/src/auto_coder_web/web/static/css/main.0ef9afe0.css → auto_coder_web-0.1.40/src/auto_coder_web/web/static/css/main.d58ae48e.css +3 -3
  10. auto_coder_web-0.1.40/src/auto_coder_web/web/static/css/main.d58ae48e.css.map +1 -0
  11. auto_coder_web-0.1.38/src/auto_coder_web/web/static/js/main.2922014a.js → auto_coder_web-0.1.40/src/auto_coder_web/web/static/js/main.8d7d4613.js +3 -3
  12. auto_coder_web-0.1.38/src/auto_coder_web/web/static/js/main.2922014a.js.LICENSE.txt → auto_coder_web-0.1.40/src/auto_coder_web/web/static/js/main.8d7d4613.js.LICENSE.txt +4 -0
  13. auto_coder_web-0.1.38/src/auto_coder_web/web/static/js/main.2922014a.js.map → auto_coder_web-0.1.40/src/auto_coder_web/web/static/js/main.8d7d4613.js.map +1 -1
  14. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web.egg-info/PKG-INFO +1 -1
  15. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web.egg-info/SOURCES.txt +6 -5
  16. auto_coder_web-0.1.38/src/auto_coder_web/common_router/model_router.py +0 -156
  17. auto_coder_web-0.1.38/src/auto_coder_web/version.py +0 -1
  18. auto_coder_web-0.1.38/src/auto_coder_web/web/asset-manifest.json +0 -15
  19. auto_coder_web-0.1.38/src/auto_coder_web/web/static/css/main.0ef9afe0.css.map +0 -1
  20. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/README.md +0 -0
  21. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/setup.cfg +0 -0
  22. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/setup.py +0 -0
  23. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/__init__.py +0 -0
  24. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/auto_coder_runner.py +0 -0
  25. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/common_router/__init__.py +0 -0
  26. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/common_router/auto_coder_conf_router.py +0 -0
  27. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/common_router/chat_list_router.py +0 -0
  28. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/common_router/completions_router.py +0 -0
  29. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/common_router/file_group_router.py +0 -0
  30. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/common_router/file_router.py +0 -0
  31. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/expert_routers/__init__.py +0 -0
  32. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/expert_routers/history_router.py +0 -0
  33. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/file_group.py +0 -0
  34. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/file_manager.py +0 -0
  35. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/json_file_storage.py +0 -0
  36. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/lang.py +0 -0
  37. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/__init__.py +0 -0
  38. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/auto_router.py +0 -0
  39. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/chat_router.py +0 -0
  40. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/coding_router.py +0 -0
  41. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/commit_router.py +0 -0
  42. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/config_router.py +0 -0
  43. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/settings_router.py +0 -0
  44. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/routers/todo_router.py +0 -0
  45. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/terminal.py +0 -0
  46. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/types.py +0 -0
  47. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/favicon.ico +0 -0
  48. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/logo192.png +0 -0
  49. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/logo512.png +0 -0
  50. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/manifest.json +0 -0
  51. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  52. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/base/worker/workerMain.js +0 -0
  53. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/abap/abap.js +0 -0
  54. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/apex/apex.js +0 -0
  55. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/azcli/azcli.js +0 -0
  56. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/bat/bat.js +0 -0
  57. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/bicep/bicep.js +0 -0
  58. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cameligo/cameligo.js +0 -0
  59. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/clojure/clojure.js +0 -0
  60. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/coffee/coffee.js +0 -0
  61. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cpp/cpp.js +0 -0
  62. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/csharp/csharp.js +0 -0
  63. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/csp/csp.js +0 -0
  64. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/css/css.js +0 -0
  65. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cypher/cypher.js +0 -0
  66. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/dart/dart.js +0 -0
  67. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js +0 -0
  68. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ecl/ecl.js +0 -0
  69. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/elixir/elixir.js +0 -0
  70. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/flow9/flow9.js +0 -0
  71. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js +0 -0
  72. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js +0 -0
  73. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/go/go.js +0 -0
  74. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/graphql/graphql.js +0 -0
  75. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js +0 -0
  76. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/hcl/hcl.js +0 -0
  77. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/html/html.js +0 -0
  78. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ini/ini.js +0 -0
  79. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/java/java.js +0 -0
  80. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/javascript/javascript.js +0 -0
  81. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/julia/julia.js +0 -0
  82. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js +0 -0
  83. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/less/less.js +0 -0
  84. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/lexon/lexon.js +0 -0
  85. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/liquid/liquid.js +0 -0
  86. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/lua/lua.js +0 -0
  87. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/m3/m3.js +0 -0
  88. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/markdown/markdown.js +0 -0
  89. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mdx/mdx.js +0 -0
  90. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mips/mips.js +0 -0
  91. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/msdax/msdax.js +0 -0
  92. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mysql/mysql.js +0 -0
  93. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js +0 -0
  94. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pascal/pascal.js +0 -0
  95. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pascaligo/pascaligo.js +0 -0
  96. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/perl/perl.js +0 -0
  97. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pgsql/pgsql.js +0 -0
  98. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/php/php.js +0 -0
  99. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pla/pla.js +0 -0
  100. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/postiats/postiats.js +0 -0
  101. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js +0 -0
  102. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/powershell/powershell.js +0 -0
  103. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js +0 -0
  104. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pug/pug.js +0 -0
  105. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/python/python.js +0 -0
  106. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/qsharp/qsharp.js +0 -0
  107. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/r/r.js +0 -0
  108. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/razor/razor.js +0 -0
  109. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/redis/redis.js +0 -0
  110. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/redshift/redshift.js +0 -0
  111. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js +0 -0
  112. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ruby/ruby.js +0 -0
  113. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/rust/rust.js +0 -0
  114. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sb/sb.js +0 -0
  115. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scala/scala.js +0 -0
  116. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scheme/scheme.js +0 -0
  117. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scss/scss.js +0 -0
  118. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/shell/shell.js +0 -0
  119. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/solidity/solidity.js +0 -0
  120. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sophia/sophia.js +0 -0
  121. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sparql/sparql.js +0 -0
  122. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sql/sql.js +0 -0
  123. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/st/st.js +0 -0
  124. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/swift/swift.js +0 -0
  125. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js +0 -0
  126. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/tcl/tcl.js +0 -0
  127. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/twig/twig.js +0 -0
  128. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/typescript/typescript.js +0 -0
  129. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/typespec/typespec.js +0 -0
  130. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/vb/vb.js +0 -0
  131. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/wgsl/wgsl.js +0 -0
  132. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/xml/xml.js +0 -0
  133. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/yaml/yaml.js +0 -0
  134. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/editor/editor.main.css +0 -0
  135. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/editor/editor.main.js +0 -0
  136. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/css/cssMode.js +0 -0
  137. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/css/cssWorker.js +0 -0
  138. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/html/htmlMode.js +0 -0
  139. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/html/htmlWorker.js +0 -0
  140. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/json/jsonMode.js +0 -0
  141. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/json/jsonWorker.js +0 -0
  142. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/typescript/tsMode.js +0 -0
  143. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/language/typescript/tsWorker.js +0 -0
  144. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/loader.js +0 -0
  145. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.de.js +0 -0
  146. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.es.js +0 -0
  147. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.fr.js +0 -0
  148. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.it.js +0 -0
  149. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ja.js +0 -0
  150. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ko.js +0 -0
  151. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ru.js +0 -0
  152. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.zh-cn.js +0 -0
  153. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.zh-tw.js +0 -0
  154. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/robots.txt +0 -0
  155. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/static/js/453.d855a71b.chunk.js +0 -0
  156. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web/web/static/js/453.d855a71b.chunk.js.map +0 -0
  157. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web.egg-info/dependency_links.txt +0 -0
  158. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web.egg-info/entry_points.txt +0 -0
  159. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web.egg-info/requires.txt +0 -0
  160. {auto_coder_web-0.1.38 → auto_coder_web-0.1.40}/src/auto_coder_web.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto_coder_web
3
- Version: 0.1.38
3
+ Version: 0.1.40
4
4
  Summary: auto-coder.web: A Python Project
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.9
@@ -33,13 +33,18 @@ from autocoder.auto_coder_runner import (
33
33
  completer,
34
34
  summon,
35
35
  get_memory,
36
+ get_all_extensions
36
37
  )
37
38
 
38
39
  class AutoCoderRunnerWrapper:
39
40
  def __init__(self, project_path: str, product_mode: str = "lite"):
41
+ self.project_path = project_path
42
+ self.product_mode = product_mode
40
43
  load_memory()
41
44
  load_tokenizer()
42
-
45
+
46
+ def get_all_extensions_wrapper(self):
47
+ return get_all_extensions(self.project_path)
43
48
 
44
49
  def auto_command_wrapper(self, command: str, params: Dict[str, Any]) -> Dict[str, str]:
45
50
  return auto_command(command,params)
@@ -0,0 +1,312 @@
1
+ from fastapi import APIRouter, HTTPException, Request
2
+ from typing import List, Dict, Optional
3
+ import json
4
+ import os
5
+ from pydantic import BaseModel
6
+ from autocoder import models as model_utils
7
+
8
+ router = APIRouter()
9
+
10
+ async def get_project_path(request: Request):
11
+ """获取项目路径作为依赖"""
12
+ return request.app.state.project_path
13
+
14
+ # Path for providers JSON file
15
+ PROVIDERS_FILE = os.path.expanduser("~/.auto-coder/keys/models_providers.json")
16
+
17
+ # Ensure directory exists
18
+ os.makedirs(os.path.dirname(PROVIDERS_FILE), exist_ok=True)
19
+
20
+ class Model(BaseModel):
21
+ name: str
22
+ description: str = ""
23
+ model_name: str
24
+ model_type: str
25
+ base_url: str
26
+ api_key_path: str
27
+ is_reasoning: bool = False
28
+ input_price: float = 0.0
29
+ output_price: float = 0.0
30
+ average_speed: float = 0.0
31
+
32
+ @router.get("/api/models", response_model=List[Model])
33
+ async def get_models():
34
+ """
35
+ Get all available models
36
+ """
37
+ try:
38
+ models_list = model_utils.load_models()
39
+ return models_list
40
+ except Exception as e:
41
+ raise HTTPException(status_code=500, detail=str(e))
42
+
43
+ @router.get("/api/models/{model_name}", response_model=Model)
44
+ async def get_model(model_name: str):
45
+ """
46
+ Get a specific model by name
47
+ """
48
+ try:
49
+ model = model_utils.get_model_by_name(model_name)
50
+ return model
51
+ except Exception as e:
52
+ raise HTTPException(status_code=404, detail=str(e))
53
+
54
+ @router.post("/api/models", response_model=Model)
55
+ async def add_model(model: Model):
56
+ """
57
+ Add a new model
58
+ """
59
+ try:
60
+ existing_models = model_utils.load_models()
61
+ if any(m["name"] == model.name for m in existing_models):
62
+ raise HTTPException(status_code=400, detail="Model with this name already exists")
63
+
64
+ existing_models.append(model.model_dump())
65
+ model_utils.save_models(existing_models)
66
+ return model
67
+ except Exception as e:
68
+ raise HTTPException(status_code=500, detail=str(e))
69
+
70
+ @router.put("/api/models/{model_name}", response_model=Model)
71
+ async def update_model(model_name: str, model: Model):
72
+ """
73
+ Update an existing model
74
+ """
75
+ try:
76
+ existing_models = model_utils.load_models()
77
+ updated = False
78
+
79
+ for m in existing_models:
80
+ if m["name"] == model_name:
81
+ m.update(model.model_dump())
82
+ updated = True
83
+ break
84
+
85
+ if not updated:
86
+ raise HTTPException(status_code=404, detail="Model not found")
87
+
88
+ model_utils.save_models(existing_models)
89
+ return model
90
+ except Exception as e:
91
+ raise HTTPException(status_code=500, detail=str(e))
92
+
93
+ @router.delete("/api/models/{model_name}")
94
+ async def delete_model(model_name: str):
95
+ """
96
+ Delete a model by name
97
+ """
98
+ try:
99
+ existing_models = model_utils.load_models()
100
+ models_list = [m for m in existing_models if m["name"] != model_name]
101
+
102
+ if len(existing_models) == len(models_list):
103
+ raise HTTPException(status_code=404, detail="Model not found")
104
+
105
+ model_utils.save_models(models_list)
106
+ return {"message": f"Model {model_name} deleted successfully"}
107
+ except Exception as e:
108
+ raise HTTPException(status_code=500, detail=str(e))
109
+
110
+ @router.put("/api/models/{model_name}/api_key")
111
+ async def update_model_api_key(model_name: str, api_key: str):
112
+ """
113
+ Update the API key for a specific model
114
+ """
115
+ try:
116
+ result = model_utils.update_model_with_api_key(model_name, api_key)
117
+ if result:
118
+ return {"message": f"API key for model {model_name} updated successfully"}
119
+ else:
120
+ raise HTTPException(status_code=404, detail="Model not found")
121
+ except Exception as e:
122
+ raise HTTPException(status_code=500, detail=str(e))
123
+
124
+ @router.put("/api/models/{model_name}/input_price")
125
+ async def update_model_input_price(model_name: str, price: float):
126
+ """
127
+ Update the input price for a specific model
128
+ """
129
+ try:
130
+ result = model_utils.update_model_input_price(model_name, price)
131
+ if result:
132
+ return {"message": f"Input price for model {model_name} updated successfully"}
133
+ else:
134
+ raise HTTPException(status_code=404, detail="Model not found")
135
+ except ValueError as e:
136
+ raise HTTPException(status_code=400, detail=str(e))
137
+ except Exception as e:
138
+ raise HTTPException(status_code=500, detail=str(e))
139
+
140
+ @router.put("/api/models/{model_name}/output_price")
141
+ async def update_model_output_price(model_name: str, price: float):
142
+ """
143
+ Update the output price for a specific model
144
+ """
145
+ try:
146
+ result = model_utils.update_model_output_price(model_name, price)
147
+ if result:
148
+ return {"message": f"Output price for model {model_name} updated successfully"}
149
+ else:
150
+ raise HTTPException(status_code=404, detail="Model not found")
151
+ except ValueError as e:
152
+ raise HTTPException(status_code=400, detail=str(e))
153
+ except Exception as e:
154
+ raise HTTPException(status_code=500, detail=str(e))
155
+
156
+ @router.put("/api/models/{model_name}/speed")
157
+ async def update_model_speed(model_name: str, speed: float):
158
+ """
159
+ Update the average speed for a specific model
160
+ """
161
+ try:
162
+ result = model_utils.update_model_speed(model_name, speed)
163
+ if result:
164
+ return {"message": f"Speed for model {model_name} updated successfully"}
165
+ else:
166
+ raise HTTPException(status_code=404, detail="Model not found")
167
+ except Exception as e:
168
+ raise HTTPException(status_code=500, detail=str(e))
169
+
170
+ # Provider management endpoints
171
+ class ModelInfo(BaseModel):
172
+ id: str
173
+ name: str
174
+ input_price: float
175
+ output_price: float
176
+ is_reasoning: bool
177
+
178
+ class ProviderConfig(BaseModel):
179
+ name: str
180
+ base_url: str
181
+ models: List[ModelInfo]
182
+
183
+ def load_providers() -> List[Dict]:
184
+ """Load providers from JSON file"""
185
+ # Default providers if file doesn't exist
186
+ default_providers = [
187
+ {
188
+ "name": "volcanoEngine",
189
+ "base_url": "https://ark.cn-beijing.volces.com/api/v3",
190
+ "models": [
191
+ {
192
+ "id": "deepseek-v3-241226",
193
+ "name": "Deepseek V3",
194
+ "input_price": 1.0,
195
+ "output_price": 4.0,
196
+ "is_reasoning": False
197
+ },
198
+ {
199
+ "id": "deepseek-r1-250120",
200
+ "name": "Deepseek R1",
201
+ "input_price": 2.0,
202
+ "output_price": 8.0,
203
+ "is_reasoning": True
204
+ }
205
+ ]
206
+ },
207
+ {
208
+ "name": "openrouter",
209
+ "base_url": "https://openrouter.ai/api/v1",
210
+ "models": [
211
+ {
212
+ "id": "anthropic/claude-3.7-sonnet:thinking",
213
+ "name": "Claude 3.7 Sonnet Thinking",
214
+ "input_price": 22.0,
215
+ "output_price": 111.0,
216
+ "is_reasoning": True
217
+ },
218
+ {
219
+ "id": "anthropic/claude-3.7-sonnet",
220
+ "name": "Claude 3.7 Sonnet",
221
+ "input_price": 22.0,
222
+ "output_price": 111.0,
223
+ "is_reasoning": False
224
+ }
225
+ ]
226
+ }
227
+ ]
228
+
229
+ if not os.path.exists(PROVIDERS_FILE):
230
+ return default_providers
231
+ try:
232
+ with open(PROVIDERS_FILE, 'r',encoding='utf-8') as f:
233
+ # 根据名字去重,优先保留文件中的提供商配置
234
+ loaded_providers = json.load(f)
235
+ providers_map = {provider["name"]: provider for provider in loaded_providers}
236
+
237
+ # 只添加名字不重复的默认提供商
238
+ for default_provider in default_providers:
239
+ if default_provider["name"] not in providers_map:
240
+ providers_map[default_provider["name"]] = default_provider
241
+
242
+ return list(providers_map.values())
243
+ except Exception as e:
244
+ print(f"Error loading providers: {e}")
245
+ return default_providers
246
+
247
+ def save_providers(providers: List[Dict]) -> None:
248
+ """Save providers to JSON file"""
249
+ with open(PROVIDERS_FILE, 'w',encoding='utf-8') as f:
250
+ # 根据名字去重,然后再统一保存
251
+ json.dump(providers, f, indent=2,ensure_ascii=False)
252
+
253
+ @router.get("/api/providers", response_model=List[ProviderConfig])
254
+ async def get_providers():
255
+ """Get all available providers"""
256
+ try:
257
+ providers = load_providers()
258
+ return providers
259
+ except Exception as e:
260
+ raise HTTPException(status_code=500, detail=str(e))
261
+
262
+ @router.post("/api/providers", response_model=ProviderConfig)
263
+ async def add_provider(provider: ProviderConfig):
264
+ """Add a new provider"""
265
+ try:
266
+ providers = load_providers()
267
+
268
+ # Check if provider with same name already exists
269
+ if any(p["name"] == provider.name for p in providers):
270
+ raise HTTPException(status_code=400, detail="Provider with this name already exists")
271
+
272
+ providers.append(provider.model_dump())
273
+ save_providers(providers)
274
+ return provider
275
+ except Exception as e:
276
+ raise HTTPException(status_code=500, detail=str(e))
277
+
278
+ @router.put("/api/providers/{provider_name}", response_model=ProviderConfig)
279
+ async def update_provider(provider_name: str, provider: ProviderConfig):
280
+ """Update an existing provider"""
281
+ try:
282
+ providers = load_providers()
283
+ updated = False
284
+
285
+ for p in providers:
286
+ if p["name"] == provider_name:
287
+ p.update(provider.model_dump())
288
+ updated = True
289
+ break
290
+
291
+ if not updated:
292
+ raise HTTPException(status_code=404, detail="Provider not found")
293
+
294
+ save_providers(providers)
295
+ return provider
296
+ except Exception as e:
297
+ raise HTTPException(status_code=500, detail=str(e))
298
+
299
+ @router.delete("/api/providers/{provider_name}")
300
+ async def delete_provider(provider_name: str):
301
+ """Delete a provider by name"""
302
+ try:
303
+ providers = load_providers()
304
+ providers_list = [p for p in providers if p["name"] != provider_name]
305
+
306
+ if len(providers) == len(providers_list):
307
+ raise HTTPException(status_code=404, detail="Provider not found")
308
+
309
+ save_providers(providers_list)
310
+ return {"message": f"Provider {provider_name} deleted successfully"}
311
+ except Exception as e:
312
+ raise HTTPException(status_code=500, detail=str(e))
@@ -0,0 +1,26 @@
1
+ import os
2
+ from autocoder.common import git_utils
3
+ def init_project(project_path: str):
4
+ os.makedirs(os.path.join(project_path, "actions"), exist_ok=True)
5
+ os.makedirs(os.path.join(project_path,
6
+ ".auto-coder"), exist_ok=True)
7
+
8
+ from autocoder.common.command_templates import create_actions
9
+
10
+ source_dir = os.path.abspath(project_path)
11
+ create_actions(
12
+ source_dir=source_dir,
13
+ params={"project_type": "python",
14
+ "source_dir": source_dir},
15
+ )
16
+ git_utils.init(os.path.abspath(project_path))
17
+
18
+ with open(os.path.join(source_dir, ".gitignore"), "a") as f:
19
+ f.write("\n.auto-coder/")
20
+ f.write("\n/actions/")
21
+ f.write("\n/output.txt")
22
+
23
+ print(
24
+ f"""Successfully initialized auto-coder project in {os.path.abspath(project_path)}."""
25
+ )
26
+ return
@@ -31,26 +31,31 @@ from loguru import logger
31
31
  from auto_coder_web.lang import get_message
32
32
 
33
33
  class ProxyServer:
34
- def __init__(self, project_path: str, quick: bool = False, product_mode: str = "pro"):
34
+ def __init__(self, project_path: str, quick: bool = False, product_mode: str = "pro"):
35
35
  self.app = FastAPI()
36
- self.setup_middleware()
36
+ self.setup_middleware()
37
37
 
38
38
  self.setup_static_files()
39
39
  self.project_path = project_path
40
-
40
+ self.product_mode = product_mode
41
+ self.auto_coder_runner = None
41
42
  # Check if project is initialized
42
43
  self.is_initialized = self.check_project_initialization()
43
- if not self.is_initialized:
44
+ if not self.is_initialized and product_mode == "pro":
44
45
  logger.warning(get_message("project_not_initialized"))
45
46
  logger.warning(get_message("run_auto_coder_chat"))
46
- sys.exit(1)
47
-
48
- self.auto_coder_runner = AutoCoderRunnerWrapper(project_path, product_mode=product_mode)
49
-
47
+ sys.exit(1)
50
48
 
49
+ if self.is_initialized:
50
+ self._initialize()
51
+
51
52
  self.setup_routes()
53
+
54
+ def _initialize(self):
55
+ self.auto_coder_runner = AutoCoderRunnerWrapper(self.project_path, product_mode=self.product_mode)
52
56
  self.client = httpx.AsyncClient()
53
57
 
58
+
54
59
  def setup_middleware(self):
55
60
  self.app.add_middleware(
56
61
  CORSMiddleware,
@@ -127,10 +132,7 @@ class ProxyServer:
127
132
 
128
133
  @self.app.get("/api/project-path")
129
134
  async def get_project_path():
130
- return {"project_path": self.project_path}
131
-
132
- def get_project_runner(project_path: str) -> AutoCoderRunner:
133
- return self.projects[project_path]
135
+ return {"project_path": self.project_path}
134
136
 
135
137
  @self.app.get("/api/os")
136
138
  async def get_os():
@@ -162,65 +164,33 @@ class ProxyServer:
162
164
  "default": field.default
163
165
  })
164
166
  return {"keys": keys}
167
+
168
+
169
+ @self.app.post("/api/initialization-project")
170
+ async def initialization_project():
171
+ """Get the project initialization status"""
172
+ from auto_coder_web.init_project import init_project
173
+ init_project(self.project_path)
174
+ base_persist_dir = os.path.join(self.project_path,".auto-coder", "plugins", "chat-auto-coder")
175
+ os.makedirs(base_persist_dir, exist_ok=True)
176
+ self.is_initialized = True
177
+ self._initialize()
178
+ return {"success": True}
179
+
180
+ @self.app.get("/api/guess/project_type")
181
+ async def get_project_type():
182
+ v = self.auto_coder_runner.get_all_extensions_wrapper()
183
+ return {
184
+ "project_type":v
185
+ }
186
+
187
+ @self.app.put("/api/congigure/project_type")
188
+ async def configure_project_type(project_type:str):
189
+ self.auto_coder_runner.configure_wrapper(f"project_type:{project_type}")
190
+ return {
191
+ "succcess": True
192
+ }
165
193
 
166
- @self.app.post("/api/revert")
167
- async def revert():
168
- try:
169
- result = self.auto_coder_runner.revert()
170
- return result
171
- except Exception as e:
172
- raise HTTPException(status_code=500, detail=str(e))
173
-
174
- @self.app.get("/api/active-files")
175
- async def get_active_files():
176
- """获取当前活动文件列表"""
177
- active_files = self.auto_coder_runner.get_active_files()
178
- return active_files
179
-
180
- @self.app.post("/api/commit")
181
- async def commit():
182
- try:
183
- result = self.auto_coder_runner.commit()
184
- return result
185
- except Exception as e:
186
- raise HTTPException(status_code=500, detail=str(e))
187
-
188
- @self.app.get("/api/last-yaml")
189
- async def get_last_yaml():
190
- """Get information about the last YAML file"""
191
- return JSONResponse(content=self.auto_coder_runner.get_last_yaml_info())
192
-
193
- @self.app.get("/api/history/file-content/{file_number}", response_model=FileContentResponse)
194
- async def get_file_content(file_number: int):
195
- """获取指定编号文件的完整内容"""
196
- auto_coder_dir = "actions"
197
- file_name = f"{file_number}_chat_action.yml"
198
- file_path = ""
199
-
200
- # 搜索文件
201
- for root, _, files in os.walk(auto_coder_dir):
202
- if file_name in files:
203
- file_path = os.path.join(root, file_name)
204
- break
205
-
206
- if not file_path:
207
- return FileContentResponse(
208
- success=False,
209
- message=f"找不到文件: {file_name}"
210
- )
211
-
212
- try:
213
- with open(file_path, 'r', encoding='utf-8') as f:
214
- content = f.read()
215
- return FileContentResponse(
216
- success=True,
217
- content=content
218
- )
219
- except Exception as e:
220
- return FileContentResponse(
221
- success=False,
222
- message=f"读取文件出错: {str(e)}"
223
- )
224
194
 
225
195
  @self.app.get("/api/initialization-status")
226
196
  async def get_initialization_status():
@@ -0,0 +1 @@
1
+ __version__ = "0.1.40"
@@ -0,0 +1,15 @@
1
+ {
2
+ "files": {
3
+ "main.css": "/static/css/main.d58ae48e.css",
4
+ "main.js": "/static/js/main.8d7d4613.js",
5
+ "static/js/453.d855a71b.chunk.js": "/static/js/453.d855a71b.chunk.js",
6
+ "index.html": "/index.html",
7
+ "main.d58ae48e.css.map": "/static/css/main.d58ae48e.css.map",
8
+ "main.8d7d4613.js.map": "/static/js/main.8d7d4613.js.map",
9
+ "453.d855a71b.chunk.js.map": "/static/js/453.d855a71b.chunk.js.map"
10
+ },
11
+ "entrypoints": [
12
+ "static/css/main.d58ae48e.css",
13
+ "static/js/main.8d7d4613.js"
14
+ ]
15
+ }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.2922014a.js"></script><link href="/static/css/main.0ef9afe0.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.8d7d4613.js"></script><link href="/static/css/main.d58ae48e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>