Backfill short home feed agent responses

This commit is contained in:
Sai-karthik
2026-06-23 08:41:55 +00:00
parent 29ed0a15cd
commit 4092025693
+31 -3
View File
@@ -141,6 +141,33 @@ function normalizeAgentNotification(
});
}
function notificationKey(notification: AgentHomeNotification) {
return [
notification.moduleId,
notification.href,
notification.title.trim().toLowerCase(),
].join(":");
}
function completeNotificationsWithSeeds(
notifications: AgentHomeNotification[],
seeds: Array<Omit<HomeNotification, "id" | "createdAt"> & { moduleId: HomeModuleId }>,
) {
const completed = [...notifications];
const seen = new Set(completed.map(notificationKey));
for (const seed of seeds) {
if (completed.length >= 6) break;
const candidate = normalizeAgentNotification(seed, seeds);
const key = notificationKey(candidate);
if (seen.has(key)) continue;
completed.push(candidate);
seen.add(key);
}
return feedSchema.parse({ notifications: completed }).notifications;
}
function parseJsonObject(text: string) {
const cleaned = text.trim().replace(/^```(?:json)?/i, "").replace(/```$/i, "").trim();
try {
@@ -183,9 +210,10 @@ export async function refineHomeNotificationsWithAgent(input: {
});
const parsed = rawFeedSchema.parse(parseJsonObject(result.text));
const notifications = feedSchema.parse({
notifications: parsed.notifications.map((item) => normalizeAgentNotification(item, input.seeds)),
}).notifications;
const notifications = completeNotificationsWithSeeds(
parsed.notifications.map((item) => normalizeAgentNotification(item, input.seeds)),
input.seeds,
);
const now = new Date().toISOString();
return notifications.map((n, index) => ({
...n,