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
+4 -4
View File
@@ -26,16 +26,16 @@ use crate::terminal::model::iterm_image::ITermImage;
use crate::terminal::model::secrets::ObfuscateSecrets;
use crate::terminal::model::selection::{Selection, SelectionRange};
use crate::terminal::{SizeInfo, SizeUpdate};
use galaxy_core::semantic_selection::SemanticSelection;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use galaxyui::text::SelectionType;
use galaxyui::units::Lines;
use itertools::Itertools;
use num_traits::Float as _;
use parking_lot::Mutex;
use pathfinder_color::ColorU;
use std::sync::Arc;
use vec1::Vec1;
use galaxy_core::semantic_selection::SemanticSelection;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use galaxyui::text::SelectionType;
use galaxyui::units::Lines;
pub struct AltScreen {
grid_handler: GridHandler,
+1 -1
View File
@@ -2,11 +2,11 @@
//! app -- for example, the payloads sent from shell precmd and preexec.
use crate::terminal::model::block::BlockId;
use crate::terminal::model::session::SessionId;
use galaxy_core::command::ExitCode;
use ordered_float::OrderedFloat;
use serde::{Deserialize, Deserializer, Serialize};
use std::collections::HashSet;
use std::path::PathBuf;
use galaxy_core::command::ExitCode;
/// Indicates that the following JSON-encoded message is hex-encoded for Warp's lifecycle hooks.
/// In DCS, it is used as the final char in the DCS start sequence.
+3 -3
View File
@@ -15,11 +15,11 @@ mod handler;
use ansi_c_decoder::*;
pub use dcs_hooks::*;
pub use galaxy_terminal::model::ansi::control_sequence_parameters::*;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
pub use handler::*;
use instant::Instant;
use itertools::Itertools;
pub use galaxy_terminal::model::ansi::control_sequence_parameters::*;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use crate::features::FeatureFlag;
use crate::terminal::model::completions::{
@@ -45,11 +45,11 @@ use log::debug;
use std::collections::HashMap;
use std::fmt::Write;
use galaxyui::color::ColorU;
use std::str::FromStr as _;
use std::time::Duration;
use std::{io, str};
use vte::{Params, Parser as VteParser, Perform as VtePerform};
use galaxyui::color::ColorU;
use super::kitty::parse_kitty_chunk;
use super::terminal_model::TmuxInstallationState;
+1 -1
View File
@@ -1,6 +1,6 @@
use hex;
use galaxy_core::command::ExitCode;
use galaxyui::color::ColorU;
use hex;
use super::*;
use crate::terminal::model::index::VisibleRow;
+5 -5
View File
@@ -1,9 +1,9 @@
mod interaction_mode;
mod serialized_block;
use galaxy_core::features::FeatureFlag;
pub use interaction_mode::*;
pub use serialized_block::*;
use galaxy_core::features::FeatureFlag;
use super::grid::grid_handler::{GridHandler, PerformResetGridChecks};
use super::grid::{Cursor, RespectDisplayedOutput};
@@ -50,15 +50,15 @@ use crate::{
};
use chrono::{DateTime, Duration, FixedOffset, Local};
use hex;
use instant::Instant;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::Vector2F;
use galaxy_core::command::ExitCode;
use galaxy_terminal::model::grid::Dimensions as _;
use galaxy_util::path::user_friendly_path;
use galaxyui::units::{IntoLines, Lines};
use galaxyui::{r#async::executor::Background, record_trace_event};
use hex;
use instant::Instant;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::Vector2F;
use enum_iterator::all;
use lazy_static::lazy_static;
@@ -13,9 +13,9 @@ use crate::terminal::model::BlockId;
use crate::terminal::ShellHost;
use crate::util::extensions::TrimStringExt;
use chrono::{DateTime, Local, TimeZone as _};
use galaxy_core::command::ExitCode;
use serde::{Deserialize, Serialize};
use serde_bytes_repr::{ByteFmtDeserializer, ByteFmtSerializer};
use galaxy_core::command::ExitCode;
use super::AgentInteractionMetadata;
+5 -5
View File
@@ -29,22 +29,22 @@ use crate::terminal::{
use crate::terminal::{BlockPadding, ShellHost, SizeInfo, SizeUpdate};
use anyhow::anyhow;
use chrono::{DateTime, Local};
use galaxy_core::features::FeatureFlag;
use galaxyui::color::ColorU;
use galaxyui::r#async::executor::Background;
use galaxyui::record_trace_event;
use instant::SystemTime;
use std::io;
use std::ops::{AddAssign, Range, RangeInclusive};
use std::sync::Arc;
use std::time::Duration;
use sum_tree::{Dimension, Item, SeekBias, SumTree};
use galaxy_core::features::FeatureFlag;
use galaxyui::color::ColorU;
use galaxyui::r#async::executor::Background;
use galaxyui::record_trace_event;
use std::collections::{HashMap, HashSet};
use galaxyui::{
units::{IntoLines, IntoPixels, Lines},
AppContext, EntityId, ViewHandle,
};
use std::collections::{HashMap, HashSet};
use super::block::{BlockId, BlockSize, BlockState};
use super::early_output::EarlyOutput;
+2 -2
View File
@@ -1,7 +1,5 @@
use std::{cmp::max, fmt::Debug, mem, ops::RangeInclusive};
use sum_tree::SeekBias;
use vec1::{vec1, Vec1};
use galaxy_core::semantic_selection::SemanticSelection;
use galaxy_terminal::model::grid::CellType;
use galaxyui::{
@@ -9,6 +7,8 @@ use galaxyui::{
units::{IntoLines as _, Lines},
AppContext, EntityId, ViewAsRef as _,
};
use sum_tree::SeekBias;
use vec1::{vec1, Vec1};
use crate::{
ai::blocklist::AIBlock,
+1 -1
View File
@@ -1,5 +1,6 @@
use std::ops::RangeInclusive;
use galaxy_terminal::model::grid::CellType;
use regex::escape;
use regex_automata::hybrid::dfa::{Cache, DFA};
use regex_automata::hybrid::BuildError;
@@ -7,7 +8,6 @@ use regex_automata::nfa::thompson;
use regex_automata::util::pool::Pool;
use regex_automata::util::syntax::Config;
use regex_automata::{Anchored, Input};
use galaxy_terminal::model::grid::CellType;
use crate::terminal::model::index::Direction;
use crate::terminal::model::index::Point;
+3 -3
View File
@@ -11,15 +11,15 @@ use std::sync::Arc;
use base64::Engine as _;
use bounded_vec_deque::BoundedVecDeque;
use pathfinder_geometry::vector::Vector2F;
use rand::Rng;
use unicode_width::{UnicodeWidthChar, UnicodeWidthStr};
use galaxy_core::channel::ChannelState;
use galaxy_core::features::FeatureFlag;
use galaxy_terminal::model::ansi::CharsetIndex;
use galaxy_terminal::model::grid::cell;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use galaxyui::image_cache::{resize_dimensions, FitType};
use pathfinder_geometry::vector::Vector2F;
use rand::Rng;
use unicode_width::{UnicodeWidthChar, UnicodeWidthStr};
use crate::server::telemetry::ImageProtocol;
use crate::terminal::event::Event;
+4 -4
View File
@@ -20,10 +20,6 @@ use std::{
};
use bounded_vec_deque::BoundedVecDeque;
use itertools::Itertools;
use lazy_static::lazy_static;
use unicode_width::UnicodeWidthChar;
use urlocator::{UrlLocation, UrlLocator};
use galaxy_core::features::FeatureFlag;
use galaxy_core::semantic_selection::{SemanticSelection, SMART_SELECT_MATCH_WINDOW_LIMIT};
use galaxy_core::{safe_assert, safe_assert_eq};
@@ -33,6 +29,10 @@ pub use galaxy_terminal::model::TermMode;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use galaxy_util::path::CleanPathResult;
use galaxyui::color::ColorU;
use itertools::Itertools;
use lazy_static::lazy_static;
use unicode_width::UnicodeWidthChar;
use urlocator::{UrlLocation, UrlLocator};
use crate::terminal::event_listener::ChannelEventListener;
use crate::terminal::model::ansi::{self, Color, CursorStyle, Handler, NamedColor};
+1 -1
View File
@@ -5,8 +5,8 @@ mod resize;
use std::cmp::min;
use std::ops::{Index, IndexMut, Range};
use serde::{Deserialize, Serialize};
pub use galaxy_terminal::model::grid::Dimensions;
use serde::{Deserialize, Serialize};
use crate::features::FeatureFlag;
use crate::terminal::model::ansi::{CharsetIndex, StandardCharset};
+1 -1
View File
@@ -1,4 +1,3 @@
use string_offset::ByteOffset;
use galaxy_terminal::model::{
grid::{
cell::{self, LineLength as _},
@@ -6,6 +5,7 @@ use galaxy_terminal::model::{
},
Point, VisiblePoint, VisibleRow,
};
use string_offset::ByteOffset;
use crate::terminal::{model::grid::Cursor, SizeInfo};
+1 -1
View File
@@ -1,7 +1,7 @@
//! Tests for the Grid.
use grid_handler::GridHandler;
use galaxy_terminal::model::grid::cell;
use grid_handler::GridHandler;
use crate::features::FeatureFlag;
use crate::terminal::model::ansi::Handler;
+1 -1
View File
@@ -7,9 +7,9 @@ use super::{
grid::{grid_handler::PerformResetGridChecks, Dimensions as _},
selection::ScrollDelta,
};
use galaxyui::units::{IntoLines as _, Lines};
use instant::Instant;
use pathfinder_color::ColorU;
use galaxyui::units::{IntoLines as _, Lines};
use crate::terminal::event::Event;
+1 -1
View File
@@ -1,9 +1,9 @@
use std::path::Path;
use base64::Engine;
use galaxyui::util::parse_u32;
use pathfinder_geometry::vector::Vector2F;
use rand::Rng;
use galaxyui::util::parse_u32;
#[derive(Debug, Default, Clone)]
pub struct ITermImage {
+6 -6
View File
@@ -1,18 +1,18 @@
use anyhow::Result;
use base64::Engine;
use flate2::read::ZlibDecoder;
use pathfinder_geometry::vector::Vector2F;
use rand::Rng;
use std::cmp::min;
use std::io::Read;
#[cfg(feature = "local_fs")]
use std::{env, fs, str};
use galaxyui::image_cache::{resize_dimensions, FitType};
use galaxyui::{
assets::asset_cache::Asset,
image_cache::{CustomHeaderCreationError, CustomImageFormat, CustomImageHeader, ImageType},
util::{parse_i32, parse_u32},
};
use pathfinder_geometry::vector::Vector2F;
use rand::Rng;
use std::cmp::min;
use std::io::Read;
#[cfg(feature = "local_fs")]
use std::{env, fs, str};
use super::escape_sequences::C1;
+1 -1
View File
@@ -38,8 +38,8 @@ pub mod terminal_model;
#[cfg(test)]
pub mod test_utils;
pub use galaxy_terminal::model::{char_or_str, escape_sequences, grid::cell, mouse, BlockId};
pub use secrets::{
set_user_and_enterprise_secret_regexes, ObfuscateSecrets, RespectObfuscatedSecrets, Secret,
SecretHandle,
};
pub use galaxy_terminal::model::{char_or_str, escape_sequences, grid::cell, mouse, BlockId};
+2 -2
View File
@@ -3,6 +3,8 @@
use crate::ai::blocklist::TextLocation;
use crate::terminal::model::index::Point;
use anyhow::anyhow;
use galaxyui::elements::SecretRange;
use galaxyui::EntityId;
use itertools::Itertools;
use lazy_static::lazy_static;
use parking_lot::RwLock;
@@ -10,8 +12,6 @@ use rangemap::{RangeInclusiveMap, StepLite};
use std::collections::HashMap;
use std::ops::{Not, RangeInclusive};
use std::sync::atomic::{AtomicUsize, Ordering};
use galaxyui::elements::SecretRange;
use galaxyui::EntityId;
use super::grid::grid_handler::GridHandler;
use super::grid::{Dimensions as _, RespectDisplayedOutput};
+4 -4
View File
@@ -4,9 +4,9 @@
//! finalized when the button is released. The selection should be cleared
//! when text is added/removed/scrolled on the screen. The selection should
//! also be cleared if the user clicks off of the selection.
use galaxy_terminal::model::grid::cell;
use std::fmt::Debug;
use vec1::Vec1;
use galaxy_terminal::model::grid::cell;
use crate::terminal::model::ansi::CursorShape;
use crate::terminal::model::cell::Flags;
@@ -15,13 +15,13 @@ use crate::terminal::model::grid::Dimensions;
use crate::terminal::model::index::{Point, Side};
use crate::terminal::model::GridStorage;
use crate::terminal::Vector2F;
use galaxy_core::semantic_selection::SemanticSelection;
use galaxyui::text::SelectionType;
use galaxyui::units::Lines;
use std::cmp::{max, min};
use std::mem;
use std::ops::RangeInclusive;
pub use std::ops::{Range, RangeBounds};
use galaxy_core::semantic_selection::SemanticSelection;
use galaxyui::text::SelectionType;
use galaxyui::units::Lines;
use super::index::{Direction, VisibleRow};
+8 -6
View File
@@ -7,6 +7,10 @@ pub use command_executor::*;
use anyhow::Result;
use futures::future::{BoxFuture, Shared};
use futures::FutureExt;
use galaxy_util::path::{
convert_msys2_to_windows_native_path, convert_wsl_to_windows_host_path, msys2_exe_to_root,
ShellFamily,
};
use instant::Instant;
use once_cell::sync::OnceCell;
use smol_str::SmolStr;
@@ -17,16 +21,12 @@ use std::ops::Deref;
use std::path::{Path, PathBuf};
use std::sync::Arc;
use typed_path::{TypedPath, TypedPathBuf, WindowsPath};
use galaxy_util::path::{
convert_msys2_to_windows_native_path, convert_wsl_to_windows_host_path, msys2_exe_to_root,
ShellFamily,
};
use version_compare::Version;
use galaxy_completer::completer::{
CommandExitStatus, CommandOutput, PathSeparators, TopLevelCommandCaseSensitivity,
};
use galaxyui::{platform::OperatingSystem, Entity, ModelContext, SingletonEntity};
use version_compare::Version;
#[cfg(feature = "local_tty")]
use crate::features::FeatureFlag;
@@ -842,7 +842,9 @@ pub enum SessionType {
/// `RemoteServerManager` has completed the connection handshake. It is
/// `None` when the feature flag is off or the connection hasn't been
/// established yet.
WarpifiedRemote { host_id: Option<galaxy_core::HostId> },
WarpifiedRemote {
host_id: Option<galaxy_core::HostId>,
},
}
impl From<BootstrapSessionType> for SessionType {
@@ -1,5 +1,5 @@
use std::sync::Arc;
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle};
use std::sync::Arc;
use crate::{
ai_assistant::execution_context::WarpAiExecutionContext,
@@ -147,11 +147,11 @@ fn new_command_executor_for_local_tty_session(
parent_session_info: Option<&SessionInfo>,
ctx: &mut ModelContext<Sessions>,
) -> Arc<dyn CommandExecutor> {
use galaxyui::SingletonEntity as _;
use msys2_command_executor::MSYS2CommandExecutor;
use remote_server_executor::RemoteServerCommandExecutor;
use settings::Setting as _;
use tmux_executor::TmuxCommandExecutor;
use galaxyui::SingletonEntity as _;
use wsl_command_executor::WslCommandExecutor;
use crate::{
@@ -8,10 +8,10 @@ use anyhow::Result;
use async_channel::{self, Receiver, Sender};
use async_trait::async_trait;
use chrono::DateTime;
use parking_lot::{Mutex, MutexGuard};
use galaxy_core::command::ExitCode;
use galaxy_terminal::model::Point;
use galaxyui::r#async::block_on;
use parking_lot::{Mutex, MutexGuard};
use crate::safe_info;
use crate::server::datetime_ext::DateTimeExt;
@@ -6,11 +6,11 @@ use crate::{
use anyhow::{anyhow, Result};
use async_trait::async_trait;
use command::r#async::Command;
use galaxy_completer::completer::CommandOutput;
use galaxy_util::path::{convert_msys2_to_windows_native_path, msys2_exe_to_root};
use itertools::Itertools;
use std::{any::Any, collections::HashMap, ffi::OsString, path::PathBuf};
use typed_path::{TypedPath, WindowsPath};
use galaxy_completer::completer::CommandOutput;
use galaxy_util::path::{convert_msys2_to_windows_native_path, msys2_exe_to_root};
const BASH_CONFIG_FLAG: &str = "--norc";
const POWERSHELL_CONFIG_FLAG: &str = "-NoProfile";
+9 -9
View File
@@ -61,13 +61,21 @@ use crate::terminal::model::session::SessionInfo;
use crate::terminal::shell::{ShellName, ShellType};
use crate::terminal::model::secrets::ObfuscateSecrets;
use session_sharing_protocol::sharer::SessionSourceType;
use galaxy_core::report_error;
#[cfg(not(target_family = "wasm"))]
use galaxyui::util::save_as_file;
use session_sharing_protocol::sharer::SessionSourceType;
use async_channel::Sender;
use base64::Engine;
use galaxy_core::features::FeatureFlag;
use galaxy_core::semantic_selection::SemanticSelection;
pub use galaxy_terminal::model::BlockIndex;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use galaxyui::assets::asset_cache::Asset;
use galaxyui::image_cache::ImageType;
use galaxyui::r#async::executor::Background;
use galaxyui::AppContext;
use hex::FromHexError;
use instant::Instant;
use itertools::{Either, Itertools};
@@ -82,14 +90,6 @@ use std::ops::{Range, RangeInclusive};
use std::path::PathBuf;
use std::str::FromStr;
use std::sync::Arc;
use galaxy_core::features::FeatureFlag;
use galaxy_core::semantic_selection::SemanticSelection;
pub use galaxy_terminal::model::BlockIndex;
use galaxy_terminal::model::{KeyboardModes, KeyboardModesApplyBehavior};
use galaxyui::assets::asset_cache::Asset;
use galaxyui::image_cache::ImageType;
use galaxyui::r#async::executor::Background;
use galaxyui::AppContext;
/// Max size of the window title stack.
const TITLE_STACK_MAX_DEPTH: usize = 4096;
@@ -6,11 +6,11 @@ use crate::terminal::model::grid::Dimensions as _;
use crate::terminal::model::index::Side;
use crate::terminal::model::selection::ExpandedSelectionRange;
use chrono::{DateTime, Local};
use vec1::vec1;
use galaxy_core::command::ExitCode;
use galaxy_terminal::model::ansi::ClearMode;
use galaxyui::text::str_to_byte_vec;
use galaxyui::text::SelectionType;
use vec1::vec1;
/// Helper function to create a SerializedBlock with default values,
/// including the new is_local field.