Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFE] Support renaming a file - example with recommendation of changing persistence.xml file to application.properties #502

Open
jwmatthews opened this issue Nov 22, 2024 · 4 comments
Labels
agent enhancement New feature or request prompt-engineering Issues related to changes for prompts or tweaks for specific models

Comments

@jwmatthews
Copy link
Member

This issue is tracking our ability to detect and execute when the LLM tells us that a given file should be renamed/moved.

For this specific example we would want to:

  1. Create a new file src/main/resources/application.properties
  2. Update src/main/resources/application.properties with entries derived from the older src/main/resources/META-INF/persistence.xml
  3. Remove the older src/main/resources/META-INF/persistence.xml

See src/main/resources/META-INF/persistence.xml from coolstore sample and recommendation to change its contents and rename/move to application.properties

# This file should be renamed to application.properties
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/coolstore
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=root
quarkus.datasource.password=password

quarkus.hibernate-orm.database.generation=none
quarkus.hibernate-orm.sql-load-script=import.sql
quarkus.hibernate-orm.show-sql=false
quarkus.hibernate-orm.format-sql=true
quarkus.hibernate-orm.use-sql-comments=true
quarkus.hibernate-orm.jdbc.use-get-generated-keys=false

Note this is both rename AND move, as persistence.xml was under src/main/resources/META-INF/ and we are moving up 1 directory, so no longer under META-INF

@rszwajko
Copy link

@pranavgaikwad
On the IDE side we anticipated this functionality and introduced following Change type inspired by Git extension types.

export interface Change {
  // relative file path before the change, may be empty if file was created in this change
  original: string;
  // relative file path after the change, may be empty if file was deleted in this change
  modified: string;
  // diff in unified format - tested with git diffs
  diff: string;
}

Can you send array of such objects instead of the current response?

// current types
export interface SolutionResponse {
 diff: string;
 modified_files: string[];
 // ...other fields
}

rszwajko added a commit to rszwajko/editor-extensions that referenced this issue Nov 28, 2024
Map solution response to internal format using only information from the
provided diff.

Main advantages:
1. automatically map files to corresponding diffs - apply/discard
   operations are file based and require single-file diff
2. allows incremental update to support add/delete/rename
3. file paths in git diffs are relative to repository root which
   usually maps to VS Code workspace

Main disadvantage is increasing the dependency on the git diff format.

Reference-Url: konveyor/kai#502
Signed-off-by: Radoslaw Szwajkowski <[email protected]>
djzager pushed a commit to konveyor/editor-extensions that referenced this issue Dec 2, 2024
Map solution response to internal format using only information from the
provided diff.

Main advantages:
1. automatically map files to corresponding diffs - apply/discard
operations are file based and require single-file diff
2. allows incremental update to support add/delete/rename
3. file paths in git diffs are relative to repository root which usually
maps to VS Code workspace

Main disadvantage is increasing the dependency on the git diff format.

Reference-Url: konveyor/kai#502

Signed-off-by: Radoslaw Szwajkowski <[email protected]>
@pranavgaikwad
Copy link
Contributor

@rszwajko Note that we have not talked about adding the rename feature yet for the mvp (probably won't). But from an api standpoint, this makes sense to me.

@shawn-hurley shawn-hurley added agent prompt-engineering Issues related to changes for prompts or tweaks for specific models labels Jan 10, 2025
@shawn-hurley
Copy link
Contributor

I think that this is in the same vein as #218 and believe that they should become a single issue.

We need to handle file operations as part of the output of an LLM (rename/remove) and (rename/update contents).

Thoughts about repurposing one of these issues and re-naming to capture the fulll scope or can we create a tracking issue that links both of them.

@pranavgaikwad
Copy link
Contributor

I agree, @shawn-hurley this is part of that bigger effort indeed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
agent enhancement New feature or request prompt-engineering Issues related to changes for prompts or tweaks for specific models
Projects
None yet
Development

No branches or pull requests

4 participants