diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 4275f03..3951ab5 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -1,4 +1,4 @@ -{ inputs, ... }: { +{inputs, ...}: { xdg.configFile = { "opencode/commands" = { source = "${inputs.agents}/commands"; @@ -26,13 +26,14 @@ enable = true; settings = { theme = "opencode"; - plugin = [ "oh-my-opencode" "opencode-antigravity-auth@beta" ]; - agent = builtins.fromJSON + plugin = ["oh-my-opencode" "opencode-antigravity-auth@beta"]; + agent = + builtins.fromJSON (builtins.readFile "${inputs.agents}/agents/agents.json"); formatter = { alejandra = { - command = [ "alejandra" "-q" "-" ]; - extensions = [ ".nix" ]; + command = ["alejandra" "-q" "-"]; + extensions = [".nix"]; }; }; mcp = { @@ -87,123 +88,42 @@ }; }; provider = { - google = { + litellm = { + npm = "@ai-sdk/openai-compatible"; + name = "LiteLLM (AZ-Gruppe)"; + options.baseURL = "https://llm.az-gruppe.com/v1"; 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 (Antigravity)"; + "gpt-5.2" = { + name = "GPT-5.2"; limit = { context = 200000; - output = 64000; + output = 16384; }; modalities = { - input = [ "text" "image" "pdf" ]; - output = [ "text" ]; + input = ["text" "image"]; + output = ["text"]; }; }; - antigravity-claude-sonnet-4-5-thinking = { - name = "Claude Sonnet 4.5 Thinking (Antigravity)"; + "claude-sonnet-4-6" = { + name = "Claude Sonnet 4.6"; limit = { context = 200000; - output = 64000; + output = 16000; }; modalities = { - input = [ "text" "image" "pdf" ]; - output = [ "text" ]; - }; - variants = { - low = { thinkingConfig = { thinkingBudget = 8192; }; }; - max = { thinkingConfig = { thinkingBudget = 32768; }; }; + input = ["text" "image"]; + output = ["text"]; }; }; - antigravity-claude-opus-4-6-thinking = { - name = "Claude Opus 4.6 Thinking (Antigravity)"; + "claude-opus-4-6" = { + name = "Claude Opus 4.6"; limit = { context = 200000; - output = 64000; + output = 32000; }; 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" ]; + input = ["text" "image"]; + output = ["text"]; }; }; }; @@ -213,31 +133,30 @@ }; 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"; # google_auth removed - use opencode-antigravity-auth plugin instead (already in plugin array) agents = { - sisyphus = { model = "zai-coding-plan/glm-5"; }; - oracle = { model = "zai-coding-plan/glm-5"; }; - librarian = { model = "zai-coding-plan/glm-5"; }; - explore = { model = "zai-coding-plan/glm-4.5-air"; }; - multimodal-looker = { model = "zai-coding-plan/glm-4.6v"; }; - prometheus = { model = "zai-coding-plan/glm-5"; }; - metis = { model = "zai-coding-plan/glm-5"; }; - momus = { model = "zai-coding-plan/glm-5"; }; - atlas = { model = "zai-coding-plan/glm-5"; }; + sisyphus = {model = "zai-coding-plan/glm-5";}; + oracle = {model = "zai-coding-plan/glm-5";}; + librarian = {model = "zai-coding-plan/glm-5";}; + explore = {model = "zai-coding-plan/glm-4.5-air";}; + multimodal-looker = {model = "zai-coding-plan/glm-4.6v";}; + prometheus = {model = "zai-coding-plan/glm-5";}; + metis = {model = "zai-coding-plan/glm-5";}; + momus = {model = "zai-coding-plan/glm-5";}; + atlas = {model = "zai-coding-plan/glm-5";}; }; categories = { - visual-engineering = { model = "zai-coding-plan/glm-5"; }; - ultrabrain = { model = "zai-coding-plan/glm-5"; }; - artistry = { model = "zai-coding-plan/glm-5"; }; - quick = { model = "zai-coding-plan/glm-5"; }; - unspecified-low = { model = "zai-coding-plan/glm-5"; }; - unspecified-high = { model = "zai-coding-plan/glm-5"; }; - writing = { model = "zai-coding-plan/glm-5"; }; + visual-engineering = {model = "zai-coding-plan/glm-5";}; + ultrabrain = {model = "zai-coding-plan/glm-5";}; + artistry = {model = "zai-coding-plan/glm-5";}; + quick = {model = "zai-coding-plan/glm-5";}; + unspecified-low = {model = "zai-coding-plan/glm-5";}; + unspecified-high = {model = "zai-coding-plan/glm-5";}; + writing = {model = "zai-coding-plan/glm-5";}; }; - disabled_mcps = [ "context7" "websearch" ]; - disabled_hooks = [ "comment-checker" ]; + disabled_mcps = ["context7" "websearch"]; + disabled_hooks = ["comment-checker"]; git_master = { commit_footer = false; include_co_authored_by = false;