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.

Files changed (48) hide show
  1. {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/METADATA +1 -1
  2. {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/RECORD +48 -31
  3. autocoder/agent/agentic_filter.py +1 -1
  4. autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +1 -1
  5. autocoder/auto_coder_runner.py +120 -26
  6. autocoder/chat_auto_coder.py +81 -22
  7. autocoder/commands/auto_command.py +1 -1
  8. autocoder/common/__init__.py +2 -2
  9. autocoder/common/file_monitor/test_file_monitor.py +307 -0
  10. autocoder/common/git_utils.py +7 -2
  11. autocoder/common/pruner/__init__.py +0 -0
  12. autocoder/common/pruner/agentic_conversation_pruner.py +197 -0
  13. autocoder/common/pruner/context_pruner.py +574 -0
  14. autocoder/common/pruner/conversation_pruner.py +132 -0
  15. autocoder/common/pruner/test_agentic_conversation_pruner.py +342 -0
  16. autocoder/common/pruner/test_context_pruner.py +546 -0
  17. autocoder/common/tokens/__init__.py +15 -0
  18. autocoder/common/tokens/counter.py +20 -0
  19. autocoder/common/v2/agent/agentic_edit.py +372 -538
  20. autocoder/common/v2/agent/agentic_edit_tools/__init__.py +8 -1
  21. autocoder/common/v2/agent/agentic_edit_tools/ac_mod_read_tool_resolver.py +40 -0
  22. autocoder/common/v2/agent/agentic_edit_tools/ac_mod_write_tool_resolver.py +43 -0
  23. autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +8 -0
  24. autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +1 -1
  25. autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +1 -1
  26. autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +33 -88
  27. autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +8 -8
  28. autocoder/common/v2/agent/agentic_edit_tools/todo_read_tool_resolver.py +118 -0
  29. autocoder/common/v2/agent/agentic_edit_tools/todo_write_tool_resolver.py +324 -0
  30. autocoder/common/v2/agent/agentic_edit_types.py +46 -4
  31. autocoder/common/v2/agent/runner/__init__.py +31 -0
  32. autocoder/common/v2/agent/runner/base_runner.py +106 -0
  33. autocoder/common/v2/agent/runner/event_runner.py +216 -0
  34. autocoder/common/v2/agent/runner/sdk_runner.py +40 -0
  35. autocoder/common/v2/agent/runner/terminal_runner.py +283 -0
  36. autocoder/common/v2/agent/runner/tool_display.py +191 -0
  37. autocoder/index/entry.py +1 -1
  38. autocoder/plugins/token_helper_plugin.py +107 -7
  39. autocoder/run_context.py +9 -0
  40. autocoder/sdk/__init__.py +114 -81
  41. autocoder/sdk/cli/main.py +5 -0
  42. autocoder/sdk/core/auto_coder_core.py +0 -158
  43. autocoder/sdk/core/bridge.py +2 -4
  44. autocoder/version.py +1 -1
  45. {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/WHEEL +0 -0
  46. {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/entry_points.txt +0 -0
  47. {auto_coder-0.1.400.dist-info → auto_coder-1.0.0.dist-info}/licenses/LICENSE +0 -0
  48. {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,
@@ -56,10 +56,8 @@ class AutoCoderBridge:
56
56
  pass
57
57
 
58
58
  def init_project_if_required(self):
59
- if not os.path.exists(".auto-coder") or not os.path.exists("actions"):
60
- subprocess.run(
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.400"
1
+ __version__ = "1.0.0"
2
2