@mastra/memory 1.11.0 → 1.11.1-alpha.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.
@@ -724,10 +724,10 @@ function stripReflectionGroupMetadata(body) {
724
724
  function generateAnchorId() {
725
725
  return crypto$1.randomBytes(8).toString("hex");
726
726
  }
727
- function wrapInObservationGroup(observations, range, id = generateAnchorId(), sourceGroupIds) {
727
+ function wrapInObservationGroup(observations, range, id = generateAnchorId(), _sourceGroupIds, kind) {
728
728
  const content = observations.trim();
729
- const sourceGroupIdsAttr = sourceGroupIds?.length ? ` source-group-ids="${sourceGroupIds.join(",")}"` : "";
730
- return `<observation-group id="${id}" range="${range}"${sourceGroupIdsAttr}>
729
+ const kindAttr = kind ? ` kind="${kind}"` : "";
730
+ return `<observation-group id="${id}" range="${range}"${kindAttr}>
731
731
  ${content}
732
732
  </observation-group>`;
733
733
  }
@@ -747,8 +747,8 @@ function parseObservationGroups(observations) {
747
747
  groups.push({
748
748
  id,
749
749
  range,
750
- content: match[2].trim(),
751
- sourceGroupIds: attributes["source-group-ids"]?.split(",").map((part) => part.trim()).filter(Boolean)
750
+ kind: attributes.kind,
751
+ content: match[2].trim()
752
752
  });
753
753
  }
754
754
  return groups;
@@ -759,12 +759,22 @@ function stripObservationGroups(observations) {
759
759
  }
760
760
  return observations.replace(OBSERVATION_GROUP_PATTERN, (_match, _attributes, content) => content.trim()).replace(/\n{3,}/g, "\n\n").trim();
761
761
  }
762
+ function getRangeSegments(range) {
763
+ return range.split(",").map((segment) => segment.trim()).filter(Boolean);
764
+ }
762
765
  function combineObservationGroupRanges(groups) {
763
- return Array.from(
764
- new Set(
765
- groups.flatMap((group) => group.range.split(",")).map((range) => range.trim()).filter(Boolean)
766
- )
767
- ).join(",");
766
+ const segments = groups.flatMap((group) => getRangeSegments(group.range));
767
+ if (segments.length === 0) {
768
+ return "";
769
+ }
770
+ const firstSegment = segments[0];
771
+ const lastSegment = segments[segments.length - 1];
772
+ const firstStart = firstSegment?.split(":")[0]?.trim();
773
+ const lastEnd = lastSegment?.split(":").at(-1)?.trim();
774
+ if (firstStart && lastEnd) {
775
+ return `${firstStart}:${lastEnd}`;
776
+ }
777
+ return Array.from(new Set(segments)).join(",");
768
778
  }
769
779
  function renderObservationGroupsForReflection(observations) {
770
780
  const groups = parseObservationGroups(observations);
@@ -801,15 +811,12 @@ function deriveObservationGroupProvenance(content, groups) {
801
811
  });
802
812
  const fallbackGroup = groups[Math.min(index, groups.length - 1)];
803
813
  const resolvedGroups = matchingGroups.length > 0 ? matchingGroups : fallbackGroup ? [fallbackGroup] : [];
804
- const sourceGroupIds = Array.from(
805
- new Set(resolvedGroups.flatMap((group) => [group.id, ...group.sourceGroupIds ?? []]))
806
- );
807
814
  const canonicalGroupId = getCanonicalGroupId(section.heading, index);
808
815
  return {
809
816
  id: canonicalGroupId,
810
817
  range: combineObservationGroupRanges(resolvedGroups),
811
- content: section.body,
812
- sourceGroupIds
818
+ kind: "reflection",
819
+ content: section.body
813
820
  };
814
821
  });
815
822
  }
@@ -824,13 +831,14 @@ function reconcileObservationGroupsFromReflection(content, sourceObservations) {
824
831
  }
825
832
  const derivedGroups = deriveObservationGroupProvenance(normalizedContent, sourceGroups);
826
833
  if (derivedGroups.length > 0) {
827
- return derivedGroups.map((group) => wrapInObservationGroup(group.content, group.range, group.id, group.sourceGroupIds)).join("\n\n");
834
+ return derivedGroups.map((group) => wrapInObservationGroup(group.content, group.range, group.id, void 0, group.kind)).join("\n\n");
828
835
  }
829
836
  return wrapInObservationGroup(
830
837
  normalizedContent,
831
838
  combineObservationGroupRanges(sourceGroups),
832
839
  generateAnchorId(),
833
- Array.from(new Set(sourceGroups.flatMap((group) => [group.id, ...group.sourceGroupIds ?? []])))
840
+ void 0,
841
+ "reflection"
834
842
  );
835
843
  }
836
844
 
@@ -3828,11 +3836,10 @@ Aim for a 2/10 detail level. Fewer, more generic observations are better than ma
3828
3836
  };
3829
3837
  function buildReflectorPrompt(observations, manualPrompt, compressionLevel, skipContinuationHints) {
3830
3838
  const level = typeof compressionLevel === "number" ? compressionLevel : compressionLevel ? 1 : 0;
3831
- const reflectionView = renderObservationGroupsForReflection(observations) ?? observations;
3832
- const anchoredObservations = injectAnchorIds(reflectionView);
3839
+ const reflectionView = stripObservationGroups(observations);
3833
3840
  let prompt = `## OBSERVATIONS TO REFLECT ON
3834
3841
 
3835
- ${anchoredObservations}
3842
+ ${reflectionView}
3836
3843
 
3837
3844
  ---
3838
3845
 
@@ -8450,5 +8457,5 @@ exports.stripEphemeralAnchorIds = stripEphemeralAnchorIds;
8450
8457
  exports.stripObservationGroups = stripObservationGroups;
8451
8458
  exports.truncateStringByTokens = truncateStringByTokens;
8452
8459
  exports.wrapInObservationGroup = wrapInObservationGroup;
8453
- //# sourceMappingURL=chunk-VINRPDYQ.cjs.map
8454
- //# sourceMappingURL=chunk-VINRPDYQ.cjs.map
8460
+ //# sourceMappingURL=chunk-W2RTLXNQ.cjs.map
8461
+ //# sourceMappingURL=chunk-W2RTLXNQ.cjs.map