diff --git a/1.mp4 b/1.mp4 deleted file mode 100644 index 3d44d6a..0000000 Binary files a/1.mp4 and /dev/null differ diff --git a/home/terminal/software/opencode/default.nix b/home/terminal/software/opencode/default.nix index d95888e..1d0e14e 100644 --- a/home/terminal/software/opencode/default.nix +++ b/home/terminal/software/opencode/default.nix @@ -1,15 +1,14 @@ -{pkgs, ...}: let - languages = import ./_languages.nix {inherit pkgs;}; +{ pkgs, ... }: +let + languages = import ./_languages.nix { inherit pkgs; }; providers = import ./_providers.nix; - skills = import ./_skills.nix {inherit pkgs;}; + skills = import ./_skills.nix { inherit pkgs; }; inherit (pkgs) opencode; opencodeEnv = pkgs.buildEnv { name = "opencode-env"; - paths = - languages.packages - ++ skills.packages; + paths = languages.packages ++ skills.packages; }; opencodeInitScript = pkgs.writeShellScript "opencode-init" '' mkdir -p "$HOME/.local/cache/opencode/node_modules/@opencode-ai" @@ -24,105 +23,123 @@ ''; opencodeWrapped = pkgs.runCommand "opencode-wrapped" { - buildInputs = [pkgs.makeWrapper]; + buildInputs = [ pkgs.makeWrapper ]; } '' mkdir -p $out/bin makeWrapper ${opencodeInitScript} $out/bin/opencode \ --prefix PATH : ${opencodeEnv}/bin \ --prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath [pkgs.stdenv.cc.cc.lib]}" ''; - configFile = "opencode/config.json"; - tuiFile = "opencode/tui.json"; - in { - users.users.someone.packages = [ - opencodeWrapped - ]; - xdg.configFile = { - "${configFile}".text = builtins.toJSON { - "$schema" = "https://opencode.ai/config.json"; + configFile = "opencode/config.json"; + tuiFile = "opencode/tui.json"; +in { + users.users.someone.packages = [ + opencodeWrapped + ]; + xdg.configFile = { + "${configFile}".text = builtins.toJSON { + "$schema" = "https://opencode.ai/config.json"; plugin = [ - "opencode-antigravity-auth@latest" - "@tarquinen/opencode-dcp@latest" - "oh-my-openagent@latest" + "opencode-antigravity-auth@latest" + "@tarquinen/opencode-dcp@latest" + "oh-my-openagent@latest" ]; model = "google/antigravity-gemini-3-flash"; small_model = "opencode/big-pickle"; autoupdate = false; agent = { - build = {model = "opencode/nemotron-3-super-free";}; - plan = {model = "opencode/big-pickle";}; - task = {model = "opencode/nemotron-3-super-free";}; - "Sisyphus-Junior" = {model = "opencode/nemotron-3-super-free";}; - explore = {model = "opencode/minimax-m2.5-free";}; - general = {model = "opencode/big-pickle";}; - oracle = {model = "opencode/nemotron-3-super-free";}; - "ultrabrain" = {model = "opencode/nemotron-3-super-free";}; - "deep" = {model = "opencode/nemotron-3-super-free";}; - "quick" = {model = "opencode/gpt-5-nano";}; - "artistry" = {model = "opencode/nemotron-3-super-free";}; - "visual-engineering" = {model = "opencode/hy3-preview-free";}; - "writing" = {model = "opencode/hy3-preview-free";}; + build = { model = "opencode/nemotron-3-super-free"; }; + plan = { model = "opencode/big-pickle"; }; + task = { model = "opencode/nemotron-3-super-free"; }; + "sisyphus-junior" = { model = "opencode/nemotron-3-super-free"; }; + explore = { model = "opencode/minimax-m2.5-free"; }; + general = { model = "opencode/big-pickle"; }; + oracle = { model = "opencode/nemotron-3-super-free"; }; + "ultrabrain" = { model = "opencode/nemotron-3-super-free"; }; + "deep" = { model = "opencode/nemotron-3-super-free"; }; + "quick" = { model = "opencode/gpt-5-nano"; }; + "artistry" = { model = "opencode/nemotron-3-super-free"; }; + "visual-engineering" = { model = "opencode/hy3-preview-free"; }; + "writing" = { model = "opencode/hy3-preview-free"; }; }; - share = "disabled"; - disabled_providers = [ - "amazon-bedrock" - "anthropic" - "azure-openai" - "azure-cognitive-services" - "baseten" - "cerebras" - "cloudflare-ai-gateway" - "cortecs" - "deep-infra" - "fireworks-ai" - "google-vertex-ai" - "groq" - "hugging-face" - "helicone" - "llama.cpp" - "io-net" - "lmstudio" - "moonshot-ai" - "nebius-token-factory" - "ollama" - "ollama-cloud" - "openai" - "sap-ai-core" - "ovhcloud-ai-endpoints" - "together-ai" - "venice-ai" - "xai" - "zai" - "zenmux" - ]; - enabled_providers = ["opencode" "google" "openrouter"]; - mcp = { - gh_grep = { - type = "remote"; - url = "https://mcp.grep.app/"; - enabled = true; - timeout = 10000; - }; - deepwiki = { - type = "remote"; - url = "https://mcp.deepwiki.com/mcp"; - enabled = true; - timeout = 10000; - }; - context7 = { - type = "remote"; - url = "https://mcp.context7.com/mcp"; - enabled = true; - timeout = 10000; - }; - }; - inherit (languages) formatter lsp; - provider = providers.config; - }; - "${tuiFile}".text = builtins.toJSON { - "$schema" = "https://opencode.ai/tui.json"; - theme = "gruvbox"; - }; - "opencode/skill".source = skills.skillsSource + "/skill"; - }; - } + share = "disabled"; + disabled_providers = [ + "amazon-bedrock" + "anthropic" + "azure-openai" + "azure-cognitive-services" + "baseten" + "cerebras" + "cloudflare-ai-gateway" + "cortecs" + "deep-infra" + "fireworks-ai" + "google-vertex-ai" + "groq" + "hugging-face" + "helicone" + "llama.cpp" + "io-net" + "lmstudio" + "moonshot-ai" + "nebius-token-factory" + "ollama" + "ollama-cloud" + "openai" + "sap-ai-core" + "ovhcloud-ai-endpoints" + "together-ai" + "venice-ai" + "xai" + "zai" + "zenmux" + ]; + enabled_providers = [ "opencode" "google" "openrouter" ]; + mcp = { + gh_grep = { + type = "remote"; + url = "https://mcp.grep.app/"; + enabled = true; + timeout = 10000; + }; + deepwiki = { + type = "remote"; + url = "https://mcp.deepwiki.com/mcp"; + enabled = true; + timeout = 10000; + }; + context7 = { + type = "remote"; + url = "https://mcp.context7.com/mcp"; + enabled = true; + timeout = 10000; + }; + }; + inherit (languages) formatter lsp; + provider = providers.config; + }; + + "opencode/oh-my-openagent.json".text = builtins.toJSON { + "$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/master/assets/oh-my-opencode.schema.json"; + agents = { + "sisyphus-junior" = { model = "opencode/nemotron-3-super-free"; }; + }; + categories = { + "quick" = { model = "opencode/gpt-5-nano"; }; + "ultrabrain" = { model = "opencode/nemotron-3-super-free"; }; + "deep" = { model = "opencode/nemotron-3-super-free"; }; + "visual-engineering" = { model = "opencode/hy3-preview-free"; }; + "writing" = { model = "opencode/hy3-preview-free"; }; + "unspecified-low" = { model = "opencode/gpt-5-nano"; }; + "unspecified-high" = { model = "opencode/nemotron-3-super-free"; }; + }; + }; + + "${tuiFile}".text = builtins.toJSON { + "$schema" = "https://opencode.ai/tui.json"; + theme = "gruvbox"; + }; + + "opencode/skill".source = skills.skillsSource + "/skill"; + }; +}