@ai.ntellect/core 0.7.7 → 1.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.
Files changed (111) hide show
  1. package/README.md +158 -81
  2. package/index.ts +462 -22
  3. package/package copy.json +21 -0
  4. package/package.json +9 -44
  5. package/tsconfig.json +108 -22
  6. package/types.ts +62 -0
  7. package/utils/executor.ts +42 -0
  8. package/.mocharc.json +0 -5
  9. package/dist/graph/controller.d.ts +0 -31
  10. package/dist/graph/controller.d.ts.map +0 -1
  11. package/dist/graph/controller.js +0 -71
  12. package/dist/graph/controller.js.map +0 -1
  13. package/dist/graph/event-manager.d.ts +0 -92
  14. package/dist/graph/event-manager.d.ts.map +0 -1
  15. package/dist/graph/event-manager.js +0 -244
  16. package/dist/graph/event-manager.js.map +0 -1
  17. package/dist/graph/index.d.ts +0 -159
  18. package/dist/graph/index.d.ts.map +0 -1
  19. package/dist/graph/index.js +0 -303
  20. package/dist/graph/index.js.map +0 -1
  21. package/dist/graph/logger.d.ts +0 -46
  22. package/dist/graph/logger.d.ts.map +0 -1
  23. package/dist/graph/logger.js +0 -69
  24. package/dist/graph/logger.js.map +0 -1
  25. package/dist/graph/node.d.ts +0 -92
  26. package/dist/graph/node.d.ts.map +0 -1
  27. package/dist/graph/node.js +0 -249
  28. package/dist/graph/node.js.map +0 -1
  29. package/dist/graph/observer.d.ts +0 -113
  30. package/dist/graph/observer.d.ts.map +0 -1
  31. package/dist/graph/observer.js +0 -198
  32. package/dist/graph/observer.js.map +0 -1
  33. package/dist/index.d.ts +0 -26
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/index.js +0 -42
  36. package/dist/index.js.map +0 -1
  37. package/dist/interfaces/index.d.ts +0 -447
  38. package/dist/interfaces/index.d.ts.map +0 -1
  39. package/dist/interfaces/index.js +0 -75
  40. package/dist/interfaces/index.js.map +0 -1
  41. package/dist/modules/agenda/adapters/node-cron/index.d.ts +0 -17
  42. package/dist/modules/agenda/adapters/node-cron/index.d.ts.map +0 -1
  43. package/dist/modules/agenda/adapters/node-cron/index.js +0 -30
  44. package/dist/modules/agenda/adapters/node-cron/index.js.map +0 -1
  45. package/dist/modules/agenda/index.d.ts +0 -63
  46. package/dist/modules/agenda/index.d.ts.map +0 -1
  47. package/dist/modules/agenda/index.js +0 -141
  48. package/dist/modules/agenda/index.js.map +0 -1
  49. package/dist/modules/embedding/adapters/ai/index.d.ts +0 -29
  50. package/dist/modules/embedding/adapters/ai/index.d.ts.map +0 -1
  51. package/dist/modules/embedding/adapters/ai/index.js +0 -58
  52. package/dist/modules/embedding/adapters/ai/index.js.map +0 -1
  53. package/dist/modules/embedding/index.d.ts +0 -36
  54. package/dist/modules/embedding/index.d.ts.map +0 -1
  55. package/dist/modules/embedding/index.js +0 -60
  56. package/dist/modules/embedding/index.js.map +0 -1
  57. package/dist/modules/memory/adapters/in-memory/index.d.ts +0 -120
  58. package/dist/modules/memory/adapters/in-memory/index.d.ts.map +0 -1
  59. package/dist/modules/memory/adapters/in-memory/index.js +0 -211
  60. package/dist/modules/memory/adapters/in-memory/index.js.map +0 -1
  61. package/dist/modules/memory/adapters/meilisearch/index.d.ts +0 -110
  62. package/dist/modules/memory/adapters/meilisearch/index.d.ts.map +0 -1
  63. package/dist/modules/memory/adapters/meilisearch/index.js +0 -321
  64. package/dist/modules/memory/adapters/meilisearch/index.js.map +0 -1
  65. package/dist/modules/memory/adapters/redis/index.d.ts +0 -82
  66. package/dist/modules/memory/adapters/redis/index.d.ts.map +0 -1
  67. package/dist/modules/memory/adapters/redis/index.js +0 -159
  68. package/dist/modules/memory/adapters/redis/index.js.map +0 -1
  69. package/dist/modules/memory/index.d.ts +0 -67
  70. package/dist/modules/memory/index.d.ts.map +0 -1
  71. package/dist/modules/memory/index.js +0 -104
  72. package/dist/modules/memory/index.js.map +0 -1
  73. package/dist/types/index.d.ts +0 -166
  74. package/dist/types/index.d.ts.map +0 -1
  75. package/dist/types/index.js +0 -3
  76. package/dist/types/index.js.map +0 -1
  77. package/dist/utils/generate-action-schema.d.ts +0 -5
  78. package/dist/utils/generate-action-schema.d.ts.map +0 -1
  79. package/dist/utils/generate-action-schema.js +0 -44
  80. package/dist/utils/generate-action-schema.js.map +0 -1
  81. package/dist/utils/header-builder.d.ts +0 -12
  82. package/dist/utils/header-builder.d.ts.map +0 -1
  83. package/dist/utils/header-builder.js +0 -35
  84. package/dist/utils/header-builder.js.map +0 -1
  85. package/graph/controller.ts +0 -74
  86. package/graph/event-manager.ts +0 -295
  87. package/graph/index.ts +0 -397
  88. package/graph/logger.ts +0 -70
  89. package/graph/node.ts +0 -305
  90. package/graph/observer.ts +0 -368
  91. package/interfaces/index.ts +0 -545
  92. package/modules/agenda/adapters/node-cron/index.ts +0 -25
  93. package/modules/agenda/index.ts +0 -146
  94. package/modules/embedding/adapters/ai/index.ts +0 -42
  95. package/modules/embedding/index.ts +0 -45
  96. package/modules/memory/adapters/in-memory/index.ts +0 -207
  97. package/modules/memory/adapters/meilisearch/index.ts +0 -361
  98. package/modules/memory/adapters/redis/index.ts +0 -164
  99. package/modules/memory/index.ts +0 -93
  100. package/test/graph/controller.test.ts +0 -187
  101. package/test/graph/event-manager.test.ts +0 -72
  102. package/test/graph/index.test.ts +0 -768
  103. package/test/graph/node.test.ts +0 -510
  104. package/test/graph/observer.test.ts +0 -398
  105. package/test/modules/agenda/node-cron.test.ts +0 -307
  106. package/test/modules/memory/adapters/in-memory.test.ts +0 -153
  107. package/test/modules/memory/adapters/meilisearch.test.ts +0 -287
  108. package/test/modules/memory/base.test.ts +0 -230
  109. package/types/index.ts +0 -184
  110. package/utils/generate-action-schema.ts +0 -46
  111. package/utils/header-builder.ts +0 -40
@@ -1,211 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.InMemoryAdapter = void 0;
13
- /**
14
- * @module InMemoryAdapter
15
- * @description In-memory implementation of the memory storage adapter.
16
- * Provides a simple Map-based storage solution
17
- * @implements {IMemoryAdapter}
18
- */
19
- class InMemoryAdapter {
20
- /**
21
- * Creates an instance of InMemoryAdapter
22
- */
23
- constructor() {
24
- this.storage = new Map();
25
- this.jobs = new Map();
26
- this.requests = new Map();
27
- }
28
- /**
29
- * Initializes storage for a room
30
- * @param {string} roomId - Room identifier
31
- * @returns {Promise<void>}
32
- */
33
- init(roomId) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- if (!this.storage.has(roomId)) {
36
- this.storage.set(roomId, []);
37
- }
38
- });
39
- }
40
- /**
41
- * Creates a new memory entry
42
- * @param {CreateMemoryInput & { embedding?: number[] }} input - Memory data with optional embedding
43
- * @returns {Promise<BaseMemoryType | undefined>} Created memory or existing memory if duplicate
44
- */
45
- createMemory(input) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- yield this.init(input.roomId);
48
- // Check if memory already exists
49
- const memories = this.storage.get(input.roomId) || [];
50
- const existingMemory = memories.find((m) => m.data === input.data);
51
- if (existingMemory) {
52
- return existingMemory;
53
- }
54
- // Create new memory
55
- const memory = {
56
- id: input.id || crypto.randomUUID(),
57
- data: input.data,
58
- embedding: input.embedding,
59
- roomId: input.roomId,
60
- createdAt: new Date(),
61
- };
62
- memories.push(memory);
63
- this.storage.set(input.roomId, memories);
64
- return memory;
65
- });
66
- }
67
- /**
68
- * Retrieves a memory by ID and room ID
69
- * @param {string} id - Memory identifier
70
- * @param {string} roomId - Room identifier
71
- * @returns {Promise<BaseMemoryType | null>} Memory entry or null if not found
72
- */
73
- getMemoryById(id, roomId) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const memories = this.storage.get(roomId) || [];
76
- return memories.find((m) => m.id === id) || null;
77
- });
78
- }
79
- /**
80
- * Searches for memories based on query and options
81
- * @param {string} query - Search query
82
- * @param {Object} options - Search options
83
- * @param {string} options.roomId - Room identifier
84
- * @param {number} [options.limit] - Maximum number of results
85
- * @returns {Promise<BaseMemoryType[]>} Array of matching memories
86
- */
87
- getMemoryByIndex(query, options) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const memories = this.storage.get(options.roomId) || [];
90
- const filtered = memories.filter((m) => m.data.includes(query));
91
- return filtered.slice(0, options.limit || filtered.length);
92
- });
93
- }
94
- /**
95
- * Retrieves all memories for a room
96
- * @param {string} roomId - Room identifier
97
- * @returns {Promise<BaseMemoryType[]>} Array of all memories
98
- */
99
- getAllMemories(roomId) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- return this.storage.get(roomId) || [];
102
- });
103
- }
104
- /**
105
- * Deletes a specific memory
106
- * @param {string} id - Memory identifier
107
- * @param {string} roomId - Room identifier
108
- * @returns {Promise<void>}
109
- */
110
- clearMemoryById(id, roomId) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- const memories = this.storage.get(roomId) || [];
113
- const filtered = memories.filter((m) => m.id !== id);
114
- this.storage.set(roomId, filtered);
115
- });
116
- }
117
- /**
118
- * Clears all memories across all rooms
119
- * @returns {Promise<void>}
120
- */
121
- clearAllMemories() {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- this.storage.clear();
124
- this.jobs.clear();
125
- this.requests.clear();
126
- });
127
- }
128
- /**
129
- * Saves a job to the internal storage
130
- * @param {string} id - Job identifier
131
- * @param {ICronJob} job - Job data
132
- * @returns {Promise<void>}
133
- */
134
- saveJob(id, job) {
135
- return __awaiter(this, void 0, void 0, function* () {
136
- this.jobs.set(id, job);
137
- });
138
- }
139
- /**
140
- * Saves a request to the internal storage
141
- * @param {string} id - Request identifier
142
- * @param {ScheduledRequest} request - Request data
143
- * @returns {Promise<void>}
144
- */
145
- saveRequest(id, request) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- this.requests.set(id, request);
148
- });
149
- }
150
- /**
151
- * Retrieves a job by ID
152
- * @param {string} id - Job identifier
153
- * @returns {Promise<ICronJob | undefined>} Job data or undefined if not found
154
- */
155
- getJob(id) {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- return this.jobs.get(id);
158
- });
159
- }
160
- /**
161
- * Retrieves a request by ID
162
- * @param {string} id - Request identifier
163
- * @returns {Promise<ScheduledRequest | undefined>} Request data or undefined if not found
164
- */
165
- getRequest(id) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- return this.requests.get(id);
168
- });
169
- }
170
- /**
171
- * Deletes a job by ID
172
- * @param {string} id - Job identifier
173
- * @returns {Promise<void>}
174
- */
175
- deleteJob(id) {
176
- return __awaiter(this, void 0, void 0, function* () {
177
- this.jobs.delete(id);
178
- });
179
- }
180
- /**
181
- * Deletes a request by ID
182
- * @param {string} id - Request identifier
183
- * @returns {Promise<void>}
184
- */
185
- deleteRequest(id) {
186
- return __awaiter(this, void 0, void 0, function* () {
187
- this.requests.delete(id);
188
- });
189
- }
190
- /**
191
- * Retrieves all requests
192
- * @returns {Promise<ScheduledRequest[]>} Array of all requests
193
- */
194
- getAllRequests() {
195
- return __awaiter(this, void 0, void 0, function* () {
196
- return Array.from(this.requests.values());
197
- });
198
- }
199
- /**
200
- * Clears all jobs and requests
201
- * @returns {Promise<void>}
202
- */
203
- clear() {
204
- return __awaiter(this, void 0, void 0, function* () {
205
- this.jobs.clear();
206
- this.requests.clear();
207
- });
208
- }
209
- }
210
- exports.InMemoryAdapter = InMemoryAdapter;
211
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/memory/adapters/in-memory/index.ts"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- import { IMemoryAdapter } from "../../../../interfaces";
2
- import { BaseMemoryType, CreateMemoryInput, MeilisearchConfig } from "../../../../types";
3
- /**
4
- * @module MeilisearchAdapter
5
- * @description Adapter implementation for Meilisearch as a memory storage solution.
6
- * Provides integration with Meilisearch for storing and retrieving memory entries.
7
- * @implements {IMemoryAdapter}
8
- */
9
- export declare class MeilisearchAdapter implements IMemoryAdapter {
10
- private readonly config;
11
- /**
12
- * Creates an instance of MeilisearchAdapter
13
- * @param {MeilisearchConfig} config - Configuration for Meilisearch connection
14
- */
15
- constructor(config: MeilisearchConfig);
16
- /**
17
- * Makes an HTTP request to the Meilisearch API
18
- * @private
19
- * @param {string} path - API endpoint path
20
- * @param {RequestInit} [options] - Fetch request options
21
- * @returns {Promise<any>} Response data
22
- * @throws {Error} If the request fails
23
- */
24
- private makeRequest;
25
- /**
26
- * Initializes a storage index for a room
27
- * @private
28
- * @param {string} roomId - Room identifier to create index for
29
- * @returns {Promise<void>}
30
- */
31
- private initializeStorage;
32
- /**
33
- * Adds documents to the Meilisearch index
34
- * @private
35
- * @param {BaseMemoryType[]} documents - Documents to add
36
- * @param {string} roomId - Room identifier
37
- * @returns {Promise<void>}
38
- */
39
- private addDocuments;
40
- /**
41
- * Deletes a storage index for a room
42
- * @private
43
- * @param {string} roomId - Room identifier
44
- * @returns {Promise<void>}
45
- */
46
- private deleteStorage;
47
- /**
48
- * Initializes the adapter for a specific room
49
- * @param {string} roomId - Room identifier
50
- * @returns {Promise<void>}
51
- */
52
- init(roomId: string): Promise<void>;
53
- /**
54
- * Performs a search in the Meilisearch index
55
- * @private
56
- * @param {string} query - Search query
57
- * @param {string} roomId - Room identifier
58
- * @param {Object} [options] - Search options
59
- * @param {number} [options.limit] - Maximum number of results
60
- * @param {number} [options.threshold] - Minimum score threshold
61
- * @returns {Promise<SearchResult[]>} Search results
62
- */
63
- private search;
64
- /**
65
- * Creates a new memory entry
66
- * @param {CreateMemoryInput & { embedding?: number[] }} input - Memory data with optional embedding
67
- * @returns {Promise<BaseMemoryType | undefined>} Created memory or undefined
68
- */
69
- createMemory(input: CreateMemoryInput & {
70
- embedding?: number[];
71
- }): Promise<BaseMemoryType | undefined>;
72
- /**
73
- * Retrieves a memory by ID and room ID
74
- * @param {string} id - Memory identifier
75
- * @param {string} roomId - Room identifier
76
- * @returns {Promise<BaseMemoryType | null>} Memory entry or null if not found
77
- */
78
- getMemoryById(id: string, roomId: string): Promise<BaseMemoryType | null>;
79
- /**
80
- * Searches for memories based on query and options
81
- * @param {string} query - Search query
82
- * @param {Object} options - Search options
83
- * @param {string} options.roomId - Room identifier
84
- * @param {number} [options.limit] - Maximum number of results
85
- * @returns {Promise<BaseMemoryType[]>} Array of matching memories
86
- */
87
- getMemoryByIndex(query: string, options: {
88
- roomId: string;
89
- limit?: number;
90
- }): Promise<BaseMemoryType[]>;
91
- /**
92
- * Retrieves all memories for a room
93
- * @param {string} roomId - Room identifier
94
- * @returns {Promise<BaseMemoryType[]>} Array of all memories
95
- */
96
- getAllMemories(roomId: string): Promise<BaseMemoryType[]>;
97
- /**
98
- * Deletes a specific memory
99
- * @param {string} id - Memory identifier
100
- * @param {string} roomId - Room identifier
101
- * @returns {Promise<void>}
102
- */
103
- clearMemoryById(id: string, roomId: string): Promise<void>;
104
- /**
105
- * Clears all memories across all rooms
106
- * @returns {Promise<void>}
107
- */
108
- clearAllMemories(): Promise<void>;
109
- }
110
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../modules/memory/adapters/meilisearch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IAK3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC;;;OAGG;gBAC0B,MAAM,EAAE,iBAAiB;IAEtD;;;;;;;OAOG;YACW,WAAW;IA8BzB;;;;;OAKG;YACW,iBAAiB;IA6C/B;;;;;;OAMG;YACW,YAAY;IAU1B;;;;;OAKG;YACW,aAAa;IAM3B;;;;OAIG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC;;;;;;;;;OASG;YACW,MAAM;IA6BpB;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,iBAAiB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAClD,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAyBtC;;;;;OAKG;IACG,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAmBjC;;;;;;;OAOG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;IAe5B;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAe/D;;;;;OAKG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBhE;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
@@ -1,321 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MeilisearchAdapter = void 0;
13
- /**
14
- * @module MeilisearchAdapter
15
- * @description Adapter implementation for Meilisearch as a memory storage solution.
16
- * Provides integration with Meilisearch for storing and retrieving memory entries.
17
- * @implements {IMemoryAdapter}
18
- */
19
- class MeilisearchAdapter {
20
- /**
21
- * Creates an instance of MeilisearchAdapter
22
- * @param {MeilisearchConfig} config - Configuration for Meilisearch connection
23
- */
24
- constructor(config) {
25
- this.config = config;
26
- }
27
- /**
28
- * Makes an HTTP request to the Meilisearch API
29
- * @private
30
- * @param {string} path - API endpoint path
31
- * @param {RequestInit} [options] - Fetch request options
32
- * @returns {Promise<any>} Response data
33
- * @throws {Error} If the request fails
34
- */
35
- makeRequest(path, options) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- try {
38
- const url = `${this.config.host}${path}`;
39
- const response = yield fetch(url, Object.assign(Object.assign({}, options), { headers: Object.assign({ "Content-Type": "application/json", Authorization: `Bearer ${this.config.apiKey}` }, options === null || options === void 0 ? void 0 : options.headers) }));
40
- if (!response.ok) {
41
- const errorBody = yield response.text();
42
- throw new Error(`HTTP ${response.status}: ${errorBody || response.statusText}`);
43
- }
44
- return response.json();
45
- }
46
- catch (error) {
47
- if (error instanceof TypeError && error.message === "Failed to fetch") {
48
- throw new Error(`Network error: Unable to connect to Meilisearch at ${this.config.host}`);
49
- }
50
- throw error;
51
- }
52
- });
53
- }
54
- /**
55
- * Initializes a storage index for a room
56
- * @private
57
- * @param {string} roomId - Room identifier to create index for
58
- * @returns {Promise<void>}
59
- */
60
- initializeStorage(roomId) {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- try {
63
- let indexExists = false;
64
- try {
65
- yield this.makeRequest(`/indexes/${roomId}`);
66
- indexExists = true;
67
- }
68
- catch (error) {
69
- if (!indexExists) {
70
- const createResponse = yield this.makeRequest("/indexes", {
71
- method: "POST",
72
- body: JSON.stringify({
73
- uid: roomId,
74
- primaryKey: "id",
75
- }),
76
- });
77
- console.log("✅ Index creation response:", createResponse);
78
- }
79
- }
80
- // Appliquer les settings seulement si l'index existe bien
81
- yield this.makeRequest(`/indexes/${roomId}/settings`, {
82
- method: "PATCH",
83
- body: JSON.stringify({
84
- searchableAttributes: this.config.searchableAttributes || [
85
- "data",
86
- "query",
87
- ],
88
- sortableAttributes: this.config.sortableAttributes || ["createdAt"],
89
- }),
90
- });
91
- }
92
- catch (error) {
93
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
94
- console.error(`❌ Error initializing storage for index ${roomId}:`, errorMessage);
95
- throw new Error(`Failed to initialize storage for index ${roomId}: ${errorMessage}`);
96
- }
97
- });
98
- }
99
- /**
100
- * Adds documents to the Meilisearch index
101
- * @private
102
- * @param {BaseMemoryType[]} documents - Documents to add
103
- * @param {string} roomId - Room identifier
104
- * @returns {Promise<void>}
105
- */
106
- addDocuments(documents, roomId) {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- yield this.makeRequest(`/indexes/${roomId}/documents`, {
109
- method: "POST",
110
- body: JSON.stringify(documents),
111
- });
112
- });
113
- }
114
- /**
115
- * Deletes a storage index for a room
116
- * @private
117
- * @param {string} roomId - Room identifier
118
- * @returns {Promise<void>}
119
- */
120
- deleteStorage(roomId) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- yield this.makeRequest(`/indexes/${roomId}`, {
123
- method: "DELETE",
124
- });
125
- });
126
- }
127
- /**
128
- * Initializes the adapter for a specific room
129
- * @param {string} roomId - Room identifier
130
- * @returns {Promise<void>}
131
- */
132
- init(roomId) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- try {
135
- // Initialize the default "memories" index
136
- yield this.initializeStorage(roomId);
137
- }
138
- catch (error) {
139
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
140
- console.error("Failed to initialize default index:", errorMessage);
141
- throw new Error(`Failed to initialize default index: ${errorMessage}`);
142
- }
143
- });
144
- }
145
- /**
146
- * Performs a search in the Meilisearch index
147
- * @private
148
- * @param {string} query - Search query
149
- * @param {string} roomId - Room identifier
150
- * @param {Object} [options] - Search options
151
- * @param {number} [options.limit] - Maximum number of results
152
- * @param {number} [options.threshold] - Minimum score threshold
153
- * @returns {Promise<SearchResult[]>} Search results
154
- */
155
- search(query, roomId, options) {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- const searchResults = yield this.makeRequest(`/indexes/${roomId}/search`, {
158
- method: "POST",
159
- body: JSON.stringify({
160
- q: query,
161
- limit: (options === null || options === void 0 ? void 0 : options.limit) || 10,
162
- }),
163
- });
164
- if (!searchResults.hits) {
165
- return [];
166
- }
167
- return searchResults.hits.map((hit) => ({
168
- document: {
169
- id: hit.id,
170
- data: hit.data,
171
- embedding: hit.embedding,
172
- roomId: hit.roomId,
173
- createdAt: hit.createdAt,
174
- },
175
- score: hit._score || 0,
176
- }));
177
- });
178
- }
179
- /**
180
- * Creates a new memory entry
181
- * @param {CreateMemoryInput & { embedding?: number[] }} input - Memory data with optional embedding
182
- * @returns {Promise<BaseMemoryType | undefined>} Created memory or undefined
183
- */
184
- createMemory(input) {
185
- return __awaiter(this, void 0, void 0, function* () {
186
- // Initialize storage for this roomId if needed
187
- yield this.initializeStorage(input.roomId);
188
- // Check if the memory already exists
189
- const existingMemory = yield this.search(input.data, input.roomId, {
190
- limit: 1,
191
- });
192
- if (existingMemory.length > 0) {
193
- return existingMemory[0].document;
194
- }
195
- // If not found, create new memory
196
- const memory = {
197
- id: input.id || crypto.randomUUID(),
198
- data: input.data,
199
- embedding: input.embedding,
200
- roomId: input.roomId,
201
- createdAt: new Date(),
202
- };
203
- yield this.addDocuments([memory], input.roomId);
204
- return memory;
205
- });
206
- }
207
- /**
208
- * Retrieves a memory by ID and room ID
209
- * @param {string} id - Memory identifier
210
- * @param {string} roomId - Room identifier
211
- * @returns {Promise<BaseMemoryType | null>} Memory entry or null if not found
212
- */
213
- getMemoryById(id, roomId) {
214
- return __awaiter(this, void 0, void 0, function* () {
215
- try {
216
- const result = yield this.makeRequest(`/indexes/${roomId}/documents/${id}`);
217
- return result
218
- ? {
219
- id: result.id,
220
- data: result.data,
221
- embedding: result.embedding,
222
- roomId: result.roomId,
223
- createdAt: result.createdAt,
224
- }
225
- : null;
226
- }
227
- catch (_a) {
228
- return null;
229
- }
230
- });
231
- }
232
- /**
233
- * Searches for memories based on query and options
234
- * @param {string} query - Search query
235
- * @param {Object} options - Search options
236
- * @param {string} options.roomId - Room identifier
237
- * @param {number} [options.limit] - Maximum number of results
238
- * @returns {Promise<BaseMemoryType[]>} Array of matching memories
239
- */
240
- getMemoryByIndex(query, options) {
241
- return __awaiter(this, void 0, void 0, function* () {
242
- const results = yield this.search(query, options.roomId, {
243
- limit: options.limit,
244
- });
245
- return results
246
- .filter((result) => result.document.roomId === options.roomId)
247
- .map((result) => ({
248
- id: result.document.id,
249
- data: result.document.data,
250
- embedding: result.document.embedding,
251
- roomId: result.document.roomId,
252
- createdAt: result.document.createdAt,
253
- }));
254
- });
255
- }
256
- /**
257
- * Retrieves all memories for a room
258
- * @param {string} roomId - Room identifier
259
- * @returns {Promise<BaseMemoryType[]>} Array of all memories
260
- */
261
- getAllMemories(roomId) {
262
- return __awaiter(this, void 0, void 0, function* () {
263
- const results = yield this.makeRequest(`/indexes/${roomId}/documents`);
264
- if (results.total === 0) {
265
- return [];
266
- }
267
- return results.results.map((doc) => ({
268
- id: doc.id,
269
- data: doc.data,
270
- embedding: doc.embedding,
271
- roomId: doc.roomId,
272
- createdAt: doc.createdAt,
273
- }));
274
- });
275
- }
276
- /**
277
- * Deletes a specific memory
278
- * @param {string} id - Memory identifier
279
- * @param {string} roomId - Room identifier
280
- * @returns {Promise<void>}
281
- */
282
- clearMemoryById(id, roomId) {
283
- return __awaiter(this, void 0, void 0, function* () {
284
- try {
285
- // Ensure the index exists before attempting to delete
286
- yield this.initializeStorage(roomId);
287
- yield this.makeRequest(`/indexes/${roomId}/documents/${id}`, {
288
- method: "DELETE",
289
- });
290
- }
291
- catch (error) {
292
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
293
- console.error(`Error clearing memory ${id} from index ${roomId}:`, errorMessage);
294
- throw new Error(`Failed to clear memory ${id} from index ${roomId}: ${errorMessage}`);
295
- }
296
- });
297
- }
298
- /**
299
- * Clears all memories across all rooms
300
- * @returns {Promise<void>}
301
- */
302
- clearAllMemories() {
303
- return __awaiter(this, void 0, void 0, function* () {
304
- try {
305
- // Get all indexes
306
- const response = yield this.makeRequest("/indexes");
307
- const indexes = response.results || [];
308
- // Delete each index
309
- for (const index of indexes) {
310
- yield this.deleteStorage(index.uid);
311
- }
312
- }
313
- catch (error) {
314
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
315
- throw new Error(`Failed to clear all memories: ${errorMessage}`);
316
- }
317
- });
318
- }
319
- }
320
- exports.MeilisearchAdapter = MeilisearchAdapter;
321
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/memory/adapters/meilisearch/index.ts"],"names":[],"mappings":"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"}