refactor(opencode): migrate basecamp mcp to module
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
{inputs, ...}: {
|
||||
{ inputs, ... }: {
|
||||
imports =
|
||||
[ "${inputs.m3ta-nixpkgs}/modules/home-manager/coding/basecamp-mcp.nix" ];
|
||||
|
||||
xdg.configFile = {
|
||||
"opencode/command" = {
|
||||
source = "${inputs.agents}/command";
|
||||
@@ -18,16 +21,22 @@
|
||||
};
|
||||
};
|
||||
|
||||
m3ta.coding.opencode.mcp.basecamp = {
|
||||
enable = true;
|
||||
envFile = "/run/agenix/basecamp-env";
|
||||
};
|
||||
programs.opencode = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "opencode";
|
||||
plugin = ["oh-my-opencode" "opencode-beads"];
|
||||
agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agent/agents.json");
|
||||
plugin =
|
||||
[ "oh-my-opencode" "opencode-beads" "opencode-antigravity-auth@beta" ];
|
||||
agent = builtins.fromJSON
|
||||
(builtins.readFile "${inputs.agents}/agent/agents.json");
|
||||
formatter = {
|
||||
alejandra = {
|
||||
command = ["alejandra" "-q" "-"];
|
||||
extensions = [".nix"];
|
||||
command = [ "alejandra" "-q" "-" ];
|
||||
extensions = [ ".nix" ];
|
||||
};
|
||||
};
|
||||
mcp = {
|
||||
@@ -49,19 +58,6 @@
|
||||
];
|
||||
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 = {
|
||||
type = "local";
|
||||
command = [
|
||||
@@ -72,11 +68,135 @@
|
||||
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 {
|
||||
"$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 = {
|
||||
Sisyphus = {
|
||||
model = "opencode/glm-4.7-free";
|
||||
@@ -194,6 +314,6 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
disabled_mcps = ["context7" "websearch"];
|
||||
disabled_mcps = [ "context7" "websearch" ];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user