75 lines
1.9 KiB
Nix
75 lines
1.9 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
osConfig,
|
|
...
|
|
}: let
|
|
ai-tooling-enabled = config.user.continue.enable && osConfig.host.ai.enable;
|
|
in {
|
|
options = {
|
|
user.continue = {
|
|
enable = lib.mkEnableOption "should continue be enabled on this machine";
|
|
docs = lib.mkOption {
|
|
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
|
|
options = {
|
|
name = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = name;
|
|
};
|
|
startUrl = lib.mkOption {
|
|
type = lib.types.str;
|
|
};
|
|
};
|
|
}));
|
|
};
|
|
context = lib.mkOption {
|
|
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
|
|
options = {
|
|
provider = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = name;
|
|
};
|
|
};
|
|
}));
|
|
default = {
|
|
"code" = {};
|
|
"docs" = {};
|
|
"diff" = {};
|
|
"terminal" = {};
|
|
"problems" = {};
|
|
"folder" = {};
|
|
"codebase" = {};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
config =
|
|
lib.mkIf ai-tooling-enabled
|
|
(lib.mkMerge [
|
|
{
|
|
home = {
|
|
file = {
|
|
".continue/config.yaml".source = (pkgs.formats.yaml {}).generate "continue-config" {
|
|
name = "Assistant";
|
|
version = "1.0.0";
|
|
schema = "v1";
|
|
models = lib.attrsets.attrValues osConfig.host.ai.models;
|
|
context = lib.attrsets.attrValues config.user.continue.context;
|
|
docs = lib.attrsets.attrValues config.user.continue.docs;
|
|
};
|
|
};
|
|
};
|
|
}
|
|
(lib.mkIf osConfig.host.impermanence.enable {
|
|
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
directories = [
|
|
".continue/index"
|
|
".continue/sessions"
|
|
];
|
|
allowOther = true;
|
|
};
|
|
})
|
|
]);
|
|
}
|