diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 51f5888..4275f03 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"; @@ -16,20 +16,23 @@ source = "${inputs.agents}/skills"; recursive = true; }; + "opencode/rules" = { + source = "${inputs.agents}/rules"; + recursive = true; + }; }; programs.opencode = { 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 = { @@ -93,12 +96,12 @@ output = 65535; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; variants = { - low = {thinkingLevel = "low";}; - high = {thinkingLevel = "high";}; + low = { thinkingLevel = "low"; }; + high = { thinkingLevel = "high"; }; }; }; antigravity-gemini-3-flash = { @@ -108,14 +111,14 @@ output = 65536; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; variants = { - minimal = {thinkingLevel = "minimal";}; - low = {thinkingLevel = "low";}; - medium = {thinkingLevel = "medium";}; - high = {thinkingLevel = "high";}; + minimal = { thinkingLevel = "minimal"; }; + low = { thinkingLevel = "low"; }; + medium = { thinkingLevel = "medium"; }; + high = { thinkingLevel = "high"; }; }; }; antigravity-claude-sonnet-4-5 = { @@ -125,8 +128,8 @@ output = 64000; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; }; antigravity-claude-sonnet-4-5-thinking = { @@ -136,12 +139,12 @@ output = 64000; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; variants = { - low = {thinkingConfig = {thinkingBudget = 8192;};}; - max = {thinkingConfig = {thinkingBudget = 32768;};}; + low = { thinkingConfig = { thinkingBudget = 8192; }; }; + max = { thinkingConfig = { thinkingBudget = 32768; }; }; }; }; antigravity-claude-opus-4-6-thinking = { @@ -151,12 +154,12 @@ output = 64000; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; variants = { - low = {thinkingConfig = {thinkingBudget = 8192;};}; - max = {thinkingConfig = {thinkingBudget = 32768;};}; + low = { thinkingConfig = { thinkingBudget = 8192; }; }; + max = { thinkingConfig = { thinkingBudget = 32768; }; }; }; }; "gemini-2.5-flash" = { @@ -166,8 +169,8 @@ output = 65536; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; }; "gemini-2.5-pro" = { @@ -177,8 +180,8 @@ output = 65536; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; }; "gemini-3-flash-preview" = { @@ -188,8 +191,8 @@ output = 65536; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; }; "gemini-3-pro-preview" = { @@ -199,8 +202,8 @@ output = 65535; }; modalities = { - input = ["text" "image" "pdf"]; - output = ["text"]; + input = [ "text" "image" "pdf" ]; + output = [ "text" ]; }; }; }; @@ -210,62 +213,31 @@ }; 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;