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
+1 -1
View File
@@ -599,8 +599,8 @@ impl Input {
}
pub mod styles {
use pathfinder_color::ColorU;
use galaxy_core::ui::theme::WarpTheme;
use pathfinder_color::ColorU;
use crate::ui_components::blended_colors;
+2 -2
View File
@@ -21,8 +21,6 @@ use crate::{
warpify::render::{render_subshell_flag, render_subshell_flag_pole},
},
};
use pathfinder_geometry::vector::vec2f;
use settings::Setting;
use galaxyui::{
elements::{
Border, ChildAnchor, ChildView, Clipped, Container, DropTarget, Element, Empty, Flex,
@@ -31,6 +29,8 @@ use galaxyui::{
},
AppContext, SingletonEntity,
};
use pathfinder_geometry::vector::vec2f;
use settings::Setting;
use super::{should_render_prompt_using_editor_decorator_elements, Input, SubshellRenderState};
@@ -1,6 +1,5 @@
use std::collections::HashSet;
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
@@ -11,6 +10,7 @@ use galaxyui::{
AppContext, Element, Entity, EntityId, ModelHandle, SingletonEntity, View, ViewContext,
ViewHandle,
};
use pathfinder_color::ColorU;
use crate::ai::blocklist::agent_view::AgentViewController;
use crate::search::data_source::QueryFilter;
+2 -2
View File
@@ -16,8 +16,6 @@ use crate::{
ui_components::icons::Icon,
workspaces::user_workspaces::UserWorkspaces,
};
use pathfinder_geometry::vector::vec2f;
use vim::vim::{VimMode, VimState};
use galaxy_completer::completer::Description;
use galaxy_core::features::FeatureFlag;
use galaxyui::{
@@ -32,6 +30,8 @@ use galaxyui::{
ui_components::components::{UiComponent, UiComponentStyles},
AppContext, EntityId, SingletonEntity, ViewHandle,
};
use pathfinder_geometry::vector::vec2f;
use vim::vim::{VimMode, VimState};
/// Whether the terminal input message bar should be shown.
///
@@ -1,8 +1,8 @@
//! Data source for the inline conversation menu.
use galaxyui::{AppContext, Entity, ModelHandle};
use itertools::Itertools;
use ordered_float::OrderedFloat;
use galaxyui::{AppContext, Entity, ModelHandle};
use crate::ai::blocklist::agent_view::AgentViewController;
use crate::ai::conversation_navigation::ConversationNavigationData;
+1 -1
View File
@@ -6,9 +6,9 @@ mod view;
pub use view::{InlineConversationMenuEvent, InlineConversationMenuView};
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::{keymap::Keystroke, SingletonEntity};
use pathfinder_color::ColorU;
use crate::ai::active_agent_views_model::{ActiveAgentViewsModel, ConversationOrTaskId};
use crate::ai::conversation_navigation::ConversationNavigationData;
@@ -1,7 +1,6 @@
//! SearchItem implementation for conversation menu items.
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::color::coloru_with_opacity;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
@@ -11,6 +10,7 @@ use galaxyui::prelude::{Align, CrossAxisAlignment, Flex, MainAxisAlignment, Main
use galaxyui::scene::{CornerRadius, Radius};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::active_agent_views_model::{ActiveAgentViewsModel, ConversationOrTaskId};
use crate::ai::agent::conversation::ConversationStatus;
+2 -2
View File
@@ -3,10 +3,10 @@
use std::{collections::HashMap, ops::Range};
use settings::Setting as _;
use string_offset::{ByteOffset, CharOffset};
use galaxy_core::features::FeatureFlag;
use galaxyui::{AppContext, SingletonEntity, ViewContext};
use settings::Setting as _;
use string_offset::{ByteOffset, CharOffset};
use crate::{
appearance::Appearance,
@@ -23,8 +23,8 @@ use crate::terminal::model::session::active_session::ActiveSession;
use crate::terminal::model::session::SessionId;
use chrono::{DateTime, Local};
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxyui::{AppContext, Entity, EntityId, ModelHandle, SingletonEntity};
use ordered_float::OrderedFloat;
#[derive(Clone, Debug)]
pub enum AcceptHistoryItem {
@@ -8,7 +8,6 @@ use crate::terminal::input::inline_menu::styles as inline_styles;
use crate::util::time_format::format_approx_duration_from_now_utc;
use chrono::{DateTime, Local};
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::color::coloru_with_opacity;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
@@ -18,6 +17,7 @@ use galaxyui::prelude::{Align, CrossAxisAlignment, Flex, MainAxisAlignment, Main
use galaxyui::scene::{CornerRadius, Radius};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
#[derive(Debug, Clone)]
pub struct InlineHistoryItem {
@@ -1,12 +1,12 @@
//! Inline history menu view for up-arrow history with conversations, commands and prompts.
use std::collections::HashSet;
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
use galaxyui::elements::ChildView;
use galaxyui::{AppContext, Element, Entity, EntityId, ModelHandle, View, ViewContext, ViewHandle};
use pathfinder_color::ColorU;
use crate::ai::agent::conversation::AIConversationId;
use crate::ai::blocklist::agent_view::{AgentViewController, AgentViewControllerEvent};
+1 -1
View File
@@ -1,7 +1,7 @@
//! Generic model for tracking the selected item in an inline menu.
use std::collections::HashSet;
use galaxyui::elements::MouseStateHandle;
use galaxyui::{Entity, ModelContext};
use std::collections::HashSet;
use crate::search::data_source::QueryFilter;
use crate::terminal::input::inline_menu::view::InlineMenuAction;
@@ -1,11 +1,11 @@
use super::styles::{HEADER_BORDER, HEADER_ROW_HEIGHT};
use settings::Setting as _;
use std::collections::HashMap;
use galaxy_core::features::FeatureFlag;
use galaxyui::{
units::{IntoPixels, Pixels},
AppContext, Entity, ModelContext, ModelHandle, SingletonEntity, WindowId,
};
use settings::Setting as _;
use std::collections::HashMap;
use crate::settings::InputSettings;
use crate::terminal::input::{
+2 -2
View File
@@ -1,8 +1,6 @@
//! Generic inline menu view for rendering search results with selection and navigation.
use std::sync::LazyLock;
use itertools::Itertools;
use pathfinder_geometry::vector::vec2f;
use galaxy_core::features::FeatureFlag;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::color::blend::Blend;
@@ -30,6 +28,8 @@ use galaxyui::{
Action, AppContext, Element, Entity, SingletonEntity, TypedActionView, ViewContext, ViewHandle,
WeakViewHandle,
};
use itertools::Itertools;
use pathfinder_geometry::vector::vec2f;
use crate::ai::blocklist::agent_view::{
agent_view_bg_color, AgentViewController, AgentViewControllerEvent,
+2 -2
View File
@@ -1,5 +1,4 @@
use crate::ai::blocklist::agent_view::agent_view_bg_color;
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
@@ -11,6 +10,7 @@ use galaxyui::platform::Cursor;
use galaxyui::prelude::{Align, ConstrainedBox, CrossAxisAlignment, Flex, Text};
use galaxyui::ui_components::keyboard_shortcut::keystroke_to_keys;
use galaxyui::{AppContext, SingletonEntity};
use pathfinder_color::ColorU;
use crate::ai::blocklist::agent_view::shortcuts::render_keystroke_with_color_overrides;
use crate::terminal;
@@ -468,9 +468,9 @@ pub fn disableable_message_item_color_overrides(
}
pub mod styles {
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::{AppContext, SingletonEntity};
use pathfinder_color::ColorU;
use crate::ui_components::blended_colors;
+1 -1
View File
@@ -5,12 +5,12 @@ pub mod common;
use std::borrow::Cow;
use std::sync::Arc;
use pathfinder_color::ColorU;
use galaxy_core::ui::Icon;
use galaxyui::assets::asset_cache::AssetSource;
use galaxyui::elements::MouseStateHandle;
use galaxyui::keymap::Keystroke;
use galaxyui::EventContext;
use pathfinder_color::ColorU;
/// A trait for types that can produce a message based on some contextual arguments.
///
/// The generic `Args` parameter allows each call site to define its own
+3 -3
View File
@@ -1,7 +1,4 @@
use fuzzy_match::{match_indices_case_insensitive, FuzzyMatchResult};
use itertools::Itertools;
use markdown_parser::{FormattedText, FormattedTextFragment, FormattedTextLine};
use ordered_float::OrderedFloat;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::color::internal_colors;
@@ -16,6 +13,9 @@ use galaxyui::text_layout::ClipConfig;
use galaxyui::ui_components::button::ButtonVariant;
use galaxyui::ui_components::components::{Coords, UiComponent, UiComponentStyles};
use galaxyui::{AppContext, Element, Entity, EntityId, SingletonEntity as _};
use itertools::Itertools;
use markdown_parser::{FormattedText, FormattedTextFragment, FormattedTextLine};
use ordered_float::OrderedFloat;
use crate::ai::llms::{
is_using_api_key_for_provider, DisableReason, LLMId, LLMInfo, LLMPreferences, LLMProvider,
@@ -1,4 +1,3 @@
use pathfinder_color::ColorU;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui::elements::{
Border, ConstrainedBox, Container, CornerRadius, Expanded, Flex, MainAxisAlignment,
@@ -7,6 +6,7 @@ use galaxyui::elements::{
use galaxyui::prelude::{Align, CrossAxisAlignment};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity as _};
use pathfinder_color::ColorU;
use crate::ai::llms::LLMSpec;
use crate::appearance::Appearance;
+1 -1
View File
@@ -1,7 +1,6 @@
use std::collections::HashSet;
use std::sync::LazyLock;
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
@@ -10,6 +9,7 @@ use galaxyui::{
AppContext, Element, Entity, EntityId, ModelHandle, SingletonEntity as _, View, ViewContext,
ViewHandle,
};
use pathfinder_color::ColorU;
use crate::ai::blocklist::agent_view::AgentViewController;
use crate::ai::blocklist::block::cli_controller::{CLISubagentController, CLISubagentEvent};
+1 -1
View File
@@ -1,9 +1,9 @@
//! Data source for the inline plan menu.
use fuzzy_match::match_indices_case_insensitive;
use galaxyui::{AppContext, Entity, SingletonEntity};
use itertools::Itertools;
use ordered_float::OrderedFloat;
use galaxyui::{AppContext, Entity, SingletonEntity};
use crate::ai::agent::conversation::AIConversationId;
use crate::ai::document::ai_document_model::AIDocumentModel;
+1 -1
View File
@@ -2,7 +2,6 @@
use ai::document::AIDocumentId;
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
use galaxyui::elements::{ConstrainedBox, Container, Highlight, ParentElement, Shrinkable, Text};
@@ -10,6 +9,7 @@ use galaxyui::fonts::{Properties, Weight};
use galaxyui::prelude::{Align, CrossAxisAlignment, Flex, MainAxisAlignment, MainAxisSize};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::document::ai_document_model::{AIDocument, AIDocumentVersion};
use crate::appearance::Appearance;
@@ -1,6 +1,6 @@
use fuzzy_match::match_indices_case_insensitive;
use ordered_float::OrderedFloat;
use galaxyui::{AppContext, Entity, EntityId, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::execution_profiles::profiles::{AIExecutionProfilesModel, ClientProfileId};
use crate::cloud_object::model::generic_string_model::StringModel;
@@ -1,5 +1,4 @@
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
use galaxyui::elements::{ConstrainedBox, Container, Flex, Highlight, ParentElement as _, Text};
@@ -7,6 +6,7 @@ use galaxyui::fonts::{Properties, Style, Weight};
use galaxyui::prelude::CrossAxisAlignment;
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity as _};
use ordered_float::OrderedFloat;
use crate::ai::execution_profiles::profiles::ClientProfileId;
use crate::appearance::Appearance;
@@ -1,10 +1,10 @@
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::icons::Icon;
use galaxyui::elements::{ConstrainedBox, Container, Highlight, Text};
use galaxyui::fonts::{Properties, Weight};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, Entity, ModelContext, ModelHandle, SingletonEntity as _};
use ordered_float::OrderedFloat;
use crate::appearance::Appearance;
use crate::cloud_object::model::persistence::CloudModel;
+1 -1
View File
@@ -3,13 +3,13 @@
use std::path::{Path, PathBuf};
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::theme::{AnsiColorIdentifier, Fill};
use galaxy_core::ui::Icon;
use galaxyui::elements::{ConstrainedBox, Container, Highlight, Text};
use galaxyui::fonts::{Properties, Weight};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::appearance::Appearance;
use crate::search::result_renderer::ItemHighlightState;
+1 -1
View File
@@ -3,9 +3,9 @@
use std::collections::HashSet;
use ai::agent::action_result::RequestFileEditsResult;
use galaxyui::{AppContext, Entity, SingletonEntity};
use itertools::Itertools;
use ordered_float::OrderedFloat;
use galaxyui::{AppContext, Entity, SingletonEntity};
use crate::ai::agent::conversation::AIConversationId;
use crate::ai::agent::{AIAgentActionResultType, AIAgentExchangeId, AIAgentInput};
+1 -1
View File
@@ -2,7 +2,6 @@
//! Renders two lines: query text and code changes summary.
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::color::coloru_with_opacity;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
@@ -13,6 +12,7 @@ use galaxyui::fonts::{Properties, Weight};
use galaxyui::scene::{CornerRadius, Radius};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::agent::AIAgentExchangeId;
use crate::appearance::Appearance;
+1 -1
View File
@@ -2,7 +2,6 @@ use std::path::PathBuf;
use ai::skills::{SkillProvider, SkillReference, SkillScope};
use fuzzy_match::{match_indices_case_insensitive, FuzzyMatchResult};
use ordered_float::OrderedFloat;
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::Fill;
use galaxyui::elements::{
@@ -15,6 +14,7 @@ use galaxyui::text_layout::ClipConfig;
use galaxyui::{
AppContext, Element, Entity, EntityId, ModelContext, ModelHandle, SingletonEntity as _,
};
use ordered_float::OrderedFloat;
use crate::ai::skills::SkillManager;
use crate::appearance::Appearance;
@@ -1,7 +1,7 @@
use ai::skills::SkillReference;
use input_classifier::InputType;
use galaxy_core::features::FeatureFlag;
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
use input_classifier::InputType;
use crate::ai::blocklist::{BlocklistAIInputEvent, BlocklistAIInputModel};
use crate::ai::skills::SkillManager;
@@ -3,8 +3,8 @@ use crate::report_if_error;
use crate::search::slash_command_menu::static_commands::commands;
use crate::settings::AISettings;
use crate::terminal::input::tests::{add_window_with_bootstrapped_terminal, initialize_app};
use settings::Setting as _;
use galaxyui::{App, SingletonEntity as _};
use settings::Setting as _;
#[test]
fn test_parse_slash_command_handles_argument_rules() {
@@ -2,18 +2,18 @@ mod saved_prompts;
mod zero_state;
use ai::skills::SkillProvider;
pub(crate) use saved_prompts::*;
use galaxy_core::features::FeatureFlag;
pub(crate) use saved_prompts::*;
pub use zero_state::*;
use std::collections::HashMap;
use std::path::PathBuf;
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::fonts::FamilyId;
use galaxyui::{AppContext, Entity, EntityId, ModelContext, ModelHandle, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::blocklist::BlocklistAIHistoryModel;
use crate::ai::skills::{SkillDescriptor, SkillManager};
@@ -90,10 +90,7 @@ impl SlashCommandDataSource {
_ => (),
});
ctx.subscribe_to_model(&AISettings::handle(ctx), |me, event, ctx| {
if matches!(
event,
AISettingsChangedEvent::IsAnyAIEnabled { .. }
) {
if matches!(event, AISettingsChangedEvent::IsAnyAIEnabled { .. }) {
me.recompute_active_commands(ctx);
}
});
@@ -1,10 +1,10 @@
use std::sync::Arc;
use futures_lite::future::yield_now;
use ordered_float::OrderedFloat;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::fonts::FamilyId;
use galaxyui::{AppContext, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::cloud_object::model::persistence::CloudModel;
use crate::cloud_object::CloudObject;
@@ -1,5 +1,5 @@
use itertools::Itertools;
use galaxyui::{Entity, ModelHandle};
use itertools::Itertools;
use crate::search::data_source::{Query, QueryResult};
use crate::search::mixer::DataSourceRunErrorWrapper;
+1 -1
View File
@@ -450,8 +450,8 @@ impl Input {
#[cfg(feature = "local_fs")]
match argument {
Some(args) if !args.is_empty() => {
use shellexpand::tilde;
use galaxy_util::path::CleanPathResult;
use shellexpand::tilde;
let Some(session_id) = self.active_block_session_id() else {
return false;
@@ -1,10 +1,10 @@
use ordered_float::OrderedFloat;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::Fill;
use galaxyui::elements::{Expanded, Highlight, Icon, ParentElement, Shrinkable};
use galaxyui::fonts::{Properties, Weight};
use galaxyui::prelude::{ConstrainedBox, Container, CrossAxisAlignment, Empty, Flex, Text};
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::blocklist::agent_view::shortcuts::render_keystroke_with_color_overrides;
use crate::search::slash_command_menu::static_commands::commands::COMMAND_REGISTRY;
@@ -1,10 +1,10 @@
use std::collections::HashSet;
use ai::skills::SkillReference;
use lazy_static::lazy_static;
use galaxyui::elements::ChildView;
use galaxyui::{AppContext, Element, ViewContext};
use galaxyui::{Entity, ModelHandle, View, ViewHandle};
use lazy_static::lazy_static;
use crate::ai::blocklist::agent_view::AgentViewController;
use crate::search::data_source::{Query, QueryFilter};
+1 -1
View File
@@ -298,8 +298,8 @@ impl Input {
}
pub mod styles {
use pathfinder_color::ColorU;
use galaxy_core::ui::theme::WarpTheme;
use pathfinder_color::ColorU;
pub fn default_border_color(theme: &WarpTheme) -> ColorU {
theme.outline().into()
@@ -1,11 +1,11 @@
use std::sync::Arc;
use parking_lot::FairMutex;
use pathfinder_color::ColorU;
use galaxy_core::ui::theme::WarpTheme;
use galaxyui::elements::{Container, Element};
use galaxyui::keymap::Keystroke;
use galaxyui::{AppContext, Entity, ModelHandle, SingletonEntity, View, ViewContext};
use parking_lot::FairMutex;
use pathfinder_color::ColorU;
use super::buffer_model::InputBufferModel;
use super::message_bar::{
+1 -1
View File
@@ -12,7 +12,6 @@ use crate::{
},
themes::theme::color::internal_colors,
};
use settings::Setting;
use galaxyui::{
elements::{
Border, ChildView, Container, CornerRadius, DropTarget, Element, Flex, Hoverable,
@@ -20,6 +19,7 @@ use galaxyui::{
},
AppContext, SingletonEntity,
};
use settings::Setting;
use super::{
common::{
@@ -1,8 +1,8 @@
//! Data source for the user query menu.
use galaxyui::{AppContext, Entity, SingletonEntity};
use itertools::Itertools;
use ordered_float::OrderedFloat;
use galaxyui::{AppContext, Entity, SingletonEntity};
use crate::ai::agent::conversation::AIConversationId;
use crate::ai::agent::AIAgentExchangeId;
@@ -1,7 +1,6 @@
//! SearchItem implementation for user query menu items.
use fuzzy_match::FuzzyMatchResult;
use ordered_float::OrderedFloat;
use galaxy_core::ui::color::coloru_with_opacity;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::Icon;
@@ -10,6 +9,7 @@ use galaxyui::fonts::{Properties, Weight};
use galaxyui::scene::{CornerRadius, Radius};
use galaxyui::text_layout::ClipConfig;
use galaxyui::{AppContext, Element, SingletonEntity};
use ordered_float::OrderedFloat;
use crate::ai::agent::AIAgentExchangeId;
use crate::appearance::Appearance;