refactor(opencode): migrate basecamp mcp to module

This commit is contained in:
m3tm3re
2026-01-12 18:02:44 +01:00
parent 18ef6174bb
commit 80a58c9df8

View File

@@ -1,4 +1,7 @@
{inputs, ...}: { { inputs, ... }: {
imports =
[ "${inputs.m3ta-nixpkgs}/modules/home-manager/coding/basecamp-mcp.nix" ];
xdg.configFile = { xdg.configFile = {
"opencode/command" = { "opencode/command" = {
source = "${inputs.agents}/command"; source = "${inputs.agents}/command";
@@ -18,16 +21,22 @@
}; };
}; };
m3ta.coding.opencode.mcp.basecamp = {
enable = true;
envFile = "/run/agenix/basecamp-env";
};
programs.opencode = { programs.opencode = {
enable = true; enable = true;
settings = { settings = {
theme = "opencode"; theme = "opencode";
plugin = ["oh-my-opencode" "opencode-beads"]; plugin =
agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agent/agents.json"); [ "oh-my-opencode" "opencode-beads" "opencode-antigravity-auth@beta" ];
agent = builtins.fromJSON
(builtins.readFile "${inputs.agents}/agent/agents.json");
formatter = { formatter = {
alejandra = { alejandra = {
command = ["alejandra" "-q" "-"]; command = [ "alejandra" "-q" "-" ];
extensions = [".nix"]; extensions = [ ".nix" ];
}; };
}; };
mcp = { mcp = {
@@ -49,19 +58,6 @@
]; ];
enabled = false; enabled = false;
}; };
Basecamp = {
type = "local";
command = [
"/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv/bin/python"
"/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/basecamp_fastmcp.py"
];
environment = {
PYTHONPATH = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server";
VIRTUAL_ENV = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv";
BASECAMP_ACCOUNT_ID = "5996442";
};
enabled = false;
};
Exa = { Exa = {
type = "local"; type = "local";
command = [ command = [
@@ -72,11 +68,135 @@
enabled = true; enabled = true;
}; };
}; };
provider = {
google = {
models = {
"antigravity-gemini-3-pro" = {
name = "Gemini 3 Pro (Antigravity)";
limit = {
context = 1048576;
output = 65535;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
low = { thinkingLevel = "low"; };
high = { thinkingLevel = "high"; };
};
};
"antigravity-gemini-3-flash" = {
name = "Gemini 3 Flash (Antigravity)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
minimal = { thinkingLevel = "minimal"; };
low = { thinkingLevel = "low"; };
medium = { thinkingLevel = "medium"; };
high = { thinkingLevel = "high"; };
};
};
"antigravity-claude-sonnet-4-5" = {
name = "Claude Sonnet 4.5 (no thinking) (Antigravity)";
limit = {
context = 200000;
output = 64000;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"antigravity-claude-sonnet-4-5-thinking" = {
name = "Claude Sonnet 4.5 Thinking (Antigravity)";
limit = {
context = 200000;
output = 64000;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
low = { thinkingConfig = { thinkingBudget = 8192; }; };
max = { thinkingConfig = { thinkingBudget = 32768; }; };
};
};
"antigravity-claude-opus-4-5-thinking" = {
name = "Claude Opus 4.5 Thinking (Antigravity)";
limit = {
context = 200000;
output = 64000;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
low = { thinkingConfig = { thinkingBudget = 8192; }; };
max = { thinkingConfig = { thinkingBudget = 32768; }; };
};
};
"gemini-2.5-flash" = {
name = "Gemini 2.5 Flash (Gemini CLI)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"gemini-2.5-pro" = {
name = "Gemini 2.5 Pro (Gemini CLI)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"gemini-3-flash-preview" = {
name = "Gemini 3 Flash Preview (Gemini CLI)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"gemini-3-pro-preview" = {
name = "Gemini 3 Pro Preview (Gemini CLI)";
limit = {
context = 1048576;
output = 65535;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
};
};
};
}; };
}; };
home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON { home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON {
"$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"; "$schema" =
"https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json";
agents = { agents = {
Sisyphus = { Sisyphus = {
model = "opencode/glm-4.7-free"; model = "opencode/glm-4.7-free";
@@ -194,6 +314,6 @@
}; };
}; };
}; };
disabled_mcps = ["context7" "websearch"]; disabled_mcps = [ "context7" "websearch" ];
}; };
} }