Spelling (#7137)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
This commit is contained in:
@@ -710,7 +710,7 @@ enum Command {
|
||||
short,
|
||||
long,
|
||||
help = "Resume a previous session (last used or specified by --name/--session-id)",
|
||||
long_help = "Continue from a previous session. If --name or --session-id is provided, resumes that specific session. Otherwise resumes the most recently used session."
|
||||
long_help = "Continue from a previous session. If --name or --session-id is provided, resumes that specific session. Otherwise, resumes the most recently used session."
|
||||
)]
|
||||
resume: bool,
|
||||
|
||||
@@ -719,7 +719,7 @@ enum Command {
|
||||
long,
|
||||
requires = "resume",
|
||||
help = "Fork a previous session (creates new session with copied history)",
|
||||
long_help = "Create a new session by copying all messages from a previous session. Must be used with --resume. If --name or --session-id is provided, forks that specific session. Otherwise forks the most recently used session."
|
||||
long_help = "Create a new session by copying all messages from a previous session. Must be used with --resume. If --name or --session-id is provided, forks that specific session. Otherwise, forks the most recently used session."
|
||||
)]
|
||||
fork: bool,
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ use goose::session::SessionType;
|
||||
use serde_json::Value;
|
||||
use std::collections::HashMap;
|
||||
|
||||
// useful for light themes where there is no dicernible colour contrast between
|
||||
// useful for light themes where there is no discernible colour contrast between
|
||||
// cursor-selected and cursor-unselected items.
|
||||
const MULTISELECT_VISIBILITY_HINT: &str = "<";
|
||||
|
||||
@@ -1587,7 +1587,7 @@ fn configure_recipe_dialog() -> anyhow::Result<()> {
|
||||
.ok()
|
||||
.or_else(|| config.get_param(key_name).unwrap_or(None));
|
||||
let mut recipe_repo_input = cliclack::input(
|
||||
"Enter your goose recipe Github repo (owner/repo): eg: my_org/goose-recipes",
|
||||
"Enter your goose recipe GitHub repo (owner/repo): eg: my_org/goose-recipes",
|
||||
)
|
||||
.required(false);
|
||||
if let Some(recipe_repo) = default_recipe_repo {
|
||||
|
||||
@@ -198,7 +198,7 @@ pub enum PlannerResponseType {
|
||||
ClarifyingQuestions,
|
||||
}
|
||||
|
||||
/// Decide if the planner's reponse is a plan or a clarifying question
|
||||
/// Decide if the planner's response is a plan or a clarifying question
|
||||
///
|
||||
/// This function is called after the planner has generated a response
|
||||
/// to the user's message. The response is either a plan or a clarifying
|
||||
@@ -1820,7 +1820,7 @@ async fn get_reasoner() -> Result<Arc<dyn Provider>, anyhow::Error> {
|
||||
|
||||
let config = Config::global();
|
||||
|
||||
// Try planner-specific provider first, fallback to default provider
|
||||
// Try planner-specific provider first, fall back to default provider
|
||||
let provider = if let Ok(provider) = config.get_param::<String>("GOOSE_PLANNER_PROVIDER") {
|
||||
provider
|
||||
} else {
|
||||
@@ -1830,7 +1830,7 @@ async fn get_reasoner() -> Result<Arc<dyn Provider>, anyhow::Error> {
|
||||
.expect("No provider configured. Run 'goose configure' first")
|
||||
};
|
||||
|
||||
// Try planner-specific model first, fallback to default model
|
||||
// Try planner-specific model first, fall back to default model
|
||||
let model = if let Ok(model) = config.get_param::<String>("GOOSE_PLANNER_MODEL") {
|
||||
model
|
||||
} else {
|
||||
|
||||
@@ -107,7 +107,7 @@ const THINKING_MESSAGES: &[&str] = &[
|
||||
"Visualizing vectors",
|
||||
"Wrangling widgets",
|
||||
"Yodeling yaml",
|
||||
"Aligning artificial awarenesses",
|
||||
"Aligning artificial awareness",
|
||||
"Bootstrapping brain bytes",
|
||||
"Contemplating code conundrums",
|
||||
"Distilling digital dreams",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
### Test with MCP Inspector
|
||||
|
||||
Update examples/mcp.rs to use the appropriate the MCP server (eg. DeveloperRouter)
|
||||
Update examples/mcp.rs to use the appropriate MCP server (eg. DeveloperRouter)
|
||||
|
||||
```bash
|
||||
npx @modelcontextprotocol/inspector cargo run -p goose-mcp --example mcp
|
||||
|
||||
@@ -447,7 +447,7 @@ impl AutoVisualiserRouter {
|
||||
Use these tools when you are presenting data to the user which could be complemented by a visual expression
|
||||
Choose the most appropriate chart type based on the data you have and can provide
|
||||
It is important you match the data format as appropriate with the chart type you have chosen
|
||||
The user may specify a type of chart or you can pick one of the most appopriate that you can shape the data to
|
||||
The user may specify a type of chart or you can pick one of the most appropriate that you can shape the data to
|
||||
|
||||
## Available Tools:
|
||||
- **render_sankey**: Creates interactive Sankey diagrams from flow data
|
||||
|
||||
@@ -42,7 +42,7 @@ fn test_circular_dependency() {
|
||||
fn test_empty_graph() {
|
||||
let graph = CallGraph::new();
|
||||
|
||||
// Should return empty results for non-existent symbols
|
||||
// Should return empty results for nonexistent symbols
|
||||
let chains = graph.find_incoming_chains("nonexistent", 2);
|
||||
assert!(chains.is_empty());
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ fn test_validate_path() {
|
||||
let ignore = create_test_gitignore();
|
||||
let traverser = FileTraverser::new(&ignore);
|
||||
|
||||
// Test non-existent path
|
||||
// Test nonexistent path
|
||||
assert!(traverser
|
||||
.validate_path(Path::new("/nonexistent/path"))
|
||||
.is_err());
|
||||
|
||||
@@ -78,7 +78,7 @@ pub struct ReferenceInfo {
|
||||
pub ref_type: ReferenceType,
|
||||
pub line: usize,
|
||||
pub context: String,
|
||||
/// For method definitions, this stores the type the method belongs to
|
||||
/// For method definitions, this stores the type to which the method belongs
|
||||
/// For type usage, this is None
|
||||
pub associated_type: Option<String>,
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ new file mode 100644
|
||||
+new"#;
|
||||
|
||||
let history = Arc::new(Mutex::new(HashMap::new()));
|
||||
// For non-existent files, apply_diff will try to apply the patch
|
||||
// For nonexistent files, apply_diff will try to apply the patch
|
||||
// which should fail since the file doesn't exist
|
||||
let result = apply_diff(&file_path, diff, &history).await;
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ mod tests {
|
||||
let server = TutorialServer::new();
|
||||
|
||||
let params = LoadTutorialParams {
|
||||
name: "non-existent-tutorial".to_string(),
|
||||
name: "nonexistent-tutorial".to_string(),
|
||||
};
|
||||
|
||||
let result = server.load_tutorial(Parameters(params)).await;
|
||||
|
||||
@@ -46,7 +46,7 @@ already have one. This includes any necessary build tools or dependencies.
|
||||
- Always check the reference SDK for typing and correct usage
|
||||
- Python: Initialize a project using `uv init $PROJECT NAME`
|
||||
- Python: Use `uv add` for all python package management, to keep `pyproject.toml` up to date
|
||||
- Typescript: Initialize a project using `npm init -y`
|
||||
- TypeScript: Initialize a project using `npm init -y`
|
||||
- Kotlin: Use the following `gradle init` command to initialize:
|
||||
```bash
|
||||
gradle init \
|
||||
@@ -223,7 +223,7 @@ Help users test their MCP extension using these steps:
|
||||
Instruct users to start a goose session with their extension.
|
||||
|
||||
**Important**: You cannot start the goose session for them, as it is interactive. You will have to let them
|
||||
know to start it in a terminal. Make sure you include instructions on how to setup the environment
|
||||
know to start it in a terminal. Make sure you include instructions on how to set up the environment
|
||||
|
||||
```bash
|
||||
# Python example
|
||||
@@ -388,12 +388,12 @@ When users encounter issues:
|
||||
|
||||
3. Always use the reference implementations:
|
||||
|
||||
- Always clone the relevant SDK repo before starting with basic steup
|
||||
- Always clone the relevant SDK repo before starting with basic setup
|
||||
- After cloning the relevant SDK, find and `cat` the `README.md` for context
|
||||
- Use ripgrep to find specific examples within the reference
|
||||
- Reference real implementations rather than making assumptions
|
||||
|
||||
4. When building the project, if any compliation or type issues occur, _always_ check the reference SDK before making a fix.
|
||||
4. When building the project, if any compilation or type issues occur, _always_ check the reference SDK before making a fix.
|
||||
|
||||
5. When helping with implementations:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
IMPORTANT: currently GOOSE_ALLOWLIST is used in main.ts in ui/desktop, and not in goose-server. The following is for reference in case it is used on the server side for launch time enforcement.
|
||||
IMPORTANT: currently GOOSE_ALLOWLIST is used in main.ts in ui/desktop, and not in goose-server. The following is for reference when it is used on the server side for launch time enforcement.
|
||||
|
||||
# goose Extension Allowlist
|
||||
|
||||
@@ -31,7 +31,7 @@ export GOOSE_ALLOWLIST_WARNING=true
|
||||
```
|
||||
|
||||
|
||||
When this environment variable is set to `true` (case insensitive), the allowlist check will be bypassed and all commands will be allowed, even if the `GOOSE_ALLOWLIST` environment variable is set.
|
||||
When this environment variable is set to `true` (case-insensitive), the allowlist check will be bypassed and all commands will be allowed, even if the `GOOSE_ALLOWLIST` environment variable is set.
|
||||
|
||||
## Allowlist File Format
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ impl AppsManagerClient {
|
||||
}
|
||||
|
||||
fn ensure_default_apps(&self) -> Result<(), String> {
|
||||
// TODO(Douwe): we have the same check in cache, consider unfiying that
|
||||
// TODO(Douwe): we have the same check in cache, consider unifying that
|
||||
const CLOCK_HTML: &str = include_str!("../goose_apps/clock.html");
|
||||
|
||||
// Check if clock app exists
|
||||
|
||||
@@ -441,7 +441,7 @@ async fn create_streamable_http_client(
|
||||
let client_res = McpClient::connect(transport, timeout_duration, provider.clone()).await;
|
||||
|
||||
if extract_auth_error(&client_res).is_some() {
|
||||
let am = oauth_flow(&uri.to_string(), &name.to_string())
|
||||
let auth_manager = oauth_flow(&uri.to_string(), &name.to_string())
|
||||
.await
|
||||
.map_err(|_| ExtensionError::SetupError("auth error".to_string()))?;
|
||||
let mut auth_headers = HeaderMap::new();
|
||||
@@ -452,7 +452,7 @@ async fn create_streamable_http_client(
|
||||
.map_err(|_| {
|
||||
ExtensionError::ConfigError("could not construct http client".to_string())
|
||||
})?;
|
||||
let auth_client = AuthClient::new(auth_http_client, am);
|
||||
let auth_client = AuthClient::new(auth_http_client, auth_manager);
|
||||
let transport = StreamableHttpClientTransport::with_client(
|
||||
auth_client,
|
||||
StreamableHttpClientTransportConfig {
|
||||
|
||||
@@ -750,7 +750,7 @@ impl Config {
|
||||
.and_then(|v| Ok(serde_json::from_value(v.clone())?))
|
||||
}
|
||||
|
||||
/// Get secrets. If primary is in env, use env for all keys. Otherwise use secret storage.
|
||||
/// Get secrets. If primary is in env, use env for all keys. Otherwise, use secret storage.
|
||||
pub fn get_secrets(
|
||||
&self,
|
||||
primary: &str,
|
||||
@@ -876,7 +876,7 @@ impl Config {
|
||||
Paths::config_dir().join("secrets.yaml")
|
||||
}
|
||||
|
||||
/// Perform fallback to file storage when keyring is unavailable
|
||||
/// Fall back to file storage when keyring is unavailable
|
||||
fn fallback_to_file_storage(&self) -> Result<HashMap<String, Value>, ConfigError> {
|
||||
let path = Self::secrets_file_path();
|
||||
self.read_secrets_from_file(&path)
|
||||
|
||||
@@ -159,7 +159,7 @@ impl<'a> IntoIterator for &'a Conversation {
|
||||
}
|
||||
}
|
||||
|
||||
/// Fix a conversation that we're about to send to an LLM. So the last and first
|
||||
/// Fix a conversation that we're about to send to an LLM. So the first and last
|
||||
/// messages should always be from the user.
|
||||
pub fn fix_conversation(conversation: Conversation) -> (Conversation, Vec<String>) {
|
||||
let all_messages = conversation.messages();
|
||||
|
||||
@@ -339,7 +339,7 @@ mod tests {
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_remove_nonexistent_session_error() {
|
||||
// Test that removing a non-existent session returns an error
|
||||
// Test that removing a nonexistent session returns an error
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
let manager = create_test_manager(&temp_dir).await;
|
||||
let session = String::from("never-created");
|
||||
|
||||
@@ -161,7 +161,7 @@ impl CursorAgentProvider {
|
||||
}
|
||||
}
|
||||
|
||||
// If no valid result line found, fallback to joining all lines
|
||||
// If no valid result line found, fall back to joining all lines
|
||||
let response_text = lines.join("\n");
|
||||
|
||||
let message_content = vec![MessageContent::text(response_text)];
|
||||
|
||||
@@ -143,7 +143,7 @@ pub fn to_bedrock_tool_result_content_block(
|
||||
bail!("Blob resource content is not supported by Bedrock provider yet")
|
||||
}
|
||||
},
|
||||
RawContent::Audio(..) => bail!("Audio is not not supported by Bedrock provider"),
|
||||
RawContent::Audio(..) => bail!("Audio is not supported by Bedrock provider"),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -597,7 +597,7 @@ where
|
||||
// Skip event type lines
|
||||
continue;
|
||||
} else {
|
||||
// Try to parse as-is in case there's no prefix
|
||||
// Try to parse as-is when there's no prefix
|
||||
&response_str
|
||||
};
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ use rmcp::model::{Content, RawContent};
|
||||
const LEAD_WORKER_PROVIDER_NAME: &str = "lead_worker";
|
||||
|
||||
/// A provider that switches between a lead model and a worker model based on turn count
|
||||
/// and can fallback to lead model on consecutive failures
|
||||
/// and can fall back to lead model on consecutive failures
|
||||
pub struct LeadWorkerProvider {
|
||||
lead_provider: Arc<dyn Provider>,
|
||||
worker_provider: Arc<dyn Provider>,
|
||||
|
||||
@@ -295,7 +295,7 @@ impl OAuthFlow {
|
||||
// though it will ultimately only get used once
|
||||
let tx = Arc::new(tokio::sync::Mutex::new(Some(tx)));
|
||||
|
||||
// Setup a server that will receive the redirect, capture the code, and display success/failure
|
||||
// Set up a server that will receive the redirect, capture the code, and display success/failure
|
||||
let app = Router::new().route(
|
||||
"/",
|
||||
get(move |Query(params): Query<HashMap<String, String>>| {
|
||||
|
||||
@@ -113,7 +113,7 @@ impl OllamaInterpreter {
|
||||
Ok(base_url.to_string())
|
||||
}
|
||||
|
||||
fn tool_structured_ouput_format_schema() -> Value {
|
||||
fn tool_structured_output_format_schema() -> Value {
|
||||
json!({
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -282,7 +282,7 @@ Otherwise, if no JSON tool requests are provided, use the no-op tool:
|
||||
let format_instruction = format!("{}\nRequest: {}\n\n", system_prompt, last_assistant_msg);
|
||||
|
||||
// Define the JSON schema for tool call format
|
||||
let format_schema = OllamaInterpreter::tool_structured_ouput_format_schema();
|
||||
let format_schema = OllamaInterpreter::tool_structured_output_format_schema();
|
||||
|
||||
// Determine which model to use for interpretation (from env var or default)
|
||||
let interpreter_model = std::env::var("GOOSE_TOOLSHIM_OLLAMA_MODEL")
|
||||
|
||||
@@ -528,7 +528,7 @@ mod tests {
|
||||
let text = format!("Here is a fake image {}", fake_png_path.to_str().unwrap());
|
||||
assert_eq!(detect_image_path(&text), None);
|
||||
|
||||
// Test with non-existent file
|
||||
// Test with nonexistent file
|
||||
let text = "Here is a fake.png that doesn't exist";
|
||||
assert_eq!(detect_image_path(text), None);
|
||||
|
||||
@@ -573,7 +573,7 @@ mod tests {
|
||||
.to_string()
|
||||
.contains("not a valid image"));
|
||||
|
||||
// Test non-existent file
|
||||
// Test nonexistent file
|
||||
let result = load_image_file("nonexistent.png");
|
||||
assert!(result.is_err());
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ impl ProviderDef for MockCompactionProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/// Helper: Setup a test session with initial messages and token counts
|
||||
/// Helper: Set up a test session with initial messages and token counts
|
||||
async fn setup_test_session(
|
||||
agent: &Agent,
|
||||
temp_dir: &TempDir,
|
||||
|
||||
Reference in New Issue
Block a user