feature/pi-refactor
 1{
 2  lib,
 3  buildNpmPackage,
 4  nodejs_22,
 5  ddgr,
 6  makeWrapper,
 7}:
 8
 9buildNpmPackage {
10  pname = "daneel";
11  version = "0.2.0";
12
13  src = ./..;
14
15  nodejs = nodejs_22;
16  nativeBuildInputs = [ makeWrapper ];
17
18  npmDepsHash = "sha256-V0EZXDfGw+Ns2MqzctpY+pdybwjG4aP7I40zFO1cwlE=";
19
20  # Build TypeScript
21  buildPhase = ''
22    runHook preBuild
23    npm run build
24    runHook postBuild
25  '';
26
27  # Install the built files
28  installPhase = ''
29    runHook preInstall
30    mkdir -p $out/lib/daneel
31    cp -r dist $out/lib/daneel/
32    cp -r node_modules $out/lib/daneel/
33    cp package.json $out/lib/daneel/
34
35    mkdir -p $out/bin
36    cat > $out/bin/daneel <<EOF
37    #!/usr/bin/env node
38    import("$out/lib/daneel/dist/main-pi.js");
39    EOF
40    chmod +x $out/bin/daneel
41
42    # Wrap to include ddgr in PATH (for web search)
43    wrapProgram $out/bin/daneel \
44      --prefix PATH : ${lib.makeBinPath [ ddgr ]}
45    runHook postInstall
46  '';
47
48  meta = {
49    description = "XMPP research bot using Pi AI toolkit";
50    homepage = "https://codeberg.org/vdemeester/daneel";
51    license = lib.licenses.asl20;
52    maintainers = [ ];
53    mainProgram = "daneel";
54  };
55}