@deepagents/context 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -372,7 +372,7 @@ function policy(input) {
372
372
  }
373
373
 
374
374
  // packages/context/src/lib/fragments/message/user.ts
375
- import { generateId as generateId2 } from "ai";
375
+ import { generateId as generateId2, isTextUIPart } from "ai";
376
376
  var SYSTEM_REMINDER_OPEN_TAG = "<system-reminder>";
377
377
  var SYSTEM_REMINDER_CLOSE_TAG = "</system-reminder>";
378
378
  function getReminderRanges(metadata) {
@@ -441,6 +441,9 @@ function stripReminders(message2) {
441
441
  }
442
442
  return nextMessage;
443
443
  }
444
+ function extractPlainText(message2) {
445
+ return message2.parts.filter(isTextUIPart).map((part) => part.text).join(" ");
446
+ }
444
447
  function isRecord(value) {
445
448
  return typeof value === "object" && value !== null && !Array.isArray(value);
446
449
  }
@@ -505,7 +508,9 @@ function applyPartReminder(message2, value) {
505
508
  };
506
509
  }
507
510
  function reminder(text, options) {
508
- assertReminderText(text);
511
+ if (typeof text === "string") {
512
+ assertReminderText(text);
513
+ }
509
514
  return {
510
515
  text,
511
516
  asPart: options?.asPart ?? false
@@ -519,16 +524,22 @@ function user(content, ...reminders) {
519
524
  } : { ...content, role: "user", parts: [...content.parts] };
520
525
  if (reminders.length > 0) {
521
526
  const addedReminders = [];
527
+ const plainText = extractPlainText(message2);
522
528
  for (const item of reminders) {
523
- assertReminderText(item.text);
529
+ const resolvedText = typeof item.text === "function" ? item.text(plainText) : item.text;
530
+ if (resolvedText.trim().length === 0) {
531
+ continue;
532
+ }
524
533
  addedReminders.push(
525
- item.asPart ? applyPartReminder(message2, item.text) : applyInlineReminder(message2, item.text)
534
+ item.asPart ? applyPartReminder(message2, resolvedText) : applyInlineReminder(message2, resolvedText)
526
535
  );
527
536
  }
528
- const metadata = isRecord(message2.metadata) ? { ...message2.metadata } : {};
529
- const existingReminders = Array.isArray(metadata.reminders) ? metadata.reminders : [];
530
- metadata.reminders = [...existingReminders, ...addedReminders];
531
- message2.metadata = metadata;
537
+ if (addedReminders.length > 0) {
538
+ const metadata = isRecord(message2.metadata) ? { ...message2.metadata } : {};
539
+ const existingReminders = Array.isArray(metadata.reminders) ? metadata.reminders : [];
540
+ metadata.reminders = [...existingReminders, ...addedReminders];
541
+ message2.metadata = metadata;
542
+ }
532
543
  }
533
544
  return {
534
545
  id: message2.id,