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
+61 -61
View File
@@ -44,8 +44,8 @@ use crate::{
use anyhow::{anyhow, bail};
use regex::Regex;
use std::path::PathBuf;
use warp_graphql::workspace::AddonCreditsSettings as GqlAddonCreditsSettings;
use warp_graphql::{
use galaxy_graphql::workspace::AddonCreditsSettings as GqlAddonCreditsSettings;
use galaxy_graphql::{
billing::{
AiAutonomyPolicy as GqlAiAutonomyPolicy, AmbientAgentsPolicy as GqlAmbientAgentsPolicy,
BillingMetadata as GqlBillingMetadata, BonusGrant as GqlBonusGrant,
@@ -650,9 +650,9 @@ impl ToPathBufs for Vec<String> {
self.into_iter().map(PathBuf::from).collect()
}
}
impl From<warp_graphql::workspace::LlmModelHost> for crate::ai::llms::LLMModelHost {
fn from(gql_host: warp_graphql::workspace::LlmModelHost) -> Self {
use warp_graphql::workspace::LlmModelHost as GqlLlmModelHost;
impl From<galaxy_graphql::workspace::LlmModelHost> for crate::ai::llms::LLMModelHost {
fn from(gql_host: galaxy_graphql::workspace::LlmModelHost) -> Self {
use galaxy_graphql::workspace::LlmModelHost as GqlLlmModelHost;
match gql_host {
GqlLlmModelHost::DirectApi => Self::DirectApi,
GqlLlmModelHost::AwsBedrock => Self::AwsBedrock,
@@ -666,8 +666,8 @@ impl From<warp_graphql::workspace::LlmModelHost> for crate::ai::llms::LLMModelHo
}
}
impl From<warp_graphql::workspace::LlmHostSettings> for super::workspace::LlmHostSettings {
fn from(gql_settings: warp_graphql::workspace::LlmHostSettings) -> Self {
impl From<galaxy_graphql::workspace::LlmHostSettings> for super::workspace::LlmHostSettings {
fn from(gql_settings: galaxy_graphql::workspace::LlmHostSettings) -> Self {
Self {
enabled: gql_settings.enabled,
enablement_setting: gql_settings
@@ -678,8 +678,8 @@ impl From<warp_graphql::workspace::LlmHostSettings> for super::workspace::LlmHos
}
}
impl From<warp_graphql::workspace::LlmSettings> for LlmSettings {
fn from(gql_settings: warp_graphql::workspace::LlmSettings) -> Self {
impl From<galaxy_graphql::workspace::LlmSettings> for LlmSettings {
fn from(gql_settings: galaxy_graphql::workspace::LlmSettings) -> Self {
let mut host_configs = std::collections::HashMap::new();
for entry in gql_settings.host_configs {
let host: crate::ai::llms::LLMModelHost = entry.host.into();
@@ -1040,10 +1040,10 @@ impl TryFrom<WarpDriveUpdate> for ObjectUpdateMessage {
}
}
impl TryFrom<warp_graphql::folder::Folder> for ServerFolder {
impl TryFrom<galaxy_graphql::folder::Folder> for ServerFolder {
type Error = anyhow::Error;
fn try_from(folder: warp_graphql::folder::Folder) -> Result<Self, Self::Error> {
fn try_from(folder: galaxy_graphql::folder::Folder) -> Result<Self, Self::Error> {
ServerFolder::try_from_graphql_fields(
ServerId::from_string_lossy(folder.metadata.uid.inner()),
Some(folder.name),
@@ -1054,10 +1054,10 @@ impl TryFrom<warp_graphql::folder::Folder> for ServerFolder {
}
}
impl TryFrom<warp_graphql::notebook::Notebook> for ServerNotebook {
impl TryFrom<galaxy_graphql::notebook::Notebook> for ServerNotebook {
type Error = anyhow::Error;
fn try_from(notebook: warp_graphql::notebook::Notebook) -> Result<Self, Self::Error> {
fn try_from(notebook: galaxy_graphql::notebook::Notebook) -> Result<Self, Self::Error> {
ServerNotebook::try_from_graphql_fields(
ServerId::from_string_lossy(notebook.metadata.uid.inner()),
Some(notebook.title),
@@ -1069,10 +1069,10 @@ impl TryFrom<warp_graphql::notebook::Notebook> for ServerNotebook {
}
}
impl TryFrom<warp_graphql::workflow::Workflow> for ServerWorkflow {
impl TryFrom<galaxy_graphql::workflow::Workflow> for ServerWorkflow {
type Error = anyhow::Error;
fn try_from(workflow: warp_graphql::workflow::Workflow) -> Result<Self, Self::Error> {
fn try_from(workflow: galaxy_graphql::workflow::Workflow) -> Result<Self, Self::Error> {
ServerWorkflow::try_from_graphql_fields(
ServerId::from_string_lossy(workflow.metadata.uid.inner()),
workflow.data,
@@ -1082,11 +1082,11 @@ impl TryFrom<warp_graphql::workflow::Workflow> for ServerWorkflow {
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for ServerEnvVarCollection {
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject> for ServerEnvVarCollection {
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerEnvVarCollection::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1097,11 +1097,11 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for Serve
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for ServerWorkflowEnum {
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject> for ServerWorkflowEnum {
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerWorkflowEnum::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1112,11 +1112,11 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for Serve
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for ServerAIFact {
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject> for ServerAIFact {
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerAIFact::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1127,13 +1127,13 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for Serve
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject>
for ServerAIExecutionProfile
{
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerAIExecutionProfile::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1143,11 +1143,11 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
)
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for ServerMCPServer {
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject> for ServerMCPServer {
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerMCPServer::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1158,12 +1158,12 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for Serve
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject>
for ServerTemplatableMCPServer
{
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerTemplatableMCPServer::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1174,11 +1174,11 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for ServerPreference {
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject> for ServerPreference {
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerPreference::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1189,13 +1189,13 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for Serve
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject>
for ServerAmbientAgentEnvironment
{
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerAmbientAgentEnvironment::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1206,13 +1206,13 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject>
for ServerScheduledAmbientAgent
{
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerScheduledAmbientAgent::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1223,11 +1223,11 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject>
}
}
impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for ServerCloudAgentConfig {
impl TryFrom<galaxy_graphql::generic_string_object::GenericStringObject> for ServerCloudAgentConfig {
type Error = anyhow::Error;
fn try_from(
gso: warp_graphql::generic_string_object::GenericStringObject,
gso: galaxy_graphql::generic_string_object::GenericStringObject,
) -> Result<Self, Self::Error> {
ServerCloudAgentConfig::try_from_graphql_fields(
ServerId::from_string_lossy(gso.metadata.uid.inner()),
@@ -1238,55 +1238,55 @@ impl TryFrom<warp_graphql::generic_string_object::GenericStringObject> for Serve
}
}
impl TryFrom<warp_graphql::object::CloudObject> for ServerCloudObject {
impl TryFrom<galaxy_graphql::object::CloudObject> for ServerCloudObject {
type Error = anyhow::Error;
fn try_from(value: warp_graphql::object::CloudObject) -> Result<Self, Self::Error> {
fn try_from(value: galaxy_graphql::object::CloudObject) -> Result<Self, Self::Error> {
match value {
warp_graphql::object::CloudObject::AIConversation(_) => {
galaxy_graphql::object::CloudObject::AIConversation(_) => {
Err(anyhow::anyhow!("AIConversation is not a supported object type for this operation"))
}
warp_graphql::object::CloudObject::Folder(folder) => {
galaxy_graphql::object::CloudObject::Folder(folder) => {
Ok(ServerCloudObject::Folder(folder.try_into()?))
}
warp_graphql::object::CloudObject::GenericStringObject(gso) => {
galaxy_graphql::object::CloudObject::GenericStringObject(gso) => {
match gso.format {
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonEnvVarCollection => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonEnvVarCollection => {
Ok(ServerCloudObject::EnvVarCollection(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonPreference => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonPreference => {
Ok(ServerCloudObject::Preference(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonWorkflowEnum => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonWorkflowEnum => {
Ok(ServerCloudObject::WorkflowEnum(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonAIFact => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonAIFact => {
Ok(ServerCloudObject::AIFact(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonMCPServer => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonMCPServer => {
Ok(ServerCloudObject::MCPServer(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonAIExecutionProfile => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonAIExecutionProfile => {
Ok(ServerCloudObject::AIExecutionProfile(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonTemplatableMCPServer => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonTemplatableMCPServer => {
Ok(ServerCloudObject::TemplatableMCPServer(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonCloudEnvironment => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonCloudEnvironment => {
Ok(ServerCloudObject::AmbientAgentEnvironment(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonScheduledAmbientAgent => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonScheduledAmbientAgent => {
Ok(ServerCloudObject::ScheduledAmbientAgent(gso.try_into()?))
}
}
}
warp_graphql::object::CloudObject::Notebook(notebook) => {
galaxy_graphql::object::CloudObject::Notebook(notebook) => {
Ok(ServerCloudObject::Notebook(notebook.try_into()?))
}
warp_graphql::object::CloudObject::Workflow(workflow) => {
galaxy_graphql::object::CloudObject::Workflow(workflow) => {
Ok(ServerCloudObject::Workflow(Box::new(workflow.try_into()?)))
}
warp_graphql::object::CloudObject::Unknown => {
galaxy_graphql::object::CloudObject::Unknown => {
Err(anyhow::anyhow!("Unable to convert cloud object type"))
}
}
@@ -1305,31 +1305,31 @@ impl TryFrom<CloudObjectWithDescendants> for ServerCloudObject {
Ok(ServerCloudObject::Folder(fwd.folder.try_into()?))
}
CloudObjectWithDescendants::GenericStringObject(gso) => match gso.format {
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonEnvVarCollection => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonEnvVarCollection => {
Ok(ServerCloudObject::EnvVarCollection(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonPreference => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonPreference => {
Ok(ServerCloudObject::Preference(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonWorkflowEnum => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonWorkflowEnum => {
Ok(ServerCloudObject::WorkflowEnum(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonAIFact => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonAIFact => {
Ok(ServerCloudObject::AIFact(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonMCPServer => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonMCPServer => {
Ok(ServerCloudObject::MCPServer(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonAIExecutionProfile => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonAIExecutionProfile => {
Ok(ServerCloudObject::AIExecutionProfile(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonTemplatableMCPServer => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonTemplatableMCPServer => {
Ok(ServerCloudObject::TemplatableMCPServer(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonCloudEnvironment => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonCloudEnvironment => {
Ok(ServerCloudObject::AmbientAgentEnvironment(gso.try_into()?))
}
warp_graphql::generic_string_object::GenericStringObjectFormat::JsonScheduledAmbientAgent => {
galaxy_graphql::generic_string_object::GenericStringObjectFormat::JsonScheduledAmbientAgent => {
Ok(ServerCloudObject::ScheduledAmbientAgent(gso.try_into()?))
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
use warpui::{Entity, ModelContext, SingletonEntity};
use galaxyui::{Entity, ModelContext, SingletonEntity};
#[derive(Clone)]
pub struct TeamTesterStatus {}
+3 -3
View File
@@ -22,9 +22,9 @@ use futures::channel::oneshot::{self, Receiver};
use futures::stream::AbortHandle;
use std::sync::mpsc::SyncSender;
use std::sync::Arc;
use warpui::r#async::Timer;
use warpui::{duration_with_jitter, RequestState};
use warpui::{Entity, ModelContext, SingletonEntity};
use galaxyui::r#async::Timer;
use galaxyui::{duration_with_jitter, RequestState};
use galaxyui::{Entity, ModelContext, SingletonEntity};
pub enum TeamUpdateManagerEvent {
LeaveSuccess,
+1 -1
View File
@@ -1,6 +1,6 @@
use chrono::Utc;
use itertools::Itertools;
use warpui::{AddSingletonModel, App};
use galaxyui::{AddSingletonModel, App};
use crate::{
auth::AuthManager,
+1 -1
View File
@@ -1,7 +1,7 @@
use std::collections::HashMap;
use session_sharing_protocol::common::ProfileData;
use warpui::{Entity, SingletonEntity};
use galaxyui::{Entity, SingletonEntity};
use crate::auth::UserUid;
+7 -7
View File
@@ -29,12 +29,12 @@ use crate::{
use anyhow::Result;
use regex::Regex;
use std::sync::Arc;
use warp_core::{
use galaxy_core::{
features::FeatureFlag,
settings::{ChangeEventReason, Setting},
};
use warp_graphql::workspace::FeatureModelChoice;
use warpui::{AppContext, Entity, ModelContext, SingletonEntity, Tracked};
use galaxy_graphql::workspace::FeatureModelChoice;
use galaxyui::{AppContext, Entity, ModelContext, SingletonEntity, Tracked};
#[cfg(test)]
use crate::server::server_api::{team::MockTeamClient, workspace::MockWorkspaceClient};
@@ -122,7 +122,7 @@ pub struct WorkspacesMetadataResponse {
// independent queries.
pub struct WorkspacesMetadataWithPricing {
pub metadata: WorkspacesMetadataResponse,
pub pricing_info: Option<warp_graphql::billing::PricingInfo>,
pub pricing_info: Option<galaxy_graphql::billing::PricingInfo>,
}
pub struct CreateTeamResponse {
@@ -519,9 +519,9 @@ impl UserWorkspaces {
match self.aws_bedrock_host_enablement_setting() {
HostEnablementSetting::Enforce => true,
HostEnablementSetting::RespectUserSetting => *AISettings::as_ref(app)
.bedrock_enabled
.value(),
HostEnablementSetting::RespectUserSetting => {
*AISettings::as_ref(app).bedrock_enabled.value()
}
}
}
+6 -10
View File
@@ -25,8 +25,8 @@ use crate::workspaces::workspace::{
use mockall::Sequence;
use settings::{PrivatePreferences, PublicPreferences};
use std::time::Duration;
use warpui::{AddSingletonModel, App};
use warpui_extras::user_preferences;
use galaxyui::{AddSingletonModel, App};
use galaxyui_extras::user_preferences;
use super::*;
@@ -170,7 +170,7 @@ fn test_loading_all_spaces_after_switching_from_offline() {
});
// Spend time waiting for the initial load to finish etc.
warpui::r#async::Timer::after(Duration::from_secs(1)).await;
galaxyui::r#async::Timer::after(Duration::from_secs(1)).await;
// Lets go offline
NetworkStatus::handle(&app).update(&mut app, |network_status, ctx| {
@@ -183,7 +183,7 @@ fn test_loading_all_spaces_after_switching_from_offline() {
});
// Spend time waiting for the load to finish etc.
warpui::r#async::Timer::after(Duration::from_secs(1)).await;
galaxyui::r#async::Timer::after(Duration::from_secs(1)).await;
// We also ensure that UserWorkspaces stores a team
UserWorkspaces::handle(&app).read(&app, |teams, _| {
@@ -302,9 +302,7 @@ fn test_aws_bedrock_credentials_respect_user_setting() {
);
AISettings::handle(&app).update(&mut app, |settings, ctx| {
let _ = settings
.bedrock_enabled
.set_value(false, ctx);
let _ = settings.bedrock_enabled.set_value(false, ctx);
});
app.read(|ctx| {
@@ -357,9 +355,7 @@ fn test_aws_bedrock_credentials_enforced_by_admin() {
);
AISettings::handle(&app).update(&mut app, |settings, ctx| {
let _ = settings
.bedrock_enabled
.set_value(false, ctx);
let _ = settings.bedrock_enabled.set_value(false, ctx);
});
app.read(|ctx| {
+2 -2
View File
@@ -7,7 +7,7 @@ use chrono::Utc;
use regex::Regex;
use serde::{Deserialize, Serialize};
use std::{cmp::Ordering, path::PathBuf};
use warp_graphql::billing::{AddonCreditAutoReloadStatus, ServiceAgreement, ServiceAgreementType};
use galaxy_graphql::billing::{AddonCreditAutoReloadStatus, ServiceAgreement, ServiceAgreementType};
use super::team::{MembershipRole, Team};
@@ -156,7 +156,7 @@ impl Workspace {
/// Returns None if auto-reload is not configured or if the denomination can't be found in pricing options.
pub fn get_auto_reload_price_cents(
&self,
addon_credits_options: &[warp_graphql::billing::AddonCreditsOption],
addon_credits_options: &[galaxy_graphql::billing::AddonCreditsOption],
) -> Option<i32> {
let selected_credits = self
.settings