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

- #13981

Closed
wants to merge 70 commits into from
Closed

- #13981

wants to merge 70 commits into from

Conversation

jfaltermeier
Copy link
Contributor

@jfaltermeier jfaltermeier commented Aug 1, 2024

Opened against wrong repo

eneufeld and others added 30 commits May 13, 2024 13:38
- add ui
- add openai integration
- introduce ChatResponseParts
- LanguageModelProvider can be used in both backend and frontend
  - frontend access is generically implemented independent of the
    actual LanguageModelProvider implementation
- split code into four packages:
  - ai-agent: containing the AgentDispatcher. At the moment just
    delegates to the LanguageModelProvider. Can run in both frontend
    and backend
  - ai-chat: only containing the UI part of the chat.
  - ai-model-provider: containing the infrastructure of the
    LanguageModelProvider and its frontend bridge
  - ai-openao: only contains the Open AI LanguageModelProvider
Implements the LanguageModelProviderRegistry which is able to handle
an arbitrary number of LanguageModelProviders.

Refactors the LanguageModelProvider to only return a simple text or
stream of text. It's now the agent's responsibility to convert this
into response parts. Therefore the interfaces are also moved to the
agent package.

The LanguageModelProviderRegistry implementation for the frontend
handles all LanguageModelProvider registered in the frontend as well as
in the backend.

Fixes the StreamNode in the tree-widget to update itself correctly
when new tokens arrive.
Introduces ChatModel, including nested ChatRequestModel and
ChatResponseModel to represent chat sessions. The chat models allow to
inspect and track requests and their responses.

Also introduces the ChatService which can be used to manage chat
sessions and sending requests.

Architecture is inspired by the VS Code implementation, however it
intends to be more generic.
Change-Id: I179432698332ff52b33aba7b1f7e203f2bee9c77
Change-Id: I80d33303ceadf940f17265b7d910a5c13b59ec89
eclipsesource/osweek-2024#47

Change-Id: Ib9dd82e3ba062990f5642883bc9439aca52931ad
Change-Id: I186190dede14d729992977c2805e2c07100c2d17
Change-Id: Ia257c9a65b5f2bb9aa3e9ccc506f6394d744ff8f
Change-Id: I419790bda5497433bb2ba3f562b1121391cd7da0
Logs LanguageModel requests and their results to a separate output
channel per LanguageModel.
- rename the open button to 'Select Folder'
- set the default folder name to 'prompt-templates'
- check if a template with a given id was overridden
- adapt calls to return the overridden template if so
AlexandraBuzila and others added 26 commits July 30, 2024 14:19
The language model selection value should be initialized with the value
from settings if it exists
Implements:
- Copy
- Insert at cursor
- Monaco Editor
- Navigating to the location of the file (if provided)


Co-authored-by: Lucas Koehler <lkoehler@eclipsesource.com>
- Ensure we always create a variable part even for undefined variables
-- Prompt text will then default to user text (including '#')

- Allow adopters to register resolvers with priority
-- Given a particular variable name, argument and context

- Automatically resolve all variable parts in a chat request
-- Ensure parts always provide a matching prompt text

- Make sure variable service is part of core
-- Generic variable handling for all agents and UI layers
-- Chat-specific variable handling only in the chat layer
-- Provide example of 'today' variable

Fixes eclipsesource/osweek-2024#46
Co-authored-by: Christian W. Damus <cdamus.ext@eclipsesource.com>
Added a view for displaying all the configured llamafiles.
Configured llamafiles can be started and killed.
One llamafile can be set as active, then being used in the chat.
The chat integration is currently hardcoded to use the active llamafile language model.
This should be changed as soon as the chat integration has a dropdown to select the language model (#42).
A follow up will be created to describe the next steps.
- Extend `ChatServiceImpl` to extract the selected agent from the parsed request
- Extend `ChatModel` to ensure  request and response model keep a reference to their agent
- Update rendering of chat view to render icons and label of the chat agent if set
- Update agent definitions. Since we reuse the request parsing from vscode following reuqirements have to be met
  - No whitespaces are allowed in the agent name.
  - The locations property needs to be set

- Extract type of `Agent.languageModelRequirements` into dedicated definition
Change-Id: I0b9d48e5aa31862a725c73e4f4e2576163e1e47b
- Ensure history UI considers all agents not only chat agents
- Ensure code completion agent records its history
- Enhance styling

Fixes eclipsesource/osweek-2024#64
Fixes eclipsesource/osweek-2024#65

Co-authored-by: Tobias Ortmayr <tortmayr@eclipsesource.com>
- Extend EditorManager to have more flexible selection resolution
- Allow adopters to register selection resolvers
-- Provide selection resolver for GitHub location syntax
-- Provide selection resolver for TypeDoc symbol navigation
-- Provide selection provider for fragment textual search
- Fix minor issue in editor-manager where URI is not passed properly

Fixes eclipsesource/osweek-2024#18
- Make language optional in CodeChatResponseContentImpl
- If given, show code language in the code part renderer top bar
- Improve code parsing in the default chat agent:
  - Remove language and leading new line from code block
  - Remove trailing whitespace from code block
Allows adding easier new configurations
- Shows available variables
- Adds agent based detail view
- Sync configuration in user settings.json

Co-authored-by: Nina Doschek <ndoschek@eclipsesource.com>
Adds a rag based variable for glsp. It can be invoked via
`#glsp:<path-to-glsp-website-source>`

Co-authored-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>
- add a new agent "TheiaWorkspaceAgent"
- add two tools to read files from workspace and contents from files
)

* adds a `HorizontalLayoutPartRenderer`
* updates the `CommandPartRenderer` to execute theia and custom commands
* adds a `CommandChatAgent` for finding Theia commands
  * system prompt is registered as a template and may be customized

Co-authored-by: Alexandra Buzila <abuzila@eclipsesource.com>
Co-authored-by: Tobias Ortmayr <tortmayr@eclipsesource.com>
Co-authored-by: Olaf Lessenich <olessenich@eclipsesource.com>
- Move today variable contribution to common where it should have been
- Add a variable to retrieve the complete content of the current editor

Relates to eclipsesource/osweek-2024#46
Introduces ChatAgent to assist users in creating PRs based on current changes.
The system prompt now asks for the git diff, status, ticket link, and PR template.
Added two variables, #git-status and #git-diff, for capturing status and diff information.
Added the "Invoke PR finalization" command, which opens the chat and sends a predefined message including the git diff and status.
Includes various bug fixes.

Co-authored-by: Lucas Koehler <lkoehler@eclipsesource.com>
- Allow user to lock auto-scroll on chat window toolbar
- Persist lock state during reloads

Fixes eclipsesource/osweek-2024#62
- add a default template that the Default Chat Agent can use
- add a variable contribution to list available agents
* add a template for finding the right chat agent
* implement agent selection
@jfaltermeier jfaltermeier deleted the issue-99 branch August 1, 2024 13:37
@jfaltermeier jfaltermeier changed the title WIP: Delegating default chat agent - Aug 1, 2024
@jfaltermeier jfaltermeier restored the issue-99 branch August 1, 2024 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.