{ pkgs, config, lib, ... }: {
imports = [ ./extensions ];
home.packages = [
pkgs.pkgsu.pi-coding-agent
(pkgs.callPackage ./pi-acp.nix {})
];
home.file = let
gen-home-file-entry = args: {
name = "pi-${args.catwalk-provider.id}";
value = {
target = ".pi/agent/extensions/${args.catwalk-provider.id}.ts";
source = pkgs.callPackage ./provider.ts args;
};
};
in lib.listToAttrs [
(gen-home-file-entry {catwalk-provider=config.ai.minimax-china; api="anthropic-messages";})
(gen-home-file-entry {catwalk-provider=config.ai.kimi; api="anthropic-messages";})
(gen-home-file-entry {catwalk-provider=config.ai.aliyun; api="openai-completions"; model-extra.compat.supportsDeveloperRole=false;})
(gen-home-file-entry {catwalk-provider=config.ai.deepseek; api="openai-completions";})
(gen-home-file-entry {catwalk-provider=config.ai.ollama; api="openai-completions";})
];
yq-merge.".pi/agent/settings.json" = { generator = builtins.toJSON; expr = {
defaultProvider = config.ai.minimax-china.id;
defaultModel = config.ai.minimax-china.default_large_model_id;
};};
}