@wabot-dev/framework 0.9.6 → 0.9.7

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.
@@ -38,10 +38,10 @@ const logger = new Logger('wabot:project-runner');
38
38
  const TEST_FILE_PATTERNS = /\.(test|spec|unit|integration|e2e|multiprocess)\.(ts|js)$/;
39
39
  const DEFAULT_EXCLUDE = ['run.ts', 'cmd.ts'];
40
40
  const DEFAULT_CHAT_ADAPTERS = [
41
- ['../../addon/chat-bot/openia', 'OpenaiChatAdapter'],
42
- ['../../addon/chat-bot/openrouter', 'OpenRouterChatAdapter'],
43
- ['../../addon/chat-bot/anthropic', 'AnthropicChatAdapter'],
44
- ['../../addon/chat-bot/google', 'GoogleChatAdapter'],
41
+ ['../../addon/chat-bot/openia/OpenaiChatAdapter', 'OpenaiChatAdapter'],
42
+ ['../../addon/chat-bot/openrouter/OpenRouterChatAdapter', 'OpenRouterChatAdapter'],
43
+ ['../../addon/chat-bot/anthropic/AnthropicChatAdapter', 'AnthropicChatAdapter'],
44
+ ['../../addon/chat-bot/google/GoogleChatAdapter', 'GoogleChatAdapter'],
45
45
  ];
46
46
  class ProjectRunner {
47
47
  directories;
@@ -176,23 +176,28 @@ class ProjectRunner {
176
176
  }
177
177
  async registerMemoryAdapters(components) {
178
178
  const needsJobs = components.commandHandlers.length > 0 || components.cronHandlers.length > 0;
179
- const [chatBotMod, lockMod, asyncMod] = await Promise.all([
180
- import('../../addon/chat-bot/in-memory/index.js'),
181
- import('../../addon/lock/index.js'),
182
- needsJobs ? import('../../addon/async/in-memory/index.js') : Promise.resolve(null),
179
+ const [chatBotMod, lockMod, jobMod, cronJobMod] = await Promise.all([
180
+ import('../../addon/chat-bot/in-memory/InMemoryChatRepository.js'),
181
+ import('../../addon/lock/InMemoryLocker.js'),
182
+ needsJobs
183
+ ? import('../../addon/async/in-memory/InMemoryJobRepository.js')
184
+ : Promise.resolve(null),
185
+ components.cronHandlers.length > 0
186
+ ? import('../../addon/async/in-memory/InMemoryCronJobRepository.js')
187
+ : Promise.resolve(null),
183
188
  ]);
184
189
  container.register(ChatRepository, { useToken: chatBotMod.InMemoryChatRepository });
185
190
  container.register(Locker, { useToken: lockMod.InMemoryLocker });
186
191
  const memoryAdapter = new MemoryRepositoryAdapter();
187
192
  container.resolve(RepositoryAdapterRegistry).setDefault(memoryAdapter);
188
193
  container.resolve(RepositoryMetadataStore).validateExtensionsRegistered(memoryAdapter.id);
189
- if (asyncMod) {
190
- container.register(JobRepository, { useToken: asyncMod.InMemoryJobRepository });
191
- if (components.cronHandlers.length > 0) {
192
- container.register(CronJobRepository, {
193
- useToken: asyncMod.InMemoryCronJobRepository,
194
- });
195
- }
194
+ if (jobMod) {
195
+ container.register(JobRepository, { useToken: jobMod.InMemoryJobRepository });
196
+ }
197
+ if (cronJobMod) {
198
+ container.register(CronJobRepository, {
199
+ useToken: cronJobMod.InMemoryCronJobRepository,
200
+ });
196
201
  }
197
202
  logger.info('Configured with in-memory adapters');
198
203
  }
@@ -200,25 +205,32 @@ class ProjectRunner {
200
205
  if (!this.pool) {
201
206
  throw new Error('Postgres pool was not initialized');
202
207
  }
203
- const [chatBotMod, pgMod, asyncMod] = await Promise.all([
204
- import('../../addon/chat-bot/pg/index.js'),
205
- import('../pg/index.js'),
206
- import('../../addon/async/pg/index.js'),
208
+ const hasCommandHandlers = components.commandHandlers.length > 0;
209
+ const hasCronHandlers = components.cronHandlers.length > 0;
210
+ const [chatBotMod, lockerMod, repoAdapterMod, txMod, jobMod, cronJobMod] = await Promise.all([
211
+ import('../../addon/chat-bot/pg/PgChatRepository.js'),
212
+ import('../pg/PgLocker.js'),
213
+ import('../pg/PgJsonRepositoryAdapter.js'),
214
+ import('../../addon/async/pg/PgTransactionAdapter.js'),
215
+ hasCommandHandlers || hasCronHandlers
216
+ ? import('../../addon/async/pg/PgJobRepository.js')
217
+ : Promise.resolve(null),
218
+ hasCronHandlers
219
+ ? import('../../addon/async/pg/PgCronJobRepository.js')
220
+ : Promise.resolve(null),
207
221
  ]);
208
222
  container.register(ChatRepository, { useToken: chatBotMod.PgChatRepository });
209
- container.register(Locker, { useToken: pgMod.PgLocker });
210
- const pgAdapter = new pgMod.PgJsonRepositoryAdapter(this.pool);
223
+ container.register(Locker, { useToken: lockerMod.PgLocker });
224
+ const pgAdapter = new repoAdapterMod.PgJsonRepositoryAdapter(this.pool);
211
225
  container.resolve(RepositoryAdapterRegistry).setDefault(pgAdapter);
212
226
  container.resolve(RepositoryMetadataStore).validateExtensionsRegistered(pgAdapter.id);
213
227
  const transactionStore = container.resolve(TransactionMetadataStore);
214
- transactionStore.registerAdapter('default', new asyncMod.PgTransactionAdapter(this.pool));
215
- const hasCommandHandlers = components.commandHandlers.length > 0;
216
- const hasCronHandlers = components.cronHandlers.length > 0;
217
- if (hasCommandHandlers || hasCronHandlers) {
218
- container.register(JobRepository, { useToken: asyncMod.PgJobRepository });
228
+ transactionStore.registerAdapter('default', new txMod.PgTransactionAdapter(this.pool));
229
+ if (jobMod) {
230
+ container.register(JobRepository, { useToken: jobMod.PgJobRepository });
219
231
  }
220
- if (hasCronHandlers) {
221
- container.register(CronJobRepository, { useToken: asyncMod.PgCronJobRepository });
232
+ if (cronJobMod) {
233
+ container.register(CronJobRepository, { useToken: cronJobMod.PgCronJobRepository });
222
234
  }
223
235
  logger.info('Configured with PostgreSQL adapters');
224
236
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wabot-dev/framework",
3
- "version": "0.9.6",
3
+ "version": "0.9.7",
4
4
  "description": "Framework for IA Chat Bots",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -1,2 +0,0 @@
1
- export { InMemoryJobRepository } from './InMemoryJobRepository.js';
2
- export { InMemoryCronJobRepository } from './InMemoryCronJobRepository.js';
@@ -1,3 +0,0 @@
1
- export { PgCronJobRepository } from './PgCronJobRepository.js';
2
- export { PgJobRepository } from './PgJobRepository.js';
3
- export { PgTransactionAdapter } from './PgTransactionAdapter.js';
@@ -1,2 +0,0 @@
1
- export { InMemoryChatMemory } from './InMemoryChatMemory.js';
2
- export { InMemoryChatRepository } from './InMemoryChatRepository.js';
@@ -1,2 +0,0 @@
1
- export { PgChatRepository } from './PgChatRepository.js';
2
- export { PgChatMemory } from './PgChatMemory.js';
@@ -1,2 +0,0 @@
1
- export { InMemoryLockKey } from './InMemoryLockKey.js';
2
- export { InMemoryLocker } from './InMemoryLocker.js';
@@ -1,10 +0,0 @@
1
- export { PG_ADAPTER_ID, pgExtension } from './@pgExtension.js';
2
- export { PgCrudRepository } from './PgCrudRepository.js';
3
- export { PgJsonRepositoryAdapter } from './PgJsonRepositoryAdapter.js';
4
- export { PgLocker } from './PgLocker.js';
5
- export { PgLockKey } from './PgLockKey.js';
6
- export { PgRepositoryBase, PgRepositoryBase as PgRepositoryExtension } from './PgRepositoryBase.js';
7
- export { getClientMap, pgStorage } from './pgStorage.js';
8
- export { buildQuerySql } from './buildQuerySql.js';
9
- export { getPgClient, withPgClient } from './withPgClient.js';
10
- export { withPgTransaction } from './withPgTransaction.js';