context_servers: Add ability to provide labels for prompt outputs (#17077)

Server can now include an optional description in a `prompts/get`
response. Zed will displayed the description as label of the slash
command.

Release Notes:

- context_servers: Servers can provide an optional description in
`prompts/get` responses that is displayed as the slash command label.
This commit is contained in:
David Soria Parra 2024-08-29 13:13:03 +01:00 committed by GitHub
parent 4b6cd60b89
commit cf0a8a7a1a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 5 deletions

View file

@ -84,11 +84,15 @@ impl SlashCommand for ContextServerSlashCommand {
Ok(SlashCommandOutput {
sections: vec![SlashCommandOutputSection {
range: 0..result.len(),
range: 0..(result.prompt.len()),
icon: IconName::ZedAssistant,
label: SharedString::from(format!("Result from {}", prompt_name)),
label: SharedString::from(
result
.description
.unwrap_or(format!("Result from {}", prompt_name)),
),
}],
text: result,
text: result.prompt,
run_commands_in_text: false,
})
})

View file

@ -112,7 +112,7 @@ impl InitializedContextServerProtocol {
&self,
prompt: P,
arguments: HashMap<String, String>,
) -> Result<String> {
) -> Result<types::PromptsGetResponse> {
self.check_capability(ServerCapability::Prompts)?;
let params = types::PromptsGetParams {
@ -125,7 +125,7 @@ impl InitializedContextServerProtocol {
.request(types::RequestType::PromptsGet.as_str(), params)
.await?;
Ok(response.prompt)
Ok(response)
}
}

View file

@ -102,6 +102,7 @@ pub struct ResourcesListResponse {
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PromptsGetResponse {
pub description: Option<String>,
pub prompt: String,
}