couple fixes
This commit is contained in:
@@ -83,6 +83,7 @@ in
|
|||||||
nwg-dock = disabled;
|
nwg-dock = disabled;
|
||||||
nwg-drawer = disabled;
|
nwg-drawer = disabled;
|
||||||
nwg-panel = disabled;
|
nwg-panel = disabled;
|
||||||
|
opencode = enabled;
|
||||||
waybar = {
|
waybar = {
|
||||||
enable = false;
|
enable = false;
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
namespace,
|
namespace,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib.${namespace}) enabled;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# steam-rom-manager HM module is needed for the steam-rom-manager program
|
# steam-rom-manager HM module is needed for the steam-rom-manager program
|
||||||
# options. On NixOS hosts it's provided via sharedModules; here we add it
|
# options. On NixOS hosts it's provided via sharedModules; here we add it
|
||||||
@@ -31,6 +35,7 @@
|
|||||||
|
|
||||||
${namespace} = {
|
${namespace} = {
|
||||||
sops.enable = true;
|
sops.enable = true;
|
||||||
|
programs.opencode = enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
@@ -38,10 +43,6 @@
|
|||||||
defaultSopsFile = "/etc/nixos/secrets/secrets.yaml";
|
defaultSopsFile = "/etc/nixos/secrets/secrets.yaml";
|
||||||
validateSopsFiles = false;
|
validateSopsFiles = false;
|
||||||
secrets = {
|
secrets = {
|
||||||
# NOTE: add the following key to secrets/secrets.yaml via `sops secrets/secrets.yaml`
|
|
||||||
# before deploying: hass-mcp/token: <your HA long-lived access token>
|
|
||||||
"hass-mcp/token" = { };
|
|
||||||
|
|
||||||
"ssh-keys-public/jallen-nas" = {
|
"ssh-keys-public/jallen-nas" = {
|
||||||
path = "/home/admin/.ssh/id_ed25519.pub";
|
path = "/home/admin/.ssh/id_ed25519.pub";
|
||||||
mode = "0644";
|
mode = "0644";
|
||||||
@@ -70,14 +71,6 @@
|
|||||||
mode = "0600";
|
mode = "0600";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
templates."hass-mcp.env" = {
|
|
||||||
mode = "0600";
|
|
||||||
content = ''
|
|
||||||
HA_URL=http://nuc-nixos.local:8123
|
|
||||||
HA_TOKEN=${config.sops.placeholder."hass-mcp/token"}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
@@ -119,81 +112,5 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
opencode = {
|
|
||||||
enable = true;
|
|
||||||
enableMcpIntegration = true;
|
|
||||||
settings = {
|
|
||||||
provider = {
|
|
||||||
nas = {
|
|
||||||
npm = "@ai-sdk/openai-compatible";
|
|
||||||
name = "llama-server (local)";
|
|
||||||
options = {
|
|
||||||
baseURL = "http://jallen-nas.local:8127/v1";
|
|
||||||
};
|
|
||||||
models = {
|
|
||||||
Qwen3-Coder-Next-Q4_0 = {
|
|
||||||
name = "Qwen3 Coder (local)";
|
|
||||||
modalities = {
|
|
||||||
input = [
|
|
||||||
"image"
|
|
||||||
"text"
|
|
||||||
];
|
|
||||||
output = [ "text" ];
|
|
||||||
};
|
|
||||||
limit = {
|
|
||||||
context = 262144;
|
|
||||||
output = 262144;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# "GLM-4.7-Flash-REAP-23B-A3B-UD-Q3_K_XL": {
|
|
||||||
# "name": "GLM 4.7 Flash (local)",
|
|
||||||
# "modalities": { "input": ["image", "text"], "output": ["text"] },
|
|
||||||
# "limit": {
|
|
||||||
# "context": 262144,
|
|
||||||
# "output": 262144
|
|
||||||
# }
|
|
||||||
# };
|
|
||||||
# "Nemotron-3-Nano-30B-A3B-IQ4_XS": {
|
|
||||||
# "name": "Nemotron-3-Nano (local)",
|
|
||||||
# "modalities": { "input": ["image", "text"], "output": ["text"] },
|
|
||||||
# "limit": {
|
|
||||||
# "context": 262144,
|
|
||||||
# "output": 262144
|
|
||||||
# }
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mcp = {
|
|
||||||
enable = true;
|
|
||||||
servers = {
|
|
||||||
nixos = {
|
|
||||||
command = "nix";
|
|
||||||
args = [
|
|
||||||
"run"
|
|
||||||
"github:utensils/mcp-nixos"
|
|
||||||
"--"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
hass-mcp = {
|
|
||||||
command = "bash";
|
|
||||||
args = [
|
|
||||||
"-c"
|
|
||||||
"set -a; source ${config.sops.templates."hass-mcp.env".path}; set +a; exec uvx hass-mcp"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
mcp-server-code-runner = {
|
|
||||||
command = "npm";
|
|
||||||
args = [
|
|
||||||
"-y"
|
|
||||||
"mcp-server-code-runner@latest"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
87
modules/home/programs/opencode/default.nix
Normal file
87
modules/home/programs/opencode/default.nix
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
namespace,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.programs.opencode;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.opencode = {
|
||||||
|
enable = lib.mkEnableOption "opencode";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
sops.secrets."hass-mcp/token" = { };
|
||||||
|
|
||||||
|
sops.templates."hass-mcp.env" = {
|
||||||
|
mode = "0600";
|
||||||
|
content = ''
|
||||||
|
HA_URL=http://nuc-nixos.local:8123
|
||||||
|
HA_TOKEN=${config.sops.placeholder."hass-mcp/token"}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.opencode = {
|
||||||
|
enable = true;
|
||||||
|
enableMcpIntegration = true;
|
||||||
|
settings = {
|
||||||
|
provider = {
|
||||||
|
nas = {
|
||||||
|
npm = "@ai-sdk/openai-compatible";
|
||||||
|
name = "llama-server (local)";
|
||||||
|
options = {
|
||||||
|
baseURL = "http://jallen-nas.local:8127/v1";
|
||||||
|
};
|
||||||
|
models = {
|
||||||
|
Qwen3-Coder-Next-Q4_0 = {
|
||||||
|
name = "Qwen3 Coder (local)";
|
||||||
|
modalities = {
|
||||||
|
input = [
|
||||||
|
"image"
|
||||||
|
"text"
|
||||||
|
];
|
||||||
|
output = [ "text" ];
|
||||||
|
};
|
||||||
|
limit = {
|
||||||
|
context = 262144;
|
||||||
|
output = 262144;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.mcp = {
|
||||||
|
enable = true;
|
||||||
|
servers = {
|
||||||
|
nixos = {
|
||||||
|
command = "nix";
|
||||||
|
args = [
|
||||||
|
"run"
|
||||||
|
"github:utensils/mcp-nixos"
|
||||||
|
"--"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
hass-mcp = {
|
||||||
|
command = "bash";
|
||||||
|
args = [
|
||||||
|
"-c"
|
||||||
|
"set -a; source ${config.sops.templates."hass-mcp.env".path}; set +a; exec uvx hass-mcp"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
mcp-server-code-runner = {
|
||||||
|
command = "${pkgs.nodejs_24}/bin/npm";
|
||||||
|
args = [
|
||||||
|
"-y"
|
||||||
|
"mcp-server-code-runner@latest"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user