Wrapping up bedrock implementation

This commit is contained in:
Ryan Ward
2026-05-13 10:04:59 -05:00
parent ed53aa99eb
commit cee61e2af0
1144 changed files with 2954 additions and 2660 deletions
@@ -12,9 +12,9 @@ use crate::search::data_source::{DataSourceSearchError, Query, QueryResult};
use crate::search::mixer::DataSourceRunErrorWrapper;
use crate::search::SyncDataSource;
use crate::workspace::Workspace;
use galaxyui::{AppContext, Entity};
use itertools::Itertools;
use std::collections::HashMap;
use galaxyui::{AppContext, Entity};
/// Sections for grouping conversations in the command palette.
#[derive(Debug, PartialEq, Eq, Hash)]
@@ -10,9 +10,6 @@ use crate::search::result_renderer::ItemHighlightState;
use crate::search::SearchItem;
use crate::ui_components::buttons::icon_button;
use crate::util::time_format::format_approx_duration_from_now;
use ordered_float::OrderedFloat;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use galaxy_core::ui::color::{blend::Blend, coloru_with_opacity};
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::color::internal_colors;
@@ -25,6 +22,9 @@ use galaxyui::fonts::{Properties, Weight};
use galaxyui::ui_components::button::ButtonTooltipPosition;
use galaxyui::ui_components::components::{UiComponent, UiComponentStyles};
use galaxyui::{AppContext, Element, Gradient, SingletonEntity};
use ordered_float::OrderedFloat;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
/// Information about which action to take once the conversation item is accepted.
#[derive(Debug)]
@@ -1,8 +1,8 @@
use std::sync::Arc;
use chrono::Utc;
use settings::manager::SettingsManager;
use galaxyui::{App, SingletonEntity};
use settings::manager::SettingsManager;
use super::*;
use crate::auth::AuthStateProvider;
@@ -8,6 +8,8 @@ use crate::search::files::search_item::FileSearchResult;
use crate::search::mixer::{AsyncDataSource, BoxFuture, DataSourceRunErrorWrapper};
use futures_lite::FutureExt;
use fuzzy_match::FuzzyMatchResult;
use galaxy_util::path::CleanPathResult;
use galaxyui::{AppContext, Entity, SingletonEntity};
use instant::Instant;
use itertools::Itertools;
use std::collections::HashSet;
@@ -15,8 +17,6 @@ use std::collections::HashSet;
use std::path::Path;
use std::path::PathBuf;
use std::sync::Arc;
use galaxy_util::path::CleanPathResult;
use galaxyui::{AppContext, Entity, SingletonEntity};
const MAX_RESULTS: usize = 100;
@@ -1,8 +1,8 @@
use fuzzy_match::FuzzyMatchResult;
use galaxy_util::path::LineAndColumnArg;
use ordered_float::OrderedFloat;
use std::fmt::Debug;
use std::path::PathBuf;
use galaxy_util::path::LineAndColumnArg;
use crate::appearance::Appearance;
use crate::search::command_palette::mixer::CommandPaletteItemAction;
@@ -4,13 +4,13 @@ use crate::drive::DriveObjectType;
use crate::search::FilterChipRenderer as CommonFilterChipRenderer;
use crate::search::QueryFilter;
use crate::util::color::{ContrastingColor, MinimumAllowedContrast};
use pathfinder_color::ColorU;
use galaxyui::elements::{
ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Flex, Hoverable, Icon,
MouseStateHandle, ParentElement, Radius, Text,
};
use galaxyui::platform::Cursor;
use galaxyui::{Element, EventContext};
use pathfinder_color::ColorU;
/// Trait to render filter chips for the command palette.
pub trait FilterChipRenderer: crate::search::FilterChipRenderer {
@@ -5,9 +5,9 @@ use crate::search::data_source::{DataSourceSearchError, Query, QueryResult};
use crate::search::mixer::{DataSourceRunErrorWrapper, SyncDataSource};
use crate::user_config::{WarpConfig, WarpConfigUpdateEvent};
use fuzzy_match::match_indices_case_insensitive;
use galaxyui::{AppContext, Entity, ModelContext, SingletonEntity};
use std::collections::HashMap;
use std::sync::Arc;
use galaxyui::{AppContext, Entity, ModelContext, SingletonEntity};
/// Datasource that searches against `LaunchConfig`s.
pub struct DataSource {
@@ -124,10 +124,10 @@ mod full_text_searcher {
use crate::search::searcher::{AsyncSearcher, DEFAULT_MEMORY_BUDGET, SCORE_CONVERSION_FACTOR};
use crate::user_config::WarpConfig;
use fuzzy_match::FuzzyMatchResult;
use std::collections::HashMap;
use std::sync::Arc;
use galaxyui::r#async::executor::Background;
use galaxyui::{AppContext, SingletonEntity};
use std::collections::HashMap;
use std::sync::Arc;
// The name of the launch configs are duplicated to ensure that the searcher
// hashes the name to uniquely identify the launch config.
@@ -6,9 +6,9 @@ use crate::search::command_palette::mixer::CommandPaletteItemAction;
use crate::search::command_palette::render_util::render_search_item_icon;
use crate::search::result_renderer::ItemHighlightState;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use std::sync::Arc;
use galaxyui::{AppContext, Element, SingletonEntity};
/// SearchItem for a matching [`LaunchConfig`].
#[derive(Debug)]
+2 -2
View File
@@ -6,11 +6,11 @@ use crate::search::mixer::SearchMixer;
use crate::server::ids::SyncId;
use crate::util::bindings::CommandBinding;
use crate::workspace::PaneViewLocator;
use std::sync::Arc;
use strum_macros::IntoStaticStr;
use galaxy_util::path::LineAndColumnArg;
use galaxyui::keymap::BindingId;
use galaxyui::{EntityId, WindowId};
use std::sync::Arc;
use strum_macros::IntoStaticStr;
pub type CommandPaletteMixer = SearchMixer<CommandPaletteItemAction>;
@@ -16,7 +16,6 @@ use crate::terminal::model::blockgrid::BlockGrid;
use crate::terminal::model::grid::Dimensions;
use crate::terminal::safe_mode_settings::get_secret_obfuscation_mode;
use crate::terminal::SizeInfo;
use pathfinder_geometry::vector::vec2f;
use galaxyui::elements::{
Align, Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Flex, Highlight,
ParentElement, Radius, Shrinkable, Wrap,
@@ -25,6 +24,7 @@ use galaxyui::fonts::{Properties, Weight};
use galaxyui::ui_components::components::{UiComponent, UiComponentStyles};
use galaxyui::units::IntoPixels;
use galaxyui::{AppContext, Element, SingletonEntity};
use pathfinder_geometry::vector::vec2f;
/// Renders a navigation session.
pub fn render_navigation_session(
@@ -6,9 +6,9 @@ use crate::search::data_source::QueryResult;
use crate::search::SyncDataSource;
use crate::session_management::{CommandContext, SessionNavigationData, SessionSource};
use fuzzy_match::match_indices_case_insensitive;
use galaxyui::{AppContext, ModelHandle};
use itertools::Itertools;
use std::ops::Range;
use galaxyui::{AppContext, ModelHandle};
/// A session that was fuzzy matched against a search term.
pub struct MatchedSession {
@@ -252,9 +252,9 @@ mod full_text_searcher {
use crate::search::data_source::QueryResult;
use crate::search::searcher::{DEFAULT_MEMORY_BUDGET, SCORE_CONVERSION_FACTOR};
use crate::session_management::{SessionNavigationData, SessionSource};
use galaxyui::{AppContext, ModelHandle};
use itertools::Itertools;
use std::collections::HashMap;
use galaxyui::{AppContext, ModelHandle};
define_search_schema!(
schema_name: SESSION_SEARCH_SCHEMA,
@@ -8,9 +8,9 @@ use crate::search::item::IconLocation;
use crate::search::result_renderer::ItemHighlightState;
use crate::session_management::SessionNavigationData;
use crate::ui_components::icons::Icon;
use ordered_float::OrderedFloat;
use galaxyui::elements::Container;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
/// Search item to render a session within the command palette.
pub struct SearchItem {
@@ -10,10 +10,10 @@ use crate::search::{
};
use crate::terminal::available_shells::AvailableShells;
use fuzzy_match::{match_indices_case_insensitive, FuzzyMatchResult};
use std::collections::HashMap;
use std::sync::Arc;
use galaxy_core::features::FeatureFlag;
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
use std::collections::HashMap;
use std::sync::Arc;
/// Controls which kinds of new sessions the data source should surface.
#[derive(Copy, Clone, Debug)]
@@ -312,9 +312,9 @@ mod full_text_searcher {
AsyncSearcher, DEFAULT_MEMORY_BUDGET, MIN_MEMORY_BUDGET, SCORE_CONVERSION_FACTOR,
};
use fuzzy_match::FuzzyMatchResult;
use galaxyui::r#async::executor::Background;
use std::collections::HashMap;
use std::sync::Arc;
use galaxyui::r#async::executor::Background;
define_search_schema!(
schema_name: NEW_SESSION_SEARCH_SCHEMA,
@@ -2,9 +2,9 @@ use crate::server::telemetry::AddTabWithShellSource;
use crate::terminal::available_shells::AvailableShell;
use crate::terminal::view::TerminalAction;
use crate::WorkspaceAction;
use galaxyui::Action;
use std::borrow::Cow;
use std::fmt;
use galaxyui::Action;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct NewSessionOptionId(pub(crate) String);
@@ -8,9 +8,9 @@ use fuzzy_match::FuzzyMatchResult;
use crate::search::command_palette::mixer::CommandPaletteItemAction;
use crate::search::result_renderer::ItemHighlightState;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use std::sync::Arc;
use galaxyui::{AppContext, Element, SingletonEntity};
#[derive(Debug)]
pub struct SearchItem {
@@ -3,10 +3,10 @@ use crate::search::result_renderer::ItemHighlightState;
use crate::themes::theme::Blend;
use crate::ui_components::icons::Icon;
use crate::util::color::{ContrastingColor, MinimumAllowedContrast};
use pathfinder_color::ColorU;
use galaxy_core::ui::theme::Fill;
use galaxyui::elements::{Align, ConstrainedBox, Container, Empty};
use galaxyui::Element;
use pathfinder_color::ColorU;
/// Helper function to render an icon for any search item within the command palette with consistent
/// styling.
@@ -1,7 +1,7 @@
use ai::workspace::WorkspaceMetadata;
use fuzzy_match::{match_indices_case_insensitive, FuzzyMatchResult};
use itertools::Itertools;
use galaxyui::{AppContext, Entity, SingletonEntity};
use itertools::Itertools;
use super::RepoSearchItem;
use crate::ai::persisted_workspace::PersistedWorkspace;
@@ -1,13 +1,13 @@
use ai::workspace::WorkspaceMetadata;
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use std::path::Path;
use galaxy_core::ui::theme::Fill;
use galaxyui::{
elements::{Align, ConstrainedBox, Flex, Highlight, ParentElement, Shrinkable, Text},
fonts::{Properties, Weight},
AppContext, Element, SingletonEntity,
};
use ordered_float::OrderedFloat;
use std::path::Path;
use crate::appearance::Appearance;
use crate::search::action::search_item::styles;
@@ -1,6 +1,6 @@
use super::*;
use itertools::Itertools;
use galaxyui::keymap::BindingId;
use itertools::Itertools;
#[test]
fn test_enqueue_new_item() {
@@ -1,11 +1,11 @@
use crate::search::item::SearchItem;
use crate::search::result_renderer::ItemHighlightState;
use crate::{appearance::Appearance, search::command_palette::mixer::CommandPaletteItemAction};
use ordered_float::OrderedFloat;
use galaxyui::{
elements::{Empty, Text},
AppContext, Element, SingletonEntity,
};
use ordered_float::OrderedFloat;
/// A simple separator item that displays a title to visually separate sections in search results.
#[derive(Debug)]
+2 -2
View File
@@ -15,17 +15,17 @@ use crate::terminal::keys_settings::KeysSettings;
use crate::themes::theme::WarpTheme;
use crate::view_components::DismissibleToast;
use crate::ToastStack;
use lazy_static::lazy_static;
use galaxy_core::send_telemetry_from_app_ctx;
use galaxy_util::path::LineAndColumnArg;
use lazy_static::lazy_static;
use crate::search::action::search_item::MatchedBinding;
use itertools::Itertools;
use galaxyui::elements::DispatchEventResult;
use galaxyui::elements::EventHandler;
use galaxyui::event::KeyState;
use galaxyui::platform::keyboard::KeyCode;
use galaxyui::FocusContext;
use itertools::Itertools;
use crate::search::command_palette::zero_state::{self, Event as ZeroStateEvent, ZeroState};
use crate::search::data_source::QueryResult;
@@ -18,8 +18,8 @@ use crate::search::QueryFilter;
use crate::server::ids::{ObjectUid, SyncId};
use crate::settings::AISettings;
use crate::workflows::CloudWorkflow;
use std::collections::HashMap;
use galaxyui::{AppContext, Entity, ModelContext, SingletonEntity};
use std::collections::HashMap;
/// Datasource that searches against all Warp Drive objects
pub struct DataSource {
@@ -563,9 +563,9 @@ mod full_text_searcher {
use crate::server::ids::ObjectUid;
use crate::workflows::CloudWorkflow;
use fuzzy_match::FuzzyMatchResult;
use itertools::Itertools;
use galaxyui::r#async::executor::Background;
use galaxyui::{AppContext, SingletonEntity};
use itertools::Itertools;
/// Memory budget for the search index of warp drive.
/// Warp could potentially have a lot of objects, so we increase it from the default of 50MB to 100MB
@@ -10,11 +10,11 @@ use crate::search::env_var_collections::fuzzy_match::FuzzyMatchEnvVarCollectionR
use crate::search::item::{IconLocation, SearchItem};
use crate::search::result_renderer::ItemHighlightState;
use crate::ui_components::icons::Icon;
use itertools::Itertools;
use ordered_float::OrderedFloat;
use galaxyui::elements::{Container, Flex, Highlight, ParentElement, Text};
use galaxyui::fonts::{Properties, Weight};
use galaxyui::{AppContext, Element, SingletonEntity};
use itertools::Itertools;
use ordered_float::OrderedFloat;
pub const ENV_VAR_NAME_SEPARATOR: &str = ", ";
@@ -12,10 +12,10 @@ use crate::search::notebooks::fuzzy_match::{
};
use crate::search::result_renderer::ItemHighlightState;
use crate::ui_components::icons::Icon;
use ordered_float::OrderedFloat;
use galaxyui::elements::{Container, Flex, Highlight, ParentElement, Text};
use galaxyui::fonts::{Properties, Weight};
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
/// Search item result for a cloud notebook.
#[derive(Debug)]
@@ -10,10 +10,10 @@ use crate::search::result_renderer::ItemHighlightState;
use crate::search::workflows::fuzzy_match::FuzzyMatchWorkflowResult;
use crate::ui_components::icons::Icon;
use crate::workflows::CloudWorkflow;
use ordered_float::OrderedFloat;
use galaxyui::elements::{Clipped, Container, Flex, Highlight, ParentElement, Shrinkable, Text};
use galaxyui::fonts::{Properties, Weight};
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
/// Search item result for a cloud workflow.
#[derive(Debug)]
+2 -2
View File
@@ -1,7 +1,7 @@
mod items;
pub use items::Items;
use galaxy_core::context_flag::ContextFlag;
use galaxy_core::features::FeatureFlag;
pub use items::Items;
use crate::appearance::Appearance;
use crate::search::command_palette::FilterChipRenderer;
@@ -10,12 +10,12 @@ use crate::drive::settings::WarpDriveSettings;
use crate::search::QueryFilter;
use crate::settings::AISettings;
use crate::workspace::Workspace;
use std::collections::HashMap;
use galaxyui::elements::{Container, Flex, MouseStateHandle, ParentElement, Shrinkable, Wrap};
use galaxyui::{
AppContext, Element, Entity, ModelHandle, SingletonEntity, TypedActionView, View, ViewContext,
WindowId,
};
use std::collections::HashMap;
/// A zero-state view for the command palette.
pub struct ZeroState {