@yamo/memory-mesh 3.0.0 → 3.0.1

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.
Files changed (107) hide show
  1. package/README.md +8 -2
  2. package/lib/llm/client.d.ts +23 -48
  3. package/lib/llm/client.js +1 -0
  4. package/lib/llm/client.ts +298 -377
  5. package/lib/llm/index.js +1 -0
  6. package/lib/llm/index.ts +1 -2
  7. package/lib/memory/adapters/client.d.ts +22 -85
  8. package/lib/memory/adapters/client.js +1 -0
  9. package/lib/memory/adapters/client.ts +474 -633
  10. package/lib/memory/adapters/config.d.ts +82 -89
  11. package/lib/memory/adapters/config.js +1 -0
  12. package/lib/memory/adapters/config.ts +156 -225
  13. package/lib/memory/adapters/errors.d.ts +28 -20
  14. package/lib/memory/adapters/errors.js +1 -0
  15. package/lib/memory/adapters/errors.ts +83 -120
  16. package/lib/memory/context-manager.d.ts +15 -18
  17. package/lib/memory/context-manager.js +1 -0
  18. package/lib/memory/context-manager.ts +314 -401
  19. package/lib/memory/embeddings/factory.d.ts +18 -20
  20. package/lib/memory/embeddings/factory.js +1 -0
  21. package/lib/memory/embeddings/factory.ts +130 -173
  22. package/lib/memory/embeddings/index.js +1 -0
  23. package/lib/memory/embeddings/index.ts +1 -0
  24. package/lib/memory/embeddings/service.d.ts +36 -66
  25. package/lib/memory/embeddings/service.js +1 -0
  26. package/lib/memory/embeddings/service.ts +479 -616
  27. package/lib/memory/index.d.ts +2 -2
  28. package/lib/memory/index.js +1 -0
  29. package/lib/memory/index.ts +3 -13
  30. package/lib/memory/memory-mesh.d.ts +151 -93
  31. package/lib/memory/memory-mesh.js +1 -0
  32. package/lib/memory/memory-mesh.ts +1406 -1692
  33. package/lib/memory/memory-translator.d.ts +1 -6
  34. package/lib/memory/memory-translator.js +1 -0
  35. package/lib/memory/memory-translator.ts +96 -128
  36. package/lib/memory/schema.d.ts +29 -10
  37. package/lib/memory/schema.js +1 -0
  38. package/lib/memory/schema.ts +102 -185
  39. package/lib/memory/scorer.d.ts +3 -4
  40. package/lib/memory/scorer.js +1 -0
  41. package/lib/memory/scorer.ts +69 -86
  42. package/lib/memory/search/index.js +1 -0
  43. package/lib/memory/search/index.ts +1 -0
  44. package/lib/memory/search/keyword-search.d.ts +10 -26
  45. package/lib/memory/search/keyword-search.js +1 -0
  46. package/lib/memory/search/keyword-search.ts +123 -161
  47. package/lib/scrubber/config/defaults.d.ts +39 -46
  48. package/lib/scrubber/config/defaults.js +1 -0
  49. package/lib/scrubber/config/defaults.ts +50 -112
  50. package/lib/scrubber/errors/scrubber-error.d.ts +22 -0
  51. package/lib/scrubber/errors/scrubber-error.js +39 -0
  52. package/lib/scrubber/errors/scrubber-error.ts +44 -0
  53. package/lib/scrubber/index.d.ts +0 -1
  54. package/lib/scrubber/index.js +1 -0
  55. package/lib/scrubber/index.ts +1 -2
  56. package/lib/scrubber/scrubber.d.ts +14 -31
  57. package/lib/scrubber/scrubber.js +1 -0
  58. package/lib/scrubber/scrubber.ts +93 -152
  59. package/lib/scrubber/stages/chunker.d.ts +22 -10
  60. package/lib/scrubber/stages/chunker.js +86 -0
  61. package/lib/scrubber/stages/chunker.ts +104 -0
  62. package/lib/scrubber/stages/metadata-annotator.d.ts +14 -15
  63. package/lib/scrubber/stages/metadata-annotator.js +64 -0
  64. package/lib/scrubber/stages/metadata-annotator.ts +75 -0
  65. package/lib/scrubber/stages/normalizer.d.ts +13 -10
  66. package/lib/scrubber/stages/normalizer.js +51 -0
  67. package/lib/scrubber/stages/normalizer.ts +60 -0
  68. package/lib/scrubber/stages/semantic-filter.d.ts +13 -10
  69. package/lib/scrubber/stages/semantic-filter.js +51 -0
  70. package/lib/scrubber/stages/semantic-filter.ts +62 -0
  71. package/lib/scrubber/stages/structural-cleaner.d.ts +15 -10
  72. package/lib/scrubber/stages/structural-cleaner.js +73 -0
  73. package/lib/scrubber/stages/structural-cleaner.ts +83 -0
  74. package/lib/scrubber/stages/validator.d.ts +14 -15
  75. package/lib/scrubber/stages/validator.js +56 -0
  76. package/lib/scrubber/stages/validator.ts +67 -0
  77. package/lib/scrubber/telemetry.d.ts +20 -27
  78. package/lib/scrubber/telemetry.js +1 -0
  79. package/lib/scrubber/telemetry.ts +53 -90
  80. package/lib/scrubber/utils/hash.d.ts +14 -0
  81. package/lib/scrubber/utils/hash.js +37 -0
  82. package/lib/scrubber/utils/hash.ts +40 -0
  83. package/lib/scrubber/utils/html-parser.d.ts +14 -0
  84. package/lib/scrubber/utils/html-parser.js +38 -0
  85. package/lib/scrubber/utils/html-parser.ts +46 -0
  86. package/lib/scrubber/utils/pattern-matcher.d.ts +12 -0
  87. package/lib/scrubber/utils/pattern-matcher.js +54 -0
  88. package/lib/scrubber/utils/pattern-matcher.ts +64 -0
  89. package/lib/scrubber/utils/token-counter.d.ts +18 -0
  90. package/lib/scrubber/utils/token-counter.js +30 -0
  91. package/lib/scrubber/utils/token-counter.ts +32 -0
  92. package/lib/utils/logger.d.ts +1 -11
  93. package/lib/utils/logger.js +1 -0
  94. package/lib/utils/logger.ts +43 -63
  95. package/lib/utils/skill-metadata.d.ts +6 -14
  96. package/lib/utils/skill-metadata.js +1 -0
  97. package/lib/utils/skill-metadata.ts +89 -103
  98. package/lib/yamo/emitter.d.ts +8 -35
  99. package/lib/yamo/emitter.js +1 -0
  100. package/lib/yamo/emitter.ts +77 -155
  101. package/lib/yamo/index.d.ts +14 -0
  102. package/lib/yamo/index.js +14 -0
  103. package/lib/yamo/index.ts +16 -0
  104. package/lib/yamo/schema.d.ts +8 -10
  105. package/lib/yamo/schema.js +1 -0
  106. package/lib/yamo/schema.ts +82 -114
  107. package/package.json +4 -2
@@ -1,11 +1,6 @@
1
1
  /**
2
2
  * MemoryTranslator - Converts memories to YAMO agent format
3
3
  */
4
- export interface TranslationOptions {
5
- mode?: string;
6
- includeMetadata?: boolean;
7
- maxContentLength?: number;
8
- }
9
4
  export declare class MemoryTranslator {
10
5
  #private;
11
6
  /**
@@ -14,6 +9,6 @@ export declare class MemoryTranslator {
14
9
  * @param {TranslationOptions} options - Translation options
15
10
  * @returns {string} Formatted YAMO agent context
16
11
  */
17
- static toYAMOContext(memories: any[], options?: TranslationOptions): string;
12
+ static toYAMOContext(memories: any, options?: {}): string;
18
13
  }
19
14
  export default MemoryTranslator;
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * MemoryTranslator - Converts memories to YAMO agent format
3
4
  */
@@ -1,50 +1,33 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * MemoryTranslator - Converts memories to YAMO agent format
3
4
  */
4
-
5
- export interface TranslationOptions {
6
- mode?: string;
7
- includeMetadata?: boolean;
8
- maxContentLength?: number;
9
- }
10
-
11
5
  export class MemoryTranslator {
12
- /**
13
- * Translate memories into YAMO agent context
14
- * @param {Array<any>} memories - Retrieved memories
15
- * @param {TranslationOptions} options - Translation options
16
- * @returns {string} Formatted YAMO agent context
17
- */
18
- static toYAMOContext(
19
- memories: any[],
20
- options: TranslationOptions = {},
21
- ): string {
22
- if (!memories || memories.length === 0) {
23
- return "";
6
+ /**
7
+ * Translate memories into YAMO agent context
8
+ * @param {Array<any>} memories - Retrieved memories
9
+ * @param {TranslationOptions} options - Translation options
10
+ * @returns {string} Formatted YAMO agent context
11
+ */
12
+ static toYAMOContext(memories, options = {}) {
13
+ if (!memories || memories.length === 0) {
14
+ return "";
15
+ }
16
+ const { mode = "background_context", includeMetadata = true, maxContentLength = 500, } = options;
17
+ const header = this.#buildHeader(memories, mode);
18
+ const memoriesSection = this.#buildMemoriesSection(memories, {
19
+ includeMetadata,
20
+ maxContentLength,
21
+ });
22
+ const footer = this.#buildFooter(memories);
23
+ return `${header}\n\n${memoriesSection}\n\n${footer}`;
24
24
  }
25
-
26
- const {
27
- mode = "background_context",
28
- includeMetadata = true,
29
- maxContentLength = 500,
30
- } = options;
31
-
32
- const header = this.#buildHeader(memories, mode);
33
- const memoriesSection = this.#buildMemoriesSection(memories, {
34
- includeMetadata,
35
- maxContentLength,
36
- });
37
- const footer = this.#buildFooter(memories);
38
-
39
- return `${header}\n\n${memoriesSection}\n\n${footer}`;
40
- }
41
-
42
- /**
43
- * Build YAMO agent header with operational context
44
- * @private
45
- */
46
- static #buildHeader(memories: any[], mode: string): string {
47
- return `[AGENT INVOCATION: MemoryRecall]
25
+ /**
26
+ * Build YAMO agent header with operational context
27
+ * @private
28
+ */
29
+ static #buildHeader(memories, mode) {
30
+ return `[AGENT INVOCATION: MemoryRecall]
48
31
  agent: MemoryRecall;
49
32
  role: context_provider;
50
33
  mode: ${mode};
@@ -57,102 +40,87 @@ These are memories retrieved from past interactions.
57
40
  - Memories provide background but current query takes precedence
58
41
  - Information may be outdated; verify if critical
59
42
  - Relevance and importance scores indicate reliability`;
60
- }
61
-
62
- /**
63
- * Build memories section with structured entries
64
- * @private
65
- */
66
- static #buildMemoriesSection(memories: any[], options: any): string {
67
- const sections = memories.map((memory, idx) => {
68
- return this.#formatMemory(memory, idx, options);
69
- });
70
-
71
- return `[RETRIEVED MEMORIES]\n${sections.join("\n\n---\n\n")}`;
72
- }
73
-
74
- /**
75
- * Format individual memory with metadata
76
- * @private
77
- */
78
- static #formatMemory(memory: any, index: number, options: any): string {
79
- const { includeMetadata, maxContentLength } = options;
80
-
81
- // Truncate content if too long
82
- let content = memory.content;
83
- if (content.length > maxContentLength) {
84
- content = `${content.substring(0, maxContentLength)}... [truncated]`;
85
43
  }
86
-
87
- // Build memory entry
88
- let entry = `[MEMORY_ENTRY_${index + 1}]
44
+ /**
45
+ * Build memories section with structured entries
46
+ * @private
47
+ */
48
+ static #buildMemoriesSection(memories, options) {
49
+ const sections = memories.map((memory, idx) => {
50
+ return this.#formatMemory(memory, idx, options);
51
+ });
52
+ return `[RETRIEVED MEMORIES]\n${sections.join("\n\n---\n\n")}`;
53
+ }
54
+ /**
55
+ * Format individual memory with metadata
56
+ * @private
57
+ */
58
+ static #formatMemory(memory, index, options) {
59
+ const { includeMetadata, maxContentLength } = options;
60
+ // Truncate content if too long
61
+ let content = memory.content;
62
+ if (content.length > maxContentLength) {
63
+ content = `${content.substring(0, maxContentLength)}... [truncated]`;
64
+ }
65
+ // Build memory entry
66
+ let entry = `[MEMORY_ENTRY_${index + 1}]
89
67
  type: ${memory.memoryType || "global"};
90
68
  relevance: ${memory.score?.toFixed(2) || "N/A"};
91
69
  importance: ${memory.importanceScore?.toFixed(2) || "N/A"};
92
70
  timestamp: ${this.#formatTimestamp(memory.created_at)}`;
93
-
94
- // Add optional metadata
95
- if (includeMetadata && memory.metadata) {
96
- const meta =
97
- typeof memory.metadata === "string"
98
- ? JSON.parse(memory.metadata)
99
- : memory.metadata;
100
-
101
- if (meta.interaction_type) {
102
- entry += `\ninteraction_type: ${meta.interaction_type}`;
103
- }
104
- if (meta.tags?.length > 0) {
105
- entry += `\ntags: ${meta.tags.join(", ")}`;
106
- }
71
+ // Add optional metadata
72
+ if (includeMetadata && memory.metadata) {
73
+ const meta = typeof memory.metadata === "string"
74
+ ? JSON.parse(memory.metadata)
75
+ : memory.metadata;
76
+ if (meta.interaction_type) {
77
+ entry += `\ninteraction_type: ${meta.interaction_type}`;
78
+ }
79
+ if (meta.tags?.length > 0) {
80
+ entry += `\ntags: ${meta.tags.join(", ")}`;
81
+ }
82
+ }
83
+ // Sanitize content to prevent role-confusion
84
+ // Replaces [USER] and [ASSISTANT] with labels that clearly indicate historical status
85
+ const sanitizedContent = content
86
+ .replace(/\[USER\]/g, "[PAST_USER_LOG]")
87
+ .replace(/\[ASSISTANT\]/g, "[PAST_ASSISTANT_LOG]");
88
+ // Add content
89
+ entry += `\n\n[HISTORICAL_RECORD_CONTENT]\n${sanitizedContent}`;
90
+ return entry;
107
91
  }
108
-
109
- // Sanitize content to prevent role-confusion
110
- // Replaces [USER] and [ASSISTANT] with labels that clearly indicate historical status
111
- const sanitizedContent = content
112
- .replace(/\[USER\]/g, "[PAST_USER_LOG]")
113
- .replace(/\[ASSISTANT\]/g, "[PAST_ASSISTANT_LOG]");
114
-
115
- // Add content
116
- entry += `\n\n[HISTORICAL_RECORD_CONTENT]\n${sanitizedContent}`;
117
-
118
- return entry;
119
- }
120
-
121
- /**
122
- * Build footer with usage guidance
123
- * @private
124
- */
125
- static #buildFooter(memories: any[]): string {
126
- return `[END MEMORY RECALL]
92
+ /**
93
+ * Build footer with usage guidance
94
+ * @private
95
+ */
96
+ static #buildFooter(memories) {
97
+ return `[END MEMORY RECALL]
127
98
  Total memories provided: ${memories.length}
128
99
  Usage: Reference these memories when relevant to the current query.
129
100
  Priority: Current user query > Recent memories > Older memories`;
130
- }
131
-
132
- /**
133
- * Format timestamp as relative time
134
- * @private
135
- */
136
- static #formatTimestamp(timestamp: any): string {
137
- const date = new Date(timestamp);
138
- const now = new Date();
139
- const diffMs = now.getTime() - date.getTime();
140
- const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
141
-
142
- if (diffDays === 0) {
143
- return "today";
144
101
  }
145
- if (diffDays === 1) {
146
- return "yesterday";
102
+ /**
103
+ * Format timestamp as relative time
104
+ * @private
105
+ */
106
+ static #formatTimestamp(timestamp) {
107
+ const date = new Date(timestamp);
108
+ const now = new Date();
109
+ const diffMs = now.getTime() - date.getTime();
110
+ const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
111
+ if (diffDays === 0) {
112
+ return "today";
113
+ }
114
+ if (diffDays === 1) {
115
+ return "yesterday";
116
+ }
117
+ if (diffDays < 7) {
118
+ return `${diffDays} days ago`;
119
+ }
120
+ if (diffDays < 30) {
121
+ return `${Math.floor(diffDays / 7)} weeks ago`;
122
+ }
123
+ return date.toLocaleDateString();
147
124
  }
148
- if (diffDays < 7) {
149
- return `${diffDays} days ago`;
150
- }
151
- if (diffDays < 30) {
152
- return `${Math.floor(diffDays / 7)} weeks ago`;
153
- }
154
- return date.toLocaleDateString();
155
- }
156
125
  }
157
-
158
126
  export default MemoryTranslator;
@@ -8,7 +8,6 @@
8
8
  * - text-embedding-3-small: 1536 dimensions
9
9
  */
10
10
  import * as arrow from "apache-arrow";
11
- import * as lancedb from "@lancedb/lancedb";
12
11
  /**
13
12
  * Default vector dimension (all-MiniLM-L6-v2)
14
13
  */
@@ -16,38 +15,48 @@ export declare const DEFAULT_VECTOR_DIMENSION = 384;
16
15
  /**
17
16
  * Common embedding model dimensions
18
17
  */
19
- export declare const EMBEDDING_DIMENSIONS: Record<string, number>;
18
+ export declare const EMBEDDING_DIMENSIONS: {
19
+ "Xenova/all-MiniLM-L6-v2": number;
20
+ "Xenova/all-mpnet-base-v2": number;
21
+ "Xenova/distiluse-base-multilingual-cased-v1": number;
22
+ "sentence-transformers/all-MiniLM-L6-v2": number;
23
+ "sentence-transformers/all-mpnet-base-v2": number;
24
+ "openai/text-embedding-3-small": number;
25
+ "openai/text-embedding-3-large": number;
26
+ "cohere/embed-english-light-v3.0": number;
27
+ "cohere/embed-english-v3.0": number;
28
+ };
20
29
  /**
21
30
  * Get dimension for a given embedding model
22
31
  * @param {string} modelName - Embedding model name or path
23
32
  * @returns {number} Vector dimension
24
33
  */
25
- export declare function getEmbeddingDimension(modelName?: string): number;
34
+ export declare function getEmbeddingDimension(modelName: any): any;
26
35
  /**
27
36
  * Create a memory schema with a specific vector dimension
28
37
  * @param {number} vectorDim - Vector dimension (e.g., 384, 768, 1536)
29
38
  * @returns {arrow.Schema} Arrow schema with specified dimension
30
39
  */
31
- export declare function createMemorySchema(vectorDim?: number): arrow.Schema;
40
+ export declare function createMemorySchema(vectorDim?: number): arrow.Schema<any>;
32
41
  /**
33
42
  * Create V2 memory schema with automatic recall fields
34
43
  * All new fields are nullable for backward compatibility
35
44
  * @param {number} vectorDim - Vector dimension (e.g., 384, 768, 1536)
36
45
  * @returns {arrow.Schema} Arrow schema with V2 fields
37
46
  */
38
- export declare function createMemorySchemaV2(vectorDim?: number): arrow.Schema;
47
+ export declare function createMemorySchemaV2(vectorDim?: number): arrow.Schema<any>;
39
48
  /**
40
49
  * Create schema for synthesized skills (Recursive Skill Synthesis)
41
50
  * @param {number} vectorDim - Vector dimension for intent embedding
42
51
  * @returns {arrow.Schema} Arrow schema
43
52
  */
44
- export declare function createSynthesizedSkillSchema(vectorDim?: number): arrow.Schema;
53
+ export declare function createSynthesizedSkillSchema(vectorDim?: number): arrow.Schema<any>;
45
54
  /**
46
55
  * Check if a table is using V2 schema
47
56
  * @param {arrow.Schema} schema - Table schema to check
48
57
  * @returns {boolean} True if V2 schema detected
49
58
  */
50
- export declare function isSchemaV2(schema: arrow.Schema): boolean;
59
+ export declare function isSchemaV2(schema: any): any;
51
60
  /**
52
61
  * Memory table schema using Apache Arrow format (default 384 dimensions)
53
62
  * @deprecated Use createMemorySchema(vectorDim) for dynamic dimensions
@@ -76,7 +85,7 @@ export declare const INDEX_CONFIG: {
76
85
  * @throws {Error} If table creation fails
77
86
  * @deprecated Use createMemoryTableWithDimension() for dynamic dimensions
78
87
  */
79
- export declare function createMemoryTable(db: lancedb.Connection, tableName?: string): Promise<lancedb.Table>;
88
+ export declare function createMemoryTable(db: any, tableName?: string): Promise<any>;
80
89
  /**
81
90
  * Creates a memory table in LanceDB with a specific vector dimension
82
91
  * @param {lancedb.Connection} db - LanceDB connection
@@ -85,7 +94,7 @@ export declare function createMemoryTable(db: lancedb.Connection, tableName?: st
85
94
  * @returns {Promise<lancedb.Table>} The created or opened table
86
95
  * @throws {Error} If table creation fails
87
96
  */
88
- export declare function createMemoryTableWithDimension(db: lancedb.Connection, tableName: string, vectorDim: number): Promise<lancedb.Table>;
97
+ export declare function createMemoryTableWithDimension(db: any, tableName: any, vectorDim: any): Promise<any>;
89
98
  declare const _default: {
90
99
  MEMORY_SCHEMA: arrow.Schema<any>;
91
100
  INDEX_CONFIG: {
@@ -106,6 +115,16 @@ declare const _default: {
106
115
  isSchemaV2: typeof isSchemaV2;
107
116
  getEmbeddingDimension: typeof getEmbeddingDimension;
108
117
  DEFAULT_VECTOR_DIMENSION: number;
109
- EMBEDDING_DIMENSIONS: Record<string, number>;
118
+ EMBEDDING_DIMENSIONS: {
119
+ "Xenova/all-MiniLM-L6-v2": number;
120
+ "Xenova/all-mpnet-base-v2": number;
121
+ "Xenova/distiluse-base-multilingual-cased-v1": number;
122
+ "sentence-transformers/all-MiniLM-L6-v2": number;
123
+ "sentence-transformers/all-mpnet-base-v2": number;
124
+ "openai/text-embedding-3-small": number;
125
+ "openai/text-embedding-3-large": number;
126
+ "cohere/embed-english-light-v3.0": number;
127
+ "cohere/embed-english-v3.0": number;
128
+ };
110
129
  };
111
130
  export default _default;
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * LanceDB Schema Definitions for MemoryManager
3
4
  * Uses Apache Arrow Schema format for LanceDB JavaScript SDK