Something went wrong. Try again.
fork of prime agent with changes i want but are not upstreamable probqbly (and some fixes)
Something went wrong. Try again.
1.5 kB · 48 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849/** * Entry bookmarking example. * * Shows setLabel to mark entries with labels for easy navigation in /tree. * Labels appear in the tree view and help you find important points. * * Usage: /bookmark [label] - bookmark the last assistant message */
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
export default function (pi: ExtensionAPI) { pi.registerCommand("bookmark", { description: "Bookmark last message (usage: /bookmark [label])", handler: async (args, ctx) => { const label = args.trim() || `bookmark-${Date.now()}`;
const entries = ctx.sessionManager.getEntries(); for (let i = entries.length - 1; i >= 0; i--) { const entry = entries[i]; if (entry.type === "message" && entry.message.role === "assistant") { pi.setLabel(entry.id, label); ctx.ui.notify(`Bookmarked as: ${label}`, "info"); return; } }
ctx.ui.notify("No assistant message to bookmark", "warning"); }, });
pi.registerCommand("unbookmark", { description: "Remove bookmark from last labeled entry", handler: async (_args, ctx) => { const entries = ctx.sessionManager.getEntries(); for (let i = entries.length - 1; i >= 0; i--) { const entry = entries[i]; const label = ctx.sessionManager.getLabel(entry.id); if (label) { pi.setLabel(entry.id, undefined); ctx.ui.notify(`Removed bookmark: ${label}`, "info"); return; } } ctx.ui.notify("No bookmarked entry found", "warning"); }, });}