@taico/taico 0.4.1 → 0.5.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 (261) hide show
  1. package/README.md +1 -1
  2. package/dist/ai-providers/ai-model-selection.entity.d.ts +11 -0
  3. package/dist/ai-providers/ai-model-selection.entity.js +58 -0
  4. package/dist/ai-providers/ai-model-selection.entity.js.map +1 -0
  5. package/dist/ai-providers/ai-model-selections.controller.d.ts +12 -0
  6. package/dist/ai-providers/ai-model-selections.controller.js +102 -0
  7. package/dist/ai-providers/ai-model-selections.controller.js.map +1 -0
  8. package/dist/ai-providers/ai-model-selections.service.d.ts +19 -0
  9. package/dist/ai-providers/ai-model-selections.service.js +113 -0
  10. package/dist/ai-providers/ai-model-selections.service.js.map +1 -0
  11. package/dist/ai-providers/ai-provider-models.service.d.ts +14 -0
  12. package/dist/ai-providers/ai-provider-models.service.js +196 -0
  13. package/dist/ai-providers/ai-provider-models.service.js.map +1 -0
  14. package/dist/{chat-providers/chat-provider.entity.d.ts → ai-providers/ai-provider.entity.d.ts} +6 -4
  15. package/dist/{chat-providers/chat-provider.entity.js → ai-providers/ai-provider.entity.js} +31 -21
  16. package/dist/ai-providers/ai-provider.entity.js.map +1 -0
  17. package/dist/ai-providers/ai-providers.controller.d.ts +20 -0
  18. package/dist/ai-providers/ai-providers.controller.js +177 -0
  19. package/dist/ai-providers/ai-providers.controller.js.map +1 -0
  20. package/dist/ai-providers/ai-providers.module.d.ts +2 -0
  21. package/dist/ai-providers/ai-providers.module.js +36 -0
  22. package/dist/ai-providers/ai-providers.module.js.map +1 -0
  23. package/dist/ai-providers/ai-providers.scopes.d.ts +20 -0
  24. package/dist/ai-providers/ai-providers.scopes.js +23 -0
  25. package/dist/ai-providers/ai-providers.scopes.js.map +1 -0
  26. package/dist/ai-providers/ai-providers.service.d.ts +20 -0
  27. package/dist/ai-providers/ai-providers.service.js +200 -0
  28. package/dist/ai-providers/ai-providers.service.js.map +1 -0
  29. package/dist/ai-providers/dto/http/ai-model-selection-params.dto.d.ts +4 -0
  30. package/dist/{chat-providers/dto/http/set-active-chat-provider.dto.js → ai-providers/dto/http/ai-model-selection-params.dto.js} +11 -10
  31. package/dist/ai-providers/dto/http/ai-model-selection-params.dto.js.map +1 -0
  32. package/dist/ai-providers/dto/http/ai-model-selection-response.dto.d.ts +10 -0
  33. package/dist/ai-providers/dto/http/ai-model-selection-response.dto.js +83 -0
  34. package/dist/ai-providers/dto/http/ai-model-selection-response.dto.js.map +1 -0
  35. package/dist/ai-providers/dto/http/ai-provider-model-response.dto.d.ts +6 -0
  36. package/dist/ai-providers/dto/http/ai-provider-model-response.dto.js +45 -0
  37. package/dist/ai-providers/dto/http/ai-provider-model-response.dto.js.map +1 -0
  38. package/dist/ai-providers/dto/http/ai-provider-params.dto.d.ts +3 -0
  39. package/dist/{chat-providers/dto/http/chat-provider-params.dto.js → ai-providers/dto/http/ai-provider-params.dto.js} +6 -6
  40. package/dist/ai-providers/dto/http/ai-provider-params.dto.js.map +1 -0
  41. package/dist/ai-providers/dto/http/ai-provider-response.dto.d.ts +14 -0
  42. package/dist/{chat-providers/dto/http/chat-provider-response.dto.js → ai-providers/dto/http/ai-provider-response.dto.js} +45 -23
  43. package/dist/ai-providers/dto/http/ai-provider-response.dto.js.map +1 -0
  44. package/dist/ai-providers/dto/http/create-ai-provider.dto.d.ts +9 -0
  45. package/dist/ai-providers/dto/http/create-ai-provider.dto.js +90 -0
  46. package/dist/ai-providers/dto/http/create-ai-provider.dto.js.map +1 -0
  47. package/dist/ai-providers/dto/http/set-ai-model-selection.dto.d.ts +4 -0
  48. package/dist/{chat-providers/dto/http/create-chat-provider.dto.js → ai-providers/dto/http/set-ai-model-selection.dto.js} +15 -28
  49. package/dist/ai-providers/dto/http/set-ai-model-selection.dto.js.map +1 -0
  50. package/dist/ai-providers/dto/http/update-ai-provider.dto.d.ts +8 -0
  51. package/dist/ai-providers/dto/http/update-ai-provider.dto.js +88 -0
  52. package/dist/ai-providers/dto/http/update-ai-provider.dto.js.map +1 -0
  53. package/dist/ai-providers/dto/service/ai-providers.service.types.d.ts +62 -0
  54. package/dist/{threads/backends/chat-backend.interface.js → ai-providers/dto/service/ai-providers.service.types.js} +1 -1
  55. package/dist/ai-providers/dto/service/ai-providers.service.types.js.map +1 -0
  56. package/dist/ai-providers/enums/ai-model-job.enum.d.ts +7 -0
  57. package/dist/ai-providers/enums/ai-model-job.enum.js +15 -0
  58. package/dist/ai-providers/enums/ai-model-job.enum.js.map +1 -0
  59. package/dist/ai-providers/enums/ai-model-kind.enum.d.ts +4 -0
  60. package/dist/ai-providers/enums/ai-model-kind.enum.js +9 -0
  61. package/dist/ai-providers/enums/ai-model-kind.enum.js.map +1 -0
  62. package/dist/ai-providers/enums/ai-provider-type.enum.d.ts +8 -0
  63. package/dist/ai-providers/enums/ai-provider-type.enum.js +13 -0
  64. package/dist/ai-providers/enums/ai-provider-type.enum.js.map +1 -0
  65. package/dist/ai-providers/enums/index.d.ts +3 -0
  66. package/dist/{chat-providers → ai-providers}/enums/index.js +3 -1
  67. package/dist/ai-providers/enums/index.js.map +1 -0
  68. package/dist/ai-providers/errors/ai-providers.errors.d.ts +30 -0
  69. package/dist/ai-providers/errors/ai-providers.errors.js +57 -0
  70. package/dist/ai-providers/errors/ai-providers.errors.js.map +1 -0
  71. package/dist/ai-providers/google-environment.d.ts +3 -0
  72. package/dist/ai-providers/google-environment.js +18 -0
  73. package/dist/ai-providers/google-environment.js.map +1 -0
  74. package/dist/app-init/app-init.module.js +2 -2
  75. package/dist/app-init/app-init.module.js.map +1 -1
  76. package/dist/app-init/app-init.runner.d.ts +4 -4
  77. package/dist/app-init/app-init.runner.js +21 -21
  78. package/dist/app-init/app-init.runner.js.map +1 -1
  79. package/dist/app.module.js +15 -3
  80. package/dist/app.module.js.map +1 -1
  81. package/dist/auth/core/scopes/all-api.scopes.js +2 -2
  82. package/dist/auth/core/scopes/all-api.scopes.js.map +1 -1
  83. package/dist/common/postgres-io.adapter.d.ts +12 -0
  84. package/dist/common/postgres-io.adapter.js +62 -0
  85. package/dist/common/postgres-io.adapter.js.map +1 -0
  86. package/dist/config/env.config.d.ts +1 -0
  87. package/dist/config/env.config.js +9 -0
  88. package/dist/config/env.config.js.map +1 -1
  89. package/dist/errors/http/error-catalog.js +20 -14
  90. package/dist/errors/http/error-catalog.js.map +1 -1
  91. package/dist/main.js +4 -0
  92. package/dist/main.js.map +1 -1
  93. package/dist/migrations/1760200000000-ThreadAgentMessages.d.ts +6 -0
  94. package/dist/migrations/1760200000000-ThreadAgentMessages.js +28 -0
  95. package/dist/migrations/1760200000000-ThreadAgentMessages.js.map +1 -0
  96. package/dist/migrations/1760300000000-ChatProviderModelConfig.d.ts +6 -0
  97. package/dist/migrations/1760300000000-ChatProviderModelConfig.js +14 -0
  98. package/dist/migrations/1760300000000-ChatProviderModelConfig.js.map +1 -0
  99. package/dist/migrations/1760400000000-ReplaceAdkChatProvider.d.ts +6 -0
  100. package/dist/migrations/1760400000000-ReplaceAdkChatProvider.js +16 -0
  101. package/dist/migrations/1760400000000-ReplaceAdkChatProvider.js.map +1 -0
  102. package/dist/migrations/1760500000000-AiProviderModelSelections.d.ts +6 -0
  103. package/dist/migrations/1760500000000-AiProviderModelSelections.js +56 -0
  104. package/dist/migrations/1760500000000-AiProviderModelSelections.js.map +1 -0
  105. package/dist/migrations/1760600000000-DropAdkSessionTables.d.ts +6 -0
  106. package/dist/migrations/1760600000000-DropAdkSessionTables.js +51 -0
  107. package/dist/migrations/1760600000000-DropAdkSessionTables.js.map +1 -0
  108. package/dist/public/assets/index-BUmnqjpv.js +117 -0
  109. package/dist/public/assets/index-DOm5BmlC.css +1 -0
  110. package/dist/public/beta/assets/{index-BRla0F5r.js → index-n0qUSWPJ.js} +30 -30
  111. package/dist/public/beta/index.html +1 -1
  112. package/dist/public/index.html +2 -2
  113. package/dist/scripts/migrate-sqlite-to-postgres.js +0 -22
  114. package/dist/scripts/migrate-sqlite-to-postgres.js.map +1 -1
  115. package/dist/threads/agent/agent-context.utils.d.ts +14 -0
  116. package/dist/threads/agent/agent-context.utils.js +42 -0
  117. package/dist/threads/agent/agent-context.utils.js.map +1 -0
  118. package/dist/threads/agent/agent-context.utils.spec.d.ts +1 -0
  119. package/dist/threads/agent/agent-context.utils.spec.js +60 -0
  120. package/dist/threads/agent/agent-context.utils.spec.js.map +1 -0
  121. package/dist/threads/agent/chat-model.factory.d.ts +25 -0
  122. package/dist/threads/agent/chat-model.factory.js +106 -0
  123. package/dist/threads/agent/chat-model.factory.js.map +1 -0
  124. package/dist/threads/agent/chat-model.factory.spec.d.ts +1 -0
  125. package/dist/threads/agent/chat-model.factory.spec.js +83 -0
  126. package/dist/threads/agent/chat-model.factory.spec.js.map +1 -0
  127. package/dist/threads/agent/hooks/compaction.hook.d.ts +11 -0
  128. package/dist/threads/agent/hooks/compaction.hook.js +109 -0
  129. package/dist/threads/agent/hooks/compaction.hook.js.map +1 -0
  130. package/dist/threads/agent/hooks/easter-egg.hook.d.ts +5 -0
  131. package/dist/threads/agent/hooks/easter-egg.hook.js +30 -0
  132. package/dist/threads/agent/hooks/easter-egg.hook.js.map +1 -0
  133. package/dist/threads/agent/hooks/hooks.spec.d.ts +1 -0
  134. package/dist/threads/agent/hooks/hooks.spec.js +87 -0
  135. package/dist/threads/agent/hooks/hooks.spec.js.map +1 -0
  136. package/dist/threads/agent/hooks/thread-agent-hook.interface.d.ts +20 -0
  137. package/dist/threads/agent/hooks/thread-agent-hook.interface.js +5 -0
  138. package/dist/threads/agent/hooks/thread-agent-hook.interface.js.map +1 -0
  139. package/dist/threads/agent/hooks/thread-agent-hooks.runner.d.ts +11 -0
  140. package/dist/threads/agent/hooks/thread-agent-hooks.runner.js +98 -0
  141. package/dist/threads/agent/hooks/thread-agent-hooks.runner.js.map +1 -0
  142. package/dist/threads/agent/taico-mcp-tools.factory.d.ts +22 -0
  143. package/dist/threads/agent/taico-mcp-tools.factory.js +79 -0
  144. package/dist/threads/agent/taico-mcp-tools.factory.js.map +1 -0
  145. package/dist/threads/agent/thread-agent-log.service.d.ts +41 -0
  146. package/dist/threads/agent/thread-agent-log.service.js +157 -0
  147. package/dist/threads/agent/thread-agent-log.service.js.map +1 -0
  148. package/dist/threads/agent/thread-agent-message.entity.d.ts +19 -0
  149. package/dist/threads/agent/thread-agent-message.entity.js +109 -0
  150. package/dist/threads/agent/thread-agent-message.entity.js.map +1 -0
  151. package/dist/threads/agent/thread-agent.enums.d.ts +17 -0
  152. package/dist/threads/agent/thread-agent.enums.js +24 -0
  153. package/dist/threads/agent/thread-agent.enums.js.map +1 -0
  154. package/dist/threads/agent/thread-agent.prompts.d.ts +5 -0
  155. package/dist/threads/{backends/chat-backend.utils.js → agent/thread-agent.prompts.js} +5 -4
  156. package/dist/threads/agent/thread-agent.prompts.js.map +1 -0
  157. package/dist/threads/agent/thread-agent.service.d.ts +33 -0
  158. package/dist/threads/agent/thread-agent.service.js +286 -0
  159. package/dist/threads/agent/thread-agent.service.js.map +1 -0
  160. package/dist/threads/agent/thread-agent.service.spec.d.ts +1 -0
  161. package/dist/threads/agent/thread-agent.service.spec.js +184 -0
  162. package/dist/threads/agent/thread-agent.service.spec.js.map +1 -0
  163. package/dist/threads/agent/thread-turn.entity.d.ts +12 -0
  164. package/dist/threads/agent/thread-turn.entity.js +71 -0
  165. package/dist/threads/agent/thread-turn.entity.js.map +1 -0
  166. package/dist/threads/agent/thread-turns.service.d.ts +13 -0
  167. package/dist/threads/agent/thread-turns.service.js +52 -0
  168. package/dist/threads/agent/thread-turns.service.js.map +1 -0
  169. package/dist/threads/chat.service.d.ts +5 -30
  170. package/dist/threads/chat.service.js +44 -119
  171. package/dist/threads/chat.service.js.map +1 -1
  172. package/dist/threads/dto/service/threads.service.types.d.ts +0 -2
  173. package/dist/threads/dto/thread-list-item-response.dto.d.ts +0 -1
  174. package/dist/threads/dto/thread-list-item-response.dto.js +0 -10
  175. package/dist/threads/dto/thread-list-item-response.dto.js.map +1 -1
  176. package/dist/threads/dto/thread-response.dto.d.ts +0 -1
  177. package/dist/threads/dto/thread-response.dto.js +0 -11
  178. package/dist/threads/dto/thread-response.dto.js.map +1 -1
  179. package/dist/threads/thread-message.entity.d.ts +3 -0
  180. package/dist/threads/thread-message.entity.js +12 -0
  181. package/dist/threads/thread-message.entity.js.map +1 -1
  182. package/dist/threads/thread.entity.d.ts +3 -1
  183. package/dist/threads/thread.entity.js +23 -3
  184. package/dist/threads/thread.entity.js.map +1 -1
  185. package/dist/threads/threads-state.service.spec.js +3 -1
  186. package/dist/threads/threads-state.service.spec.js.map +1 -1
  187. package/dist/threads/threads.module.js +31 -8
  188. package/dist/threads/threads.module.js.map +1 -1
  189. package/dist/threads/threads.service.d.ts +3 -8
  190. package/dist/threads/threads.service.js +6 -143
  191. package/dist/threads/threads.service.js.map +1 -1
  192. package/dist/threads/threads.service.spec.js +3 -2
  193. package/dist/threads/threads.service.spec.js.map +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/dist/walkthrough/dto/walkthrough-status-response.dto.d.ts +1 -0
  196. package/dist/walkthrough/dto/walkthrough-status-response.dto.js +8 -0
  197. package/dist/walkthrough/dto/walkthrough-status-response.dto.js.map +1 -1
  198. package/dist/walkthrough/walkthrough.controller.js +1 -0
  199. package/dist/walkthrough/walkthrough.controller.js.map +1 -1
  200. package/dist/walkthrough/walkthrough.module.js +2 -0
  201. package/dist/walkthrough/walkthrough.module.js.map +1 -1
  202. package/dist/walkthrough/walkthrough.service.d.ts +4 -1
  203. package/dist/walkthrough/walkthrough.service.js +14 -7
  204. package/dist/walkthrough/walkthrough.service.js.map +1 -1
  205. package/package.json +17 -9
  206. package/dist/chat-providers/chat-provider.entity.js.map +0 -1
  207. package/dist/chat-providers/chat-providers.controller.d.ts +0 -19
  208. package/dist/chat-providers/chat-providers.controller.js +0 -179
  209. package/dist/chat-providers/chat-providers.controller.js.map +0 -1
  210. package/dist/chat-providers/chat-providers.module.d.ts +0 -2
  211. package/dist/chat-providers/chat-providers.module.js +0 -32
  212. package/dist/chat-providers/chat-providers.module.js.map +0 -1
  213. package/dist/chat-providers/chat-providers.scopes.d.ts +0 -20
  214. package/dist/chat-providers/chat-providers.scopes.js +0 -23
  215. package/dist/chat-providers/chat-providers.scopes.js.map +0 -1
  216. package/dist/chat-providers/chat-providers.service.d.ts +0 -20
  217. package/dist/chat-providers/chat-providers.service.js +0 -193
  218. package/dist/chat-providers/chat-providers.service.js.map +0 -1
  219. package/dist/chat-providers/dto/http/chat-provider-params.dto.d.ts +0 -3
  220. package/dist/chat-providers/dto/http/chat-provider-params.dto.js.map +0 -1
  221. package/dist/chat-providers/dto/http/chat-provider-response.dto.d.ts +0 -12
  222. package/dist/chat-providers/dto/http/chat-provider-response.dto.js.map +0 -1
  223. package/dist/chat-providers/dto/http/create-chat-provider.dto.d.ts +0 -6
  224. package/dist/chat-providers/dto/http/create-chat-provider.dto.js.map +0 -1
  225. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.d.ts +0 -3
  226. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js.map +0 -1
  227. package/dist/chat-providers/dto/http/update-chat-provider.dto.d.ts +0 -5
  228. package/dist/chat-providers/dto/http/update-chat-provider.dto.js +0 -49
  229. package/dist/chat-providers/dto/http/update-chat-provider.dto.js.map +0 -1
  230. package/dist/chat-providers/dto/service/chat-providers.service.types.d.ts +0 -30
  231. package/dist/chat-providers/dto/service/chat-providers.service.types.js +0 -3
  232. package/dist/chat-providers/dto/service/chat-providers.service.types.js.map +0 -1
  233. package/dist/chat-providers/enums/chat-provider-type.enum.d.ts +0 -4
  234. package/dist/chat-providers/enums/chat-provider-type.enum.js +0 -9
  235. package/dist/chat-providers/enums/chat-provider-type.enum.js.map +0 -1
  236. package/dist/chat-providers/enums/index.d.ts +0 -1
  237. package/dist/chat-providers/enums/index.js.map +0 -1
  238. package/dist/chat-providers/errors/chat-providers.errors.d.ts +0 -25
  239. package/dist/chat-providers/errors/chat-providers.errors.js +0 -48
  240. package/dist/chat-providers/errors/chat-providers.errors.js.map +0 -1
  241. package/dist/llm/llm.module.d.ts +0 -2
  242. package/dist/llm/llm.module.js +0 -23
  243. package/dist/llm/llm.module.js.map +0 -1
  244. package/dist/llm/openai-responses.service.d.ts +0 -12
  245. package/dist/llm/openai-responses.service.js +0 -69
  246. package/dist/llm/openai-responses.service.js.map +0 -1
  247. package/dist/public/assets/index-CPjOd3Sq.css +0 -1
  248. package/dist/public/assets/index-DVNE_5Yh.js +0 -73
  249. package/dist/threads/backends/adk.backend.d.ts +0 -18
  250. package/dist/threads/backends/adk.backend.js +0 -264
  251. package/dist/threads/backends/adk.backend.js.map +0 -1
  252. package/dist/threads/backends/chat-backend.interface.d.ts +0 -39
  253. package/dist/threads/backends/chat-backend.interface.js.map +0 -1
  254. package/dist/threads/backends/chat-backend.utils.d.ts +0 -5
  255. package/dist/threads/backends/chat-backend.utils.js.map +0 -1
  256. package/dist/threads/backends/openai.backend.d.ts +0 -19
  257. package/dist/threads/backends/openai.backend.js +0 -155
  258. package/dist/threads/backends/openai.backend.js.map +0 -1
  259. package/dist/threads/openai-mcp-server-factory.service.d.ts +0 -8
  260. package/dist/threads/openai-mcp-server-factory.service.js +0 -114
  261. package/dist/threads/openai-mcp-server-factory.service.js.map +0 -1
@@ -1,193 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var ChatProvidersService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ChatProvidersService = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const typeorm_1 = require("@nestjs/typeorm");
19
- const typeorm_2 = require("typeorm");
20
- const chat_provider_entity_1 = require("./chat-provider.entity");
21
- const secrets_service_1 = require("../secrets/secrets.service");
22
- const chat_providers_errors_1 = require("./errors/chat-providers.errors");
23
- const enums_1 = require("./enums");
24
- let ChatProvidersService = ChatProvidersService_1 = class ChatProvidersService {
25
- chatProviderRepository;
26
- secretsService;
27
- dataSource;
28
- logger = new common_1.Logger(ChatProvidersService_1.name);
29
- constructor(chatProviderRepository, secretsService, dataSource) {
30
- this.chatProviderRepository = chatProviderRepository;
31
- this.secretsService = secretsService;
32
- this.dataSource = dataSource;
33
- }
34
- async createChatProvider(input) {
35
- this.logger.log({ message: 'Creating chat provider', name: input.name });
36
- const provider = this.chatProviderRepository.create({
37
- name: input.name,
38
- type: input.type,
39
- secretId: input.secretId ?? null,
40
- isActive: false,
41
- });
42
- const saved = await this.chatProviderRepository.save(provider);
43
- return this.mapToResult(saved);
44
- }
45
- async listChatProviders() {
46
- this.logger.log({ message: 'Listing chat providers' });
47
- const providers = await this.chatProviderRepository.find({
48
- order: { createdAt: 'ASC' },
49
- });
50
- return providers.map((p) => this.mapToResult(p));
51
- }
52
- async getChatProviderById(id) {
53
- this.logger.log({ message: 'Fetching chat provider by id', id });
54
- const provider = await this.chatProviderRepository.findOne({
55
- where: { id },
56
- });
57
- if (!provider) {
58
- throw new chat_providers_errors_1.ChatProviderNotFoundError(id);
59
- }
60
- return this.mapToResult(provider);
61
- }
62
- async updateChatProvider(id, input) {
63
- this.logger.log({ message: 'Updating chat provider', id });
64
- const provider = await this.chatProviderRepository.findOne({
65
- where: { id },
66
- });
67
- if (!provider) {
68
- throw new chat_providers_errors_1.ChatProviderNotFoundError(id);
69
- }
70
- if (input.name !== undefined) {
71
- provider.name = input.name;
72
- }
73
- if (input.apiKey !== undefined) {
74
- if (!input.createdByActorId) {
75
- throw new Error('createdByActorId is required when providing an API key');
76
- }
77
- if (provider.secretId) {
78
- this.logger.log({ message: 'Updating secret for API key', providerId: id });
79
- await this.secretsService.updateSecret(provider.secretId, {
80
- value: input.apiKey,
81
- description: `API key for ${provider.name} chat provider`,
82
- });
83
- }
84
- else {
85
- this.logger.log({ message: 'Creating secret for API key', providerId: id });
86
- const secret = await this.secretsService.createSecret({
87
- name: `${provider.name} API Key`,
88
- description: `API key for ${provider.name} chat provider`,
89
- value: input.apiKey,
90
- createdByActorId: input.createdByActorId,
91
- });
92
- provider.secretId = secret.id;
93
- }
94
- }
95
- else if (input.secretId !== undefined) {
96
- provider.secretId = input.secretId;
97
- }
98
- await this.chatProviderRepository.save(provider);
99
- return this.mapToResult(provider);
100
- }
101
- async deleteChatProvider(id) {
102
- this.logger.log({ message: 'Deleting chat provider', id });
103
- const provider = await this.chatProviderRepository.findOne({
104
- where: { id },
105
- });
106
- if (!provider) {
107
- throw new chat_providers_errors_1.ChatProviderNotFoundError(id);
108
- }
109
- await this.chatProviderRepository.softDelete(id);
110
- }
111
- async setActiveChatProvider(input) {
112
- this.logger.log({
113
- message: 'Setting active chat provider',
114
- providerId: input.providerId,
115
- });
116
- return await this.dataSource.transaction(async (manager) => {
117
- const repository = manager.getRepository(chat_provider_entity_1.ChatProviderEntity);
118
- const provider = await repository.findOne({
119
- where: { id: input.providerId },
120
- });
121
- if (!provider) {
122
- throw new chat_providers_errors_1.ChatProviderNotFoundError(input.providerId);
123
- }
124
- if (provider.type !== enums_1.ChatProviderType.ADK && !provider.secretId) {
125
- throw new chat_providers_errors_1.ChatProviderNotConfiguredError(input.providerId);
126
- }
127
- await repository
128
- .createQueryBuilder()
129
- .update(chat_provider_entity_1.ChatProviderEntity)
130
- .set({ isActive: false })
131
- .where('id != :providerId', { providerId: input.providerId })
132
- .andWhere('is_active = :isActive', { isActive: true })
133
- .execute();
134
- provider.isActive = true;
135
- const saved = await repository.save(provider);
136
- return this.mapToResult(saved);
137
- });
138
- }
139
- async deactivateActiveChatProvider() {
140
- this.logger.log({ message: 'Deactivating active chat provider' });
141
- await this.dataSource.transaction(async (manager) => {
142
- const repository = manager.getRepository(chat_provider_entity_1.ChatProviderEntity);
143
- await repository
144
- .createQueryBuilder()
145
- .update(chat_provider_entity_1.ChatProviderEntity)
146
- .set({ isActive: false })
147
- .where('is_active = :isActive', { isActive: true })
148
- .execute();
149
- });
150
- }
151
- async getActiveChatProviderConfig() {
152
- this.logger.log({ message: 'Fetching active chat provider configuration' });
153
- const activeProvider = await this.chatProviderRepository.findOne({
154
- where: { isActive: true },
155
- });
156
- if (!activeProvider) {
157
- throw new chat_providers_errors_1.NoActiveChatProviderError();
158
- }
159
- if (activeProvider.type === enums_1.ChatProviderType.ADK) {
160
- return { type: activeProvider.type, apiKey: null };
161
- }
162
- if (!activeProvider.secretId) {
163
- throw new chat_providers_errors_1.ChatProviderNotConfiguredError(activeProvider.id);
164
- }
165
- const secretValue = await this.secretsService.getSecretValue(activeProvider.secretId);
166
- return {
167
- type: activeProvider.type,
168
- apiKey: secretValue.value,
169
- };
170
- }
171
- mapToResult(provider) {
172
- return {
173
- id: provider.id,
174
- name: provider.name,
175
- type: provider.type,
176
- secretId: provider.secretId,
177
- isActive: provider.isActive,
178
- isConfigured: provider.type === enums_1.ChatProviderType.ADK ? true : !!provider.secretId,
179
- rowVersion: provider.rowVersion,
180
- createdAt: provider.createdAt,
181
- updatedAt: provider.updatedAt,
182
- };
183
- }
184
- };
185
- exports.ChatProvidersService = ChatProvidersService;
186
- exports.ChatProvidersService = ChatProvidersService = ChatProvidersService_1 = __decorate([
187
- (0, common_1.Injectable)(),
188
- __param(0, (0, typeorm_1.InjectRepository)(chat_provider_entity_1.ChatProviderEntity)),
189
- __metadata("design:paramtypes", [typeorm_2.Repository,
190
- secrets_service_1.SecretsService,
191
- typeorm_2.DataSource])
192
- ], ChatProvidersService);
193
- //# sourceMappingURL=chat-providers.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-providers.service.js","sourceRoot":"","sources":["../../src/chat-providers/chat-providers.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare class ChatProviderParamsDto {
2
- id: string;
3
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-provider-params.dto.js","sourceRoot":"","sources":["../../../../src/chat-providers/dto/http/chat-provider-params.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAyC;AAEzC,MAAa,qBAAqB;IAMhC,EAAE,CAAU;CACb;AAPD,sDAOC;AADC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,IAAA,wBAAM,GAAE;;iDACG"}
@@ -1,12 +0,0 @@
1
- import { ChatProviderType } from '../../enums';
2
- export declare class ChatProviderResponseDto {
3
- id: string;
4
- name: string;
5
- type: ChatProviderType;
6
- secretId: string | null;
7
- isActive: boolean;
8
- isConfigured: boolean;
9
- rowVersion: number;
10
- createdAt: string;
11
- updatedAt: string;
12
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-provider-response.dto.js","sourceRoot":"","sources":["../../../../src/chat-providers/dto/http/chat-provider-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,uCAA+C;AAE/C,MAAa,uBAAuB;IAKlC,EAAE,CAAU;IAMZ,IAAI,CAAU;IAOd,IAAI,CAAoB;IAQxB,QAAQ,CAAiB;IAMzB,QAAQ,CAAW;IAMnB,YAAY,CAAW;IAMvB,UAAU,CAAU;IAMpB,SAAS,CAAU;IAMnB,SAAS,CAAU;CACpB;AAzDD,0DAyDC;AApDC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,sCAAsC;KAChD,CAAC;;mDACU;AAMZ;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,mBAAmB;KAC7B,CAAC;;qDACY;AAOd;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,wBAAgB;QACtB,OAAO,EAAE,wBAAgB,CAAC,MAAM;KACjC,CAAC;;qDACsB;AAQxB;IANC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,IAAI;KACf,CAAC;;yDACuB;AAMzB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,IAAI;KACd,CAAC;;yDACiB;AAMnB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sDAAsD;QACnE,OAAO,EAAE,IAAI;KACd,CAAC;;6DACqB;AAMvB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,CAAC;KACX,CAAC;;2DACkB;AAMpB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,0BAA0B;KACpC,CAAC;;0DACiB;AAMnB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kDAAkD;QAC/D,OAAO,EAAE,0BAA0B;KACpC,CAAC;;0DACiB"}
@@ -1,6 +0,0 @@
1
- import { ChatProviderType } from '../../enums';
2
- export declare class CreateChatProviderDto {
3
- name: string;
4
- type: ChatProviderType;
5
- secretId?: string;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-chat-provider.dto.js","sourceRoot":"","sources":["../../../../src/chat-providers/dto/http/create-chat-provider.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAA8F;AAC9F,uCAA+C;AAE/C,MAAa,qBAAqB;IAQhC,IAAI,CAAU;IASd,IAAI,CAAoB;IAQxB,QAAQ,CAAU;CACnB;AA1BD,sDA0BC;AAlBC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,mBAAmB;KAC7B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,GAAG,CAAC;;mDACD;AASd;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,wBAAgB;QACtB,OAAO,EAAE,wBAAgB,CAAC,MAAM;KACjC,CAAC;IACD,IAAA,wBAAM,EAAC,wBAAgB,CAAC;IACxB,IAAA,4BAAU,GAAE;;mDACW;AAQxB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;uDACK"}
@@ -1,3 +0,0 @@
1
- export declare class SetActiveChatProviderDto {
2
- providerId: string;
3
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"set-active-chat-provider.dto.js","sourceRoot":"","sources":["../../../../src/chat-providers/dto/http/set-active-chat-provider.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAqD;AAErD,MAAa,wBAAwB;IAOnC,UAAU,CAAU;CACrB;AARD,4DAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;4DACO"}
@@ -1,5 +0,0 @@
1
- export declare class UpdateChatProviderDto {
2
- name?: string;
3
- secretId?: string;
4
- apiKey?: string;
5
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UpdateChatProviderDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- const class_validator_1 = require("class-validator");
15
- class UpdateChatProviderDto {
16
- name;
17
- secretId;
18
- apiKey;
19
- }
20
- exports.UpdateChatProviderDto = UpdateChatProviderDto;
21
- __decorate([
22
- (0, swagger_1.ApiPropertyOptional)({
23
- description: 'Display name for the chat provider',
24
- example: 'OpenAI Production',
25
- }),
26
- (0, class_validator_1.IsString)(),
27
- (0, class_validator_1.IsOptional)(),
28
- (0, class_validator_1.MaxLength)(255),
29
- __metadata("design:type", String)
30
- ], UpdateChatProviderDto.prototype, "name", void 0);
31
- __decorate([
32
- (0, swagger_1.ApiPropertyOptional)({
33
- description: 'ID of the secret containing the API key',
34
- example: '123e4567-e89b-12d3-a456-426614174000',
35
- }),
36
- (0, class_validator_1.IsUUID)(),
37
- (0, class_validator_1.IsOptional)(),
38
- __metadata("design:type", String)
39
- ], UpdateChatProviderDto.prototype, "secretId", void 0);
40
- __decorate([
41
- (0, swagger_1.ApiPropertyOptional)({
42
- description: 'API key for the chat provider. If provided, a secret will be created automatically.',
43
- example: 'sk-...',
44
- }),
45
- (0, class_validator_1.IsString)(),
46
- (0, class_validator_1.IsOptional)(),
47
- __metadata("design:type", String)
48
- ], UpdateChatProviderDto.prototype, "apiKey", void 0);
49
- //# sourceMappingURL=update-chat-provider.dto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-chat-provider.dto.js","sourceRoot":"","sources":["../../../../src/chat-providers/dto/http/update-chat-provider.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,qDAA0E;AAE1E,MAAa,qBAAqB;IAQhC,IAAI,CAAU;IAQd,QAAQ,CAAU;IAQlB,MAAM,CAAU;CACjB;AAzBD,sDAyBC;AAjBC;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,mBAAmB;KAC7B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,GAAG,CAAC;;mDACD;AAQd;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;uDACK;AAQlB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,qFAAqF;QAClG,OAAO,EAAE,QAAQ;KAClB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACG"}
@@ -1,30 +0,0 @@
1
- import { ChatProviderType } from '../../enums';
2
- export type CreateChatProviderInput = {
3
- name: string;
4
- type: ChatProviderType;
5
- secretId?: string | null;
6
- };
7
- export type UpdateChatProviderInput = {
8
- name?: string;
9
- secretId?: string | null;
10
- apiKey?: string;
11
- createdByActorId?: string;
12
- };
13
- export type SetActiveChatProviderInput = {
14
- providerId: string;
15
- };
16
- export type ChatProviderResult = {
17
- id: string;
18
- name: string;
19
- type: ChatProviderType;
20
- secretId: string | null;
21
- isActive: boolean;
22
- isConfigured: boolean;
23
- rowVersion: number;
24
- createdAt: Date;
25
- updatedAt: Date;
26
- };
27
- export type ActiveChatProviderConfigResult = {
28
- type: ChatProviderType;
29
- apiKey: string | null;
30
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=chat-providers.service.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-providers.service.types.js","sourceRoot":"","sources":["../../../../src/chat-providers/dto/service/chat-providers.service.types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export declare enum ChatProviderType {
2
- OPENAI = "openai",
3
- ADK = "adk"
4
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatProviderType = void 0;
4
- var ChatProviderType;
5
- (function (ChatProviderType) {
6
- ChatProviderType["OPENAI"] = "openai";
7
- ChatProviderType["ADK"] = "adk";
8
- })(ChatProviderType || (exports.ChatProviderType = ChatProviderType = {}));
9
- //# sourceMappingURL=chat-provider-type.enum.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-provider-type.enum.js","sourceRoot":"","sources":["../../../src/chat-providers/enums/chat-provider-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,+BAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B"}
@@ -1 +0,0 @@
1
- export * from './chat-provider-type.enum';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chat-providers/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
@@ -1,25 +0,0 @@
1
- export declare const ChatProvidersErrorCodes: {
2
- readonly CHAT_PROVIDER_NOT_FOUND: "CHAT_PROVIDER_NOT_FOUND";
3
- readonly CHAT_PROVIDER_ALREADY_ACTIVE: "CHAT_PROVIDER_ALREADY_ACTIVE";
4
- readonly CHAT_PROVIDER_NOT_CONFIGURED: "CHAT_PROVIDER_NOT_CONFIGURED";
5
- readonly NO_ACTIVE_CHAT_PROVIDER: "NO_ACTIVE_CHAT_PROVIDER";
6
- };
7
- type ChatProvidersErrorCode = (typeof ChatProvidersErrorCodes)[keyof typeof ChatProvidersErrorCodes];
8
- export declare abstract class ChatProvidersDomainError extends Error {
9
- readonly code: ChatProvidersErrorCode;
10
- readonly context?: Record<string, unknown> | undefined;
11
- constructor(message: string, code: ChatProvidersErrorCode, context?: Record<string, unknown> | undefined);
12
- }
13
- export declare class ChatProviderNotFoundError extends ChatProvidersDomainError {
14
- constructor(providerId: string);
15
- }
16
- export declare class ChatProviderAlreadyActiveError extends ChatProvidersDomainError {
17
- constructor(providerId: string);
18
- }
19
- export declare class ChatProviderNotConfiguredError extends ChatProvidersDomainError {
20
- constructor(providerId: string);
21
- }
22
- export declare class NoActiveChatProviderError extends ChatProvidersDomainError {
23
- constructor();
24
- }
25
- export {};
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NoActiveChatProviderError = exports.ChatProviderNotConfiguredError = exports.ChatProviderAlreadyActiveError = exports.ChatProviderNotFoundError = exports.ChatProvidersDomainError = exports.ChatProvidersErrorCodes = void 0;
4
- const errors_1 = require("@taico/errors");
5
- exports.ChatProvidersErrorCodes = {
6
- CHAT_PROVIDER_NOT_FOUND: errors_1.ErrorCodes.CHAT_PROVIDER_NOT_FOUND,
7
- CHAT_PROVIDER_ALREADY_ACTIVE: errors_1.ErrorCodes.CHAT_PROVIDER_ALREADY_ACTIVE,
8
- CHAT_PROVIDER_NOT_CONFIGURED: errors_1.ErrorCodes.CHAT_PROVIDER_NOT_CONFIGURED,
9
- NO_ACTIVE_CHAT_PROVIDER: errors_1.ErrorCodes.NO_ACTIVE_CHAT_PROVIDER,
10
- };
11
- class ChatProvidersDomainError extends Error {
12
- code;
13
- context;
14
- constructor(message, code, context) {
15
- super(message);
16
- this.code = code;
17
- this.context = context;
18
- this.name = this.constructor.name;
19
- }
20
- }
21
- exports.ChatProvidersDomainError = ChatProvidersDomainError;
22
- class ChatProviderNotFoundError extends ChatProvidersDomainError {
23
- constructor(providerId) {
24
- super('Chat provider not found.', exports.ChatProvidersErrorCodes.CHAT_PROVIDER_NOT_FOUND, {
25
- providerId,
26
- });
27
- }
28
- }
29
- exports.ChatProviderNotFoundError = ChatProviderNotFoundError;
30
- class ChatProviderAlreadyActiveError extends ChatProvidersDomainError {
31
- constructor(providerId) {
32
- super('Another chat provider is already active.', exports.ChatProvidersErrorCodes.CHAT_PROVIDER_ALREADY_ACTIVE, { providerId });
33
- }
34
- }
35
- exports.ChatProviderAlreadyActiveError = ChatProviderAlreadyActiveError;
36
- class ChatProviderNotConfiguredError extends ChatProvidersDomainError {
37
- constructor(providerId) {
38
- super('Chat provider is not fully configured.', exports.ChatProvidersErrorCodes.CHAT_PROVIDER_NOT_CONFIGURED, { providerId });
39
- }
40
- }
41
- exports.ChatProviderNotConfiguredError = ChatProviderNotConfiguredError;
42
- class NoActiveChatProviderError extends ChatProvidersDomainError {
43
- constructor() {
44
- super('No active chat provider configured.', exports.ChatProvidersErrorCodes.NO_ACTIVE_CHAT_PROVIDER);
45
- }
46
- }
47
- exports.NoActiveChatProviderError = NoActiveChatProviderError;
48
- //# sourceMappingURL=chat-providers.errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-providers.errors.js","sourceRoot":"","sources":["../../../src/chat-providers/errors/chat-providers.errors.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAE9B,QAAA,uBAAuB,GAAG;IACrC,uBAAuB,EAAE,mBAAU,CAAC,uBAAuB;IAC3D,4BAA4B,EAAE,mBAAU,CAAC,4BAA4B;IACrE,4BAA4B,EAAE,mBAAU,CAAC,4BAA4B;IACrE,uBAAuB,EAAE,mBAAU,CAAC,uBAAuB;CACnD,CAAC;AAKX,MAAsB,wBAAyB,SAAQ,KAAK;IAG/C;IACA;IAHX,YACE,OAAe,EACN,IAA4B,EAC5B,OAAiC;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAwB;QAC5B,YAAO,GAAP,OAAO,CAA0B;QAG1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AATD,4DASC;AAED,MAAa,yBAA0B,SAAQ,wBAAwB;IACrE,YAAY,UAAkB;QAC5B,KAAK,CAAC,0BAA0B,EAAE,+BAAuB,CAAC,uBAAuB,EAAE;YACjF,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAND,8DAMC;AAED,MAAa,8BAA+B,SAAQ,wBAAwB;IAC1E,YAAY,UAAkB;QAC5B,KAAK,CACH,0CAA0C,EAC1C,+BAAuB,CAAC,4BAA4B,EACpD,EAAE,UAAU,EAAE,CACf,CAAC;IACJ,CAAC;CACF;AARD,wEAQC;AAED,MAAa,8BAA+B,SAAQ,wBAAwB;IAC1E,YAAY,UAAkB;QAC5B,KAAK,CACH,wCAAwC,EACxC,+BAAuB,CAAC,4BAA4B,EACpD,EAAE,UAAU,EAAE,CACf,CAAC;IACJ,CAAC;CACF;AARD,wEAQC;AAED,MAAa,yBAA0B,SAAQ,wBAAwB;IACrE;QACE,KAAK,CAAC,qCAAqC,EAAE,+BAAuB,CAAC,uBAAuB,CAAC,CAAC;IAChG,CAAC;CACF;AAJD,8DAIC"}
@@ -1,2 +0,0 @@
1
- export declare class LlmModule {
2
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.LlmModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const chat_providers_module_1 = require("../chat-providers/chat-providers.module");
12
- const openai_responses_service_1 = require("./openai-responses.service");
13
- let LlmModule = class LlmModule {
14
- };
15
- exports.LlmModule = LlmModule;
16
- exports.LlmModule = LlmModule = __decorate([
17
- (0, common_1.Module)({
18
- imports: [chat_providers_module_1.ChatProvidersModule],
19
- providers: [openai_responses_service_1.OpenAiResponsesService],
20
- exports: [openai_responses_service_1.OpenAiResponsesService],
21
- })
22
- ], LlmModule);
23
- //# sourceMappingURL=llm.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm.module.js","sourceRoot":"","sources":["../../src/llm/llm.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mFAA8E;AAC9E,yEAAoE;AAO7D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,2CAAmB,CAAC;QAC9B,SAAS,EAAE,CAAC,iDAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,iDAAsB,CAAC;KAClC,CAAC;GACW,SAAS,CAAG"}
@@ -1,12 +0,0 @@
1
- import { ChatProvidersService } from '../chat-providers/chat-providers.service';
2
- export type GenerateTextInput = {
3
- prompt: string;
4
- model?: string;
5
- };
6
- export declare class OpenAiResponsesService {
7
- private readonly chatProvidersService;
8
- private readonly logger;
9
- constructor(chatProvidersService: ChatProvidersService);
10
- private extractResponseText;
11
- generateText(input: GenerateTextInput): Promise<string | null>;
12
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var OpenAiResponsesService_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.OpenAiResponsesService = void 0;
14
- const common_1 = require("@nestjs/common");
15
- const openai_1 = require("openai");
16
- const chat_providers_service_1 = require("../chat-providers/chat-providers.service");
17
- let OpenAiResponsesService = OpenAiResponsesService_1 = class OpenAiResponsesService {
18
- chatProvidersService;
19
- logger = new common_1.Logger(OpenAiResponsesService_1.name);
20
- constructor(chatProvidersService) {
21
- this.chatProvidersService = chatProvidersService;
22
- }
23
- extractResponseText(response) {
24
- return response.output_text.trim();
25
- }
26
- async generateText(input) {
27
- let apiKey;
28
- try {
29
- const config = await this.chatProvidersService.getActiveChatProviderConfig();
30
- if (!config.apiKey) {
31
- return null;
32
- }
33
- apiKey = config.apiKey;
34
- }
35
- catch (error) {
36
- this.logger.warn({
37
- message: 'Skipping OpenAI response generation because no active chat provider is configured',
38
- error: error instanceof Error
39
- ? { message: error.message, name: error.name }
40
- : String(error),
41
- });
42
- return null;
43
- }
44
- try {
45
- const client = new openai_1.OpenAI({ apiKey });
46
- const response = await client.responses.create({
47
- model: input.model || 'gpt-5.4',
48
- input: input.prompt,
49
- });
50
- const text = this.extractResponseText(response);
51
- return text || null;
52
- }
53
- catch (error) {
54
- this.logger.warn({
55
- message: 'OpenAI response generation failed',
56
- error: error instanceof Error
57
- ? { message: error.message, stack: error.stack }
58
- : String(error),
59
- });
60
- return null;
61
- }
62
- }
63
- };
64
- exports.OpenAiResponsesService = OpenAiResponsesService;
65
- exports.OpenAiResponsesService = OpenAiResponsesService = OpenAiResponsesService_1 = __decorate([
66
- (0, common_1.Injectable)(),
67
- __metadata("design:paramtypes", [chat_providers_service_1.ChatProvidersService])
68
- ], OpenAiResponsesService);
69
- //# sourceMappingURL=openai-responses.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-responses.service.js","sourceRoot":"","sources":["../../src/llm/openai-responses.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mCAAgC;AAEhC,qFAAgF;AAQzE,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAGJ;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IAElE,YAA6B,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;IAAG,CAAC;IAEnE,mBAAmB,CAAC,QAAwB;QAClD,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAwB;QACzC,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,EAAE,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,mFAAmF;gBAC5F,KAAK,EACH,KAAK,YAAY,KAAK;oBACpB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;oBAC9C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACpB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS;gBAC/B,KAAK,EAAE,KAAK,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAChD,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,mCAAmC;gBAC5C,KAAK,EACH,KAAK,YAAY,KAAK;oBACpB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;oBAChD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACpB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAhDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAIwC,6CAAoB;GAH5D,sBAAsB,CAgDlC"}