Make aider ready?

This commit is contained in:
Tristan D. 2025-03-17 22:13:16 +01:00
parent f1b25b4e44
commit 2612543973
Signed by: tristan
SSH key fingerprint: SHA256:9oFM1J63hYWJjCnLG6C0fxBS15rwNcWwdQNMOHYKJ/4
4 changed files with 70 additions and 37 deletions

1
.gitignore vendored
View file

@ -30,3 +30,4 @@ llamafile.git
/.direnv/ /.direnv/
*/dist/ */dist/
.aider*

26
.nix/default.nix Normal file
View file

@ -0,0 +1,26 @@
{
pkgs,
lib,
config,
...
}: let
# list paths
pkgs-paths-list = lib.fileset.toList (lib.fileset.fromSource (lib.sources.sourceFilesBySuffices ./. [".nix"]));
# no default.nix
filtered-paths-list = builtins.filter (path: builtins.baseNameOf path != "default.nix") pkgs-paths-list;
# filename-extension parsed out
pkgs-paths =
builtins.map
(path: {
name = lib.strings.removeSuffix ".nix" (builtins.baseNameOf path);
path = path;
})
filtered-paths-list;
# import each path
imported-pkgs = lib.attrsets.mergeAttrsList (builtins.map
(pkg: {
"${pkg.name}" = pkgs.callPackage pkg.path {};
})
pkgs-paths);
in
imported-pkgs

View file

@ -25,12 +25,12 @@ mod html_elements {
} }
} }
struct TestController {} struct TestaController {}
#[controller( #[controller(
state = AppState state = AppState
)] )]
impl TestController { impl TestaController {
#[route(GET "/")] #[route(GET "/")]
async fn index(State(_): State<AppState>) -> impl IntoResponse { async fn index(State(_): State<AppState>) -> impl IntoResponse {
maud! { maud! {
@ -85,6 +85,9 @@ impl TestController {
maud! { maud! {
h1 { "Item" } h1 { "Item" }
div {
}
p { p {
(format!("{id:?} {amount:?} {offset:?} {state:?}")) (format!("{id:?} {amount:?} {offset:?} {state:?}"))
} }
@ -202,7 +205,7 @@ async fn main() {
let listener = tokio::net::TcpListener::bind("0.0.0.0:8000").await.unwrap(); let listener = tokio::net::TcpListener::bind("0.0.0.0:8000").await.unwrap();
let router: axum::Router = axum::Router::new() let router: axum::Router = axum::Router::new()
.merge(TestController::into_router(app_state.clone())) .merge(TestaController::into_router(app_state.clone()))
.merge(DistController::into_router(app_state.clone())) .merge(DistController::into_router(app_state.clone()))
.fallback_service(get(handle_404)) .fallback_service(get(handle_404))
.method_not_allowed_fallback(handle_405) .method_not_allowed_fallback(handle_405)

View file

@ -67,18 +67,19 @@
}); });
}) })
]; ];
config = {
allowUnfree = true;
rocmSupport = true;
};
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system overlays; inherit system overlays config;
config = {
allowUnfree = true;
rocmSupport = true;
};
}; };
customNodeModules = pkgs.npmlock2nix.v2.node_modules { customNodeModules = pkgs.npmlock2nix.v2.node_modules {
src = ./.; src = ./.;
nodejs = pkgs.nodejs_22; nodejs = pkgs.nodejs_22;
}; };
buildInputs = with pkgs; [ buildInputs = with pkgs; [
aider-chat
harfbuzz harfbuzz
openssl openssl
pango pango
@ -107,44 +108,46 @@
"gfx1102" "gfx1102"
"gfx1103" "gfx1103"
]; ];
lib = pkgs.lib;
in in
{ {
apps.devshell = self.outputs.devShells.${system}.default.flakeApp; apps.devshell = self.outputs.devShells.${system}.default.flakeApp;
packages = { packages =
cargo-leptos = pkgs.callPackage ./.nix/cargo-leptos.nix { }; (import ./.nix { inherit pkgs lib config; })
# llama-cpp = pkgs.callPackage "${llama-cpp}/.devops/nix/scope.nix" { }; // {
myllamacpp = with pkgs; myllamacpp = with pkgs;
llamaPackages.llama-cpp.overrideDerivation (oldAttrs: { llamaPackages.llama-cpp.overrideDerivation (oldAttrs: {
# speeds up builts by only building for a needed rocmTargets... # speeds up builts by only building for a needed rocmTargets...
cmakeFlags = [ cmakeFlags = [
(lib.cmakeBool "LLAMA_BUILD_SERVER" true) (lib.cmakeBool "LLAMA_BUILD_SERVER" true)
(lib.cmakeBool "BUILD_SHARED_LIBS" true) (lib.cmakeBool "BUILD_SHARED_LIBS" true)
(lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
(lib.cmakeBool "LLAMA_CURL" true) (lib.cmakeBool "LLAMA_CURL" true)
(lib.cmakeBool "GGML_NATIVE" true) (lib.cmakeBool "GGML_NATIVE" true)
(lib.cmakeBool "GGML_BLAS" false) (lib.cmakeBool "GGML_BLAS" false)
(lib.cmakeBool "GGML_CUDA" false) (lib.cmakeBool "GGML_CUDA" false)
(lib.cmakeBool "GGML_HIP" true) # new one ? kinda undocumented ? (lib.cmakeBool "GGML_HIP" true) # new one ? kinda undocumented ?
(lib.cmakeBool "GGML_HIPBLAS" true) # seems to be depr (lib.cmakeBool "GGML_HIPBLAS" true) # seems to be depr
(lib.cmakeBool "GGML_METAL" false) (lib.cmakeBool "GGML_METAL" false)
(lib.cmakeBool "GGML_VULKAN" false) (lib.cmakeBool "GGML_VULKAN" false)
(lib.cmakeBool "GGML_STATIC" false) (lib.cmakeBool "GGML_STATIC" false)
(lib.cmakeBool "GGML_FMA" true) (lib.cmakeBool "GGML_FMA" true)
(lib.cmakeBool "GGML_F16C" true) (lib.cmakeBool "GGML_F16C" true)
(lib.cmakeBool "GGML_AVX2" true) (lib.cmakeBool "GGML_AVX2" true)
(lib.cmakeBool "GGML_AVX512" false) (lib.cmakeBool "GGML_AVX512" false)
(lib.cmakeFeature "CMAKE_HIP_COMPILER" "${rocmPackages.llvm.clang}/bin/clang") (lib.cmakeFeature "CMAKE_HIP_COMPILER" "${rocmPackages.llvm.clang}/bin/clang")
(lib.cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmTargets)) (lib.cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmTargets))
(lib.cmakeFeature "AMDGPU_TARGETS" (builtins.concatStringsSep ";" rocmTargets)) (lib.cmakeFeature "AMDGPU_TARGETS" (builtins.concatStringsSep ";" rocmTargets))
]; ];
}); });
}; };
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
packages = with pkgs; packages = with pkgs;
[ [
customNodeModules customNodeModules
customRustToolchain customRustToolchain
self.packages.${system}.myllamacpp self.packages.${system}.myllamacpp
aider-chat
bacon bacon
binaryen binaryen
cacert cacert