feat: expand Galaxy agent and remote tooling

Add Wormhole remote helpers, provider and agent improvements, filesystem diagnostics, model metadata support, and schema-aware settings IntelliSense.
This commit is contained in:
2026-08-23 13:55:47 -05:00
parent f17642fc62
commit 7c106eecd5
147 changed files with 2208 additions and 1514 deletions
@@ -93,10 +93,17 @@ tar -xzf "$tmpdir/oz.tar.gz" -C "$tmpdir"
# The executable and its resources are siblings in the artifact. Exclude the
# resources tree from the search: bundled skills may ship companion files
# whose names also start with `oz`.
bin=$(find "$tmpdir" -type f -name 'oz*' ! -name '*.tar.gz' ! -path '*/resources/*' | head -n1)
bin=$(find "$tmpdir" -type f -name '{binary_name}*' ! -name '*.tar.gz' ! -path '*/resources/*' | head -n1)
# Continue accepting legacy archives while existing release infrastructure is
# migrated to Galaxy-named helper artifacts.
if [ -z "$bin" ]; then
bin=$(find "$tmpdir" -type f -name 'oz*' ! -name '*.tar.gz' ! -path '*/resources/*' | head -n1)
fi
if [ -z "$bin" ]; then echo "no binary found in tarball" >&2; exit 1; fi
chmod +x "$bin"
version_marker="$(dirname "$bin")/wormhole-version"
# Install the resources tree at the global, version-independent location
# the daemon reads. `$tmpdir` lives inside `$install_dir`, so the `mv` is a
# same-filesystem rename. Installed before the binary so an interrupted
@@ -110,3 +117,8 @@ if [ -d "$resources" ]; then
fi
mv "$bin" "$install_dir/{binary_name}{version_suffix}"
if [ -f "$version_marker" ]; then
mv "$version_marker" "$install_dir/{binary_name}{version_suffix}.wormhole-version"
else
rm -f "$install_dir/{binary_name}{version_suffix}.wormhole-version"
fi
+4 -1
View File
@@ -1860,7 +1860,10 @@ impl RemoteServerManager {
// surfaced as `None`, which the controller treats as
// inconclusive (fail open).
let preinstall = match &platform {
Some(p) if matches!(p.os, RemoteOs::Linux) => {
Some(p)
if matches!(p.os, RemoteOs::Linux)
&& !crate::setup::uses_static_linux_helper() =>
{
match transport.run_preinstall_check().await {
Ok(r) => Some(r),
Err(e) => {
+12 -1
View File
@@ -507,7 +507,18 @@ pub fn binary_check_command() -> String {
/// the next install overwrites it, and an older daemon that is still
/// running parsed its skills at startup.
pub fn remote_server_removal_command() -> String {
format!("rm -f {}", remote_server_binary())
let binary = remote_server_binary();
format!("rm -f {binary} {binary}.wormhole-version")
}
/// Returns whether this channel ships a statically linked Linux Wormhole
/// helper with the client instead of downloading a glibc-linked CLI artifact.
///
/// Static helpers do not depend on the remote host's libc implementation, so
/// the glibc compatibility gate used by the hosted release channels does not
/// apply to them.
pub fn uses_static_linux_helper() -> bool {
matches!(ChannelState::channel(), Channel::Local | Channel::Oss)
}
/// Returns the version string used to pin remote-server installs on
+4 -4
View File
@@ -53,7 +53,7 @@ pub struct InstallOutcome {
#[derive(Clone, Debug)]
pub struct UserFacingError {
/// Always-visible explanation of what went wrong,
/// e.g. "Failed to install SSH extension".
/// e.g. "Failed to install Wormhole helper".
pub body: String,
/// Optional technical detail shown to the user (stderr,
/// timeout duration, unsupported OS/arch). `None` when the
@@ -77,9 +77,9 @@ impl SetupStage {
match self {
Self::DetectPlatform => "detect remote platform",
Self::PreinstallCheck => "run preinstall check",
Self::CheckBinary => "verify SSH extension",
Self::InstallBinary => "install SSH extension",
Self::Launch => "start SSH extension",
Self::CheckBinary => "verify Wormhole helper",
Self::InstallBinary => "install Wormhole helper",
Self::Launch => "start Wormhole helper",
}
}
}