Menu
popagent
publicLatest change 6edc7e928c57dab23c0973ed3f7ee70b3ebb72d5 - Initial popagent baseline by AkurAI Build
import { createTool } from "@mastra/core/tools";
import { z } from "zod";
import { longTermMemory } from "../long-term-memory";
export const remember = createTool({
id: "remember",
description: "Store a durable user fact or preference for recall in future conversations. Use only for information that will remain useful beyond the current chat.",
inputSchema: z.object({
key: z.string().min(1).max(128).describe("Stable semantic key such as ui.theme or user.runtime"),
fact: z.string().min(1).max(2_000),
importance: z.number().min(0).max(1).default(0.8),
}),
outputSchema: z.object({ remembered: z.boolean() }),
execute: async ({ key, fact, importance }, context) => {
const resourceId = context.requestContext?.get("popagent.resourceId") as string | undefined;
const sessionId = context.requestContext?.get("popagent.sessionId") as string | undefined;
if (!resourceId || !sessionId) throw new Error("Memory context is unavailable");
await longTermMemory.rememberFact({ resourceId, sessionId, key, content: fact, importance });
return { remembered: true };
},
});