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}