diff --git a/flake.lock b/flake.lock index 55f8196..05d3d39 100644 --- a/flake.lock +++ b/flake.lock @@ -1311,11 +1311,11 @@ "nixpkgs-x86_64-darwin": "nixpkgs-x86_64-darwin" }, "locked": { - "lastModified": 1790503368, - "narHash": "sha256-WHBSMxk+w2cLC0OZjG8dtzalKP8R7XdFH/qC+hMzVQE=", + "lastModified": 1790593024, + "narHash": "sha256-XBLjJKN/jk7nx5jbQ+2fKfM2tQTtV0l091lgt3UB0go=", "owner": "lukasl-dev", "repo": "pi.nix", - "rev": "2e30a696b6e52d731a235cd5a52fea252457c941", + "rev": "467fecc25934b00ec3d5fe0559e4a60fccea528a", "type": "github" }, "original": { @@ -1340,11 +1340,11 @@ ] }, "locked": { - "lastModified": 1790254729, - "narHash": "sha256-In2XZ9RX5ttD7311ke5vmvSZKDEpK+XS+KGYOokA2KE=", + "lastModified": 1790607434, + "narHash": "sha256-9LKt1AqmgqcTGTuk00gcRJ4twxMRK30MVcNrCOgUjvU=", "ref": "refs/heads/main", - "rev": "052f0592eb0000f62a028e60424d46c0ffba5cbf", - "revCount": 59, + "rev": "b790373a398df6c0c6366bf01fe0f1f4b222cd55", + "revCount": 62, "type": "git", "url": "https://tangled.org/did:plc:yyq2r4sag7vtnnd36rvsnnuq" }, diff --git a/modules/programs/tui/pi/default.nix b/modules/programs/tui/pi/default.nix index b219ad9..bf8814e 100644 --- a/modules/programs/tui/pi/default.nix +++ b/modules/programs/tui/pi/default.nix @@ -64,6 +64,8 @@ (old.postInstall or "") + '' substituteInPlace "$out/skills/computer-use-linux/SKILL.md" --replace-fail $' Use when observing or controlling the local Linux desktop through accessibility\n trees, screenshots, window targeting, or synthesized input.' $' Use only when the user explicitly invokes `/computer-use-linux` or explicitly\n asks to use computer use; never use for ordinary desktop tasks.' + # The adapter's copy collides with the suite's top-level skill. + rm -r "$out/node_modules/pi-mcp-adapter/skills/mcp-scripting" ''; }); diff --git a/modules/programs/tui/pi/extensions/mcp.nix b/modules/programs/tui/pi/extensions/mcp.nix index 3a2a9ef..31c314f 100644 --- a/modules/programs/tui/pi/extensions/mcp.nix +++ b/modules/programs/tui/pi/extensions/mcp.nix @@ -147,9 +147,13 @@ programs.pi.mcpServers = mapAttrs (_: mcp: mcp.package) mcps; - # Keep the declarative baseline writable for extensions that register servers. + # Keep the adapter baseline writable for extensions that register servers. home.activation.writePiMcpConfig = lib.hm.dag.entryAfter ["writeBoundary"] '' - ${pkgs.coreutils}/bin/install -Dm600 ${mcpConfig} "$HOME/.pi/agent/mcp.json" + ${pkgs.coreutils}/bin/install -Dm600 ${mcpConfig} "$HOME/.pi/agent/mcp-adapter.json" + # Remove only the old generated baseline; preserve any local edits. + if ${pkgs.coreutils}/bin/cmp -s ${mcpConfig} "$HOME/.pi/agent/mcp.json"; then + ${pkgs.coreutils}/bin/rm "$HOME/.pi/agent/mcp.json" + fi ''; }; };