auto-coder 0.1.310__tar.gz → 0.1.312__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.
Potentially problematic release.
This version of auto-coder might be problematic. Click here for more details.
- {auto_coder-0.1.310 → auto_coder-0.1.312}/PKG-INFO +2 -2
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/auto_coder.egg-info/PKG-INFO +2 -2
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/auto_coder.egg-info/SOURCES.txt +1 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/auto_coder.egg-info/requires.txt +1 -1
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/auto_coder_runner.py +22 -8
- auto_coder-0.1.312/src/autocoder/common/token_cost_caculate.py +200 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/memory/active_context_manager.py +353 -171
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/memory/active_package.py +175 -34
- auto_coder-0.1.312/src/autocoder/version.py +1 -0
- auto_coder-0.1.310/src/autocoder/version.py +0 -1
- {auto_coder-0.1.310 → auto_coder-0.1.312}/LICENSE +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/README.md +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/setup.cfg +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/setup.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/auto_coder.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/auto_coder_rag.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/auto_coder_server.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/benchmark.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/chat_auto_coder.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/command_args.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/command_parser.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/commands/auto_command.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/commands/auto_web.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/action_yml_file_manager.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/audio.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/auto_coder_lang.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/auto_configure.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/cleaner.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_merge_diff.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/computer_use.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/const.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/context_pruner.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/conversation_pruner.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/files.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/llm_rerank.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/mcp_hub.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/mcp_server.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/mcp_servers/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/mcp_tools.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/model_speed_test.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/openai_content.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/printer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/result_manager.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/search.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/shells.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/stream_out_type.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/text.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/types.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/db/store.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/events/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/events/event_content.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/events/event_manager.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/events/event_manager_singleton.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/events/event_store.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/events/event_types.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/entry.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/filter/normal_filter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/filter/quick_filter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/index.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/index/types.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/lang.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/memory/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/memory/async_processor.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/memory/directory_mapper.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/models.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/plugins/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/plugins/git_helper_plugin.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/plugins/sample_plugin.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/plugins/token_helper_plugin.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/plugins/utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/privacy/model_filter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/conversation_to_queries.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/lang.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/long_context_rag.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/raw_rag.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/searchable.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/simple_directory_reader.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/simple_rag.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/token_limiter_utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/types.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/run_context.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/_markitdown.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/auto_project_type.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/stream_thinking.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/tests.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/src/autocoder/utils/types.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_action_regex_project.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_action_yml_file_manager.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_chat_auto_coder.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_command_completer.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_planner.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_plugins.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_privacy.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_queue_communicate.py +0 -0
- {auto_coder-0.1.310 → auto_coder-0.1.312}/tests/test_symbols_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: auto-coder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.312
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -28,7 +28,7 @@ Requires-Dist: prompt-toolkit
|
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
29
|
Requires-Dist: aiofiles
|
|
30
30
|
Requires-Dist: readerwriterlock
|
|
31
|
-
Requires-Dist: byzerllm[saas]>=0.1.
|
|
31
|
+
Requires-Dist: byzerllm[saas]>=0.1.178
|
|
32
32
|
Requires-Dist: patch
|
|
33
33
|
Requires-Dist: diff_match_patch
|
|
34
34
|
Requires-Dist: GitPython
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: auto-coder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.312
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -28,7 +28,7 @@ Requires-Dist: prompt-toolkit
|
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
29
|
Requires-Dist: aiofiles
|
|
30
30
|
Requires-Dist: readerwriterlock
|
|
31
|
-
Requires-Dist: byzerllm[saas]>=0.1.
|
|
31
|
+
Requires-Dist: byzerllm[saas]>=0.1.178
|
|
32
32
|
Requires-Dist: patch
|
|
33
33
|
Requires-Dist: diff_match_patch
|
|
34
34
|
Requires-Dist: GitPython
|
|
@@ -92,6 +92,7 @@ src/autocoder/common/stats_panel.py
|
|
|
92
92
|
src/autocoder/common/stream_out_type.py
|
|
93
93
|
src/autocoder/common/sys_prompt.py
|
|
94
94
|
src/autocoder/common/text.py
|
|
95
|
+
src/autocoder/common/token_cost_caculate.py
|
|
95
96
|
src/autocoder/common/types.py
|
|
96
97
|
src/autocoder/common/utils_code_auto_generate.py
|
|
97
98
|
src/autocoder/common/mcp_servers/__init__.py
|
|
@@ -1854,12 +1854,14 @@ def active_context(query: str):
|
|
|
1854
1854
|
return
|
|
1855
1855
|
|
|
1856
1856
|
# 创建表格
|
|
1857
|
-
table = Table(title="活动上下文任务列表")
|
|
1858
|
-
table.add_column("任务ID", style="cyan")
|
|
1859
|
-
table.add_column("状态", style="green")
|
|
1860
|
-
table.add_column("开始时间", style="yellow")
|
|
1861
|
-
table.add_column("完成时间", style="yellow")
|
|
1862
|
-
table.add_column("文件", style="blue")
|
|
1857
|
+
table = Table(title="活动上下文任务列表", show_lines=True, expand=True)
|
|
1858
|
+
table.add_column("任务ID", style="cyan", no_wrap=False)
|
|
1859
|
+
table.add_column("状态", style="green", no_wrap=False)
|
|
1860
|
+
table.add_column("开始时间", style="yellow", no_wrap=False)
|
|
1861
|
+
table.add_column("完成时间", style="yellow", no_wrap=False)
|
|
1862
|
+
table.add_column("文件", style="blue", no_wrap=False)
|
|
1863
|
+
table.add_column("Token统计", style="magenta", no_wrap=False)
|
|
1864
|
+
table.add_column("费用", style="red", no_wrap=False)
|
|
1863
1865
|
|
|
1864
1866
|
# 添加任务数据
|
|
1865
1867
|
for task in all_tasks:
|
|
@@ -1887,17 +1889,29 @@ def active_context(query: str):
|
|
|
1887
1889
|
# 获取文件名
|
|
1888
1890
|
file_name = task.get("file_name", "未知")
|
|
1889
1891
|
|
|
1892
|
+
# 获取token信息
|
|
1893
|
+
total_tokens = task.get("total_tokens", 0)
|
|
1894
|
+
input_tokens = task.get("input_tokens", 0)
|
|
1895
|
+
output_tokens = task.get("output_tokens", 0)
|
|
1896
|
+
token_info = f"总计: {total_tokens:,}\n输入: {input_tokens:,}\n输出: {output_tokens:,}"
|
|
1897
|
+
|
|
1898
|
+
# 获取费用信息
|
|
1899
|
+
cost = task.get("cost", 0.0)
|
|
1900
|
+
cost_info = f"${cost:.6f}"
|
|
1901
|
+
|
|
1890
1902
|
# 添加到表格
|
|
1891
1903
|
table.add_row(
|
|
1892
1904
|
task.get("task_id", "未知"),
|
|
1893
1905
|
status_display,
|
|
1894
1906
|
start_time_str,
|
|
1895
1907
|
completion_time_str,
|
|
1896
|
-
file_name
|
|
1908
|
+
file_name,
|
|
1909
|
+
token_info,
|
|
1910
|
+
cost_info
|
|
1897
1911
|
)
|
|
1898
1912
|
|
|
1899
1913
|
# 显示表格
|
|
1900
|
-
console = Console()
|
|
1914
|
+
console = Console(width=120) # 设置更宽的显示宽度
|
|
1901
1915
|
console.print(table)
|
|
1902
1916
|
|
|
1903
1917
|
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
from typing import Dict, Any, Optional, Tuple, List
|
|
2
|
+
import time
|
|
3
|
+
from loguru import logger
|
|
4
|
+
import byzerllm
|
|
5
|
+
from byzerllm import MetaHolder
|
|
6
|
+
from autocoder.utils import llms
|
|
7
|
+
from autocoder.events.event_manager_singleton import get_event_manager
|
|
8
|
+
from autocoder.events import event_content as EventContentCreator
|
|
9
|
+
from pydantic import BaseModel, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TokenUsageStats(BaseModel):
|
|
13
|
+
"""Token使用统计数据模型"""
|
|
14
|
+
input_tokens: int = Field(default=0, description="输入的token数量")
|
|
15
|
+
output_tokens: int = Field(default=0, description="输出的token数量")
|
|
16
|
+
input_cost: float = Field(default=0.0, description="输入token的成本")
|
|
17
|
+
output_cost: float = Field(default=0.0, description="输出token的成本")
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def total_tokens(self) -> int:
|
|
21
|
+
"""总token数"""
|
|
22
|
+
return self.input_tokens + self.output_tokens
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def total_cost(self) -> float:
|
|
26
|
+
"""总成本"""
|
|
27
|
+
return self.input_cost + self.output_cost
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TokenCostCalculator:
|
|
31
|
+
"""
|
|
32
|
+
Token计费计算器 - 提供获取模型信息、计算token成本和记录token统计信息的公共功能
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
def __init__(self, logger_name: str = "TokenCostCalculator"):
|
|
36
|
+
"""
|
|
37
|
+
初始化Token计费计算器
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
logger_name: logger名称,默认为TokenCostCalculator
|
|
41
|
+
"""
|
|
42
|
+
self.logger = logger.bind(name=logger_name)
|
|
43
|
+
|
|
44
|
+
def get_model_info(self, llm: byzerllm.ByzerLLM,product_mode:str="lite") -> Tuple[str, Dict[str, Dict[str, float]]]:
|
|
45
|
+
"""
|
|
46
|
+
获取模型名称和价格信息
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
llm: ByzerLLM实例
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
Tuple[str, Dict]: 模型名称字符串和价格信息字典
|
|
53
|
+
"""
|
|
54
|
+
# 获取模型名称列表
|
|
55
|
+
model_names = llms.get_llm_names(llm)
|
|
56
|
+
model_name = ",".join(model_names)
|
|
57
|
+
|
|
58
|
+
# 获取模型价格信息
|
|
59
|
+
model_info_map = {}
|
|
60
|
+
for name in model_names:
|
|
61
|
+
info = llms.get_model_info(name, product_mode)
|
|
62
|
+
if info:
|
|
63
|
+
model_info_map[name] = {
|
|
64
|
+
"input_price": info.get("input_price", 0.0),
|
|
65
|
+
"output_price": info.get("output_price", 0.0)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return model_name, model_info_map
|
|
69
|
+
|
|
70
|
+
def calculate_token_costs(self, meta_holder: MetaHolder,
|
|
71
|
+
model_info_map: Dict[str, Dict[str, float]]) -> TokenUsageStats:
|
|
72
|
+
"""
|
|
73
|
+
计算token统计和成本
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
meta_holder: MetaHolder实例
|
|
77
|
+
model_info_map: 模型价格信息字典
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
TokenUsageStats: Token使用统计数据对象
|
|
81
|
+
"""
|
|
82
|
+
stats = TokenUsageStats()
|
|
83
|
+
|
|
84
|
+
if meta_holder.get_meta():
|
|
85
|
+
meta_dict = meta_holder.get_meta()
|
|
86
|
+
stats.input_tokens = meta_dict.get("input_tokens_count", 0)
|
|
87
|
+
stats.output_tokens = meta_dict.get("generated_tokens_count", 0)
|
|
88
|
+
|
|
89
|
+
for name, info in model_info_map.items():
|
|
90
|
+
stats.input_cost += (stats.input_tokens *
|
|
91
|
+
info.get("input_price", 0.0)) / 1000000
|
|
92
|
+
stats.output_cost += (stats.output_tokens *
|
|
93
|
+
info.get("output_price", 0.0)) / 1000000
|
|
94
|
+
|
|
95
|
+
return stats
|
|
96
|
+
|
|
97
|
+
def log_event(self,
|
|
98
|
+
model_name: str,
|
|
99
|
+
operation_name: str,
|
|
100
|
+
start_time: float,
|
|
101
|
+
end_time: float,
|
|
102
|
+
stats: TokenUsageStats,
|
|
103
|
+
event_file: Optional[str] = None):
|
|
104
|
+
"""
|
|
105
|
+
记录token统计信息到日志和事件系统
|
|
106
|
+
|
|
107
|
+
Args:
|
|
108
|
+
model_name: 模型名称
|
|
109
|
+
operation_name: 操作名称,用于日志记录
|
|
110
|
+
start_time: 开始时间
|
|
111
|
+
end_time: 结束时间
|
|
112
|
+
stats: Token使用统计数据
|
|
113
|
+
event_file: 事件文件路径,如果提供则写入事件
|
|
114
|
+
"""
|
|
115
|
+
elapsed_time = end_time - start_time
|
|
116
|
+
|
|
117
|
+
# 计算token生成速度(每秒生成的token数)
|
|
118
|
+
speed = stats.output_tokens / elapsed_time if elapsed_time > 0 else 0
|
|
119
|
+
|
|
120
|
+
# 记录日志
|
|
121
|
+
self.logger.info(f"{operation_name} Stats - Model: {model_name}, "
|
|
122
|
+
f"Input Tokens: {stats.input_tokens}, "
|
|
123
|
+
f"Output Tokens: {stats.output_tokens}, "
|
|
124
|
+
f"Total Tokens: {stats.total_tokens}, "
|
|
125
|
+
f"Time: {elapsed_time:.2f}s, "
|
|
126
|
+
f"Speed: {speed:.2f}tokens/s, "
|
|
127
|
+
f"Total Cost: ${stats.total_cost:.6f}")
|
|
128
|
+
|
|
129
|
+
# 记录事件(如果提供了event_file)
|
|
130
|
+
try:
|
|
131
|
+
if event_file:
|
|
132
|
+
get_event_manager(event_file).write_result(
|
|
133
|
+
EventContentCreator.create_result(content=EventContentCreator.ResultTokenStatContent(
|
|
134
|
+
model_name=model_name,
|
|
135
|
+
elapsed_time=elapsed_time,
|
|
136
|
+
first_token_time=0, # 不跟踪首个token时间
|
|
137
|
+
input_tokens=stats.input_tokens,
|
|
138
|
+
output_tokens=stats.output_tokens,
|
|
139
|
+
input_cost=stats.input_cost,
|
|
140
|
+
output_cost=stats.output_cost,
|
|
141
|
+
speed=speed
|
|
142
|
+
).to_dict()))
|
|
143
|
+
else:
|
|
144
|
+
# 尝试使用默认事件管理器
|
|
145
|
+
get_event_manager().write_result(
|
|
146
|
+
EventContentCreator.create_result(content=EventContentCreator.ResultTokenStatContent(
|
|
147
|
+
model_name=model_name,
|
|
148
|
+
elapsed_time=elapsed_time,
|
|
149
|
+
input_tokens=stats.input_tokens,
|
|
150
|
+
output_tokens=stats.output_tokens,
|
|
151
|
+
input_cost=stats.input_cost,
|
|
152
|
+
output_cost=stats.output_cost,
|
|
153
|
+
speed=speed
|
|
154
|
+
).to_dict()))
|
|
155
|
+
except Exception as e:
|
|
156
|
+
self.logger.error(f"Error writing event for {operation_name}: {e}")
|
|
157
|
+
|
|
158
|
+
def track_token_usage(self,
|
|
159
|
+
llm: byzerllm.ByzerLLM,
|
|
160
|
+
meta_holder: MetaHolder,
|
|
161
|
+
operation_name: str,
|
|
162
|
+
start_time: float,
|
|
163
|
+
end_time: float,
|
|
164
|
+
product_mode: Optional[str] = None,
|
|
165
|
+
event_file: Optional[str] = None) -> TokenUsageStats:
|
|
166
|
+
"""
|
|
167
|
+
跟踪token使用情况的便捷方法,整合了获取模型信息、计算成本和记录统计的功能
|
|
168
|
+
|
|
169
|
+
Args:
|
|
170
|
+
llm: ByzerLLM实例
|
|
171
|
+
meta_holder: MetaHolder实例
|
|
172
|
+
operation_name: 操作名称
|
|
173
|
+
start_time: 开始时间
|
|
174
|
+
end_time: 结束时间
|
|
175
|
+
product_mode: 产品模式,如果不提供则使用实例的product_mode
|
|
176
|
+
event_file: 事件文件路径
|
|
177
|
+
|
|
178
|
+
Returns:
|
|
179
|
+
TokenUsageStats: Token使用统计数据对象
|
|
180
|
+
"""
|
|
181
|
+
# 使用传入的product_mode或实例的product_mode
|
|
182
|
+
actual_product_mode = product_mode
|
|
183
|
+
|
|
184
|
+
# 获取模型信息
|
|
185
|
+
model_name, model_info_map = self.get_model_info(llm,actual_product_mode)
|
|
186
|
+
|
|
187
|
+
# 计算token统计和成本
|
|
188
|
+
stats = self.calculate_token_costs(meta_holder, model_info_map)
|
|
189
|
+
|
|
190
|
+
# 记录事件
|
|
191
|
+
self.log_event(
|
|
192
|
+
model_name=model_name,
|
|
193
|
+
operation_name=operation_name,
|
|
194
|
+
start_time=start_time,
|
|
195
|
+
end_time=end_time,
|
|
196
|
+
stats=stats,
|
|
197
|
+
event_file=event_file
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
return stats
|