@ai.ntellect/core 0.7.13 → 0.8.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 (104) hide show
  1. package/dist/graph/controller.d.ts +3 -3
  2. package/dist/graph/controller.d.ts.map +1 -1
  3. package/dist/graph/controller.js +14 -5
  4. package/dist/graph/controller.js.map +1 -1
  5. package/dist/graph/event-manager.d.ts +9 -1
  6. package/dist/graph/event-manager.d.ts.map +1 -1
  7. package/dist/graph/event-manager.js +115 -37
  8. package/dist/graph/event-manager.js.map +1 -1
  9. package/dist/graph/index.d.ts +21 -2
  10. package/dist/graph/index.d.ts.map +1 -1
  11. package/dist/graph/index.js +60 -11
  12. package/dist/graph/index.js.map +1 -1
  13. package/dist/graph/node.d.ts +0 -24
  14. package/dist/graph/node.d.ts.map +1 -1
  15. package/dist/graph/node.js +2 -71
  16. package/dist/graph/node.js.map +1 -1
  17. package/dist/graph/observer.d.ts +6 -87
  18. package/dist/graph/observer.d.ts.map +1 -1
  19. package/dist/graph/observer.js +3 -116
  20. package/dist/graph/observer.js.map +1 -1
  21. package/dist/index.d.ts +1 -6
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -6
  24. package/dist/index.js.map +1 -1
  25. package/dist/interfaces/index.d.ts +10 -1
  26. package/dist/interfaces/index.d.ts.map +1 -1
  27. package/dist/interfaces/index.js.map +1 -1
  28. package/dist/modules/agent/agent.d.ts +35 -0
  29. package/dist/modules/agent/agent.d.ts.map +1 -0
  30. package/dist/modules/agent/agent.js +106 -0
  31. package/dist/modules/agent/agent.js.map +1 -0
  32. package/dist/modules/agent/base/executor.d.ts +51 -0
  33. package/dist/modules/agent/base/executor.d.ts.map +1 -0
  34. package/dist/modules/agent/base/executor.js +66 -0
  35. package/dist/modules/agent/base/executor.js.map +1 -0
  36. package/dist/modules/agent/base/index.d.ts +30 -0
  37. package/dist/modules/agent/base/index.d.ts.map +1 -0
  38. package/dist/modules/agent/base/index.js +100 -0
  39. package/dist/modules/agent/base/index.js.map +1 -0
  40. package/dist/modules/agent/generic-assistant.d.ts +20 -0
  41. package/dist/modules/agent/generic-assistant.d.ts.map +1 -0
  42. package/dist/modules/agent/generic-assistant.js +89 -0
  43. package/dist/modules/agent/generic-assistant.js.map +1 -0
  44. package/dist/modules/agent/generic-executor.d.ts +57 -0
  45. package/dist/modules/agent/generic-executor.d.ts.map +1 -0
  46. package/dist/modules/agent/generic-executor.js +200 -0
  47. package/dist/modules/agent/generic-executor.js.map +1 -0
  48. package/dist/modules/agent/llm-factory.d.ts +19 -0
  49. package/dist/modules/agent/llm-factory.d.ts.map +1 -0
  50. package/dist/modules/agent/llm-factory.js +56 -0
  51. package/dist/modules/agent/llm-factory.js.map +1 -0
  52. package/dist/modules/agent/prompt-builder.d.ts +35 -0
  53. package/dist/modules/agent/prompt-builder.d.ts.map +1 -0
  54. package/dist/modules/agent/prompt-builder.js +76 -0
  55. package/dist/modules/agent/prompt-builder.js.map +1 -0
  56. package/dist/modules/memory/adapters/in-memory/index.d.ts.map +1 -1
  57. package/dist/modules/memory/adapters/in-memory/index.js +4 -3
  58. package/dist/modules/memory/adapters/in-memory/index.js.map +1 -1
  59. package/dist/modules/memory/adapters/meilisearch/index.d.ts.map +1 -1
  60. package/dist/modules/memory/adapters/meilisearch/index.js +7 -4
  61. package/dist/modules/memory/adapters/meilisearch/index.js.map +1 -1
  62. package/dist/modules/memory/adapters/redis/index.d.ts.map +1 -1
  63. package/dist/modules/memory/adapters/redis/index.js +2 -1
  64. package/dist/modules/memory/adapters/redis/index.js.map +1 -1
  65. package/dist/modules/nlp/engine.d.ts +126 -0
  66. package/dist/modules/nlp/engine.d.ts.map +1 -0
  67. package/dist/modules/nlp/engine.js +300 -0
  68. package/dist/modules/nlp/engine.js.map +1 -0
  69. package/dist/modules/nlp/index.d.ts +27 -0
  70. package/dist/modules/nlp/index.d.ts.map +1 -0
  71. package/dist/modules/nlp/index.js +56 -0
  72. package/dist/modules/nlp/index.js.map +1 -0
  73. package/dist/types/agent.d.ts +233 -0
  74. package/dist/types/agent.d.ts.map +1 -0
  75. package/dist/types/agent.js +29 -0
  76. package/dist/types/agent.js.map +1 -0
  77. package/dist/types/index.d.ts +81 -18
  78. package/dist/types/index.d.ts.map +1 -1
  79. package/dist/utils/generate-action-schema.d.ts.map +1 -1
  80. package/graph/controller.ts +21 -10
  81. package/graph/event-manager.ts +135 -42
  82. package/graph/index.ts +58 -5
  83. package/graph/node.ts +2 -104
  84. package/graph/observer.ts +9 -215
  85. package/index.ts +2 -7
  86. package/interfaces/index.ts +12 -0
  87. package/modules/agent/agent.ts +108 -0
  88. package/modules/agent/base/executor.ts +100 -0
  89. package/modules/agent/base/index.ts +99 -0
  90. package/modules/agent/generic-assistant.ts +90 -0
  91. package/modules/agent/generic-executor.ts +259 -0
  92. package/modules/agent/llm-factory.ts +47 -0
  93. package/modules/agent/prompt-builder.ts +78 -0
  94. package/modules/memory/adapters/in-memory/index.ts +4 -3
  95. package/modules/memory/adapters/meilisearch/index.ts +7 -4
  96. package/modules/memory/adapters/redis/index.ts +2 -1
  97. package/modules/nlp/engine.ts +325 -0
  98. package/modules/nlp/index.ts +45 -0
  99. package/package.json +5 -2
  100. package/test/graph/controller.test.ts +18 -14
  101. package/test/graph/index.test.ts +10 -8
  102. package/test/graph/node.test.ts +18 -14
  103. package/types/agent.ts +174 -0
  104. package/types/index.ts +84 -18
@@ -0,0 +1,126 @@
1
+ import { ActionHandler, NLPConfig } from "../../types";
2
+ /**
3
+ * NLP Engine for processing natural language commands
4
+ * @example
5
+ * const engine = await NLPEngine.create({
6
+ * corpus: require('./corpus.json'),
7
+ * responses: require('./responses.json'),
8
+ * entities: require('./entities.json')
9
+ * });
10
+ *
11
+ * engine.addAction('transferTokens', async (data) => {
12
+ * // Handle transfer logic
13
+ * });
14
+ *
15
+ * const response = await engine.process('transfer 5 ETH');
16
+ */
17
+ export declare class NLPEngine {
18
+ private manager;
19
+ private responses;
20
+ private intentHandlers;
21
+ constructor();
22
+ /**
23
+ * Creates and initializes a new NLP Engine
24
+ */
25
+ static create(config: NLPConfig): Promise<NLPEngine>;
26
+ /**
27
+ * Initializes the NLP engine with configuration
28
+ */
29
+ private init;
30
+ /**
31
+ * Registers entities for Named Entity Recognition (NER)
32
+ * @private
33
+ * @param {Record<string, any>} entities - Entity definitions
34
+ */
35
+ private registerEntities;
36
+ /**
37
+ * Adds an action handler for a specific intent
38
+ * @param {string} name - Intent name
39
+ * @param {ActionHandler} handler - Action handler function
40
+ */
41
+ addAction(name: string, handler: ActionHandler): void;
42
+ /**
43
+ * Creates and loads a pre-trained NLP Engine
44
+ */
45
+ static loadFromModel(modelPath: string, responses?: Record<string, any>): Promise<NLPEngine>;
46
+ /**
47
+ * Loads a pre-trained model and configures default actions
48
+ */
49
+ private loadModel;
50
+ /**
51
+ * Setup default actions to handle responses
52
+ */
53
+ private setupDefaultActions;
54
+ /**
55
+ * Execute a single action
56
+ */
57
+ private executeAction;
58
+ /**
59
+ * Processes natural language input text
60
+ * @param {string} input - Input text to process
61
+ * @returns {Promise<any>} Processing result with intent, entities and response
62
+ */
63
+ process(input: string): Promise<any>;
64
+ /**
65
+ * Trains the NLP model with current corpus
66
+ * @returns {Promise<void>}
67
+ */
68
+ train(): Promise<void>;
69
+ /**
70
+ * Exports the trained model
71
+ * @param {boolean} [minified=true] - Whether to minify the exported model
72
+ * @returns {string} Exported model as string
73
+ */
74
+ export(minified?: boolean): string;
75
+ /**
76
+ * Imports a previously trained model
77
+ * @param {string} data - Model data to import
78
+ */
79
+ import(data: string): void;
80
+ /**
81
+ * Saves the current model to a file
82
+ * @param {string} [path='./model.json'] - Path to save the model
83
+ * @returns {Promise<void>}
84
+ */
85
+ saveModel(path?: string): Promise<void>;
86
+ /**
87
+ * Formats response using template and context
88
+ */
89
+ private formatResponse;
90
+ /**
91
+ * Gets entity value from NLP result
92
+ * @param {any} data - NLP processing result
93
+ * @param {string} entityName - Name of the entity to extract
94
+ * @returns {string|undefined} Entity value if found
95
+ */
96
+ getEntity(data: any, entityName: string): string | undefined;
97
+ /**
98
+ * Gets entity option from NLP result
99
+ * @param {any} data - NLP processing result
100
+ * @param {string} entityName - Name of the entity to extract
101
+ * @returns {string|undefined} Entity option if found
102
+ */
103
+ getEntityOption(data: any, entityName: string): string | undefined;
104
+ /**
105
+ * Gets recipient entity from NLP result
106
+ * @param {any} data - NLP processing result
107
+ * @returns {string|undefined} Recipient value if found
108
+ */
109
+ getRecipient(data: any): string | undefined;
110
+ /**
111
+ * Gets current responses configuration
112
+ * @returns {Record<string, any>} Current responses
113
+ */
114
+ getResponses(): Record<string, any>;
115
+ /**
116
+ * Gets current corpus configuration
117
+ * @returns {any} Current corpus
118
+ */
119
+ getCorpus(): any;
120
+ /**
121
+ * Gets current entities configuration
122
+ * @returns {any} Current entities configuration
123
+ */
124
+ getEntities(): any;
125
+ }
126
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../modules/nlp/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIvD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,cAAc,CAAqC;;IAM3D;;OAEG;WACU,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAM1D;;OAEG;YACW,IAAI;IAiClB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIrD;;OAEG;WACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,OAAO,CAAC,SAAS,CAAC;IAOrB;;OAEG;YACW,SAAS;IAkBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;YACW,aAAa;IAS3B;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM;IAmB3B;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;OAIG;IACI,MAAM,CAAC,QAAQ,UAAO,GAAG,MAAM;IAItC;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;OAIG;IACU,SAAS,CAAC,IAAI,SAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK5D;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKlE;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAK3C;;;OAGG;IACI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI1C;;;OAGG;IACI,SAAS,IAAI,GAAG;IAIvB;;;OAGG;IACI,WAAW,IAAI,GAAG;CAG1B"}
@@ -0,0 +1,300 @@
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.NLPEngine = void 0;
13
+ const { dockStart } = require("@nlpjs/basic");
14
+ /**
15
+ * NLP Engine for processing natural language commands
16
+ * @example
17
+ * const engine = await NLPEngine.create({
18
+ * corpus: require('./corpus.json'),
19
+ * responses: require('./responses.json'),
20
+ * entities: require('./entities.json')
21
+ * });
22
+ *
23
+ * engine.addAction('transferTokens', async (data) => {
24
+ * // Handle transfer logic
25
+ * });
26
+ *
27
+ * const response = await engine.process('transfer 5 ETH');
28
+ */
29
+ class NLPEngine {
30
+ constructor() {
31
+ this.intentHandlers = {};
32
+ this.responses = {};
33
+ }
34
+ /**
35
+ * Creates and initializes a new NLP Engine
36
+ */
37
+ static create(config) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const engine = new NLPEngine();
40
+ yield engine.init(config);
41
+ return engine;
42
+ });
43
+ }
44
+ /**
45
+ * Initializes the NLP engine with configuration
46
+ */
47
+ init(_a) {
48
+ return __awaiter(this, arguments, void 0, function* ({ corpus, responses, entities, language = "en", threshold = 0.5, }) {
49
+ const dock = yield dockStart({
50
+ settings: {
51
+ nlp: {
52
+ forceNER: true,
53
+ languages: [language],
54
+ corpora: corpus ? [corpus] : undefined,
55
+ },
56
+ ner: { threshold },
57
+ },
58
+ use: ["Basic", "LangEn"],
59
+ });
60
+ this.manager = dock.get("nlp");
61
+ this.responses = responses || {};
62
+ if (corpus) {
63
+ yield this.manager.addCorpus(corpus);
64
+ }
65
+ if (entities) {
66
+ this.registerEntities(entities);
67
+ }
68
+ yield this.manager.train();
69
+ });
70
+ }
71
+ /**
72
+ * Registers entities for Named Entity Recognition (NER)
73
+ * @private
74
+ * @param {Record<string, any>} entities - Entity definitions
75
+ */
76
+ registerEntities(entities) {
77
+ Object.entries(entities).forEach(([name, data]) => {
78
+ if (data.options) {
79
+ Object.entries(data.options).forEach(([option, texts]) => {
80
+ this.manager.addNerRuleOptionTexts("en", name, option, texts);
81
+ });
82
+ }
83
+ else if (data.regex) {
84
+ this.manager.addNerRegexRule("en", name, data.regex);
85
+ }
86
+ else if (data.trim) {
87
+ data.trim.forEach((trimRule) => {
88
+ if (trimRule.position === "afterLast") {
89
+ trimRule.words.forEach((word) => {
90
+ this.manager.addNerAfterLastCondition("en", name, word);
91
+ });
92
+ }
93
+ else if (trimRule.position === "betweenLast") {
94
+ this.manager.addNerBetweenLastCondition("en", name, trimRule.leftWords, trimRule.rightWords);
95
+ }
96
+ });
97
+ }
98
+ });
99
+ }
100
+ /**
101
+ * Adds an action handler for a specific intent
102
+ * @param {string} name - Intent name
103
+ * @param {ActionHandler} handler - Action handler function
104
+ */
105
+ addAction(name, handler) {
106
+ this.intentHandlers[name] = handler;
107
+ }
108
+ /**
109
+ * Creates and loads a pre-trained NLP Engine
110
+ */
111
+ static loadFromModel(modelPath, responses) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ const engine = new NLPEngine();
114
+ engine.responses = responses || {};
115
+ yield engine.loadModel(modelPath);
116
+ return engine;
117
+ });
118
+ }
119
+ /**
120
+ * Loads a pre-trained model and configures default actions
121
+ */
122
+ loadModel(modelPath) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const dock = yield dockStart({
125
+ settings: {
126
+ nlp: {
127
+ forceNER: true,
128
+ languages: ["en"],
129
+ },
130
+ },
131
+ use: ["Basic", "LangEn"],
132
+ });
133
+ this.manager = dock.get("nlp");
134
+ yield this.manager.load(modelPath);
135
+ // Configure default actions handler
136
+ this.setupDefaultActions();
137
+ });
138
+ }
139
+ /**
140
+ * Setup default actions to handle responses
141
+ */
142
+ setupDefaultActions() {
143
+ this.manager.onIntent = (data) => __awaiter(this, void 0, void 0, function* () {
144
+ var _a;
145
+ // Execute registered action if exists
146
+ if (((_a = data.actions) === null || _a === void 0 ? void 0 : _a.length) > 0) {
147
+ for (const actionData of data.actions) {
148
+ const result = yield this.executeAction(actionData, data);
149
+ if (result) {
150
+ data.actionResult = result;
151
+ }
152
+ }
153
+ }
154
+ // Format response if answer exists
155
+ if (data.answer && this.responses[data.answer]) {
156
+ data.jsonResponse = this.formatResponse(this.responses[data.answer], data.actionResult || {});
157
+ }
158
+ return data;
159
+ });
160
+ }
161
+ /**
162
+ * Execute a single action
163
+ */
164
+ executeAction(actionData, context) {
165
+ return __awaiter(this, void 0, void 0, function* () {
166
+ const { action, parameters } = actionData;
167
+ const handler = this.manager.actions[action];
168
+ if (handler) {
169
+ return handler(context);
170
+ }
171
+ return null;
172
+ });
173
+ }
174
+ /**
175
+ * Processes natural language input text
176
+ * @param {string} input - Input text to process
177
+ * @returns {Promise<any>} Processing result with intent, entities and response
178
+ */
179
+ process(input) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ const result = yield this.manager.process("en", input);
182
+ console.log("NLP Engine Result:", result);
183
+ // Si une action est définie, exécuter le handler
184
+ if (result.intent) {
185
+ const handler = this.intentHandlers[result.intent.split(".")[1]];
186
+ if (handler) {
187
+ const handlerResult = yield handler(result);
188
+ return Object.assign(Object.assign({}, result), handlerResult);
189
+ }
190
+ }
191
+ return result;
192
+ });
193
+ }
194
+ /**
195
+ * Trains the NLP model with current corpus
196
+ * @returns {Promise<void>}
197
+ */
198
+ train() {
199
+ return __awaiter(this, void 0, void 0, function* () {
200
+ yield this.manager.train();
201
+ });
202
+ }
203
+ /**
204
+ * Exports the trained model
205
+ * @param {boolean} [minified=true] - Whether to minify the exported model
206
+ * @returns {string} Exported model as string
207
+ */
208
+ export(minified = true) {
209
+ return this.manager.export(minified);
210
+ }
211
+ /**
212
+ * Imports a previously trained model
213
+ * @param {string} data - Model data to import
214
+ */
215
+ import(data) {
216
+ this.manager.import(data);
217
+ }
218
+ /**
219
+ * Saves the current model to a file
220
+ * @param {string} [path='./model.json'] - Path to save the model
221
+ * @returns {Promise<void>}
222
+ */
223
+ saveModel() {
224
+ return __awaiter(this, arguments, void 0, function* (path = "./model.json") {
225
+ this.manager.save();
226
+ this.manager.save("./model.json");
227
+ });
228
+ }
229
+ /**
230
+ * Formats response using template and context
231
+ */
232
+ formatResponse(template, context) {
233
+ const response = JSON.parse(JSON.stringify(template));
234
+ // Format data fields
235
+ if (response.data) {
236
+ Object.keys(response.data).forEach((key) => {
237
+ if (context[key] !== undefined) {
238
+ response.data[key] = context[key];
239
+ }
240
+ });
241
+ }
242
+ return response;
243
+ }
244
+ /**
245
+ * Gets entity value from NLP result
246
+ * @param {any} data - NLP processing result
247
+ * @param {string} entityName - Name of the entity to extract
248
+ * @returns {string|undefined} Entity value if found
249
+ */
250
+ getEntity(data, entityName) {
251
+ var _a;
252
+ const entity = (_a = data.entities) === null || _a === void 0 ? void 0 : _a.find((e) => e.entity === entityName);
253
+ return entity ? entity.utteranceText : undefined;
254
+ }
255
+ /**
256
+ * Gets entity option from NLP result
257
+ * @param {any} data - NLP processing result
258
+ * @param {string} entityName - Name of the entity to extract
259
+ * @returns {string|undefined} Entity option if found
260
+ */
261
+ getEntityOption(data, entityName) {
262
+ var _a;
263
+ const entity = (_a = data.entities) === null || _a === void 0 ? void 0 : _a.find((e) => e.entity === entityName);
264
+ return entity ? entity.option : undefined;
265
+ }
266
+ /**
267
+ * Gets recipient entity from NLP result
268
+ * @param {any} data - NLP processing result
269
+ * @returns {string|undefined} Recipient value if found
270
+ */
271
+ getRecipient(data) {
272
+ var _a;
273
+ const toEntity = (_a = data.entities) === null || _a === void 0 ? void 0 : _a.find((e) => e.entity === "to");
274
+ return toEntity ? toEntity.utteranceText : undefined;
275
+ }
276
+ /**
277
+ * Gets current responses configuration
278
+ * @returns {Record<string, any>} Current responses
279
+ */
280
+ getResponses() {
281
+ return this.responses;
282
+ }
283
+ /**
284
+ * Gets current corpus configuration
285
+ * @returns {any} Current corpus
286
+ */
287
+ getCorpus() {
288
+ return this.manager.corpora;
289
+ }
290
+ /**
291
+ * Gets current entities configuration
292
+ * @returns {any} Current entities configuration
293
+ */
294
+ getEntities() {
295
+ var _a;
296
+ return ((_a = this.manager.nerManager) === null || _a === void 0 ? void 0 : _a.rules) || {};
297
+ }
298
+ }
299
+ exports.NLPEngine = NLPEngine;
300
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../modules/nlp/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { NLPNodeConfig } from "@/interfaces";
2
+ import { ZodSchema } from "zod";
3
+ /**
4
+ * NLPNode class handles natural language processing operations with type-safe schema validation
5
+ * @template T - Zod schema type for validation
6
+ */
7
+ export declare class NLPNode<T extends ZodSchema> {
8
+ private config;
9
+ private engine;
10
+ /**
11
+ * Creates an instance of NLPNode
12
+ * @param {NLPNodeConfig<T>} config - Configuration object for the NLP node
13
+ */
14
+ constructor(config: NLPNodeConfig<T>);
15
+ /**
16
+ * Initializes the NLP engine and sets up intent handlers
17
+ * @returns {Promise<void>}
18
+ */
19
+ initialize(): Promise<void>;
20
+ /**
21
+ * Processes the input text through the NLP engine
22
+ * @param {string} input - Text to be processed
23
+ * @returns {Promise<any>} - Processing result from the engine
24
+ */
25
+ process(input: string): Promise<any>;
26
+ }
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/nlp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAGhC;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,SAAS;IAO1B,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,MAAM,CAAa;IAE3B;;;OAGG;gBACiB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5C;;;OAGG;IACG,UAAU;IAYhB;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM;CAM5B"}
@@ -0,0 +1,56 @@
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.NLPNode = void 0;
13
+ const engine_1 = require("./engine");
14
+ /**
15
+ * NLPNode class handles natural language processing operations with type-safe schema validation
16
+ * @template T - Zod schema type for validation
17
+ */
18
+ class NLPNode {
19
+ /**
20
+ * Creates an instance of NLPNode
21
+ * @param {NLPNodeConfig<T>} config - Configuration object for the NLP node
22
+ */
23
+ constructor(config) {
24
+ this.config = config;
25
+ }
26
+ /**
27
+ * Initializes the NLP engine and sets up intent handlers
28
+ * @returns {Promise<void>}
29
+ */
30
+ initialize() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ this.engine = yield engine_1.NLPEngine.create(this.config.nlpConfig);
33
+ console.log("Loaded engine");
34
+ if (this.config.intentHandlers) {
35
+ Object.entries(this.config.intentHandlers).forEach(([intent, handler]) => {
36
+ this.engine.addAction(intent, handler);
37
+ });
38
+ }
39
+ });
40
+ }
41
+ /**
42
+ * Processes the input text through the NLP engine
43
+ * @param {string} input - Text to be processed
44
+ * @returns {Promise<any>} - Processing result from the engine
45
+ */
46
+ process(input) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ console.log("NLP Node processing:", input);
49
+ const result = yield this.engine.process(input);
50
+ console.log("NLP Node result:", result);
51
+ return result;
52
+ });
53
+ }
54
+ }
55
+ exports.NLPNode = NLPNode;
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../modules/nlp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qCAAqC;AAErC;;;GAGG;AACH,MAAa,OAAO;IAGlB;;;OAGG;IACH,YAAoB,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEhD;;;OAGG;IACG,UAAU;;YACd,IAAI,CAAC,MAAM,GAAG,MAAM,kBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAChD,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE;oBACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzC,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;OAIG;IACG,OAAO,CAAC,KAAa;;YACzB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AApCD,0BAoCC"}