# My feeling: configure javascript/typescript plugins is awful.
{ pkgs, ... }: {
imports = [
./mcp
./acp.nix
./pi-hermes-memory.nix
./ponytail.nix
./rpiv-todo.nix
];
home.file = {
# tintinweb/pi-subagents (this) vs nicobailon/pi-subagents (previous)
# - previous:
# - non-intuitive: need explicitly specify the subagents call
# pi-subagents = {
# target = ".pi/agent/extensions/pi-subagents";
# source = pkgs.buildNpmPackage (finalAttrs: {
# name = "pi-subagents";
# src = pkgs.npinsed.ai.pi-subagents;
# npmDepsHash = "sha256-zau3eaJoa8pE3A5COXwyTLSesoePgYqrnRCg3SMSaAA=";
# dontNpmBuild = true;
# }) + /lib/node_modules/pi-subagents;
# };
# - Plan Extensions Comparison:
# - qmx/pi-plan-mode: fully read-only thus does not write md.
# - backnotprop/plannotator: I don't need the web annotation UI.
# - burneikis/pi-plan: no read-only support.
# pi-constell-plan is a pi extension published by tridha643 from a fork that adds a packages/pi-constell directory to Owen
# Gretzinger's original Constellagent desktop app, but its npm metadata incorrectly links to the upstream
# owengretzinger/constellagent repo—which lacks that code—instead of the fork where the extension actually lives.
#
# OpenCode vs pi-constell-plan:
# I test OpenCode plan mode and pi-constell-plan: using the prompt:
# > Explain the essay "Memory dependence prediction using store sets" for me. You should first fetch it from internet, probably a
# > pdf, then process pdf, then work on the content let me know what this paper it talk about.
# OpenCode completely ignores plan mode, it call subagent to fetch pdf from the web, call subagent to explore, ...
# pi-constell-plan obey perfectly: it write a plan file, then start follow the plan file.
# Compared with upstream pi examples/extensions/plan-mode:
# - upstream example: read-only planning + in-session todo execution tracking with [DONE:n] markers.
# - pi-constell-plan: clarification-gated plan-file export to ~/.pi-constell/plans/, Constellagent-compatible, no todo executor.
# - pi-constell-plan keeps write/edit available only for the active plan file after askUserQuestion; upstream disables write/edit entirely.
# - pi-constell-plan does not allow DDGS MCP.
# - builtin plan-mode also has `/todos`, which is the same name as rpiv-todo
".pi/agent/extensions/titlebar-spinner.ts" = {
source = (pkgs.flake-compat {src = pkgs.npinsed.ai.pi.llm-agents;})
.defaultNix.packages.x86_64-linux.pi
+"/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/titlebar-spinner.ts";
};
};
}