@proteinjs/conversation 2.0.4 → 2.1.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.
- package/CHANGELOG.md +11 -0
- package/dist/src/Conversation.d.ts +4 -1
- package/dist/src/Conversation.d.ts.map +1 -1
- package/dist/src/Conversation.js +125 -45
- package/dist/src/Conversation.js.map +1 -1
- package/dist/src/ConversationModule.d.ts +1 -1
- package/dist/src/ConversationModule.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Conversation.ts +52 -9
- package/src/ConversationModule.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.1.0](https://github.com/proteinjs/conversation/compare/@proteinjs/conversation@2.0.4...@proteinjs/conversation@2.1.0) (2025-04-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* `ConversationModule.getSystemMessages` may now optionally return a promise ([fa676b4](https://github.com/proteinjs/conversation/commit/fa676b4a09536552378c8282178f00a3b1a8d6f8))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [2.0.3](https://github.com/proteinjs/conversation/compare/@proteinjs/conversation@2.0.2...@proteinjs/conversation@2.0.3) (2025-04-11)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @proteinjs/conversation
|
|
@@ -24,8 +24,11 @@ export declare class Conversation {
|
|
|
24
24
|
private generatedList;
|
|
25
25
|
private logger;
|
|
26
26
|
private params;
|
|
27
|
+
private modulesProcessed;
|
|
28
|
+
private processingModulesPromise;
|
|
27
29
|
constructor(params: ConversationParams);
|
|
28
|
-
private
|
|
30
|
+
private ensureModulesProcessed;
|
|
31
|
+
private processModules;
|
|
29
32
|
private addFunctions;
|
|
30
33
|
private addMessageModerators;
|
|
31
34
|
private enforceTokenLimit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../../src/Conversation.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAInE,OAAO,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,UAAU,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;
|
|
1
|
+
{"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../../src/Conversation.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Conversation.js
CHANGED
|
@@ -74,15 +74,14 @@ var Conversation = /** @class */ (function () {
|
|
|
74
74
|
this.messageModerators = [];
|
|
75
75
|
this.generatedCode = false;
|
|
76
76
|
this.generatedList = false;
|
|
77
|
+
this.modulesProcessed = false;
|
|
78
|
+
this.processingModulesPromise = null;
|
|
77
79
|
this.params = params;
|
|
78
80
|
this.history = new MessageHistory_1.MessageHistory({
|
|
79
81
|
maxMessages: (_a = params.limits) === null || _a === void 0 ? void 0 : _a.maxMessagesInHistory,
|
|
80
82
|
enforceMessageLimit: (_b = params.limits) === null || _b === void 0 ? void 0 : _b.enforceLimits,
|
|
81
83
|
});
|
|
82
84
|
this.logger = new logger_1.Logger({ name: params.name, logLevel: params.logLevel });
|
|
83
|
-
if (params.modules) {
|
|
84
|
-
this.addModules(params.modules);
|
|
85
|
-
}
|
|
86
85
|
if (typeof ((_c = params.limits) === null || _c === void 0 ? void 0 : _c.enforceLimits) === 'undefined' || params.limits.enforceLimits) {
|
|
87
86
|
this.addFunctions('Conversation', [(0, exports.summarizeConversationHistoryFunction)(this)]);
|
|
88
87
|
}
|
|
@@ -90,22 +89,85 @@ var Conversation = /** @class */ (function () {
|
|
|
90
89
|
this.tokenLimit = params.limits.tokenLimit;
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
|
-
Conversation.prototype.
|
|
94
|
-
|
|
95
|
-
var
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
92
|
+
Conversation.prototype.ensureModulesProcessed = function () {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
+
var error_1;
|
|
95
|
+
return __generator(this, function (_a) {
|
|
96
|
+
switch (_a.label) {
|
|
97
|
+
case 0:
|
|
98
|
+
// If modules are already processed, return immediately
|
|
99
|
+
if (this.modulesProcessed) {
|
|
100
|
+
return [2 /*return*/];
|
|
101
|
+
}
|
|
102
|
+
// If modules are currently being processed, wait for that to complete
|
|
103
|
+
if (this.processingModulesPromise) {
|
|
104
|
+
return [2 /*return*/, this.processingModulesPromise];
|
|
105
|
+
}
|
|
106
|
+
// Start processing modules and keep a reference to the promise
|
|
107
|
+
this.processingModulesPromise = this.processModules();
|
|
108
|
+
_a.label = 1;
|
|
109
|
+
case 1:
|
|
110
|
+
_a.trys.push([1, 3, , 4]);
|
|
111
|
+
return [4 /*yield*/, this.processingModulesPromise];
|
|
112
|
+
case 2:
|
|
113
|
+
_a.sent();
|
|
114
|
+
this.modulesProcessed = true;
|
|
115
|
+
return [3 /*break*/, 4];
|
|
116
|
+
case 3:
|
|
117
|
+
error_1 = _a.sent();
|
|
118
|
+
this.logger.error({ message: 'Error processing modules', obj: { error: error_1 } });
|
|
119
|
+
// Reset the promise so we can try again
|
|
120
|
+
this.processingModulesPromise = null;
|
|
121
|
+
throw error_1;
|
|
122
|
+
case 4: return [2 /*return*/];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
Conversation.prototype.processModules = function () {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
129
|
+
var _i, _a, module_1, moduleSystemMessagesResult, moduleSystemMessages, formattedSystemMessages;
|
|
130
|
+
return __generator(this, function (_b) {
|
|
131
|
+
switch (_b.label) {
|
|
132
|
+
case 0:
|
|
133
|
+
if (!this.params.modules || this.params.modules.length === 0) {
|
|
134
|
+
return [2 /*return*/];
|
|
135
|
+
}
|
|
136
|
+
_i = 0, _a = this.params.modules;
|
|
137
|
+
_b.label = 1;
|
|
138
|
+
case 1:
|
|
139
|
+
if (!(_i < _a.length)) return [3 /*break*/, 6];
|
|
140
|
+
module_1 = _a[_i];
|
|
141
|
+
moduleSystemMessagesResult = module_1.getSystemMessages();
|
|
142
|
+
moduleSystemMessages = void 0;
|
|
143
|
+
if (!(moduleSystemMessagesResult instanceof Promise)) return [3 /*break*/, 3];
|
|
144
|
+
return [4 /*yield*/, moduleSystemMessagesResult];
|
|
145
|
+
case 2:
|
|
146
|
+
moduleSystemMessages = _b.sent();
|
|
147
|
+
return [3 /*break*/, 4];
|
|
148
|
+
case 3:
|
|
149
|
+
moduleSystemMessages = moduleSystemMessagesResult;
|
|
150
|
+
_b.label = 4;
|
|
151
|
+
case 4:
|
|
152
|
+
if (!moduleSystemMessages || (Array.isArray(moduleSystemMessages) && moduleSystemMessages.length < 1)) {
|
|
153
|
+
return [3 /*break*/, 5];
|
|
154
|
+
}
|
|
155
|
+
formattedSystemMessages = Array.isArray(moduleSystemMessages)
|
|
156
|
+
? moduleSystemMessages.join('. ')
|
|
157
|
+
: moduleSystemMessages;
|
|
158
|
+
this.addSystemMessagesToHistory([
|
|
159
|
+
"The following are instructions from the ".concat(module_1.getName(), " module:\n").concat(formattedSystemMessages),
|
|
160
|
+
]);
|
|
161
|
+
this.addFunctions(module_1.getName(), module_1.getFunctions());
|
|
162
|
+
this.addMessageModerators(module_1.getMessageModerators());
|
|
163
|
+
_b.label = 5;
|
|
164
|
+
case 5:
|
|
165
|
+
_i++;
|
|
166
|
+
return [3 /*break*/, 1];
|
|
167
|
+
case 6: return [2 /*return*/];
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
109
171
|
};
|
|
110
172
|
Conversation.prototype.addFunctions = function (moduleName, functions) {
|
|
111
173
|
var _a;
|
|
@@ -245,8 +307,11 @@ var Conversation = /** @class */ (function () {
|
|
|
245
307
|
return __awaiter(this, void 0, void 0, function () {
|
|
246
308
|
return __generator(this, function (_b) {
|
|
247
309
|
switch (_b.label) {
|
|
248
|
-
case 0: return [4 /*yield*/, this.
|
|
310
|
+
case 0: return [4 /*yield*/, this.ensureModulesProcessed()];
|
|
249
311
|
case 1:
|
|
312
|
+
_b.sent();
|
|
313
|
+
return [4 /*yield*/, this.enforceTokenLimit(messages, model)];
|
|
314
|
+
case 2:
|
|
250
315
|
_b.sent();
|
|
251
316
|
return [4 /*yield*/, new OpenAi_1.OpenAi({
|
|
252
317
|
history: this.history,
|
|
@@ -254,7 +319,7 @@ var Conversation = /** @class */ (function () {
|
|
|
254
319
|
messageModerators: this.messageModerators,
|
|
255
320
|
logLevel: this.params.logLevel,
|
|
256
321
|
}).generateResponse({ messages: messages, model: model })];
|
|
257
|
-
case
|
|
322
|
+
case 3: return [2 /*return*/, _b.sent()];
|
|
258
323
|
}
|
|
259
324
|
});
|
|
260
325
|
});
|
|
@@ -264,8 +329,11 @@ var Conversation = /** @class */ (function () {
|
|
|
264
329
|
return __awaiter(this, void 0, void 0, function () {
|
|
265
330
|
return __generator(this, function (_b) {
|
|
266
331
|
switch (_b.label) {
|
|
267
|
-
case 0: return [4 /*yield*/, this.
|
|
332
|
+
case 0: return [4 /*yield*/, this.ensureModulesProcessed()];
|
|
268
333
|
case 1:
|
|
334
|
+
_b.sent();
|
|
335
|
+
return [4 /*yield*/, this.enforceTokenLimit(messages, model)];
|
|
336
|
+
case 2:
|
|
269
337
|
_b.sent();
|
|
270
338
|
return [4 /*yield*/, new OpenAi_1.OpenAi({
|
|
271
339
|
history: this.history,
|
|
@@ -273,7 +341,7 @@ var Conversation = /** @class */ (function () {
|
|
|
273
341
|
messageModerators: this.messageModerators,
|
|
274
342
|
logLevel: this.params.logLevel,
|
|
275
343
|
}).generateStreamingResponse(__assign({ messages: messages, model: model }, rest))];
|
|
276
|
-
case
|
|
344
|
+
case 3: return [2 /*return*/, _b.sent()];
|
|
277
345
|
}
|
|
278
346
|
});
|
|
279
347
|
});
|
|
@@ -286,6 +354,9 @@ var Conversation = /** @class */ (function () {
|
|
|
286
354
|
switch (_b.label) {
|
|
287
355
|
case 0:
|
|
288
356
|
this.logger.debug({ message: "Generating code", obj: { description: description } });
|
|
357
|
+
return [4 /*yield*/, this.ensureModulesProcessed()];
|
|
358
|
+
case 1:
|
|
359
|
+
_b.sent();
|
|
289
360
|
return [4 /*yield*/, new OpenAi_1.OpenAi({
|
|
290
361
|
history: this.history,
|
|
291
362
|
functions: this.functions,
|
|
@@ -296,7 +367,7 @@ var Conversation = /** @class */ (function () {
|
|
|
296
367
|
model: model,
|
|
297
368
|
includeSystemMessages: !this.generatedCode,
|
|
298
369
|
})];
|
|
299
|
-
case
|
|
370
|
+
case 2:
|
|
300
371
|
code = _b.sent();
|
|
301
372
|
this.logger.debug({ message: "Generated code", obj: { code: code } });
|
|
302
373
|
this.generatedCode = true;
|
|
@@ -311,27 +382,30 @@ var Conversation = /** @class */ (function () {
|
|
|
311
382
|
var codeToUpdate, dependencyDescription, _i, dependencyCodeFilePaths_1, dependencyCodeFilePath, dependencCode;
|
|
312
383
|
return __generator(this, function (_b) {
|
|
313
384
|
switch (_b.label) {
|
|
314
|
-
case 0: return [4 /*yield*/,
|
|
385
|
+
case 0: return [4 /*yield*/, this.ensureModulesProcessed()];
|
|
315
386
|
case 1:
|
|
387
|
+
_b.sent();
|
|
388
|
+
return [4 /*yield*/, util_node_1.Fs.readFile(codeToUpdateFilePath)];
|
|
389
|
+
case 2:
|
|
316
390
|
codeToUpdate = _b.sent();
|
|
317
391
|
dependencyDescription = "Assume the following exists:\n";
|
|
318
392
|
_i = 0, dependencyCodeFilePaths_1 = dependencyCodeFilePaths;
|
|
319
|
-
_b.label =
|
|
320
|
-
case
|
|
321
|
-
if (!(_i < dependencyCodeFilePaths_1.length)) return [3 /*break*/,
|
|
393
|
+
_b.label = 3;
|
|
394
|
+
case 3:
|
|
395
|
+
if (!(_i < dependencyCodeFilePaths_1.length)) return [3 /*break*/, 6];
|
|
322
396
|
dependencyCodeFilePath = dependencyCodeFilePaths_1[_i];
|
|
323
397
|
return [4 /*yield*/, util_node_1.Fs.readFile(dependencyCodeFilePath)];
|
|
324
|
-
case
|
|
398
|
+
case 4:
|
|
325
399
|
dependencCode = _b.sent();
|
|
326
400
|
dependencyDescription += dependencCode + '\n\n';
|
|
327
|
-
_b.label =
|
|
328
|
-
case 4:
|
|
329
|
-
_i++;
|
|
330
|
-
return [3 /*break*/, 2];
|
|
401
|
+
_b.label = 5;
|
|
331
402
|
case 5:
|
|
403
|
+
_i++;
|
|
404
|
+
return [3 /*break*/, 3];
|
|
405
|
+
case 6:
|
|
332
406
|
this.logger.debug({ message: "Updating code from file", obj: { codeToUpdateFilePath: codeToUpdateFilePath } });
|
|
333
407
|
return [4 /*yield*/, this.updateCode({ code: codeToUpdate, description: dependencyDescription + description, model: model })];
|
|
334
|
-
case
|
|
408
|
+
case 7: return [2 /*return*/, _b.sent()];
|
|
335
409
|
}
|
|
336
410
|
});
|
|
337
411
|
});
|
|
@@ -344,6 +418,9 @@ var Conversation = /** @class */ (function () {
|
|
|
344
418
|
switch (_b.label) {
|
|
345
419
|
case 0:
|
|
346
420
|
this.logger.debug({ message: "Updating code", obj: { description: description, code: code } });
|
|
421
|
+
return [4 /*yield*/, this.ensureModulesProcessed()];
|
|
422
|
+
case 1:
|
|
423
|
+
_b.sent();
|
|
347
424
|
return [4 /*yield*/, new OpenAi_1.OpenAi({
|
|
348
425
|
history: this.history,
|
|
349
426
|
functions: this.functions,
|
|
@@ -355,7 +432,7 @@ var Conversation = /** @class */ (function () {
|
|
|
355
432
|
model: model,
|
|
356
433
|
includeSystemMessages: !this.generatedCode,
|
|
357
434
|
})];
|
|
358
|
-
case
|
|
435
|
+
case 2:
|
|
359
436
|
updatedCode = _b.sent();
|
|
360
437
|
this.logger.debug({ message: "Updated code", obj: { updatedCode: updatedCode } });
|
|
361
438
|
this.generatedCode = true;
|
|
@@ -370,17 +447,20 @@ var Conversation = /** @class */ (function () {
|
|
|
370
447
|
var list;
|
|
371
448
|
return __generator(this, function (_b) {
|
|
372
449
|
switch (_b.label) {
|
|
373
|
-
case 0: return [4 /*yield*/,
|
|
374
|
-
history: this.history,
|
|
375
|
-
functions: this.functions,
|
|
376
|
-
messageModerators: this.messageModerators,
|
|
377
|
-
logLevel: this.params.logLevel,
|
|
378
|
-
}).generateList({
|
|
379
|
-
messages: description,
|
|
380
|
-
model: model,
|
|
381
|
-
includeSystemMessages: !this.generatedList,
|
|
382
|
-
})];
|
|
450
|
+
case 0: return [4 /*yield*/, this.ensureModulesProcessed()];
|
|
383
451
|
case 1:
|
|
452
|
+
_b.sent();
|
|
453
|
+
return [4 /*yield*/, new OpenAi_1.OpenAi({
|
|
454
|
+
history: this.history,
|
|
455
|
+
functions: this.functions,
|
|
456
|
+
messageModerators: this.messageModerators,
|
|
457
|
+
logLevel: this.params.logLevel,
|
|
458
|
+
}).generateList({
|
|
459
|
+
messages: description,
|
|
460
|
+
model: model,
|
|
461
|
+
includeSystemMessages: !this.generatedList,
|
|
462
|
+
})];
|
|
463
|
+
case 2:
|
|
384
464
|
list = _b.sent();
|
|
385
465
|
this.generatedList = true;
|
|
386
466
|
return [2 /*return*/, list];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/Conversation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAAiD;AACjD,2DAA0D;AAE1D,4CAAqD;AACrD,kDAA0C;AAG1C,qCAA6D;AAC7D,kEAA4E;AAc5E;IAWE,sBAAY,MAA0B;;QAV9B,eAAU,GAAG,IAAI,CAAC;QAElB,mBAAc,GAAiC,EAAE,CAAC;QAClD,cAAS,GAAe,EAAE,CAAC;QAC3B,sBAAiB,GAAuB,EAAE,CAAC;QAC3C,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QAK5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC;YAChC,WAAW,EAAE,MAAA,MAAM,CAAC,MAAM,0CAAE,oBAAoB;YAChD,mBAAmB,EAAE,MAAA,MAAM,CAAC,MAAM,0CAAE,aAAa;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3E,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACjC;QAED,IAAI,OAAO,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,aAAa,CAAA,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YACtF,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,IAAA,4CAAoC,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjF;QAED,IAAI,MAAA,MAAM,CAAC,MAAM,0CAAE,UAAU,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SAC5C;IACH,CAAC;IAEO,iCAAU,GAAlB,UAAmB,OAA6B;QAC9C,KAAqB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;YAAzB,IAAM,QAAM,gBAAA;YACf,IAAI,QAAM,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,SAAS;aACV;YAED,IAAM,oBAAoB,GAAG,QAAM,CAAC,iBAAiB,EAAE,CAAC;YACxD,IAAM,uBAAuB,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBACjE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjC,CAAC,CAAC,oBAAoB,CAAC;YAEzB,IAAI,CAAC,0BAA0B,CAAC;gBAC9B,kDAA2C,QAAM,CAAC,OAAO,EAAE,sBAAY,uBAAuB,CAAE;aACjG,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,QAAM,CAAC,OAAO,EAAE,EAAE,QAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,QAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;SAC1D;IACH,CAAC;IAEO,mCAAY,GAApB,UAAqB,UAAkB,EAAE,SAAqB;;QAC5D,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,IAAI,WAAI,SAAS,EAAE;QAClC,IAAI,oBAAoB,GAAG,+DAAwD,UAAU,aAAU,CAAC;QACxG,IAAI,yBAAyB,GAAG,KAAK,CAAC;QACtC,KAAgB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,EAAE;YAAtB,IAAM,CAAC,kBAAA;YACV,IAAI,CAAC,CAAC,YAAY,EAAE;gBAClB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,SAAS;iBACV;gBAED,yBAAyB,GAAG,IAAI,CAAC;gBACjC,IAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxD,oBAAoB,IAAI,WAAI,CAAC,CAAC,UAAU,CAAC,IAAI,eAAK,qBAAqB,MAAG,CAAC;aAC5E;SACF;QAED,IAAI,CAAC,yBAAyB,EAAE;YAC9B,OAAO;SACR;QAED,IAAI,CAAC,0BAA0B,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,2CAAoB,GAA5B,UAA6B,iBAAqC;;QAChE,CAAA,KAAA,IAAI,CAAC,iBAAiB,CAAA,CAAC,IAAI,WAAI,iBAAiB,EAAE;IACpD,CAAC;IAEa,wCAAiB,GAA/B,UAAgC,QAAiD,EAAE,KAAqB;;;;;;;wBACtG,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,aAAa,MAAK,KAAK,EAAE;4BAC/C,sBAAO;yBACR;wBAEK,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAa,CAAC;wBAC9C,OAAO,GAAG,IAAA,6BAAkB,EAAC,aAAa,CAAC,CAAC;wBAC5C,YAAY,GAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;4BACvB,QAAQ;iCACL,GAAG,CAAC,UAAC,OAAO;gCACX,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oCAC/B,OAAO,OAAO,CAAC;iCAChB;qCAAM;oCACL,kDAAkD;oCAClD,IAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oCAC1F,OAAO,YAAY;yCAChB,GAAG,CAAC,UAAC,IAAI;wCACR,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4CAC5B,OAAO,IAAI,CAAC;yCACb;6CAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,MAAM,EAAE;4CAChC,OAAO,IAAI,CAAC,IAAI,CAAC;yCAClB;6CAAM;4CACL,OAAO,EAAE,CAAC,CAAC,gDAAgD;yCAC5D;oCACH,CAAC,CAAC;yCACD,IAAI,CAAC,GAAG,CAAC,CAAC;iCACd;4BACH,CAAC,CAAC;iCACD,IAAI,CAAC,IAAI,CAAC,CAAC;wBACV,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,0BAAmB,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC;wBACjD,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;4BACpC,sBAAO;yBACR;wBAEK,4BAA4B,GAAG,0BAAmB,gDAAwC,cAAW,CAAC;wBAC5G,qBAAM,IAAI,eAAM,CAAC;gCACf,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;6BAC/B,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,4BAA4B,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,EAAA;;wBALxE,SAKwE,CAAC;wBACnE,uBAAuB,GAAG,wKAAiK,8CAA2B,mFAAgF,CAAC;wBAC7S,qBAAM,IAAI,eAAM,CAAC;gCACf,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;6BAC/B,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,EAAA;;wBALnE,SAKmE,CAAC;;;;;KACrE;IAED,mDAA4B,GAA5B,UAA6B,OAAe;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,yCAAkC,OAAO,CAAE,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;IAEO,mCAAY,GAApB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,iDAA0B,GAA1B,UAA2B,QAAkB,EAAE,OAAe;QAAf,wBAAA,EAAA,eAAe;QAC5D,IAAM,eAAe,GAAiC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;YACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,oDAA6B,GAA7B,UAA8B,QAAkB,EAAE,OAAe;QAAf,wBAAA,EAAA,eAAe;QAC/D,IAAM,eAAe,GAAiC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;YACzE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,+CAAwB,GAAxB,UAAyB,QAAkB,EAAE,OAAe;QAAf,wBAAA,EAAA,eAAe;QAC1D,IAAM,eAAe,GAAiC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;YACzE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,2CAAoB,GAApB,UAAqB,QAAsC,EAAE,OAAe;;QAAf,wBAAA,EAAA,eAAe;QAC1E,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAzB,CAAyB,CAAC,CAAC;QAC/E,IAAI,OAAO,EAAE;YACX,CAAA,KAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA,CAAC,OAAO,WAAI,QAAQ,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,CAAA,KAAA,IAAI,CAAC,cAAc,CAAA,CAAC,OAAO,WAAI,cAAc,EAAE;SAChD;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAA,KAAA,IAAI,CAAC,cAAc,CAAA,CAAC,IAAI,WAAI,cAAc,EAAE;SAC7C;IACH,CAAC;IAEK,uCAAgB,GAAtB,UAAuB,EAMtB;YALC,QAAQ,cAAA,EACR,KAAK,WAAA;;;;4BAKL,qBAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAA;;wBAA7C,SAA6C,CAAC;wBACvC,qBAAM,IAAI,eAAM,CAAC;gCACtB,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;6BAC/B,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,CAAC,EAAA;4BALxC,sBAAO,SAKiC,EAAC;;;;KAC1C;IAEK,gDAAyB,GAA/B,UAAgC,EAS/B;QARC,IAAA,QAAQ,cAAA,EACR,KAAK,WAAA,EACF,IAAI,cAHuB,qBAI/B,CADQ;;;;4BAOP,qBAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAA;;wBAA7C,SAA6C,CAAC;wBACvC,qBAAM,IAAI,eAAM,CAAC;gCACtB,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;6BAC/B,CAAC,CAAC,yBAAyB,YAAG,QAAQ,UAAA,EAAE,KAAK,OAAA,IAAK,IAAI,EAAG,EAAA;4BAL1D,sBAAO,SAKmD,EAAC;;;;KAC5D;IAEK,mCAAY,GAAlB,UAAmB,EAAwE;YAAtE,WAAW,iBAAA,EAAE,KAAK,WAAA;;;;;;wBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,WAAW,aAAA,EAAE,EAAE,CAAC,CAAC;wBAC3D,qBAAM,IAAI,eAAM,CAAC;gCAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;6BAC/B,CAAC,CAAC,YAAY,CAAC;gCACd,QAAQ,EAAE,WAAW;gCACrB,KAAK,OAAA;gCACL,qBAAqB,EAAE,CAAC,IAAI,CAAC,aAAa;6BAC3C,CAAC,EAAA;;wBATI,IAAI,GAAG,SASX;wBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,IAAI,MAAA,EAAE,EAAE,CAAC,CAAC;wBAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,sBAAO,IAAI,EAAC;;;;KACb;IAEK,yCAAkB,GAAxB,UAAyB,EAUxB;YATC,oBAAoB,0BAAA,EACpB,uBAAuB,6BAAA,EACvB,WAAW,iBAAA,EACX,KAAK,WAAA;;;;;4BAOgB,qBAAM,cAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAA;;wBAAtD,YAAY,GAAG,SAAuC;wBACxD,qBAAqB,GAAG,gCAAgC,CAAC;8BACD,EAAvB,mDAAuB;;;6BAAvB,CAAA,qCAAuB,CAAA;wBAAjD,sBAAsB;wBACT,qBAAM,cAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAA;;wBAAzD,aAAa,GAAG,SAAyC;wBAC/D,qBAAqB,IAAI,aAAa,GAAG,MAAM,CAAC;;;wBAFb,IAAuB,CAAA;;;wBAK5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,GAAG,EAAE,EAAE,oBAAoB,sBAAA,EAAE,EAAE,CAAC,CAAC;wBAClF,qBAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,GAAG,WAAW,EAAE,KAAK,OAAA,EAAE,CAAC,EAAA;4BAA7G,sBAAO,SAAsG,EAAC;;;;KAC/G;IAEK,iCAAU,GAAhB,UAAiB,EAA0F;YAAxF,IAAI,UAAA,EAAE,WAAW,iBAAA,EAAE,KAAK,WAAA;;;;;;wBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,WAAW,aAAA,EAAE,IAAI,MAAA,EAAE,EAAE,CAAC,CAAC;wBACxD,qBAAM,IAAI,eAAM,CAAC;gCACnC,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;6BAC/B,CAAC,CAAC,UAAU,CAAC;gCACZ,IAAI,MAAA;gCACJ,WAAW,aAAA;gCACX,KAAK,OAAA;gCACL,qBAAqB,EAAE,CAAC,IAAI,CAAC,aAAa;6BAC3C,CAAC,EAAA;;wBAVI,WAAW,GAAG,SAUlB;wBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,WAAW,aAAA,EAAE,EAAE,CAAC,CAAC;wBACrE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,sBAAO,WAAW,EAAC;;;;KACpB;IAEK,mCAAY,GAAlB,UAAmB,EAAwE;YAAtE,WAAW,iBAAA,EAAE,KAAK,WAAA;;;;;4BACxB,qBAAM,IAAI,eAAM,CAAC;4BAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;4BACzC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;yBAC/B,CAAC,CAAC,YAAY,CAAC;4BACd,QAAQ,EAAE,WAAW;4BACrB,KAAK,OAAA;4BACL,qBAAqB,EAAE,CAAC,IAAI,CAAC,aAAa;yBAC3C,CAAC,EAAA;;wBATI,IAAI,GAAG,SASX;wBACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,sBAAO,IAAI,EAAC;;;;KACb;IACH,mBAAC;AAAD,CAAC,AAvRD,IAuRC;AAvRY,oCAAY;AAyRZ,QAAA,wCAAwC,GAAG,8BAA8B,CAAC;AAChF,IAAM,oCAAoC,GAAG,UAAC,YAA0B;IAC7E,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,gDAAwC;YAC9C,WAAW,EAAE,6DAA6D;YAC1E,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;QACD,IAAI,EAAE,UAAO,MAA2B;YAAK,sBAAA,YAAY,CAAC,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;iBAAA;KACvG,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,oCAAoC,wCAkB/C"}
|
|
1
|
+
{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/Conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { MessageModerator } from './history/MessageModerator';
|
|
|
3
3
|
export interface ConversationModule {
|
|
4
4
|
getName(): string;
|
|
5
5
|
/** Return array of strings that will be formatted with periods in between or return a preformatted string */
|
|
6
|
-
getSystemMessages(): string[] | string
|
|
6
|
+
getSystemMessages(): string[] | string | Promise<string[] | string>;
|
|
7
7
|
getFunctions(): Function[];
|
|
8
8
|
getMessageModerators(): MessageModerator[];
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationModule.d.ts","sourceRoot":"","sources":["../../src/ConversationModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,MAAM,CAAC;IAClB,6GAA6G;IAC7G,iBAAiB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationModule.d.ts","sourceRoot":"","sources":["../../src/ConversationModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,MAAM,CAAC;IAClB,6GAA6G;IAC7G,iBAAiB,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;IACpE,YAAY,IAAI,QAAQ,EAAE,CAAC;IAC3B,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC7D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/conversation",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"publishConfig": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"ts-jest": "^29.1.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@proteinjs/logger": "1.0.
|
|
31
|
+
"@proteinjs/logger": "1.0.8",
|
|
32
32
|
"@proteinjs/util": "1.5.0",
|
|
33
33
|
"@proteinjs/util-node": "1.4.2",
|
|
34
34
|
"fs-extra": "11.1.1",
|
package/src/Conversation.ts
CHANGED
|
@@ -31,6 +31,8 @@ export class Conversation {
|
|
|
31
31
|
private generatedList = false;
|
|
32
32
|
private logger: Logger;
|
|
33
33
|
private params: ConversationParams;
|
|
34
|
+
private modulesProcessed = false;
|
|
35
|
+
private processingModulesPromise: Promise<void> | null = null;
|
|
34
36
|
|
|
35
37
|
constructor(params: ConversationParams) {
|
|
36
38
|
this.params = params;
|
|
@@ -40,10 +42,6 @@ export class Conversation {
|
|
|
40
42
|
});
|
|
41
43
|
this.logger = new Logger({ name: params.name, logLevel: params.logLevel });
|
|
42
44
|
|
|
43
|
-
if (params.modules) {
|
|
44
|
-
this.addModules(params.modules);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
45
|
if (typeof params.limits?.enforceLimits === 'undefined' || params.limits.enforceLimits) {
|
|
48
46
|
this.addFunctions('Conversation', [summarizeConversationHistoryFunction(this)]);
|
|
49
47
|
}
|
|
@@ -53,19 +51,58 @@ export class Conversation {
|
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
53
|
|
|
56
|
-
private
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
private async ensureModulesProcessed(): Promise<void> {
|
|
55
|
+
// If modules are already processed, return immediately
|
|
56
|
+
if (this.modulesProcessed) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// If modules are currently being processed, wait for that to complete
|
|
61
|
+
if (this.processingModulesPromise) {
|
|
62
|
+
return this.processingModulesPromise;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Start processing modules and keep a reference to the promise
|
|
66
|
+
this.processingModulesPromise = this.processModules();
|
|
67
|
+
|
|
68
|
+
try {
|
|
69
|
+
await this.processingModulesPromise;
|
|
70
|
+
this.modulesProcessed = true;
|
|
71
|
+
} catch (error) {
|
|
72
|
+
this.logger.error({ message: 'Error processing modules', obj: { error } });
|
|
73
|
+
// Reset the promise so we can try again
|
|
74
|
+
this.processingModulesPromise = null;
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private async processModules(): Promise<void> {
|
|
80
|
+
if (!this.params.modules || this.params.modules.length === 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
for (const module of this.params.modules) {
|
|
85
|
+
// Get system messages and handle potential Promise
|
|
86
|
+
const moduleSystemMessagesResult = module.getSystemMessages();
|
|
87
|
+
let moduleSystemMessages: string[] | string;
|
|
88
|
+
|
|
89
|
+
// Check if the result is a Promise and await it if needed
|
|
90
|
+
if (moduleSystemMessagesResult instanceof Promise) {
|
|
91
|
+
moduleSystemMessages = await moduleSystemMessagesResult;
|
|
92
|
+
} else {
|
|
93
|
+
moduleSystemMessages = moduleSystemMessagesResult;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!moduleSystemMessages || (Array.isArray(moduleSystemMessages) && moduleSystemMessages.length < 1)) {
|
|
59
97
|
continue;
|
|
60
98
|
}
|
|
61
99
|
|
|
62
|
-
const moduleSystemMessages = module.getSystemMessages();
|
|
63
100
|
const formattedSystemMessages = Array.isArray(moduleSystemMessages)
|
|
64
101
|
? moduleSystemMessages.join('. ')
|
|
65
102
|
: moduleSystemMessages;
|
|
66
103
|
|
|
67
104
|
this.addSystemMessagesToHistory([
|
|
68
|
-
`The following are instructions from the ${module.getName()} module
|
|
105
|
+
`The following are instructions from the ${module.getName()} module:\n${formattedSystemMessages}`,
|
|
69
106
|
]);
|
|
70
107
|
this.addFunctions(module.getName(), module.getFunctions());
|
|
71
108
|
this.addMessageModerators(module.getMessageModerators());
|
|
@@ -201,6 +238,7 @@ export class Conversation {
|
|
|
201
238
|
messages: (string | ChatCompletionMessageParam)[];
|
|
202
239
|
model?: TiktokenModel;
|
|
203
240
|
}) {
|
|
241
|
+
await this.ensureModulesProcessed();
|
|
204
242
|
await this.enforceTokenLimit(messages, model);
|
|
205
243
|
return await new OpenAi({
|
|
206
244
|
history: this.history,
|
|
@@ -220,6 +258,7 @@ export class Conversation {
|
|
|
220
258
|
abortSignal?: AbortSignal;
|
|
221
259
|
onUsageData?: (usageData: UsageData) => Promise<void>;
|
|
222
260
|
}) {
|
|
261
|
+
await this.ensureModulesProcessed();
|
|
223
262
|
await this.enforceTokenLimit(messages, model);
|
|
224
263
|
return await new OpenAi({
|
|
225
264
|
history: this.history,
|
|
@@ -231,6 +270,7 @@ export class Conversation {
|
|
|
231
270
|
|
|
232
271
|
async generateCode({ description, model }: { description: string[]; model?: TiktokenModel }) {
|
|
233
272
|
this.logger.debug({ message: `Generating code`, obj: { description } });
|
|
273
|
+
await this.ensureModulesProcessed();
|
|
234
274
|
const code = await new OpenAi({
|
|
235
275
|
history: this.history,
|
|
236
276
|
functions: this.functions,
|
|
@@ -257,6 +297,7 @@ export class Conversation {
|
|
|
257
297
|
description: string;
|
|
258
298
|
model?: TiktokenModel;
|
|
259
299
|
}) {
|
|
300
|
+
await this.ensureModulesProcessed();
|
|
260
301
|
const codeToUpdate = await Fs.readFile(codeToUpdateFilePath);
|
|
261
302
|
let dependencyDescription = `Assume the following exists:\n`;
|
|
262
303
|
for (const dependencyCodeFilePath of dependencyCodeFilePaths) {
|
|
@@ -270,6 +311,7 @@ export class Conversation {
|
|
|
270
311
|
|
|
271
312
|
async updateCode({ code, description, model }: { code: string; description: string; model?: TiktokenModel }) {
|
|
272
313
|
this.logger.debug({ message: `Updating code`, obj: { description, code } });
|
|
314
|
+
await this.ensureModulesProcessed();
|
|
273
315
|
const updatedCode = await new OpenAi({
|
|
274
316
|
history: this.history,
|
|
275
317
|
functions: this.functions,
|
|
@@ -287,6 +329,7 @@ export class Conversation {
|
|
|
287
329
|
}
|
|
288
330
|
|
|
289
331
|
async generateList({ description, model }: { description: string[]; model?: TiktokenModel }) {
|
|
332
|
+
await this.ensureModulesProcessed();
|
|
290
333
|
const list = await new OpenAi({
|
|
291
334
|
history: this.history,
|
|
292
335
|
functions: this.functions,
|
|
@@ -4,7 +4,7 @@ import { MessageModerator } from './history/MessageModerator';
|
|
|
4
4
|
export interface ConversationModule {
|
|
5
5
|
getName(): string;
|
|
6
6
|
/** Return array of strings that will be formatted with periods in between or return a preformatted string */
|
|
7
|
-
getSystemMessages(): string[] | string
|
|
7
|
+
getSystemMessages(): string[] | string | Promise<string[] | string>;
|
|
8
8
|
getFunctions(): Function[];
|
|
9
9
|
getMessageModerators(): MessageModerator[];
|
|
10
10
|
}
|