mirror of
https://github.com/Mesh-LLM/mesh-llm.git
synced 2026-08-08 22:23:19 -04:00
* a run at SDK, tested with a client * Use in-process shutdown for embedded SDK * Satisfy clippy for embedded shutdown plumbing * Document embedded Rust SDK usage * Add public Rust SDK crate * Tighten embedded SDK lifecycle * Address embedded SDK review feedback * Document native runtime packaging direction * Document runtime CLI namespace * Document runtime CLI UX expectations * Document runtime diagnostics under doctor * Add Windows PowerShell installer * Document recommended runtime install flow * Add native runtime resolver foundation * Wire native runtime release installs * Document native runtime crate * Load versioned native runtimes dynamically * Fix embedded SDK output manager reset * Expose SDK mesh admission controls * Split SDK runtime mapping assertions * Tighten SDK docs and config module * Clarify native runtime SDK TODOs * Stabilize native log note test * Expose native runtime install SDK * Re-export native runtime APIs from SDK crate * Add embedded SDK knobs for Sprout relay mesh (#782) Two opt-in seams the Sprout v1 mesh integration needs: - disable_iroh_relays(bool): when true, embedded runtime selects an explicitly disabled relay policy, which uses RelayMode::Disabled, skips public relay URL fallback, skips raw STUN, and avoids the 5s endpoint.online() wait that cannot succeed without a home relay. Default false preserves existing behavior. - EmbeddedNodeHandle::join_token(token): forwards an invite token over the runtime control channel to node.join_with_retry so an already-running embedded node can dial a new EndpointAddr without restart. Handled in both auto and passive/client runtime loops. Purely additive; existing defaults and startup join_tokens behavior remain unchanged. Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co> Co-authored-by: Perci <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co> * Fix relay policy test visibility * Make SDK publishable and align language bindings (#771) * Split SDK native runtime publish surface * Split CLI and TUI support crates * Move CLI parser surface into mesh-llm-cli * Extract shared mesh event surface * Move standalone command handlers out of host runtime * Move benchmark and plugin commands out of host runtime * Finish plugin command extraction * Extract auth identity ownership * Move remaining standalone commands out of host runtime * Move model store into model-hf * Move CLI commands out of host runtime * Decouple host runtime from CLI and TUI crates * Expose embedded node SDK facade * Keep client identity dependencies pure * Simplify Rust SDK feature surface * Keep SDK client feature runtime-free * Expose SDK client API base override * Use direct mesh SDK client transport * Remove API base URL client builder shim * Align language SDKs with Rust SDK facade * Document SDK client and serving modes * Fix SDK smoke runtime setup * Package SDK console assets * Fix dynamic runtime CI setup * Restructure SDK docs by language * Fix SDK smoke package loading * Fix native runtime bundle resolution * Add structured native runtime backend metadata * Harden Kotlin native runtime smoke resolution * Fix mesh-llm-sdk clippy imports * Retry smoke model downloads --------- Co-authored-by: James Dumay <jameswdumay@gmail.com> Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com> Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co> Co-authored-by: Perci <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co>
125 lines
2.8 KiB
Bash
Executable file
125 lines
2.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
usage() {
|
|
cat >&2 <<'EOF'
|
|
Usage: scripts/package-sdk-console-assets.sh [options]
|
|
|
|
Build and copy the MeshLLM web console distribution into SDK package resource
|
|
locations.
|
|
|
|
Options:
|
|
--sdk node|swift|kotlin|all SDK package to update. Defaults to all.
|
|
--dist DIR Existing console dist directory. Defaults to crates/mesh-llm-ui/dist.
|
|
--skip-build Do not run scripts/build-ui.sh before copying.
|
|
-h, --help Show this help.
|
|
EOF
|
|
}
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
SDK="all"
|
|
DIST_DIR="$REPO_ROOT/crates/mesh-llm-ui/dist"
|
|
SKIP_BUILD=0
|
|
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case "$1" in
|
|
--sdk)
|
|
SDK="${2:?missing SDK name}"
|
|
shift 2
|
|
;;
|
|
--dist)
|
|
DIST_DIR="${2:?missing dist directory}"
|
|
shift 2
|
|
;;
|
|
--skip-build)
|
|
SKIP_BUILD=1
|
|
shift
|
|
;;
|
|
-h|--help)
|
|
usage
|
|
exit 0
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case "$SDK" in
|
|
node|swift|kotlin|all) ;;
|
|
*)
|
|
echo "unsupported SDK: $SDK" >&2
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [[ "$SKIP_BUILD" == "0" ]]; then
|
|
MESH_LLM_BUILD_PROFILE="${MESH_LLM_BUILD_PROFILE:-release}" \
|
|
"$SCRIPT_DIR/build-ui.sh" "$REPO_ROOT/crates/mesh-llm-ui"
|
|
fi
|
|
|
|
if [[ ! -f "$DIST_DIR/index.html" ]]; then
|
|
echo "console dist is missing index.html: $DIST_DIR" >&2
|
|
exit 1
|
|
fi
|
|
|
|
write_manifest() {
|
|
local dest="$1"
|
|
python3 - "$dest" <<'PY'
|
|
import pathlib
|
|
import sys
|
|
|
|
root = pathlib.Path(sys.argv[1])
|
|
entries = []
|
|
for path in root.rglob("*"):
|
|
if path.is_file():
|
|
rel = path.relative_to(root).as_posix()
|
|
if rel == "manifest.txt" or rel.startswith("."):
|
|
continue
|
|
entries.append(rel)
|
|
(root / "manifest.txt").write_text("\n".join(sorted(entries)) + "\n", encoding="utf-8")
|
|
PY
|
|
}
|
|
|
|
copy_console_assets() {
|
|
local dest="$1"
|
|
rm -rf "$dest"
|
|
mkdir -p "$dest"
|
|
cp -R "$DIST_DIR"/. "$dest"/
|
|
rm -f "$dest/.mesh-llm-ui-build-env"
|
|
: > "$dest/.gitkeep"
|
|
write_manifest "$dest"
|
|
"$SCRIPT_DIR/verify-sdk-console-assets.sh" "$dest"
|
|
}
|
|
|
|
package_node() {
|
|
copy_console_assets "$REPO_ROOT/sdk/node/console"
|
|
}
|
|
|
|
package_swift() {
|
|
copy_console_assets "$REPO_ROOT/sdk/swift/Sources/MeshLLM/Resources/Console"
|
|
}
|
|
|
|
package_kotlin() {
|
|
copy_console_assets "$REPO_ROOT/sdk/kotlin/src/main/resources/mesh-llm/console"
|
|
}
|
|
|
|
case "$SDK" in
|
|
node)
|
|
package_node
|
|
;;
|
|
swift)
|
|
package_swift
|
|
;;
|
|
kotlin)
|
|
package_kotlin
|
|
;;
|
|
all)
|
|
package_node
|
|
package_swift
|
|
package_kotlin
|
|
;;
|
|
esac
|