true-mem 1.0.10 → 1.0.11

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/index.js CHANGED
@@ -858,6 +858,9 @@ function matchesNegativePattern(text, classification) {
858
858
  if (isAIMetaTalk(text)) {
859
859
  return true;
860
860
  }
861
+ if (NEGATION_PATTERNS.some((pattern) => pattern.test(text))) {
862
+ return true;
863
+ }
861
864
  if (FIRST_PERSON_RECALL_PATTERNS.some((pattern) => pattern.test(text))) {
862
865
  return true;
863
866
  }
@@ -869,8 +872,75 @@ function matchesNegativePattern(text, classification) {
869
872
  return false;
870
873
  return patterns.some((pattern) => pattern.test(text));
871
874
  }
872
- var AI_META_TALK_PATTERNS, FIRST_PERSON_RECALL_PATTERNS, REMIND_RECALL_PATTERNS, NEGATIVE_PATTERNS;
875
+ var NEGATION_PATTERNS, AI_META_TALK_PATTERNS, FIRST_PERSON_RECALL_PATTERNS, REMIND_RECALL_PATTERNS, NEGATIVE_PATTERNS;
873
876
  var init_negative_patterns = __esm(() => {
877
+ NEGATION_PATTERNS = [
878
+ /\bnon\s+(ho|hai|ha|abbiamo|avete|hanno)\s+(capito|capita|capisco|capisci|capisce|capiamo)\b/i,
879
+ /\bnon\s+(\u00E8|sono|e'|erano|eravamo|fu|fui)\b/i,
880
+ /\bnon\s+(posso|puoi|pu\u00F2|possiamo|potete|possono|potrei|potresti|potrebbe|potremmo)\b/i,
881
+ /\bnon\s+(voglio|vuoi|vuole|vogliamo|volete|vogliono|vorrei|vorresti|vorrebbe|vorremmo)\b/i,
882
+ /\bnon\s+(devo|devi|deve|dobbiamo|dovete|devono|dovrei|dovresti|dovrebbe|dovremmo)\b/i,
883
+ /\bnon\s+(so|sai|sa|sappiamo|sapete|sanno)\b/i,
884
+ /\bnon\s+(mi|ti|si|ci|vi)\s+(ricordo|ricordi|ricorda|ricordiamo|ricordate)\b/i,
885
+ /\bnon\s+(funziona|funzionano|funzionava|funzionava|funzioner[a\u00E0])\b/i,
886
+ /\bnon\s+(c'[e\u00E8]|ci\s+[e\u00E8]|c'\s+era|ci\s+era)\b/i,
887
+ /\bI\s+(don'?t|do\s+not)\s+(understand|know|think|believe|remember|recall)\b/i,
888
+ /\bI\s+(didn'?t|did\s+not)\s+(understand|know|think|believe|remember|recall|get|catch)\b/i,
889
+ /\bI\s+(haven'?t|have\s+not)\s+(understood|known|thought|believed|remembered|recalled)\b/i,
890
+ /\bI\s+(wouldn'?t|would\s+not)\b/i,
891
+ /\bI\s+(couldn'?t|could\s+not)\b/i,
892
+ /\bI\s+(shouldn'?t|should\s+not)\b/i,
893
+ /\bit\s+(doesn'?t|does\s+not)\s+(work|function|exist)\b/i,
894
+ /\bit\s+(didn'?t|did\s+not)\s+(work|function)\b/i,
895
+ /\b(not|never|no)\s+(understand|know|remember|recall|believe|think)\b/i,
896
+ /\bno\s+(entiendo|entiende|entend[i\u00ED]|comprendo|comprende|comprend[i\u00ED])\b/i,
897
+ /\bno\s+(puedo|puedes|puede|podemos|pod[e\u00E9]is|pueden|podr[i\u00ED]a|podr[i\u00ED]as)\b/i,
898
+ /\bno\s+(quiero|quieres|quiere|queremos|quer[e\u00E9]is|quieren|querr[i\u00ED]a|querr[i\u00ED]as)\b/i,
899
+ /\bno\s+(s[\u00E9e]|sabes|sabe|sabemos|sab[e\u00E9]is|saben)\b/i,
900
+ /\bno\s+(recuerdo|recuerdas|recuerda|recordamos|record[e\u00E1]is|recuerdan)\b/i,
901
+ /\bno\s+(funciona|funcionan|funcionaba|funcionab[aan]|funcionar[a\u00E1])\b/i,
902
+ /\bje\s+ne\s+(comprends|comprend|comprendais|compris)\b/i,
903
+ /\bje\s+ne\s+(sais|sais|savait|su)\b/i,
904
+ /\bje\s+ne\s+(veux|veux|voulais|voulus)\b/i,
905
+ /\bje\s+ne\s+(peux|peux|pouvais|pus)\b/i,
906
+ /\bje\s+ne\s+(dois|dois|devais|d[uu])\b/i,
907
+ /\bje\s+ne\s+(me\s+)?souviens\b/i,
908
+ /\bil\s+ne\s+(fonctionne|fonctionnait|fonctionnera)\b/i,
909
+ /\bich\s+(verstehe|verstand|verstanden)\s+nicht\b/i,
910
+ /\bich\s+(wei[s\u00DF]|wusste|gewusst)\s+nicht\b/i,
911
+ /\bich\s+(will|wollte|wollte)\s+nicht\b/i,
912
+ /\bich\s+(kann|konnte|gekonnt)\s+nicht\b/i,
913
+ /\bich\s+(muss|musste|gemusst)\s+nicht\b/i,
914
+ /\bich\s+erinnere\s+(mich|nicht)\b/i,
915
+ /\b(es|das)\s+(funktioniert|funktionierte|funktionieren)\s+nicht\b/i,
916
+ /\b(eu\s+)?n[\u00E3a]o\s+(entendo|entende|entend[i\u00ED])\b/i,
917
+ /\b(eu\s+)?n[\u00E3a]o\s+(sei|sabe|sabia|soube)\b/i,
918
+ /\b(eu\s+)?n[\u00E3a]o\s+(quero|quer|queria|quis)\b/i,
919
+ /\b(eu\s+)?n[\u00E3a]o\s+(posso|pode|podia|p[^o]de)\b/i,
920
+ /\b(eu\s+)?n[\u00E3a]o\s+(devo|deve|devia|deveu)\b/i,
921
+ /\b(eu\s+)?n[\u00E3a]o\s+me\s+lembro\b/i,
922
+ /\bn[\u00E3a]o\s+(funciona|funcionam|funcionava|funcionar[a\u00E1])\b/i,
923
+ /\bik\s+versta\s+(niet)\b/i,
924
+ /\bik\s+(weet|wist|geweten)\s+(niet)\b/i,
925
+ /\bik\s+(wil|wou|gewild)\s+(niet)\b/i,
926
+ /\bik\s+(kan|kon|gekund)\s+(niet)\b/i,
927
+ /\bik\s+(moet|moest|gemogen)\s+(niet)\b/i,
928
+ /\bhet\s+(werkt|werkte|gewerkt)\s+(niet)\b/i,
929
+ /\b(nie)\s+(rozumiem|rozumiesz|rozumie|rozumia[l\u0142]|zrozumia[l\u0142])\b/i,
930
+ /\b(nie)\s+(wiem|wiesz|wie|wiedzia[l\u0142])\b/i,
931
+ /\b(nie)\s+(chc[e\u0119]|chcia[l\u0142]em|chcia[l\u0142])\b/i,
932
+ /\b(nie)\s+(potraf[i\u0119]|mog[e\u0119]|mog[l\u0142]em|mog[l\u0142])\b/i,
933
+ /\b(nie)\s+(musz[e\u0119]|musia[l\u0142]em|musia[l\u0142])\b/i,
934
+ /\b(nie)\s+(dzia[l\u0142]a|dzia[l\u0142]a[l\u0142])\b/i,
935
+ /\banlam[i\u0131]yorum\b/i,
936
+ /\banlamad[i\u0131]m\b/i,
937
+ /\bbilmiyorum\b/i,
938
+ /\bbilmedim\b/i,
939
+ /\bistemiyorum\b/i,
940
+ /\bistemeden\b/i,
941
+ /\bisteyemem\b/i,
942
+ /\bcal[i\u0131][\u015Fs]m[i\u0131]yor\b/i
943
+ ];
874
944
  AI_META_TALK_PATTERNS = [
875
945
  /^(Goal|Summary|Context|Analysis|Note|Overview|Background):\s+The user/i,
876
946
  /^(Goal|Summary|Context|Analysis|Note|Overview|Background):\s+This/i,
@@ -1122,19 +1192,24 @@ function classifyWithExplicitIntent(text, signals) {
1122
1192
  return { classification, confidence, isolatedContent: text };
1123
1193
  }
1124
1194
  const markerPatterns = [
1195
+ /\bricordati(?:\s+\w+){0,5}?\s+che\b:?\s*/gi,
1196
+ /\bricordati\b:?\s*/gi,
1197
+ /\bricorda(?:\s+\w+){0,5}?\s+che\b:?\s*/gi,
1125
1198
  /\bricorda questo\b:?\s*/gi,
1126
- /\bremember this\b:?\s*/gi,
1127
- /\bricordati che\b:?\s*/gi,
1128
- /\bricorda che\b:?\s*/gi,
1199
+ /\bricordami(?:\s+\w+){0,5}?\s+che\b:?\s*/gi,
1200
+ /\bricordami che\b:?\s*/gi,
1201
+ /\bmemorizza(?:\s+\w+){0,5}?\s+che\b:?\s*/gi,
1129
1202
  /\bmemorizza questo\b:?\s*/gi,
1130
- /\bmemorizza che\b:?\s*/gi,
1131
1203
  /\bmemorizziamo\b:?\s*/gi,
1132
- /\bricordiamoci che\b:?\s*/gi,
1133
- /\bricordiamoci di\b:?\s*/gi,
1134
- /\btieni a mente\b:?\s*/gi,
1135
- /\bkeep in mind\b:?\s*/gi,
1136
- /\bnota che\b:?\s*/gi,
1137
- /\bnote that\b:?\s*/gi
1204
+ /\bricordiamoci(?:\s+\w+){0,5}?\s+(?:che|di)\b:?\s*/gi,
1205
+ /\btieni(?:\s+\w+){0,5}?\s+a mente\b:?\s*/gi,
1206
+ /\bnota(?:\s+\w+){0,5}?\s+che\b:?\s*/gi,
1207
+ /\bremember(?:\s+\w+){0,5}?\s+(?:this|that|to)\b:?\s*/gi,
1208
+ /\bremember this\b:?\s*/gi,
1209
+ /\bkeep(?:\s+\w+){0,5}?\s+in mind\b:?\s*/gi,
1210
+ /\bnote(?:\s+\w+){0,5}?\s+that\b:?\s*/gi,
1211
+ /\bdon'?t forget\b:?\s*/gi,
1212
+ /\bmake sure to remember\b:?\s*/gi
1138
1213
  ];
1139
1214
  let isolatedContent = "";
1140
1215
  let firstMatch = null;
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/memory/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoCjE,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkCzF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0DxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc/D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE,GACb;IAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CA0FhF;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,WAAW,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8CpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE,EACd,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC;IACD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAsEA;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,CAWR"}
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/memory/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoCjE,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkCzF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0DxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc/D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE,GACb;IAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAoGhF;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,WAAW,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8CpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE,EACd,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC;IACD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAsEA;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,CAWR"}
@@ -4,6 +4,20 @@
4
4
  * These patterns filter out common false positives before classification.
5
5
  * E.g., "resolve DNS" should NOT trigger bugfix classification.
6
6
  */
7
+ /**
8
+ * Negation Patterns
9
+ *
10
+ * These patterns detect negations that invalidate memory statements.
11
+ * Sentences containing negations should NOT be stored as memories, regardless
12
+ * of whether they contain other memory-related keywords.
13
+ *
14
+ * Example: "non ho capito" contains "capito" but is negated → DON'T store
15
+ * Example: "I don't understand" contains "understand" but is negated → DON'T store
16
+ *
17
+ * Rationale: Negations reverse the meaning of statements. Learning something
18
+ * implies understanding, but "I don't understand" is the opposite.
19
+ */
20
+ export declare const NEGATION_PATTERNS: RegExp[];
7
21
  /**
8
22
  * AI Meta-Talk Patterns
9
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"negative-patterns.d.ts","sourceRoot":"","sources":["../../src/memory/negative-patterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAmCzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAahD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EA0ChD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EA+B1C,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0DtD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAoBpF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CA4B1F"}
1
+ {"version":3,"file":"negative-patterns.d.ts","sourceRoot":"","sources":["../../src/memory/negative-patterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAmFrC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAmCzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAahD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EA0ChD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EA+B1C,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0DtD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAyBpF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAuC1F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "true-mem",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "description": "Persistent memory plugin for OpenCode with cognitive psychology-based memory management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",