Centralize project context provided to the assistant (#11471)

This PR restructures the way that tools and attachments add information
about the current project to a conversation with the assistant. Rather
than each tool call or attachment generating a new tool or system
message containing information about the project, they can all
collectively mutate a new type called a `ProjectContext`, which stores
all of the project data that should be sent to the assistant. That data
is then formatted in a single place, and passed to the assistant in one
system message.

This prevents multiple tools/attachments from including redundant
context.

Release Notes:

- N/A

---------

Co-authored-by: Kyle <kylek@zed.dev>
This commit is contained in:
Max Brunsfeld
2024-05-06 17:01:50 -07:00
committed by GitHub
co-authored by Kyle
parent f2a415135b
commit a64e20ed96
15 changed files with 841 additions and 518 deletions
Generated
+7
View File
@@ -411,10 +411,17 @@ name = "assistant_tooling"
version = "0.1.0"
dependencies = [
"anyhow",
"collections",
"futures 0.3.28",
"gpui",
"project",
"schemars",
"serde",
"serde_json",
"settings",
"sum_tree",
"unindent",
"util",
]
[[package]]