auto-coder-web 0.1.37__tar.gz → 0.1.39__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.
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/PKG-INFO +2 -2
- auto_coder_web-0.1.39/src/auto_coder_web/common_router/model_router.py +312 -0
- auto_coder_web-0.1.39/src/auto_coder_web/version.py +1 -0
- auto_coder_web-0.1.39/src/auto_coder_web/web/asset-manifest.json +15 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/index.html +1 -1
- auto_coder_web-0.1.37/src/auto_coder_web/web/static/css/main.e70fd4a5.css → auto_coder_web-0.1.39/src/auto_coder_web/web/static/css/main.0ef9afe0.css +3 -3
- auto_coder_web-0.1.39/src/auto_coder_web/web/static/css/main.0ef9afe0.css.map +1 -0
- auto_coder_web-0.1.37/src/auto_coder_web/web/static/js/main.066e08e9.js → auto_coder_web-0.1.39/src/auto_coder_web/web/static/js/main.c3e68e66.js +3 -3
- auto_coder_web-0.1.37/src/auto_coder_web/web/static/js/main.066e08e9.js.LICENSE.txt → auto_coder_web-0.1.39/src/auto_coder_web/web/static/js/main.c3e68e66.js.LICENSE.txt +4 -0
- auto_coder_web-0.1.37/src/auto_coder_web/web/static/js/main.066e08e9.js.map → auto_coder_web-0.1.39/src/auto_coder_web/web/static/js/main.c3e68e66.js.map +1 -1
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web.egg-info/PKG-INFO +2 -2
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web.egg-info/SOURCES.txt +5 -5
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web.egg-info/requires.txt +1 -1
- auto_coder_web-0.1.37/src/auto_coder_web/common_router/model_router.py +0 -156
- auto_coder_web-0.1.37/src/auto_coder_web/version.py +0 -1
- auto_coder_web-0.1.37/src/auto_coder_web/web/asset-manifest.json +0 -15
- auto_coder_web-0.1.37/src/auto_coder_web/web/static/css/main.e70fd4a5.css.map +0 -1
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/README.md +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/setup.cfg +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/setup.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/__init__.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/auto_coder_runner.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/auto_coder_runner_wrapper.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/common_router/__init__.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/common_router/auto_coder_conf_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/common_router/chat_list_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/common_router/completions_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/common_router/file_group_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/common_router/file_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/expert_routers/__init__.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/expert_routers/history_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/file_group.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/file_manager.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/json_file_storage.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/lang.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/proxy.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/__init__.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/auto_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/chat_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/coding_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/commit_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/config_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/settings_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/routers/todo_router.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/terminal.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/types.py +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/favicon.ico +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/logo192.png +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/logo512.png +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/manifest.json +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/base/worker/workerMain.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/abap/abap.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/apex/apex.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/azcli/azcli.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/bat/bat.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/bicep/bicep.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cameligo/cameligo.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/clojure/clojure.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/coffee/coffee.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cpp/cpp.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/csharp/csharp.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/csp/csp.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/css/css.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/cypher/cypher.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/dart/dart.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ecl/ecl.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/elixir/elixir.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/flow9/flow9.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/go/go.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/graphql/graphql.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/hcl/hcl.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/html/html.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ini/ini.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/java/java.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/javascript/javascript.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/julia/julia.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/less/less.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/lexon/lexon.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/liquid/liquid.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/lua/lua.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/m3/m3.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/markdown/markdown.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mdx/mdx.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mips/mips.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/msdax/msdax.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/mysql/mysql.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pascal/pascal.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pascaligo/pascaligo.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/perl/perl.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pgsql/pgsql.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/php/php.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pla/pla.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/postiats/postiats.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/powershell/powershell.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/pug/pug.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/python/python.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/qsharp/qsharp.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/r/r.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/razor/razor.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/redis/redis.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/redshift/redshift.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/ruby/ruby.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/rust/rust.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sb/sb.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scala/scala.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scheme/scheme.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/scss/scss.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/shell/shell.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/solidity/solidity.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sophia/sophia.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sparql/sparql.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/sql/sql.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/st/st.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/swift/swift.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/tcl/tcl.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/twig/twig.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/typescript/typescript.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/typespec/typespec.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/vb/vb.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/wgsl/wgsl.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/xml/xml.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/basic-languages/yaml/yaml.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/editor/editor.main.css +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/editor/editor.main.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/css/cssMode.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/css/cssWorker.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/html/htmlMode.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/html/htmlWorker.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/json/jsonMode.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/json/jsonWorker.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/typescript/tsMode.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/language/typescript/tsWorker.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/loader.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.de.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.es.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.fr.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.it.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ja.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ko.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.ru.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.zh-cn.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/monaco-editor/min/vs/nls.messages.zh-tw.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/robots.txt +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/static/js/453.d855a71b.chunk.js +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web/web/static/js/453.d855a71b.chunk.js.map +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web.egg-info/dependency_links.txt +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web.egg-info/entry_points.txt +0 -0
- {auto_coder_web-0.1.37 → auto_coder_web-0.1.39}/src/auto_coder_web.egg-info/top_level.txt +0 -0
@@ -1,13 +1,13 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: auto_coder_web
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.39
|
4
4
|
Summary: auto-coder.web: A Python Project
|
5
5
|
Author: allwefantasy
|
6
6
|
Classifier: Programming Language :: Python :: 3.9
|
7
7
|
Classifier: Programming Language :: Python :: 3.10
|
8
8
|
Classifier: Programming Language :: Python :: 3.11
|
9
9
|
Description-Content-Type: text/markdown
|
10
|
-
Requires-Dist: auto-coder>=0.1.
|
10
|
+
Requires-Dist: auto-coder>=0.1.318
|
11
11
|
Requires-Dist: aiofiles
|
12
12
|
Requires-Dist: psutil
|
13
13
|
Requires-Dist: sse-starlette
|
@@ -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 @@
|
|
1
|
+
__version__ = "0.1.39"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"files": {
|
3
|
+
"main.css": "/static/css/main.0ef9afe0.css",
|
4
|
+
"main.js": "/static/js/main.c3e68e66.js",
|
5
|
+
"static/js/453.d855a71b.chunk.js": "/static/js/453.d855a71b.chunk.js",
|
6
|
+
"index.html": "/index.html",
|
7
|
+
"main.0ef9afe0.css.map": "/static/css/main.0ef9afe0.css.map",
|
8
|
+
"main.c3e68e66.js.map": "/static/js/main.c3e68e66.js.map",
|
9
|
+
"453.d855a71b.chunk.js.map": "/static/js/453.d855a71b.chunk.js.map"
|
10
|
+
},
|
11
|
+
"entrypoints": [
|
12
|
+
"static/css/main.0ef9afe0.css",
|
13
|
+
"static/js/main.c3e68e66.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.
|
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.c3e68e66.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>
|