tachibot-mcp 2.0.2

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 (214) hide show
  1. package/.env.example +260 -0
  2. package/CHANGELOG.md +54 -0
  3. package/CODE_OF_CONDUCT.md +56 -0
  4. package/CONTRIBUTING.md +54 -0
  5. package/Dockerfile +36 -0
  6. package/LICENSE +644 -0
  7. package/README.md +201 -0
  8. package/SECURITY.md +95 -0
  9. package/dist/personality/komaai-expressions.js +12 -0
  10. package/dist/profiles/balanced.json +33 -0
  11. package/dist/profiles/code_focus.json +33 -0
  12. package/dist/profiles/full.json +33 -0
  13. package/dist/profiles/minimal.json +33 -0
  14. package/dist/profiles/research_power.json +33 -0
  15. package/dist/scripts/build-profiles.js +46 -0
  16. package/dist/src/application/services/focus/FocusModeRegistry.js +46 -0
  17. package/dist/src/application/services/focus/FocusTool.service.js +109 -0
  18. package/dist/src/application/services/focus/ModeRegistry.js +46 -0
  19. package/dist/src/application/services/focus/modes/focus-deep.mode.js +27 -0
  20. package/dist/src/application/services/focus/modes/status.mode.js +50 -0
  21. package/dist/src/application/services/focus/modes/tachibot-status.mode.js +50 -0
  22. package/dist/src/collaborative-orchestrator.js +391 -0
  23. package/dist/src/config/model-constants.js +188 -0
  24. package/dist/src/config/model-defaults.js +57 -0
  25. package/dist/src/config/model-preferences.js +382 -0
  26. package/dist/src/config/timeout-config.js +130 -0
  27. package/dist/src/config.js +173 -0
  28. package/dist/src/domain/interfaces/IFocusMode.js +5 -0
  29. package/dist/src/domain/interfaces/IProvider.js +6 -0
  30. package/dist/src/domain/interfaces/ITool.js +5 -0
  31. package/dist/src/focus-deep.js +245 -0
  32. package/dist/src/infrastructure/ascii/art/robots.ascii.js +16 -0
  33. package/dist/src/mcp-client.js +90 -0
  34. package/dist/src/memory/index.js +17 -0
  35. package/dist/src/memory/memory-config.js +135 -0
  36. package/dist/src/memory/memory-interface.js +174 -0
  37. package/dist/src/memory/memory-manager.js +383 -0
  38. package/dist/src/memory/providers/devlog-provider.js +385 -0
  39. package/dist/src/memory/providers/hybrid-provider.js +399 -0
  40. package/dist/src/memory/providers/local-provider.js +388 -0
  41. package/dist/src/memory/providers/mem0-provider.js +337 -0
  42. package/dist/src/modes/architect.js +477 -0
  43. package/dist/src/modes/auditor.js +362 -0
  44. package/dist/src/modes/challenger.js +841 -0
  45. package/dist/src/modes/code-reviewer.js +382 -0
  46. package/dist/src/modes/commit-guardian.js +424 -0
  47. package/dist/src/modes/documentation-writer.js +572 -0
  48. package/dist/src/modes/scout.js +587 -0
  49. package/dist/src/modes/shared/helpers/challenger-helpers.js +454 -0
  50. package/dist/src/modes/shared/helpers/index.js +17 -0
  51. package/dist/src/modes/shared/helpers/scout-helpers.js +270 -0
  52. package/dist/src/modes/shared/helpers/verifier-helpers.js +332 -0
  53. package/dist/src/modes/test-architect.js +767 -0
  54. package/dist/src/modes/verifier.js +378 -0
  55. package/dist/src/monitoring/performance-monitor.js +435 -0
  56. package/dist/src/optimization/batch-executor.js +121 -0
  57. package/dist/src/optimization/context-pruner.js +196 -0
  58. package/dist/src/optimization/cost-monitor.js +338 -0
  59. package/dist/src/optimization/index.js +65 -0
  60. package/dist/src/optimization/model-router.js +264 -0
  61. package/dist/src/optimization/result-cache.js +114 -0
  62. package/dist/src/optimization/token-optimizer.js +257 -0
  63. package/dist/src/optimization/token-tracker.js +118 -0
  64. package/dist/src/orchestrator-instructions.js +128 -0
  65. package/dist/src/orchestrator-lite.js +139 -0
  66. package/dist/src/orchestrator.js +191 -0
  67. package/dist/src/orchestrators/collaborative/interfaces/IToolExecutionEngine.js +1 -0
  68. package/dist/src/orchestrators/collaborative/interfaces/IToolExecutionStrategy.js +5 -0
  69. package/dist/src/orchestrators/collaborative/interfaces/IVisualizationRenderer.js +1 -0
  70. package/dist/src/orchestrators/collaborative/registries/ModelProviderRegistry.js +95 -0
  71. package/dist/src/orchestrators/collaborative/registries/ToolAdapterRegistry.js +64 -0
  72. package/dist/src/orchestrators/collaborative/services/tool-execution/ToolExecutionService.js +502 -0
  73. package/dist/src/orchestrators/collaborative/services/visualization/VisualizationService.js +206 -0
  74. package/dist/src/orchestrators/collaborative/types/session-types.js +5 -0
  75. package/dist/src/profiles/balanced.js +37 -0
  76. package/dist/src/profiles/code_focus.js +37 -0
  77. package/dist/src/profiles/debug_intensive.js +59 -0
  78. package/dist/src/profiles/full.js +37 -0
  79. package/dist/src/profiles/minimal.js +37 -0
  80. package/dist/src/profiles/research_code.js +59 -0
  81. package/dist/src/profiles/research_power.js +37 -0
  82. package/dist/src/profiles/types.js +5 -0
  83. package/dist/src/profiles/workflow_builder.js +53 -0
  84. package/dist/src/prompt-engineer-lite.js +78 -0
  85. package/dist/src/prompt-engineer.js +399 -0
  86. package/dist/src/reasoning-chain.js +508 -0
  87. package/dist/src/sequential-thinking.js +291 -0
  88. package/dist/src/server-diagnostic.js +74 -0
  89. package/dist/src/server-raw.js +158 -0
  90. package/dist/src/server-simple.js +58 -0
  91. package/dist/src/server.js +514 -0
  92. package/dist/src/session/session-logger.js +617 -0
  93. package/dist/src/session/session-manager.js +571 -0
  94. package/dist/src/session/session-tools.js +400 -0
  95. package/dist/src/tools/advanced-modes.js +200 -0
  96. package/dist/src/tools/claude-integration.js +356 -0
  97. package/dist/src/tools/consolidated/ai-router.js +174 -0
  98. package/dist/src/tools/consolidated/ai-tool.js +48 -0
  99. package/dist/src/tools/consolidated/brainstorm-tool.js +87 -0
  100. package/dist/src/tools/consolidated/environment-detector.js +80 -0
  101. package/dist/src/tools/consolidated/index.js +50 -0
  102. package/dist/src/tools/consolidated/search-tool.js +110 -0
  103. package/dist/src/tools/consolidated/workflow-tool.js +238 -0
  104. package/dist/src/tools/gemini-tools.js +329 -0
  105. package/dist/src/tools/grok-enhanced.js +376 -0
  106. package/dist/src/tools/grok-tools.js +299 -0
  107. package/dist/src/tools/lmstudio-tools.js +223 -0
  108. package/dist/src/tools/openai-tools.js +498 -0
  109. package/dist/src/tools/openrouter-tools.js +317 -0
  110. package/dist/src/tools/optimized-wrapper.js +204 -0
  111. package/dist/src/tools/perplexity-tools.js +294 -0
  112. package/dist/src/tools/pingpong-tool.js +343 -0
  113. package/dist/src/tools/qwen-wrapper.js +74 -0
  114. package/dist/src/tools/tool-router.js +444 -0
  115. package/dist/src/tools/unified-ai-provider.js +260 -0
  116. package/dist/src/tools/workflow-runner.js +425 -0
  117. package/dist/src/tools/workflow-validator-tool.js +107 -0
  118. package/dist/src/types.js +23 -0
  119. package/dist/src/utils/input-validator.js +130 -0
  120. package/dist/src/utils/model-router.js +91 -0
  121. package/dist/src/utils/progress-stream.js +255 -0
  122. package/dist/src/utils/provider-router.js +88 -0
  123. package/dist/src/utils/smart-api-client.js +146 -0
  124. package/dist/src/utils/table-builder.js +218 -0
  125. package/dist/src/utils/timestamp-formatter.js +134 -0
  126. package/dist/src/utils/tool-compressor.js +257 -0
  127. package/dist/src/utils/tool-config.js +201 -0
  128. package/dist/src/validators/dependency-graph-validator.js +147 -0
  129. package/dist/src/validators/interpolation-validator.js +222 -0
  130. package/dist/src/validators/output-usage-validator.js +151 -0
  131. package/dist/src/validators/syntax-validator.js +102 -0
  132. package/dist/src/validators/tool-registry-validator.js +123 -0
  133. package/dist/src/validators/tool-types.js +97 -0
  134. package/dist/src/validators/types.js +8 -0
  135. package/dist/src/validators/workflow-validator.js +134 -0
  136. package/dist/src/visualizer-lite.js +42 -0
  137. package/dist/src/visualizer.js +179 -0
  138. package/dist/src/workflows/circuit-breaker.js +199 -0
  139. package/dist/src/workflows/custom-workflows.js +451 -0
  140. package/dist/src/workflows/engine/AutoSynthesizer.js +97 -0
  141. package/dist/src/workflows/engine/StepParameterResolver.js +74 -0
  142. package/dist/src/workflows/engine/VariableInterpolator.js +123 -0
  143. package/dist/src/workflows/engine/WorkflowDiscovery.js +125 -0
  144. package/dist/src/workflows/engine/WorkflowExecutionEngine.js +485 -0
  145. package/dist/src/workflows/engine/WorkflowExecutor.js +113 -0
  146. package/dist/src/workflows/engine/WorkflowFileManager.js +244 -0
  147. package/dist/src/workflows/engine/WorkflowHelpers.js +114 -0
  148. package/dist/src/workflows/engine/WorkflowOutputFormatter.js +83 -0
  149. package/dist/src/workflows/engine/events/WorkflowEventBus.js +132 -0
  150. package/dist/src/workflows/engine/events/interfaces/IEventBus.js +5 -0
  151. package/dist/src/workflows/engine/handlers/ErrorRecoveryHandler.js +162 -0
  152. package/dist/src/workflows/engine/handlers/PromptEnhancementHandler.js +115 -0
  153. package/dist/src/workflows/engine/handlers/SessionPersistenceHandler.js +167 -0
  154. package/dist/src/workflows/engine/handlers/StepExecutionHandler.js +231 -0
  155. package/dist/src/workflows/engine/handlers/ToolInvocationHandler.js +46 -0
  156. package/dist/src/workflows/engine/interfaces/IAutoSynthesizer.js +5 -0
  157. package/dist/src/workflows/engine/interfaces/IStepParameterResolver.js +5 -0
  158. package/dist/src/workflows/engine/interfaces/IVariableInterpolator.js +5 -0
  159. package/dist/src/workflows/engine/interfaces/IWorkflowDiscovery.js +4 -0
  160. package/dist/src/workflows/engine/interfaces/IWorkflowFileManager.js +5 -0
  161. package/dist/src/workflows/engine/interfaces/IWorkflowOutputFormatter.js +5 -0
  162. package/dist/src/workflows/engine/state/WorkflowStateMachine.js +194 -0
  163. package/dist/src/workflows/engine/state/interfaces/IStateMachine.js +17 -0
  164. package/dist/src/workflows/fallback-strategies.js +373 -0
  165. package/dist/src/workflows/message-queue.js +455 -0
  166. package/dist/src/workflows/model-router.js +189 -0
  167. package/dist/src/workflows/orchestrator-examples.js +174 -0
  168. package/dist/src/workflows/orchestrator-integration.js +200 -0
  169. package/dist/src/workflows/self-healing.js +524 -0
  170. package/dist/src/workflows/tool-mapper.js +407 -0
  171. package/dist/src/workflows/tool-orchestrator.js +796 -0
  172. package/dist/src/workflows/workflow-engine.js +573 -0
  173. package/dist/src/workflows/workflow-parser.js +283 -0
  174. package/dist/src/workflows/workflow-types.js +95 -0
  175. package/dist/src/workflows.js +568 -0
  176. package/dist/test-workflow-file-output.js +93 -0
  177. package/docs/API_KEYS.md +570 -0
  178. package/docs/CLAUDE_CODE_SETUP.md +181 -0
  179. package/docs/CLAUDE_DESKTOP_MANUAL.md +127 -0
  180. package/docs/CONFIGURATION.md +745 -0
  181. package/docs/FOCUS_MODES.md +240 -0
  182. package/docs/INSTALLATION_BOTH.md +145 -0
  183. package/docs/TERMS.md +352 -0
  184. package/docs/TOOLS_REFERENCE.md +1622 -0
  185. package/docs/TOOL_PARAMETERS.md +496 -0
  186. package/docs/TOOL_PROFILES.md +236 -0
  187. package/docs/WORKFLOWS.md +987 -0
  188. package/docs/WORKFLOW_OUTPUT.md +198 -0
  189. package/docs/WORKFLOW_PROGRESS_TRACKING.md +305 -0
  190. package/docs/workflows/design-brainstorm.md +335 -0
  191. package/package.json +97 -0
  192. package/profiles/balanced.json +37 -0
  193. package/profiles/code_focus.json +37 -0
  194. package/profiles/debug_intensive.json +34 -0
  195. package/profiles/full.json +37 -0
  196. package/profiles/minimal.json +37 -0
  197. package/profiles/research_power.json +37 -0
  198. package/profiles/workflow_builder.json +37 -0
  199. package/smithery.yaml +66 -0
  200. package/start.sh +8 -0
  201. package/tools.config.json +81 -0
  202. package/tsconfig.json +18 -0
  203. package/workflows/accessibility-code-audit.yaml +92 -0
  204. package/workflows/code-architecture-review.yaml +202 -0
  205. package/workflows/code-review.yaml +142 -0
  206. package/workflows/core/iterative-problem-solver.yaml +283 -0
  207. package/workflows/creative-brainstorm-yaml.yaml +215 -0
  208. package/workflows/pingpong.yaml +141 -0
  209. package/workflows/system/README.md +412 -0
  210. package/workflows/system/challenger.yaml +175 -0
  211. package/workflows/system/scout.yaml +164 -0
  212. package/workflows/system/verifier.yaml +133 -0
  213. package/workflows/ultra-creative-brainstorm.yaml +318 -0
  214. package/workflows/ux-research-flow.yaml +92 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * Mem0 Memory Provider
3
+ * Integration with Mem0 for persistent, semantic, and graph-based memory
4
+ */
5
+ import { BaseMemoryProvider } from '../memory-interface.js';
6
+ // Dynamic import for optional mem0ai package
7
+ let Memory;
8
+ /**
9
+ * Mem0 provider implementation
10
+ */
11
+ export class Mem0Provider extends BaseMemoryProvider {
12
+ constructor(config) {
13
+ super();
14
+ this.name = 'mem0';
15
+ this.isConnected = false;
16
+ this.config = {
17
+ apiKey: config.apiKey || process.env.MEM0_API_KEY,
18
+ endpoint: config.endpoint || process.env.MEM0_ENDPOINT || 'https://api.mem0.ai',
19
+ userId: config.userId || 'default',
20
+ enableVectorSearch: config.enableVectorSearch !== false,
21
+ enableGraphMemory: config.enableGraphMemory !== false,
22
+ maxTokens: config.maxTokens || 2000,
23
+ ...config
24
+ };
25
+ }
26
+ async doInitialize() {
27
+ try {
28
+ // Dynamically import mem0ai if available
29
+ try {
30
+ // @ts-ignore - Optional dependency
31
+ const mem0Module = await import('mem0ai');
32
+ Memory = mem0Module.Memory || mem0Module.default?.Memory;
33
+ }
34
+ catch (importError) {
35
+ // If mem0ai is not installed, try the OSS version
36
+ try {
37
+ // @ts-ignore - Optional dependency
38
+ const mem0OssModule = await import('mem0ai/oss');
39
+ Memory = mem0OssModule.Memory || mem0OssModule.default?.Memory;
40
+ }
41
+ catch (ossError) {
42
+ console.warn('Mem0 package not installed. Install with: npm install mem0ai');
43
+ throw new Error('Mem0 provider requires mem0ai package');
44
+ }
45
+ }
46
+ if (!this.config.apiKey) {
47
+ throw new Error('Mem0 API key is required');
48
+ }
49
+ // Initialize Mem0 client
50
+ this.memory = new Memory({
51
+ apiKey: this.config.apiKey,
52
+ endpoint: this.config.endpoint
53
+ });
54
+ this.isConnected = true;
55
+ console.error('Mem0 provider initialized successfully');
56
+ }
57
+ catch (error) {
58
+ console.error('Failed to initialize Mem0 provider:', error);
59
+ throw error;
60
+ }
61
+ }
62
+ async store(item) {
63
+ if (!this.isConnected) {
64
+ throw new Error('Mem0 provider not initialized');
65
+ }
66
+ try {
67
+ // Convert to Mem0 format
68
+ const messages = [
69
+ {
70
+ role: 'system',
71
+ content: `[${item.tier}] ${item.content}`
72
+ }
73
+ ];
74
+ const metadata = {
75
+ tier: item.tier,
76
+ projectId: item.projectId,
77
+ teamId: item.teamId,
78
+ timestamp: item.timestamp.toISOString(),
79
+ tags: item.tags || [],
80
+ ...item.metadata
81
+ };
82
+ // Add to Mem0
83
+ const result = await this.memory.add(messages, {
84
+ userId: item.userId || this.config.userId,
85
+ metadata
86
+ });
87
+ // Update metrics
88
+ this.metrics.totalItems++;
89
+ this.metrics.itemsByTier[item.tier]++;
90
+ // Return the ID from Mem0 response
91
+ return result.id || item.id;
92
+ }
93
+ catch (error) {
94
+ console.error('Failed to store in Mem0:', error);
95
+ throw error;
96
+ }
97
+ }
98
+ async retrieve(query) {
99
+ if (!this.isConnected) {
100
+ throw new Error('Mem0 provider not initialized');
101
+ }
102
+ try {
103
+ const startTime = Date.now();
104
+ // Build Mem0 query
105
+ const mem0Query = {
106
+ userId: query.userId || this.config.userId,
107
+ limit: query.limit || 10
108
+ };
109
+ // Add metadata filters
110
+ if (query.projectId) {
111
+ mem0Query.filters = { projectId: query.projectId };
112
+ }
113
+ if (query.tags && query.tags.length > 0) {
114
+ mem0Query.filters = { ...mem0Query.filters, tags: { $in: query.tags } };
115
+ }
116
+ let memories;
117
+ // Use semantic search if text is provided
118
+ if (query.text && this.config.enableVectorSearch) {
119
+ memories = await this.memory.search(query.text, mem0Query);
120
+ }
121
+ else {
122
+ // Get all memories with filters
123
+ memories = await this.memory.getAll(mem0Query);
124
+ }
125
+ // Convert Mem0 results to MemoryItem format
126
+ const items = this.convertMem0Results(memories);
127
+ // Update metrics
128
+ const retrievalTime = Date.now() - startTime;
129
+ this.metrics.avgRetrievalTime =
130
+ (this.metrics.avgRetrievalTime + retrievalTime) / 2;
131
+ return items;
132
+ }
133
+ catch (error) {
134
+ console.error('Failed to retrieve from Mem0:', error);
135
+ throw error;
136
+ }
137
+ }
138
+ async retrieveContext(query) {
139
+ if (!this.isConnected) {
140
+ throw new Error('Mem0 provider not initialized');
141
+ }
142
+ try {
143
+ // Mem0's built-in context handling
144
+ const memories = await this.retrieve(query);
145
+ // If graph memory is enabled, get related memories
146
+ if (this.config.enableGraphMemory && memories.length > 0) {
147
+ const relatedMemories = await this.getRelatedMemories(memories[0].id);
148
+ memories.push(...relatedMemories);
149
+ }
150
+ // Apply context window limit
151
+ let selectedMemories = memories;
152
+ if (query.contextWindow) {
153
+ selectedMemories = this.limitByTokens(memories, query.contextWindow);
154
+ }
155
+ // Calculate source distribution
156
+ const sources = {
157
+ session: 0,
158
+ working: 0,
159
+ project: 0,
160
+ team: 0,
161
+ global: 0
162
+ };
163
+ selectedMemories.forEach(item => {
164
+ sources[item.tier]++;
165
+ });
166
+ return {
167
+ items: selectedMemories,
168
+ synthesis: this.synthesizeItems(selectedMemories),
169
+ relevanceScore: this.calculateRelevanceScore(selectedMemories, query),
170
+ tokenCount: this.estimateTokenCount(selectedMemories),
171
+ sources
172
+ };
173
+ }
174
+ catch (error) {
175
+ console.error('Failed to retrieve context from Mem0:', error);
176
+ throw error;
177
+ }
178
+ }
179
+ async update(id, updates) {
180
+ if (!this.isConnected) {
181
+ throw new Error('Mem0 provider not initialized');
182
+ }
183
+ try {
184
+ // Mem0 doesn't have direct update, so we delete and re-add
185
+ await this.memory.delete(id);
186
+ // Get the original item first (would need to store locally or retrieve)
187
+ // For now, create new with updates
188
+ const newItem = {
189
+ id,
190
+ content: updates.content || '',
191
+ tier: updates.tier || 'session',
192
+ timestamp: updates.timestamp || new Date(),
193
+ ...updates
194
+ };
195
+ await this.store(newItem);
196
+ return true;
197
+ }
198
+ catch (error) {
199
+ console.error('Failed to update in Mem0:', error);
200
+ return false;
201
+ }
202
+ }
203
+ async delete(id) {
204
+ if (!this.isConnected) {
205
+ throw new Error('Mem0 provider not initialized');
206
+ }
207
+ try {
208
+ await this.memory.delete(id);
209
+ this.metrics.totalItems--;
210
+ return true;
211
+ }
212
+ catch (error) {
213
+ console.error('Failed to delete from Mem0:', error);
214
+ return false;
215
+ }
216
+ }
217
+ async semanticSearch(text, limit, threshold) {
218
+ if (!this.isConnected || !this.config.enableVectorSearch) {
219
+ return [];
220
+ }
221
+ try {
222
+ const results = await this.memory.search(text, {
223
+ userId: this.config.userId,
224
+ limit: limit || 10,
225
+ threshold: threshold || 0.7
226
+ });
227
+ return this.convertMem0Results(results);
228
+ }
229
+ catch (error) {
230
+ console.error('Failed to perform semantic search in Mem0:', error);
231
+ return [];
232
+ }
233
+ }
234
+ async getRelated(itemId, depth) {
235
+ if (!this.isConnected || !this.config.enableGraphMemory) {
236
+ return [];
237
+ }
238
+ return this.getRelatedMemories(itemId, depth);
239
+ }
240
+ async export() {
241
+ if (!this.isConnected) {
242
+ throw new Error('Mem0 provider not initialized');
243
+ }
244
+ try {
245
+ const allMemories = await this.memory.getAll({
246
+ userId: this.config.userId,
247
+ limit: 10000 // Get all memories
248
+ });
249
+ return this.convertMem0Results(allMemories);
250
+ }
251
+ catch (error) {
252
+ console.error('Failed to export from Mem0:', error);
253
+ throw error;
254
+ }
255
+ }
256
+ async import(items) {
257
+ if (!this.isConnected) {
258
+ throw new Error('Mem0 provider not initialized');
259
+ }
260
+ let imported = 0;
261
+ for (const item of items) {
262
+ try {
263
+ await this.store(item);
264
+ imported++;
265
+ }
266
+ catch (error) {
267
+ console.error(`Failed to import item ${item.id}:`, error);
268
+ }
269
+ }
270
+ return imported;
271
+ }
272
+ async isAvailable() {
273
+ if (!this.isConnected)
274
+ return false;
275
+ try {
276
+ // Try a simple operation to check connection
277
+ await this.memory.getAll({ userId: this.config.userId, limit: 1 });
278
+ return true;
279
+ }
280
+ catch (error) {
281
+ return false;
282
+ }
283
+ }
284
+ async close() {
285
+ this.isConnected = false;
286
+ this.memory = null;
287
+ await super.close();
288
+ }
289
+ /**
290
+ * Helper methods
291
+ */
292
+ convertMem0Results(mem0Data) {
293
+ if (!mem0Data)
294
+ return [];
295
+ const results = Array.isArray(mem0Data) ? mem0Data : [mem0Data];
296
+ return results.map(item => ({
297
+ id: item.id || this.generateId(),
298
+ content: item.memory || item.content || '',
299
+ tier: item.metadata?.tier || 'session',
300
+ userId: item.userId || this.config.userId,
301
+ projectId: item.metadata?.projectId,
302
+ teamId: item.metadata?.teamId,
303
+ timestamp: item.metadata?.timestamp ? new Date(item.metadata.timestamp) : new Date(),
304
+ metadata: item.metadata || {},
305
+ tags: item.metadata?.tags || [],
306
+ embedding: item.embedding,
307
+ relationships: item.relationships,
308
+ accessCount: item.metadata?.accessCount || 0,
309
+ lastAccessed: item.metadata?.lastAccessed ? new Date(item.metadata.lastAccessed) : new Date()
310
+ }));
311
+ }
312
+ async getRelatedMemories(itemId, depth = 1) {
313
+ try {
314
+ // This would use Mem0's graph memory features if available
315
+ // For now, return empty array
316
+ return [];
317
+ }
318
+ catch (error) {
319
+ console.error('Failed to get related memories:', error);
320
+ return [];
321
+ }
322
+ }
323
+ }
324
+ /**
325
+ * Factory function to create Mem0 provider
326
+ */
327
+ export async function createMem0Provider(config) {
328
+ try {
329
+ const provider = new Mem0Provider(config);
330
+ await provider.initialize();
331
+ return provider;
332
+ }
333
+ catch (error) {
334
+ console.error('Failed to create Mem0 provider:', error);
335
+ return null;
336
+ }
337
+ }