Rebrand to Galaxy, major improvements to Bedrock support, still needs some TLC though

This commit is contained in:
Ryan Ward
2026-05-07 11:29:34 -05:00
parent f4e2475c60
commit a41cbd8cc7
2433 changed files with 14208 additions and 9409 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
use std::path::Path;
use ai::skills::{ParsedSkill, SkillProvider, SkillReference};
use warpui::{AppContext, Entity, ModelContext, SingletonEntity};
use galaxyui::{AppContext, Entity, ModelContext, SingletonEntity};
use crate::ai::skills::SkillDescriptor;
@@ -29,7 +29,7 @@ use repo_metadata::{
repository::{Repository, SubscriberId},
DirectoryWatcher, RepoMetadataModel, RepositoryUpdate,
};
use warpui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
#[derive(Debug, PartialEq)]
pub enum SkillWatcherEvent {
@@ -578,7 +578,7 @@ impl SkillWatcher {
}
let Ok(std_dir_path) =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(
&canonical_dir,
)
else {
@@ -827,7 +827,7 @@ impl SkillWatcher {
ctx: &mut ModelContext<Self>,
) {
let Ok(std_path) =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(path)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(path)
else {
return;
};
@@ -10,8 +10,8 @@ use repo_metadata::{
TargetFile,
};
use tempfile::TempDir;
use warp_util::standardized_path::StandardizedPath;
use warpui::App;
use galaxy_util::standardized_path::StandardizedPath;
use galaxyui::App;
use super::SkillWatcher;
@@ -5,7 +5,7 @@ use futures::Future;
use ai::skills::{read_skills, ParsedSkill, SKILL_PROVIDER_DEFINITIONS};
use async_channel::Sender;
use repo_metadata::{repository::RepositorySubscriber, Repository, RepositoryUpdate};
use warpui::ModelContext;
use galaxyui::ModelContext;
/// Messages sent from [`RepositorySubscriber`]s to [`SkillManager`].
pub enum SkillRepositoryMessage {
+1 -1
View File
@@ -10,7 +10,7 @@ use ai::skills::{
use anyhow::Error;
use regex::Regex;
use repo_metadata::{local_model::GetContentsArgs, RepoContent, RepoMetadataModel};
use warpui::AppContext;
use galaxyui::AppContext;
use crate::warp_managed_paths_watcher::warp_managed_skill_dirs;
+27 -27
View File
@@ -5,7 +5,7 @@ use repo_metadata::{
DirectoryWatcher, RepoMetadataModel,
};
use virtual_fs::{Stub, VirtualFS};
use warpui::App;
use galaxyui::App;
use super::{
extract_skill_parent_directory, find_skill_directories_in_tree, is_home_provider_path,
@@ -327,7 +327,7 @@ fn is_home_provider_path_true_for_known_providers() {
let path = home_dir.join(".agents").join("skills");
assert!(is_home_provider_path(&path));
if let Some(path) = warp_core::paths::warp_home_skills_dir() {
if let Some(path) = galaxy_core::paths::warp_home_skills_dir() {
assert!(is_home_provider_path(&path));
}
@@ -350,7 +350,7 @@ fn extract_skill_parent_directory_returns_home_dir_for_warp_home_skill() {
eprintln!("Skipping test: home directory not available");
return;
};
let Some(warp_home_skills_dir) = warp_core::paths::warp_home_skills_dir() else {
let Some(warp_home_skills_dir) = galaxy_core::paths::warp_home_skills_dir() else {
eprintln!("Skipping test: Warp home skills directory not available");
return;
};
@@ -429,7 +429,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
false,
));
let skill1_dir = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".agents/skills/root-skill-1"),
)
.unwrap(),
@@ -438,7 +438,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
loaded: true,
});
let warp_skills = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".agents/skills"),
)
.unwrap(),
@@ -447,7 +447,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
loaded: true,
});
let warp_dir = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".agents"),
)
.unwrap(),
@@ -461,7 +461,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
false,
));
let skill2_dir = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".claude/skills/root-skill-2"),
)
.unwrap(),
@@ -470,7 +470,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
loaded: true,
});
let claude_skills = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".claude/skills"),
)
.unwrap(),
@@ -479,7 +479,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
loaded: true,
});
let claude_dir = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".claude"),
)
.unwrap(),
@@ -489,7 +489,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
});
let root = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(&repo).unwrap(),
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(&repo).unwrap(),
children: vec![warp_dir, claude_dir],
ignored: false,
loaded: true,
@@ -500,7 +500,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
app.add_singleton_model(|_| DetectedRepositories::default());
let repo_handle = watcher.update(&mut app, |w, ctx| {
w.add_directory(
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap(),
ctx,
)
@@ -511,7 +511,7 @@ fn find_skill_directories_in_tree_finds_root_skills() {
let model_handle = app.add_singleton_model(RepoMetadataModel::new);
model_handle.update(&mut app, |model, ctx| {
let key =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
model.insert_test_state(key, state, ctx);
});
@@ -555,7 +555,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
false,
));
let root_skill_dir = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".agents/skills/root-skill"),
)
.unwrap(),
@@ -564,7 +564,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
loaded: true,
});
let root_warp_skills = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".agents/skills"),
)
.unwrap(),
@@ -573,7 +573,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
loaded: true,
});
let root_warp = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join(".agents"),
)
.unwrap(),
@@ -587,7 +587,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
false,
));
let frontend_skill_dir = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join("packages/frontend/.agents/skills/frontend-skill"),
)
.unwrap(),
@@ -596,7 +596,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
loaded: true,
});
let frontend_warp_skills = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join("packages/frontend/.agents/skills"),
)
.unwrap(),
@@ -605,7 +605,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
loaded: true,
});
let frontend_warp = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join("packages/frontend/.agents"),
)
.unwrap(),
@@ -614,7 +614,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
loaded: true,
});
let frontend = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join("packages/frontend"),
)
.unwrap(),
@@ -623,7 +623,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
loaded: true,
});
let packages = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join("packages"),
)
.unwrap(),
@@ -633,7 +633,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
});
let root = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(&repo).unwrap(),
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(&repo).unwrap(),
children: vec![root_warp, packages],
ignored: false,
loaded: true,
@@ -644,7 +644,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
app.add_singleton_model(|_| DetectedRepositories::default());
let repo_handle = watcher.update(&mut app, |w, ctx| {
w.add_directory(
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap(),
ctx,
)
@@ -655,7 +655,7 @@ fn find_skill_directories_in_tree_finds_subdirectory_skills() {
let model_handle = app.add_singleton_model(RepoMetadataModel::new);
model_handle.update(&mut app, |model, ctx| {
let key =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
model.insert_test_state(key, state, ctx);
});
@@ -683,14 +683,14 @@ fn find_skill_directories_in_tree_empty_repo() {
vfs.mkdir("repo/src");
let src = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(&repo.join("src"))
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(&repo.join("src"))
.unwrap(),
children: vec![],
ignored: false,
loaded: true,
});
let root = Entry::Directory(DirectoryEntry {
path: warp_util::standardized_path::StandardizedPath::try_from_local(&repo).unwrap(),
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(&repo).unwrap(),
children: vec![src],
ignored: false,
loaded: true,
@@ -701,7 +701,7 @@ fn find_skill_directories_in_tree_empty_repo() {
app.add_singleton_model(|_| DetectedRepositories::default());
let repo_handle = watcher.update(&mut app, |w, ctx| {
w.add_directory(
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap(),
ctx,
)
@@ -712,7 +712,7 @@ fn find_skill_directories_in_tree_empty_repo() {
let model_handle = app.add_singleton_model(RepoMetadataModel::new);
model_handle.update(&mut app, |model, ctx| {
let key =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
model.insert_test_state(key, state, ctx);
});
+1 -1
View File
@@ -1,6 +1,6 @@
use ai::skills::{ParsedSkill, SkillProvider, SkillReference, SkillScope};
use serde::{Deserialize, Serialize};
use warp_core::ui::icons::Icon;
use galaxy_core::ui::icons::Icon;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
pub struct SkillDescriptor {
+3 -3
View File
@@ -18,9 +18,9 @@ use ai::skills::{
};
use command::blocking::Command;
use command::r#async::Command as AsyncCommand;
use warp_cli::skill::SkillSpec;
use warpui::AppContext;
use warpui::SingletonEntity as _;
use galaxy_cli::skill::SkillSpec;
use galaxyui::AppContext;
use galaxyui::SingletonEntity as _;
use super::SkillManager;
use crate::warp_managed_paths_watcher::warp_managed_skill_dirs;
@@ -1,7 +1,7 @@
use std::{fs, path::Path};
use anyhow::{Context as _, Result};
use warp_cli::skill::SkillSpec;
use galaxy_cli::skill::SkillSpec;
use super::*;
+7 -7
View File
@@ -16,10 +16,10 @@ use ai::skills::{
get_provider_for_path, parse_bundled_skill, provider_rank, ParsedSkill, SkillProvider,
SkillReference,
};
use warp_core::{
use galaxy_core::{
channel::ChannelState, features::FeatureFlag, report_error, safe_warn, ui::icons::Icon,
};
use warpui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
/// Activation condition for a bundled skill.
#[derive(Debug, Clone)]
@@ -419,7 +419,7 @@ impl SkillManager {
/// Load skill definitions bundled with Warp.
async fn load_bundled_skills() -> HashMap<String, BundledSkill> {
let Some(resources_dir) = warp_core::paths::bundled_resources_dir() else {
let Some(resources_dir) = galaxy_core::paths::bundled_resources_dir() else {
return HashMap::new();
};
let skills_dir = resources_dir.join("bundled").join("skills");
@@ -441,7 +441,7 @@ impl SkillManager {
/// Load Figma-specific bundled skills from the `figma/` subdirectory.
async fn load_figma_skills() -> HashMap<String, BundledSkill> {
let Some(resources_dir) = warp_core::paths::bundled_resources_dir() else {
let Some(resources_dir) = galaxy_core::paths::bundled_resources_dir() else {
return HashMap::new();
};
let figma_skills_dir = resources_dir
@@ -524,7 +524,7 @@ async fn read_bundled_skills(skills_dir: &Path) -> HashMap<String, ParsedSkill>
///
/// Supported variables:
/// - `{{warp_server_url}}` - The server root URL (e.g., `https://api.warp.dev`)
/// - `{{warp_cli_binary_name}}` - The CLI binary name (e.g., `warp` or `warp-cli`)
/// - `{{galaxy_cli_binary_name}}` - The CLI binary name (e.g., `warp` or `warp-cli`)
/// - `{{warp_url_scheme}}` - The URL scheme (e.g., `warp`, `warpdev`, `warppreview`)
/// - `{{settings_schema_path}}` - Path to the bundled JSON settings schema
/// - `{{settings_file_path}}` - Path to the user's settings TOML file
@@ -535,7 +535,7 @@ fn build_bundled_skill_context() -> HashMap<String, String> {
ChannelState::server_root_url().into_owned(),
),
(
"warp_cli_binary_name".to_owned(),
"galaxy_cli_binary_name".to_owned(),
ChannelState::channel().cli_command_name().to_owned(),
),
(
@@ -551,7 +551,7 @@ fn build_bundled_skill_context() -> HashMap<String, String> {
.collect();
if let Some(schema_path) =
warp_core::paths::bundled_resources_dir().map(|dir| dir.join("settings_schema.json"))
galaxy_core::paths::bundled_resources_dir().map(|dir| dir.join("settings_schema.json"))
{
context.insert(
"settings_schema_path".to_owned(),
+9 -9
View File
@@ -5,8 +5,8 @@ use repo_metadata::{repositories::DetectedRepositories, DirectoryWatcher, RepoMe
use std::collections::{HashMap, HashSet};
use std::fs;
use tempfile::TempDir;
use warp_core::channel::ChannelState;
use warpui::App;
use galaxy_core::channel::ChannelState;
use galaxyui::App;
use watcher::HomeDirectoryWatcher;
// ============================================================================
@@ -79,7 +79,7 @@ fn get_skills_for_working_directory_scopes_subdirectory_skills() {
// Register the repo root so get_root_for_path returns Some.
let canonical_repo =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
repo_handle.update(&mut app, |repos, _ctx| {
repos.insert_test_repo_root(canonical_repo);
@@ -201,7 +201,7 @@ fn get_skills_for_working_directory_name_collision_returns_both() {
// Register the repo root so get_root_for_path returns Some.
let canonical_repo =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
repo_handle.update(&mut app, |repos, _ctx| {
repos.insert_test_repo_root(canonical_repo);
@@ -296,7 +296,7 @@ fn cloud_environment_skills_always_included() {
let skill_manager_handle = app.add_singleton_model(SkillManager::new);
let canonical_repo_a =
warp_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo_a)
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo_a)
.unwrap();
repo_handle.update(&mut app, |repos, _ctx| {
repos.insert_test_repo_root(canonical_repo_a);
@@ -355,7 +355,7 @@ name: test-skill
description: Test skill with variables
---
Run `{{warp_cli_binary_name}}` to connect to {{warp_server_url}}.
Run `{{galaxy_cli_binary_name}}` to connect to {{warp_server_url}}.
"#,
)
.unwrap();
@@ -388,7 +388,7 @@ name: test-skill
description: Test skill with mixed variables
---
Use {{other_var}} and {{warp_cli_binary_name}} together.
Use {{other_var}} and {{galaxy_cli_binary_name}} together.
"#,
)
.unwrap();
@@ -440,7 +440,7 @@ fn test_build_bundled_skill_context() {
// settings_schema_path is only present when bundled_resources_dir() returns Some.
assert!(context.len() >= 4);
assert!(context.contains_key("warp_server_url"));
assert!(context.contains_key("warp_cli_binary_name"));
assert!(context.contains_key("galaxy_cli_binary_name"));
assert!(context.contains_key("warp_url_scheme"));
assert!(context.contains_key("settings_file_path"));
@@ -449,7 +449,7 @@ fn test_build_bundled_skill_context() {
&ChannelState::server_root_url().to_string()
);
assert_eq!(
context.get("warp_cli_binary_name").unwrap(),
context.get("galaxy_cli_binary_name").unwrap(),
ChannelState::channel().cli_command_name()
);
assert_eq!(
+6 -6
View File
@@ -14,12 +14,12 @@ use std::collections::{HashMap, HashSet};
use std::hash::{Hash, Hasher};
use std::path::Path;
use std::path::PathBuf;
use warp_core::ui::appearance::Appearance;
use warp_core::ui::theme::color::internal_colors;
use warp_core::ui::Icon;
use warpui::prelude::MouseStateHandle;
use warpui::EventContext;
use warpui::{AppContext, Element, SingletonEntity};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::Icon;
use galaxyui::prelude::MouseStateHandle;
use galaxyui::EventContext;
use galaxyui::{AppContext, Element, SingletonEntity};
use crate::warp_managed_paths_watcher::warp_managed_skill_dirs;
+1 -1
View File
@@ -14,7 +14,7 @@ fn test_skill_path_from_file_path_skill_md() {
#[test]
fn test_skill_path_from_file_path_warp_home_skill() {
let Some(warp_home_skills_dir) = warp_core::paths::warp_home_skills_dir() else {
let Some(warp_home_skills_dir) = galaxy_core::paths::warp_home_skills_dir() else {
eprintln!("Skipping test: Warp home skills directory not available");
return;
};
+3 -3
View File
@@ -2,7 +2,7 @@ use ai::skills::{SkillProvider, SkillReference, SkillScope};
use serde::{Deserialize, Serialize};
use serde_json::json;
use strum_macros::{EnumDiscriminants, EnumIter};
use warp_core::telemetry::{EnablementState, TelemetryEvent, TelemetryEventDesc};
use galaxy_core::telemetry::{EnablementState, TelemetryEvent, TelemetryEventDesc};
use crate::features::FeatureFlag;
@@ -94,7 +94,7 @@ impl TelemetryEvent for SkillTelemetryEvent {
}
fn event_descs() -> impl Iterator<Item = Box<dyn TelemetryEventDesc>> {
warp_core::telemetry::enum_events::<Self>()
galaxy_core::telemetry::enum_events::<Self>()
}
}
@@ -118,4 +118,4 @@ impl TelemetryEventDesc for SkillTelemetryEventDiscriminants {
}
}
warp_core::register_telemetry_event!(SkillTelemetryEvent);
galaxy_core::register_telemetry_event!(SkillTelemetryEvent);