Compare commits
2 Commits
8e11fe06de
...
a39a314674
| Author | SHA1 | Date | |
|---|---|---|---|
| a39a314674 | |||
| e8bc4e4da7 |
@@ -1,10 +1,17 @@
|
||||
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
||||
|
||||
export default function replacePiWithClaudeCodeExtension(pi: ExtensionAPI) {
|
||||
pi.on("before_agent_start", async (event) => {
|
||||
pi.on("before_agent_start", async (event, ctx) => {
|
||||
// Anthropic-Only Guard - Other providers (e.g. OpenAI, Google) should
|
||||
// see the unmodified pi system prompt.
|
||||
if (ctx.model?.provider !== "anthropic") {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
// Replace "pi" With "claude code" - Exclude Literal ".pi" (e.g. Paths)
|
||||
// And "pi-coding-agent" (Package Name)
|
||||
const transformedSystemPrompt = event.systemPrompt.replace(
|
||||
/(?<!\.)pi/gi,
|
||||
/(?<!\.)pi(?!-coding-agent)/gi,
|
||||
"claude code",
|
||||
);
|
||||
|
||||
|
||||
@@ -11,6 +11,15 @@ let
|
||||
llamaSwapConfig = import ./../../../../nixos/services/llama-swap/config.nix { inherit pkgs; };
|
||||
|
||||
cfg = config.${namespace}.programs.terminal.pi;
|
||||
|
||||
# Nix-Owned Plugin List - Source of truth for `packages` in settings.json.
|
||||
# Merged into the (mutable) settings.json on activation so pi can keep
|
||||
# writing other fields (current model, etc.) without us clobbering them.
|
||||
piPackages = [
|
||||
"https://gitea.va.reichard.io/evan/pi-lsp.git@61bca87bba"
|
||||
];
|
||||
|
||||
piPackagesJson = pkgs.writeText "pi-packages.json" (builtins.toJSON piPackages);
|
||||
in
|
||||
{
|
||||
options.${namespace}.programs.terminal.pi = {
|
||||
@@ -53,5 +62,19 @@ in
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Merge Nix-Defined Plugins Into Mutable settings.json - We can't symlink
|
||||
# this file into the nix store because pi rewrites it at runtime (e.g. to
|
||||
# persist the last-used model). Instead, on every activation we use jq to
|
||||
# set `.packages` from Nix while preserving every other field.
|
||||
home.activation.piSettingsMerge = config.lib.dag.entryAfter [ "writeBoundary" ] ''
|
||||
PI_SETTINGS="$HOME/.pi/agent/settings.json"
|
||||
mkdir -p "$(dirname "$PI_SETTINGS")"
|
||||
[ -s "$PI_SETTINGS" ] || echo '{}' > "$PI_SETTINGS"
|
||||
tmp=$(mktemp)
|
||||
${pkgs.jq}/bin/jq --slurpfile pkgs ${piPackagesJson} \
|
||||
'.packages = $pkgs[0]' "$PI_SETTINGS" > "$tmp"
|
||||
mv "$tmp" "$PI_SETTINGS"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user