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.
- auto_coder-0.1.400.dist-info/METADATA +396 -0
- {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/RECORD +82 -29
- {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/WHEEL +1 -1
- {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info}/entry_points.txt +2 -0
- autocoder/agent/base_agentic/base_agent.py +2 -2
- autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +1 -1
- autocoder/agent/entry_command_agent/__init__.py +29 -0
- autocoder/agent/entry_command_agent/auto_tool.py +61 -0
- autocoder/agent/entry_command_agent/chat.py +475 -0
- autocoder/agent/entry_command_agent/designer.py +53 -0
- autocoder/agent/entry_command_agent/generate_command.py +50 -0
- autocoder/agent/entry_command_agent/project_reader.py +58 -0
- autocoder/agent/entry_command_agent/voice2text.py +71 -0
- autocoder/auto_coder.py +23 -548
- autocoder/auto_coder_runner.py +511 -8
- autocoder/chat/rules_command.py +1 -1
- autocoder/chat_auto_coder.py +6 -1
- autocoder/common/ac_style_command_parser/__init__.py +15 -0
- autocoder/common/ac_style_command_parser/example.py +7 -0
- autocoder/{command_parser.py → common/ac_style_command_parser/parser.py} +28 -45
- autocoder/common/ac_style_command_parser/test_parser.py +516 -0
- autocoder/common/auto_coder_lang.py +78 -0
- autocoder/common/command_completer_v2.py +1 -1
- autocoder/common/command_file_manager/examples.py +22 -8
- autocoder/common/command_file_manager/manager.py +37 -6
- autocoder/common/conversations/get_conversation_manager.py +143 -0
- autocoder/common/conversations/manager.py +122 -11
- autocoder/common/conversations/storage/index_manager.py +89 -0
- autocoder/common/pull_requests/__init__.py +256 -0
- autocoder/common/pull_requests/base_provider.py +191 -0
- autocoder/common/pull_requests/config.py +66 -0
- autocoder/common/pull_requests/example.py +1 -0
- autocoder/common/pull_requests/exceptions.py +46 -0
- autocoder/common/pull_requests/manager.py +201 -0
- autocoder/common/pull_requests/models.py +164 -0
- autocoder/common/pull_requests/providers/__init__.py +23 -0
- autocoder/common/pull_requests/providers/gitcode_provider.py +19 -0
- autocoder/common/pull_requests/providers/gitee_provider.py +20 -0
- autocoder/common/pull_requests/providers/github_provider.py +214 -0
- autocoder/common/pull_requests/providers/gitlab_provider.py +29 -0
- autocoder/common/pull_requests/test_module.py +1 -0
- autocoder/common/pull_requests/utils.py +344 -0
- autocoder/common/tokens/__init__.py +62 -0
- autocoder/common/tokens/counter.py +211 -0
- autocoder/common/tokens/file_detector.py +105 -0
- autocoder/common/tokens/filters.py +111 -0
- autocoder/common/tokens/models.py +28 -0
- autocoder/common/v2/agent/agentic_edit.py +312 -85
- autocoder/common/v2/agent/agentic_edit_types.py +11 -0
- autocoder/common/v2/code_auto_generate_editblock.py +10 -2
- autocoder/dispacher/__init__.py +10 -0
- autocoder/rags.py +0 -27
- autocoder/run_context.py +1 -0
- autocoder/sdk/__init__.py +188 -0
- autocoder/sdk/cli/__init__.py +15 -0
- autocoder/sdk/cli/__main__.py +26 -0
- autocoder/sdk/cli/completion_wrapper.py +38 -0
- autocoder/sdk/cli/formatters.py +211 -0
- autocoder/sdk/cli/handlers.py +175 -0
- autocoder/sdk/cli/install_completion.py +301 -0
- autocoder/sdk/cli/main.py +286 -0
- autocoder/sdk/cli/options.py +73 -0
- autocoder/sdk/constants.py +102 -0
- autocoder/sdk/core/__init__.py +20 -0
- autocoder/sdk/core/auto_coder_core.py +880 -0
- autocoder/sdk/core/bridge.py +500 -0
- autocoder/sdk/example.py +0 -0
- autocoder/sdk/exceptions.py +72 -0
- autocoder/sdk/models/__init__.py +19 -0
- autocoder/sdk/models/messages.py +209 -0
- autocoder/sdk/models/options.py +196 -0
- autocoder/sdk/models/responses.py +311 -0
- autocoder/sdk/session/__init__.py +32 -0
- autocoder/sdk/session/session.py +106 -0
- autocoder/sdk/session/session_manager.py +56 -0
- autocoder/sdk/utils/__init__.py +24 -0
- autocoder/sdk/utils/formatters.py +216 -0
- autocoder/sdk/utils/io_utils.py +302 -0
- autocoder/sdk/utils/validators.py +287 -0
- autocoder/version.py +2 -1
- auto_coder-0.1.398.dist-info/METADATA +0 -111
- autocoder/common/conversations/compatibility.py +0 -303
- autocoder/common/conversations/conversation_manager.py +0 -502
- autocoder/common/conversations/example.py +0 -152
- {auto_coder-0.1.398.dist-info → auto_coder-0.1.400.dist-info/licenses}/LICENSE +0 -0
- {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
|
+
|