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:
@@ -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
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user