ruvector/npm/packages/sona/package.json
rUv a58858e5ec
fix: repair the self-learning intelligence/SONA pipeline (#552)
* fix(sona): wire WASM learn-to-inference loop; single-step gradient fallback (#519)

start_trajectory/record_step/end_trajectory now drive real TrajectoryBuilders
through SonaEngine instead of console.log stubs; learn_from_feedback
synthesizes a one-step trajectory and flushes so a single feedback call
updates MicroLoRA weights. LearningSignal::estimate_gradient falls back to
baseline-free REINFORCE only when the baselined gradient is exactly zero
(single-step / constant-reward trajectories), leaving multi-step
varying-reward behavior unchanged. 3 regression tests added.

Co-Authored-By: claude-flow <ruv@ruv.net>

* fix(ruvector): force-learn crash and learned-route namespace mismatch (#529, #517)

force-learn: stop calling intel.tick() on the engine-less Intelligence
wrapper (TypeError); use the native engine forceLearn()/tick() like the MCP
handler does, degrade to success:false + exit 0 when the engine is
unavailable, never throw (#529).

route learning: Q-patterns were written as command/edit outcome episodes
under state keys route() never queries, so routing always returned default
mapping. Add recordRouteOutcome() writing agent outcomes under the exact
getState() key route() reads; trajectory-end now closes the loop (and
trajectory-begin gains --file); Intelligence.load() preserves
activeTrajectories so cross-process trajectories survive; sync route() uses
the canonical state key and includes learned agents in candidates (#517).
New test suite tests/hooks-route-learning.test.mjs.

Co-Authored-By: claude-flow <ruv@ruv.net>

* fix(sona-npm): guard publish against missing build output; bump to 0.1.7 (#516)

0.1.6 shipped with only README + package.json because index.js/index.d.ts
are napi build artifacts absent at publish time and npm silently skips
missing `files` entries. Add a prepublishOnly check that hard-fails without
build output; bump platform optionalDependencies 0.1.4 -> 0.1.5 (latest
published for all 7 targets). CI had the same latent gap: sona-napi.yml only
staged .node artifacts for publish — now uploads index.js/index.d.ts as a
js-bindings artifact and verifies presence before npm publish.

Co-Authored-By: claude-flow <ruv@ruv.net>

* style(sona): rustfmt the #519 regression tests

Co-Authored-By: claude-flow <ruv@ruv.net>

---------

Co-authored-by: ruv <ruvnet@users.noreply.github.com>
2026-06-11 15:29:24 -04:00

83 lines
No EOL
2.8 KiB
JSON

{
"name": "@ruvector/sona",
"version": "0.1.7",
"description": "Self-Optimizing Neural Architecture (SONA) - Runtime-adaptive learning with LoRA, EWC++, and ReasoningBank for LLM routers and AI systems. Sub-millisecond learning overhead, WASM and Node.js support.",
"main": "index.js",
"types": "index.d.ts",
"napi": {
"binaryName": "sona",
"targets": [
"x86_64-unknown-linux-gnu",
"x86_64-unknown-linux-musl",
"aarch64-unknown-linux-gnu",
"x86_64-apple-darwin",
"aarch64-apple-darwin",
"x86_64-pc-windows-msvc",
"aarch64-pc-windows-msvc"
]
},
"scripts": {
"artifacts": "napi artifacts",
"build": "napi build --platform --release -p ruvector-sona --cargo-cwd ../../../crates/sona --features napi",
"build:debug": "napi build --platform -p ruvector-sona --cargo-cwd ../../../crates/sona --features napi",
"prepublishOnly": "node -e \"const fs=require('fs');const missing=['index.js','index.d.ts'].filter(f=>!fs.existsSync(f));if(missing.length){console.error('ERROR: cannot publish @ruvector/sona: missing build output: '+missing.join(', ')+'. Run npm run build first (napi build against crates/sona, requires cargo + @napi-rs/cli). npm silently skips missing files entries, which is how the broken 0.1.6 tarball shipped.');process.exit(1)}if(!fs.readdirSync('.').some(f=>f.endsWith('.node'))){console.warn('WARNING: no local .node binary found; installs will rely solely on @ruvector/sona-* optionalDependencies.')}\"",
"test": "node --test",
"universal": "napi universal",
"version": "napi version"
},
"devDependencies": {
"@napi-rs/cli": "^2.18.0"
},
"keywords": [
"sona",
"neural-network",
"adaptive-learning",
"lora",
"low-rank-adaptation",
"ewc",
"elastic-weight-consolidation",
"reasoningbank",
"llm",
"llm-router",
"machine-learning",
"ai",
"deep-learning",
"continual-learning",
"napi",
"rust",
"ruvector"
],
"author": "rUv Team <team@ruv.io>",
"license": "MIT OR Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/ruvnet/ruvector.git",
"directory": "npm/packages/sona"
},
"homepage": "https://github.com/ruvnet/ruvector/tree/main/crates/sona",
"bugs": {
"url": "https://github.com/ruvnet/ruvector/issues"
},
"engines": {
"node": ">= 16"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
"access": "public"
},
"files": [
"index.js",
"index.d.ts",
"README.md",
"*.node"
],
"optionalDependencies": {
"@ruvector/sona-linux-x64-gnu": "0.1.5",
"@ruvector/sona-linux-x64-musl": "0.1.5",
"@ruvector/sona-linux-arm64-gnu": "0.1.5",
"@ruvector/sona-darwin-x64": "0.1.5",
"@ruvector/sona-darwin-arm64": "0.1.5",
"@ruvector/sona-win32-x64-msvc": "0.1.5",
"@ruvector/sona-win32-arm64-msvc": "0.1.5"
}
}