{ lib, mkUpdater, stdenv, platformSource, makeWrapper, wrapBuddy, versionCheckHook, versionCheckHomeHook, }: let source = platformSource { hashesFile = ./hashes.json; platforms = { x86_64-linux = "linux-x64"; aarch64-linux = "linux-arm64"; aarch64-darwin = "darwin-arm64"; }; urlTemplate = "https://registry.npmjs.org/@kilocode/cli-{platform}/-/cli-{platform}-{version}.tgz"; }; in stdenv.mkDerivation { pname = "kilocode-cli"; inherit (source) version src; sourceRoot = "package"; nativeBuildInputs = [ makeWrapper ] ++ lib.optionals stdenv.hostPlatform.isLinux [ wrapBuddy ]; dontBuild = true; dontStrip = true; installPhase = '' runHook preInstall install -Dm755 bin/kilo $out/bin/kilocode mkdir -p $out/bin/tree-sitter cp -r bin/tree-sitter/. $out/bin/tree-sitter/ runHook postInstall ''; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook versionCheckHomeHook ]; versionCheckProgramArg = "--version"; passthru.category = "AI Coding Agents"; passthru.updater = mkUpdater ( source.updater // { versionSource = { type = "npm"; package = "@kilocode/cli"; }; } ); meta = { description = "The open-source AI coding agent. Now available in your terminal."; homepage = "https://kilocode.ai/cli"; changelog = "https://github.com/Kilo-Org/kilocode/releases/tag/v${source.version}"; downloadPage = "https://www.npmjs.com/package/@kilocode/cli"; license = lib.licenses.asl20; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; mainProgram = "kilocode"; platforms = source.platforms; }; }