homegraph 1.1.2 → 1.1.3
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/LICENSE +21 -21
- package/README.md +243 -243
- package/dist/bin/homegraph.js +371 -9
- package/dist/bin/homegraph.js.map +1 -1
- package/dist/db/migrations.js +18 -18
- package/dist/db/queries.js +140 -140
- package/dist/db/schema.sql +152 -152
- package/dist/directory.js +5 -5
- package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/dist/installer/instructions-template.js +9 -9
- package/dist/installer/targets/shared.d.ts +5 -6
- package/dist/installer/targets/shared.d.ts.map +1 -1
- package/dist/installer/targets/shared.js +5 -6
- package/dist/installer/targets/shared.js.map +1 -1
- package/dist/mcp/liveness-watchdog.js +16 -16
- package/dist/mcp/server-instructions.js +69 -69
- package/dist/mcp/tools.d.ts +17 -4
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +192 -22
- package/dist/mcp/tools.js.map +1 -1
- package/dist/reasoning/reasoner.js +32 -32
- package/dist/spec/config.d.ts +43 -0
- package/dist/spec/config.d.ts.map +1 -0
- package/dist/spec/config.js +275 -0
- package/dist/spec/config.js.map +1 -0
- package/dist/spec/db/commit-node.d.ts +23 -0
- package/dist/spec/db/commit-node.d.ts.map +1 -0
- package/dist/spec/db/commit-node.js +62 -0
- package/dist/spec/db/commit-node.js.map +1 -0
- package/dist/spec/db/fragment-node.d.ts +23 -0
- package/dist/spec/db/fragment-node.d.ts.map +1 -0
- package/dist/spec/db/fragment-node.js +120 -0
- package/dist/spec/db/fragment-node.js.map +1 -0
- package/dist/spec/db/fts.d.ts +60 -0
- package/dist/spec/db/fts.d.ts.map +1 -0
- package/dist/spec/db/fts.js +285 -0
- package/dist/spec/db/fts.js.map +1 -0
- package/dist/spec/db/index.d.ts +13 -0
- package/dist/spec/db/index.d.ts.map +1 -0
- package/dist/spec/db/index.js +50 -0
- package/dist/spec/db/index.js.map +1 -0
- package/dist/spec/db/relations.d.ts +55 -0
- package/dist/spec/db/relations.d.ts.map +1 -0
- package/dist/spec/db/relations.js +158 -0
- package/dist/spec/db/relations.js.map +1 -0
- package/dist/spec/db/schema.d.ts +30 -0
- package/dist/spec/db/schema.d.ts.map +1 -0
- package/dist/spec/db/schema.js +87 -0
- package/dist/spec/db/schema.js.map +1 -0
- package/dist/spec/db/schema.sql +107 -0
- package/dist/spec/db/spec-node.d.ts +41 -0
- package/dist/spec/db/spec-node.d.ts.map +1 -0
- package/dist/spec/db/spec-node.js +114 -0
- package/dist/spec/db/spec-node.js.map +1 -0
- package/dist/spec/evolve/impact-locator.d.ts +13 -0
- package/dist/spec/evolve/impact-locator.d.ts.map +1 -0
- package/dist/spec/evolve/impact-locator.js +25 -0
- package/dist/spec/evolve/impact-locator.js.map +1 -0
- package/dist/spec/evolve/llm-client.d.ts +50 -0
- package/dist/spec/evolve/llm-client.d.ts.map +1 -0
- package/dist/spec/evolve/llm-client.js +176 -0
- package/dist/spec/evolve/llm-client.js.map +1 -0
- package/dist/spec/evolve/logic-checker.d.ts +12 -0
- package/dist/spec/evolve/logic-checker.d.ts.map +1 -0
- package/dist/spec/evolve/logic-checker.js +48 -0
- package/dist/spec/evolve/logic-checker.js.map +1 -0
- package/dist/spec/evolve/pipeline.d.ts +40 -0
- package/dist/spec/evolve/pipeline.d.ts.map +1 -0
- package/dist/spec/evolve/pipeline.js +314 -0
- package/dist/spec/evolve/pipeline.js.map +1 -0
- package/dist/spec/evolve/spec-rewriter.d.ts +42 -0
- package/dist/spec/evolve/spec-rewriter.d.ts.map +1 -0
- package/dist/spec/evolve/spec-rewriter.js +254 -0
- package/dist/spec/evolve/spec-rewriter.js.map +1 -0
- package/dist/spec/graph/queries.d.ts +58 -0
- package/dist/spec/graph/queries.d.ts.map +1 -0
- package/dist/spec/graph/queries.js +215 -0
- package/dist/spec/graph/queries.js.map +1 -0
- package/dist/spec/mining/diff-parser.d.ts +33 -0
- package/dist/spec/mining/diff-parser.d.ts.map +1 -0
- package/dist/spec/mining/diff-parser.js +166 -0
- package/dist/spec/mining/diff-parser.js.map +1 -0
- package/dist/spec/mining/git-scanner.d.ts +91 -0
- package/dist/spec/mining/git-scanner.d.ts.map +1 -0
- package/dist/spec/mining/git-scanner.js +266 -0
- package/dist/spec/mining/git-scanner.js.map +1 -0
- package/dist/spec/mining/pipeline.d.ts +53 -0
- package/dist/spec/mining/pipeline.d.ts.map +1 -0
- package/dist/spec/mining/pipeline.js +165 -0
- package/dist/spec/mining/pipeline.js.map +1 -0
- package/dist/spec/mining/scope-resolver.d.ts +45 -0
- package/dist/spec/mining/scope-resolver.d.ts.map +1 -0
- package/dist/spec/mining/scope-resolver.js +103 -0
- package/dist/spec/mining/scope-resolver.js.map +1 -0
- package/dist/spec/mining/spec-extractor.d.ts +69 -0
- package/dist/spec/mining/spec-extractor.d.ts.map +1 -0
- package/dist/spec/mining/spec-extractor.js +369 -0
- package/dist/spec/mining/spec-extractor.js.map +1 -0
- package/dist/spec/types.d.ts +149 -0
- package/dist/spec/types.d.ts.map +1 -0
- package/dist/spec/types.js +15 -0
- package/dist/spec/types.js.map +1 -0
- package/dist/spec/utils.d.ts +166 -0
- package/dist/spec/utils.d.ts.map +1 -0
- package/dist/spec/utils.js +461 -0
- package/dist/spec/utils.js.map +1 -0
- package/package.json +58 -57
- package/scripts/add-lang/bench.sh +60 -60
- package/scripts/add-lang/check-grammar.mjs +75 -75
- package/scripts/add-lang/dump-ast.mjs +103 -103
- package/scripts/add-lang/verify-extraction.mjs +70 -70
- package/scripts/agent-eval/ab-adoption.sh +91 -91
- package/scripts/agent-eval/ab-hook.sh +86 -86
- package/scripts/agent-eval/ab-impl.sh +78 -78
- package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -102
- package/scripts/agent-eval/ab-sufficiency.sh +78 -78
- package/scripts/agent-eval/arms-F.sh +21 -21
- package/scripts/agent-eval/arms-matrix.sh +37 -37
- package/scripts/agent-eval/audit.sh +68 -68
- package/scripts/agent-eval/bench-readme.sh +28 -28
- package/scripts/agent-eval/bench-why-repo.sh +22 -22
- package/scripts/agent-eval/block-read-hook.sh +19 -19
- package/scripts/agent-eval/hook-settings.json +15 -15
- package/scripts/agent-eval/itrun.sh +120 -120
- package/scripts/agent-eval/offload-eval-3arm.sh +72 -72
- package/scripts/agent-eval/offload-eval-cost.mjs +133 -133
- package/scripts/agent-eval/offload-eval-effort.mjs +108 -108
- package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -25
- package/scripts/agent-eval/offload-eval-frontload.sh +47 -47
- package/scripts/agent-eval/offload-eval-ground-truth.json +18 -18
- package/scripts/agent-eval/offload-eval-hook.mjs +84 -84
- package/scripts/agent-eval/offload-eval-judge.mjs +103 -103
- package/scripts/agent-eval/offload-eval-matrix.sh +20 -20
- package/scripts/agent-eval/offload-eval-metrics.mjs +94 -94
- package/scripts/agent-eval/offload-eval-refs1.sh +50 -50
- package/scripts/agent-eval/offload-eval-setup.sh +24 -24
- package/scripts/agent-eval/offload-eval-styles.sh +71 -71
- package/scripts/agent-eval/offload-eval-summarize.mjs +68 -68
- package/scripts/agent-eval/offload-eval.md +76 -76
- package/scripts/agent-eval/parse-arms.mjs +116 -116
- package/scripts/agent-eval/parse-bench-readme.mjs +84 -84
- package/scripts/agent-eval/parse-run.mjs +45 -45
- package/scripts/agent-eval/parse-session.mjs +93 -93
- package/scripts/agent-eval/probe-context.mjs +21 -21
- package/scripts/agent-eval/probe-explore.mjs +40 -40
- package/scripts/agent-eval/probe-node.mjs +20 -20
- package/scripts/agent-eval/probe-sweep.mjs +119 -119
- package/scripts/agent-eval/probe-trace.mjs +20 -20
- package/scripts/agent-eval/redirect-read-hook.sh +38 -38
- package/scripts/agent-eval/run-agent.sh +34 -34
- package/scripts/agent-eval/run-all.sh +69 -69
- package/scripts/agent-eval/run-arms.sh +56 -56
- package/scripts/agent-eval/seq-matrix.mjs +137 -137
- package/scripts/build-bundle.sh +118 -118
- package/scripts/extract-release-notes.mjs +130 -130
- package/scripts/local-install.sh +41 -41
- package/scripts/npm-sdk.js +75 -75
- package/scripts/npm-shim.js +246 -246
- package/scripts/pack-npm.sh +119 -119
- package/scripts/prepare-release.mjs +270 -270
- package/scripts/qa_eval/README.md +407 -404
- package/scripts/qa_eval/_test_deveco_probe.py +41 -41
- package/scripts/qa_eval/agent_runner.py +526 -526
- package/scripts/qa_eval/data/.gitignore +4 -4
- package/scripts/qa_eval/data/test-set.jsonl +2 -22
- package/scripts/qa_eval/eval_metrics.py +274 -233
- package/scripts/qa_eval/external_agent.py +976 -671
- package/scripts/qa_eval/llm_config.py +92 -92
- package/scripts/qa_eval/memory_monitor.py +132 -132
- package/scripts/qa_eval/my_answer_accuracy.py +187 -187
- package/scripts/qa_eval/requirements.txt +2 -2
- package/scripts/qa_eval/run_pipeline.py +804 -711
- package/scripts/qa_eval/stats_efficiency.py +279 -279
- package/scripts/qa_eval/stats_scores.py +207 -207
package/scripts/pack-npm.sh
CHANGED
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
# Assemble the npm thin-installer packages from built bundles (esbuild pattern).
|
|
4
|
-
#
|
|
5
|
-
# Produces, under release/npm/:
|
|
6
|
-
# homegraph-<target>/ one per built bundle — the vendored Node + app, tagged
|
|
7
|
-
# with os/cpu so npm installs only the matching one.
|
|
8
|
-
# main/ the homegraph shim package: a tiny bin
|
|
9
|
-
# that execs the matching platform bundle, with every
|
|
10
|
-
# platform package in optionalDependencies.
|
|
11
|
-
#
|
|
12
|
-
# The release pipeline then `npm publish`es each dir. This does NOT touch the
|
|
13
|
-
# repo's package.json — the dev/from-source path keeps working; the *published*
|
|
14
|
-
# main package's shape is generated here.
|
|
15
|
-
#
|
|
16
|
-
# Prereq: run build-bundle.sh for each target first (release/homegraph-*.tar.gz).
|
|
17
|
-
# Usage: scripts/pack-npm.sh [version] (default: version from package.json)
|
|
18
|
-
set -euo pipefail
|
|
19
|
-
|
|
20
|
-
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
21
|
-
VERSION="${1:-$(node -p "require('$ROOT/package.json').version")}"
|
|
22
|
-
SCOPE="@colbymchenry"
|
|
23
|
-
REL="$ROOT/release"
|
|
24
|
-
NPM="$REL/npm"
|
|
25
|
-
|
|
26
|
-
rm -rf "$NPM"
|
|
27
|
-
mkdir -p "$NPM/main"
|
|
28
|
-
|
|
29
|
-
shopt -s nullglob
|
|
30
|
-
archives=("$REL"/homegraph-*.tar.gz "$REL"/homegraph-*.zip)
|
|
31
|
-
[ ${#archives[@]} -gt 0 ] || { echo "[pack-npm] no bundles in $REL — run build-bundle.sh first" >&2; exit 1; }
|
|
32
|
-
|
|
33
|
-
targets=()
|
|
34
|
-
for archive in "${archives[@]}"; do
|
|
35
|
-
fname="$(basename "$archive")"
|
|
36
|
-
case "$fname" in
|
|
37
|
-
*.tar.gz) base="${fname%.tar.gz}" ;; # homegraph-<target>
|
|
38
|
-
*.zip) base="${fname%.zip}" ;;
|
|
39
|
-
esac
|
|
40
|
-
target="${base#homegraph-}" # <target>, e.g. darwin-arm64 / win32-x64
|
|
41
|
-
os="${target%-*}" # darwin | linux | win32
|
|
42
|
-
arch="${target##*-}" # arm64 | x64
|
|
43
|
-
pkgdir="$NPM/$base"
|
|
44
|
-
mkdir -p "$pkgdir"
|
|
45
|
-
case "$fname" in
|
|
46
|
-
*.zip)
|
|
47
|
-
tmpx="$(mktemp -d)"
|
|
48
|
-
unzip -q "$archive" -d "$tmpx"
|
|
49
|
-
mv "$tmpx/homegraph-${target}"/* "$pkgdir"/
|
|
50
|
-
rm -rf "$tmpx"
|
|
51
|
-
nodefile="node.exe"
|
|
52
|
-
;;
|
|
53
|
-
*)
|
|
54
|
-
tar -xzf "$archive" -C "$pkgdir" --strip-components=1
|
|
55
|
-
nodefile="node"
|
|
56
|
-
;;
|
|
57
|
-
esac
|
|
58
|
-
VERSION="$VERSION" SCOPE="$SCOPE" TARGET="$target" OSV="$os" ARCHV="$arch" NODEFILE="$nodefile" \
|
|
59
|
-
node -e '
|
|
60
|
-
const fs=require("fs");
|
|
61
|
-
fs.writeFileSync(process.argv[1], JSON.stringify({
|
|
62
|
-
name: `${process.env.SCOPE}/homegraph-${process.env.TARGET}`,
|
|
63
|
-
version: process.env.VERSION,
|
|
64
|
-
description: `HomeGraph self-contained bundle for ${process.env.TARGET}`,
|
|
65
|
-
os: [process.env.OSV], cpu: [process.env.ARCHV],
|
|
66
|
-
files: [process.env.NODEFILE, "lib", "bin"],
|
|
67
|
-
license: "MIT"
|
|
68
|
-
}, null, 2) + "\n");
|
|
69
|
-
' "$pkgdir/package.json"
|
|
70
|
-
targets+=("$target")
|
|
71
|
-
echo "[pack-npm] ${SCOPE}/homegraph-${target}@${VERSION}"
|
|
72
|
-
done
|
|
73
|
-
|
|
74
|
-
# Main shim package.
|
|
75
|
-
# npm-shim.js CLI/MCP launcher (execs the bundled Node) — the `bin`.
|
|
76
|
-
# npm-sdk.js programmatic/embedded entry (#354): re-exports the installed
|
|
77
|
-
# platform bundle's compiled library — the `main`.
|
|
78
|
-
# dist/ the .d.ts tree only (types). The runtime .js stays in the
|
|
79
|
-
# per-platform bundle so its deps aren't duplicated here.
|
|
80
|
-
cp "$ROOT/scripts/npm-shim.js" "$NPM/main/npm-shim.js"
|
|
81
|
-
cp "$ROOT/scripts/npm-sdk.js" "$NPM/main/npm-sdk.js"
|
|
82
|
-
[ -f "$ROOT/README.md" ] && cp "$ROOT/README.md" "$NPM/main/README.md"
|
|
83
|
-
|
|
84
|
-
# Ship the type declarations so `types`/`exports.types` resolve. Built from this
|
|
85
|
-
# same release, so they can't skew from the runtime npm-sdk.js re-exports.
|
|
86
|
-
[ -f "$ROOT/dist/index.d.ts" ] || ( echo "[pack-npm] building dist for .d.ts" >&2 && cd "$ROOT" && npm run build >/dev/null )
|
|
87
|
-
ROOT="$ROOT" DEST="$NPM/main" node -e '
|
|
88
|
-
const fs=require("fs"), path=require("path");
|
|
89
|
-
const src=path.join(process.env.ROOT,"dist"), dest=path.join(process.env.DEST,"dist");
|
|
90
|
-
fs.cpSync(src, dest, { recursive:true, filter(s){
|
|
91
|
-
try { return fs.statSync(s).isDirectory() || s.endsWith(".d.ts"); } catch (e) { return false; }
|
|
92
|
-
}});
|
|
93
|
-
'
|
|
94
|
-
|
|
95
|
-
VERSION="$VERSION" SCOPE="$SCOPE" TARGETS="${targets[*]}" \
|
|
96
|
-
node -e '
|
|
97
|
-
const fs=require("fs");
|
|
98
|
-
const opt={};
|
|
99
|
-
for (const t of process.env.TARGETS.split(/\s+/).filter(Boolean))
|
|
100
|
-
opt[`${process.env.SCOPE}/homegraph-${t}`]=process.env.VERSION;
|
|
101
|
-
fs.writeFileSync(process.argv[1], JSON.stringify({
|
|
102
|
-
name: `${process.env.SCOPE}/homegraph`,
|
|
103
|
-
version: process.env.VERSION,
|
|
104
|
-
description: "Local-first code intelligence for AI agents (MCP). Self-contained — bundles its own runtime.",
|
|
105
|
-
bin: { homegraph: "npm-shim.js" },
|
|
106
|
-
main: "npm-sdk.js",
|
|
107
|
-
types: "dist/index.d.ts",
|
|
108
|
-
exports: {
|
|
109
|
-
".": { types: "./dist/index.d.ts", default: "./npm-sdk.js" },
|
|
110
|
-
"./package.json": "./package.json"
|
|
111
|
-
},
|
|
112
|
-
optionalDependencies: opt,
|
|
113
|
-
files: ["npm-shim.js","npm-sdk.js","dist","README.md"],
|
|
114
|
-
license: "MIT"
|
|
115
|
-
}, null, 2) + "\n");
|
|
116
|
-
' "$NPM/main/package.json"
|
|
117
|
-
|
|
118
|
-
echo "[pack-npm] ${SCOPE}/homegraph@${VERSION} (${#targets[@]} platform packages in optionalDependencies)"
|
|
119
|
-
echo "[pack-npm] output: $NPM"
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# Assemble the npm thin-installer packages from built bundles (esbuild pattern).
|
|
4
|
+
#
|
|
5
|
+
# Produces, under release/npm/:
|
|
6
|
+
# homegraph-<target>/ one per built bundle — the vendored Node + app, tagged
|
|
7
|
+
# with os/cpu so npm installs only the matching one.
|
|
8
|
+
# main/ the homegraph shim package: a tiny bin
|
|
9
|
+
# that execs the matching platform bundle, with every
|
|
10
|
+
# platform package in optionalDependencies.
|
|
11
|
+
#
|
|
12
|
+
# The release pipeline then `npm publish`es each dir. This does NOT touch the
|
|
13
|
+
# repo's package.json — the dev/from-source path keeps working; the *published*
|
|
14
|
+
# main package's shape is generated here.
|
|
15
|
+
#
|
|
16
|
+
# Prereq: run build-bundle.sh for each target first (release/homegraph-*.tar.gz).
|
|
17
|
+
# Usage: scripts/pack-npm.sh [version] (default: version from package.json)
|
|
18
|
+
set -euo pipefail
|
|
19
|
+
|
|
20
|
+
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
21
|
+
VERSION="${1:-$(node -p "require('$ROOT/package.json').version")}"
|
|
22
|
+
SCOPE="@colbymchenry"
|
|
23
|
+
REL="$ROOT/release"
|
|
24
|
+
NPM="$REL/npm"
|
|
25
|
+
|
|
26
|
+
rm -rf "$NPM"
|
|
27
|
+
mkdir -p "$NPM/main"
|
|
28
|
+
|
|
29
|
+
shopt -s nullglob
|
|
30
|
+
archives=("$REL"/homegraph-*.tar.gz "$REL"/homegraph-*.zip)
|
|
31
|
+
[ ${#archives[@]} -gt 0 ] || { echo "[pack-npm] no bundles in $REL — run build-bundle.sh first" >&2; exit 1; }
|
|
32
|
+
|
|
33
|
+
targets=()
|
|
34
|
+
for archive in "${archives[@]}"; do
|
|
35
|
+
fname="$(basename "$archive")"
|
|
36
|
+
case "$fname" in
|
|
37
|
+
*.tar.gz) base="${fname%.tar.gz}" ;; # homegraph-<target>
|
|
38
|
+
*.zip) base="${fname%.zip}" ;;
|
|
39
|
+
esac
|
|
40
|
+
target="${base#homegraph-}" # <target>, e.g. darwin-arm64 / win32-x64
|
|
41
|
+
os="${target%-*}" # darwin | linux | win32
|
|
42
|
+
arch="${target##*-}" # arm64 | x64
|
|
43
|
+
pkgdir="$NPM/$base"
|
|
44
|
+
mkdir -p "$pkgdir"
|
|
45
|
+
case "$fname" in
|
|
46
|
+
*.zip)
|
|
47
|
+
tmpx="$(mktemp -d)"
|
|
48
|
+
unzip -q "$archive" -d "$tmpx"
|
|
49
|
+
mv "$tmpx/homegraph-${target}"/* "$pkgdir"/
|
|
50
|
+
rm -rf "$tmpx"
|
|
51
|
+
nodefile="node.exe"
|
|
52
|
+
;;
|
|
53
|
+
*)
|
|
54
|
+
tar -xzf "$archive" -C "$pkgdir" --strip-components=1
|
|
55
|
+
nodefile="node"
|
|
56
|
+
;;
|
|
57
|
+
esac
|
|
58
|
+
VERSION="$VERSION" SCOPE="$SCOPE" TARGET="$target" OSV="$os" ARCHV="$arch" NODEFILE="$nodefile" \
|
|
59
|
+
node -e '
|
|
60
|
+
const fs=require("fs");
|
|
61
|
+
fs.writeFileSync(process.argv[1], JSON.stringify({
|
|
62
|
+
name: `${process.env.SCOPE}/homegraph-${process.env.TARGET}`,
|
|
63
|
+
version: process.env.VERSION,
|
|
64
|
+
description: `HomeGraph self-contained bundle for ${process.env.TARGET}`,
|
|
65
|
+
os: [process.env.OSV], cpu: [process.env.ARCHV],
|
|
66
|
+
files: [process.env.NODEFILE, "lib", "bin"],
|
|
67
|
+
license: "MIT"
|
|
68
|
+
}, null, 2) + "\n");
|
|
69
|
+
' "$pkgdir/package.json"
|
|
70
|
+
targets+=("$target")
|
|
71
|
+
echo "[pack-npm] ${SCOPE}/homegraph-${target}@${VERSION}"
|
|
72
|
+
done
|
|
73
|
+
|
|
74
|
+
# Main shim package.
|
|
75
|
+
# npm-shim.js CLI/MCP launcher (execs the bundled Node) — the `bin`.
|
|
76
|
+
# npm-sdk.js programmatic/embedded entry (#354): re-exports the installed
|
|
77
|
+
# platform bundle's compiled library — the `main`.
|
|
78
|
+
# dist/ the .d.ts tree only (types). The runtime .js stays in the
|
|
79
|
+
# per-platform bundle so its deps aren't duplicated here.
|
|
80
|
+
cp "$ROOT/scripts/npm-shim.js" "$NPM/main/npm-shim.js"
|
|
81
|
+
cp "$ROOT/scripts/npm-sdk.js" "$NPM/main/npm-sdk.js"
|
|
82
|
+
[ -f "$ROOT/README.md" ] && cp "$ROOT/README.md" "$NPM/main/README.md"
|
|
83
|
+
|
|
84
|
+
# Ship the type declarations so `types`/`exports.types` resolve. Built from this
|
|
85
|
+
# same release, so they can't skew from the runtime npm-sdk.js re-exports.
|
|
86
|
+
[ -f "$ROOT/dist/index.d.ts" ] || ( echo "[pack-npm] building dist for .d.ts" >&2 && cd "$ROOT" && npm run build >/dev/null )
|
|
87
|
+
ROOT="$ROOT" DEST="$NPM/main" node -e '
|
|
88
|
+
const fs=require("fs"), path=require("path");
|
|
89
|
+
const src=path.join(process.env.ROOT,"dist"), dest=path.join(process.env.DEST,"dist");
|
|
90
|
+
fs.cpSync(src, dest, { recursive:true, filter(s){
|
|
91
|
+
try { return fs.statSync(s).isDirectory() || s.endsWith(".d.ts"); } catch (e) { return false; }
|
|
92
|
+
}});
|
|
93
|
+
'
|
|
94
|
+
|
|
95
|
+
VERSION="$VERSION" SCOPE="$SCOPE" TARGETS="${targets[*]}" \
|
|
96
|
+
node -e '
|
|
97
|
+
const fs=require("fs");
|
|
98
|
+
const opt={};
|
|
99
|
+
for (const t of process.env.TARGETS.split(/\s+/).filter(Boolean))
|
|
100
|
+
opt[`${process.env.SCOPE}/homegraph-${t}`]=process.env.VERSION;
|
|
101
|
+
fs.writeFileSync(process.argv[1], JSON.stringify({
|
|
102
|
+
name: `${process.env.SCOPE}/homegraph`,
|
|
103
|
+
version: process.env.VERSION,
|
|
104
|
+
description: "Local-first code intelligence for AI agents (MCP). Self-contained — bundles its own runtime.",
|
|
105
|
+
bin: { homegraph: "npm-shim.js" },
|
|
106
|
+
main: "npm-sdk.js",
|
|
107
|
+
types: "dist/index.d.ts",
|
|
108
|
+
exports: {
|
|
109
|
+
".": { types: "./dist/index.d.ts", default: "./npm-sdk.js" },
|
|
110
|
+
"./package.json": "./package.json"
|
|
111
|
+
},
|
|
112
|
+
optionalDependencies: opt,
|
|
113
|
+
files: ["npm-shim.js","npm-sdk.js","dist","README.md"],
|
|
114
|
+
license: "MIT"
|
|
115
|
+
}, null, 2) + "\n");
|
|
116
|
+
' "$NPM/main/package.json"
|
|
117
|
+
|
|
118
|
+
echo "[pack-npm] ${SCOPE}/homegraph@${VERSION} (${#targets[@]} platform packages in optionalDependencies)"
|
|
119
|
+
echo "[pack-npm] output: $NPM"
|