Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
eb12270
feat(postgres): Add 7 advanced AI modules to ruvector-postgres
ruvnet Dec 2, 2025
f5a7777
fix(docker): Copy entire workspace for pgrx build
ruvnet Dec 2, 2025
316c7f9
fix(docker): Build standalone crate without workspace
ruvnet Dec 2, 2025
ed3c283
docs: Update README to enhance clarity and structure
ruvnet Dec 2, 2025
ee40332
fix(postgres): Resolve compilation errors and Docker build issues
ruvnet Dec 3, 2025
2fb7186
feat: Add ruvLLM examples and enhanced postgres-cli
ruvnet Dec 3, 2025
8d9638c
fix(postgres-cli): Use native ruvector type instead of pgvector
ruvnet Dec 3, 2025
0621303
feat(postgres): Add 53 SQL function definitions for all advanced modules
ruvnet Dec 3, 2025
8de3ff5
docs: Improve README, package.json SEO, and Cargo.toml for publishing
ruvnet Dec 3, 2025
3fa6875
docs(postgres): Comprehensive README with all 53+ SQL functions
ruvnet Dec 3, 2025
760e0b9
chore(postgres): Bump version to 0.1.1 with comprehensive docs
ruvnet Dec 3, 2025
5bad08c
feat(sona): Add SONA self-optimizing neural architecture
ruvnet Dec 3, 2025
beea41f
fix(burst-scaling): Replace non-existent @google-cloud/sql with corre…
ruvnet Dec 3, 2025
c039bf2
feat(simd): Add full AVX-512 SIMD support with ~2x speedup over AVX2
ruvnet Dec 3, 2025
aa0a090
docs(sona): Comprehensive README with capabilities, benchmarks, and t…
ruvnet Dec 3, 2025
3dedbc6
chore(postgres): Bump version to 0.2.0 for AVX-512 release
ruvnet Dec 3, 2025
39fe1d2
docs(sona): Enhanced README and publishing preparation
ruvnet Dec 3, 2025
7d7f472
docs: Improve README and prepare SONA for publishing
ruvnet Dec 3, 2025
ed37e77
chore(sona): Bump npm package to v0.1.1
ruvnet Dec 3, 2025
40c8e93
docs: Update README with ruvector-sona crate and npm package info
ruvnet Dec 3, 2025
5cf5626
docs: Update README with ruvector-postgres v0.2.0 and npm CLI
ruvnet Dec 3, 2025
2e42f31
fix(postgres): HNSW performance and robustness improvements
ruvnet Dec 3, 2025
1c92fa4
chore(postgres): Bump version to 0.2.1
ruvnet Dec 3, 2025
b36ec5a
chore(npm): Bump @ruvector/postgres-cli to 0.1.1
ruvnet Dec 3, 2025
37ff1eb
perf(postgres): Zero-copy HNSW insert path optimization
ruvnet Dec 3, 2025
4d24844
perf(sona): Optimize defaults based on benchmark findings
ruvnet Dec 3, 2025
77a8cd8
docs(sona): Comprehensive README with tutorials and API reference
ruvnet Dec 3, 2025
8828f60
feat(sona): Add HuggingFace export module and GitHub Actions for cros…
ruvnet Dec 3, 2025
b9470e1
fix(sona): Fix NAPI build config and publish v0.1.3 with Linux x64 bi…
ruvnet Dec 3, 2025
9483831
fix(postgres): Fix SQL function declarations and disable HNSW access …
ruvnet Dec 3, 2025
e29c7fc
feat(sona): Add federated learning with EphemeralAgent and FederatedC…
ruvnet Dec 3, 2025
de3b80b
feat(postgres): Enable HNSW access method for CREATE INDEX ... USING …
ruvnet Dec 3, 2025
a803d31
chore(postgres): Bump version to 0.2.3
ruvnet Dec 3, 2025
cb9cd8b
feat(sona): Add federated learning WASM bindings v0.1.4
ruvnet Dec 3, 2025
28c9c34
feat(ruvector): Add core TypeScript wrappers and services
ruvnet Dec 3, 2025
5d22dbf
chore(sona): Bump @ruvector/sona to v0.1.4
ruvnet Dec 3, 2025
79b49e8
fix(ci): Fix YAML syntax in sona-napi workflow
ruvnet Dec 3, 2025
285a408
fix(workflow): Remove redundant npm install step that broke workspace…
ruvnet Dec 3, 2025
f96564d
fix(workflow): Use correct napi-rs CLI options for build
ruvnet Dec 3, 2025
9087f0e
fix(workflow): Add --output-dir to place .node files in npm package dir
ruvnet Dec 3, 2025
e95a560
fix(napi): Add cargo config for macOS dynamic linking and use napi-cr…
ruvnet Dec 3, 2025
dfef4d4
fix(core): Fix HNSW test failures and bump to v0.1.20
ruvnet Dec 3, 2025
6a68189
fix(napi): Set RUSTFLAGS directly for macOS builds
ruvnet Dec 3, 2025
10f8baf
feat(postgres-cli): Add Docker-based installation commands
ruvnet Dec 3, 2025
6db3bab
fix(workflow): Install napi CLI in publish job and update optionalDep…
ruvnet Dec 3, 2025
565307f
fix(npm): Remove prepublishOnly script that conflicts with CI publish
ruvnet Dec 3, 2025
df7f412
fix(storage): Fix path traversal validation for non-existent files
ruvnet Dec 3, 2025
8c1ac02
chore(npm): Bump versions for path traversal fix
ruvnet Dec 3, 2025
e83ea6d
fix(ci): Install only core package deps for native build
ruvnet Dec 3, 2025
a78ef9c
fix(ci): Skip optional dependencies in native build
ruvnet Dec 3, 2025
e0ee315
fix(ci): Install only @napi-rs/cli directly for native build
ruvnet Dec 3, 2025
4a91136
fix(ci): Install napi-rs globally to avoid workspace issues
ruvnet Dec 3, 2025
9270abe
ci: Add GitHub Actions for RuvLLM multi-platform native builds
ruvnet Dec 3, 2025
0324f2d
feat(npm): Publish v0.1.17 with path traversal fix
ruvnet Dec 3, 2025
4cd8b6a
fix(ci): Use correct dtolnay/rust-toolchain action
ruvnet Dec 3, 2025
1c3f297
fix(ci): Use napi-rs CLI for proper cross-platform builds
ruvnet Dec 3, 2025
6b97cbf
fix(ruvllm): Add cargo config for macOS N-API dynamic linking
ruvnet Dec 3, 2025
9b0efe1
fix(ci): Use cargo build --lib to avoid building binaries
ruvnet Dec 3, 2025
03fa15e
chore: Bump ruvector to 0.1.31 and core to 0.1.17
ruvnet Dec 3, 2025
beaee27
fix(ruvllm): Normalize native RuvLlmEngine to RuvLLMEngine
ruvnet Dec 3, 2025
7fbaa06
Merge branch 'main' into feature/sona-implementation
ruvnet Dec 3, 2025
a7d080b
fix(ci): Remove unpublished psycho-symbolic packages
ruvnet Dec 3, 2025
4b1fd0e
fix(ci): Fix PostgreSQL Extension CI failures
ruvnet Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 2 additions & 3 deletions .github/workflows/build-native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,8 @@ jobs:
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

- name: Install dependencies
working-directory: npm
run: npm install --ignore-scripts --omit=optional --force
- name: Install NAPI-RS CLI
run: npm install -g @napi-rs/cli@^2.18.0

- name: Build native module
working-directory: npm/packages/core
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/postgres-extension-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ jobs:
- name: Install PostgreSQL (Ubuntu)
if: runner.os == 'Linux'
run: |
# Add PostgreSQL apt repository for older versions on Ubuntu 24.04
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgresql-${{ matrix.pg_version }} postgresql-server-dev-${{ matrix.pg_version }}
echo "/usr/lib/postgresql/${{ matrix.pg_version }}/bin" >> $GITHUB_PATH
Expand Down Expand Up @@ -163,12 +166,12 @@ jobs:

- name: Build with all features
run: |
cargo build --features pg16,index-all,quant-all,hybrid-search,filtered-search --release
cargo build --features pg16,index-all,quant-all,all-features --release
working-directory: crates/ruvector-postgres

- name: Test with all features
run: |
cargo pgrx test pg16 --features index-all,quant-all,hybrid-search,filtered-search
cargo pgrx test pg16 --features index-all,quant-all,all-features
working-directory: crates/ruvector-postgres

# Benchmark on pull requests
Expand Down Expand Up @@ -242,6 +245,9 @@ jobs:

- name: Install PostgreSQL
run: |
# Add PostgreSQL apt repository for older versions on Ubuntu 24.04
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgresql-${{ matrix.pg_version }} postgresql-server-dev-${{ matrix.pg_version }}

Expand Down
235 changes: 235 additions & 0 deletions .github/workflows/ruvllm-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
name: RuvLLM Build & Publish

on:
push:
tags:
- 'ruvllm-v*'
workflow_dispatch:
inputs:
version:
description: 'Version to publish'
required: false
default: ''

env:
DEBUG: napi:*
APP_NAME: ruvllm
MACOSX_DEPLOYMENT_TARGET: '10.13'

jobs:
build:
strategy:
fail-fast: false
matrix:
settings:
- host: macos-latest
target: x86_64-apple-darwin
build: |
cd examples/ruvLLM
cargo build --release --features napi
strip -x ../../target/release/libruvllm.dylib || true
artifact: libruvllm.dylib
artifact_name: ruvllm.darwin-x64.node

- host: macos-latest
target: aarch64-apple-darwin
build: |
cd examples/ruvLLM
cargo build --release --features napi --target aarch64-apple-darwin
strip -x ../../target/aarch64-apple-darwin/release/libruvllm.dylib || true
artifact: target/aarch64-apple-darwin/release/libruvllm.dylib
artifact_name: ruvllm.darwin-arm64.node

- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
build: |
cd examples/ruvLLM
cargo build --release --features napi
strip ../../target/release/libruvllm.so
artifact: libruvllm.so
artifact_name: ruvllm.linux-x64-gnu.node

- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |
cd examples/ruvLLM
cargo build --release --features napi --target aarch64-unknown-linux-gnu
aarch64-linux-gnu-strip ../../target/aarch64-unknown-linux-gnu/release/libruvllm.so || true
artifact: target/aarch64-unknown-linux-gnu/release/libruvllm.so
artifact_name: ruvllm.linux-arm64-gnu.node

- host: windows-latest
target: x86_64-pc-windows-msvc
build: |
cd examples/ruvLLM
cargo build --release --features napi
artifact: ruvllm.dll
artifact_name: ruvllm.win32-x64-msvc.node

name: Build - ${{ matrix.settings.target }}
runs-on: ${{ matrix.settings.host }}

steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
if: ${{ !matrix.settings.docker }}
with:
targets: ${{ matrix.settings.target }}

- name: Cache Cargo
uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.settings.target }}

- name: Build (Native)
if: ${{ !matrix.settings.docker }}
shell: bash
run: ${{ matrix.settings.build }}

- name: Build (Docker)
if: ${{ matrix.settings.docker }}
uses: addnab/docker-run-action@v3
with:
image: ${{ matrix.settings.docker }}
options: --user 0:0 -v ${{ github.workspace }}:/workspace -w /workspace
run: ${{ matrix.settings.build }}

- name: Copy artifact
shell: bash
run: |
mkdir -p npm/packages/ruvllm/npm/${{ matrix.settings.target }}
if [ -f "target/release/${{ matrix.settings.artifact }}" ]; then
cp target/release/${{ matrix.settings.artifact }} npm/packages/ruvllm/npm/${{ matrix.settings.target }}/${{ matrix.settings.artifact_name }}
elif [ -f "${{ matrix.settings.artifact }}" ]; then
cp ${{ matrix.settings.artifact }} npm/packages/ruvllm/npm/${{ matrix.settings.target }}/${{ matrix.settings.artifact_name }}
fi

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: npm/packages/ruvllm/npm/${{ matrix.settings.target }}/${{ matrix.settings.artifact_name }}
if-no-files-found: error

publish:
name: Publish npm packages
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'

- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Move artifacts to npm directories
run: |
# Darwin x64
mkdir -p npm/packages/ruvllm/npm/darwin-x64
cp artifacts/bindings-x86_64-apple-darwin/ruvllm.darwin-x64.node npm/packages/ruvllm/npm/darwin-x64/ || true

# Darwin arm64
mkdir -p npm/packages/ruvllm/npm/darwin-arm64
cp artifacts/bindings-aarch64-apple-darwin/ruvllm.darwin-arm64.node npm/packages/ruvllm/npm/darwin-arm64/ || true

# Linux x64
mkdir -p npm/packages/ruvllm/npm/linux-x64-gnu
cp artifacts/bindings-x86_64-unknown-linux-gnu/ruvllm.linux-x64-gnu.node npm/packages/ruvllm/npm/linux-x64-gnu/ || true

# Linux arm64
mkdir -p npm/packages/ruvllm/npm/linux-arm64-gnu
cp artifacts/bindings-aarch64-unknown-linux-gnu/ruvllm.linux-arm64-gnu.node npm/packages/ruvllm/npm/linux-arm64-gnu/ || true

# Windows x64
mkdir -p npm/packages/ruvllm/npm/win32-x64-msvc
cp artifacts/bindings-x86_64-pc-windows-msvc/ruvllm.win32-x64-msvc.node npm/packages/ruvllm/npm/win32-x64-msvc/ || true

- name: Install dependencies
run: |
cd npm/packages/ruvllm
npm install

- name: Build TypeScript
run: |
cd npm/packages/ruvllm
npm run build

- name: Publish platform packages
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
# Publish darwin-arm64
cd npm/packages/ruvllm/npm/darwin-arm64
npm publish --access public || true
cd -

# Publish darwin-x64
cd npm/packages/ruvllm/npm/darwin-x64
npm publish --access public || true
cd -

# Publish linux-x64-gnu
cd npm/packages/ruvllm/npm/linux-x64-gnu
npm publish --access public || true
cd -

# Publish linux-arm64-gnu
cd npm/packages/ruvllm/npm/linux-arm64-gnu
npm publish --access public || true
cd -

# Publish win32-x64-msvc
cd npm/packages/ruvllm/npm/win32-x64-msvc
npm publish --access public || true
cd -

- name: Publish main package
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
cd npm/packages/ruvllm
npm publish --access public

test:
name: Test npm package
runs-on: ${{ matrix.os }}
needs: publish
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: [18, 20]

steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
registry-url: 'https://registry.npmjs.org'

- name: Test installation
run: |
npm install @ruvector/ruvllm
node -e "const { RuvLLM, version } = require('@ruvector/ruvllm'); console.log('Version:', version()); const llm = new RuvLLM(); console.log('Native:', llm.isNativeLoaded()); console.log('SIMD:', llm.simdCapabilities());"

- name: Test CLI
run: |
npx @ruvector/ruvllm info
npx @ruvector/ruvllm benchmark --iterations 100
Loading