chatmcp-cli 0.1.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.
- aider/__init__.py +20 -0
- aider/__main__.py +4 -0
- aider/_version.py +21 -0
- aider/analytics.py +250 -0
- aider/args.py +926 -0
- aider/args_formatter.py +228 -0
- aider/coders/__init__.py +34 -0
- aider/coders/architect_coder.py +48 -0
- aider/coders/architect_prompts.py +40 -0
- aider/coders/ask_coder.py +9 -0
- aider/coders/ask_prompts.py +35 -0
- aider/coders/base_coder.py +2483 -0
- aider/coders/base_prompts.py +60 -0
- aider/coders/chat_chunks.py +64 -0
- aider/coders/context_coder.py +53 -0
- aider/coders/context_prompts.py +75 -0
- aider/coders/editblock_coder.py +657 -0
- aider/coders/editblock_fenced_coder.py +10 -0
- aider/coders/editblock_fenced_prompts.py +143 -0
- aider/coders/editblock_func_coder.py +141 -0
- aider/coders/editblock_func_prompts.py +27 -0
- aider/coders/editblock_prompts.py +174 -0
- aider/coders/editor_diff_fenced_coder.py +9 -0
- aider/coders/editor_diff_fenced_prompts.py +11 -0
- aider/coders/editor_editblock_coder.py +8 -0
- aider/coders/editor_editblock_prompts.py +18 -0
- aider/coders/editor_whole_coder.py +8 -0
- aider/coders/editor_whole_prompts.py +10 -0
- aider/coders/help_coder.py +16 -0
- aider/coders/help_prompts.py +46 -0
- aider/coders/patch_coder.py +706 -0
- aider/coders/patch_prompts.py +161 -0
- aider/coders/search_replace.py +757 -0
- aider/coders/shell.py +37 -0
- aider/coders/single_wholefile_func_coder.py +102 -0
- aider/coders/single_wholefile_func_prompts.py +27 -0
- aider/coders/udiff_coder.py +429 -0
- aider/coders/udiff_prompts.py +115 -0
- aider/coders/udiff_simple.py +14 -0
- aider/coders/udiff_simple_prompts.py +25 -0
- aider/coders/wholefile_coder.py +144 -0
- aider/coders/wholefile_func_coder.py +134 -0
- aider/coders/wholefile_func_prompts.py +27 -0
- aider/coders/wholefile_prompts.py +67 -0
- aider/commands.py +1665 -0
- aider/copypaste.py +72 -0
- aider/deprecated.py +126 -0
- aider/diffs.py +128 -0
- aider/dump.py +29 -0
- aider/editor.py +147 -0
- aider/exceptions.py +107 -0
- aider/format_settings.py +26 -0
- aider/gui.py +545 -0
- aider/help.py +163 -0
- aider/help_pats.py +19 -0
- aider/history.py +143 -0
- aider/io.py +1175 -0
- aider/linter.py +304 -0
- aider/llm.py +47 -0
- aider/main.py +1267 -0
- aider/mdstream.py +243 -0
- aider/models.py +1286 -0
- aider/onboarding.py +428 -0
- aider/openrouter.py +128 -0
- aider/prompts.py +64 -0
- aider/queries/tree-sitter-language-pack/README.md +7 -0
- aider/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
- aider/queries/tree-sitter-language-pack/c-tags.scm +9 -0
- aider/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
- aider/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
- aider/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
- aider/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
- aider/queries/tree-sitter-language-pack/d-tags.scm +26 -0
- aider/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
- aider/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
- aider/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
- aider/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
- aider/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
- aider/queries/tree-sitter-language-pack/go-tags.scm +42 -0
- aider/queries/tree-sitter-language-pack/java-tags.scm +20 -0
- aider/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
- aider/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
- aider/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
- aider/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
- aider/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
- aider/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
- aider/queries/tree-sitter-language-pack/python-tags.scm +14 -0
- aider/queries/tree-sitter-language-pack/r-tags.scm +21 -0
- aider/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
- aider/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
- aider/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
- aider/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
- aider/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
- aider/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
- aider/queries/tree-sitter-languages/README.md +23 -0
- aider/queries/tree-sitter-languages/c-tags.scm +9 -0
- aider/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
- aider/queries/tree-sitter-languages/cpp-tags.scm +15 -0
- aider/queries/tree-sitter-languages/dart-tags.scm +91 -0
- aider/queries/tree-sitter-languages/elisp-tags.scm +8 -0
- aider/queries/tree-sitter-languages/elixir-tags.scm +54 -0
- aider/queries/tree-sitter-languages/elm-tags.scm +19 -0
- aider/queries/tree-sitter-languages/go-tags.scm +30 -0
- aider/queries/tree-sitter-languages/hcl-tags.scm +77 -0
- aider/queries/tree-sitter-languages/java-tags.scm +20 -0
- aider/queries/tree-sitter-languages/javascript-tags.scm +88 -0
- aider/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
- aider/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
- aider/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
- aider/queries/tree-sitter-languages/php-tags.scm +26 -0
- aider/queries/tree-sitter-languages/python-tags.scm +12 -0
- aider/queries/tree-sitter-languages/ql-tags.scm +26 -0
- aider/queries/tree-sitter-languages/ruby-tags.scm +64 -0
- aider/queries/tree-sitter-languages/rust-tags.scm +60 -0
- aider/queries/tree-sitter-languages/scala-tags.scm +65 -0
- aider/queries/tree-sitter-languages/typescript-tags.scm +41 -0
- aider/reasoning_tags.py +82 -0
- aider/repo.py +623 -0
- aider/repomap.py +847 -0
- aider/report.py +200 -0
- aider/resources/__init__.py +3 -0
- aider/resources/model-metadata.json +468 -0
- aider/resources/model-settings.yml +1767 -0
- aider/run_cmd.py +132 -0
- aider/scrape.py +284 -0
- aider/sendchat.py +61 -0
- aider/special.py +203 -0
- aider/urls.py +17 -0
- aider/utils.py +338 -0
- aider/versioncheck.py +113 -0
- aider/voice.py +187 -0
- aider/waiting.py +221 -0
- aider/watch.py +318 -0
- aider/watch_prompts.py +12 -0
- aider/website/Gemfile +8 -0
- aider/website/_includes/blame.md +162 -0
- aider/website/_includes/get-started.md +22 -0
- aider/website/_includes/help-tip.md +5 -0
- aider/website/_includes/help.md +24 -0
- aider/website/_includes/install.md +5 -0
- aider/website/_includes/keys.md +4 -0
- aider/website/_includes/model-warnings.md +67 -0
- aider/website/_includes/multi-line.md +22 -0
- aider/website/_includes/python-m-aider.md +5 -0
- aider/website/_includes/recording.css +228 -0
- aider/website/_includes/recording.md +34 -0
- aider/website/_includes/replit-pipx.md +9 -0
- aider/website/_includes/works-best.md +1 -0
- aider/website/_sass/custom/custom.scss +103 -0
- aider/website/docs/config/adv-model-settings.md +1881 -0
- aider/website/docs/config/aider_conf.md +527 -0
- aider/website/docs/config/api-keys.md +90 -0
- aider/website/docs/config/dotenv.md +478 -0
- aider/website/docs/config/editor.md +127 -0
- aider/website/docs/config/model-aliases.md +103 -0
- aider/website/docs/config/options.md +843 -0
- aider/website/docs/config/reasoning.md +209 -0
- aider/website/docs/config.md +44 -0
- aider/website/docs/faq.md +378 -0
- aider/website/docs/git.md +76 -0
- aider/website/docs/index.md +47 -0
- aider/website/docs/install/codespaces.md +39 -0
- aider/website/docs/install/docker.md +57 -0
- aider/website/docs/install/optional.md +100 -0
- aider/website/docs/install/replit.md +8 -0
- aider/website/docs/install.md +115 -0
- aider/website/docs/languages.md +264 -0
- aider/website/docs/legal/contributor-agreement.md +111 -0
- aider/website/docs/legal/privacy.md +104 -0
- aider/website/docs/llms/anthropic.md +77 -0
- aider/website/docs/llms/azure.md +48 -0
- aider/website/docs/llms/bedrock.md +132 -0
- aider/website/docs/llms/cohere.md +34 -0
- aider/website/docs/llms/deepseek.md +32 -0
- aider/website/docs/llms/gemini.md +49 -0
- aider/website/docs/llms/github.md +105 -0
- aider/website/docs/llms/groq.md +36 -0
- aider/website/docs/llms/lm-studio.md +39 -0
- aider/website/docs/llms/ollama.md +75 -0
- aider/website/docs/llms/openai-compat.md +39 -0
- aider/website/docs/llms/openai.md +58 -0
- aider/website/docs/llms/openrouter.md +78 -0
- aider/website/docs/llms/other.md +103 -0
- aider/website/docs/llms/vertex.md +50 -0
- aider/website/docs/llms/warnings.md +10 -0
- aider/website/docs/llms/xai.md +53 -0
- aider/website/docs/llms.md +54 -0
- aider/website/docs/more/analytics.md +122 -0
- aider/website/docs/more/edit-formats.md +116 -0
- aider/website/docs/more/infinite-output.md +137 -0
- aider/website/docs/more-info.md +8 -0
- aider/website/docs/recordings/auto-accept-architect.md +31 -0
- aider/website/docs/recordings/dont-drop-original-read-files.md +35 -0
- aider/website/docs/recordings/index.md +21 -0
- aider/website/docs/recordings/model-accepts-settings.md +69 -0
- aider/website/docs/recordings/tree-sitter-language-pack.md +80 -0
- aider/website/docs/repomap.md +112 -0
- aider/website/docs/scripting.md +100 -0
- aider/website/docs/troubleshooting/aider-not-found.md +24 -0
- aider/website/docs/troubleshooting/edit-errors.md +76 -0
- aider/website/docs/troubleshooting/imports.md +62 -0
- aider/website/docs/troubleshooting/models-and-keys.md +54 -0
- aider/website/docs/troubleshooting/support.md +79 -0
- aider/website/docs/troubleshooting/token-limits.md +96 -0
- aider/website/docs/troubleshooting/warnings.md +12 -0
- aider/website/docs/troubleshooting.md +11 -0
- aider/website/docs/usage/browser.md +57 -0
- aider/website/docs/usage/caching.md +49 -0
- aider/website/docs/usage/commands.md +132 -0
- aider/website/docs/usage/conventions.md +119 -0
- aider/website/docs/usage/copypaste.md +121 -0
- aider/website/docs/usage/images-urls.md +48 -0
- aider/website/docs/usage/lint-test.md +118 -0
- aider/website/docs/usage/modes.md +211 -0
- aider/website/docs/usage/not-code.md +179 -0
- aider/website/docs/usage/notifications.md +87 -0
- aider/website/docs/usage/tips.md +79 -0
- aider/website/docs/usage/tutorials.md +30 -0
- aider/website/docs/usage/voice.md +121 -0
- aider/website/docs/usage/watch.md +294 -0
- aider/website/docs/usage.md +92 -0
- aider/website/share/index.md +101 -0
- chatmcp_cli-0.1.0.dist-info/METADATA +502 -0
- chatmcp_cli-0.1.0.dist-info/RECORD +228 -0
- chatmcp_cli-0.1.0.dist-info/WHEEL +5 -0
- chatmcp_cli-0.1.0.dist-info/entry_points.txt +3 -0
- chatmcp_cli-0.1.0.dist-info/licenses/LICENSE.txt +202 -0
- chatmcp_cli-0.1.0.dist-info/top_level.txt +1 -0
aider/args_formatter.py
ADDED
@@ -0,0 +1,228 @@
|
|
1
|
+
import argparse
|
2
|
+
|
3
|
+
from aider import urls
|
4
|
+
|
5
|
+
from .dump import dump # noqa: F401
|
6
|
+
|
7
|
+
|
8
|
+
class DotEnvFormatter(argparse.HelpFormatter):
|
9
|
+
def start_section(self, heading):
|
10
|
+
res = "\n\n"
|
11
|
+
res += "#" * (len(heading) + 3)
|
12
|
+
res += f"\n# {heading}"
|
13
|
+
super().start_section(res)
|
14
|
+
|
15
|
+
def _format_usage(self, usage, actions, groups, prefix):
|
16
|
+
return ""
|
17
|
+
|
18
|
+
def _format_text(self, text):
|
19
|
+
return f"""
|
20
|
+
##########################################################
|
21
|
+
# Sample aider .env file.
|
22
|
+
# Place at the root of your git repo.
|
23
|
+
# Or use `aider --env <fname>` to specify.
|
24
|
+
##########################################################
|
25
|
+
|
26
|
+
#################
|
27
|
+
# LLM parameters:
|
28
|
+
#
|
29
|
+
# Include xxx_API_KEY parameters and other params needed for your LLMs.
|
30
|
+
# See {urls.llms} for details.
|
31
|
+
|
32
|
+
## OpenAI
|
33
|
+
#OPENAI_API_KEY=
|
34
|
+
|
35
|
+
## Anthropic
|
36
|
+
#ANTHROPIC_API_KEY=
|
37
|
+
|
38
|
+
##...
|
39
|
+
"""
|
40
|
+
|
41
|
+
def _format_action(self, action):
|
42
|
+
if not action.option_strings:
|
43
|
+
return ""
|
44
|
+
|
45
|
+
if not action.env_var:
|
46
|
+
return
|
47
|
+
|
48
|
+
parts = [""]
|
49
|
+
|
50
|
+
default = action.default
|
51
|
+
if default == argparse.SUPPRESS:
|
52
|
+
default = ""
|
53
|
+
elif isinstance(default, str):
|
54
|
+
pass
|
55
|
+
elif isinstance(default, list) and not default:
|
56
|
+
default = ""
|
57
|
+
elif action.default is not None:
|
58
|
+
default = "true" if default else "false"
|
59
|
+
else:
|
60
|
+
default = ""
|
61
|
+
|
62
|
+
if action.help:
|
63
|
+
parts.append(f"## {action.help}")
|
64
|
+
|
65
|
+
if action.env_var:
|
66
|
+
env_var = action.env_var
|
67
|
+
if default:
|
68
|
+
parts.append(f"#{env_var}={default}\n")
|
69
|
+
else:
|
70
|
+
parts.append(f"#{env_var}=\n")
|
71
|
+
|
72
|
+
return "\n".join(parts) + "\n"
|
73
|
+
|
74
|
+
def _format_action_invocation(self, action):
|
75
|
+
return ""
|
76
|
+
|
77
|
+
def _format_args(self, action, default_metavar):
|
78
|
+
return ""
|
79
|
+
|
80
|
+
|
81
|
+
class YamlHelpFormatter(argparse.HelpFormatter):
|
82
|
+
def start_section(self, heading):
|
83
|
+
res = "\n\n"
|
84
|
+
res += "#" * (len(heading) + 3)
|
85
|
+
res += f"\n# {heading}"
|
86
|
+
super().start_section(res)
|
87
|
+
|
88
|
+
def _format_usage(self, usage, actions, groups, prefix):
|
89
|
+
return ""
|
90
|
+
|
91
|
+
def _format_text(self, text):
|
92
|
+
return """
|
93
|
+
##########################################################
|
94
|
+
# Sample .aider.conf.yml
|
95
|
+
# This file lists *all* the valid configuration entries.
|
96
|
+
# Place in your home dir, or at the root of your git repo.
|
97
|
+
##########################################################
|
98
|
+
|
99
|
+
# Note: You can only put OpenAI and Anthropic API keys in the YAML
|
100
|
+
# config file. Keys for all APIs can be stored in a .env file
|
101
|
+
# https://aider.chat/docs/config/dotenv.html
|
102
|
+
|
103
|
+
"""
|
104
|
+
|
105
|
+
def _format_action(self, action):
|
106
|
+
if not action.option_strings:
|
107
|
+
return ""
|
108
|
+
|
109
|
+
parts = [""]
|
110
|
+
|
111
|
+
metavar = action.metavar
|
112
|
+
if not metavar and isinstance(action, argparse._StoreAction):
|
113
|
+
metavar = "VALUE"
|
114
|
+
|
115
|
+
default = action.default
|
116
|
+
if default == argparse.SUPPRESS:
|
117
|
+
default = ""
|
118
|
+
elif isinstance(default, str):
|
119
|
+
pass
|
120
|
+
elif isinstance(default, list) and not default:
|
121
|
+
default = ""
|
122
|
+
elif action.default is not None:
|
123
|
+
default = "true" if default else "false"
|
124
|
+
else:
|
125
|
+
default = ""
|
126
|
+
|
127
|
+
if action.help:
|
128
|
+
parts.append(f"## {action.help}")
|
129
|
+
|
130
|
+
for switch in action.option_strings:
|
131
|
+
if switch.startswith("--"):
|
132
|
+
break
|
133
|
+
switch = switch.lstrip("-")
|
134
|
+
|
135
|
+
if isinstance(action, argparse._StoreTrueAction):
|
136
|
+
default = False
|
137
|
+
elif isinstance(action, argparse._StoreConstAction):
|
138
|
+
default = False
|
139
|
+
|
140
|
+
if default is False:
|
141
|
+
default = "false"
|
142
|
+
if default is True:
|
143
|
+
default = "true"
|
144
|
+
|
145
|
+
if default:
|
146
|
+
if "#" in default:
|
147
|
+
parts.append(f'#{switch}: "{default}"\n')
|
148
|
+
else:
|
149
|
+
parts.append(f"#{switch}: {default}\n")
|
150
|
+
elif action.nargs in ("*", "+") or isinstance(action, argparse._AppendAction):
|
151
|
+
parts.append(f"#{switch}: xxx")
|
152
|
+
parts.append("## Specify multiple values like this:")
|
153
|
+
parts.append(f"#{switch}:")
|
154
|
+
parts.append("# - xxx")
|
155
|
+
parts.append("# - yyy")
|
156
|
+
parts.append("# - zzz")
|
157
|
+
else:
|
158
|
+
if switch.endswith("color"):
|
159
|
+
parts.append(f'#{switch}: "xxx"\n')
|
160
|
+
else:
|
161
|
+
parts.append(f"#{switch}: xxx\n")
|
162
|
+
|
163
|
+
###
|
164
|
+
# parts.append(str(action))
|
165
|
+
|
166
|
+
return "\n".join(parts) + "\n"
|
167
|
+
|
168
|
+
def _format_action_invocation(self, action):
|
169
|
+
return ""
|
170
|
+
|
171
|
+
def _format_args(self, action, default_metavar):
|
172
|
+
return ""
|
173
|
+
|
174
|
+
|
175
|
+
class MarkdownHelpFormatter(argparse.HelpFormatter):
|
176
|
+
def start_section(self, heading):
|
177
|
+
super().start_section(f"## {heading}")
|
178
|
+
|
179
|
+
def _format_usage(self, usage, actions, groups, prefix):
|
180
|
+
res = super()._format_usage(usage, actions, groups, prefix)
|
181
|
+
quote = "```\n"
|
182
|
+
return quote + res + quote
|
183
|
+
|
184
|
+
def _format_text(self, text):
|
185
|
+
return ""
|
186
|
+
|
187
|
+
def _format_action(self, action):
|
188
|
+
if not action.option_strings:
|
189
|
+
return ""
|
190
|
+
|
191
|
+
parts = [""]
|
192
|
+
|
193
|
+
metavar = action.metavar
|
194
|
+
if not metavar and isinstance(action, argparse._StoreAction):
|
195
|
+
metavar = "VALUE"
|
196
|
+
|
197
|
+
for switch in action.option_strings:
|
198
|
+
if switch.startswith("--"):
|
199
|
+
break
|
200
|
+
|
201
|
+
if metavar:
|
202
|
+
parts.append(f"### `{switch} {metavar}`")
|
203
|
+
else:
|
204
|
+
parts.append(f"### `{switch}`")
|
205
|
+
if action.help:
|
206
|
+
parts.append(action.help + " ")
|
207
|
+
|
208
|
+
if action.default not in (argparse.SUPPRESS, None):
|
209
|
+
parts.append(f"Default: {action.default} ")
|
210
|
+
|
211
|
+
if action.env_var:
|
212
|
+
parts.append(f"Environment variable: `{action.env_var}` ")
|
213
|
+
|
214
|
+
if len(action.option_strings) > 1:
|
215
|
+
parts.append("Aliases:")
|
216
|
+
for switch in action.option_strings:
|
217
|
+
if metavar:
|
218
|
+
parts.append(f" - `{switch} {metavar}`")
|
219
|
+
else:
|
220
|
+
parts.append(f" - `{switch}`")
|
221
|
+
|
222
|
+
return "\n".join(parts) + "\n"
|
223
|
+
|
224
|
+
def _format_action_invocation(self, action):
|
225
|
+
return ""
|
226
|
+
|
227
|
+
def _format_args(self, action, default_metavar):
|
228
|
+
return ""
|
aider/coders/__init__.py
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
from .architect_coder import ArchitectCoder
|
2
|
+
from .ask_coder import AskCoder
|
3
|
+
from .base_coder import Coder
|
4
|
+
from .context_coder import ContextCoder
|
5
|
+
from .editblock_coder import EditBlockCoder
|
6
|
+
from .editblock_fenced_coder import EditBlockFencedCoder
|
7
|
+
from .editor_diff_fenced_coder import EditorDiffFencedCoder
|
8
|
+
from .editor_editblock_coder import EditorEditBlockCoder
|
9
|
+
from .editor_whole_coder import EditorWholeFileCoder
|
10
|
+
from .help_coder import HelpCoder
|
11
|
+
from .patch_coder import PatchCoder
|
12
|
+
from .udiff_coder import UnifiedDiffCoder
|
13
|
+
from .udiff_simple import UnifiedDiffSimpleCoder
|
14
|
+
from .wholefile_coder import WholeFileCoder
|
15
|
+
|
16
|
+
# from .single_wholefile_func_coder import SingleWholeFileFunctionCoder
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
HelpCoder,
|
20
|
+
AskCoder,
|
21
|
+
Coder,
|
22
|
+
EditBlockCoder,
|
23
|
+
EditBlockFencedCoder,
|
24
|
+
WholeFileCoder,
|
25
|
+
PatchCoder,
|
26
|
+
UnifiedDiffCoder,
|
27
|
+
UnifiedDiffSimpleCoder,
|
28
|
+
# SingleWholeFileFunctionCoder,
|
29
|
+
ArchitectCoder,
|
30
|
+
EditorEditBlockCoder,
|
31
|
+
EditorWholeFileCoder,
|
32
|
+
EditorDiffFencedCoder,
|
33
|
+
ContextCoder,
|
34
|
+
]
|
@@ -0,0 +1,48 @@
|
|
1
|
+
from .architect_prompts import ArchitectPrompts
|
2
|
+
from .ask_coder import AskCoder
|
3
|
+
from .base_coder import Coder
|
4
|
+
|
5
|
+
|
6
|
+
class ArchitectCoder(AskCoder):
|
7
|
+
edit_format = "architect"
|
8
|
+
gpt_prompts = ArchitectPrompts()
|
9
|
+
auto_accept_architect = False
|
10
|
+
|
11
|
+
def reply_completed(self):
|
12
|
+
content = self.partial_response_content
|
13
|
+
|
14
|
+
if not content or not content.strip():
|
15
|
+
return
|
16
|
+
|
17
|
+
if not self.auto_accept_architect and not self.io.confirm_ask("Edit the files?"):
|
18
|
+
return
|
19
|
+
|
20
|
+
kwargs = dict()
|
21
|
+
|
22
|
+
# Use the editor_model from the main_model if it exists, otherwise use the main_model itself
|
23
|
+
editor_model = self.main_model.editor_model or self.main_model
|
24
|
+
|
25
|
+
kwargs["main_model"] = editor_model
|
26
|
+
kwargs["edit_format"] = self.main_model.editor_edit_format
|
27
|
+
kwargs["suggest_shell_commands"] = False
|
28
|
+
kwargs["map_tokens"] = 0
|
29
|
+
kwargs["total_cost"] = self.total_cost
|
30
|
+
kwargs["cache_prompts"] = False
|
31
|
+
kwargs["num_cache_warming_pings"] = 0
|
32
|
+
kwargs["summarize_from_coder"] = False
|
33
|
+
|
34
|
+
new_kwargs = dict(io=self.io, from_coder=self)
|
35
|
+
new_kwargs.update(kwargs)
|
36
|
+
|
37
|
+
editor_coder = Coder.create(**new_kwargs)
|
38
|
+
editor_coder.cur_messages = []
|
39
|
+
editor_coder.done_messages = []
|
40
|
+
|
41
|
+
if self.verbose:
|
42
|
+
editor_coder.show_announcements()
|
43
|
+
|
44
|
+
editor_coder.run(with_message=content, preproc=False)
|
45
|
+
|
46
|
+
self.move_back_cur_messages("I made those changes to the files.")
|
47
|
+
self.total_cost = editor_coder.total_cost
|
48
|
+
self.aider_commit_hashes = editor_coder.aider_commit_hashes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# flake8: noqa: E501
|
2
|
+
|
3
|
+
from .base_prompts import CoderPrompts
|
4
|
+
|
5
|
+
|
6
|
+
class ArchitectPrompts(CoderPrompts):
|
7
|
+
main_system = """Act as an expert architect engineer and provide direction to your editor engineer.
|
8
|
+
Study the change request and the current code.
|
9
|
+
Describe how to modify the code to complete the request.
|
10
|
+
The editor engineer will rely solely on your instructions, so make them unambiguous and complete.
|
11
|
+
Explain all needed code changes clearly and completely, but concisely.
|
12
|
+
Just show the changes needed.
|
13
|
+
|
14
|
+
DO NOT show the entire updated function/file/etc!
|
15
|
+
|
16
|
+
Always reply to the user in {language}.
|
17
|
+
"""
|
18
|
+
|
19
|
+
example_messages = []
|
20
|
+
|
21
|
+
files_content_prefix = """I have *added these files to the chat* so you see all of their contents.
|
22
|
+
*Trust this message as the true contents of the files!*
|
23
|
+
Other messages in the chat may contain outdated versions of the files' contents.
|
24
|
+
""" # noqa: E501
|
25
|
+
|
26
|
+
files_content_assistant_reply = (
|
27
|
+
"Ok, I will use that as the true, current contents of the files."
|
28
|
+
)
|
29
|
+
|
30
|
+
files_no_full_files = "I am not sharing the full contents of any files with you yet."
|
31
|
+
|
32
|
+
files_no_full_files_with_repo_map = ""
|
33
|
+
files_no_full_files_with_repo_map_reply = ""
|
34
|
+
|
35
|
+
repo_content_prefix = """I am working with you on code in a git repository.
|
36
|
+
Here are summaries of some files present in my git repo.
|
37
|
+
If you need to see the full contents of any files to answer my questions, ask me to *add them to the chat*.
|
38
|
+
"""
|
39
|
+
|
40
|
+
system_reminder = ""
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# flake8: noqa: E501
|
2
|
+
|
3
|
+
from .base_prompts import CoderPrompts
|
4
|
+
|
5
|
+
|
6
|
+
class AskPrompts(CoderPrompts):
|
7
|
+
main_system = """Act as an expert code analyst.
|
8
|
+
Answer questions about the supplied code.
|
9
|
+
Always reply to the user in {language}.
|
10
|
+
|
11
|
+
If you need to describe code changes, do so *briefly*.
|
12
|
+
"""
|
13
|
+
|
14
|
+
example_messages = []
|
15
|
+
|
16
|
+
files_content_prefix = """I have *added these files to the chat* so you see all of their contents.
|
17
|
+
*Trust this message as the true contents of the files!*
|
18
|
+
Other messages in the chat may contain outdated versions of the files' contents.
|
19
|
+
""" # noqa: E501
|
20
|
+
|
21
|
+
files_content_assistant_reply = (
|
22
|
+
"Ok, I will use that as the true, current contents of the files."
|
23
|
+
)
|
24
|
+
|
25
|
+
files_no_full_files = "I am not sharing the full contents of any files with you yet."
|
26
|
+
|
27
|
+
files_no_full_files_with_repo_map = ""
|
28
|
+
files_no_full_files_with_repo_map_reply = ""
|
29
|
+
|
30
|
+
repo_content_prefix = """I am working with you on code in a git repository.
|
31
|
+
Here are summaries of some files present in my git repo.
|
32
|
+
If you need to see the full contents of any files to answer my questions, ask me to *add them to the chat*.
|
33
|
+
"""
|
34
|
+
|
35
|
+
system_reminder = "{final_reminders}"
|