gemini-cli: 0.3.4 -> 0.4.1 (#442405)

kirillrdy 16c865ce 1789884e

+29 -10
pkgs/by-name/ge/gemini-cli/package.nix
···
fetchFromGitHub,
nix-update-script,
ripgrep,
+
jq,
+
pkg-config,
+
libsecret,
}:
buildNpmPackage (finalAttrs: {
pname = "gemini-cli";
-
version = "0.3.4";
+
version = "0.4.1";
src = fetchFromGitHub {
owner = "google-gemini";
repo = "gemini-cli";
tag = "v${finalAttrs.version}";
-
hash = "sha256-nlDXWAfFmhRwfZ46knUeF5ar6huPFLJ5wSxcts4bjfM=";
+
hash = "sha256-SyYergPmEyIcDyU0tF20pvu1qOCRfMRozh0/9nnaefU=";
};
-
patches = [
-
# FIXME: remove once https://github.com/google-gemini/gemini-cli/pull/5336 is merged
-
# FIXME: PR is merged though package is failing without the patch
-
./restore-missing-dependencies-fields.patch
-
# removes @lvce-editor/ripgrep and make upstream code to use ripgrep from nixpkgs
-
./replace-npm-s-ripgrep-with-local.patch
-
];
+
npmDepsHash = "sha256-4S1wMl1agTYOwJ8S/CsXHG+JRx40Nee23TmoJyTYoII=";
-
npmDepsHash = "sha256-q7E5YEMjHs9RvfT4ctzltqHr/+cCh3M+G6D2MkLiJFg=";
+
nativeBuildInputs = [
+
jq
+
pkg-config
+
];
buildInputs = [
ripgrep
+
libsecret
];
preConfigure = ''
mkdir -p packages/generated
echo "export const GIT_COMMIT_INFO = { commitHash: '${finalAttrs.src.rev}' };" > packages/generated/git-commit.ts
+
'';
+
+
postPatch = ''
+
# Remove node-pty dependency from package.json
+
jq 'del(.optionalDependencies."node-pty")' package.json > package.json.tmp && mv package.json.tmp package.json
+
+
# Remove node-pty dependency from packages/core/package.json
+
jq 'del(.optionalDependencies."node-pty")' packages/core/package.json > packages/core/package.json.tmp && mv packages/core/package.json.tmp packages/core/package.json
+
+
# Remove @lvce-editor/ripgrep dependency from package.json
+
substituteInPlace package.json --replace-fail '"@lvce-editor/ripgrep": "^1.6.0",' ""
+
+
# Remove @lvce-editor/ripgrep dependency from packages/core/package.json
+
substituteInPlace packages/core/package.json --replace-fail '"@lvce-editor/ripgrep": "^1.6.0",' ""
+
+
# Modify ripGrep.ts to use system ripgrep instead of @lvce-editor/ripgrep
+
substituteInPlace packages/core/src/tools/ripGrep.ts \
+
--replace-fail "import { rgPath } from '@lvce-editor/ripgrep';" "const rgPath = 'rg';"
'';
installPhase = ''
-114
pkgs/by-name/ge/gemini-cli/replace-npm-s-ripgrep-with-local.patch
···
-
From aee25e0140635d1d9c51b6b171c2a311c2061f1d Mon Sep 17 00:00:00 2001
-
From: Sergey Volkov <taranarmo@gmail.com>
-
Date: Sun, 7 Sep 2025 13:12:02 +0200
-
Subject: [PATCH] replace npm's ripgrep with local
-
-
---
-
package-lock.json | 28 ----------------------------
-
package.json | 1 -
-
packages/core/package.json | 1 -
-
packages/core/src/tools/ripGrep.ts | 4 ++--
-
4 files changed, 2 insertions(+), 32 deletions(-)
-
-
diff --git a/package-lock.json b/package-lock.json
-
index 7448c7e6..809cb322 100644
-
--- a/package-lock.json
-
+++ b/package-lock.json
-
@@ -11,7 +11,6 @@
-
"packages/*"
-
],
-
"dependencies": {
-
- "@lvce-editor/ripgrep": "^1.6.0",
-
"simple-git": "^3.28.0",
-
"strip-ansi": "^7.1.0"
-
},
-
@@ -1603,32 +1602,6 @@
-
"integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==",
-
"license": "MIT"
-
},
-
- "node_modules/@lvce-editor/ripgrep": {
-
- "version": "1.6.0",
-
- "resolved": "https://registry.npmjs.org/@lvce-editor/ripgrep/-/ripgrep-1.6.0.tgz",
-
- "integrity": "sha512-880taWBVULNXmcPHXdxnFUI0FvLErBOjY9OigMXEsLZ2Q1rjcm6LixOkaccKWC8qFMpzm/ldkO7WOMK+ZRfk5Q==",
-
- "hasInstallScript": true,
-
- "license": "MIT",
-
- "dependencies": {
-
- "@lvce-editor/verror": "^1.6.0",
-
- "execa": "^9.5.2",
-
- "extract-zip": "^2.0.1",
-
- "fs-extra": "^11.3.0",
-
- "got": "^14.4.5",
-
- "path-exists": "^5.0.0",
-
- "tempy": "^3.1.0",
-
- "xdg-basedir": "^5.1.0"
-
- }
-
- },
-
- "node_modules/@lvce-editor/ripgrep/node_modules/path-exists": {
-
- "version": "5.0.0",
-
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
-
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
-
- "license": "MIT",
-
- "engines": {
-
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-
- }
-
- },
-
"node_modules/@lvce-editor/verror": {
-
"version": "1.7.0",
-
"resolved": "https://registry.npmjs.org/@lvce-editor/verror/-/verror-1.7.0.tgz",
-
@@ -14693,7 +14666,6 @@
-
"version": "0.3.4",
-
"dependencies": {
-
"@google/genai": "1.13.0",
-
- "@lvce-editor/ripgrep": "^1.6.0",
-
"@modelcontextprotocol/sdk": "^1.11.0",
-
"@opentelemetry/api": "^1.9.0",
-
"@opentelemetry/exporter-logs-otlp-grpc": "^0.203.0",
-
diff --git a/package.json b/package.json
-
index 232ee82c..7efc1072 100644
-
--- a/package.json
-
+++ b/package.json
-
@@ -92,7 +92,6 @@
-
"yargs": "^17.7.2"
-
},
-
"dependencies": {
-
- "@lvce-editor/ripgrep": "^1.6.0",
-
"simple-git": "^3.28.0",
-
"strip-ansi": "^7.1.0"
-
},
-
diff --git a/packages/core/package.json b/packages/core/package.json
-
index a8ef7a22..37fbd775 100644
-
--- a/packages/core/package.json
-
+++ b/packages/core/package.json
-
@@ -21,7 +21,6 @@
-
],
-
"dependencies": {
-
"@google/genai": "1.13.0",
-
- "@lvce-editor/ripgrep": "^1.6.0",
-
"@modelcontextprotocol/sdk": "^1.11.0",
-
"@opentelemetry/api": "^1.9.0",
-
"@opentelemetry/exporter-logs-otlp-grpc": "^0.203.0",
-
diff --git a/packages/core/src/tools/ripGrep.ts b/packages/core/src/tools/ripGrep.ts
-
index b851c2cd..fa846a38 100644
-
--- a/packages/core/src/tools/ripGrep.ts
-
+++ b/packages/core/src/tools/ripGrep.ts
-
@@ -8,7 +8,7 @@ import fs from 'node:fs';
-
import path from 'node:path';
-
import { EOL } from 'node:os';
-
import { spawn } from 'node:child_process';
-
-import { rgPath } from '@lvce-editor/ripgrep';
-
+
-
import type { ToolInvocation, ToolResult } from './tools.js';
-
import { BaseDeclarativeTool, BaseToolInvocation, Kind } from './tools.js';
-
import { SchemaValidator } from '../utils/schemaValidator.js';
-
@@ -293,7 +293,7 @@ class GrepToolInvocation extends BaseToolInvocation<
-
-
try {
-
const output = await new Promise<string>((resolve, reject) => {
-
- const child = spawn(rgPath, rgArgs, {
-
+ const child = spawn('rg', rgArgs, {
-
windowsHide: true,
-
});
-
-
--
-
2.50.1
-
-109
pkgs/by-name/ge/gemini-cli/restore-missing-dependencies-fields.patch
···
-
diff --git a/package-lock.json b/package-lock.json
-
index 74cfbfef..4131aa2b 100644
-
--- a/package-lock.json
-
+++ b/package-lock.json
-
@@ -58,8 +58,7 @@
-
"@lydell/node-pty-darwin-x64": "1.1.0",
-
"@lydell/node-pty-linux-x64": "1.1.0",
-
"@lydell/node-pty-win32-arm64": "1.1.0",
-
- "@lydell/node-pty-win32-x64": "1.1.0",
-
- "node-pty": "^1.0.0"
-
+ "@lydell/node-pty-win32-x64": "1.1.0"
-
}
-
},
-
"node_modules/@alcalzone/ansi-tokenize": {
-
@@ -8604,17 +8603,6 @@
-
"url": "https://opencollective.com/node-fetch"
-
}
-
},
-
- "node_modules/node-pty": {
-
- "version": "1.0.0",
-
- "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.0.0.tgz",
-
- "integrity": "sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==",
-
- "hasInstallScript": true,
-
- "license": "MIT",
-
- "optional": true,
-
- "dependencies": {
-
- "nan": "^2.17.0"
-
- }
-
- },
-
"node_modules/normalize-package-data": {
-
"version": "6.0.2",
-
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
-
@@ -12535,6 +12523,8 @@
-
},
-
"packages/cli/node_modules/@testing-library/dom": {
-
"version": "10.4.0",
-
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
-
+ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
-
"dev": true,
-
"license": "MIT",
-
"peer": true,
-
@@ -12570,6 +12560,8 @@
-
},
-
"packages/cli/node_modules/@testing-library/react": {
-
"version": "16.3.0",
-
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz",
-
+ "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==",
-
"dev": true,
-
"license": "MIT",
-
"dependencies": {
-
@@ -12621,6 +12613,8 @@
-
},
-
"packages/cli/node_modules/aria-query": {
-
"version": "5.3.0",
-
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
-
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
-
"dev": true,
-
"license": "Apache-2.0",
-
"peer": true,
-
@@ -12630,6 +12624,8 @@
-
},
-
"packages/cli/node_modules/emoji-regex": {
-
"version": "10.4.0",
-
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
-
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
-
"license": "MIT"
-
},
-
"packages/cli/node_modules/react-is": {
-
@@ -12642,6 +12638,8 @@
-
},
-
"packages/cli/node_modules/string-width": {
-
"version": "7.2.0",
-
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
-
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
-
"license": "MIT",
-
"dependencies": {
-
"emoji-regex": "^10.3.0",
-
@@ -12715,8 +12713,7 @@
-
"@lydell/node-pty-darwin-x64": "1.1.0",
-
"@lydell/node-pty-linux-x64": "1.1.0",
-
"@lydell/node-pty-win32-arm64": "1.1.0",
-
- "@lydell/node-pty-win32-x64": "1.1.0",
-
- "node-pty": "^1.0.0"
-
+ "@lydell/node-pty-win32-x64": "1.1.0"
-
}
-
},
-
"packages/core/node_modules/ajv": {
-
@@ -12751,6 +12748,8 @@
-
},
-
"packages/core/node_modules/ignore": {
-
"version": "7.0.5",
-
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
-
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
-
"license": "MIT",
-
"engines": {
-
"node": ">= 4"
-
diff --git a/package.json b/package.json
-
index aba2aa98..57c79274 100644
-
--- a/package.json
-
+++ b/package.json
-
@@ -100,7 +100,6 @@
-
"@lydell/node-pty-darwin-x64": "1.1.0",
-
"@lydell/node-pty-linux-x64": "1.1.0",
-
"@lydell/node-pty-win32-arm64": "1.1.0",
-
- "@lydell/node-pty-win32-x64": "1.1.0",
-
- "node-pty": "^1.0.0"
-
+ "@lydell/node-pty-win32-x64": "1.1.0"
-
}
-
}