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
@@ -24,12 +24,12 @@ use ai::skills::{
};
use async_channel::Sender;
use chrono::{DateTime, Duration, Utc};
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
use repo_metadata::{
repositories::{DetectedRepositories, RepoDetectionSource},
repository::{Repository, SubscriberId},
DirectoryWatcher, RepoMetadataModel, RepositoryUpdate,
};
use galaxyui::{AppContext, Entity, ModelContext, ModelHandle, SingletonEntity};
#[derive(Debug, PartialEq)]
pub enum SkillWatcherEvent {
@@ -5,13 +5,13 @@ use std::{
use crate::ai::skills::skill_manager::SkillWatcherEvent;
use ai::skills::{ParsedSkill, SkillProvider, SkillScope};
use galaxy_util::standardized_path::StandardizedPath;
use galaxyui::App;
use repo_metadata::{
repositories::DetectedRepositories, DirectoryWatcher, RepoMetadataModel, RepositoryUpdate,
TargetFile,
};
use tempfile::TempDir;
use galaxy_util::standardized_path::StandardizedPath;
use galaxyui::App;
use super::SkillWatcher;
@@ -4,8 +4,8 @@ use futures::Future;
use ai::skills::{read_skills, ParsedSkill, SKILL_PROVIDER_DEFINITIONS};
use async_channel::Sender;
use repo_metadata::{repository::RepositorySubscriber, Repository, RepositoryUpdate};
use galaxyui::ModelContext;
use repo_metadata::{repository::RepositorySubscriber, Repository, RepositoryUpdate};
/// Messages sent from [`RepositorySubscriber`]s to [`SkillManager`].
pub enum SkillRepositoryMessage {
+1 -1
View File
@@ -8,9 +8,9 @@ use ai::skills::{
home_skills_path, read_skills, ParsedSkill, SkillProvider, SKILL_PROVIDER_DEFINITIONS,
};
use anyhow::Error;
use galaxyui::AppContext;
use regex::Regex;
use repo_metadata::{local_model::GetContentsArgs, RepoContent, RepoMetadataModel};
use galaxyui::AppContext;
use crate::warp_managed_paths_watcher::warp_managed_skill_dirs;
+29 -15
View File
@@ -1,3 +1,4 @@
use galaxyui::App;
use repo_metadata::{
entry::{DirectoryEntry, Entry, FileMetadata},
file_tree_store::FileTreeState,
@@ -5,7 +6,6 @@ use repo_metadata::{
DirectoryWatcher, RepoMetadataModel,
};
use virtual_fs::{Stub, VirtualFS};
use galaxyui::App;
use super::{
extract_skill_parent_directory, find_skill_directories_in_tree, is_home_provider_path,
@@ -500,8 +500,10 @@ 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(
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap(),
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(
&repo,
)
.unwrap(),
ctx,
)
.unwrap()
@@ -511,8 +513,10 @@ 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 =
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(
&repo,
)
.unwrap();
model.insert_test_state(key, state, ctx);
});
@@ -644,8 +648,10 @@ 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(
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap(),
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(
&repo,
)
.unwrap(),
ctx,
)
.unwrap()
@@ -655,8 +661,10 @@ 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 =
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(
&repo,
)
.unwrap();
model.insert_test_state(key, state, ctx);
});
@@ -683,8 +691,10 @@ fn find_skill_directories_in_tree_empty_repo() {
vfs.mkdir("repo/src");
let src = Entry::Directory(DirectoryEntry {
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(&repo.join("src"))
.unwrap(),
path: galaxy_util::standardized_path::StandardizedPath::try_from_local(
&repo.join("src"),
)
.unwrap(),
children: vec![],
ignored: false,
loaded: true,
@@ -701,8 +711,10 @@ 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(
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap(),
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(
&repo,
)
.unwrap(),
ctx,
)
.unwrap()
@@ -712,8 +724,10 @@ 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 =
galaxy_util::standardized_path::StandardizedPath::from_local_canonicalized(&repo)
.unwrap();
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 galaxy_core::ui::icons::Icon;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
pub struct SkillDescriptor {
+2 -2
View File
@@ -1,12 +1,12 @@
use super::*;
use crate::warp_managed_paths_watcher::WarpManagedPathsWatcher;
use ai::skills::{ParsedSkill, SkillProvider, SkillScope};
use galaxy_core::channel::ChannelState;
use galaxyui::App;
use repo_metadata::{repositories::DetectedRepositories, DirectoryWatcher, RepoMetadataModel};
use std::collections::{HashMap, HashSet};
use std::fs;
use tempfile::TempDir;
use galaxy_core::channel::ChannelState;
use galaxyui::App;
use watcher::HomeDirectoryWatcher;
// ============================================================================
+6 -6
View File
@@ -7,6 +7,12 @@ use crate::ai::blocklist::BlocklistAIHistoryModel;
use ai::skills::{
home_skills_path, provider_rank, ParsedSkill, SkillProvider, SKILL_PROVIDER_DEFINITIONS,
};
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 lazy_static::lazy_static;
use siphasher::sip::SipHasher;
use std::collections::hash_map::Entry;
@@ -14,12 +20,6 @@ use std::collections::{HashMap, HashSet};
use std::hash::{Hash, Hasher};
use std::path::Path;
use std::path::PathBuf;
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
@@ -1,8 +1,8 @@
use ai::skills::{SkillProvider, SkillReference, SkillScope};
use galaxy_core::telemetry::{EnablementState, TelemetryEvent, TelemetryEventDesc};
use serde::{Deserialize, Serialize};
use serde_json::json;
use strum_macros::{EnumDiscriminants, EnumIter};
use galaxy_core::telemetry::{EnablementState, TelemetryEvent, TelemetryEventDesc};
use crate::features::FeatureFlag;