diff --git a/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix b/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix new file mode 100644 index 000000000000..c51b510a7a81 --- /dev/null +++ b/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix @@ -0,0 +1,45 @@ +{ + lib, + vscode-utils, + gemini-cli, + vsce, +}: +vscode-utils.buildVscodeExtension (finalAttrs: { + pname = "gemini-cli-vscode-ide-companion"; + inherit (gemini-cli) version; + + vscodeExtPublisher = "Google"; + vscodeExtName = "gemini-cli-vscode-ide-companion"; + vscodeExtUniqueId = "${finalAttrs.vscodeExtPublisher}.${finalAttrs.vscodeExtName}"; + + src = gemini-cli.overrideAttrs (oldAttrs: { + pname = "gemini-cli-vscode-ide-companion-vsix"; + + nativeBuildInputs = gemini-cli.nativeBuildInputs ++ [ vsce ]; + + installPhase = '' + runHook preInstall + + npm --workspace=gemini-cli-vscode-ide-companion run package -- --out $out + + runHook postInstall + ''; + }); + + unpackPhase = '' + runHook preUnpack + + unzip $src + + runHook postUnpack + ''; + + meta = { + description = "Enable Gemini CLI with direct access to your IDE workspace"; + homepage = "https://github.com/google-gemini/gemini-cli"; + downloadPage = "https://marketplace.visualstudio.com/items?itemName=Google.gemini-cli-vscode-ide-companion"; + license = lib.licenses.asl20; + sourceProvenance = with lib.sourceTypes; [ fromSource ]; + maintainers = with lib.maintainers; [ xiaoxiangmoe ]; + }; +}) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index edd4a0c0a733..45793be3c543 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -2089,6 +2089,8 @@ let }; }; + Google.gemini-cli-vscode-ide-companion = callPackage ./Google.gemini-cli-vscode-ide-companion { }; + grapecity.gc-excelviewer = buildVscodeMarketplaceExtension { mktplcRef = { name = "gc-excelviewer"; diff --git a/pkgs/by-name/ge/gemini-cli/package.nix b/pkgs/by-name/ge/gemini-cli/package.nix index 419a6f6b817b..f1d6176a12d8 100644 --- a/pkgs/by-name/ge/gemini-cli/package.nix +++ b/pkgs/by-name/ge/gemini-cli/package.nix @@ -42,11 +42,9 @@ buildNpmPackage (finalAttrs: { cp -r packages/core $out/share/gemini-cli/node_modules/@google/gemini-cli-core ln -s $out/share/gemini-cli/node_modules/@google/gemini-cli/dist/index.js $out/bin/gemini - runHook postInstall - ''; - - postInstall = '' chmod +x "$out/bin/gemini" + + runHook postInstall ''; passthru.updateScript = nix-update-script { }; @@ -55,7 +53,9 @@ buildNpmPackage (finalAttrs: { description = "AI agent that brings the power of Gemini directly into your terminal"; homepage = "https://github.com/google-gemini/gemini-cli"; license = lib.licenses.asl20; + sourceProvenance = with lib.sourceTypes; [ fromSource ]; maintainers = with lib.maintainers; [ + xiaoxiangmoe FlameFlag taranarmo ];