Commit graph

2387 commits

Author SHA1 Message Date
Paul Gauthier
92f5c712fd copy 2023-07-13 19:44:50 -07:00
Paul Gauthier
ef6714b381 show a js example 2023-07-13 17:56:52 -07:00
Paul Gauthier
719810b1a1 removed import 2023-07-13 17:47:24 -07:00
Paul Gauthier
b52a62190a Ignore errors when cleaning up temp dirs (Win) 2023-07-13 17:18:09 -07:00
Paul Gauthier
8e2b92febb close the open cache files, so Windows won't error 2023-07-13 16:02:29 -07:00
Paul Gauthier
24015dab5f Try and make test run on windows 2023-07-13 15:55:33 -07:00
Paul Gauthier
14ce1d43c7 strip the correct fence 2023-07-13 15:54:54 -07:00
Paul Gauthier
12c3c1ed68 updated editblock to use all the fences 2023-07-13 15:48:13 -07:00
Paul Gauthier
82f8f1f62a copy 2023-07-13 15:33:46 -07:00
Paul Gauthier
f543cf9737 make og:image link absolute 2023-07-13 14:06:32 -07:00
Paul Gauthier
598d81d77c aider: Set the full URL to "https://aider.chat" in _config.yml.
# Aider chat conversation:

USER: what is the site.baseurl ?

ASSISTANT: In Jekyll, `site.baseurl` is a variable that stores the subpath of your site. For example, if your site is at `http://example.com/my_site`, then `site.baseurl` would be `/my_site`. It's often used in templates to prepend to URLs to ensure they work correctly regardless of the site's subpath.

However, I don't see `site.baseurl` defined in your `_config.yml` file. If you're not hosting your site in a subdirectory, you may not need it. If you are, you should add it to your `_config.yml` file like this:

```yml
baseurl: "/my_site" # replace "my_site" with your actual subpath
```

Please let me know if you want to add this to your `_config.yml` file.

USER: https://aider.chat

ASSISTANT: If you want to set the `baseurl` to "https://aider.chat", you should know that `baseurl` is typically used for subpaths, not the full URL. The full URL is usually set in the `url` field.

Here's how you can add it:

```yaml
_config.yml
<<<<<<< ORIGINAL
theme: jekyll-theme-cayman

defaults:
  - scope:
      path: "README.md"
      type: "pages"
    values:
      description: "A command-line chat tool for coding with GPT"
=======
theme: jekyll-theme-cayman
url: "https://aider.chat"

defaults:
  - scope:
      path: "README.md"
      type: "pages"
    values:

^C KeyboardInterrupt

USER: ok, set the full url

ASSISTANT: Alright, here's how you can add the full URL to your `_config.yml` file:

```yaml
_config.yml
<<<<<<< ORIGINAL
theme: jekyll-theme-cayman

defaults:
  - scope:
      path: "README.md"
      type: "pages"
    values:
      description: "A command-line chat tool for coding with GPT"
=======
theme: jekyll-theme-cayman
url: "https://aider.chat"

defaults:
  - scope:
      path: "README.md"
      type: "pages"
    values:
      description: "A command-line chat tool for coding with GPT"
>>>>>>> UPDATED
```

This will set the `url` variable to "https://aider.chat". You can use `{{ site.url }}` in your templates to refer to this URL.
2023-07-13 14:05:38 -07:00
Paul Gauthier
b685695fef Anchor the cache to the project root 2023-07-13 14:01:07 -07:00
Paul Gauthier
b05b8e2087 Improved output when no changes made to git tracked files 2023-07-13 13:41:34 -07:00
Paul Gauthier
7c3bbcede6 aider: Scrub sensitive information from verbose logs before saving.
# Aider chat conversation:

USER: open api key saved in log file when run in verbose mode #94
Open
joshuavial opened this issue 8 hours ago · 2 comments
Comments
@joshuavial
joshuavial commented 8 hours ago
Seems like it would be easy for someone (particularly new to coding) to forget to add the log file to a .gitignore and inadvertently publish their key. Maybe the logger should scrub the keys before saving?

ASSISTANT: To address this issue, we need to modify the `aider/main.py` file. We will add a function to scrub sensitive information like the OpenAI API key from the verbose logs before they are saved.

Here are the steps:

1. Define a new function `scrub_sensitive_info` that takes a string as input and replaces sensitive information (like the OpenAI API key) with a placeholder like `***`.
2. Call this function before logging the arguments in verbose mode.

Here is the *edit block* for these changes:

```python
aider/main.py
<<<<<<< ORIGINAL
    if args.verbose:
        show = parser.format_values()
        io.tool_output(show)
        io.tool_output("Option settings:")
        for arg, val in sorted(vars(args).items()):
            io.tool_output(f"  - {arg}: {val}")
=======
    def scrub_sensitive_info(text):
        # Replace sensitive information with placeholder
        return text.replace(args.openai_api_key, '***')

    if args.verbose:
        show = scrub_sensitive_info(parser.format_values())
        io.tool_output(show)
        io.tool_output("Option settings:")
        for arg, val in sorted(vars(args).items()):
            io.tool_output(f"  - {arg}: {scrub_sensitive_info(str(val))}")
>>>>>>> UPDATED
```

This change will ensure that the OpenAI API key is not saved in the log file when the program is run in verbose mode.
2023-07-13 12:28:05 -07:00
Paul Gauthier
fb11754492 new screenshot 2023-07-13 12:24:06 -07:00
Paul Gauthier
226a4d60ad new screenshot 2023-07-13 11:21:44 -07:00
Paul Gauthier
20897e9a77 new screenshot 2023-07-13 11:18:38 -07:00
Paul Gauthier
88f6a1c02a copy 2023-07-13 11:14:17 -07:00
Paul Gauthier
27ffd62027 new screenshot 2023-07-13 11:10:22 -07:00
Paul Gauthier
48d725116f copy 2023-07-13 10:56:15 -07:00
Paul Gauthier
c3045ddfef copy 2023-07-13 10:52:12 -07:00
Paul Gauthier
b09c95c9c6 added hello aider example 2023-07-13 10:46:49 -07:00
Paul Gauthier
6ab4f09a3a cleanup --show-repo-map 2023-07-13 10:06:46 -07:00
Paul Gauthier
041c19b7dd show universal ctags output 2023-07-13 10:03:01 -07:00
Paul Gauthier
f78977cd5b finished --show-repo-map 2023-07-12 13:46:27 -07:00
Paul Gauthier
a10b08e8de aider: Add --show-map option to print the repo map and then exit.
# Aider chat conversation:

USER: add --show-map which will just print the repomap and then exit

ASSISTANT: To add the `--show-map` option, we need to modify the `aider/main.py` file. We will add a new argument to the argument parser and then use this argument to conditionally print the repo map and exit.

Here are the changes:

```python
aider/main.py
<<<<<<< ORIGINAL
    ##########
    other_group = parser.add_argument_group("Other Settings")
    other_group.add_argument(
        "--version",
        action="version",
        version=f"%(prog)s {__version__}",
        help="Show the version number and exit",
    )
=======
    ##########
    other_group = parser.add_argument_group("Other Settings")
    other_group.add_argument(
        "--show-map",
        action="store_true",
        help="Print the repo map and exit",
        default=False,
    )
    other_group.add_argument(
        "--version",
        action="version",
        version=f"%(prog)s {__version__}",
        help="Show the version number and exit",
    )
>>>>>>> UPDATED
```

```python
aider/main.py
<<<<<<< ORIGINAL
    coder = Coder.create(
        main_model,
        args.edit_format,
        io,
        ##
        fnames=args.files,
        pretty=args.pretty,
        show_diffs=args.show_diffs,
        auto_commits=args.auto_commits,
        dirty_commits=args.dirty_commits,
        dry_run=args.dry_run,
        map_tokens=args.map_tokens,
        verbose=args.verbose,
        assistant_output_color=args.assistant_output_color,
        code_theme=args.code_theme,
        stream=args.stream,
        use_git=args.git,
    )
=======
    if args.show_map:
        repo_map = RepoMap(map_tokens=args.map_tokens, root=git_root, main_model=main_model, io=io, verbose=args.verbose)
        print(repo_map)
        sys.exit(0)
    else:
        coder = Coder.create(
            main_model,
            args.edit_format,
            io,
            ##
            fnames=args.files,
            pretty=args.pretty,
            show_diffs=args.show_diffs,
            auto_commits=args.auto_commits,
            dirty_commits=args.dirty_commits,
            dry_run=args.dry_run,
            map_tokens=args.map_tokens,
            verbose=args.verbose,
            assistant_output_color=args.assistant_output_color,
            code_theme=args.code_theme,
            stream=args.stream,
            use_git=args.git,
        )
>>>>>>> UPDATED
```

Please note that the `RepoMap` class is used to create the repo map. If the `--show-map` option is used, the repo map is printed and the program exits. If not, the program continues as before.
2023-07-12 13:40:10 -07:00
Paul Gauthier
e3aa9db5a2 Updated HISTORY 2023-07-12 07:34:24 -07:00
paul-gauthier
549a1a7640
Merge pull request #88 from paul-gauthier/azure
Added args to configure openai module to access Azure
2023-07-12 07:32:10 -07:00
Paul Gauthier
ec65822369 copy 2023-07-12 06:39:13 -07:00
Paul Gauthier
7f8ab9c895 Merge remote-tracking branch 'origin/main' 2023-07-12 06:38:07 -07:00
paul-gauthier
789909bdea
Update faq.md 2023-07-11 19:17:39 -07:00
Paul Gauthier
1f3fc8481d Updated HISTORY 2023-07-11 18:50:09 -07:00
Paul Gauthier
d5497dcf27 set version to 0.8.3-dev 2023-07-11 18:48:15 -07:00
Paul Gauthier
a70ffddacc version bump to 0.8.3 2023-07-11 18:48:02 -07:00
Paul Gauthier
bb183e2e4e copy 2023-07-11 18:46:15 -07:00
Paul Gauthier
63124a56e9 Updated HISTORY 2023-07-11 18:45:56 -07:00
Paul Gauthier
c54740c617 Show version on startup 2023-07-11 18:44:28 -07:00
Paul Gauthier
aab636f4e9 print 2023-07-11 18:42:27 -07:00
Paul Gauthier
410769ba9b cleanup 2023-07-11 18:41:46 -07:00
Paul Gauthier
86a418d899 print even when dry_run 2023-07-11 18:38:52 -07:00
Paul Gauthier
cace9675b0 aider: The current version is now parsed and the "-dev" suffix is ignored.
# Aider chat conversation:

USER: we need to parse `current_version` and ignore the -dev if it is present

ASSISTANT: To implement this, we need to modify the `scripts/versionbump.py` file.

Here is the proposed change:

```python
scripts/versionbump.py
<<<<<<< ORIGINAL
    current_version = re.search(r'__version__ = "(.+?)"', content).group(1)
    if new_version <= version.parse(current_version):
        raise ValueError(
            f"New version {new_version} must be greater than the current version {current_version}"
        )
=======
    current_version = re.search(r'__version__ = "(.+?)"', content).group(1).split('-dev')[0]
    if new_version <= version.parse(current_version):
        raise ValueError(
            f"New version {new_version} must be greater than the current version {current_version}"
        )
>>>>>>> UPDATED
```

This change will ensure that the '-dev' suffix is discarded when parsing the `current_version`.
2023-07-11 18:36:54 -07:00
Paul Gauthier
54939d5f6c aider: Set version to x.y.z-dev and push to origin.
# Aider chat conversation:

USER: I did `git reset --hard HEAD~1` to discard the last edits.

ASSISTANT: Okay, that command will undo the last commit and discard the changes. If you need to make any further changes or need assistance with anything else, feel free to ask.

USER: we need to commit __init__ with x.y.z, tag it, push it. and THEN write a new __init__ with the -dev version, and then commit that.

ASSISTANT: Understood. We need to modify the `scripts/versionbump.py` file to implement this.

Here are the proposed changes:

```python
scripts/versionbump.py
<<<<<<< ORIGINAL
    updated_content = re.sub(r'__version__ = ".+?"', f'__version__ = "{new_version}"', content)

    if dry_run:
        print("Updating aider/__init__.py with new version:")
        print(updated_content)
    else:
        with open("aider/__init__.py", "w") as f:
            f.write(updated_content)

    git_commands = [
        ["git", "add", "aider/__init__.py"],
        ["git", "commit", "-m", f"version bump to {new_version}"],
        ["git", "tag", f"v{new_version}"],
        ["git", "push", "origin"],
        ["git", "push", "origin", f"v{new_version}"],
    ]
=======
    updated_content = re.sub(r'__version__ = ".+?"', f'__version__ = "{new_version}"', content)

    if dry_run:
        print("Updating aider/__init__.py with new version:")
        print(updated_content)
    else:
        with open("aider/__init__.py", "w") as f:
            f.write(updated_content)

    git_commands = [
        ["git", "add", "aider/__init__.py"],
        ["git", "commit", "-m", f"version bump to {new_version}"],
        ["git", "tag", f"v{new_version}"],
        ["git", "push", "origin"],
        ["git", "push", "origin", f"v{new_version}"],
    ]

    for cmd in git_commands:
        if dry_run:
            print(f"Running: {' '.join(cmd)}")
        else:
            subprocess.run(cmd, check=True)

    updated_dev_content = re.sub(r'__version__ = ".+?"', f'__version__ = "{new_version}-dev"', content)

    if dry_run:
        print("Updating aider/__init__.py with new dev version:")
        print(updated_dev_content)
    else:
        with open("aider/__init__.py", "w") as f:
            f.write(updated_dev_content)

    git_commands_dev = [
        ["git", "add", "aider/__init__.py"],
        ["git", "commit", "-m", f"set version to {new_version}-dev"],
        ["git", "push", "origin"],
    ]

    for cmd in git_commands_dev:
        if dry_run:
            print(f"Running: {' '.join(cmd)}")
        else:
            subprocess.run(cmd, check=True)
>>>>>>> UPDATED
```

These changes will ensure that the version in `aider/__init__.py` is set to 'x.y.z', committed, tagged, and pushed. Then, it will be updated to 'x.y.z-dev', committed, and pushed.
2023-07-11 18:36:02 -07:00
Paul Gauthier
2a595afca9 Updated FAQ 2023-07-11 15:24:58 -07:00
Paul Gauthier
f6be208d77 updated tests 2023-07-11 15:17:00 -07:00
Paul Gauthier
bcdf8968f1 updated tests 2023-07-11 15:15:56 -07:00
Paul Gauthier
2190435780 updated tests 2023-07-11 15:15:26 -07:00
Paul Gauthier
d97707a5c0 Added --openai-api-engine 2023-07-11 15:11:35 -07:00
Paul Gauthier
084132a5f8 refactor initialization of openai into main 2023-07-11 15:06:50 -07:00
Paul Gauthier
fa3283802a aider: Add --openai-api-type, --openai-api-version, and openai-api-deployment-id args, pass them into coder.create.
# Aider chat conversation:

USER: add --openai-api-type --openai-api-version and openai-api-deployment-id args. pass them into coder.create

ASSISTANT: To add the `--openai-api-type`, `--openai-api-version`, and `--openai-api-deployment-id` arguments and pass them into `coder.create`, we need to modify the `aider/main.py` file.

Here are the steps:

1. Add the new arguments to the argument parser in the `main` function.
2. Pass these arguments to the `coder.create` function.

Here are the changes:

```python
aider/main.py
<<<<<<< ORIGINAL
    ##########
    model_group = parser.add_argument_group("Advanced Model Settings")
    model_group.add_argument(
        "--openai-api-base",
        metavar="OPENAI_API_BASE",
        default="https://api.openai.com/v1",
        help="Specify the OpenAI API base endpoint (default: https://api.openai.com/v1)",
    )
=======
    ##########
    model_group = parser.add_argument_group("Advanced Model Settings")
    model_group.add_argument(
        "--openai-api-base",
        metavar="OPENAI_API_BASE",
        default="https://api.openai.com/v1",
        help="Specify the OpenAI API base endpoint (default: https://api.openai.com/v1)",
    )
    model_group.add_argument(
        "--openai-api-type",
        metavar="OPENAI_API_TYPE",
        help="Specify the OpenAI API type",
    )
    model_group.add_argument(
        "--openai-api-version",
        metavar="OPENAI_API_VERSION",
        help="Specify the OpenAI API version",
    )
    model_group.add_argument(
        "--openai-api-deployment-id",
        metavar="OPENAI_API_DEPLOYMENT_ID",
        help="Specify the OpenAI API deployment ID",
    )
>>>>>>> UPDATED
```

```python
aider/main.py
<<<<<<< ORIGINAL
    coder = Coder.create(
        main_model,
        args.edit_format,
        io,
        args.openai_api_key,
        args.openai_api_base,
        ##
        fnames=args.files,
        pretty=args.pretty,
        show_diffs=args.show_diffs,
        auto_commits=args.auto_commits,
        dirty_commits=args.dirty_commits,
        dry_run=args.dry_run,
        map_tokens=args.map_tokens,
        verbose=args.verbose,
        assistant_output_color=args.assistant_output_color,
        code_theme=args.code_theme,
        stream=args.stream,
        use_git=args.git,
    )
=======
    coder = Coder.create(
        main_model,
        args.edit_format,
        io,
        args.openai_api_key,
        args.openai_api_base,
        ##
        fnames=args.files,
        pretty=args.pretty,
        show_diffs=args.show_diffs,
        auto_commits=args.auto_commits,
        dirty_commits=args.dirty_commits,
        dry_run=args.dry_run,
        map_tokens=args.map_tokens,
        verbose=args.verbose,
        assistant_output_color=args.assistant_output_color,
        code_theme=args.code_theme,
        stream=args.stream,
        use_git=args.git,
        openai_api_type=args.openai_api_type,
        openai_api_version=args.openai_api_version,
        openai_api_deployment_id=args.openai_api_deployment_id,
    )
>>>>>>> UPDATED
```

Please note that these changes assume that the `Coder.create` method and the `Coder` class are prepared to receive and handle these new arguments. If they are not, additional changes will be needed in the `Coder` class and its subclasses.
2023-07-11 14:56:36 -07:00
Paul Gauthier
967cb1bd8d notify when preparing dirty commit; skip if /exit or /commit is input 2023-07-11 13:21:36 -07:00