@taico/taico 0.4.1 → 0.5.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.
Files changed (265) 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-Bu8fSAx2.js +117 -0
  109. package/dist/public/assets/index-DOm5BmlC.css +1 -0
  110. package/dist/public/beta/assets/index-B9fCnAUe.js +94 -0
  111. package/dist/public/beta/assets/index-DIzh0pTC.css +1 -0
  112. package/dist/public/beta/index.html +2 -2
  113. package/dist/public/index.html +2 -2
  114. package/dist/public/package.json +4 -4
  115. package/dist/scripts/migrate-sqlite-to-postgres.js +0 -22
  116. package/dist/scripts/migrate-sqlite-to-postgres.js.map +1 -1
  117. package/dist/threads/agent/agent-context.utils.d.ts +14 -0
  118. package/dist/threads/agent/agent-context.utils.js +42 -0
  119. package/dist/threads/agent/agent-context.utils.js.map +1 -0
  120. package/dist/threads/agent/agent-context.utils.spec.d.ts +1 -0
  121. package/dist/threads/agent/agent-context.utils.spec.js +60 -0
  122. package/dist/threads/agent/agent-context.utils.spec.js.map +1 -0
  123. package/dist/threads/agent/chat-model.factory.d.ts +25 -0
  124. package/dist/threads/agent/chat-model.factory.js +106 -0
  125. package/dist/threads/agent/chat-model.factory.js.map +1 -0
  126. package/dist/threads/agent/chat-model.factory.spec.d.ts +1 -0
  127. package/dist/threads/agent/chat-model.factory.spec.js +83 -0
  128. package/dist/threads/agent/chat-model.factory.spec.js.map +1 -0
  129. package/dist/threads/agent/hooks/compaction.hook.d.ts +11 -0
  130. package/dist/threads/agent/hooks/compaction.hook.js +109 -0
  131. package/dist/threads/agent/hooks/compaction.hook.js.map +1 -0
  132. package/dist/threads/agent/hooks/easter-egg.hook.d.ts +5 -0
  133. package/dist/threads/agent/hooks/easter-egg.hook.js +30 -0
  134. package/dist/threads/agent/hooks/easter-egg.hook.js.map +1 -0
  135. package/dist/threads/agent/hooks/hooks.spec.d.ts +1 -0
  136. package/dist/threads/agent/hooks/hooks.spec.js +87 -0
  137. package/dist/threads/agent/hooks/hooks.spec.js.map +1 -0
  138. package/dist/threads/agent/hooks/thread-agent-hook.interface.d.ts +20 -0
  139. package/dist/threads/agent/hooks/thread-agent-hook.interface.js +5 -0
  140. package/dist/threads/agent/hooks/thread-agent-hook.interface.js.map +1 -0
  141. package/dist/threads/agent/hooks/thread-agent-hooks.runner.d.ts +11 -0
  142. package/dist/threads/agent/hooks/thread-agent-hooks.runner.js +98 -0
  143. package/dist/threads/agent/hooks/thread-agent-hooks.runner.js.map +1 -0
  144. package/dist/threads/agent/taico-mcp-tools.factory.d.ts +22 -0
  145. package/dist/threads/agent/taico-mcp-tools.factory.js +79 -0
  146. package/dist/threads/agent/taico-mcp-tools.factory.js.map +1 -0
  147. package/dist/threads/agent/thread-agent-log.service.d.ts +41 -0
  148. package/dist/threads/agent/thread-agent-log.service.js +157 -0
  149. package/dist/threads/agent/thread-agent-log.service.js.map +1 -0
  150. package/dist/threads/agent/thread-agent-message.entity.d.ts +19 -0
  151. package/dist/threads/agent/thread-agent-message.entity.js +109 -0
  152. package/dist/threads/agent/thread-agent-message.entity.js.map +1 -0
  153. package/dist/threads/agent/thread-agent.enums.d.ts +17 -0
  154. package/dist/threads/agent/thread-agent.enums.js +24 -0
  155. package/dist/threads/agent/thread-agent.enums.js.map +1 -0
  156. package/dist/threads/agent/thread-agent.prompts.d.ts +5 -0
  157. package/dist/threads/{backends/chat-backend.utils.js → agent/thread-agent.prompts.js} +5 -4
  158. package/dist/threads/agent/thread-agent.prompts.js.map +1 -0
  159. package/dist/threads/agent/thread-agent.service.d.ts +33 -0
  160. package/dist/threads/agent/thread-agent.service.js +286 -0
  161. package/dist/threads/agent/thread-agent.service.js.map +1 -0
  162. package/dist/threads/agent/thread-agent.service.spec.d.ts +1 -0
  163. package/dist/threads/agent/thread-agent.service.spec.js +184 -0
  164. package/dist/threads/agent/thread-agent.service.spec.js.map +1 -0
  165. package/dist/threads/agent/thread-turn.entity.d.ts +12 -0
  166. package/dist/threads/agent/thread-turn.entity.js +71 -0
  167. package/dist/threads/agent/thread-turn.entity.js.map +1 -0
  168. package/dist/threads/agent/thread-turns.service.d.ts +13 -0
  169. package/dist/threads/agent/thread-turns.service.js +52 -0
  170. package/dist/threads/agent/thread-turns.service.js.map +1 -0
  171. package/dist/threads/chat.service.d.ts +5 -30
  172. package/dist/threads/chat.service.js +44 -119
  173. package/dist/threads/chat.service.js.map +1 -1
  174. package/dist/threads/dto/service/threads.service.types.d.ts +0 -2
  175. package/dist/threads/dto/thread-list-item-response.dto.d.ts +0 -1
  176. package/dist/threads/dto/thread-list-item-response.dto.js +0 -10
  177. package/dist/threads/dto/thread-list-item-response.dto.js.map +1 -1
  178. package/dist/threads/dto/thread-response.dto.d.ts +0 -1
  179. package/dist/threads/dto/thread-response.dto.js +0 -11
  180. package/dist/threads/dto/thread-response.dto.js.map +1 -1
  181. package/dist/threads/thread-message.entity.d.ts +3 -0
  182. package/dist/threads/thread-message.entity.js +12 -0
  183. package/dist/threads/thread-message.entity.js.map +1 -1
  184. package/dist/threads/thread.entity.d.ts +3 -1
  185. package/dist/threads/thread.entity.js +23 -3
  186. package/dist/threads/thread.entity.js.map +1 -1
  187. package/dist/threads/threads-state.service.spec.js +3 -1
  188. package/dist/threads/threads-state.service.spec.js.map +1 -1
  189. package/dist/threads/threads.module.js +31 -8
  190. package/dist/threads/threads.module.js.map +1 -1
  191. package/dist/threads/threads.service.d.ts +3 -8
  192. package/dist/threads/threads.service.js +6 -143
  193. package/dist/threads/threads.service.js.map +1 -1
  194. package/dist/threads/threads.service.spec.js +3 -2
  195. package/dist/threads/threads.service.spec.js.map +1 -1
  196. package/dist/tsconfig.tsbuildinfo +1 -1
  197. package/dist/walkthrough/dto/walkthrough-status-response.dto.d.ts +1 -0
  198. package/dist/walkthrough/dto/walkthrough-status-response.dto.js +8 -0
  199. package/dist/walkthrough/dto/walkthrough-status-response.dto.js.map +1 -1
  200. package/dist/walkthrough/walkthrough.controller.js +1 -0
  201. package/dist/walkthrough/walkthrough.controller.js.map +1 -1
  202. package/dist/walkthrough/walkthrough.module.js +2 -0
  203. package/dist/walkthrough/walkthrough.module.js.map +1 -1
  204. package/dist/walkthrough/walkthrough.service.d.ts +4 -1
  205. package/dist/walkthrough/walkthrough.service.js +14 -7
  206. package/dist/walkthrough/walkthrough.service.js.map +1 -1
  207. package/package.json +17 -9
  208. package/dist/chat-providers/chat-provider.entity.js.map +0 -1
  209. package/dist/chat-providers/chat-providers.controller.d.ts +0 -19
  210. package/dist/chat-providers/chat-providers.controller.js +0 -179
  211. package/dist/chat-providers/chat-providers.controller.js.map +0 -1
  212. package/dist/chat-providers/chat-providers.module.d.ts +0 -2
  213. package/dist/chat-providers/chat-providers.module.js +0 -32
  214. package/dist/chat-providers/chat-providers.module.js.map +0 -1
  215. package/dist/chat-providers/chat-providers.scopes.d.ts +0 -20
  216. package/dist/chat-providers/chat-providers.scopes.js +0 -23
  217. package/dist/chat-providers/chat-providers.scopes.js.map +0 -1
  218. package/dist/chat-providers/chat-providers.service.d.ts +0 -20
  219. package/dist/chat-providers/chat-providers.service.js +0 -193
  220. package/dist/chat-providers/chat-providers.service.js.map +0 -1
  221. package/dist/chat-providers/dto/http/chat-provider-params.dto.d.ts +0 -3
  222. package/dist/chat-providers/dto/http/chat-provider-params.dto.js.map +0 -1
  223. package/dist/chat-providers/dto/http/chat-provider-response.dto.d.ts +0 -12
  224. package/dist/chat-providers/dto/http/chat-provider-response.dto.js.map +0 -1
  225. package/dist/chat-providers/dto/http/create-chat-provider.dto.d.ts +0 -6
  226. package/dist/chat-providers/dto/http/create-chat-provider.dto.js.map +0 -1
  227. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.d.ts +0 -3
  228. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js.map +0 -1
  229. package/dist/chat-providers/dto/http/update-chat-provider.dto.d.ts +0 -5
  230. package/dist/chat-providers/dto/http/update-chat-provider.dto.js +0 -49
  231. package/dist/chat-providers/dto/http/update-chat-provider.dto.js.map +0 -1
  232. package/dist/chat-providers/dto/service/chat-providers.service.types.d.ts +0 -30
  233. package/dist/chat-providers/dto/service/chat-providers.service.types.js +0 -3
  234. package/dist/chat-providers/dto/service/chat-providers.service.types.js.map +0 -1
  235. package/dist/chat-providers/enums/chat-provider-type.enum.d.ts +0 -4
  236. package/dist/chat-providers/enums/chat-provider-type.enum.js +0 -9
  237. package/dist/chat-providers/enums/chat-provider-type.enum.js.map +0 -1
  238. package/dist/chat-providers/enums/index.d.ts +0 -1
  239. package/dist/chat-providers/enums/index.js.map +0 -1
  240. package/dist/chat-providers/errors/chat-providers.errors.d.ts +0 -25
  241. package/dist/chat-providers/errors/chat-providers.errors.js +0 -48
  242. package/dist/chat-providers/errors/chat-providers.errors.js.map +0 -1
  243. package/dist/llm/llm.module.d.ts +0 -2
  244. package/dist/llm/llm.module.js +0 -23
  245. package/dist/llm/llm.module.js.map +0 -1
  246. package/dist/llm/openai-responses.service.d.ts +0 -12
  247. package/dist/llm/openai-responses.service.js +0 -69
  248. package/dist/llm/openai-responses.service.js.map +0 -1
  249. package/dist/public/assets/index-CPjOd3Sq.css +0 -1
  250. package/dist/public/assets/index-DVNE_5Yh.js +0 -73
  251. package/dist/public/beta/assets/index-BRla0F5r.js +0 -94
  252. package/dist/public/beta/assets/index-BaBvl20K.css +0 -1
  253. package/dist/threads/backends/adk.backend.d.ts +0 -18
  254. package/dist/threads/backends/adk.backend.js +0 -264
  255. package/dist/threads/backends/adk.backend.js.map +0 -1
  256. package/dist/threads/backends/chat-backend.interface.d.ts +0 -39
  257. package/dist/threads/backends/chat-backend.interface.js.map +0 -1
  258. package/dist/threads/backends/chat-backend.utils.d.ts +0 -5
  259. package/dist/threads/backends/chat-backend.utils.js.map +0 -1
  260. package/dist/threads/backends/openai.backend.d.ts +0 -19
  261. package/dist/threads/backends/openai.backend.js +0 -155
  262. package/dist/threads/backends/openai.backend.js.map +0 -1
  263. package/dist/threads/openai-mcp-server-factory.service.d.ts +0 -8
  264. package/dist/threads/openai-mcp-server-factory.service.js +0 -114
  265. package/dist/threads/openai-mcp-server-factory.service.js.map +0 -1
@@ -1,155 +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 OpenAiBackend_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.OpenAiBackend = void 0;
14
- const common_1 = require("@nestjs/common");
15
- const agents_1 = require("@openai/agents");
16
- const openai_1 = require("openai");
17
- const chat_providers_service_1 = require("../../chat-providers/chat-providers.service");
18
- const openai_mcp_server_factory_service_1 = require("../openai-mcp-server-factory.service");
19
- const chat_backend_utils_1 = require("./chat-backend.utils");
20
- let OpenAiBackend = OpenAiBackend_1 = class OpenAiBackend {
21
- chatProvidersService;
22
- openAiMcpServerFactoryService;
23
- logger = new common_1.Logger(OpenAiBackend_1.name);
24
- constructor(chatProvidersService, openAiMcpServerFactoryService) {
25
- this.chatProvidersService = chatProvidersService;
26
- this.openAiMcpServerFactoryService = openAiMcpServerFactoryService;
27
- }
28
- async ensureAvailable() {
29
- const config = await this.chatProvidersService.getActiveChatProviderConfig();
30
- if (!config.apiKey) {
31
- throw new Error('OpenAI API key is not configured');
32
- }
33
- }
34
- async createConversation(threadId) {
35
- const apiKey = await this.getApiKey();
36
- const client = new openai_1.OpenAI({ apiKey });
37
- const conversation = await client.conversations.create({ metadata: { threadId } });
38
- return conversation;
39
- }
40
- async generateText(prompt, modelId) {
41
- try {
42
- const apiKey = await this.getApiKey();
43
- const client = new openai_1.OpenAI({ apiKey });
44
- const response = await client.responses.create({
45
- model: modelId ?? 'gpt-5.4',
46
- input: prompt,
47
- });
48
- return response.output_text?.trim() || null;
49
- }
50
- catch (error) {
51
- this.logger.warn({
52
- message: 'OpenAI text generation failed',
53
- error: error instanceof Error
54
- ? { message: error.message, name: error.name }
55
- : String(error),
56
- });
57
- return null;
58
- }
59
- }
60
- async runTask(args) {
61
- const apiKey = await this.getApiKey();
62
- const modelProvider = this.configureOpenAiSdk(apiKey);
63
- const mcpServers = await this.openAiMcpServerFactoryService.createServers({ token: args.token });
64
- const agent = new agents_1.Agent({
65
- name: 'taico task runner',
66
- instructions: args.instructions,
67
- model: args.modelId ?? 'gpt-5.4',
68
- mcpServers,
69
- });
70
- const runner = new agents_1.Runner({ modelProvider });
71
- await runner.run(agent, args.prompt);
72
- }
73
- async *streamMessage(args) {
74
- try {
75
- const apiKey = await this.getApiKey();
76
- const modelProvider = this.configureOpenAiSdk(apiKey);
77
- const mcpServers = await this.openAiMcpServerFactoryService.createServers({ token: args.token });
78
- const agent = new agents_1.Agent({
79
- name: args.agentName,
80
- instructions: (0, chat_backend_utils_1.buildThreadScopedInstructions)(args.systemPrompt, args.threadId),
81
- model: args.modelId ?? 'gpt-5.4',
82
- mcpServers,
83
- });
84
- const runner = new agents_1.Runner({ modelProvider });
85
- this.logger.log(`Sending message to ${args.conversationId}`);
86
- const result = await runner.run(agent, (0, chat_backend_utils_1.formatMessage)(args.message, args.actor), {
87
- conversationId: args.conversationId,
88
- stream: true,
89
- });
90
- for await (const event of result) {
91
- const textDelta = this.parseResponseTextDelta(event);
92
- if (textDelta) {
93
- yield { type: 'response_delta', delta: textDelta };
94
- }
95
- if (event.type === 'run_item_stream_event') {
96
- switch (event.item.type) {
97
- case 'reasoning_item':
98
- yield { type: 'agent_activity', kind: 'thinking' };
99
- break;
100
- case 'tool_call_item':
101
- yield { type: 'agent_activity', kind: 'tool_calling' };
102
- break;
103
- case 'tool_call_output_item':
104
- break;
105
- case 'message_output_item':
106
- if (event.item.content) {
107
- yield { type: 'final_response', content: event.item.content };
108
- }
109
- break;
110
- }
111
- }
112
- }
113
- }
114
- catch (error) {
115
- this.logger.error({
116
- message: 'OpenAI agent run failed',
117
- threadId: args.threadId,
118
- conversationId: args.conversationId,
119
- error: error instanceof Error
120
- ? { message: error.message, stack: error.stack, name: error.name }
121
- : String(error),
122
- });
123
- yield { type: 'error', error: error instanceof Error ? error : new Error(String(error)) };
124
- }
125
- }
126
- async getApiKey() {
127
- const config = await this.chatProvidersService.getActiveChatProviderConfig();
128
- if (!config.apiKey) {
129
- throw new Error('OpenAI API key is not configured');
130
- }
131
- return config.apiKey;
132
- }
133
- configureOpenAiSdk(apiKey) {
134
- const client = new openai_1.OpenAI({ apiKey });
135
- (0, agents_1.setDefaultOpenAIClient)(client);
136
- (0, agents_1.setDefaultOpenAIKey)(apiKey);
137
- return new agents_1.OpenAIProvider({ openAIClient: client });
138
- }
139
- parseResponseTextDelta(event) {
140
- if (event.type !== 'raw_model_stream_event') {
141
- return null;
142
- }
143
- if (event.data.type !== 'output_text_delta') {
144
- return null;
145
- }
146
- return event.data.delta;
147
- }
148
- };
149
- exports.OpenAiBackend = OpenAiBackend;
150
- exports.OpenAiBackend = OpenAiBackend = OpenAiBackend_1 = __decorate([
151
- (0, common_1.Injectable)(),
152
- __metadata("design:paramtypes", [chat_providers_service_1.ChatProvidersService,
153
- openai_mcp_server_factory_service_1.OpenAiMcpServerFactoryService])
154
- ], OpenAiBackend);
155
- //# sourceMappingURL=openai.backend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.backend.js","sourceRoot":"","sources":["../../../src/threads/backends/openai.backend.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { MCPServer } from "@openai/agents";
2
- type AccessTokenInput = {
3
- token: string;
4
- };
5
- export declare class OpenAiMcpServerFactoryService {
6
- createServers(token: AccessTokenInput): Promise<MCPServer[]>;
7
- }
8
- export {};
@@ -1,114 +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.OpenAiMcpServerFactoryService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const env_config_1 = require("../config/env.config");
12
- const agents_1 = require("@openai/agents");
13
- class PrefixedMcpServer {
14
- inner;
15
- prefix;
16
- nameMap = new Map();
17
- constructor(inner, prefix) {
18
- this.inner = inner;
19
- this.prefix = prefix;
20
- }
21
- get cacheToolsList() {
22
- return this.inner.cacheToolsList;
23
- }
24
- set cacheToolsList(value) {
25
- this.inner.cacheToolsList = value;
26
- }
27
- get toolFilter() {
28
- return this.inner.toolFilter;
29
- }
30
- set toolFilter(value) {
31
- this.inner.toolFilter = value;
32
- }
33
- get toolMetaResolver() {
34
- return this.inner.toolMetaResolver;
35
- }
36
- set toolMetaResolver(value) {
37
- this.inner.toolMetaResolver = value;
38
- }
39
- get errorFunction() {
40
- return this.inner.errorFunction;
41
- }
42
- set errorFunction(value) {
43
- this.inner.errorFunction = value;
44
- }
45
- get name() {
46
- return this.inner.name;
47
- }
48
- async connect() {
49
- return this.inner.connect();
50
- }
51
- async close() {
52
- return this.inner.close();
53
- }
54
- async listTools() {
55
- const tools = await this.inner.listTools();
56
- this.nameMap.clear();
57
- return tools.map((tool) => {
58
- const prefixedName = `${this.prefix}__${tool.name}`;
59
- this.nameMap.set(prefixedName, tool.name);
60
- return {
61
- ...tool,
62
- name: prefixedName,
63
- };
64
- });
65
- }
66
- async callTool(toolName, args, meta) {
67
- const originalName = this.nameMap.get(toolName) ?? toolName.replace(`${this.prefix}__`, "");
68
- return this.inner.callTool(originalName, args, meta);
69
- }
70
- async invalidateToolsCache() {
71
- this.nameMap.clear();
72
- return this.inner.invalidateToolsCache();
73
- }
74
- }
75
- let OpenAiMcpServerFactoryService = class OpenAiMcpServerFactoryService {
76
- async createServers(token) {
77
- const baseUrl = (0, env_config_1.getConfig)().issuerUrl;
78
- const customFetch = async (input, init = {}) => {
79
- const headers = new Headers(init.headers);
80
- headers.set("Authorization", `Bearer ${token.token}`);
81
- return fetch(input, { ...init, headers });
82
- };
83
- const tasks = new agents_1.MCPServerStreamableHttp({
84
- name: "tasks",
85
- url: `${baseUrl}/api/v1/tasks/tasks/mcp`,
86
- requestInit: {
87
- headers: {
88
- Authorization: `Bearer ${token.token}`,
89
- },
90
- },
91
- fetch: customFetch,
92
- });
93
- const context = new agents_1.MCPServerStreamableHttp({
94
- name: "context",
95
- url: `${baseUrl}/api/v1/context/blocks/mcp`,
96
- requestInit: {
97
- headers: {
98
- Authorization: `Bearer ${token.token}`,
99
- },
100
- },
101
- fetch: customFetch,
102
- });
103
- await Promise.all([tasks.connect(), context.connect()]);
104
- return [
105
- new PrefixedMcpServer(tasks, "tasks"),
106
- new PrefixedMcpServer(context, "context"),
107
- ];
108
- }
109
- };
110
- exports.OpenAiMcpServerFactoryService = OpenAiMcpServerFactoryService;
111
- exports.OpenAiMcpServerFactoryService = OpenAiMcpServerFactoryService = __decorate([
112
- (0, common_1.Injectable)()
113
- ], OpenAiMcpServerFactoryService);
114
- //# sourceMappingURL=openai-mcp-server-factory.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-mcp-server-factory.service.js","sourceRoot":"","sources":["../../src/threads/openai-mcp-server-factory.service.ts"],"names":[],"mappings":"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"}