diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 0965512..1b89b82 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -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" ]; }; }