diff --git a/pkgs/pi-agent-rust/default.nix b/pkgs/pi-agent-rust/default.nix new file mode 100644 index 0000000..ca950e5 --- /dev/null +++ b/pkgs/pi-agent-rust/default.nix @@ -0,0 +1,73 @@ +{ + # keep-sorted start + autoPatchelfHook, + fetchurl, + gcc, + lib, + stdenv, + # keep-sorted end +}: let + manifest = builtins.fromJSON (builtins.readFile ./release.json); + inherit (manifest) version; + inherit (stdenv.hostPlatform) system; + + target = + { + aarch64-linux = "aarch64-unknown-linux-gnu"; + x86_64-linux = "x86_64-unknown-linux-gnu"; + }.${ + system + }; +in + stdenv.mkDerivation { + pname = "pi-agent-rust"; + inherit version; + + src = fetchurl { + url = "https://github.com/Dicklesworthstone/pi_agent_rust/releases/download/v${version}/${manifest.updater.assets.${system}}"; + hash = manifest.hashes.${system}; + }; + + sourceRoot = "pi-${version}-${target}"; + + nativeBuildInputs = [autoPatchelfHook]; + buildInputs = [gcc.cc.lib]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + install -Dm755 pi $out/bin/pi + install -Dm644 README.md $out/share/doc/pi-agent-rust/README.md + install -Dm644 LICENSE $out/share/licenses/pi-agent-rust/LICENSE + + runHook postInstall + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/pi --version + ''; + + meta = { + # keep-sorted start block=yes newline_separated=yes + description = "Native AI coding agent CLI written in Rust"; + + homepage = "https://github.com/Dicklesworthstone/pi_agent_rust"; + + license = lib.licenses.unfree; + + mainProgram = "pi"; + + platforms = [ + # keep-sorted start + "aarch64-linux" + "x86_64-linux" + # keep-sorted end + ]; + + sourceProvenance = [lib.sourceTypes.binaryNativeCode]; + # keep-sorted end + }; + } diff --git a/pkgs/pi-agent-rust/release.json b/pkgs/pi-agent-rust/release.json new file mode 100644 index 0000000..9cd2ba0 --- /dev/null +++ b/pkgs/pi-agent-rust/release.json @@ -0,0 +1,17 @@ +{ + "version": "0.1.23", + "hashes": { + "aarch64-linux": "sha256-phwfnTBSx921wnpmALB5OBU4ZOu9ubLz4SBMF+xfupU=", + "x86_64-linux": "sha256-OG2xlf5mLtUkNmtW5ZC0VEnwLZGHWFIXGT12OCKhmvs=" + }, + "updater": { + "type": "github-release-assets", + "owner": "Dicklesworthstone", + "repo": "pi_agent_rust", + "tagPrefix": "v", + "assets": { + "aarch64-linux": "pi-linux-arm64.tar.xz", + "x86_64-linux": "pi-linux-amd64.tar.xz" + } + } +} diff --git a/pkgs/smelt-git/default.nix b/pkgs/smelt-git/default.nix deleted file mode 100644 index c520ec8..0000000 --- a/pkgs/smelt-git/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - # keep-sorted start - cacert, - fetchFromGitHub, - lib, - rustPlatform, - rustc, - # keep-sorted end -}: -rustPlatform.buildRustPackage { - pname = "smelt-git"; - version = "0.5.0-alpha.9-unstable-2026-08-07"; - - src = fetchFromGitHub { - owner = "leonardcser"; - repo = "smelt"; - rev = "929164abc70494e22894a83465c79c978b54e0c0"; - hash = "sha256-dptpG/eSYoCzUEVUCENsOU6bBmaA01kW7abwAhEFt3Y="; - }; - - cargoHash = "sha256-MTVQoZduiOCjiCJkOnSRvSAVtPVw6gxX0ZFXW9NdKmg="; - - nativeCheckInputs = [cacert]; - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - - doInstallCheck = true; - installCheckPhase = '' - export HOME="$TMPDIR" - $out/bin/smelt --version - ''; - - meta = { - # keep-sorted start - broken = lib.versionOlder rustc.version "1.92"; - description = "Small, fast, and Lua-scriptable coding agent (development version)"; - homepage = "https://github.com/leonardcser/smelt"; - license = lib.licenses.mit; - mainProgram = "smelt"; - platforms = lib.platforms.unix; - # keep-sorted end - }; -} diff --git a/pkgs/smelt/default.nix b/pkgs/smelt/default.nix deleted file mode 100644 index ab9f0c1..0000000 --- a/pkgs/smelt/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - # keep-sorted start - cacert, - fetchFromGitHub, - lib, - rustPlatform, - rustc, - # keep-sorted end -}: -rustPlatform.buildRustPackage rec { - pname = "smelt"; - version = "0.5.0-alpha.9"; - - src = fetchFromGitHub { - owner = "leonardcser"; - repo = pname; - tag = "v${version}"; - hash = "sha256-LQvyshYU5BgeTpkrMF+XRf+IjVR4DYDnVczjSVO9/xI="; - }; - - cargoHash = "sha256-MTVQoZduiOCjiCJkOnSRvSAVtPVw6gxX0ZFXW9NdKmg="; - - nativeCheckInputs = [cacert]; - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - - doInstallCheck = true; - installCheckPhase = '' - export HOME="$TMPDIR" - $out/bin/smelt --version - ''; - - meta = { - # keep-sorted start - broken = lib.versionOlder rustc.version "1.92"; - description = "Small, fast, and Lua-scriptable coding agent"; - homepage = "https://github.com/leonardcser/smelt"; - license = lib.licenses.mit; - mainProgram = "smelt"; - platforms = lib.platforms.unix; - # keep-sorted end - }; -}