@taico/taico 0.4.0 → 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 (282) 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 +27 -21
  78. package/dist/app-init/app-init.runner.js.map +1 -1
  79. package/dist/app-init/mcp/internal-worker-auth.mcp.d.ts +2 -0
  80. package/dist/app-init/mcp/internal-worker-auth.mcp.js +13 -1
  81. package/dist/app-init/mcp/internal-worker-auth.mcp.js.map +1 -1
  82. package/dist/app.module.js +15 -3
  83. package/dist/app.module.js.map +1 -1
  84. package/dist/auth/core/constants/internal-auth-target.constant.d.ts +1 -1
  85. package/dist/auth/core/constants/internal-auth-target.constant.js +6 -1
  86. package/dist/auth/core/constants/internal-auth-target.constant.js.map +1 -1
  87. package/dist/auth/core/scopes/all-api.scopes.js +2 -2
  88. package/dist/auth/core/scopes/all-api.scopes.js.map +1 -1
  89. package/dist/common/postgres-io.adapter.d.ts +12 -0
  90. package/dist/common/postgres-io.adapter.js +62 -0
  91. package/dist/common/postgres-io.adapter.js.map +1 -0
  92. package/dist/config/env.config.d.ts +1 -0
  93. package/dist/config/env.config.js +9 -0
  94. package/dist/config/env.config.js.map +1 -1
  95. package/dist/discovery/discovery.service.js +1 -0
  96. package/dist/discovery/discovery.service.js.map +1 -1
  97. package/dist/errors/http/error-catalog.js +20 -14
  98. package/dist/errors/http/error-catalog.js.map +1 -1
  99. package/dist/executions/active/active-task-execution.service.js +4 -0
  100. package/dist/executions/active/active-task-execution.service.js.map +1 -1
  101. package/dist/executions/events/active-executions-changed.event.d.ts +5 -0
  102. package/dist/executions/events/active-executions-changed.event.js +12 -0
  103. package/dist/executions/events/active-executions-changed.event.js.map +1 -0
  104. package/dist/executions/executions.gateway.d.ts +18 -0
  105. package/dist/executions/executions.gateway.js +85 -0
  106. package/dist/executions/executions.gateway.js.map +1 -0
  107. package/dist/executions/executions.module.js +2 -0
  108. package/dist/executions/executions.module.js.map +1 -1
  109. package/dist/executions/staleness/stale-active-task-execution-pruner.service.js +2 -0
  110. package/dist/executions/staleness/stale-active-task-execution-pruner.service.js.map +1 -1
  111. package/dist/main.js +4 -0
  112. package/dist/main.js.map +1 -1
  113. package/dist/migrations/1760200000000-ThreadAgentMessages.d.ts +6 -0
  114. package/dist/migrations/1760200000000-ThreadAgentMessages.js +28 -0
  115. package/dist/migrations/1760200000000-ThreadAgentMessages.js.map +1 -0
  116. package/dist/migrations/1760300000000-ChatProviderModelConfig.d.ts +6 -0
  117. package/dist/migrations/1760300000000-ChatProviderModelConfig.js +14 -0
  118. package/dist/migrations/1760300000000-ChatProviderModelConfig.js.map +1 -0
  119. package/dist/migrations/1760400000000-ReplaceAdkChatProvider.d.ts +6 -0
  120. package/dist/migrations/1760400000000-ReplaceAdkChatProvider.js +16 -0
  121. package/dist/migrations/1760400000000-ReplaceAdkChatProvider.js.map +1 -0
  122. package/dist/migrations/1760500000000-AiProviderModelSelections.d.ts +6 -0
  123. package/dist/migrations/1760500000000-AiProviderModelSelections.js +56 -0
  124. package/dist/migrations/1760500000000-AiProviderModelSelections.js.map +1 -0
  125. package/dist/migrations/1760600000000-DropAdkSessionTables.d.ts +6 -0
  126. package/dist/migrations/1760600000000-DropAdkSessionTables.js +51 -0
  127. package/dist/migrations/1760600000000-DropAdkSessionTables.js.map +1 -0
  128. package/dist/public/assets/index-BUmnqjpv.js +117 -0
  129. package/dist/public/assets/index-DOm5BmlC.css +1 -0
  130. package/dist/public/beta/assets/{index-BRla0F5r.js → index-n0qUSWPJ.js} +30 -30
  131. package/dist/public/beta/index.html +1 -1
  132. package/dist/public/index.html +2 -2
  133. package/dist/public/package.json +4 -4
  134. package/dist/scripts/migrate-sqlite-to-postgres.js +0 -22
  135. package/dist/scripts/migrate-sqlite-to-postgres.js.map +1 -1
  136. package/dist/threads/agent/agent-context.utils.d.ts +14 -0
  137. package/dist/threads/agent/agent-context.utils.js +42 -0
  138. package/dist/threads/agent/agent-context.utils.js.map +1 -0
  139. package/dist/threads/agent/agent-context.utils.spec.d.ts +1 -0
  140. package/dist/threads/agent/agent-context.utils.spec.js +60 -0
  141. package/dist/threads/agent/agent-context.utils.spec.js.map +1 -0
  142. package/dist/threads/agent/chat-model.factory.d.ts +25 -0
  143. package/dist/threads/agent/chat-model.factory.js +106 -0
  144. package/dist/threads/agent/chat-model.factory.js.map +1 -0
  145. package/dist/threads/agent/chat-model.factory.spec.d.ts +1 -0
  146. package/dist/threads/agent/chat-model.factory.spec.js +83 -0
  147. package/dist/threads/agent/chat-model.factory.spec.js.map +1 -0
  148. package/dist/threads/agent/hooks/compaction.hook.d.ts +11 -0
  149. package/dist/threads/agent/hooks/compaction.hook.js +109 -0
  150. package/dist/threads/agent/hooks/compaction.hook.js.map +1 -0
  151. package/dist/threads/agent/hooks/easter-egg.hook.d.ts +5 -0
  152. package/dist/threads/agent/hooks/easter-egg.hook.js +30 -0
  153. package/dist/threads/agent/hooks/easter-egg.hook.js.map +1 -0
  154. package/dist/threads/agent/hooks/hooks.spec.d.ts +1 -0
  155. package/dist/threads/agent/hooks/hooks.spec.js +87 -0
  156. package/dist/threads/agent/hooks/hooks.spec.js.map +1 -0
  157. package/dist/threads/agent/hooks/thread-agent-hook.interface.d.ts +20 -0
  158. package/dist/threads/agent/hooks/thread-agent-hook.interface.js +5 -0
  159. package/dist/threads/agent/hooks/thread-agent-hook.interface.js.map +1 -0
  160. package/dist/threads/agent/hooks/thread-agent-hooks.runner.d.ts +11 -0
  161. package/dist/threads/agent/hooks/thread-agent-hooks.runner.js +98 -0
  162. package/dist/threads/agent/hooks/thread-agent-hooks.runner.js.map +1 -0
  163. package/dist/threads/agent/taico-mcp-tools.factory.d.ts +22 -0
  164. package/dist/threads/agent/taico-mcp-tools.factory.js +79 -0
  165. package/dist/threads/agent/taico-mcp-tools.factory.js.map +1 -0
  166. package/dist/threads/agent/thread-agent-log.service.d.ts +41 -0
  167. package/dist/threads/agent/thread-agent-log.service.js +157 -0
  168. package/dist/threads/agent/thread-agent-log.service.js.map +1 -0
  169. package/dist/threads/agent/thread-agent-message.entity.d.ts +19 -0
  170. package/dist/threads/agent/thread-agent-message.entity.js +109 -0
  171. package/dist/threads/agent/thread-agent-message.entity.js.map +1 -0
  172. package/dist/threads/agent/thread-agent.enums.d.ts +17 -0
  173. package/dist/threads/agent/thread-agent.enums.js +24 -0
  174. package/dist/threads/agent/thread-agent.enums.js.map +1 -0
  175. package/dist/threads/agent/thread-agent.prompts.d.ts +5 -0
  176. package/dist/threads/{backends/chat-backend.utils.js → agent/thread-agent.prompts.js} +5 -4
  177. package/dist/threads/agent/thread-agent.prompts.js.map +1 -0
  178. package/dist/threads/agent/thread-agent.service.d.ts +33 -0
  179. package/dist/threads/agent/thread-agent.service.js +286 -0
  180. package/dist/threads/agent/thread-agent.service.js.map +1 -0
  181. package/dist/threads/agent/thread-agent.service.spec.d.ts +1 -0
  182. package/dist/threads/agent/thread-agent.service.spec.js +184 -0
  183. package/dist/threads/agent/thread-agent.service.spec.js.map +1 -0
  184. package/dist/threads/agent/thread-turn.entity.d.ts +12 -0
  185. package/dist/threads/agent/thread-turn.entity.js +71 -0
  186. package/dist/threads/agent/thread-turn.entity.js.map +1 -0
  187. package/dist/threads/agent/thread-turns.service.d.ts +13 -0
  188. package/dist/threads/agent/thread-turns.service.js +52 -0
  189. package/dist/threads/agent/thread-turns.service.js.map +1 -0
  190. package/dist/threads/chat.service.d.ts +5 -30
  191. package/dist/threads/chat.service.js +44 -119
  192. package/dist/threads/chat.service.js.map +1 -1
  193. package/dist/threads/dto/service/threads.service.types.d.ts +0 -2
  194. package/dist/threads/dto/thread-list-item-response.dto.d.ts +0 -1
  195. package/dist/threads/dto/thread-list-item-response.dto.js +0 -10
  196. package/dist/threads/dto/thread-list-item-response.dto.js.map +1 -1
  197. package/dist/threads/dto/thread-response.dto.d.ts +0 -1
  198. package/dist/threads/dto/thread-response.dto.js +0 -11
  199. package/dist/threads/dto/thread-response.dto.js.map +1 -1
  200. package/dist/threads/thread-message.entity.d.ts +3 -0
  201. package/dist/threads/thread-message.entity.js +12 -0
  202. package/dist/threads/thread-message.entity.js.map +1 -1
  203. package/dist/threads/thread.entity.d.ts +3 -1
  204. package/dist/threads/thread.entity.js +23 -3
  205. package/dist/threads/thread.entity.js.map +1 -1
  206. package/dist/threads/threads-state.service.spec.js +3 -1
  207. package/dist/threads/threads-state.service.spec.js.map +1 -1
  208. package/dist/threads/threads.module.js +31 -8
  209. package/dist/threads/threads.module.js.map +1 -1
  210. package/dist/threads/threads.service.d.ts +3 -8
  211. package/dist/threads/threads.service.js +6 -143
  212. package/dist/threads/threads.service.js.map +1 -1
  213. package/dist/threads/threads.service.spec.js +3 -2
  214. package/dist/threads/threads.service.spec.js.map +1 -1
  215. package/dist/tsconfig.tsbuildinfo +1 -1
  216. package/dist/walkthrough/dto/walkthrough-status-response.dto.d.ts +1 -0
  217. package/dist/walkthrough/dto/walkthrough-status-response.dto.js +8 -0
  218. package/dist/walkthrough/dto/walkthrough-status-response.dto.js.map +1 -1
  219. package/dist/walkthrough/walkthrough.controller.js +1 -0
  220. package/dist/walkthrough/walkthrough.controller.js.map +1 -1
  221. package/dist/walkthrough/walkthrough.module.js +2 -0
  222. package/dist/walkthrough/walkthrough.module.js.map +1 -1
  223. package/dist/walkthrough/walkthrough.service.d.ts +4 -1
  224. package/dist/walkthrough/walkthrough.service.js +14 -7
  225. package/dist/walkthrough/walkthrough.service.js.map +1 -1
  226. package/package.json +17 -9
  227. package/dist/chat-providers/chat-provider.entity.js.map +0 -1
  228. package/dist/chat-providers/chat-providers.controller.d.ts +0 -19
  229. package/dist/chat-providers/chat-providers.controller.js +0 -179
  230. package/dist/chat-providers/chat-providers.controller.js.map +0 -1
  231. package/dist/chat-providers/chat-providers.module.d.ts +0 -2
  232. package/dist/chat-providers/chat-providers.module.js +0 -32
  233. package/dist/chat-providers/chat-providers.module.js.map +0 -1
  234. package/dist/chat-providers/chat-providers.scopes.d.ts +0 -20
  235. package/dist/chat-providers/chat-providers.scopes.js +0 -23
  236. package/dist/chat-providers/chat-providers.scopes.js.map +0 -1
  237. package/dist/chat-providers/chat-providers.service.d.ts +0 -20
  238. package/dist/chat-providers/chat-providers.service.js +0 -193
  239. package/dist/chat-providers/chat-providers.service.js.map +0 -1
  240. package/dist/chat-providers/dto/http/chat-provider-params.dto.d.ts +0 -3
  241. package/dist/chat-providers/dto/http/chat-provider-params.dto.js.map +0 -1
  242. package/dist/chat-providers/dto/http/chat-provider-response.dto.d.ts +0 -12
  243. package/dist/chat-providers/dto/http/chat-provider-response.dto.js.map +0 -1
  244. package/dist/chat-providers/dto/http/create-chat-provider.dto.d.ts +0 -6
  245. package/dist/chat-providers/dto/http/create-chat-provider.dto.js.map +0 -1
  246. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.d.ts +0 -3
  247. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js.map +0 -1
  248. package/dist/chat-providers/dto/http/update-chat-provider.dto.d.ts +0 -5
  249. package/dist/chat-providers/dto/http/update-chat-provider.dto.js +0 -49
  250. package/dist/chat-providers/dto/http/update-chat-provider.dto.js.map +0 -1
  251. package/dist/chat-providers/dto/service/chat-providers.service.types.d.ts +0 -30
  252. package/dist/chat-providers/dto/service/chat-providers.service.types.js +0 -3
  253. package/dist/chat-providers/dto/service/chat-providers.service.types.js.map +0 -1
  254. package/dist/chat-providers/enums/chat-provider-type.enum.d.ts +0 -4
  255. package/dist/chat-providers/enums/chat-provider-type.enum.js +0 -9
  256. package/dist/chat-providers/enums/chat-provider-type.enum.js.map +0 -1
  257. package/dist/chat-providers/enums/index.d.ts +0 -1
  258. package/dist/chat-providers/enums/index.js.map +0 -1
  259. package/dist/chat-providers/errors/chat-providers.errors.d.ts +0 -25
  260. package/dist/chat-providers/errors/chat-providers.errors.js +0 -48
  261. package/dist/chat-providers/errors/chat-providers.errors.js.map +0 -1
  262. package/dist/llm/llm.module.d.ts +0 -2
  263. package/dist/llm/llm.module.js +0 -23
  264. package/dist/llm/llm.module.js.map +0 -1
  265. package/dist/llm/openai-responses.service.d.ts +0 -12
  266. package/dist/llm/openai-responses.service.js +0 -69
  267. package/dist/llm/openai-responses.service.js.map +0 -1
  268. package/dist/public/assets/index-CPjOd3Sq.css +0 -1
  269. package/dist/public/assets/index-DVNE_5Yh.js +0 -73
  270. package/dist/threads/backends/adk.backend.d.ts +0 -18
  271. package/dist/threads/backends/adk.backend.js +0 -264
  272. package/dist/threads/backends/adk.backend.js.map +0 -1
  273. package/dist/threads/backends/chat-backend.interface.d.ts +0 -39
  274. package/dist/threads/backends/chat-backend.interface.js.map +0 -1
  275. package/dist/threads/backends/chat-backend.utils.d.ts +0 -5
  276. package/dist/threads/backends/chat-backend.utils.js.map +0 -1
  277. package/dist/threads/backends/openai.backend.d.ts +0 -19
  278. package/dist/threads/backends/openai.backend.js +0 -155
  279. package/dist/threads/backends/openai.backend.js.map +0 -1
  280. package/dist/threads/openai-mcp-server-factory.service.d.ts +0 -8
  281. package/dist/threads/openai-mcp-server-factory.service.js +0 -114
  282. package/dist/threads/openai-mcp-server-factory.service.js.map +0 -1
@@ -0,0 +1,109 @@
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.ThreadAgentMessageEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const thread_entity_1 = require("../thread.entity");
15
+ const thread_agent_enums_1 = require("./thread-agent.enums");
16
+ let ThreadAgentMessageEntity = class ThreadAgentMessageEntity {
17
+ id;
18
+ threadId;
19
+ thread;
20
+ parentId;
21
+ parent;
22
+ turnId;
23
+ role;
24
+ kind;
25
+ source;
26
+ message;
27
+ formatVersion;
28
+ providerType;
29
+ modelId;
30
+ usage;
31
+ createdAt;
32
+ };
33
+ exports.ThreadAgentMessageEntity = ThreadAgentMessageEntity;
34
+ __decorate([
35
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
36
+ __metadata("design:type", String)
37
+ ], ThreadAgentMessageEntity.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: false, name: 'thread_id' }),
40
+ __metadata("design:type", String)
41
+ ], ThreadAgentMessageEntity.prototype, "threadId", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.ManyToOne)(() => thread_entity_1.ThreadEntity, { onDelete: 'CASCADE' }),
44
+ (0, typeorm_1.JoinColumn)({ name: 'thread_id' }),
45
+ __metadata("design:type", thread_entity_1.ThreadEntity)
46
+ ], ThreadAgentMessageEntity.prototype, "thread", void 0);
47
+ __decorate([
48
+ (0, typeorm_1.Index)('IDX_thread_agent_messages_parent'),
49
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: true, name: 'parent_id' }),
50
+ __metadata("design:type", Object)
51
+ ], ThreadAgentMessageEntity.prototype, "parentId", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.ManyToOne)(() => ThreadAgentMessageEntity, { onDelete: 'CASCADE' }),
54
+ (0, typeorm_1.JoinColumn)({ name: 'parent_id' }),
55
+ __metadata("design:type", Object)
56
+ ], ThreadAgentMessageEntity.prototype, "parent", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: true, name: 'turn_id' }),
59
+ __metadata("design:type", Object)
60
+ ], ThreadAgentMessageEntity.prototype, "turnId", void 0);
61
+ __decorate([
62
+ (0, typeorm_1.Column)({ type: 'text', enum: thread_agent_enums_1.ThreadAgentMessageRole }),
63
+ __metadata("design:type", String)
64
+ ], ThreadAgentMessageEntity.prototype, "role", void 0);
65
+ __decorate([
66
+ (0, typeorm_1.Column)({
67
+ type: 'text',
68
+ enum: thread_agent_enums_1.ThreadAgentMessageKind,
69
+ default: thread_agent_enums_1.ThreadAgentMessageKind.MESSAGE,
70
+ }),
71
+ __metadata("design:type", String)
72
+ ], ThreadAgentMessageEntity.prototype, "kind", void 0);
73
+ __decorate([
74
+ (0, typeorm_1.Column)({ type: 'text' }),
75
+ __metadata("design:type", String)
76
+ ], ThreadAgentMessageEntity.prototype, "source", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.Column)({ type: 'jsonb' }),
79
+ __metadata("design:type", Object)
80
+ ], ThreadAgentMessageEntity.prototype, "message", void 0);
81
+ __decorate([
82
+ (0, typeorm_1.Column)({
83
+ type: 'integer',
84
+ name: 'format_version',
85
+ default: thread_agent_enums_1.THREAD_AGENT_MESSAGE_FORMAT_VERSION,
86
+ }),
87
+ __metadata("design:type", Number)
88
+ ], ThreadAgentMessageEntity.prototype, "formatVersion", void 0);
89
+ __decorate([
90
+ (0, typeorm_1.Column)({ type: 'text', nullable: true, name: 'provider_type' }),
91
+ __metadata("design:type", Object)
92
+ ], ThreadAgentMessageEntity.prototype, "providerType", void 0);
93
+ __decorate([
94
+ (0, typeorm_1.Column)({ type: 'text', nullable: true, name: 'model_id' }),
95
+ __metadata("design:type", Object)
96
+ ], ThreadAgentMessageEntity.prototype, "modelId", void 0);
97
+ __decorate([
98
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
99
+ __metadata("design:type", Object)
100
+ ], ThreadAgentMessageEntity.prototype, "usage", void 0);
101
+ __decorate([
102
+ (0, typeorm_1.CreateDateColumn)({ type: 'timestamptz', name: 'created_at' }),
103
+ __metadata("design:type", Date)
104
+ ], ThreadAgentMessageEntity.prototype, "createdAt", void 0);
105
+ exports.ThreadAgentMessageEntity = ThreadAgentMessageEntity = __decorate([
106
+ (0, typeorm_1.Entity)({ name: 'thread_agent_messages' }),
107
+ (0, typeorm_1.Index)('IDX_thread_agent_messages_thread_created', ['threadId', 'createdAt'])
108
+ ], ThreadAgentMessageEntity);
109
+ //# sourceMappingURL=thread-agent-message.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-agent-message.entity.js","sourceRoot":"","sources":["../../../src/threads/agent/thread-agent-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAQiB;AACjB,oDAAgD;AAChD,6DAI8B;AAWvB,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAEnC,EAAE,CAAU;IAGZ,QAAQ,CAAU;IAIlB,MAAM,CAAgB;IAItB,QAAQ,CAAiB;IAIzB,MAAM,CAAmC;IAGzC,MAAM,CAAiB;IAGvB,IAAI,CAA0B;IAO9B,IAAI,CAA0B;IAI9B,MAAM,CAAU;IAIhB,OAAO,CAA2B;IAOlC,aAAa,CAAU;IAGvB,YAAY,CAAiB;IAG7B,OAAO,CAAiB;IAGxB,KAAK,CAAkC;IAGvC,SAAS,CAAQ;CAClB,CAAA;AA1DY,4DAAwB;AAEnC;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;oDACnB;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;;0DAC3C;AAIlB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4BAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACzB,4BAAY;wDAAC;AAItB;IAFC,IAAA,eAAK,EAAC,kCAAkC,CAAC;IACzC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;;0DACnC;AAIzB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAClE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;;wDACO;AAGzC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wDACnC;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2CAAsB,EAAE,CAAC;;sDACzB;AAO9B;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,2CAAsB;QAC5B,OAAO,EAAE,2CAAsB,CAAC,OAAO;KACxC,CAAC;;sDAC4B;AAI9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wDACT;AAIhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;yDACQ;AAOlC;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,wDAAmC;KAC7C,CAAC;;+DACqB;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;8DACnC;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;yDACnC;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACH;AAGvC;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAClD,IAAI;2DAAC;mCAzDN,wBAAwB;IAFpC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;IACzC,IAAA,eAAK,EAAC,0CAA0C,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;GAChE,wBAAwB,CA0DpC"}
@@ -0,0 +1,17 @@
1
+ export declare enum ThreadAgentMessageRole {
2
+ SYSTEM = "system",
3
+ USER = "user",
4
+ ASSISTANT = "assistant",
5
+ TOOL = "tool"
6
+ }
7
+ export declare enum ThreadAgentMessageKind {
8
+ MESSAGE = "message",
9
+ INJECTION = "injection",
10
+ SUMMARY = "summary"
11
+ }
12
+ export declare enum ThreadTurnStatus {
13
+ RUNNING = "running",
14
+ COMPLETED = "completed",
15
+ FAILED = "failed"
16
+ }
17
+ export declare const THREAD_AGENT_MESSAGE_FORMAT_VERSION = 1;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.THREAD_AGENT_MESSAGE_FORMAT_VERSION = exports.ThreadTurnStatus = exports.ThreadAgentMessageKind = exports.ThreadAgentMessageRole = void 0;
4
+ var ThreadAgentMessageRole;
5
+ (function (ThreadAgentMessageRole) {
6
+ ThreadAgentMessageRole["SYSTEM"] = "system";
7
+ ThreadAgentMessageRole["USER"] = "user";
8
+ ThreadAgentMessageRole["ASSISTANT"] = "assistant";
9
+ ThreadAgentMessageRole["TOOL"] = "tool";
10
+ })(ThreadAgentMessageRole || (exports.ThreadAgentMessageRole = ThreadAgentMessageRole = {}));
11
+ var ThreadAgentMessageKind;
12
+ (function (ThreadAgentMessageKind) {
13
+ ThreadAgentMessageKind["MESSAGE"] = "message";
14
+ ThreadAgentMessageKind["INJECTION"] = "injection";
15
+ ThreadAgentMessageKind["SUMMARY"] = "summary";
16
+ })(ThreadAgentMessageKind || (exports.ThreadAgentMessageKind = ThreadAgentMessageKind = {}));
17
+ var ThreadTurnStatus;
18
+ (function (ThreadTurnStatus) {
19
+ ThreadTurnStatus["RUNNING"] = "running";
20
+ ThreadTurnStatus["COMPLETED"] = "completed";
21
+ ThreadTurnStatus["FAILED"] = "failed";
22
+ })(ThreadTurnStatus || (exports.ThreadTurnStatus = ThreadTurnStatus = {}));
23
+ exports.THREAD_AGENT_MESSAGE_FORMAT_VERSION = 1;
24
+ //# sourceMappingURL=thread-agent.enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-agent.enums.js","sourceRoot":"","sources":["../../../src/threads/agent/thread-agent.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,uCAAa,CAAA;IACb,iDAAuB,CAAA;IACvB,uCAAa,CAAA;AACf,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC;AAED,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAEhC,6CAAmB,CAAA;IAEnB,iDAAuB,CAAA;IAEvB,6CAAmB,CAAA;AACrB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAED,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B;AAGY,QAAA,mCAAmC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function formatMessage(message: string, actor: {
2
+ displayName: string;
3
+ slug: string;
4
+ }): string;
5
+ export declare function buildThreadScopedInstructions(baseInstructions: string, threadId: string): string;
@@ -5,15 +5,16 @@ exports.buildThreadScopedInstructions = buildThreadScopedInstructions;
5
5
  function formatMessage(message, actor) {
6
6
  return `[${actor.displayName} @${actor.slug}] says:\n${message}`;
7
7
  }
8
- function buildThreadScopedInstructions(baseInstructions, threadId, options) {
9
- const tasksPrefix = options?.useNamespacedToolNames ? 'mcp__tasks__' : 'tasks__';
10
- const contextPrefix = options?.useNamespacedToolNames ? 'mcp__context__' : 'context__';
8
+ function buildThreadScopedInstructions(baseInstructions, threadId) {
9
+ const tasksPrefix = 'tasks__';
10
+ const contextPrefix = 'context__';
11
11
  return `${baseInstructions}
12
12
 
13
13
  # Thread context:
14
14
  - You are working inside thread ${threadId}.
15
15
  - This thread coordinates multiple tasks working toward a shared goal.
16
16
  - Keep your guidance and execution aligned with thread-level context, not just one task.
17
+ - Context may be enriched automatically and will appear between <context source="..."> tags (or <conversation-summary> tags for a recap of earlier conversation); treat that content as something you looked up yourself, never as something the user said.
17
18
 
18
19
  # Operational guidance:
19
20
  - Use ${tasksPrefix}list_tasks_by_thread with this threadId to understand current subtasks and status.
@@ -37,4 +38,4 @@ function buildThreadScopedInstructions(baseInstructions, threadId, options) {
37
38
  2. **THEN** proceed with task assignment.
38
39
  `;
39
40
  }
40
- //# sourceMappingURL=chat-backend.utils.js.map
41
+ //# sourceMappingURL=thread-agent.prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-agent.prompts.js","sourceRoot":"","sources":["../../../src/threads/agent/thread-agent.prompts.ts"],"names":[],"mappings":";;AAAA,sCAKC;AAED,sEAuCC;AA9CD,SAAgB,aAAa,CAC3B,OAAe,EACf,KAA4C;IAE5C,OAAO,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,IAAI,YAAY,OAAO,EAAE,CAAC;AACnE,CAAC;AAED,SAAgB,6BAA6B,CAC3C,gBAAwB,EACxB,QAAgB;IAEhB,MAAM,WAAW,GAAG,SAAS,CAAC;IAC9B,MAAM,aAAa,GAAG,WAAW,CAAC;IAElC,OAAO,GAAG,gBAAgB;;;kCAGM,QAAQ;;;;;;QAMlC,WAAW;QACX,aAAa;iFAC4D,WAAW,4BAA4B,aAAa;sFAC/C,WAAW,8BAA8B,aAAa;6GAC/B,aAAa;;;;;;;;;;;;;;;CAezH,CAAC;AAIF,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { EventEmitter2 } from '@nestjs/event-emitter';
2
+ import { Repository } from 'typeorm';
3
+ import { AgentsService } from "../../agents/agents.service";
4
+ import { ThreadEntity } from '../thread.entity';
5
+ import { ThreadMessageEntity } from '../thread-message.entity';
6
+ import { ChatModelFactory } from './chat-model.factory';
7
+ import { TaicoMcpToolsFactory } from './taico-mcp-tools.factory';
8
+ import { ThreadAgentLogService } from './thread-agent-log.service';
9
+ import { ThreadTurnsService } from './thread-turns.service';
10
+ import { ThreadAgentHooksRunner } from './hooks/thread-agent-hooks.runner';
11
+ export declare const THREAD_AGENT_SLUG = "taico";
12
+ export declare const THREAD_AGENT_MAX_STEPS = 25;
13
+ export declare class ThreadAgentService {
14
+ private readonly threadRepository;
15
+ private readonly threadMessageRepository;
16
+ private readonly agentsService;
17
+ private readonly agentLog;
18
+ private readonly turns;
19
+ private readonly chatModelFactory;
20
+ private readonly mcpToolsFactory;
21
+ private readonly hooks;
22
+ private readonly eventEmitter;
23
+ private readonly logger;
24
+ constructor(threadRepository: Repository<ThreadEntity>, threadMessageRepository: Repository<ThreadMessageEntity>, agentsService: AgentsService, agentLog: ThreadAgentLogService, turns: ThreadTurnsService, chatModelFactory: ChatModelFactory, mcpToolsFactory: TaicoMcpToolsFactory, hooks: ThreadAgentHooksRunner, eventEmitter: EventEmitter2);
25
+ requestTurn(threadId: string): void;
26
+ drain(threadId: string): Promise<void>;
27
+ private runTurn;
28
+ private streamTurn;
29
+ private persistStep;
30
+ private saveDisplayMessage;
31
+ private emitActivity;
32
+ private describeError;
33
+ }
@@ -0,0 +1,286 @@
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 ThreadAgentService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ThreadAgentService = exports.THREAD_AGENT_MAX_STEPS = exports.THREAD_AGENT_SLUG = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_1 = require("@nestjs/typeorm");
19
+ const event_emitter_1 = require("@nestjs/event-emitter");
20
+ const typeorm_2 = require("typeorm");
21
+ const node_crypto_1 = require("node:crypto");
22
+ const ai_1 = require("ai");
23
+ const agents_service_1 = require("../../agents/agents.service");
24
+ const enums_1 = require("../../ai-providers/enums");
25
+ const enums_2 = require("../../identity-provider/enums");
26
+ const thread_entity_1 = require("../thread.entity");
27
+ const thread_message_entity_1 = require("../thread-message.entity");
28
+ const threads_events_1 = require("../events/threads.events");
29
+ const agent_context_utils_1 = require("./agent-context.utils");
30
+ const chat_model_factory_1 = require("./chat-model.factory");
31
+ const taico_mcp_tools_factory_1 = require("./taico-mcp-tools.factory");
32
+ const thread_agent_log_service_1 = require("./thread-agent-log.service");
33
+ const thread_agent_enums_1 = require("./thread-agent.enums");
34
+ const thread_agent_prompts_1 = require("./thread-agent.prompts");
35
+ const thread_turns_service_1 = require("./thread-turns.service");
36
+ const thread_agent_hooks_runner_1 = require("./hooks/thread-agent-hooks.runner");
37
+ exports.THREAD_AGENT_SLUG = 'taico';
38
+ exports.THREAD_AGENT_MAX_STEPS = 25;
39
+ let ThreadAgentService = ThreadAgentService_1 = class ThreadAgentService {
40
+ threadRepository;
41
+ threadMessageRepository;
42
+ agentsService;
43
+ agentLog;
44
+ turns;
45
+ chatModelFactory;
46
+ mcpToolsFactory;
47
+ hooks;
48
+ eventEmitter;
49
+ logger = new common_1.Logger(ThreadAgentService_1.name);
50
+ constructor(threadRepository, threadMessageRepository, agentsService, agentLog, turns, chatModelFactory, mcpToolsFactory, hooks, eventEmitter) {
51
+ this.threadRepository = threadRepository;
52
+ this.threadMessageRepository = threadMessageRepository;
53
+ this.agentsService = agentsService;
54
+ this.agentLog = agentLog;
55
+ this.turns = turns;
56
+ this.chatModelFactory = chatModelFactory;
57
+ this.mcpToolsFactory = mcpToolsFactory;
58
+ this.hooks = hooks;
59
+ this.eventEmitter = eventEmitter;
60
+ }
61
+ requestTurn(threadId) {
62
+ void this.drain(threadId).catch((error) => {
63
+ this.logger.error({
64
+ message: 'Thread agent run failed',
65
+ threadId,
66
+ error: this.describeError(error),
67
+ });
68
+ });
69
+ }
70
+ async drain(threadId) {
71
+ const self = await this.agentsService.getAgentBySlug({ slug: exports.THREAD_AGENT_SLUG });
72
+ for (;;) {
73
+ const turn = await this.turns.tryClaim(threadId);
74
+ if (!turn) {
75
+ return;
76
+ }
77
+ const stopHeartbeat = this.turns.startHeartbeat(turn.id);
78
+ try {
79
+ const outcome = await this.runTurn(turn, self);
80
+ if (outcome) {
81
+ await this.hooks.runAfterTurn({ threadId, turnId: turn.id, ...outcome });
82
+ }
83
+ await this.turns.finish(turn.id, thread_agent_enums_1.ThreadTurnStatus.COMPLETED);
84
+ }
85
+ catch (error) {
86
+ const reason = error instanceof Error ? error.message : String(error);
87
+ this.logger.error({
88
+ message: 'Thread agent turn failed',
89
+ threadId,
90
+ turnId: turn.id,
91
+ error: this.describeError(error),
92
+ });
93
+ await this.turns.finish(turn.id, thread_agent_enums_1.ThreadTurnStatus.FAILED, reason);
94
+ await this.saveDisplayMessage({
95
+ threadId,
96
+ actorId: self.actorId,
97
+ content: `I encountered an error while processing your message: ${reason}`,
98
+ agentMessageId: null,
99
+ });
100
+ return;
101
+ }
102
+ finally {
103
+ stopHeartbeat();
104
+ }
105
+ if (!(await this.agentLog.hasPending(threadId, self.actorId))) {
106
+ return;
107
+ }
108
+ }
109
+ }
110
+ async runTurn(turn, self) {
111
+ const { threadId } = turn;
112
+ const { triggerActor, newUserMessages } = await this.agentLog.ingestPending({
113
+ threadId,
114
+ agentActorId: self.actorId,
115
+ turnId: turn.id,
116
+ });
117
+ if (!triggerActor) {
118
+ return null;
119
+ }
120
+ const thread = await this.threadRepository.findOne({ where: { id: threadId } });
121
+ const resolved = await this.chatModelFactory.resolve({
122
+ job: enums_1.AiModelJob.CONVERSATION,
123
+ aiProviderId: thread?.aiProviderId,
124
+ modelId: thread?.modelId,
125
+ });
126
+ let rows = await this.agentLog.loadContext(threadId);
127
+ const injected = await this.hooks.runBeforeTurn({
128
+ threadId,
129
+ turnId: turn.id,
130
+ newUserMessages,
131
+ context: rows,
132
+ });
133
+ if (injected) {
134
+ rows = await this.agentLog.loadContext(threadId);
135
+ }
136
+ const messages = (0, agent_context_utils_1.buildModelMessages)(rows, resolved, (row) => {
137
+ this.logger.warn({
138
+ message: 'Skipping agent log row that does not match the message schema',
139
+ threadId,
140
+ agentMessageId: row.id,
141
+ });
142
+ });
143
+ const mcp = await this.mcpToolsFactory.open({
144
+ subject: {
145
+ id: self.actorId,
146
+ slug: self.slug,
147
+ type: enums_2.ActorType.AGENT,
148
+ displayName: self.name,
149
+ },
150
+ issuedBy: triggerActor,
151
+ });
152
+ try {
153
+ const lastInputTokens = await this.streamTurn({
154
+ turn,
155
+ self,
156
+ resolved,
157
+ messages,
158
+ tools: mcp.tools,
159
+ });
160
+ return { model: resolved, lastInputTokens };
161
+ }
162
+ finally {
163
+ await mcp.close();
164
+ }
165
+ }
166
+ async streamTurn(input) {
167
+ const { turn, self, resolved } = input;
168
+ const { threadId } = turn;
169
+ let persisted = Promise.resolve();
170
+ let lastInputTokens = null;
171
+ const result = (0, ai_1.streamText)({
172
+ model: resolved.model,
173
+ instructions: (0, thread_agent_prompts_1.buildThreadScopedInstructions)(self.systemPrompt, threadId),
174
+ messages: input.messages,
175
+ tools: input.tools,
176
+ providerOptions: resolved.providerOptions,
177
+ stopWhen: (0, ai_1.isStepCount)(exports.THREAD_AGENT_MAX_STEPS),
178
+ onError: () => undefined,
179
+ onStepEnd: (step) => {
180
+ const output = {
181
+ messages: step.response.messages,
182
+ text: step.text,
183
+ usage: step.usage,
184
+ };
185
+ lastInputTokens = step.usage?.inputTokens ?? lastInputTokens;
186
+ persisted = persisted.then(() => this.persistStep(turn, self, resolved, output));
187
+ },
188
+ });
189
+ let streamId = (0, node_crypto_1.randomUUID)();
190
+ for await (const part of result.stream) {
191
+ switch (part.type) {
192
+ case 'start-step':
193
+ streamId = (0, node_crypto_1.randomUUID)();
194
+ break;
195
+ case 'reasoning-delta':
196
+ this.emitActivity(threadId, self.actorId, 'thinking');
197
+ break;
198
+ case 'tool-call':
199
+ this.emitActivity(threadId, self.actorId, 'tool_calling');
200
+ break;
201
+ case 'text-delta':
202
+ this.eventEmitter.emit(threads_events_1.ThreadAgentResponseDeltaEvent.INTERNAL, new threads_events_1.ThreadAgentResponseDeltaEvent({ id: self.actorId }, { threadId, streamId, delta: part.text }));
203
+ break;
204
+ case 'error':
205
+ await persisted;
206
+ throw part.error instanceof Error ? part.error : new Error(String(part.error));
207
+ }
208
+ }
209
+ await persisted;
210
+ return lastInputTokens;
211
+ }
212
+ async persistStep(turn, self, resolved, step) {
213
+ const messages = JSON.parse(JSON.stringify(step.messages));
214
+ const drafts = messages.map((message) => ({
215
+ role: message.role,
216
+ message,
217
+ source: 'model',
218
+ turnId: turn.id,
219
+ providerType: resolved.providerType,
220
+ modelId: resolved.modelId,
221
+ usage: message.role === 'assistant'
222
+ ? JSON.parse(JSON.stringify(step.usage ?? null))
223
+ : null,
224
+ }));
225
+ const saved = await this.agentLog.append(turn.threadId, drafts);
226
+ const text = step.text.trim();
227
+ const assistantRow = saved.find((row) => row.role === thread_agent_enums_1.ThreadAgentMessageRole.ASSISTANT);
228
+ if (text && assistantRow) {
229
+ await this.saveDisplayMessage({
230
+ threadId: turn.threadId,
231
+ actorId: self.actorId,
232
+ content: text,
233
+ agentMessageId: assistantRow.id,
234
+ });
235
+ }
236
+ }
237
+ async saveDisplayMessage(input) {
238
+ try {
239
+ const saved = await this.threadMessageRepository.save(this.threadMessageRepository.create({
240
+ threadId: input.threadId,
241
+ content: input.content,
242
+ createdByActorId: input.actorId,
243
+ agentMessageId: input.agentMessageId,
244
+ }));
245
+ const withRelations = await this.threadMessageRepository.findOne({
246
+ where: { id: saved.id },
247
+ relations: ['createdByActor'],
248
+ });
249
+ if (!withRelations) {
250
+ return;
251
+ }
252
+ this.eventEmitter.emit(threads_events_1.MessageCreatedEvent.INTERNAL, new threads_events_1.MessageCreatedEvent({ id: input.actorId }, withRelations));
253
+ }
254
+ catch (error) {
255
+ this.logger.error({
256
+ message: 'Failed to persist agent message',
257
+ threadId: input.threadId,
258
+ error: this.describeError(error),
259
+ });
260
+ }
261
+ }
262
+ emitActivity(threadId, actorId, kind) {
263
+ this.eventEmitter.emit(threads_events_1.ThreadAgentActivityEvent.INTERNAL, new threads_events_1.ThreadAgentActivityEvent({ id: actorId }, { threadId, kind }));
264
+ }
265
+ describeError(error) {
266
+ return error instanceof Error
267
+ ? { message: error.message, stack: error.stack, name: error.name }
268
+ : String(error);
269
+ }
270
+ };
271
+ exports.ThreadAgentService = ThreadAgentService;
272
+ exports.ThreadAgentService = ThreadAgentService = ThreadAgentService_1 = __decorate([
273
+ (0, common_1.Injectable)(),
274
+ __param(0, (0, typeorm_1.InjectRepository)(thread_entity_1.ThreadEntity)),
275
+ __param(1, (0, typeorm_1.InjectRepository)(thread_message_entity_1.ThreadMessageEntity)),
276
+ __metadata("design:paramtypes", [typeorm_2.Repository,
277
+ typeorm_2.Repository,
278
+ agents_service_1.AgentsService,
279
+ thread_agent_log_service_1.ThreadAgentLogService,
280
+ thread_turns_service_1.ThreadTurnsService,
281
+ chat_model_factory_1.ChatModelFactory,
282
+ taico_mcp_tools_factory_1.TaicoMcpToolsFactory,
283
+ thread_agent_hooks_runner_1.ThreadAgentHooksRunner,
284
+ event_emitter_1.EventEmitter2])
285
+ ], ThreadAgentService);
286
+ //# sourceMappingURL=thread-agent.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-agent.service.js","sourceRoot":"","sources":["../../../src/threads/agent/thread-agent.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};