@oh-my-pi/pi-mnemopi 17.4.2 → 18.0.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/CHANGELOG.md +7 -0
- package/package.json +5 -5
- package/src/core/episodic-graph.ts +9 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.0.0] - 2026-08-22
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed false-positive location extraction in episodic gists by properly enforcing capitalization constraints for proper nouns.
|
|
10
|
+
- Improved episodic gist participant extraction with Unicode support to properly capture names in non-Latin scripts (e.g., Cyrillic, Greek).
|
|
11
|
+
|
|
5
12
|
## [17.3.8] - 2026-08-19
|
|
6
13
|
|
|
7
14
|
### Added
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-mnemopi",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "18.0.0",
|
|
5
5
|
"description": "Local SQLite memory engine for Oh My Pi agents",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Stencil Labs, Inc.",
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"fmt": "biome format --write ."
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "
|
|
43
|
-
"@oh-my-pi/pi-catalog": "
|
|
44
|
-
"@oh-my-pi/pi-natives": "
|
|
45
|
-
"@oh-my-pi/pi-utils": "
|
|
42
|
+
"@oh-my-pi/pi-ai": "18.0.0",
|
|
43
|
+
"@oh-my-pi/pi-catalog": "18.0.0",
|
|
44
|
+
"@oh-my-pi/pi-natives": "18.0.0",
|
|
45
|
+
"@oh-my-pi/pi-utils": "18.0.0"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"fastembed": "2.1.0",
|
|
@@ -565,7 +565,14 @@ export class EpisodicGraph {
|
|
|
565
565
|
}
|
|
566
566
|
|
|
567
567
|
private extractParticipants(content: string): string[] {
|
|
568
|
-
|
|
568
|
+
// Match capitalized proper nouns across cased scripts (Latin, Greek, Cyrillic, …).
|
|
569
|
+
// `[A-Z][a-z]+` plus ASCII `\b` matched no non-Latin token, so any non-English
|
|
570
|
+
// memory produced zero participants (issue #7918). Unicode property escapes with
|
|
571
|
+
// the `u` flag, and `\p{L}`-based lookaround boundaries in place of `\b`, fix that.
|
|
572
|
+
const names = Array.from(
|
|
573
|
+
content.matchAll(/(?<![\p{L}\p{N}_])(\p{Lu}\p{Ll}+(?:\s+\p{Lu}\p{Ll}+)?)(?![\p{L}\p{N}_])/gu),
|
|
574
|
+
match => match[1] ?? "",
|
|
575
|
+
);
|
|
569
576
|
const pronouns = Array.from(
|
|
570
577
|
content.matchAll(/\b(I|you|we|they|he|she|it|me|us|them|him|her)\b/gi),
|
|
571
578
|
match => match[1] ?? "",
|
|
@@ -590,7 +597,7 @@ export class EpisodicGraph {
|
|
|
590
597
|
|
|
591
598
|
private extractLocation(content: string): string | null {
|
|
592
599
|
const properPlace =
|
|
593
|
-
/\b(?:at|in|from)\s+([A-Z][a-zA-Z\s]+?)(?:\s+(?:yesterday|today|tomorrow|now|last|next|on|at)\b|$)
|
|
600
|
+
/\b(?:at|in|from)\s+([A-Z][a-zA-Z\s]+?)(?:\s+(?:yesterday|today|tomorrow|now|last|next|on|at)\b|$)/.exec(
|
|
594
601
|
content,
|
|
595
602
|
);
|
|
596
603
|
if (properPlace?.[1] !== undefined) return properPlace[1].trim();
|