Commit graph

659 commits

Author SHA1 Message Date
Paul Gauthier
21bce20f42 aider: Added README.md file with descriptions and links to the two examples.
# Context:
USER: add a README.md that describes and links to the 2 examples
ASSISTANT: ```python
README.md
<<<<<<< ORIGINAL

=======
# Aider Examples

This repository contains two examples demonstrating the capabilities of Aider. Below is a brief description of each example and a link to their respective markdown files.

1. **Hello World Flask App**: This example demonstrates how to create a simple Flask app with various endpoints, such as adding two numbers and calculating the Fibonacci sequence. [View the example here](examples/hello-world-flask.md).

2. **Semantic Search & Replace**: This example showcases Aider's ability to perform semantic search and replace operations in code, dealing with various formatting and semantic differences in the calls that it updates. [View the example here](examples/semantic-search-replace.md).
>>>>>>> UPDATED
```

I've added a README.md file with descriptions and links to the two examples.
2023-05-12 16:14:41 -07:00
Paul Gauthier
c1d551d970 wip: Removed writing to ".aider.last.md" file. 2023-05-12 15:50:38 -07:00
Paul Gauthier
87a22d6a42 better 2023-05-12 15:49:04 -07:00
Paul Gauthier
f7769210d2 better 2023-05-12 15:48:54 -07:00
Paul Gauthier
5ea104875e better 2023-05-12 15:48:33 -07:00
Paul Gauthier
580459f53a better 2023-05-12 15:47:08 -07:00
Paul Gauthier
98a2adb056 better 2023-05-12 15:44:45 -07:00
Paul Gauthier
238287312e Added new files to the git repo message 2023-05-12 15:44:36 -07:00
Paul Gauthier
2e2eae0616 better 2023-05-12 15:40:38 -07:00
Paul Gauthier
860279a23f better 2023-05-12 15:39:19 -07:00
Paul Gauthier
ae7d5c33b4 Refactored get_rel_fname method and updated print statement in Coder class. 2023-05-12 15:36:45 -07:00
Paul Gauthier
a1cb2e0cd2 Refactor Coder class to use get_rel_fname method instead of os.path.relpath. 2023-05-12 15:30:43 -07:00
Paul Gauthier
888ab713f9 better 2023-05-12 15:24:55 -07:00
Paul Gauthier
bddef03323 wip: Changed chat history format and added italics to some messages. 2023-05-12 15:23:36 -07:00
Paul Gauthier
1a76815998 better 2023-05-12 15:23:17 -07:00
Paul Gauthier
11f8beae1d better 2023-05-12 15:21:46 -07:00
Paul Gauthier
cb4b1115d3 better 2023-05-12 15:21:15 -07:00
Paul Gauthier
f79bec7994 better 2023-05-12 15:20:06 -07:00
Paul Gauthier
6539dd5bf2 better 2023-05-12 15:19:31 -07:00
Paul Gauthier
38388e05ba better 2023-05-12 15:19:20 -07:00
Paul Gauthier
f0e23671bd better 2023-05-12 15:19:04 -07:00
Paul Gauthier
91ecfe8e88 better 2023-05-12 15:18:23 -07:00
Paul Gauthier
1beffbde0f better 2023-05-12 15:17:50 -07:00
Paul Gauthier
a226692413 initial 2023-05-12 15:14:40 -07:00
Paul Gauthier
bc12ecf82c Changed print statement to avoid logging or further colorizing. 2023-05-12 15:06:29 -07:00
Paul Gauthier
69d5e8a624 wip: Updated print statements and appended new line character to session start message. 2023-05-12 15:03:12 -07:00
Paul Gauthier
10376a9175 cleanup 2023-05-12 14:52:58 -07:00
Paul Gauthier
991e143b63 aider: Added date/time stamp to the "New session started" message.
# Context:
USER: add a date/time stamp to the New session started msg
ASSISTANT: To add a date/time stamp to the "New session started" message, we will import the `datetime` module and use the `datetime.now()` function to get the current date and time. Then, we will format the date/time string and append it to the message.

Here's the change to the `aider/getinput.py` file:

```python
aider/getinput.py
<<<<<<< ORIGINAL
import sys
import time
import random
from pathlib import Path
=======
import sys
import time
import random
from pathlib import Path
from datetime import datetime
>>>>>>> UPDATED

aider/getinput.py
<<<<<<< ORIGINAL
    def __init__(self, pretty, yes, input_history_file, chat_history_file):
        self.pretty = pretty
        self.yes = yes
        self.input_history_file = input_history_file
        self.chat_history_file = Path(chat_history_file)

        if pretty:
            self.console = Console()
        else:
            self.console = Console(force_terminal=True, no_color=True)

        self.append_chat_history('# New session started', False)
=======
    def __init__(self, pretty, yes, input_history_file, chat_history_file):
        self.pretty = pretty
        self.yes = yes
        self.input_history_file = input_history_file
        self.chat_history_file = Path(chat_history_file)

        if pretty:
            self.console = Console()
        else:
            self.console = Console(force_terminal=True, no_color=True)

        current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        self.append_chat_history(f'# New session started at {current_time}', False)
>>>>>>> UPDATED
```
2023-05-12 14:49:33 -07:00
Paul Gauthier
0d11873683 wip: Added chat history message for new session. 2023-05-12 14:48:29 -07:00
Paul Gauthier
ca6a214b1a Added a condition to check if silent is False before outputting ai response. 2023-05-12 14:44:18 -07:00
Paul Gauthier
6a94c3756a wip: Added ai_output method to InputOutput class and modified append_chat_history method to handle linebreaks and trailing spaces. 2023-05-12 14:42:34 -07:00
Paul Gauthier
4a8c4af902 cleanup 2023-05-12 14:34:18 -07:00
Paul Gauthier
5aebad9198 cleanup 2023-05-12 14:33:40 -07:00
Paul Gauthier
7830faa94a cleanu 2023-05-12 14:32:42 -07:00
Paul Gauthier
cd2fe5de05 Added example 2023-05-12 14:32:03 -07:00
Paul Gauthier
54c32283ee use trailing spaces for linebreaks 2023-05-12 14:31:37 -07:00
Paul Gauthier
73b3151f6a wip: Added chat history logging to InputOutput class. 2023-05-12 14:23:21 -07:00
Paul Gauthier
129f70dba8 Added chat history file to InputOutput constructor. 2023-05-12 14:02:10 -07:00
Paul Gauthier
e44677327f aider: Added a new argument --chat-history-file with a default value of .aider.chat.history.md.
# Context:
USER: add a new arg --chat-history-file arg which is similar to --input-history-file but has a default of .aider.chat.history.md
ASSISTANT: To add the new argument `--chat-history-file`, you can add a new `parser.add_argument()` call in the `aider/main.py` file. Here's the change:

```python
aider/main.py
<<<<<<< ORIGINAL
    parser.add_argument(
        "--input-history-file",
        metavar="INPUT_HISTORY_FILE",
        default=os.environ.get(f"{env_prefix}INPUT_HISTORY_FILE", ".aider.input.history"),
        help=(
            "Specify the chat input history file (default: .aider.input.history,"
            f" ${env_prefix}INPUT_HISTORY_FILE)"
        ),
    )
=======
    parser.add_argument(
        "--input-history-file",
        metavar="INPUT_HISTORY_FILE",
        default=os.environ.get(f"{env_prefix}INPUT_HISTORY_FILE", ".aider.input.history"),
        help=(
            "Specify the chat input history file (default: .aider.input.history,"
            f" ${env_prefix}INPUT_HISTORY_FILE)"
        ),
    )
    parser.add_argument(
        "--chat-history-file",
        metavar="CHAT_HISTORY_FILE",
        default=os.environ.get(f"{env_prefix}CHAT_HISTORY_FILE", ".aider.chat.history.md"),
        help=(
            "Specify the chat history file (default: .aider.chat.history.md,"
            f" ${env_prefix}CHAT_HISTORY_FILE)"
        ),
    )
>>>>>>> UPDATED
```

This will add the new `--chat-history-file` argument with a default value of `.aider.chat.history.md`.
2023-05-12 14:00:12 -07:00
Paul Gauthier
200ecf5a1f wip: Changed history_file to input_history_file in InputOutput constructor. 2023-05-12 13:57:45 -07:00
Paul Gauthier
841dfd0a4a aider: Changed --history-file to --input-history-file, updated env var and default file name.
# Context:
USER: change --history-file to be --input-history-file. change the env var too. change the default fname to .aider.input.history
ASSISTANT: ```python
aider/main.py
<<<<<<< ORIGINAL
    parser.add_argument(
        "--history-file",
        metavar="HISTORY_FILE",
        default=os.environ.get(f"{env_prefix}HISTORY_FILE", ".aider.history"),
        help=(
            "Specify the chat input history file (default: .aider.history,"
            f" ${env_prefix}HISTORY_FILE)"
        ),
    )
=======
    parser.add_argument(
        "--input-history-file",
        metavar="INPUT_HISTORY_FILE",
        default=os.environ.get(f"{env_prefix}INPUT_HISTORY_FILE", ".aider.input.history"),
        help=(
            "Specify the chat input history file (default: .aider.input.history,"
            f" ${env_prefix}INPUT_HISTORY_FILE)"
        ),
    )
>>>>>>> UPDATED
```

I've updated the argument name, environment variable, and default file name as requested.
2023-05-12 13:56:48 -07:00
Paul Gauthier
4ff5b0e115 Refactor InputOutput class to accept history_file as an argument and remove it from get_input method. 2023-05-12 13:55:03 -07:00
Paul Gauthier
b074cae5c7 Changed the Commands class to use io instead of console and added error handling. 2023-05-12 13:50:17 -07:00
Paul Gauthier
dd82f64a9e wip: Removed unnecessary code and added a console rule when getting input. 2023-05-12 13:44:46 -07:00
Paul Gauthier
85515b4788 Refactored the code to use a new io tool method and removed the tool_error method. 2023-05-12 13:37:22 -07:00
Paul Gauthier
91f23f3700 aider: Replaced self.console.print() calls with self.io.tool_error() calls for [red] strings and added missing instances.
# Context:
USER: replace all the self.console.print() calls that contain [red] with calls to self.io.tool_error() with [red] removed from the string
ASSISTANT: I apologize for the confusion earlier. I see that the changes have already been committed. There is no need to make the same changes again. If you have any other requests or need assistance with the code, please let me know.
USER: you missed 2 that contain " edit to {path}"
ASSISTANT: You're right, I missed those. Here are the changes for the remaining instances:

aider/coder.py
<<<<<<< ORIGINAL
            self.console.print(f"[red]Skipping edit to {path}")
=======
            self.io.tool_error(f"Skipping edit to {path}")
>>>>>>> UPDATED

aider/coder.py
<<<<<<< ORIGINAL
            self.console.print(f"[red]Failed to apply edit to {path}")
=======
            self.io.tool_error(f"Failed to apply edit to {path}")
>>>>>>> UPDATED
2023-05-12 13:32:39 -07:00
Paul Gauthier
fca8ea3c21 aider: Replaced all self.console.print() calls with self.io.tool_error() calls.
# Context:
USER: replace all the self.console.print() calls that contain [red] with calls to self.io.tool_error() with [red] removed from the string
ASSISTANT: aider/coder.py
<<<<<<< ORIGINAL
            self.console.print("[red]^C again to quit")
=======
            self.io.tool_error("^C again to quit")
>>>>>>> UPDATED

aider/coder.py
<<<<<<< ORIGINAL
            self.io.tool_error("Malformed ORIGINAL/UPDATE blocks, retrying...")
            self.io.tool_error(err)
=======
            self.io.tool_error("Malformed ORIGINAL/UPDATE blocks, retrying...")
            self.io.tool_error(str(err))
>>>>>>> UPDATED

aider/coder.py
<<<<<<< ORIGINAL
            self.console.print("[red]Unable to get commit message from gpt-3.5-turbo. Use /commit to try again.\n")
=======
            self.io.tool_error("Unable to get commit message from gpt-3.5-turbo. Use /commit to try again.")
>>>>>>> UPDATED

aider/coder.py
<<<<<<< ORIGINAL
            self.console.print("[red]Skipped commmit.")
=======
            self.io.tool_error("Skipped commmit.")
>>>>>>> UPDATED
2023-05-12 13:31:32 -07:00
Paul Gauthier
92e091f5a6 fix bug if ORIG/UPD block is missing trailing newline; added test 2023-05-12 13:30:39 -07:00
Paul Gauthier
1d7fffe8ab wip: Refactor Input class to InputOutput and add tool_error method. 2023-05-12 13:17:37 -07:00
Paul Gauthier
57f1b3139a wip: Removed unused import and changed Text object to string. 2023-05-12 13:12:50 -07:00