Simplify the role of the agent by changing it to handle function calling only.
Change diffs to arguments to function callings instead of agent outputs, so that they can be done as many times as possible.
Also, change the commit function to one of the function callings instead of after the output of the agent, so that successful and unsuccessful commits can be fed back to the agent.
Turn on Structured Outputs in OpenAI.
Make the commit message a fixed message, as agents sometimes forgot to include it as an argument.
If there was no commit, the pull request would fail and result in an error, but change it so that it is not an error.
Prevent infinite loops by ensuring that the same function is not called with the same arguments more than once.
Improvement
Change the file tree to only the root hierarchy, instead of recursive, to reduce tokens and noise. Even with the reduction, GitAuto can still dig into the file tree hierarchy itself, or keyword search.
Change the progress bar to give detailed information about the progress in increments of 10%.
Refactoring
Shorten variable names from TIMEOUT_IN_SECONDS to TIMEOUT.
Shorten the number of lines by grouping frequently used arguments into base_args.
What does this PR do?
About Agent
Improvement
Refactoring