Skip to content
This repository was archived by the owner on Jun 18, 2025. It is now read-only.
This repository was archived by the owner on Jun 18, 2025. It is now read-only.

LLM integration #304

@ekg

Description

@ekg

Sometimes it's nice to speak to describe the code that you want and the changes you want made. I'd like to make it possible to feed the contents of a pane through a LLM to transform or patch them.

In the UI, I want a button to click (potentially placed by the name of the programming language) that divides the pane in half. The bottom portion should contain the code in question. The top should contain a chat window for interaction with a LLM that proposes changes to the code using an aider.chat-type approach. This involves sending diffs in the form of "SEARCH/REPLACE" blocks that define how the code is changed. Doing this with full detail may require future issues, but this is what we want to work towards.

The system will need to monitor execution context and incorporate errors into the chat interaction. These errors should effectively be copied into the chat box, as long as they don't become too profuse. For the initial version, we'll simply paste the current state of the code before the user prompt in the chat. All of this interaction should be visible in the log for reference.

A system prompt will explain to the model the context in which it is operating and the behavior expected of it. This should be configurable for each language type, and locally editable in each pane via /commands in the chat.

This issue will be considered complete when:

  1. Each pane can be manipulated by a chat with an LLM
  2. The pane's code is seamlessly updated according to the output of the LLM
  3. The LLM sees any errors that occur and they are appropriately fed into chat
  4. System prompts are configurable per language
  5. Local prompt customization works through chat commands
  6. All interactions are logged and traceable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions