git: fe97438c210f - main - deskutils/qmd: update 2.1.0 → 2.8.3

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 22 Sep 2026 21:26:12 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fe97438c210f48dfb4ab0202cbb64076c3dc982e

commit fe97438c210f48dfb4ab0202cbb64076c3dc982e
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-09-22 06:25:38 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-09-22 21:26:10 +0000

    deskutils/qmd: update 2.1.0 → 2.8.3
---
 deskutils/qmd/.gitignore                           |    4 -
 deskutils/qmd/Makefile                             |   36 +-
 deskutils/qmd/distinfo                             |   23 -
 deskutils/qmd/distinfo.aarch64                     |   21 +
 deskutils/qmd/distinfo.amd64                       |   21 +
 deskutils/qmd/files/example.sh                     |   40 +
 .../qmd/files/package-lock-better-sqlite3.json     |  453 +----
 .../qmd/files/package-lock-node-llama-cpp.json     |  102 +-
 deskutils/qmd/files/package-lock-sqlite-vec.json   |   74 +-
 .../qmd/files/package-lock-tree-sitter-go.json     |    6 +-
 .../files/package-lock-tree-sitter-javascript.json |    6 +-
 .../qmd/files/package-lock-tree-sitter-python.json |    6 +-
 .../qmd/files/package-lock-tree-sitter-rust.json   |    6 +-
 .../files/package-lock-tree-sitter-typescript.json |    6 +-
 .../qmd/files/package-lock-web-tree-sitter.json    |   21 -
 deskutils/qmd/files/package-lock.json              | 1835 +++-----------------
 16 files changed, 497 insertions(+), 2163 deletions(-)

diff --git a/deskutils/qmd/.gitignore b/deskutils/qmd/.gitignore
deleted file mode 100644
index 0521b06ebb33..000000000000
--- a/deskutils/qmd/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-x/
-run.sh
-*.txt
-*.out
diff --git a/deskutils/qmd/Makefile b/deskutils/qmd/Makefile
index 5b8ffce6baad..5db99c61db2c 100644
--- a/deskutils/qmd/Makefile
+++ b/deskutils/qmd/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	qmd
-DISTVERSION=	2.1.0
+DISTVERSION=	2.8.3
 CATEGORIES=	deskutils
 DISTFILES=	${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}
 DIST_SUBDIR=	${PORTNAME}
@@ -10,6 +10,9 @@ WWW=		https://github.com/tobi/qmd
 
 LICENSE=	MIT
 
+ONLY_FOR_ARCHS=		aarch64 amd64
+ONLY_FOR_ARCHS_REASON=	distinfo was only generated for these architectures # feel free to add more architectures
+
 FETCH_DEPENDS=	jq:textproc/jq \
 		npm:www/npm \
 		${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
@@ -24,9 +27,9 @@ NODE_ARCH=	${ARCH:S/amd64/x64/:S/aarch64/arm64/:S/i386/ia32/:S/powerpc64le/ppc64
 PLIST_SUB=	NODE_ARCH=${NODE_ARCH}
 
 # Native modules that require building
-DEP_MODULES=			better_sqlite3 node_llama_cpp sqlite_vec tree_sitter_go tree_sitter_javascript tree_sitter_python tree_sitter_rust tree_sitter_typescript web_tree_sitter
+DEP_MODULES=			better_sqlite3 node_llama_cpp sqlite_vec tree_sitter_go tree_sitter_javascript tree_sitter_python tree_sitter_rust tree_sitter_typescript
 dep_better_sqlite3_npm_name=		better-sqlite3
-dep_better_sqlite3_version=		12.8.0
+dep_better_sqlite3_version=		13.0.3
 dep_node_llama_cpp_npm_name=		node-llama-cpp
 dep_node_llama_cpp_version=		3.18.1
 dep_sqlite_vec_npm_name=		sqlite-vec
@@ -41,8 +44,6 @@ dep_tree_sitter_rust_npm_name=		tree-sitter-rust
 dep_tree_sitter_rust_version=		0.24.0
 dep_tree_sitter_typescript_npm_name=	tree-sitter-typescript
 dep_tree_sitter_typescript_version=	0.23.2
-dep_web_tree_sitter_npm_name=		web-tree-sitter
-dep_web_tree_sitter_version=		0.26.7
 
 SQLITE_VEC_VERSION=	${dep_sqlite_vec_version}
 
@@ -53,7 +54,11 @@ DISTFILES+=	sqlite-vec-src-${SQLITE_VEC_VERSION}${EXTRACT_SUFX}:sqlite_vec_src
 
 DD=	${DISTDIR}/${DIST_SUBDIR}
 
-do-fetch:
+.include <bsd.port.pre.mk>
+
+DISTINFO_FILE=	${.CURDIR}/distinfo.${ARCH}
+
+do-fetch makesum-fetch:
 	@${MKDIR} ${DD}
 	@if ! [ -f ${DD}/${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} ]; then \
 		${SETENV} TMPDIR=${WRKDIR} LOCALBASE=${LOCALBASE} npm_config_force=true ${FETCH_SCRIPT} \
@@ -84,21 +89,22 @@ do-build:
 	@${ECHO_MSG} "====> Building better-sqlite3 for FreeBSD..."
 	@cd ${WRKDIR}/better-sqlite3-${dep_better_sqlite3_version}/node_modules/${dep_better_sqlite3_npm_name} && \
 		${SETENV} HOME=${WRKDIR} CFLAGS="-I${LOCALBASE}/include" CXXFLAGS="-I${LOCALBASE}/include" PYTHON=${PYTHON_CMD} \
-			npm rebuild --nodedir=${LOCALBASE} && \
+			node-gyp rebuild --release --nodedir=${LOCALBASE} && \
 		${MKDIR} ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/better-sqlite3/build/Release && \
 		${CP} build/Release/better_sqlite3.node ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/better-sqlite3/build/Release/
 	@${ECHO_MSG} "====> Building node-llama-cpp for FreeBSD..."
 	@cd ${WRKDIR}/node-llama-cpp-${dep_node_llama_cpp_version}/node_modules/${dep_node_llama_cpp_npm_name} && \
 		${SETENV} HOME=${WRKDIR} CFLAGS="-I${LOCALBASE}/include" CXXFLAGS="-I${LOCALBASE}/include" \
-			npm rebuild --nodedir=${LOCALBASE} 2>&1 || true
+			node ./dist/cli/cli.js postinstall 2>&1 || true
 	@${MKDIR} ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/node-llama-cpp/llama/localBuilds/freebsd-x64/Release 2>/dev/null || true
 	@${CP} ${WRKDIR}/node-llama-cpp-${dep_node_llama_cpp_version}/node_modules/${dep_node_llama_cpp_npm_name}/llama/localBuilds/freebsd-x64/Release/*.so ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/node-llama-cpp/llama/localBuilds/freebsd-x64/Release/ 2>/dev/null || true
+	@${CP} ${WRKDIR}/node-llama-cpp-${dep_node_llama_cpp_version}/node_modules/${dep_node_llama_cpp_npm_name}/llama/localBuilds/freebsd-x64/Release/*.node ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/node-llama-cpp/llama/localBuilds/freebsd-x64/Release/ 2>/dev/null || true
 	@${ECHO_CMD} '{"version":"3.18.1","nodeAbi":99,"platform":"freebsd","arch":"x64"}' > ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/node-llama-cpp/llama/lastBuild.json
 	@${ECHO_MSG} "====> Building tree-sitter modules for FreeBSD..."
-.for dep in tree_sitter_go tree_sitter_javascript tree_sitter_python tree_sitter_rust tree_sitter_typescript web_tree_sitter
+.for dep in tree_sitter_go tree_sitter_javascript tree_sitter_python tree_sitter_rust tree_sitter_typescript
 	@cd ${WRKDIR}/${dep:S/_/-/g}-${dep_${dep}_version}/node_modules/${dep_${dep}_npm_name} && \
 		${SETENV} HOME=${WRKDIR} CFLAGS="-I${LOCALBASE}/include" CXXFLAGS="-I${LOCALBASE}/include" \
-			npm rebuild --nodedir=${LOCALBASE} && \
+			node-gyp rebuild --nodedir=${LOCALBASE} && \
 		${MKDIR} ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/${dep_${dep}_npm_name}/build/Release && \
 		${CP} build/Release/*.node ${WRKSRC}/node_modules/${PACKAGE_NAME}/node_modules/${dep_${dep}_npm_name}/build/Release/ 2>/dev/null || true
 .endfor
@@ -108,7 +114,10 @@ do-install:
 	@cd ${WRKSRC}/node_modules/${PACKAGE_NAME} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}
 	@${MKDIR} ${STAGEDIR}${PREFIX}/bin
 	@${ECHO_CMD} '#!/bin/sh' > ${STAGEDIR}${PREFIX}/bin/qmd
-	@${ECHO_CMD} 'exec ${PREFIX}/bin/node ${PREFIX}/lib/node_modules/${PORTNAME}/dist/cli/qmd.js "$$@"' \
+	@${ECHO_CMD} '# Resolve the JS entry point relative to this wrapper so staging works.' \
+		>> ${STAGEDIR}${PREFIX}/bin/qmd
+	@${ECHO_CMD} 'SCRIPT_DIR=$$(cd "$$(dirname "$$0")" && pwd)' >> ${STAGEDIR}${PREFIX}/bin/qmd
+	@${ECHO_CMD} 'exec ${PREFIX}/bin/node "$$SCRIPT_DIR/../lib/node_modules/${PORTNAME}/dist/cli/qmd.js" "$$@"' \
 		>> ${STAGEDIR}${PREFIX}/bin/qmd
 	@${CHMOD} +x ${STAGEDIR}${PREFIX}/bin/qmd
 	@${FIND} ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/node-llama-cpp/llama/localBuilds -type d -exec ${CHMOD} 777 {} \; 2>/dev/null || true
@@ -121,4 +130,7 @@ post-install:
 	@cd ${STAGEDIR}${PREFIX} && \
 		${FIND} * -type f -or -type l >> ${TMPPLIST}
 
-.include <bsd.port.mk>
+test-quick: stage
+	${SETENV} PATH=${STAGEDIR}${PREFIX}/bin:${PATH} ${SH} ${FILESDIR}/example.sh
+
+.include <bsd.port.post.mk>
diff --git a/deskutils/qmd/distinfo b/deskutils/qmd/distinfo
deleted file mode 100644
index 0c086030a88a..000000000000
--- a/deskutils/qmd/distinfo
+++ /dev/null
@@ -1,23 +0,0 @@
-TIMESTAMP = 1777846582
-SHA256 (qmd/qmd-2.1.0.tar.gz) = 1960de5ef702b3c69c1822dff411a0c72eb9f09ad2996937700798312a4c4247
-SIZE (qmd/qmd-2.1.0.tar.gz) = 44710636
-SHA256 (qmd/better-sqlite3-12.8.0.tar.gz) = 8cd1c58e141c02cd9a645bdc11abff0f64466d5bc46ffd7056c710ededaa7ae1
-SIZE (qmd/better-sqlite3-12.8.0.tar.gz) = 2868962
-SHA256 (qmd/node-llama-cpp-3.18.1.tar.gz) = 65828c57d2f0e106baf4269d5c43c5289d29a1402923bb58777344b83bd8564b
-SIZE (qmd/node-llama-cpp-3.18.1.tar.gz) = 30987870
-SHA256 (qmd/sqlite-vec-0.1.9.tar.gz) = 2eaae7ee45bc2fbceaf467e1417b0af3debcd4cfb82f79db44f613fae96a1abc
-SIZE (qmd/sqlite-vec-0.1.9.tar.gz) = 1677
-SHA256 (qmd/tree-sitter-go-0.23.4.tar.gz) = 9ec0f6dab1510edc9cc4dd861475f4befeb574b6f1f82695ae6ed46b5d511c1a
-SIZE (qmd/tree-sitter-go-0.23.4.tar.gz) = 598851
-SHA256 (qmd/tree-sitter-javascript-0.23.1.tar.gz) = b869c24811245025260d57fa45e8fb36cbf6ade41e78b641fb8edc4dc2263002
-SIZE (qmd/tree-sitter-javascript-0.23.1.tar.gz) = 701681
-SHA256 (qmd/tree-sitter-python-0.23.4.tar.gz) = 4f0b1d5640b1370238db2dc04a260bf4c57f4a7031907bf194e2055e05c93fca
-SIZE (qmd/tree-sitter-python-0.23.4.tar.gz) = 922985
-SHA256 (qmd/tree-sitter-rust-0.24.0.tar.gz) = 9346274ba4bb3810840a35189ed30aeda894ba89e0e08b1616362cbe384bf694
-SIZE (qmd/tree-sitter-rust-0.24.0.tar.gz) = 1458892
-SHA256 (qmd/tree-sitter-typescript-0.23.2.tar.gz) = e626a499a9fb437a19d1821c8a26d8a0a2755f282a297f227a21f5f91b6c9168
-SIZE (qmd/tree-sitter-typescript-0.23.2.tar.gz) = 3699100
-SHA256 (qmd/web-tree-sitter-0.26.7.tar.gz) = 6c414bd674454a482abad7fa2b9bf19c392c6500ba321e6d929e32891a444c18
-SIZE (qmd/web-tree-sitter-0.26.7.tar.gz) = 1127275
-SHA256 (qmd/sqlite-vec-src-0.1.9.tar.gz) = 9823e737d9934dcbe85dff75d3fca81018a9beee803d70fa77b16faab5d61dc9
-SIZE (qmd/sqlite-vec-src-0.1.9.tar.gz) = 617543
diff --git a/deskutils/qmd/distinfo.aarch64 b/deskutils/qmd/distinfo.aarch64
new file mode 100644
index 000000000000..0b13cfe23742
--- /dev/null
+++ b/deskutils/qmd/distinfo.aarch64
@@ -0,0 +1,21 @@
+TIMESTAMP = 1790056734
+SHA256 (qmd/qmd-2.8.3.tar.gz) = 13d5aa3a26fd7053b9af9b9984d1e13de0beb1a4e160c810277306d201ce46da
+SIZE (qmd/qmd-2.8.3.tar.gz) = 58579067
+SHA256 (qmd/better-sqlite3-13.0.3.tar.gz) = 12146e360f632ab9805ea0eab05f9999dbab87d16f0707715bcb7bc13cfc2edf
+SIZE (qmd/better-sqlite3-13.0.3.tar.gz) = 11295626
+SHA256 (qmd/node-llama-cpp-3.18.1.tar.gz) = a8e97cc29a04800194f6395228212a19c72923b7e2728ea27f384f0e573673fa
+SIZE (qmd/node-llama-cpp-3.18.1.tar.gz) = 31051324
+SHA256 (qmd/sqlite-vec-0.1.9.tar.gz) = b28807f2d239811b5f6a2eafd74fcd00478770b79514b13125cf69418922219c
+SIZE (qmd/sqlite-vec-0.1.9.tar.gz) = 2218
+SHA256 (qmd/tree-sitter-go-0.23.4.tar.gz) = ba193c9562e00aa31f2d6547c26efdbfeb3e59c16294a51d1c25ad14b271187f
+SIZE (qmd/tree-sitter-go-0.23.4.tar.gz) = 600114
+SHA256 (qmd/tree-sitter-javascript-0.23.1.tar.gz) = 9cb5ae0c719d825920faa6a3cd4cedaf432b84ede3e2336a660055323ab7703d
+SIZE (qmd/tree-sitter-javascript-0.23.1.tar.gz) = 702626
+SHA256 (qmd/tree-sitter-python-0.23.4.tar.gz) = aab91081230833ab4637c7288982e57d71bbcb0169e28696f3244b2c2b498004
+SIZE (qmd/tree-sitter-python-0.23.4.tar.gz) = 924292
+SHA256 (qmd/tree-sitter-rust-0.24.0.tar.gz) = 3229f91221b903d740c5d4344b70a59b3153c100c1397fe7195c44fa320e5b0d
+SIZE (qmd/tree-sitter-rust-0.24.0.tar.gz) = 1460527
+SHA256 (qmd/tree-sitter-typescript-0.23.2.tar.gz) = 86e37c04719fc40ff552ad86540dd4db2cdb937be6e45dcd8dede4deeb287617
+SIZE (qmd/tree-sitter-typescript-0.23.2.tar.gz) = 3699998
+SHA256 (qmd/sqlite-vec-src-0.1.9.tar.gz) = 9823e737d9934dcbe85dff75d3fca81018a9beee803d70fa77b16faab5d61dc9
+SIZE (qmd/sqlite-vec-src-0.1.9.tar.gz) = 617543
diff --git a/deskutils/qmd/distinfo.amd64 b/deskutils/qmd/distinfo.amd64
new file mode 100644
index 000000000000..f83c1b3a1dac
--- /dev/null
+++ b/deskutils/qmd/distinfo.amd64
@@ -0,0 +1,21 @@
+TIMESTAMP = 1790102351
+SHA256 (qmd/qmd-2.8.3.tar.gz) = 13d5aa3a26fd7053b9af9b9984d1e13de0beb1a4e160c810277306d201ce46da
+SIZE (qmd/qmd-2.8.3.tar.gz) = 58579067
+SHA256 (qmd/better-sqlite3-13.0.3.tar.gz) = 12146e360f632ab9805ea0eab05f9999dbab87d16f0707715bcb7bc13cfc2edf
+SIZE (qmd/better-sqlite3-13.0.3.tar.gz) = 11295626
+SHA256 (qmd/node-llama-cpp-3.18.1.tar.gz) = a8e97cc29a04800194f6395228212a19c72923b7e2728ea27f384f0e573673fa
+SIZE (qmd/node-llama-cpp-3.18.1.tar.gz) = 31051324
+SHA256 (qmd/sqlite-vec-0.1.9.tar.gz) = b28807f2d239811b5f6a2eafd74fcd00478770b79514b13125cf69418922219c
+SIZE (qmd/sqlite-vec-0.1.9.tar.gz) = 2218
+SHA256 (qmd/tree-sitter-go-0.23.4.tar.gz) = ba193c9562e00aa31f2d6547c26efdbfeb3e59c16294a51d1c25ad14b271187f
+SIZE (qmd/tree-sitter-go-0.23.4.tar.gz) = 600114
+SHA256 (qmd/tree-sitter-javascript-0.23.1.tar.gz) = 9cb5ae0c719d825920faa6a3cd4cedaf432b84ede3e2336a660055323ab7703d
+SIZE (qmd/tree-sitter-javascript-0.23.1.tar.gz) = 702626
+SHA256 (qmd/tree-sitter-python-0.23.4.tar.gz) = aab91081230833ab4637c7288982e57d71bbcb0169e28696f3244b2c2b498004
+SIZE (qmd/tree-sitter-python-0.23.4.tar.gz) = 924292
+SHA256 (qmd/tree-sitter-rust-0.24.0.tar.gz) = 3229f91221b903d740c5d4344b70a59b3153c100c1397fe7195c44fa320e5b0d
+SIZE (qmd/tree-sitter-rust-0.24.0.tar.gz) = 1460527
+SHA256 (qmd/tree-sitter-typescript-0.23.2.tar.gz) = 86e37c04719fc40ff552ad86540dd4db2cdb937be6e45dcd8dede4deeb287617
+SIZE (qmd/tree-sitter-typescript-0.23.2.tar.gz) = 3699998
+SHA256 (qmd/sqlite-vec-src-0.1.9.tar.gz) = 9823e737d9934dcbe85dff75d3fca81018a9beee803d70fa77b16faab5d61dc9
+SIZE (qmd/sqlite-vec-src-0.1.9.tar.gz) = 617543
diff --git a/deskutils/qmd/files/example.sh b/deskutils/qmd/files/example.sh
new file mode 100644
index 000000000000..8ad23caee122
--- /dev/null
+++ b/deskutils/qmd/files/example.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+set -e
+
+# 1. Setup a completely isolated throwaway workspace
+TEST_DIR=$(mktemp -d -t qmd-smoke-XXXXXX)
+export XDG_CONFIG_HOME="${TEST_DIR}/config"
+export XDG_CACHE_HOME="${TEST_DIR}/cache"
+
+echo "Running qmd smoke test in: ${TEST_DIR}"
+
+# 2. Drop mock text files strictly inside the sandbox
+MOCK_DOCS="${TEST_DIR}/docs"
+mkdir -p "${MOCK_DOCS}"
+
+cat << 'EOF' > "${MOCK_DOCS}/freebsd_install.md"
+---
+qmd:
+  metadata:
+    status: stable
+---
+# FreeBSD Installation Guide
+This document details how to install FreeBSD on modern amd64 architecture.
+Make sure to partition your drive using ZFS for optimal stability.
+EOF
+
+# 3. CD into the isolated space to prevent project-local leakage
+cd "${TEST_DIR}"
+
+# 4. Execute the pipeline
+qmd init
+qmd collection add "./docs" --name handbook
+qmd update
+
+echo "=== Test 1: Full-Text Keyword Search ==="
+qmd search "ZFS" --format json
+
+# 5. Clean up environment
+rm -rf "${TEST_DIR}"
+echo "Smoke test finished successfully!"
+
diff --git a/deskutils/qmd/files/package-lock-better-sqlite3.json b/deskutils/qmd/files/package-lock-better-sqlite3.json
index 14f75b989688..7392f5e8fd4e 100644
--- a/deskutils/qmd/files/package-lock-better-sqlite3.json
+++ b/deskutils/qmd/files/package-lock-better-sqlite3.json
@@ -8,460 +8,29 @@
       "name": "better-sqlite3-installer",
       "version": "1.0.0",
       "dependencies": {
-        "better-sqlite3": "^12.8.0"
+        "better-sqlite3": "^13.0.3"
       }
     },
     "node_modules/better-sqlite3": {
-      "version": "12.8.0",
-      "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.8.0.tgz",
-      "integrity": "sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==",
-      "hasInstallScript": true,
+      "version": "13.0.3",
+      "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-13.0.3.tgz",
+      "integrity": "sha512-RbOBxmLBG8uvFUc15X9+9SFemKcQ0WBuISBVkpuiaUB2qblC8UWlHEjdWVoZ8AdhSwmoEgsiXKfopX0CQxaACQ==",
       "license": "MIT",
       "dependencies": {
-        "bindings": "^1.5.0",
-        "prebuild-install": "^7.1.1"
+        "node-addon-api": "^8.0.0"
       },
       "engines": {
-        "node": "20.x || 22.x || 23.x || 24.x || 25.x"
+        "node": ">=22"
       }
     },
-    "node_modules/better-sqlite3/node_modules/base64-js": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
-      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/bindings": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
-      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
-      "license": "MIT",
-      "dependencies": {
-        "file-uri-to-path": "1.0.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/bl": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
-      "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
-      "license": "MIT",
-      "dependencies": {
-        "buffer": "^5.5.0",
-        "inherits": "^2.0.4",
-        "readable-stream": "^3.4.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/buffer": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
-      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "base64-js": "^1.3.1",
-        "ieee754": "^1.1.13"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/chownr": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-      "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
-      "license": "ISC"
-    },
-    "node_modules/better-sqlite3/node_modules/decompress-response": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
-      "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
-      "license": "MIT",
-      "dependencies": {
-        "mimic-response": "^3.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/deep-extend": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/detect-libc": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
-      "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
-      "license": "Apache-2.0",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/end-of-stream": {
-      "version": "1.4.5",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
-      "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
-      "license": "MIT",
-      "dependencies": {
-        "once": "^1.4.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/expand-template": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
-      "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
-      "license": "(MIT OR WTFPL)",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/file-uri-to-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
-      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/fs-constants": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-      "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/github-from-package": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
-      "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/ieee754": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "BSD-3-Clause"
-    },
-    "node_modules/better-sqlite3/node_modules/inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
-      "license": "ISC"
-    },
-    "node_modules/better-sqlite3/node_modules/ini": {
-      "version": "1.3.8",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
-      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
-      "license": "ISC"
-    },
-    "node_modules/better-sqlite3/node_modules/mimic-response": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
-      "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/minimist": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
-      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/mkdirp-classic": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-      "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/napi-build-utils": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
-      "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/node-abi": {
-      "version": "3.90.0",
-      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.90.0.tgz",
-      "integrity": "sha512-pZNQT7UnYlMwMBy5N1lV5X/YLTbZM5ncytN3xL7CHEzhDN8uVe0u55yaPUJICIJjaCW8NrM5BFdqr7HLweStNA==",
-      "license": "MIT",
-      "dependencies": {
-        "semver": "^7.3.5"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
-      "license": "ISC",
-      "dependencies": {
-        "wrappy": "1"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/prebuild-install": {
-      "version": "7.1.3",
-      "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
-      "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
-      "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.",
+    "node_modules/better-sqlite3/node_modules/node-addon-api": {
+      "version": "8.9.2",
+      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.2.tgz",
+      "integrity": "sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==",
       "license": "MIT",
-      "dependencies": {
-        "detect-libc": "^2.0.0",
-        "expand-template": "^2.0.3",
-        "github-from-package": "0.0.0",
-        "minimist": "^1.2.3",
-        "mkdirp-classic": "^0.5.3",
-        "napi-build-utils": "^2.0.0",
-        "node-abi": "^3.3.0",
-        "pump": "^3.0.0",
-        "rc": "^1.2.7",
-        "simple-get": "^4.0.0",
-        "tar-fs": "^2.0.0",
-        "tunnel-agent": "^0.6.0"
-      },
-      "bin": {
-        "prebuild-install": "bin.js"
-      },
       "engines": {
-        "node": ">=10"
+        "node": "^18 || ^20 || >= 21"
       }
-    },
-    "node_modules/better-sqlite3/node_modules/pump": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
-      "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
-      "license": "MIT",
-      "dependencies": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/rc": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-      "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
-      "dependencies": {
-        "deep-extend": "^0.6.0",
-        "ini": "~1.3.0",
-        "minimist": "^1.2.0",
-        "strip-json-comments": "~2.0.1"
-      },
-      "bin": {
-        "rc": "cli.js"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/readable-stream": {
-      "version": "3.6.2",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
-      "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
-      "license": "MIT",
-      "dependencies": {
-        "inherits": "^2.0.3",
-        "string_decoder": "^1.1.1",
-        "util-deprecate": "^1.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/safe-buffer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/semver": {
-      "version": "7.7.4",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
-      "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
-      "license": "ISC",
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/simple-concat": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
-      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/simple-get": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
-      "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "decompress-response": "^6.0.0",
-        "once": "^1.3.1",
-        "simple-concat": "^1.0.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/string_decoder": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-      "license": "MIT",
-      "dependencies": {
-        "safe-buffer": "~5.2.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/strip-json-comments": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-      "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/tar-fs": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
-      "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
-      "license": "MIT",
-      "dependencies": {
-        "chownr": "^1.1.1",
-        "mkdirp-classic": "^0.5.2",
-        "pump": "^3.0.0",
-        "tar-stream": "^2.1.4"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/tar-stream": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
-      "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
-      "license": "MIT",
-      "dependencies": {
-        "bl": "^4.0.3",
-        "end-of-stream": "^1.4.1",
-        "fs-constants": "^1.0.0",
-        "inherits": "^2.0.3",
-        "readable-stream": "^3.1.1"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/tunnel-agent": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
-      "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
-      "license": "Apache-2.0",
-      "dependencies": {
-        "safe-buffer": "^5.0.1"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/better-sqlite3/node_modules/util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
-      "license": "MIT"
-    },
-    "node_modules/better-sqlite3/node_modules/wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
-      "license": "ISC"
     }
   }
 }
diff --git a/deskutils/qmd/files/package-lock-node-llama-cpp.json b/deskutils/qmd/files/package-lock-node-llama-cpp.json
index 8ba988f5a267..5562452843ad 100644
--- a/deskutils/qmd/files/package-lock-node-llama-cpp.json
+++ b/deskutils/qmd/files/package-lock-node-llama-cpp.json
@@ -83,9 +83,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/@huggingface/jinja": {
-      "version": "0.5.8",
-      "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.8.tgz",
-      "integrity": "sha512-ZdElB7DPS7QQS8ZnFc5RPPtkg+eN11z8AmIZWAyes6pSbwXqiFB/POVevvm01begdSX1ho9Gxln/F6qlQMsuaA==",
+      "version": "0.5.10",
+      "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.10.tgz",
+      "integrity": "sha512-SgS1D1bglQ94ceD4ZCL6eayUDy9uV1xuyk61OjgSxU5GJh7upqZCKII0JoTYMc6wWsg3JUgaPRX0ElQzXPk3Cw==",
       "license": "MIT",
       "engines": {
         "node": ">=18"
@@ -549,9 +549,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/ansi-regex": {
-      "version": "6.2.2",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
-      "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",
+      "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==",
       "license": "MIT",
       "engines": {
         "node": ">=12"
@@ -886,9 +886,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/fs-extra": {
-      "version": "11.3.4",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz",
-      "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==",
+      "version": "11.4.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.1.tgz",
+      "integrity": "sha512-KYAb4c9BJQI6QqGKthV68OHe0badztdXJWKo0WtBA9IuCFPTKvE5ZdUBglP833aMjhaSPNO4A5j/EkzZtGlKjA==",
       "license": "MIT",
       "dependencies": {
         "graceful-fs": "^4.2.0",
@@ -909,9 +909,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/get-east-asian-width": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz",
-      "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==",
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz",
+      "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==",
       "license": "MIT",
       "engines": {
         "node": ">=18"
@@ -927,9 +927,9 @@
       "license": "ISC"
     },
     "node_modules/node-llama-cpp/node_modules/ignore": {
-      "version": "7.0.5",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
-      "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+      "version": "7.0.10",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.10.tgz",
+      "integrity": "sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==",
       "license": "MIT",
       "engines": {
         "node": ">= 4"
@@ -1091,10 +1091,14 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/lifecycle-utils": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/lifecycle-utils/-/lifecycle-utils-3.1.1.tgz",
-      "integrity": "sha512-gNd3OvhFNjHykJE3uGntz7UuPzWlK9phrIdXxU9Adis0+ExkwnZibfxCJWiWWZ+a6VbKiZrb+9D9hCQWd4vjTg==",
-      "license": "MIT"
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/lifecycle-utils/-/lifecycle-utils-3.2.0.tgz",
+      "integrity": "sha512-GzzsnzJ2IwXgLpKaQmoByaE0GzTO3MU/cxZQo9pwWx6FTTZbDv73RK2B5PCbiSA2STxxRBy3lQXYmeZ4ZDNFgQ==",
+      "license": "MIT",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/giladgd"
+      }
     },
     "node_modules/node-llama-cpp/node_modules/lodash.debounce": {
       "version": "4.0.8",
@@ -1182,9 +1186,9 @@
       "license": "MIT"
     },
     "node_modules/node-llama-cpp/node_modules/nanoid": {
-      "version": "5.1.11",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.11.tgz",
-      "integrity": "sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==",
+      "version": "5.1.16",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.16.tgz",
+      "integrity": "sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==",
       "funding": [
         {
           "type": "github",
@@ -1200,18 +1204,18 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/node-addon-api": {
-      "version": "8.7.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.7.0.tgz",
-      "integrity": "sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==",
+      "version": "8.9.2",
+      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.2.tgz",
+      "integrity": "sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==",
       "license": "MIT",
       "engines": {
         "node": "^18 || ^20 || >= 21"
       }
     },
     "node_modules/node-llama-cpp/node_modules/node-api-headers": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/node-api-headers/-/node-api-headers-1.8.0.tgz",
-      "integrity": "sha512-jfnmiKWjRAGbdD1yQS28bknFM1tbHC1oucyuMPjmkEs+kpiu76aRs40WlTmBmyEgzDM76ge1DQ7XJ3R5deiVjQ==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/node-api-headers/-/node-api-headers-1.9.0.tgz",
+      "integrity": "sha512-2oNILP4jXwRB4ywnYKjVk1YyJ96n2D4EOVJO6S3oYZ5PtbJrw3Yt9TpAuX3nBLMuzn74rnfGQrv13pS9vC+YiA==",
       "license": "MIT"
     },
     "node_modules/node-llama-cpp/node_modules/onetime": {
@@ -1230,9 +1234,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/ora": {
-      "version": "9.4.0",
-      "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.0.tgz",
-      "integrity": "sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==",
+      "version": "9.4.1",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz",
+      "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==",
       "license": "MIT",
       "dependencies": {
         "chalk": "^5.6.2",
@@ -1297,9 +1301,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/pretty-ms": {
-      "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz",
-      "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==",
+      "version": "9.3.1",
+      "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.1.tgz",
+      "integrity": "sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA==",
       "license": "MIT",
       "dependencies": {
         "parse-ms": "^4.0.0"
@@ -1393,9 +1397,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/semver": {
-      "version": "7.7.4",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
-      "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+      "version": "7.8.5",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
+      "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
       "license": "ISC",
       "bin": {
         "semver": "bin/semver.js"
@@ -1533,9 +1537,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/string-width": {
-      "version": "8.2.1",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz",
-      "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==",
+      "version": "8.2.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz",
+      "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==",
       "license": "MIT",
       "dependencies": {
         "get-east-asian-width": "^1.5.0",
@@ -1573,9 +1577,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/tar": {
-      "version": "7.5.13",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz",
-      "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==",
+      "version": "7.5.22",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz",
+      "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==",
       "license": "BlueOak-1.0.0",
       "dependencies": {
         "@isaacs/fs-minipass": "^4.0.0",
@@ -1722,9 +1726,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/yargs": {
-      "version": "17.7.2",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
-      "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+      "version": "17.7.3",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz",
+      "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==",
       "license": "MIT",
       "dependencies": {
         "cliui": "^8.0.1",
@@ -1793,9 +1797,9 @@
       }
     },
     "node_modules/node-llama-cpp/node_modules/yoctocolors": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
-      "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz",
+      "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==",
       "license": "MIT",
       "engines": {
         "node": ">=18"
diff --git a/deskutils/qmd/files/package-lock-sqlite-vec.json b/deskutils/qmd/files/package-lock-sqlite-vec.json
index ac3b57949dc0..5ed698f740eb 100644
--- a/deskutils/qmd/files/package-lock-sqlite-vec.json
+++ b/deskutils/qmd/files/package-lock-sqlite-vec.json
@@ -15,7 +15,79 @@
       "version": "0.1.9",
       "resolved": "https://registry.npmjs.org/sqlite-vec/-/sqlite-vec-0.1.9.tgz",
       "integrity": "sha512-L7XJWRIBNvR9O5+vh1FQ+IGkh/3D2AzVksW5gdtk28m78Hy8skFD0pqReKH1Yp0/BUKRGcffgKvyO/EON5JXpA==",
-      "license": "MIT OR Apache"
+      "license": "MIT OR Apache",
+      "optionalDependencies": {
+        "sqlite-vec-darwin-arm64": "0.1.9",
+        "sqlite-vec-darwin-x64": "0.1.9",
+        "sqlite-vec-linux-arm64": "0.1.9",
+        "sqlite-vec-linux-x64": "0.1.9",
+        "sqlite-vec-windows-x64": "0.1.9"
+      }
+    },
+    "node_modules/sqlite-vec/node_modules/sqlite-vec-darwin-arm64": {
+      "version": "0.1.9",
+      "resolved": "https://registry.npmjs.org/sqlite-vec-darwin-arm64/-/sqlite-vec-darwin-arm64-0.1.9.tgz",
+      "integrity": "sha512-jSsZpE42OfBkGL/ItyJTVCUwl6o6Ka3U5rc4j+UBDIQzC1ulSSKMEhQLthsOnF/MdAf1MuAkYhkdKmmcjaIZQg==",
*** 2659 LINES SKIPPED ***