Detailed changes
@@ -1,5 +1,5 @@
use anyhow::Result;
-use assistant_tooling::{LanguageModelTool, ProjectContext, ToolOutput};
+use assistant_tooling::{LanguageModelTool, ProjectContext, ToolView};
use editor::{
display_map::{BlockContext, BlockDisposition, BlockProperties, BlockStyle},
Editor, MultiBuffer,
@@ -230,7 +230,7 @@ impl Render for AnnotationResultView {
}
}
-impl ToolOutput for AnnotationResultView {
+impl ToolView for AnnotationResultView {
type Input = AnnotationInput;
type SerializedState = Option<String>;
@@ -1,5 +1,5 @@
use anyhow::{anyhow, Result};
-use assistant_tooling::{LanguageModelTool, ProjectContext, ToolOutput};
+use assistant_tooling::{LanguageModelTool, ProjectContext, ToolView};
use editor::Editor;
use gpui::{prelude::*, Model, Task, View, WeakView};
use project::Project;
@@ -65,7 +65,7 @@ impl Render for CreateBufferView {
}
}
-impl ToolOutput for CreateBufferView {
+impl ToolView for CreateBufferView {
type Input = CreateBufferInput;
type SerializedState = ();
@@ -1,5 +1,5 @@
use anyhow::Result;
-use assistant_tooling::{LanguageModelTool, ToolOutput};
+use assistant_tooling::{LanguageModelTool, ToolView};
use collections::BTreeMap;
use file_icons::FileIcons;
use gpui::{prelude::*, AnyElement, Model, Task};
@@ -232,7 +232,7 @@ impl Render for ProjectIndexView {
}
}
-impl ToolOutput for ProjectIndexView {
+impl ToolView for ProjectIndexView {
type Input = CodebaseQuery;
type SerializedState = SerializedState;
@@ -8,6 +8,6 @@ pub use attachment_registry::{
};
pub use project_context::ProjectContext;
pub use tool_registry::{
- LanguageModelTool, SavedToolFunctionCall, ToolFunctionCall, ToolFunctionDefinition, ToolOutput,
- ToolRegistry,
+ LanguageModelTool, SavedToolFunctionCall, ToolFunctionCall, ToolFunctionDefinition,
+ ToolRegistry, ToolView,
};
@@ -31,11 +31,11 @@ enum ToolFunctionCallState {
#[default]
Initializing,
NoSuchTool,
- KnownTool(Box<dyn ToolView>),
- ExecutedTool(Box<dyn ToolView>),
+ KnownTool(Box<dyn InternalToolView>),
+ ExecutedTool(Box<dyn InternalToolView>),
}
-trait ToolView {
+trait InternalToolView {
fn view(&self) -> AnyView;
fn generate(&self, project: &mut ProjectContext, cx: &mut WindowContext) -> String;
fn try_set_input(&self, input: &str, cx: &mut WindowContext);
@@ -69,7 +69,7 @@ pub struct ToolFunctionDefinition {
}
pub trait LanguageModelTool {
- type View: ToolOutput;
+ type View: ToolView;
/// Returns the name of the tool.
///
@@ -85,7 +85,7 @@ pub trait LanguageModelTool {
/// Returns the OpenAI Function definition for the tool, for direct use with OpenAI's API.
fn definition(&self) -> ToolFunctionDefinition {
- let root_schema = schema_for!(<Self::View as ToolOutput>::Input);
+ let root_schema = schema_for!(<Self::View as ToolView>::Input);
ToolFunctionDefinition {
name: self.name(),
@@ -98,7 +98,7 @@ pub trait LanguageModelTool {
fn view(&self, cx: &mut WindowContext) -> View<Self::View>;
}
-pub trait ToolOutput: Render {
+pub trait ToolView: Render {
/// The input type that will be passed in to `execute` when the tool is called
/// by the language model.
type Input: DeserializeOwned + JsonSchema;
@@ -121,7 +121,7 @@ pub trait ToolOutput: Render {
struct RegisteredTool {
enabled: AtomicBool,
type_id: TypeId,
- build_view: Box<dyn Fn(&mut WindowContext) -> Box<dyn ToolView>>,
+ build_view: Box<dyn Fn(&mut WindowContext) -> Box<dyn InternalToolView>>,
definition: ToolFunctionDefinition,
}
@@ -304,7 +304,7 @@ impl ToolRegistry {
}
}
-impl<T: ToolOutput> ToolView for View<T> {
+impl<T: ToolView> InternalToolView for View<T> {
fn view(&self) -> AnyView {
self.clone().into()
}
@@ -404,7 +404,7 @@ mod test {
}
}
- impl ToolOutput for WeatherView {
+ impl ToolView for WeatherView {
type Input = WeatherQuery;
type SerializedState = WeatherResult;