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

Feature branch for code plan loop #366

Closed
wants to merge 38 commits into from

Conversation

fabianvf
Copy link
Contributor

  • Add core API for codeplan

  • Add maven compilation validator POC

  • Plug Maven validator into the loop


* Add core API for codeplan

* Add maven compilation validator POC

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* Plug Maven validator into the loop

Signed-off-by: Fabian von Feilitzsch <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
Signed-off-by: Fabian von Feilitzsch <[email protected]>
Co-authored-by: JonahSussman <[email protected]>
@shawn-hurley shawn-hurley force-pushed the feature/repository-level-awareness branch from ad71a0e to 2630632 Compare September 16, 2024 20:18
JonahSussman and others added 28 commits September 20, 2024 14:21
* Added poor man's vfs based on git

Signed-off-by: JonahSussman <[email protected]>

* Added RepoContextManager

Signed-off-by: JonahSussman <[email protected]>

* Did more work on Manager

Signed-off-by: JonahSussman <[email protected]>

* Added docs

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* ✨ add reflection agent

Signed-off-by: Pranav Gaikwad <[email protected]>
* ✨ adding the intial analizer-lsp RPC client and validator

Signed-off-by: Shawn Hurley <[email protected]>

* Trunk fix all trunk errors I think

Signed-off-by: Shawn Hurley <[email protected]>

---------

Signed-off-by: Shawn Hurley <[email protected]>
* ✨ Adding kai-analyzer-rpc server code

Signed-off-by: Shawn Hurley <[email protected]>

* fixing the playpen package with another refactor

Signed-off-by: Shawn Hurley <[email protected]>

---------

Signed-off-by: Shawn Hurley <[email protected]>
* First stab at RPC server

Signed-off-by: JonahSussman <[email protected]>

* Second stab at RPC server

Signed-off-by: JonahSussman <[email protected]>

* Fixed some mypy errors

Signed-off-by: JonahSussman <[email protected]>

* Added stubs

Signed-off-by: JonahSussman <[email protected]>

* More work on rpc server

Signed-off-by: JonahSussman <[email protected]>

* Added fake IDE

Signed-off-by: JonahSussman <[email protected]>

* Fixed linting issues

Signed-off-by: JonahSussman <[email protected]>

* Added comments

Signed-off-by: JonahSussman <[email protected]>

* Fixed some logging issues, may have to rethink

Signed-off-by: JonahSussman <[email protected]>

* Fixed logging and shored up types

Signed-off-by: JonahSussman <[email protected]>

* Added some code for potential docs generation

Signed-off-by: JonahSussman <[email protected]>

* Fixed reviews

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* ✨ Use a priority queue of Task stacks to fully resolve issues before prioritizing new ones

* Add custom priorities for certain errors
* Track and handle unsolved tasks
* Add copius logging
* Add tests

Signed-off-by: Fabian von Feilitzsch <[email protected]>
* ✨ Adding dependency agent, that will make the LLM respond with function calls, rather then rewrite the full file

Signed-off-by: Shawn Hurley <[email protected]>

* adding the ability to actually use the functions, the information will be handed back to the task runner

Signed-off-by: Shawn Hurley <[email protected]>

* Adding dependency agents to solve packages missing maven compiler errors.

Signed-off-by: Shawn Hurley <[email protected]>

* fixup

Signed-off-by: Shawn Hurley <[email protected]>

* fixup

Signed-off-by: Shawn Hurley <[email protected]>

* fixup

Signed-off-by: Shawn Hurley <[email protected]>

* Using new logger instead of print statments

Signed-off-by: Shawn Hurley <[email protected]>

* fixup

Signed-off-by: Shawn Hurley <[email protected]>

* fix element tree to use our parser in the test

Signed-off-by: Shawn Hurley <[email protected]>

* fixing review comments

Signed-off-by: Shawn Hurley <[email protected]>

* forcing reload to make tests work

Signed-off-by: Shawn Hurley <[email protected]>

---------

Signed-off-by: Shawn Hurley <[email protected]>
- Add a `seed_tasks` argument to TaskManager which are added at priority
  0
- Add a `max_priority` argument to TaskManager.get_next_task, which ends
  the iteration once no more issues below that priority are found
- Checks if tasks are incidentally solved and removes them from the
  queue if they are
- Removes unused `updated_file_content` argument from TaskManager
- Adds `creation_order` to Task objects, purely for my own sanity in
  deterministic testing

Signed-off-by: Fabian von Feilitzsch <[email protected]>
* 🌱 just parameterize the hardcoded things

Signed-off-by: David Zager <[email protected]>

* fixing to use all paths that adding params

Signed-off-by: Shawn Hurley <[email protected]>

* 🌱 Be nice and provide configuration for log location

Signed-off-by: David Zager <[email protected]>

---------

Signed-off-by: David Zager <[email protected]>
Signed-off-by: Shawn Hurley <[email protected]>
Co-authored-by: Shawn Hurley <[email protected]>
* 🐛 Fix kai-analyzer so that it can serve multiple requests

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* Decrease logging verbosity significantly for demo

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* Update notebook and document possible next steps

Signed-off-by: Fabian von Feilitzsch <[email protected]>

---------

Signed-off-by: Fabian von Feilitzsch <[email protected]>
* Showing task manager solving a single issue
* Using code plan loop for repo level awareness

Signed-off-by: Shawn Hurley <[email protected]>
* Added fake IDE demo

Signed-off-by: JonahSussman <[email protected]>

* Added dependency

Signed-off-by: JonahSussman <[email protected]>

* Reworked jsonrpc library a bit

Signed-off-by: JonahSussman <[email protected]>

* Moved old rpc stuff into new folder

Signed-off-by: JonahSussman <[email protected]>

* Cleaned up typing and made AnalyzerLSPStep use RPC library

Signed-off-by: JonahSussman <[email protected]>

* Further work on codeplan integration

Signed-off-by: JonahSussman <[email protected]>

* Further work

Signed-off-by: JonahSussman <[email protected]>

* Preliminary hook up

Signed-off-by: JonahSussman <[email protected]>

* Worked more on demo and fixed a load of mypy typing issues

Signed-off-by: JonahSussman <[email protected]>

* Fixed reviews and more types

Signed-off-by: JonahSussman <[email protected]>

* Fixed some bugs

Signed-off-by: JonahSussman <[email protected]>

* Added notes from conversation

Signed-off-by: JonahSussman <[email protected]>

* Checkpoint

Signed-off-by: JonahSussman <[email protected]>

* Finally got forms working

Signed-off-by: JonahSussman <[email protected]>

* Yay it works!

Signed-off-by: JonahSussman <[email protected]>

* Fixed reviews

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* Moved everything out of playpen

Signed-off-by: JonahSussman <[email protected]>

* Added a helper script

Signed-off-by: JonahSussman <[email protected]>

* Added mypy on pr github action

Signed-off-by: JonahSussman <[email protected]>

* Fixed notebooks

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* Fixed some stuff

Signed-off-by: JonahSussman <[email protected]>

* Cleared all outputs and reverted logging changes

Signed-off-by: JonahSussman <[email protected]>

* Fixed diff

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* 👻 Add documentation of code planner design

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* Expand sections, make some edits for clarity

Signed-off-by: Fabian von Feilitzsch <[email protected]>

---------

Signed-off-by: Fabian von Feilitzsch <[email protected]>
* Fixed all no-untyped-def errors

Signed-off-by: JonahSussman <[email protected]>

* Fixed all type-arg errors

Signed-off-by: JonahSussman <[email protected]>

* Further type work

Signed-off-by: JonahSussman <[email protected]>

* Fixed failing tests

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* ✨ Add max_iterations setting to task loop

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* Add support for max_depth as well

Signed-off-by: Fabian von Feilitzsch <[email protected]>

---------

Signed-off-by: Fabian von Feilitzsch <[email protected]>
* refactor / fix project structure

Signed-off-by: Pranav Gaikwad <[email protected]>

* adding back templates and fixing solution server tests (#440)

Signed-off-by: Shawn Hurley <[email protected]>

* Building off of Fabian and Jonah's work (#442)

* Work on type errors in reactive_codeplanner

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* I'm in hell

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* I'm in heaven

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* I'm cool :)

Signed-off-by: JonahSussman <[email protected]>

* Nope it was hell all along

Signed-off-by: Fabian von Feilitzsch <[email protected]>

* Fixing mypy types to pass

Signed-off-by: Shawn Hurley <[email protected]>

* all types and all tests pass. All linters are good

Signed-off-by: Shawn Hurley <[email protected]>

* trunk-check formatting broke me

Signed-off-by: Shawn Hurley <[email protected]>

---------

Signed-off-by: Fabian von Feilitzsch <[email protected]>
Signed-off-by: JonahSussman <[email protected]>
Signed-off-by: Shawn Hurley <[email protected]>
Co-authored-by: Fabian von Feilitzsch <[email protected]>
Co-authored-by: JonahSussman <[email protected]>

* Fixed bare "type: ignore"s

Signed-off-by: JonahSussman <[email protected]>

* Reverted dict[str, Any]

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: Pranav Gaikwad <[email protected]>
Signed-off-by: Shawn Hurley <[email protected]>
Signed-off-by: Fabian von Feilitzsch <[email protected]>
Signed-off-by: JonahSussman <[email protected]>
Co-authored-by: Pranav Gaikwad <[email protected]>
Co-authored-by: Fabian von Feilitzsch <[email protected]>
Co-authored-by: JonahSussman <[email protected]>
@JonahSussman JonahSussman force-pushed the feature/repository-level-awareness branch from e437366 to b6a45fb Compare October 23, 2024 15:54
pranavgaikwad and others added 5 commits October 23, 2024 17:18
* 👻 move samples to kai_solution_server/samples

Signed-off-by: Pranav Gaikwad <[email protected]>

* 👻 gringo gogo

Signed-off-by: Pranav Gaikwad <[email protected]>

* 👻 enchiladas

Signed-off-by: Pranav Gaikwad <[email protected]>

* m&ms

Signed-off-by: Pranav Gaikwad <[email protected]>

* 👻 remove run_demo

Signed-off-by: Pranav Gaikwad <[email protected]>

---------

Signed-off-by: Pranav Gaikwad <[email protected]>
Signed-off-by: JonahSussman <[email protected]>
* 👻 Changed agent to use ModelProvider

Signed-off-by: JonahSussman <[email protected]>

* 🚿 Moved ModelProvider to `kai`

Signed-off-by: JonahSussman <[email protected]>

* Fixed return type

Signed-off-by: JonahSussman <[email protected]>

---------

Signed-off-by: JonahSussman <[email protected]>
* restore run_demo

Signed-off-by: Pranav Gaikwad <[email protected]>

* make trunk happy

Signed-off-by: Pranav Gaikwad <[email protected]>

* 🐛 fix incident_store test because we are limiting to 10 solutions

Signed-off-by: Pranav Gaikwad <[email protected]>

* 👻 rebase

Signed-off-by: Pranav Gaikwad <[email protected]>

* 🐛 make trunk happy again

Signed-off-by: Pranav Gaikwad <[email protected]>

---------

Signed-off-by: Pranav Gaikwad <[email protected]>
@shawn-hurley
Copy link
Contributor

@fabianvf @pranavgaikwad @JonahSussman Would y'all want to get on a call, and work through these conflicts?

I imagine that this is going to take a long period of time, and I could give it a shot, but I have a feeling that more eyes will lead to less broken code after the merge.

If y'all are ok with it, I will do it, and we can fixup anything that is broken but wanted to give the offer.

shawn-hurley and others added 3 commits October 28, 2024 14:46
* Fixup

Signed-off-by: Shawn Hurley <[email protected]>

* Forcing kai to use the logger

Signed-off-by: Shawn Hurley <[email protected]>

* fixup

Signed-off-by: Shawn Hurley <[email protected]>

* Fixing up based on refactor

Signed-off-by: Shawn Hurley <[email protected]>

* using correct type

Signed-off-by: Shawn Hurley <[email protected]>

* fixup

Signed-off-by: Shawn Hurley <[email protected]>

* Fixing logger and other such things like the demo

Signed-off-by: Shawn Hurley <[email protected]>

* remove broken tests

Signed-off-by: Shawn Hurley <[email protected]>

* adding back logging tests

Signed-off-by: Shawn Hurley <[email protected]>

* remove logging on time to validate

Signed-off-by: Shawn Hurley <[email protected]>

* fixup merge issues

Signed-off-by: Shawn Hurley <[email protected]>

---------

Signed-off-by: Shawn Hurley <[email protected]>
@shawn-hurley
Copy link
Contributor

Closing this PR in favor of a new one using the rebased branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants