Commit graph

1037 commits

Author SHA1 Message Date
Paul Gauthier
a3a4d87a0c treat litellm.exceptions.BadRequestError as a 400 error and do not retry 2024-04-30 15:40:28 -07:00
Paul Gauthier
d38a38f0dd implemented accepts_multi_system_msgs 2024-04-30 07:57:29 -07:00
Paul Gauthier
2d16ee16ac Make lazy prompt configurable 2024-04-30 07:45:16 -07:00
Paul Gauthier
65dccb6205 Merge branch 'main' into gemini-editblock 2024-04-29 20:42:52 -07:00
Paul Gauthier
ec9fac2500 simpler launch of streamlit 2024-04-28 14:48:40 -07:00
Paul Gauthier
ca6349069c noop 2024-04-28 12:38:25 -07:00
Paul Gauthier
0f8efa3714 Coder.drop_rel_fname 2024-04-28 07:15:48 -07:00
Paul Gauthier
296a336d22 yield from 2024-04-27 11:47:18 -07:00
Paul Gauthier
701103a9cc chat works, with commits and reflected messages 2024-04-27 08:09:13 -07:00
Paul Gauthier
86d7705166 restructured reflected messages 2024-04-26 16:02:45 -07:00
Paul Gauthier
15e6651e09 stream to gui 2024-04-26 15:41:47 -07:00
Paul Gauthier
3f5cdb603c fixed announcements 2024-04-26 13:20:14 -07:00
Paul Gauthier
d21de778ff announcements 2024-04-26 11:24:42 -07:00
Paul Gauthier
7a6bce381e better 2024-04-26 06:11:56 -07:00
Paul Gauthier
29eb2f4681 seems to work better 2024-04-23 14:06:08 -07:00
Paul Gauthier
f92aecbf7a Allow repo map to work with whole edit format, for weaker models with large context 2024-04-23 10:21:54 -07:00
Paul Gauthier
efd3c39e50 Better unknown model warnings 2024-04-22 14:09:08 -07:00
Paul Gauthier
cd838901d1 Added improved editing support for command-r-plus 2024-04-20 16:53:27 -07:00
Paul Gauthier
7ec4de865d Added --weak-model 2024-04-19 10:57:21 -07:00
Paul Gauthier
0da1b59901 Fixed up images in chat 2024-04-18 14:39:32 -07:00
Paul Gauthier
cf2a48b21f get_weak_model 2024-04-18 13:55:43 -07:00
Paul Gauthier
c770fc4380 cleaned up client refs 2024-04-17 15:47:07 -07:00
Paul Gauthier
f1a31d3944 pass in commit models to gitrepo 2024-04-17 15:41:30 -07:00
Paul Gauthier
3662a4680b token pricing 2024-04-17 15:34:59 -07:00
Paul Gauthier
c9bb22d6d5 roughed in tokenizer, dropped openai, openrouter 2024-04-17 15:22:35 -07:00
Paul Gauthier
855e787175 removed skip-model-avail-check 2024-04-17 15:02:39 -07:00
Paul Gauthier
5c10944054 Abstract the default model name so it applies to scripting #537 2024-04-11 06:42:38 -07:00
Aloha
1fc1c304c7
Fix: use f-string 2024-04-11 16:58:10 +08:00
Paul Gauthier
0871764766 Don't share local git errors with GPT #500 2024-03-08 12:24:54 -08:00
Paul Gauthier
7fbd9e2be4 Added claude post 2024-03-08 08:00:41 -08:00
Paul Gauthier
0fb57895a4 link to the faq on edit errors 2024-03-04 12:37:51 -08:00
Paul Gauthier
6dd5ae69e3 Normalize paths before checking aiderignore #479 2024-02-25 15:54:57 -08:00
Paul Gauthier
49c904eea5 Added a warning if the user adds many files totaling many tokens 2024-02-25 15:34:51 -08:00
Paul Gauthier
a9fe4532c7 Aider should fully ignore files in aiderignore #479 2024-02-24 09:39:33 -08:00
Paul Gauthier
72e6cb901c Fixed bug with cost computations when --no-steam in effect #475 2024-02-11 05:48:32 -08:00
Paul Gauthier
35f812859e Rationalized openai model attributes #458 2024-02-07 12:07:30 -08:00
Paul Gauthier
580c52bd85 set mdargs on init 2024-01-23 09:58:57 -08:00
Paul Gauthier
b143bc56ac switch to mdstream 2024-01-23 09:20:31 -08:00
Paul Gauthier
23cc78f36b typo 2024-01-22 13:21:16 -08:00
Paul Gauthier
a8b854fe8d fix f-string 2024-01-22 13:10:15 -08:00
Paul Gauthier
29a578c621 Complete the search for viable hunks all the way down to 0 space context lines #435 2024-01-09 08:34:33 -08:00
Paul Gauthier
d5f4ba2278 handle multiple udiffs inside a single fenced block 2024-01-04 12:53:01 -08:00
Paul Gauthier
79ae43cb59 make udiff more clear when some hunks did apply 2024-01-04 12:23:19 -08:00
Paul Gauthier
cc3da03a0b add helpful warnings on launch 2024-01-02 09:58:50 -08:00
Paul Gauthier
a279adc5fc Update output to include number of files in git repo with comma separator. 2024-01-02 09:50:52 -08:00
Paul Gauthier
369d746f2f added assistant:ok turn after image message 2024-01-02 09:40:03 -08:00
paul-gauthier
2824acb5c2
Merge pull request #379 from joshuavial/gpt4-vision
add support for gpt-4-vision
2024-01-02 13:37:17 -04:00
Paul Gauthier
2241741316 dirty commits shouldn't move back the messages; was clipping the earlier USER: messages and preventing them from appearing in the commit message transcript 2024-01-02 09:23:00 -08:00
Paul Gauthier
dc4bec2986 Fix extracting file path from diff headers in udiff_coder. 2023-12-31 09:42:19 -08:00
Paul Gauthier
4dee2ab2f4 aider: Fix parsing of file paths with spaces in udiff_coder.py.
# Aider chat conversation:

USER: I just tried aider on a project where the folder names have spaces, and it has an issue parsing the diffs.

For example:

```diff
--- PRAW and URS Reddit Scraping/Classify.py
+++ PRAW and URS Reddit Scraping/Classify.py
@@ ... @@
 def classify(filename:str, model: str = 'gpt-3.5-turbo-1106'):
     d = json.load(open(filename))
     for post in d['fetched_posts']:
         messages = copy(MESSAGE_TEMPLATE_CLASSIFY)
...
```

Gives:

```Allow creation of new file PRAW? y```

Which is not correct, a new file is not being created here.

ASSISTANT: To address the issue with folder names containing spaces, we need to update the `find_diffs` function in `udiff_coder.py` to correctly parse file paths that include spaces. The current implementation seems to split the file path on spaces, which leads to incorrect behavior when folder or file names contain spaces.

Here's the diff with the necessary changes:

```diff
--- aider/coders/udiff_coder.py
+++ aider/coders/udiff_coder.py
@@ ... @@
 def find_diffs(content):
     # We can always use triple-quotes, because all the udiff content
     # is prefixed with +/-/space.

     if not content.endswith("\n"):
         content = content + "\n"

     lines = content.splitlines(keepends=True)
     line_num = 0
     edits = []
     while line_num < len(lines):
         while line_num < len(lines):
             line = lines[line_num]
             if line.startswith("```diff"):
                 line_num, these_edits = process_fenced_block(lines, line_num + 1)
                 edits += these_edits
                 break
             line_num += 1

     # For now, just take 1!
     # edits = edits[:1]

     return edits

 def process_fenced_block(lines, start_line_num):
     for line_num in range(start_line_num, len(lines)):
         line = lines[line_num]
         if line.startswith("```"):
             break

     block = lines[start_line_num:line_num]
     block.append("@@ @@")

-    if block[1].startswith("+++ "):
-        fname = block[1].split()[1]
+    if block[1].startswith("--- ") and block[2].startswith("+++ "):
+        # Extract the file path, considering that it might contain spaces
+        fname = block[1][4:].strip()
+        # Ensure that the file path is the same for both the original and new file
+        assert fname == block[2][4:].strip(), "File paths in diff headers do not match"
         block = block[2:]
     else:
         fname = None

     edits = []

     keeper = False
     hunk = []
     op = " "
     for line in block:
         hunk.append(line)
         if len(line) < 2:
             continue
         op = line[0]
         if op in "-+":
             keeper = True
             continue
         if op != "@":
             continue
         if not keeper:
             hunk = []
             continue

         hunk = hunk[:-1]
         edits.append((fname, hunk))
         hunk = []

     return line_num + 1, edits
@@ ... @@
```

This change ensures that the file path is correctly extracted from the diff headers, even if it contains spaces. It also adds an assertion to check that the file paths for the original and new files match, which is a common requirement in diffs.
2023-12-31 09:40:08 -08:00