@deepagents/context 0.23.0 → 0.25.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/README.md CHANGED
@@ -338,6 +338,10 @@ const manager = new StreamManager({
338
338
  },
339
339
  });
340
340
 
341
+ // Discover active streams without writing raw SQL.
342
+ const runningStreamIds = await store.listStreamIds({ status: 'running' });
343
+ const runningViaConvenienceMethod = await store.listRunningStreamIds();
344
+
341
345
  // Shutdown cleanup (idempotent)
342
346
  store.close();
343
347
  ```
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,
@@ -1585,6 +1596,9 @@ async function persistedWriter(options) {
1585
1596
 
1586
1597
  // packages/context/src/lib/stream/stream-store.ts
1587
1598
  var StreamStore = class {
1599
+ async listRunningStreamIds() {
1600
+ return this.listStreamIds({ status: "running" });
1601
+ }
1588
1602
  };
1589
1603
 
1590
1604
  // packages/context/src/lib/visualize.ts