Download packages/coding-agent/examples/extensions/bookmark.ts from SaylorTwift/pi: direct link, hf CLI and curl.
- Browser
- Download file 1.56 kB
-
https://huggingface.co/SaylorTwift/pi/resolve/main/packages/coding-agent/examples/extensions/bookmark.ts
- Command line
-
hf download hf://SaylorTwift/pi/packages/coding-agent/examples/extensions/bookmark.ts
-
curl -L -o bookmark.ts https://huggingface.co/SaylorTwift/pi/resolve/main/packages/coding-agent/examples/extensions/bookmark.ts
1.56 kB
| /** | |
| * 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()}`; | |
| // Find the last assistant message entry | |
| 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"); | |
| }, | |
| }); | |
| // Remove bookmark | |
| 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"); | |
| }, | |
| }); | |
| } | |