auto-coder 0.1.400__py3-none-any.whl → 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of auto-coder might be problematic. Click here for more details.
- {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/METADATA +1 -1
- {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/RECORD +48 -31
- autocoder/agent/agentic_filter.py +1 -1
- autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +1 -1
- autocoder/auto_coder_runner.py +120 -26
- autocoder/chat_auto_coder.py +81 -22
- autocoder/commands/auto_command.py +1 -1
- autocoder/common/__init__.py +2 -2
- autocoder/common/file_monitor/test_file_monitor.py +307 -0
- autocoder/common/git_utils.py +7 -2
- autocoder/common/pruner/__init__.py +0 -0
- autocoder/common/pruner/agentic_conversation_pruner.py +197 -0
- autocoder/common/pruner/context_pruner.py +574 -0
- autocoder/common/pruner/conversation_pruner.py +132 -0
- autocoder/common/pruner/test_agentic_conversation_pruner.py +342 -0
- autocoder/common/pruner/test_context_pruner.py +546 -0
- autocoder/common/tokens/__init__.py +15 -0
- autocoder/common/tokens/counter.py +20 -0
- autocoder/common/v2/agent/agentic_edit.py +372 -538
- autocoder/common/v2/agent/agentic_edit_tools/__init__.py +8 -1
- autocoder/common/v2/agent/agentic_edit_tools/ac_mod_read_tool_resolver.py +40 -0
- autocoder/common/v2/agent/agentic_edit_tools/ac_mod_write_tool_resolver.py +43 -0
- autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +8 -0
- autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +1 -1
- autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +1 -1
- autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +33 -88
- autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +8 -8
- autocoder/common/v2/agent/agentic_edit_tools/todo_read_tool_resolver.py +118 -0
- autocoder/common/v2/agent/agentic_edit_tools/todo_write_tool_resolver.py +324 -0
- autocoder/common/v2/agent/agentic_edit_types.py +46 -4
- autocoder/common/v2/agent/runner/__init__.py +31 -0
- autocoder/common/v2/agent/runner/base_runner.py +106 -0
- autocoder/common/v2/agent/runner/event_runner.py +216 -0
- autocoder/common/v2/agent/runner/sdk_runner.py +40 -0
- autocoder/common/v2/agent/runner/terminal_runner.py +283 -0
- autocoder/common/v2/agent/runner/tool_display.py +191 -0
- autocoder/index/entry.py +1 -1
- autocoder/plugins/token_helper_plugin.py +107 -7
- autocoder/run_context.py +9 -0
- autocoder/sdk/__init__.py +114 -81
- autocoder/sdk/cli/main.py +5 -0
- autocoder/sdk/core/auto_coder_core.py +0 -158
- autocoder/sdk/core/bridge.py +2 -4
- autocoder/version.py +1 -1
- {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/WHEEL +0 -0
- {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/entry_points.txt +0 -0
- {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/licenses/LICENSE +0 -0
- {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -651,165 +651,7 @@ class AutoCoderCore:
|
|
|
651
651
|
self._print_final_token_usage()
|
|
652
652
|
|
|
653
653
|
raise e
|
|
654
|
-
|
|
655
|
-
def modify_code(
|
|
656
|
-
self,
|
|
657
|
-
prompt: str,
|
|
658
|
-
pre_commit: bool = False,
|
|
659
|
-
pr: Optional[bool] = None,
|
|
660
|
-
extra_args: Optional[Dict[str, Any]] = None,
|
|
661
|
-
show_terminal: bool = True
|
|
662
|
-
) -> CodeModificationResult:
|
|
663
|
-
"""
|
|
664
|
-
代码修改接口 - 直接使用 run_auto_command
|
|
665
|
-
|
|
666
|
-
Args:
|
|
667
|
-
prompt: 修改提示
|
|
668
|
-
pre_commit: 是否预提交
|
|
669
|
-
pr: 是否创建 PR,如果为None则使用配置中的值
|
|
670
|
-
extra_args: 额外参数
|
|
671
|
-
show_terminal: 是否显示到终端
|
|
672
|
-
|
|
673
|
-
Returns:
|
|
674
|
-
CodeModificationResult: 修改结果
|
|
675
|
-
"""
|
|
676
|
-
try:
|
|
677
|
-
# 重置累计的 token 使用情况
|
|
678
|
-
self._reset_token_usage()
|
|
679
|
-
|
|
680
|
-
event_stream = self._sync_run_auto_command(
|
|
681
|
-
prompt,
|
|
682
|
-
pre_commit=pre_commit,
|
|
683
|
-
pr=pr,
|
|
684
|
-
extra_args=extra_args
|
|
685
|
-
)
|
|
686
|
-
|
|
687
|
-
# 分析事件流,提取修改结果
|
|
688
|
-
modified_files = []
|
|
689
|
-
created_files = []
|
|
690
|
-
deleted_files = []
|
|
691
|
-
messages = []
|
|
692
|
-
success = True
|
|
693
|
-
error_details = None
|
|
694
|
-
|
|
695
|
-
for event in event_stream:
|
|
696
|
-
# 渲染事件到终端
|
|
697
|
-
self._render_stream_event(event, show_terminal)
|
|
698
|
-
|
|
699
|
-
if event.event_type == "content":
|
|
700
|
-
messages.append(event.data.get("content", ""))
|
|
701
|
-
elif event.event_type == "error":
|
|
702
|
-
success = False
|
|
703
|
-
error_details = event.data.get("error", "Unknown error")
|
|
704
|
-
elif event.event_type == "file_modified":
|
|
705
|
-
modified_files.extend(event.data.get("files", []))
|
|
706
|
-
elif event.event_type == "file_created":
|
|
707
|
-
created_files.extend(event.data.get("files", []))
|
|
708
|
-
elif event.event_type == "file_deleted":
|
|
709
|
-
deleted_files.extend(event.data.get("files", []))
|
|
710
|
-
|
|
711
|
-
# 添加小延迟以改善视觉效果
|
|
712
|
-
if show_terminal:
|
|
713
|
-
time.sleep(0.05)
|
|
714
|
-
|
|
715
|
-
# 打印最终的累计 token 使用情况
|
|
716
|
-
if show_terminal:
|
|
717
|
-
self._print_final_token_usage()
|
|
718
|
-
|
|
719
|
-
return CodeModificationResult(
|
|
720
|
-
success=success,
|
|
721
|
-
message="".join(messages),
|
|
722
|
-
modified_files=modified_files,
|
|
723
|
-
created_files=created_files,
|
|
724
|
-
deleted_files=deleted_files,
|
|
725
|
-
error_details=error_details,
|
|
726
|
-
metadata={
|
|
727
|
-
"pre_commit": pre_commit,
|
|
728
|
-
"extra_args": extra_args or {}
|
|
729
|
-
}
|
|
730
|
-
)
|
|
731
|
-
|
|
732
|
-
except Exception as e:
|
|
733
|
-
# 在异常时也打印累计的 token 使用情况
|
|
734
|
-
if show_terminal:
|
|
735
|
-
self._print_final_token_usage()
|
|
736
|
-
self._console.print(Panel(
|
|
737
|
-
f"[bold red]FATAL ERROR:[/bold red]\n{str(e)}",
|
|
738
|
-
title="🔥 System Error",
|
|
739
|
-
border_style="red"
|
|
740
|
-
))
|
|
741
|
-
return CodeModificationResult(
|
|
742
|
-
success=False,
|
|
743
|
-
message="",
|
|
744
|
-
error_details=str(e),
|
|
745
|
-
metadata={"exception_type": type(e).__name__}
|
|
746
|
-
)
|
|
747
|
-
|
|
748
|
-
async def modify_code_stream(
|
|
749
|
-
self,
|
|
750
|
-
prompt: str,
|
|
751
|
-
pre_commit: bool = False,
|
|
752
|
-
pr: Optional[bool] = None,
|
|
753
|
-
extra_args: Optional[Dict[str, Any]] = None,
|
|
754
|
-
show_terminal: bool = True
|
|
755
|
-
) -> AsyncIterator[StreamEvent]:
|
|
756
|
-
"""
|
|
757
|
-
异步流式代码修改接口
|
|
758
654
|
|
|
759
|
-
Args:
|
|
760
|
-
prompt: 修改提示
|
|
761
|
-
pre_commit: 是否预提交
|
|
762
|
-
pr: 是否创建 PR,如果为None则使用配置中的值
|
|
763
|
-
extra_args: 额外参数
|
|
764
|
-
show_terminal: 是否显示到终端
|
|
765
|
-
|
|
766
|
-
Yields:
|
|
767
|
-
StreamEvent: 修改事件流
|
|
768
|
-
"""
|
|
769
|
-
try:
|
|
770
|
-
# 重置累计的 token 使用情况
|
|
771
|
-
self._reset_token_usage()
|
|
772
|
-
|
|
773
|
-
loop = asyncio.get_event_loop()
|
|
774
|
-
|
|
775
|
-
# 在线程池中执行同步调用
|
|
776
|
-
event_stream = await loop.run_in_executor(
|
|
777
|
-
self._executor,
|
|
778
|
-
self._sync_run_auto_command,
|
|
779
|
-
prompt,
|
|
780
|
-
pre_commit,
|
|
781
|
-
pr,
|
|
782
|
-
extra_args
|
|
783
|
-
)
|
|
784
|
-
|
|
785
|
-
# 处理并转发事件流
|
|
786
|
-
for event in event_stream:
|
|
787
|
-
# 渲染事件到终端
|
|
788
|
-
self._render_stream_event(event, show_terminal)
|
|
789
|
-
|
|
790
|
-
# 转发事件
|
|
791
|
-
yield event
|
|
792
|
-
|
|
793
|
-
# 添加小延迟以改善视觉效果
|
|
794
|
-
if show_terminal:
|
|
795
|
-
time.sleep(0.05)
|
|
796
|
-
|
|
797
|
-
# 打印最终的累计 token 使用情况
|
|
798
|
-
if show_terminal:
|
|
799
|
-
self._print_final_token_usage()
|
|
800
|
-
|
|
801
|
-
except Exception as e:
|
|
802
|
-
# 在异常时也打印累计的 token 使用情况
|
|
803
|
-
if show_terminal:
|
|
804
|
-
self._print_final_token_usage()
|
|
805
|
-
|
|
806
|
-
error_event = StreamEvent(
|
|
807
|
-
event_type="error",
|
|
808
|
-
data={"error": str(e), "error_type": type(e).__name__}
|
|
809
|
-
)
|
|
810
|
-
self._render_stream_event(error_event, show_terminal)
|
|
811
|
-
yield error_event
|
|
812
|
-
|
|
813
655
|
def _sync_run_auto_command(
|
|
814
656
|
self,
|
|
815
657
|
prompt: str,
|
autocoder/sdk/core/bridge.py
CHANGED
|
@@ -56,10 +56,8 @@ class AutoCoderBridge:
|
|
|
56
56
|
pass
|
|
57
57
|
|
|
58
58
|
def init_project_if_required(self):
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
["auto-coder", "init", "--source_dir", "."], check=True
|
|
62
|
-
)
|
|
59
|
+
from autocoder.auto_coder_runner import init_project_if_required as init_project_if_required_buildin
|
|
60
|
+
init_project_if_required_buildin(self.project_root,".py,.ts")
|
|
63
61
|
|
|
64
62
|
def call_run_auto_command(
|
|
65
63
|
self,
|
autocoder/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "0.
|
|
1
|
+
__version__ = "1.0.0"
|
|
2
2
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|