auto-coder 0.1.398__py3-none-any.whl → 0.1.400__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 (86) hide show
  1. auto_coder-0.1.400.dist-info/METADATA +396 -0
  2. {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/RECORD +82 -29
  3. {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/WHEEL +1 -1
  4. {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/entry_points.txt +2 -0
  5. autocoder/agent/base_agentic/base_agent.py +2 -2
  6. autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +1 -1
  7. autocoder/agent/entry_command_agent/__init__.py +29 -0
  8. autocoder/agent/entry_command_agent/auto_tool.py +61 -0
  9. autocoder/agent/entry_command_agent/chat.py +475 -0
  10. autocoder/agent/entry_command_agent/designer.py +53 -0
  11. autocoder/agent/entry_command_agent/generate_command.py +50 -0
  12. autocoder/agent/entry_command_agent/project_reader.py +58 -0
  13. autocoder/agent/entry_command_agent/voice2text.py +71 -0
  14. autocoder/auto_coder.py +23 -548
  15. autocoder/auto_coder_runner.py +511 -8
  16. autocoder/chat/rules_command.py +1 -1
  17. autocoder/chat_auto_coder.py +6 -1
  18. autocoder/common/ac_style_command_parser/__init__.py +15 -0
  19. autocoder/common/ac_style_command_parser/example.py +7 -0
  20. autocoder/{command_parser.py → common/ac_style_command_parser/parser.py} +28 -45
  21. autocoder/common/ac_style_command_parser/test_parser.py +516 -0
  22. autocoder/common/auto_coder_lang.py +78 -0
  23. autocoder/common/command_completer_v2.py +1 -1
  24. autocoder/common/command_file_manager/examples.py +22 -8
  25. autocoder/common/command_file_manager/manager.py +37 -6
  26. autocoder/common/conversations/get_conversation_manager.py +143 -0
  27. autocoder/common/conversations/manager.py +122 -11
  28. autocoder/common/conversations/storage/index_manager.py +89 -0
  29. autocoder/common/pull_requests/__init__.py +256 -0
  30. autocoder/common/pull_requests/base_provider.py +191 -0
  31. autocoder/common/pull_requests/config.py +66 -0
  32. autocoder/common/pull_requests/example.py +1 -0
  33. autocoder/common/pull_requests/exceptions.py +46 -0
  34. autocoder/common/pull_requests/manager.py +201 -0
  35. autocoder/common/pull_requests/models.py +164 -0
  36. autocoder/common/pull_requests/providers/__init__.py +23 -0
  37. autocoder/common/pull_requests/providers/gitcode_provider.py +19 -0
  38. autocoder/common/pull_requests/providers/gitee_provider.py +20 -0
  39. autocoder/common/pull_requests/providers/github_provider.py +214 -0
  40. autocoder/common/pull_requests/providers/gitlab_provider.py +29 -0
  41. autocoder/common/pull_requests/test_module.py +1 -0
  42. autocoder/common/pull_requests/utils.py +344 -0
  43. autocoder/common/tokens/__init__.py +62 -0
  44. autocoder/common/tokens/counter.py +211 -0
  45. autocoder/common/tokens/file_detector.py +105 -0
  46. autocoder/common/tokens/filters.py +111 -0
  47. autocoder/common/tokens/models.py +28 -0
  48. autocoder/common/v2/agent/agentic_edit.py +312 -85
  49. autocoder/common/v2/agent/agentic_edit_types.py +11 -0
  50. autocoder/common/v2/code_auto_generate_editblock.py +10 -2
  51. autocoder/dispacher/__init__.py +10 -0
  52. autocoder/rags.py +0 -27
  53. autocoder/run_context.py +1 -0
  54. autocoder/sdk/__init__.py +188 -0
  55. autocoder/sdk/cli/__init__.py +15 -0
  56. autocoder/sdk/cli/__main__.py +26 -0
  57. autocoder/sdk/cli/completion_wrapper.py +38 -0
  58. autocoder/sdk/cli/formatters.py +211 -0
  59. autocoder/sdk/cli/handlers.py +175 -0
  60. autocoder/sdk/cli/install_completion.py +301 -0
  61. autocoder/sdk/cli/main.py +286 -0
  62. autocoder/sdk/cli/options.py +73 -0
  63. autocoder/sdk/constants.py +102 -0
  64. autocoder/sdk/core/__init__.py +20 -0
  65. autocoder/sdk/core/auto_coder_core.py +880 -0
  66. autocoder/sdk/core/bridge.py +500 -0
  67. autocoder/sdk/example.py +0 -0
  68. autocoder/sdk/exceptions.py +72 -0
  69. autocoder/sdk/models/__init__.py +19 -0
  70. autocoder/sdk/models/messages.py +209 -0
  71. autocoder/sdk/models/options.py +196 -0
  72. autocoder/sdk/models/responses.py +311 -0
  73. autocoder/sdk/session/__init__.py +32 -0
  74. autocoder/sdk/session/session.py +106 -0
  75. autocoder/sdk/session/session_manager.py +56 -0
  76. autocoder/sdk/utils/__init__.py +24 -0
  77. autocoder/sdk/utils/formatters.py +216 -0
  78. autocoder/sdk/utils/io_utils.py +302 -0
  79. autocoder/sdk/utils/validators.py +287 -0
  80. autocoder/version.py +2 -1
  81. auto_coder-0.1.398.dist-info/METADATA +0 -111
  82. autocoder/common/conversations/compatibility.py +0 -303
  83. autocoder/common/conversations/conversation_manager.py +0 -502
  84. autocoder/common/conversations/example.py +0 -152
  85. {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info/licenses}/LICENSE +0 -0
  86. {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,58 @@
1
+
2
+
3
+ import os
4
+ from rich.console import Console
5
+ from rich.panel import Panel
6
+ from rich.markdown import Markdown
7
+ from rich.live import Live
8
+
9
+ from autocoder.privacy.model_filter import ModelPathFilter
10
+ from autocoder.common.printer import Printer
11
+ from autocoder.utils.llms import get_llm_names
12
+
13
+
14
+ class ProjectReaderAgent:
15
+ def __init__(self, args, llm, raw_args):
16
+ self.args = args
17
+ self.llm = llm
18
+ self.raw_args = raw_args
19
+ self.console = Console()
20
+
21
+ def run(self):
22
+ """执行 project_reader 命令的主要逻辑"""
23
+ target_llm = self.llm.get_sub_client("planner_model")
24
+ if not target_llm:
25
+ target_llm = self.llm
26
+
27
+ model_filter = ModelPathFilter.from_model_object(target_llm, self.args)
28
+ if model_filter.has_rules():
29
+ printer = Printer()
30
+ msg = printer.get_message_from_key_with_format(
31
+ "model_has_access_restrictions",
32
+ model_name=",".join(get_llm_names(target_llm))
33
+ )
34
+ raise ValueError(msg)
35
+
36
+ from autocoder.agent.project_reader import ProjectReader
37
+
38
+ project_reader = ProjectReader(self.args, self.llm)
39
+ v = project_reader.run(self.args.query)
40
+
41
+ markdown_content = v
42
+
43
+ with Live(
44
+ Panel("", title="Response", border_style="green", expand=False),
45
+ refresh_per_second=4,
46
+ auto_refresh=True,
47
+ vertical_overflow="visible",
48
+ console=Console(force_terminal=True, color_system="auto", height=None)
49
+ ) as live:
50
+ live.update(
51
+ Panel(
52
+ Markdown(markdown_content),
53
+ title="Response",
54
+ border_style="green",
55
+ expand=False,
56
+ )
57
+ )
58
+
@@ -0,0 +1,71 @@
1
+
2
+
3
+
4
+ import os
5
+ import tempfile
6
+ from rich.console import Console
7
+ from rich.panel import Panel
8
+
9
+ from autocoder.utils.request_queue import (
10
+ request_queue,
11
+ RequestValue,
12
+ DefaultValue,
13
+ RequestOption,
14
+ )
15
+
16
+
17
+ class Voice2TextAgent:
18
+ def __init__(self, args, llm, raw_args):
19
+ self.args = args
20
+ self.llm = llm
21
+ self.raw_args = raw_args
22
+ self.console = Console()
23
+
24
+ def run(self):
25
+ """执行 voice2text 命令的主要逻辑"""
26
+ from autocoder.common.audio import TranscribeAudio
27
+
28
+ transcribe_audio = TranscribeAudio()
29
+ temp_wav_file = os.path.join(
30
+ tempfile.gettempdir(), "voice_input.wav")
31
+
32
+ transcribe_audio.record_audio(temp_wav_file)
33
+ self.console.print(
34
+ Panel(
35
+ "Recording finished. Transcribing...",
36
+ title="Voice",
37
+ border_style="green",
38
+ )
39
+ )
40
+
41
+ if self.llm and self.llm.get_sub_client("voice2text_model"):
42
+ voice2text_llm = self.llm.get_sub_client("voice2text_model")
43
+ else:
44
+ voice2text_llm = self.llm
45
+
46
+ transcription = transcribe_audio.transcribe_audio(
47
+ temp_wav_file, voice2text_llm
48
+ )
49
+
50
+ self.console.print(
51
+ Panel(
52
+ f"Transcription: <_transcription_>{transcription}</_transcription_>",
53
+ title="Result",
54
+ border_style="magenta",
55
+ )
56
+ )
57
+
58
+ with open(os.path.join(".auto-coder", "exchange.txt"), "w", encoding="utf-8") as f:
59
+ f.write(transcription)
60
+
61
+ request_queue.add_request(
62
+ self.args.request_id,
63
+ RequestValue(
64
+ value=DefaultValue(value=transcription),
65
+ status=RequestOption.COMPLETED,
66
+ ),
67
+ )
68
+
69
+ os.remove(temp_wav_file)
70
+
71
+