From 0de07cd804ed9894bf53338777cb5c7ff9aca66d Mon Sep 17 00:00:00 2001 From: root Date: Fri, 22 May 2026 11:02:39 -0300 Subject: [PATCH] . --- .sops.yaml | 1 + configuration.nix | 3 +++ home/agents.nix | 56 ++++++++++++++++++++++++++++++++++++++++--- home/nvim/default.nix | 3 +-- home/user.nix | 2 +- impermanence.nix | 6 +++++ secrets/agent.yaml | 25 +++++++++++++++++++ secrets/home.yaml | 7 +++--- 8 files changed, 94 insertions(+), 9 deletions(-) create mode 100644 secrets/agent.yaml diff --git a/.sops.yaml b/.sops.yaml index 3f58548..af9d39b 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -7,3 +7,4 @@ creation_rules: - age: - *root - *user + diff --git a/configuration.nix b/configuration.nix index b11c576..7be81c3 100644 --- a/configuration.nix +++ b/configuration.nix @@ -15,6 +15,9 @@ path = "/root/.ssh/desktop"; mode = "0600"; }; + sops.secrets."deepseek_api_key" = { + owner = "agent"; + }; nix.settings.experimental-features = [ "nix-command" "flakes" diff --git a/home/agents.nix b/home/agents.nix index 0429d5c..630454b 100644 --- a/home/agents.nix +++ b/home/agents.nix @@ -1,5 +1,11 @@ -{ pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let + deepseekApiKeyPath = config.sops.secrets."deepseek_api_key".path; home-manager-config = { uid, @@ -55,17 +61,27 @@ let enable = true; lfs.enable = true; signing = { - key = "${HOME}/.ssh/id_ed25519.pub"; + key = "E6C30AB4CD83BB00"; signByDefault = true; }; includes = [ + { + condition = "gitdir:~/checkout/zig"; + contents = { + user = { + name = "felipeim"; + email = "felipe@imatos.dev"; + signingkey = "E6C30AB4CD83BB00"; + }; + }; + } { condition = "gitdir:~/dealwise/"; contents = { user = { name = "felipematos"; email = "5471818+fnzr@users.noreply.github.com"; - signingkey = "${HOME}/.ssh/id_ed25519.pub"; + signingkey = "E6C30AB4CD83BB00"; }; }; } @@ -166,6 +182,40 @@ let ''; xdg.configFile."opencode/opencode.json".text = builtins.toJSON { "$schema" = "https://opencode.ai/config.json"; + provider = { + deepseek = { + npm = "@ai-sdk/openai-compatible"; + name = "DeepSeek"; + options = { + baseURL = "https://api.deepseek.com"; + apiKey = "{file:${deepseekApiKeyPath}}"; + }; + models = { + "deepseek-v4-pro" = { + name = "DeepSeek-V4-Pro"; + limit = { + context = 1048576; + output = 262144; + }; + options = { + reasoningEffort = "high"; + thinking.type = "enabled"; + }; + }; + "deepseek-v4-flash" = { + name = "DeepSeek-V4-Flash"; + limit = { + context = 1048576; + output = 262144; + }; + options = { + reasoningEffort = "high"; + thinking.type = "enabled"; + }; + }; + }; + }; + }; # provider = { # ollama = { # model = "qwen3.6"; diff --git a/home/nvim/default.nix b/home/nvim/default.nix index fec98e7..4e9cc2e 100644 --- a/home/nvim/default.nix +++ b/home/nvim/default.nix @@ -112,7 +112,7 @@ in type = "lua"; config = '' require("lsp_lines").setup() - vim.keymap.set("n", "i", require("lsp_lines").toggle, { desc = "Toggle LSP lines" }) + vim.keymap.set("n", "it", require("lsp_lines").toggle, { desc = "Toggle LSP lines" }) ''; } { @@ -223,7 +223,6 @@ in end ''; } - nvim-nio { plugin = nvim-treesitter.withAllGrammars; type = "lua"; diff --git a/home/user.nix b/home/user.nix index 1dae7c0..bccadfe 100644 --- a/home/user.nix +++ b/home/user.nix @@ -275,7 +275,7 @@ user = { name = "felipematos"; email = "5471818+fnzr@users.noreply.github.com"; - signingkey = "${HOME}/.ssh/desktop.pub"; + signingkey = "E6C30AB4CD83BB00"; }; }; } diff --git a/impermanence.nix b/impermanence.nix index b0b2f8d..b018315 100644 --- a/impermanence.nix +++ b/impermanence.nix @@ -29,6 +29,12 @@ ".local/share/wallpapers" ]; }; + + users.agent = { + files = [ + ".config/sops/age/keys.txt" + ]; + }; }; environment.persistence."/.nobackup" = { diff --git a/secrets/agent.yaml b/secrets/agent.yaml new file mode 100644 index 0000000..989f7e6 --- /dev/null +++ b/secrets/agent.yaml @@ -0,0 +1,25 @@ +deepseek_api_key: ENC[AES256_GCM,data:avik10ni0bk8i5KGiSNG1mqeLtV7bvjIaJEOdVbGQTHlZWg=,iv:4mzk9x1mRhwi9EWhb2qw9TNNQJ7sS4z/b0BnOWcG49M=,tag:wdfe4JDxlVIt//6Kt3hSWg==,type:str] +sops: + age: + - recipient: age1y0tj3kt67pfnj38t9c8g2ghry3a0mhcq8rrqv5xr4jekwepxaelqzu3dkf + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyMC9OWGFadElFblhRdmJt + Z0t3Zkswbk90ZW8wR2EzcU9PaVM1SnR2Q0FjCkpHZTlEUFZOTCs1aHMwa1NVTFF2 + K1I2SFltMW8wNlQrcWl3M3BWUVZpSzgKLS0tIHpQWXkvL3BvUXFuTk5yYTY2cFNV + STlndGNjTUtYUnJ3aGlXdkFESG9vekkKhrvnO/mdebT2gzGwEnktUPEPkCgMDOeT + fO5n1wCu8dAIPDYNeORTUYT7pg0Co6r6NfLPxxHwecJP28AXE78efg== + -----END AGE ENCRYPTED FILE----- + - recipient: age16v8w7q4wmn22hhakq2uzaus2508rhldm7lcwh0kukshzjzyhuqesqz44ze + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBraHljTnkwS3hVUEZKeFJY + dlNUYnpYb3dyZzhSQThqNjMrc1BtMGF1YXprClRGc3FPazNpclQvNHZrTTBBWHlH + MURiTy9tbmh6VElVSFJBNjJZY1hPczgKLS0tIHAvckEreXUwakZ0WnpFM1FlVVQ1 + eDBuRFlXMlFyazlwNWFKZDZSZzZSNkUKXBaF8twKleLVjtgEkcDvgpgXFfuwL+EF + yCVu6o5XNB05VqNtPlPIbirenp3yZ8I68PviQAx0sC3PAajecJ0Hag== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2026-05-04T12:36:14Z" + mac: ENC[AES256_GCM,data:iZObET5U0JZEhL0WMbQckN8hXeiwl2M7PRIJR1sUsiMqg6fJ9ANzLd2ewY/wOmGnXitt2iHBCMGJm+RXkOGNfZQ173MCp/NyTQXuvDEZYZ3w2TRizjvkRuNs+UeoN9iWj16GvfvCKBr+eoSDjFGHiuzFvF7Rv6HEMSBz2D1JDYk=,iv:MIFYkBwglIgi2kcTipyicUcoXCRzvs4tcAKwUVT8XzE=,tag:7AoEOTjukcpOfUeJMCJN+A==,type:str] + unencrypted_suffix: _unencrypted + version: 3.12.2 diff --git a/secrets/home.yaml b/secrets/home.yaml index 97ba836..cfa4063 100644 --- a/secrets/home.yaml +++ b/secrets/home.yaml @@ -1,3 +1,4 @@ +deepseek_api_key: ENC[AES256_GCM,data:HJXkEErncaOb2up0B45qisM+rIHoNmX9n6RZrdGN2JZlur8=,iv:4Dx5AjtDhWfYKlRiUrADT7HdHy/F2sfkzuPKuLhBRt4=,tag:AC3Zm+NHnnIQDCnlmBDUcQ==,type:str] root: password: ENC[AES256_GCM,data:qA7sbNvWvfmWiLX4pIYOzDmuCwc3+7I1KvTHHYF5jDHR0CNRuya0XglP8TNK5qGLEJkdmD9WphdWvYY60NTOf5NFhDnqtm3ZIw==,iv:B42jl40hQbRqMRfV39fNne0E3KKCwriAQ5MQ0DF4QQA=,tag:hH/u0Qw6A2is4XOOQpnr2Q==,type:str] ssh: @@ -30,7 +31,7 @@ sops: NVlzQlQvMVc2dHZNK2pEWk80MStwY1UK38mxk1dJWi6XRKSwzcDA9qt8i1Grw2KJ ac2EbJIFwYLOaMNOKF9hu+NrMdruRpU/2B8HlYYZjpNWmLb9jwI4wQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-12-22T18:37:14Z" - mac: ENC[AES256_GCM,data:BQj7pieRocXUP7as5/coL76WrpBPOwEzHlR+vTEOkBTD89hOnfUo0f2gJi/Ho4KldnCHKjQVGoLhA7l/NIuKXGs8OQ+0IYW9EOoEROi01EePW++Nw7rtOLBRQWojO9HpOmrOz8/fqMHq/vxrdrLql5gomNHJgPllBoAcALCUl2E=,iv:sPB13YhGgDO+KA+azVBqtIPrqRuoPpRfEljV5Xg4ig4=,tag:BnCePF7ii63Glq6dCI7YDg==,type:str] + lastmodified: "2026-05-04T12:41:30Z" + mac: ENC[AES256_GCM,data:OxKBSbx/NrkprIHTdI+iM2yMh1lhTMYuS7UO09NzxXHkyEoXtacDm7XtWIrELIxDIpqQGkousKcNRDmfiejzkpD6aLpdR1S0exXe1A+heWUMB9D+I+an51Nuv/LBGKeelK71RAq2H0VQZQgZd6OuzDECsK07lxnxUAWo8rxhScs=,iv:0cREbkAyUz1a6ze74MKmfeX8RJjMIrwgRoTPeGADEiE=,tag:DJaNf7gckCDoYLzzw+SRUg==,type:str] unencrypted_suffix: _unencrypted - version: 3.11.0 + version: 3.12.2