lol
1{
2 lib,
3 stdenvNoCC,
4 fetchFromGitHub,
5 pnpm,
6 nodejs,
7 vscode-utils,
8 nix-update-script,
9}:
10
11let
12 vsix = stdenvNoCC.mkDerivation (finalAttrs: {
13 name = "kilo-code-${finalAttrs.version}.vsix";
14 pname = "kilo-code-vsix";
15 version = "4.91.0";
16
17 src = fetchFromGitHub {
18 owner = "Kilo-Org";
19 repo = "kilocode";
20 tag = "v${finalAttrs.version}";
21 hash = "sha256-dUVPCTxfLcsVfy2FqdZMN8grysALUOTiTl4TXM1BcDs=";
22 };
23
24 pnpmDeps = pnpm.fetchDeps {
25 inherit (finalAttrs) pname version src;
26 fetcherVersion = 2;
27 hash = "sha256-4LB2KY+Ksr8BQYoHrz3VNr81++zcrWN+USg3bBfr/FU=";
28 };
29
30 nativeBuildInputs = [
31 nodejs
32 pnpm.configHook
33 pnpm
34 ];
35
36 buildPhase = ''
37 runHook preBuild
38
39 node --run build
40
41 runHook postBuild
42 '';
43
44 installPhase = ''
45 runHook preInstall
46
47 cp ./bin/kilo-code-$version.vsix $out
48
49 runHook postInstall
50 '';
51 });
52in
53vscode-utils.buildVscodeExtension (finalAttrs: {
54 pname = "kilo-code";
55 inherit (finalAttrs.src) version;
56
57 vscodeExtPublisher = "kilocode";
58 vscodeExtName = "Kilo-Code";
59 vscodeExtUniqueId = "${finalAttrs.vscodeExtPublisher}.${finalAttrs.vscodeExtName}";
60
61 src = vsix;
62
63 unpackPhase = ''
64 runHook preUnpack
65
66 unzip $src
67
68 runHook postUnpack
69 '';
70
71 passthru = {
72 vsix = finalAttrs.src;
73 updateScript = nix-update-script {
74 attrPath = "vscode-extensions.kilocode.kilo-kode.vsix";
75 };
76 };
77
78 meta = {
79 description = "Open Source AI coding assistant for planning, building, and fixing code";
80 homepage = "https://kilocode.ai";
81 downloadPage = "https://marketplace.visualstudio.com/items?itemName=kilocode.Kilo-Code";
82 license = lib.licenses.asl20;
83 sourceProvenance = with lib.sourceTypes; [ fromSource ];
84 maintainers = with lib.maintainers; [ xiaoxiangmoe ];
85 };
86})