mirror of
https://github.com/lukaszraczylo/claude-mnemonic.git
synced 2026-10-12 04:55:18 +00:00
Dynamically download ONNX libraries from microshit's website.
This commit is contained in:
@@ -8,6 +8,8 @@ project_name: claude-mnemonic
|
|||||||
before:
|
before:
|
||||||
hooks:
|
hooks:
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
|
# Download ONNX runtime library for current platform if not present
|
||||||
|
- bash -c "./scripts/download-onnx-libs.sh auto"
|
||||||
# Generate versioned package.json from template and build Vue dashboard
|
# Generate versioned package.json from template and build Vue dashboard
|
||||||
- bash -c "sed 's/{{ .Version }}/{{ .Version }}/g' ui/package.json.tpl > ui/package.json"
|
- bash -c "sed 's/{{ .Version }}/{{ .Version }}/g' ui/package.json.tpl > ui/package.json"
|
||||||
- bash -c "cd ui && npm ci --silent && npm run build"
|
- bash -c "cd ui && npm ci --silent && npm run build"
|
||||||
|
|||||||
@@ -14,12 +14,16 @@ GOARCH ?= $(shell go env GOARCH)
|
|||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
BUILD_TAGS := -tags "fts5"
|
BUILD_TAGS := -tags "fts5"
|
||||||
|
|
||||||
.PHONY: all build clean test install lint hooks worker mcp stop-worker start-worker restart-worker dashboard website dev-website
|
.PHONY: all build clean test install lint hooks worker mcp stop-worker start-worker restart-worker dashboard website dev-website setup-libs
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
|
# Download ONNX runtime libraries (all platforms for local dev, skips if present)
|
||||||
|
setup-libs:
|
||||||
|
@./scripts/download-onnx-libs.sh all
|
||||||
|
|
||||||
# Build all binaries
|
# Build all binaries
|
||||||
build: dashboard worker hooks mcp
|
build: setup-libs dashboard worker hooks mcp
|
||||||
|
|
||||||
# Build Vue dashboard
|
# Build Vue dashboard
|
||||||
dashboard:
|
dashboard:
|
||||||
@@ -154,7 +158,7 @@ uninstall: stop-worker
|
|||||||
@echo "Uninstallation complete!"
|
@echo "Uninstallation complete!"
|
||||||
|
|
||||||
# Run tests
|
# Run tests
|
||||||
test:
|
test: setup-libs
|
||||||
go test -v -race ./...
|
go test -v -race ./...
|
||||||
|
|
||||||
# Run tests with coverage
|
# Run tests with coverage
|
||||||
|
|||||||
Executable
+111
@@ -0,0 +1,111 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Download ONNX Runtime libraries for embedding
|
||||||
|
# Usage: ./download-onnx-libs.sh [platform]
|
||||||
|
# Platform: darwin-amd64, darwin-arm64, linux-amd64, linux-arm64, or "all" (default)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ONNX_VERSION="1.19.2"
|
||||||
|
ASSETS_DIR="internal/embedding/assets/lib"
|
||||||
|
PLATFORM="${1:-all}"
|
||||||
|
|
||||||
|
# Auto-detect platform if not specified
|
||||||
|
if [ "$PLATFORM" = "auto" ]; then
|
||||||
|
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
case "$OS" in
|
||||||
|
darwin) OS="darwin" ;;
|
||||||
|
linux) OS="linux" ;;
|
||||||
|
*) echo "Unsupported OS: $OS"; exit 1 ;;
|
||||||
|
esac
|
||||||
|
case "$ARCH" in
|
||||||
|
x86_64|amd64) ARCH="amd64" ;;
|
||||||
|
arm64|aarch64) ARCH="arm64" ;;
|
||||||
|
*) echo "Unsupported arch: $ARCH"; exit 1 ;;
|
||||||
|
esac
|
||||||
|
PLATFORM="${OS}-${ARCH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Temporary directory for downloads
|
||||||
|
TEMP_DIR=$(mktemp -d)
|
||||||
|
trap "rm -rf ${TEMP_DIR}" EXIT
|
||||||
|
|
||||||
|
download_darwin_amd64() {
|
||||||
|
echo "Downloading darwin-amd64..."
|
||||||
|
mkdir -p "${ASSETS_DIR}/darwin-amd64"
|
||||||
|
curl -sSL "https://github.com/microsoft/onnxruntime/releases/download/v${ONNX_VERSION}/onnxruntime-osx-x86_64-${ONNX_VERSION}.tgz" -o "${TEMP_DIR}/darwin-amd64.tgz"
|
||||||
|
tar -xzf "${TEMP_DIR}/darwin-amd64.tgz" -C "${TEMP_DIR}"
|
||||||
|
cp "${TEMP_DIR}/onnxruntime-osx-x86_64-${ONNX_VERSION}/lib/libonnxruntime.${ONNX_VERSION}.dylib" "${ASSETS_DIR}/darwin-amd64/libonnxruntime.dylib"
|
||||||
|
}
|
||||||
|
|
||||||
|
download_darwin_arm64() {
|
||||||
|
echo "Downloading darwin-arm64..."
|
||||||
|
mkdir -p "${ASSETS_DIR}/darwin-arm64"
|
||||||
|
curl -sSL "https://github.com/microsoft/onnxruntime/releases/download/v${ONNX_VERSION}/onnxruntime-osx-arm64-${ONNX_VERSION}.tgz" -o "${TEMP_DIR}/darwin-arm64.tgz"
|
||||||
|
tar -xzf "${TEMP_DIR}/darwin-arm64.tgz" -C "${TEMP_DIR}"
|
||||||
|
cp "${TEMP_DIR}/onnxruntime-osx-arm64-${ONNX_VERSION}/lib/libonnxruntime.${ONNX_VERSION}.dylib" "${ASSETS_DIR}/darwin-arm64/libonnxruntime.dylib"
|
||||||
|
}
|
||||||
|
|
||||||
|
download_linux_amd64() {
|
||||||
|
echo "Downloading linux-amd64..."
|
||||||
|
mkdir -p "${ASSETS_DIR}/linux-amd64"
|
||||||
|
curl -sSL "https://github.com/microsoft/onnxruntime/releases/download/v${ONNX_VERSION}/onnxruntime-linux-x64-${ONNX_VERSION}.tgz" -o "${TEMP_DIR}/linux-amd64.tgz"
|
||||||
|
tar -xzf "${TEMP_DIR}/linux-amd64.tgz" -C "${TEMP_DIR}"
|
||||||
|
cp "${TEMP_DIR}/onnxruntime-linux-x64-${ONNX_VERSION}/lib/libonnxruntime.so.${ONNX_VERSION}" "${ASSETS_DIR}/linux-amd64/libonnxruntime.so"
|
||||||
|
cp "${TEMP_DIR}/onnxruntime-linux-x64-${ONNX_VERSION}/lib/libonnxruntime_providers_shared.so" "${ASSETS_DIR}/linux-amd64/libonnxruntime_providers_shared.so" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
|
||||||
|
download_linux_arm64() {
|
||||||
|
echo "Downloading linux-arm64..."
|
||||||
|
mkdir -p "${ASSETS_DIR}/linux-arm64"
|
||||||
|
curl -sSL "https://github.com/microsoft/onnxruntime/releases/download/v${ONNX_VERSION}/onnxruntime-linux-aarch64-${ONNX_VERSION}.tgz" -o "${TEMP_DIR}/linux-arm64.tgz"
|
||||||
|
tar -xzf "${TEMP_DIR}/linux-arm64.tgz" -C "${TEMP_DIR}"
|
||||||
|
cp "${TEMP_DIR}/onnxruntime-linux-aarch64-${ONNX_VERSION}/lib/libonnxruntime.so.${ONNX_VERSION}" "${ASSETS_DIR}/linux-arm64/libonnxruntime.so"
|
||||||
|
cp "${TEMP_DIR}/onnxruntime-linux-aarch64-${ONNX_VERSION}/lib/libonnxruntime_providers_shared.so" "${ASSETS_DIR}/linux-arm64/libonnxruntime_providers_shared.so" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if library already exists for a platform
|
||||||
|
lib_exists() {
|
||||||
|
local plat="$1"
|
||||||
|
case "$plat" in
|
||||||
|
darwin-*) [ -f "${ASSETS_DIR}/${plat}/libonnxruntime.dylib" ] ;;
|
||||||
|
linux-*) [ -f "${ASSETS_DIR}/${plat}/libonnxruntime.so" ] ;;
|
||||||
|
*) return 1 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Download only if not present
|
||||||
|
download_if_needed() {
|
||||||
|
local plat="$1"
|
||||||
|
if lib_exists "$plat"; then
|
||||||
|
echo "Library for ${plat} already exists, skipping download"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
case "$plat" in
|
||||||
|
darwin-amd64) download_darwin_amd64 ;;
|
||||||
|
darwin-arm64) download_darwin_arm64 ;;
|
||||||
|
linux-amd64) download_linux_amd64 ;;
|
||||||
|
linux-arm64) download_linux_arm64 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "ONNX Runtime v${ONNX_VERSION} - Platform: ${PLATFORM}"
|
||||||
|
|
||||||
|
case "$PLATFORM" in
|
||||||
|
darwin-amd64|darwin-arm64|linux-amd64|linux-arm64)
|
||||||
|
download_if_needed "$PLATFORM"
|
||||||
|
;;
|
||||||
|
all)
|
||||||
|
download_if_needed darwin-amd64
|
||||||
|
download_if_needed darwin-arm64
|
||||||
|
download_if_needed linux-amd64
|
||||||
|
download_if_needed linux-arm64
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown platform: $PLATFORM"
|
||||||
|
echo "Supported: darwin-amd64, darwin-arm64, linux-amd64, linux-arm64, all, auto"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Done!"
|
||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "claude-mnemonic-dashboard",
|
"name": "claude-mnemonic-dashboard",
|
||||||
"version": "v0.6.1-11-g7fe679f-dirty",
|
"version": "v0.6.5-11-gdb528b2-dirty",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "claude-mnemonic-dashboard",
|
"name": "claude-mnemonic-dashboard",
|
||||||
"version": "v0.6.1-11-g7fe679f-dirty",
|
"version": "v0.6.5-11-gdb528b2-dirty",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue": "^3.5.13"
|
"vue": "^3.5.13"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "claude-mnemonic-dashboard",
|
"name": "claude-mnemonic-dashboard",
|
||||||
"version": "{{ .Version }}",
|
"version": "v0.6.5-11-gdb528b2-dirty",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user