import { writeFile } from "node:fs/promises"; import path from "node:path"; import { z } from "zod"; import { defineAgentTool, type PluginServerContext } from "@getpaseo/plugin/server"; const appendWorkspaceNote = defineAgentTool({ name: "append_workspace_note", description: "Append a note to AGENT_NOTES.md in this agent's working directory.", input: z.object({ note: z.string().min(1).describe("Note to append") }), async execute({ note }, { agent, signal }) { const notePath = path.join(agent.cwd, "AGENT_NOTES.md"); await writeFile(notePath, `${note}\n`, { encoding: "utf8", flag: "a", signal }); return { text: `Saved note to ${notePath}`, structuredContent: { path: notePath }, }; }, }); export default function contribute(server: PluginServerContext) { server.before("agent.session_open", ({ request }) => { if (request.labels["notes/enabled"] !== "true") return; return { ...request, tools: [...request.tools, appendWorkspaceNote] }; }); return () => {}; }