@proteinjs/conversation 2.0.4 → 2.1.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.
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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Brent Bahry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -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 addModules;
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":"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"}
1
+ {"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../../src/Conversation.ts"],"names":[],"mappings":"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"}
@@ -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.addModules = function (modules) {
94
- for (var _i = 0, modules_1 = modules; _i < modules_1.length; _i++) {
95
- var module_1 = modules_1[_i];
96
- if (module_1.getSystemMessages().length < 1) {
97
- continue;
98
- }
99
- var moduleSystemMessages = module_1.getSystemMessages();
100
- var formattedSystemMessages = Array.isArray(moduleSystemMessages)
101
- ? moduleSystemMessages.join('. ')
102
- : moduleSystemMessages;
103
- this.addSystemMessagesToHistory([
104
- "The following are instructions from the ".concat(module_1.getName(), " module: ").concat(formattedSystemMessages),
105
- ]);
106
- this.addFunctions(module_1.getName(), module_1.getFunctions());
107
- this.addMessageModerators(module_1.getMessageModerators());
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.enforceTokenLimit(messages, model)];
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 2: return [2 /*return*/, _b.sent()];
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.enforceTokenLimit(messages, model)];
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 2: return [2 /*return*/, _b.sent()];
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 1:
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*/, util_node_1.Fs.readFile(codeToUpdateFilePath)];
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 = 2;
320
- case 2:
321
- if (!(_i < dependencyCodeFilePaths_1.length)) return [3 /*break*/, 5];
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 3:
398
+ case 4:
325
399
  dependencCode = _b.sent();
326
400
  dependencyDescription += dependencCode + '\n\n';
327
- _b.label = 4;
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 6: return [2 /*return*/, _b.sent()];
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 1:
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*/, new OpenAi_1.OpenAi({
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":"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"}
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;IACvC,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"}
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.0.4",
3
+ "version": "2.1.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "publishConfig": {
@@ -36,5 +36,6 @@
36
36
  "readline-sync": "1.4.10",
37
37
  "tiktoken": "1.0.15",
38
38
  "typescript": "5.2.2"
39
- }
39
+ },
40
+ "gitHead": "9531e08f0aa9004f6f1c4787811538ebb7cb56d1"
40
41
  }
@@ -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 addModules(modules: ConversationModule[]) {
57
- for (const module of modules) {
58
- if (module.getSystemMessages().length < 1) {
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: ${formattedSystemMessages}`,
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
  }