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

Agentic Assistant #1464

Draft
wants to merge 52 commits into
base: dev
Choose a base branch
from
Draft

Agentic Assistant #1464

wants to merge 52 commits into from

Conversation

russell-rozenbaum
Copy link

@russell-rozenbaum russell-rozenbaum commented Jan 17, 2025

🐙 Agentic Assistant

TL;DR

Implements an LLM-based coding agent in Hazel
https://hazel.org/build/helpful-assistant/


🛠 Implements...

  • Sidebar: Adds a sidebar to Hazel. Currently, the sidebar has two tabs: Language Documentation and Agentic Assistant. Thus, it removes the language-doc toggle in the bottom bar.
  • Chat Log: Where the human, LLM, and LS all talk to each other, in an attempt to implement what the human seemingly couldn't on their own
  • Coding Agent:
    • API for LLM: Connects to external LLM
    • LSP: Connects to (Hazel's?) Language Server

📋 To-Do/Tasks

Thread A

  • Add Ability to Copy/Paste in Text Box: Currently, copy and paste only works in Hazel's code editors, but not text boxes (this was and still is also a problem in the title-editor PR). This is crucial in this PR since manually testing without setting up a connection to an LLM or LS will require copying and pasting large texts from and into the text box.

Thread B

  • Build Datastructure for Chat Log: Need to add types/modules/records and necessary implementations to properly store and fetch information from the chat between the human, LLM, and LS.
  • Chat Log UI
    • Show sent messages in the chat log
    • Add a code cell within the chat log for displaying part of the context/IDE shown to the LLM via the LS
  • Add Chat IDs: It may prove to be beneficial to save prior chats, especially when conducting experimentation. To do this, we could add UUIDs to chats and store them.

Thread C

  • Connect to ChatLSP
  • Set-up Connection to Hazel's LS
  • Connect to an external LLM: This is of the lowest priority, since for now we can just act as an intermediary between the LS and the LLM
  • Implement Coding-Agent Functionality

📅 Future PR Ideas

  • Add More Items to Sidebar: Add things like the context (currently in the bottom bar) to the sidebar.

@cyrus- cyrus- changed the title Assistant Agentic Assistant Jan 18, 2025
This was linked to issues Feb 13, 2025
russell-rozenbaum and others added 24 commits February 14, 2025 11:33
…und; this is pretty sloppy code, and some todos would be to clean this up, but for now, it may serve as good grounds to implement other features on top
…less, it works if you hit tab-- mainly the UI and some sort of tile parsing/filling when filling holes in between tiles
…passed through update calls, starting in Page.re
…t, code suggestion, or task composition/completion); adds a notion of past chats through a chat history; strongly based off Cursor`s framework
…rather than lists, allowing for faster lookup and creation (probably minute tho considering the size of the chat logs, does have more intuitive implementation tho); fixed unresponsiveness of some buttons in the sidebar (like settings, new chat, history, and delete chat)... the solution to this is a little funky, and was basically to move the update injections outside of the button itself, into the surrounding div block, not sure what is going on here
…at cursor position, so a todo will be to place code at prior suggestion location... I am imagining this may more involved than it seems, eg. what happens when code is signicantly restructured? My inclination is to remember the hole id, and simply resuggest the code in that hole if it still exists (with same id)
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.

error rounds ??-triggered completions
3 participants