feat(natives): fixed binary installs with embedded native addon extraction

- Added automatic extraction of embedded native addon payload to ~/.omp/natives/<version> on first run of compiled binaries.
- Added embed:native build script for generating platform-specific native addon payloads embedded in compiled binaries.
- Enhanced native addon loading to prioritize extracted embedded addon over downloaded versions.
- Improved error messages with platform-specific guidance for compiled vs npm-installed binaries.
- Refactored CI workflow to use reusable build_binary() function for cross-platform binary compilation.
This commit is contained in:
can1357
2026-02-01 17:16:53 +01:00
parent feb3a51d1e
commit 2a131d201e
8 changed files with 129 additions and 17 deletions
+14 -5
View File
@@ -167,11 +167,20 @@ jobs:
mkdir -p packages/coding-agent/binaries
ENTRYPOINT="./packages/coding-agent/src/cli.ts"
DEFINES="--define OMP_COMPILED=true --root ."
bun build --compile $DEFINES --target=bun-darwin-arm64 $ENTRYPOINT --outfile packages/coding-agent/binaries/omp-darwin-arm64
bun build --compile $DEFINES --target=bun-darwin-x64 $ENTRYPOINT --outfile packages/coding-agent/binaries/omp-darwin-x64
bun build --compile $DEFINES --target=bun-linux-x64 $ENTRYPOINT --outfile packages/coding-agent/binaries/omp-linux-x64
bun build --compile $DEFINES --target=bun-linux-arm64 $ENTRYPOINT --outfile packages/coding-agent/binaries/omp-linux-arm64
bun build --compile $DEFINES --target=bun-windows-x64 $ENTRYPOINT --outfile packages/coding-agent/binaries/omp-windows-x64.exe
build_binary() {
PLATFORM="$1"
ARCH="$2"
TARGET="$3"
OUTFILE="$4"
TARGET_PLATFORM="$PLATFORM" TARGET_ARCH="$ARCH" bun --cwd=packages/natives run embed:native
bun build --compile $DEFINES --target="$TARGET" "$ENTRYPOINT" --outfile "$OUTFILE"
}
build_binary darwin arm64 bun-darwin-arm64 packages/coding-agent/binaries/omp-darwin-arm64
build_binary darwin x64 bun-darwin-x64 packages/coding-agent/binaries/omp-darwin-x64
build_binary linux x64 bun-linux-x64 packages/coding-agent/binaries/omp-linux-x64
build_binary linux arm64 bun-linux-arm64 packages/coding-agent/binaries/omp-linux-arm64
build_binary win32 x64 bun-windows-x64 packages/coding-agent/binaries/omp-windows-x64.exe
bun --cwd=packages/natives run embed:native --reset
- name: Stage native addons for release
run: cp packages/natives/native/*.node packages/coding-agent/binaries/
- name: Create GitHub Release