nestweaver 9.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # nestweaver
2
+
3
+ Code knowledge graph for AI agents — 42 MCP tools, 32 languages, graph
4
+ visualization.
5
+
6
+ This package is a thin wrapper. Its `postinstall` downloads the NestWeaver
7
+ binary matching this package's version from the project's GitHub Releases,
8
+ verifies it against the SHA-256 published alongside the archive, and puts a
9
+ `nestweaver` executable on your PATH.
10
+
11
+ ## Platforms
12
+
13
+ macOS and Linux, on x86_64 and arm64. On any other platform the install step
14
+ exits without failing and prints the supported targets; use a release archive
15
+ or a source build instead.
16
+
17
+ Linux builds target **glibc 2.35**, which covers Ubuntu 22.04 LTS and newer and
18
+ Debian 12. The archive includes the GCC 13 runtime LadybugDB needs and the npm
19
+ installer preserves it beside the binary. Check your glibc with `ldd --version`;
20
+ on anything older the binary will not start and the error names a missing
21
+ `GLIBC_` symbol. macOS builds target **13.3**.
22
+
23
+ ## Upgrading an existing graph
24
+
25
+ NestWeaver 9.0.0 raised the resolver generation, so a graph built by an earlier
26
+ release has stale rankings and is missing C/C++ `MEMBER_OF` and C++ `IMPORTS`
27
+ edges. Check with:
28
+
29
+ ```sh
30
+ nestweaver stale-check
31
+ ```
32
+
33
+ It exits `2` and reports `outdated_resolver` when a re-index is needed. The
34
+ remedy needs `--force`, because a generation-stale repo is at HEAD with nothing
35
+ modified and a plain re-index takes the incremental path and writes nothing:
36
+
37
+ ```sh
38
+ nestweaver index --repo <path> --force
39
+ ```
40
+
41
+ ## Other installation paths
42
+
43
+ Verified GitHub Release archives, and building from a source checkout with Rust
44
+ 1.85+, are documented in [INSTALL.md](https://github.com/Kehl-io/nestweaver/blob/main/INSTALL.md).
45
+
46
+ ## Links
47
+
48
+ - [Repository and documentation](https://github.com/Kehl-io/nestweaver)
49
+ - [Issue tracker](https://github.com/Kehl-io/nestweaver/issues)
50
+ - MIT licensed
package/bin/nestweaver ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+ DIR="$(cd "$(dirname "$0")/.." && pwd)"
4
+ BINARY="$DIR/.nestweaver-bin/nestweaver"
5
+
6
+ if [ ! -x "$BINARY" ]; then
7
+ echo "NestWeaver binary not found. Install a verified GitHub Release archive, or from a source checkout run: cargo install --locked --path ." >&2
8
+ exit 1
9
+ fi
10
+
11
+ exec "$BINARY" "$@"
package/install.js ADDED
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { execSync } = require("child_process");
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+
7
+ const PLATFORM_MAP = {
8
+ "darwin-x64": "x86_64-apple-darwin",
9
+ "darwin-arm64": "aarch64-apple-darwin",
10
+ "linux-x64": "x86_64-unknown-linux-gnu",
11
+ "linux-arm64": "aarch64-unknown-linux-gnu",
12
+ };
13
+
14
+ const key = `${process.platform}-${process.arch}`;
15
+ const target = PLATFORM_MAP[key];
16
+
17
+ if (!target) {
18
+ console.warn(`Unsupported platform: ${key}`);
19
+ console.warn("Supported: darwin-x64, darwin-arm64, linux-x64, linux-arm64");
20
+ console.warn(
21
+ "Unsupported platform. Install a verified GitHub Release archive for a supported target, or from a source checkout: cargo install --locked --path .",
22
+ );
23
+ process.exit(0); // Don't break npm install
24
+ }
25
+
26
+ const version = require("./package.json").version;
27
+ const repo = "Kehl-io/nestweaver";
28
+ // Release tags are `v<version>` (release-please config: include-component-in-tag
29
+ // false) and assets are `nestweaver-v<version>-<target>.tar.gz` (see the
30
+ // `build` job in .github/workflows/release-please.yml). Keep these in sync.
31
+ const tag = `v${version}`;
32
+ const archive = `nestweaver-${tag}-${target}.tar.gz`;
33
+ const base = `https://github.com/${repo}/releases/download/${tag}`;
34
+ const url = `${base}/${archive}`;
35
+
36
+ const binDir = path.join(__dirname, ".nestweaver-bin");
37
+ fs.mkdirSync(binDir, { recursive: true });
38
+ const archivePath = path.join(binDir, archive);
39
+
40
+ console.log(`Downloading NestWeaver v${version} for ${target}...`);
41
+
42
+ try {
43
+ execSync(`curl -fsSL "${url}" -o "${archivePath}"`, { stdio: "inherit" });
44
+
45
+ // Verify the SHA-256 the release ships alongside the archive — a mismatch
46
+ // means a corrupted or tampered download, which must fail loudly.
47
+ try {
48
+ const expected = execSync(`curl -fsSL "${url}.sha256"`)
49
+ .toString()
50
+ .trim()
51
+ .split(/\s+/)[0];
52
+ const actual = execSync(`shasum -a 256 "${archivePath}"`)
53
+ .toString()
54
+ .trim()
55
+ .split(/\s+/)[0];
56
+ if (expected && actual && expected !== actual) {
57
+ throw new Error(
58
+ `checksum mismatch: expected ${expected}, got ${actual}`,
59
+ );
60
+ }
61
+ } catch (checksumErr) {
62
+ if (String(checksumErr.message || "").includes("checksum mismatch")) {
63
+ throw checksumErr; // integrity failure — do not install
64
+ }
65
+ // Missing/unreadable .sha256 is not fatal; proceed with the download.
66
+ }
67
+
68
+ execSync(`tar xz -C "${binDir}" -f "${archivePath}"`, { stdio: "inherit" });
69
+ fs.rmSync(archivePath, { force: true });
70
+ fs.chmodSync(path.join(binDir, "nestweaver"), 0o755);
71
+ console.log("NestWeaver installed successfully.");
72
+ console.log(
73
+ "Upgrading an existing pre-publication brain? Stop its daemon and run `nestweaver publication rebuild --config /path/to/instance.toml`; the incumbent remains recoverable until validated cutover.",
74
+ );
75
+ } catch (err) {
76
+ console.warn(`Failed to install NestWeaver binary: ${err.message}`);
77
+ console.warn(` URL: ${url}`);
78
+ console.warn(
79
+ "Download a verified GitHub Release archive, or build from a source checkout: cargo install --locked --path .",
80
+ );
81
+ process.exit(0); // Don't break npm install on transient/network failures
82
+ }
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "nestweaver",
3
+ "version": "9.0.5",
4
+ "description": "Code knowledge graph for AI agents — 42 MCP tools, 32 languages, graph visualization",
5
+ "bin": {
6
+ "nestweaver": "bin/nestweaver"
7
+ },
8
+ "files": [
9
+ "bin/",
10
+ "install.js",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "postinstall": "node install.js"
15
+ },
16
+ "os": [
17
+ "darwin",
18
+ "linux"
19
+ ],
20
+ "cpu": [
21
+ "x64",
22
+ "arm64"
23
+ ],
24
+ "keywords": [
25
+ "mcp",
26
+ "code-graph",
27
+ "tree-sitter",
28
+ "code-intelligence",
29
+ "knowledge-graph",
30
+ "code-analysis"
31
+ ],
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/Kehl-io/nestweaver.git"
35
+ },
36
+ "license": "MIT",
37
+ "homepage": "https://github.com/Kehl-io/nestweaver"
38
+ }