@taico/taico 0.0.5 → 0.2.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 (509) hide show
  1. package/dist/agent-runs/agent-run.entity.d.ts +3 -0
  2. package/dist/agent-runs/agent-run.entity.js +14 -1
  3. package/dist/agent-runs/agent-run.entity.js.map +1 -1
  4. package/dist/agent-runs/agent-runs.controller.js +17 -2
  5. package/dist/agent-runs/agent-runs.controller.js.map +1 -1
  6. package/dist/agent-runs/agent-runs.service.js +14 -0
  7. package/dist/agent-runs/agent-runs.service.js.map +1 -1
  8. package/dist/agent-runs/dto/agent-run-response.dto.d.ts +1 -0
  9. package/dist/agent-runs/dto/agent-run-response.dto.js +12 -0
  10. package/dist/agent-runs/dto/agent-run-response.dto.js.map +1 -1
  11. package/dist/agent-runs/dto/create-agent-run.dto.d.ts +1 -0
  12. package/dist/agent-runs/dto/create-agent-run.dto.js +11 -0
  13. package/dist/agent-runs/dto/create-agent-run.dto.js.map +1 -1
  14. package/dist/agent-runs/dto/service/agent-runs.service.types.d.ts +3 -0
  15. package/dist/agent-runs/dto/update-agent-run.dto.d.ts +1 -0
  16. package/dist/agent-runs/dto/update-agent-run.dto.js +11 -0
  17. package/dist/agent-runs/dto/update-agent-run.dto.js.map +1 -1
  18. package/dist/agents/agent-execution-tokens.controller.d.ts +13 -0
  19. package/dist/agents/agent-execution-tokens.controller.js +87 -0
  20. package/dist/agents/agent-execution-tokens.controller.js.map +1 -0
  21. package/dist/agents/agents.module.js +6 -1
  22. package/dist/agents/agents.module.js.map +1 -1
  23. package/dist/agents/agents.scopes.d.ts +4 -0
  24. package/dist/agents/agents.scopes.js +4 -0
  25. package/dist/agents/agents.scopes.js.map +1 -1
  26. package/dist/agents/agents.service.d.ts +3 -0
  27. package/dist/agents/agents.service.js +15 -0
  28. package/dist/agents/agents.service.js.map +1 -1
  29. package/dist/agents/dto/agent-execution-token-response.dto.d.ts +7 -0
  30. package/dist/agents/dto/agent-execution-token-response.dto.js +58 -0
  31. package/dist/agents/dto/agent-execution-token-response.dto.js.map +1 -0
  32. package/dist/agents/dto/request-agent-execution-token.dto.d.ts +4 -0
  33. package/dist/agents/dto/request-agent-execution-token.dto.js +43 -0
  34. package/dist/agents/dto/request-agent-execution-token.dto.js.map +1 -0
  35. package/dist/app-init/agent/taico.agent.js +4 -1
  36. package/dist/app-init/agent/taico.agent.js.map +1 -1
  37. package/dist/app-init/app-init.module.js +2 -0
  38. package/dist/app-init/app-init.module.js.map +1 -1
  39. package/dist/app-init/app-init.runner.d.ts +5 -1
  40. package/dist/app-init/app-init.runner.js +57 -16
  41. package/dist/app-init/app-init.runner.js.map +1 -1
  42. package/dist/app-init/mcp/elen.mcp.d.ts +2 -0
  43. package/dist/app-init/mcp/elen.mcp.js +12 -0
  44. package/dist/app-init/mcp/elen.mcp.js.map +1 -0
  45. package/dist/app-init/mcp/internal-worker-auth.mcp.d.ts +3 -0
  46. package/dist/app-init/mcp/internal-worker-auth.mcp.js +15 -0
  47. package/dist/app-init/mcp/internal-worker-auth.mcp.js.map +1 -0
  48. package/dist/app.module.js +31 -3
  49. package/dist/app.module.js.map +1 -1
  50. package/dist/auth/core/constants/internal-auth-target.constant.d.ts +1 -0
  51. package/dist/auth/core/constants/internal-auth-target.constant.js +10 -0
  52. package/dist/auth/core/constants/internal-auth-target.constant.js.map +1 -0
  53. package/dist/auth/core/scopes/all-api.scopes.js +4 -0
  54. package/dist/auth/core/scopes/all-api.scopes.js.map +1 -1
  55. package/dist/auth/guards/constants/headers.constants.d.ts +1 -0
  56. package/dist/auth/guards/constants/headers.constants.js +2 -1
  57. package/dist/auth/guards/constants/headers.constants.js.map +1 -1
  58. package/dist/auth/guards/decorators/current-execution-id.decorator.d.ts +1 -0
  59. package/dist/auth/guards/decorators/current-execution-id.decorator.js +11 -0
  60. package/dist/auth/guards/decorators/current-execution-id.decorator.js.map +1 -0
  61. package/dist/authorization-server/dto/authorization-request.dto.d.ts +1 -1
  62. package/dist/authorization-server/dto/authorization-request.dto.js +2 -2
  63. package/dist/authorization-server/dto/authorization-request.dto.js.map +1 -1
  64. package/dist/authorization-server/dto/authorization-request.dto.spec.d.ts +1 -0
  65. package/dist/authorization-server/dto/authorization-request.dto.spec.js +30 -0
  66. package/dist/authorization-server/dto/authorization-request.dto.spec.js.map +1 -0
  67. package/dist/authorization-server/dto/onboarding-request.dto.d.ts +6 -0
  68. package/dist/authorization-server/dto/onboarding-request.dto.js +57 -0
  69. package/dist/authorization-server/dto/onboarding-request.dto.js.map +1 -0
  70. package/dist/authorization-server/dto/onboarding-status-response.dto.d.ts +3 -0
  71. package/dist/authorization-server/dto/onboarding-status-response.dto.js +25 -0
  72. package/dist/authorization-server/dto/onboarding-status-response.dto.js.map +1 -0
  73. package/dist/authorization-server/dto/register-client.dto.js +2 -2
  74. package/dist/authorization-server/dto/register-client.dto.js.map +1 -1
  75. package/dist/authorization-server/dto/user-response.dto.d.ts +1 -0
  76. package/dist/authorization-server/dto/user-response.dto.js +8 -0
  77. package/dist/authorization-server/dto/user-response.dto.js.map +1 -1
  78. package/dist/authorization-server/issued-access-token.service.d.ts +13 -0
  79. package/dist/authorization-server/issued-access-token.service.js +53 -27
  80. package/dist/authorization-server/issued-access-token.service.js.map +1 -1
  81. package/dist/authorization-server/web-auth.controller.d.ts +7 -0
  82. package/dist/authorization-server/web-auth.controller.js +129 -0
  83. package/dist/authorization-server/web-auth.controller.js.map +1 -1
  84. package/dist/chat-providers/chat-provider.entity.d.ts +14 -0
  85. package/dist/chat-providers/chat-provider.entity.js +73 -0
  86. package/dist/chat-providers/chat-provider.entity.js.map +1 -0
  87. package/dist/chat-providers/chat-providers.controller.d.ts +19 -0
  88. package/dist/chat-providers/chat-providers.controller.js +179 -0
  89. package/dist/chat-providers/chat-providers.controller.js.map +1 -0
  90. package/dist/chat-providers/chat-providers.module.d.ts +2 -0
  91. package/dist/chat-providers/chat-providers.module.js +32 -0
  92. package/dist/chat-providers/chat-providers.module.js.map +1 -0
  93. package/dist/chat-providers/chat-providers.scopes.d.ts +20 -0
  94. package/dist/chat-providers/chat-providers.scopes.js +23 -0
  95. package/dist/chat-providers/chat-providers.scopes.js.map +1 -0
  96. package/dist/chat-providers/chat-providers.service.d.ts +20 -0
  97. package/dist/chat-providers/chat-providers.service.js +189 -0
  98. package/dist/chat-providers/chat-providers.service.js.map +1 -0
  99. package/dist/chat-providers/dto/http/chat-provider-params.dto.d.ts +3 -0
  100. package/dist/chat-providers/dto/http/chat-provider-params.dto.js +27 -0
  101. package/dist/chat-providers/dto/http/chat-provider-params.dto.js.map +1 -0
  102. package/dist/chat-providers/dto/http/chat-provider-response.dto.d.ts +12 -0
  103. package/dist/chat-providers/dto/http/chat-provider-response.dto.js +93 -0
  104. package/dist/chat-providers/dto/http/chat-provider-response.dto.js.map +1 -0
  105. package/dist/chat-providers/dto/http/create-chat-provider.dto.d.ts +6 -0
  106. package/dist/chat-providers/dto/http/create-chat-provider.dto.js +51 -0
  107. package/dist/chat-providers/dto/http/create-chat-provider.dto.js.map +1 -0
  108. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.d.ts +3 -0
  109. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js +28 -0
  110. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js.map +1 -0
  111. package/dist/chat-providers/dto/http/update-chat-provider.dto.d.ts +5 -0
  112. package/dist/chat-providers/dto/http/update-chat-provider.dto.js +49 -0
  113. package/dist/chat-providers/dto/http/update-chat-provider.dto.js.map +1 -0
  114. package/dist/chat-providers/dto/service/chat-providers.service.types.d.ts +30 -0
  115. package/dist/chat-providers/dto/service/chat-providers.service.types.js +3 -0
  116. package/dist/chat-providers/dto/service/chat-providers.service.types.js.map +1 -0
  117. package/dist/chat-providers/enums/chat-provider-type.enum.d.ts +3 -0
  118. package/dist/chat-providers/enums/chat-provider-type.enum.js +8 -0
  119. package/dist/chat-providers/enums/chat-provider-type.enum.js.map +1 -0
  120. package/dist/chat-providers/enums/index.d.ts +1 -0
  121. package/dist/chat-providers/enums/index.js +18 -0
  122. package/dist/chat-providers/enums/index.js.map +1 -0
  123. package/dist/chat-providers/errors/chat-providers.errors.d.ts +25 -0
  124. package/dist/chat-providers/errors/chat-providers.errors.js +48 -0
  125. package/dist/chat-providers/errors/chat-providers.errors.js.map +1 -0
  126. package/dist/config/env.config.d.ts +4 -1
  127. package/dist/config/env.config.js +17 -13
  128. package/dist/config/env.config.js.map +1 -1
  129. package/dist/context/context.controller.d.ts +3 -0
  130. package/dist/context/context.controller.js +26 -0
  131. package/dist/context/context.controller.js.map +1 -1
  132. package/dist/context/context.gateway.d.ts +15 -3
  133. package/dist/context/context.gateway.js +45 -9
  134. package/dist/context/context.gateway.js.map +1 -1
  135. package/dist/context/context.mcp.gateway.js +36 -0
  136. package/dist/context/context.mcp.gateway.js.map +1 -1
  137. package/dist/context/context.service.d.ts +5 -2
  138. package/dist/context/context.service.js +39 -2
  139. package/dist/context/context.service.js.map +1 -1
  140. package/dist/context/dto/block-search-result.dto.d.ts +5 -0
  141. package/dist/context/dto/block-search-result.dto.js +43 -0
  142. package/dist/context/dto/block-search-result.dto.js.map +1 -0
  143. package/dist/context/dto/search-blocks-query.dto.d.ts +5 -0
  144. package/dist/context/dto/search-blocks-query.dto.js +60 -0
  145. package/dist/context/dto/search-blocks-query.dto.js.map +1 -0
  146. package/dist/context/dto/service/context.service.types.d.ts +10 -0
  147. package/dist/discovery/discovery.service.js +2 -0
  148. package/dist/discovery/discovery.service.js.map +1 -1
  149. package/dist/errors/http/error-catalog.js +96 -0
  150. package/dist/errors/http/error-catalog.js.map +1 -1
  151. package/dist/executions/dto/http/execution-list-response.dto.d.ts +8 -0
  152. package/dist/executions/dto/http/execution-list-response.dto.js +58 -0
  153. package/dist/executions/dto/http/execution-list-response.dto.js.map +1 -0
  154. package/dist/executions/dto/http/execution-response.dto.d.ts +24 -0
  155. package/dist/executions/dto/http/execution-response.dto.js +225 -0
  156. package/dist/executions/dto/http/execution-response.dto.js.map +1 -0
  157. package/dist/executions/dto/http/list-executions-query.dto.d.ts +8 -0
  158. package/dist/executions/dto/http/list-executions-query.dto.js +79 -0
  159. package/dist/executions/dto/http/list-executions-query.dto.js.map +1 -0
  160. package/dist/executions/dto/service/execution-claim.service.types.d.ts +27 -0
  161. package/dist/executions/dto/service/execution-claim.service.types.js +3 -0
  162. package/dist/executions/dto/service/execution-claim.service.types.js.map +1 -0
  163. package/dist/executions/dto/service/executions.service.types.d.ts +35 -0
  164. package/dist/executions/dto/service/executions.service.types.js +3 -0
  165. package/dist/executions/dto/service/executions.service.types.js.map +1 -0
  166. package/dist/executions/enums/index.d.ts +2 -0
  167. package/dist/executions/enums/index.js +8 -0
  168. package/dist/executions/enums/index.js.map +1 -0
  169. package/dist/executions/enums/task-execution-status.enum.d.ts +10 -0
  170. package/dist/executions/enums/task-execution-status.enum.js +15 -0
  171. package/dist/executions/enums/task-execution-status.enum.js.map +1 -0
  172. package/dist/executions/enums/worker-session-status.enum.d.ts +6 -0
  173. package/dist/executions/enums/worker-session-status.enum.js +11 -0
  174. package/dist/executions/enums/worker-session-status.enum.js.map +1 -0
  175. package/dist/executions/errors/executions.errors.d.ts +21 -0
  176. package/dist/executions/errors/executions.errors.js +41 -0
  177. package/dist/executions/errors/executions.errors.js.map +1 -0
  178. package/dist/executions/events/executions.events.d.ts +25 -0
  179. package/dist/executions/events/executions.events.js +39 -0
  180. package/dist/executions/events/executions.events.js.map +1 -0
  181. package/dist/executions/execution-claim.service.d.ts +17 -0
  182. package/dist/executions/execution-claim.service.js +368 -0
  183. package/dist/executions/execution-claim.service.js.map +1 -0
  184. package/dist/executions/execution-context-resolver.service.d.ts +21 -0
  185. package/dist/executions/execution-context-resolver.service.js +119 -0
  186. package/dist/executions/execution-context-resolver.service.js.map +1 -0
  187. package/dist/executions/execution-reconciler.service.d.ts +24 -0
  188. package/dist/executions/execution-reconciler.service.js +345 -0
  189. package/dist/executions/execution-reconciler.service.js.map +1 -0
  190. package/dist/executions/executions.controller.d.ts +8 -0
  191. package/dist/executions/executions.controller.js +70 -0
  192. package/dist/executions/executions.controller.js.map +1 -0
  193. package/dist/executions/executions.gateway.d.ts +21 -0
  194. package/dist/executions/executions.gateway.js +167 -0
  195. package/dist/executions/executions.gateway.js.map +1 -0
  196. package/dist/executions/executions.module.d.ts +2 -0
  197. package/dist/executions/executions.module.js +64 -0
  198. package/dist/executions/executions.module.js.map +1 -0
  199. package/dist/executions/executions.service.d.ts +15 -0
  200. package/dist/executions/executions.service.js +119 -0
  201. package/dist/executions/executions.service.js.map +1 -0
  202. package/dist/executions/task-execution.entity.d.ts +25 -0
  203. package/dist/executions/task-execution.entity.js +130 -0
  204. package/dist/executions/task-execution.entity.js.map +1 -0
  205. package/dist/executions/worker-session.entity.d.ts +19 -0
  206. package/dist/executions/worker-session.entity.js +103 -0
  207. package/dist/executions/worker-session.entity.js.map +1 -0
  208. package/dist/executions/worker-session.service.d.ts +24 -0
  209. package/dist/executions/worker-session.service.js +115 -0
  210. package/dist/executions/worker-session.service.js.map +1 -0
  211. package/dist/executions/workers.gateway.d.ts +25 -0
  212. package/dist/executions/workers.gateway.js +355 -0
  213. package/dist/executions/workers.gateway.js.map +1 -0
  214. package/dist/executions/workers.scopes.d.ts +8 -0
  215. package/dist/executions/workers.scopes.js +11 -0
  216. package/dist/executions/workers.scopes.js.map +1 -0
  217. package/dist/executions-v2/active/active-execution-context-resolver.service.d.ts +18 -0
  218. package/dist/executions-v2/active/active-execution-context-resolver.service.js +78 -0
  219. package/dist/executions-v2/active/active-execution-context-resolver.service.js.map +1 -0
  220. package/dist/executions-v2/active/active-task-execution.controller.d.ts +11 -0
  221. package/dist/executions-v2/active/active-task-execution.controller.js +93 -0
  222. package/dist/executions-v2/active/active-task-execution.controller.js.map +1 -0
  223. package/dist/executions-v2/active/active-task-execution.entity.d.ts +24 -0
  224. package/dist/executions-v2/active/active-task-execution.entity.js +108 -0
  225. package/dist/executions-v2/active/active-task-execution.entity.js.map +1 -0
  226. package/dist/executions-v2/active/active-task-execution.service.d.ts +24 -0
  227. package/dist/executions-v2/active/active-task-execution.service.js +127 -0
  228. package/dist/executions-v2/active/active-task-execution.service.js.map +1 -0
  229. package/dist/executions-v2/active/dto/http/active-task-execution-response.dto.d.ts +22 -0
  230. package/dist/executions-v2/active/dto/http/active-task-execution-response.dto.js +152 -0
  231. package/dist/executions-v2/active/dto/http/active-task-execution-response.dto.js.map +1 -0
  232. package/dist/executions-v2/active/dto/http/stop-active-task-execution.dto.d.ts +7 -0
  233. package/dist/executions-v2/active/dto/http/stop-active-task-execution.dto.js +58 -0
  234. package/dist/executions-v2/active/dto/http/stop-active-task-execution.dto.js.map +1 -0
  235. package/dist/executions-v2/errors/executions-v2.errors.d.ts +13 -0
  236. package/dist/executions-v2/errors/executions-v2.errors.js +31 -0
  237. package/dist/executions-v2/errors/executions-v2.errors.js.map +1 -0
  238. package/dist/executions-v2/events/execution-activity.events.d.ts +20 -0
  239. package/dist/executions-v2/events/execution-activity.events.js +15 -0
  240. package/dist/executions-v2/events/execution-activity.events.js.map +1 -0
  241. package/dist/executions-v2/execution-activity.service.d.ts +20 -0
  242. package/dist/executions-v2/execution-activity.service.js +68 -0
  243. package/dist/executions-v2/execution-activity.service.js.map +1 -0
  244. package/dist/executions-v2/executions-v2-worker.gateway.d.ts +29 -0
  245. package/dist/executions-v2/executions-v2-worker.gateway.js +149 -0
  246. package/dist/executions-v2/executions-v2-worker.gateway.js.map +1 -0
  247. package/dist/executions-v2/executions-v2.module.d.ts +2 -0
  248. package/dist/executions-v2/executions-v2.module.js +78 -0
  249. package/dist/executions-v2/executions-v2.module.js.map +1 -0
  250. package/dist/executions-v2/history/dto/http/task-execution-history-response.dto.d.ts +18 -0
  251. package/dist/executions-v2/history/dto/http/task-execution-history-response.dto.js +129 -0
  252. package/dist/executions-v2/history/dto/http/task-execution-history-response.dto.js.map +1 -0
  253. package/dist/executions-v2/history/task-execution-history-error-code.enum.d.ts +4 -0
  254. package/dist/executions-v2/history/task-execution-history-error-code.enum.js +9 -0
  255. package/dist/executions-v2/history/task-execution-history-error-code.enum.js.map +1 -0
  256. package/dist/executions-v2/history/task-execution-history-status.enum.d.ts +6 -0
  257. package/dist/executions-v2/history/task-execution-history-status.enum.js +11 -0
  258. package/dist/executions-v2/history/task-execution-history-status.enum.js.map +1 -0
  259. package/dist/executions-v2/history/task-execution-history.controller.d.ts +7 -0
  260. package/dist/executions-v2/history/task-execution-history.controller.js +51 -0
  261. package/dist/executions-v2/history/task-execution-history.controller.js.map +1 -0
  262. package/dist/executions-v2/history/task-execution-history.entity.d.ts +21 -0
  263. package/dist/executions-v2/history/task-execution-history.entity.js +113 -0
  264. package/dist/executions-v2/history/task-execution-history.entity.js.map +1 -0
  265. package/dist/executions-v2/history/task-execution-history.service.d.ts +7 -0
  266. package/dist/executions-v2/history/task-execution-history.service.js +38 -0
  267. package/dist/executions-v2/history/task-execution-history.service.js.map +1 -0
  268. package/dist/executions-v2/queue/dto/http/task-execution-queue-entry-response.dto.d.ts +8 -0
  269. package/dist/executions-v2/queue/dto/http/task-execution-queue-entry-response.dto.js +52 -0
  270. package/dist/executions-v2/queue/dto/http/task-execution-queue-entry-response.dto.js.map +1 -0
  271. package/dist/executions-v2/queue/task-execution-queue.controller.d.ts +12 -0
  272. package/dist/executions-v2/queue/task-execution-queue.controller.js +100 -0
  273. package/dist/executions-v2/queue/task-execution-queue.controller.js.map +1 -0
  274. package/dist/executions-v2/queue/task-execution-queue.entity.d.ts +9 -0
  275. package/dist/executions-v2/queue/task-execution-queue.entity.js +52 -0
  276. package/dist/executions-v2/queue/task-execution-queue.entity.js.map +1 -0
  277. package/dist/executions-v2/queue/task-execution-queue.service.d.ts +7 -0
  278. package/dist/executions-v2/queue/task-execution-queue.service.js +38 -0
  279. package/dist/executions-v2/queue/task-execution-queue.service.js.map +1 -0
  280. package/dist/executions-v2/readiness/readiness-candidate.repository.d.ts +11 -0
  281. package/dist/executions-v2/readiness/readiness-candidate.repository.js +65 -0
  282. package/dist/executions-v2/readiness/readiness-candidate.repository.js.map +1 -0
  283. package/dist/executions-v2/readiness/task-eligibility-event-source.service.d.ts +13 -0
  284. package/dist/executions-v2/readiness/task-eligibility-event-source.service.js +83 -0
  285. package/dist/executions-v2/readiness/task-eligibility-event-source.service.js.map +1 -0
  286. package/dist/executions-v2/readiness/task-eligibility-scheduler.service.d.ts +7 -0
  287. package/dist/executions-v2/readiness/task-eligibility-scheduler.service.js +41 -0
  288. package/dist/executions-v2/readiness/task-eligibility-scheduler.service.js.map +1 -0
  289. package/dist/executions-v2/readiness/task-execution-queue-populator.service.d.ts +19 -0
  290. package/dist/executions-v2/readiness/task-execution-queue-populator.service.js +138 -0
  291. package/dist/executions-v2/readiness/task-execution-queue-populator.service.js.map +1 -0
  292. package/dist/executions-v2/staleness/stale-active-task-execution-detector.service.d.ts +13 -0
  293. package/dist/executions-v2/staleness/stale-active-task-execution-detector.service.js +54 -0
  294. package/dist/executions-v2/staleness/stale-active-task-execution-detector.service.js.map +1 -0
  295. package/dist/executions-v2/staleness/stale-active-task-execution-pruner.service.d.ts +9 -0
  296. package/dist/executions-v2/staleness/stale-active-task-execution-pruner.service.js +116 -0
  297. package/dist/executions-v2/staleness/stale-active-task-execution-pruner.service.js.map +1 -0
  298. package/dist/executions-v2/staleness/stale-active-task-execution-scheduler.service.d.ts +9 -0
  299. package/dist/executions-v2/staleness/stale-active-task-execution-scheduler.service.js +62 -0
  300. package/dist/executions-v2/staleness/stale-active-task-execution-scheduler.service.js.map +1 -0
  301. package/dist/executions-v2/task-activity-projection.service.d.ts +7 -0
  302. package/dist/executions-v2/task-activity-projection.service.js +43 -0
  303. package/dist/executions-v2/task-activity-projection.service.js.map +1 -0
  304. package/dist/global-search/dto/global-search-query.dto.d.ts +5 -0
  305. package/dist/global-search/dto/global-search-query.dto.js +60 -0
  306. package/dist/global-search/dto/global-search-query.dto.js.map +1 -0
  307. package/dist/global-search/dto/global-search-result.dto.d.ts +15 -0
  308. package/dist/global-search/dto/global-search-result.dto.js +69 -0
  309. package/dist/global-search/dto/global-search-result.dto.js.map +1 -0
  310. package/dist/global-search/global-search.controller.d.ts +8 -0
  311. package/dist/global-search/global-search.controller.js +63 -0
  312. package/dist/global-search/global-search.controller.js.map +1 -0
  313. package/dist/global-search/global-search.module.d.ts +2 -0
  314. package/dist/global-search/global-search.module.js +37 -0
  315. package/dist/global-search/global-search.module.js.map +1 -0
  316. package/dist/global-search/global-search.service.d.ts +28 -0
  317. package/dist/global-search/global-search.service.js +137 -0
  318. package/dist/global-search/global-search.service.js.map +1 -0
  319. package/dist/identity-provider/errors/identity-provider.errors.d.ts +38 -0
  320. package/dist/identity-provider/errors/identity-provider.errors.js +70 -0
  321. package/dist/identity-provider/errors/identity-provider.errors.js.map +1 -0
  322. package/dist/identity-provider/identity-provider.service.d.ts +3 -0
  323. package/dist/identity-provider/identity-provider.service.js +71 -4
  324. package/dist/identity-provider/identity-provider.service.js.map +1 -1
  325. package/dist/identity-provider/user.entity.d.ts +1 -0
  326. package/dist/identity-provider/user.entity.js +5 -0
  327. package/dist/identity-provider/user.entity.js.map +1 -1
  328. package/dist/llm/llm.module.js +2 -0
  329. package/dist/llm/llm.module.js.map +1 -1
  330. package/dist/llm/openai-responses.service.d.ts +3 -0
  331. package/dist/llm/openai-responses.service.js +20 -5
  332. package/dist/llm/openai-responses.service.js.map +1 -1
  333. package/dist/main.js +73 -30
  334. package/dist/main.js.map +1 -1
  335. package/dist/mcp-registry/dto/service/mcp-registry.service.types.d.ts +10 -0
  336. package/dist/mcp-registry/entities/mcp-server.entity.js +1 -1
  337. package/dist/mcp-registry/entities/mcp-server.entity.js.map +1 -1
  338. package/dist/mcp-registry/mcp-registry.module.js +2 -0
  339. package/dist/mcp-registry/mcp-registry.module.js.map +1 -1
  340. package/dist/mcp-registry/mcp-registry.service.d.ts +6 -2
  341. package/dist/mcp-registry/mcp-registry.service.js +68 -20
  342. package/dist/mcp-registry/mcp-registry.service.js.map +1 -1
  343. package/dist/meta/dto/create-project.dto.js +3 -2
  344. package/dist/meta/dto/create-project.dto.js.map +1 -1
  345. package/dist/meta/dto/patch-project.dto.js +3 -2
  346. package/dist/meta/dto/patch-project.dto.js.map +1 -1
  347. package/dist/meta/meta.module.js +2 -1
  348. package/dist/meta/meta.module.js.map +1 -1
  349. package/dist/meta/meta.service.d.ts +5 -1
  350. package/dist/meta/meta.service.js +63 -6
  351. package/dist/meta/meta.service.js.map +1 -1
  352. package/dist/meta/tag-usage.entity.d.ts +10 -0
  353. package/dist/meta/tag-usage.entity.js +58 -0
  354. package/dist/meta/tag-usage.entity.js.map +1 -0
  355. package/dist/meta/validators/is-git-url.validator.d.ts +6 -0
  356. package/dist/meta/validators/is-git-url.validator.js +47 -0
  357. package/dist/meta/validators/is-git-url.validator.js.map +1 -0
  358. package/dist/meta/validators/is-git-url.validator.spec.d.ts +1 -0
  359. package/dist/meta/validators/is-git-url.validator.spec.js +73 -0
  360. package/dist/meta/validators/is-git-url.validator.spec.js.map +1 -0
  361. package/dist/migrations/1740100000000-AddChatProvidersTable.d.ts +5 -0
  362. package/dist/migrations/1740100000000-AddChatProvidersTable.js +32 -0
  363. package/dist/migrations/1740100000000-AddChatProvidersTable.js.map +1 -0
  364. package/dist/migrations/1741100000000-AddTagUsageTable.d.ts +6 -0
  365. package/dist/migrations/1741100000000-AddTagUsageTable.js +67 -0
  366. package/dist/migrations/1741100000000-AddTagUsageTable.js.map +1 -0
  367. package/dist/migrations/1741200000000-McpServerProvidedIdPartialUniqueIndex.d.ts +5 -0
  368. package/dist/migrations/1741200000000-McpServerProvidedIdPartialUniqueIndex.js +69 -0
  369. package/dist/migrations/1741200000000-McpServerProvidedIdPartialUniqueIndex.js.map +1 -0
  370. package/dist/migrations/1741300000000-AddHasSeenWalkthroughToUsers.d.ts +6 -0
  371. package/dist/migrations/1741300000000-AddHasSeenWalkthroughToUsers.js +43 -0
  372. package/dist/migrations/1741300000000-AddHasSeenWalkthroughToUsers.js.map +1 -0
  373. package/dist/migrations/1741400000000-EnforceSingleThreadPerParentTask.d.ts +5 -0
  374. package/dist/migrations/1741400000000-EnforceSingleThreadPerParentTask.js +76 -0
  375. package/dist/migrations/1741400000000-EnforceSingleThreadPerParentTask.js.map +1 -0
  376. package/dist/migrations/1741500000000-AddExecutionPersistenceTables.d.ts +5 -0
  377. package/dist/migrations/1741500000000-AddExecutionPersistenceTables.js +84 -0
  378. package/dist/migrations/1741500000000-AddExecutionPersistenceTables.js.map +1 -0
  379. package/dist/migrations/1741600000000-AddTaskExecutionIdToAgentRuns.d.ts +5 -0
  380. package/dist/migrations/1741600000000-AddTaskExecutionIdToAgentRuns.js +66 -0
  381. package/dist/migrations/1741600000000-AddTaskExecutionIdToAgentRuns.js.map +1 -0
  382. package/dist/migrations/1741700000000-AddExecutionsV2Tables.d.ts +5 -0
  383. package/dist/migrations/1741700000000-AddExecutionsV2Tables.js +103 -0
  384. package/dist/migrations/1741700000000-AddExecutionsV2Tables.js.map +1 -0
  385. package/dist/migrations/1741800000000-AddLastHeartbeatAtToActiveExecutionsV2.d.ts +5 -0
  386. package/dist/migrations/1741800000000-AddLastHeartbeatAtToActiveExecutionsV2.js +19 -0
  387. package/dist/migrations/1741800000000-AddLastHeartbeatAtToActiveExecutionsV2.js.map +1 -0
  388. package/dist/migrations/1741900000000-AddErrorMessageToTaskExecutionHistoryV2.d.ts +6 -0
  389. package/dist/migrations/1741900000000-AddErrorMessageToTaskExecutionHistoryV2.js +20 -0
  390. package/dist/migrations/1741900000000-AddErrorMessageToTaskExecutionHistoryV2.js.map +1 -0
  391. package/dist/public/assets/index-BYBolBql.css +1 -0
  392. package/dist/public/assets/index-Cr1iblrK.js +73 -0
  393. package/dist/public/beta/assets/index-DCkmROA6.js +85 -0
  394. package/dist/public/beta/index.html +1 -1
  395. package/dist/public/index.html +2 -2
  396. package/dist/secrets/errors/secrets.errors.js +1 -1
  397. package/dist/secrets/errors/secrets.errors.js.map +1 -1
  398. package/dist/secrets/secrets-encryption.service.d.ts +1 -0
  399. package/dist/secrets/secrets-encryption.service.js +21 -6
  400. package/dist/secrets/secrets-encryption.service.js.map +1 -1
  401. package/dist/tasks/dto/service/tasks.service.types.d.ts +2 -1
  402. package/dist/tasks/dto/task-response.dto.js +1 -0
  403. package/dist/tasks/dto/task-response.dto.js.map +1 -1
  404. package/dist/tasks/events/tasks.events.d.ts +11 -0
  405. package/dist/tasks/events/tasks.events.js +8 -1
  406. package/dist/tasks/events/tasks.events.js.map +1 -1
  407. package/dist/tasks/tasks.controller.d.ts +2 -2
  408. package/dist/tasks/tasks.controller.js +33 -17
  409. package/dist/tasks/tasks.controller.js.map +1 -1
  410. package/dist/tasks/tasks.gateway.d.ts +4 -3
  411. package/dist/tasks/tasks.gateway.js +17 -0
  412. package/dist/tasks/tasks.gateway.js.map +1 -1
  413. package/dist/tasks/tasks.mcp.gateway.d.ts +1 -1
  414. package/dist/tasks/tasks.mcp.gateway.js +43 -4
  415. package/dist/tasks/tasks.mcp.gateway.js.map +1 -1
  416. package/dist/tasks/tasks.module.js +2 -0
  417. package/dist/tasks/tasks.module.js.map +1 -1
  418. package/dist/tasks/tasks.service.create-task-in-thread.spec.d.ts +1 -0
  419. package/dist/tasks/tasks.service.create-task-in-thread.spec.js +46 -0
  420. package/dist/tasks/tasks.service.create-task-in-thread.spec.js.map +1 -0
  421. package/dist/tasks/tasks.service.d.ts +3 -1
  422. package/dist/tasks/tasks.service.js +34 -20
  423. package/dist/tasks/tasks.service.js.map +1 -1
  424. package/dist/threads/chat.service.d.ts +18 -3
  425. package/dist/threads/chat.service.js +372 -54
  426. package/dist/threads/chat.service.js.map +1 -1
  427. package/dist/threads/dto/service/threads.service.types.d.ts +1 -0
  428. package/dist/threads/dto/thread-list-item-response.dto.d.ts +1 -0
  429. package/dist/threads/dto/thread-list-item-response.dto.js +8 -0
  430. package/dist/threads/dto/thread-list-item-response.dto.js.map +1 -1
  431. package/dist/threads/errors/threads.errors.d.ts +4 -1
  432. package/dist/threads/errors/threads.errors.js +8 -1
  433. package/dist/threads/errors/threads.errors.js.map +1 -1
  434. package/dist/threads/events/threads.events.d.ts +9 -0
  435. package/dist/threads/events/threads.events.js +8 -1
  436. package/dist/threads/events/threads.events.js.map +1 -1
  437. package/dist/threads/openai-mcp-server-factory.service.d.ts +5 -2
  438. package/dist/threads/openai-mcp-server-factory.service.js.map +1 -1
  439. package/dist/threads/thread-state-reconciler.service.js +1 -18
  440. package/dist/threads/thread-state-reconciler.service.js.map +1 -1
  441. package/dist/threads/threads.controller.d.ts +1 -0
  442. package/dist/threads/threads.controller.js +16 -0
  443. package/dist/threads/threads.controller.js.map +1 -1
  444. package/dist/threads/threads.gateway.d.ts +3 -1
  445. package/dist/threads/threads.gateway.js +52 -0
  446. package/dist/threads/threads.gateway.js.map +1 -1
  447. package/dist/threads/threads.module.js +2 -0
  448. package/dist/threads/threads.module.js.map +1 -1
  449. package/dist/threads/threads.service.d.ts +13 -0
  450. package/dist/threads/threads.service.js +143 -14
  451. package/dist/threads/threads.service.js.map +1 -1
  452. package/dist/threads/threads.service.spec.js +41 -27
  453. package/dist/threads/threads.service.spec.js.map +1 -1
  454. package/dist/tsconfig.tsbuildinfo +1 -1
  455. package/dist/worker/auth/callback-server.d.ts +6 -0
  456. package/dist/worker/auth/callback-server.js +50 -0
  457. package/dist/worker/auth/callback-server.js.map +1 -0
  458. package/dist/worker/auth/credentials-store.d.ts +4 -0
  459. package/dist/worker/auth/credentials-store.js +23 -0
  460. package/dist/worker/auth/credentials-store.js.map +1 -0
  461. package/dist/worker/auth/oauth-client.d.ts +4 -0
  462. package/dist/worker/auth/oauth-client.js +116 -0
  463. package/dist/worker/auth/oauth-client.js.map +1 -0
  464. package/dist/worker/auth/worker-auth-client.d.ts +9 -0
  465. package/dist/worker/auth/worker-auth-client.js +35 -0
  466. package/dist/worker/auth/worker-auth-client.js.map +1 -0
  467. package/dist/worker/auth/worker-auth.types.d.ts +30 -0
  468. package/dist/worker/auth/worker-auth.types.js +3 -0
  469. package/dist/worker/auth/worker-auth.types.js.map +1 -0
  470. package/dist/worker/execution-orchestrator.d.ts +25 -0
  471. package/dist/worker/execution-orchestrator.js +186 -0
  472. package/dist/worker/execution-orchestrator.js.map +1 -0
  473. package/dist/worker/formatters/claude-message-formatter.d.ts +13 -0
  474. package/dist/worker/formatters/claude-message-formatter.js +90 -0
  475. package/dist/worker/formatters/claude-message-formatter.js.map +1 -0
  476. package/dist/worker/formatters/opencode-message-formatter.d.ts +6 -0
  477. package/dist/worker/formatters/opencode-message-formatter.js +51 -0
  478. package/dist/worker/formatters/opencode-message-formatter.js.map +1 -0
  479. package/dist/worker/helpers/ensure-repo.d.ts +1 -0
  480. package/dist/worker/helpers/ensure-repo.js +37 -0
  481. package/dist/worker/helpers/ensure-repo.js.map +1 -0
  482. package/dist/worker/helpers/prepare-workspace.d.ts +1 -0
  483. package/dist/worker/helpers/prepare-workspace.js +24 -0
  484. package/dist/worker/helpers/prepare-workspace.js.map +1 -0
  485. package/dist/worker/helpers/session-store.d.ts +2 -0
  486. package/dist/worker/helpers/session-store.js +47 -0
  487. package/dist/worker/helpers/session-store.js.map +1 -0
  488. package/dist/worker/runners/agent-runner.types.d.ts +28 -0
  489. package/dist/worker/runners/agent-runner.types.js +3 -0
  490. package/dist/worker/runners/agent-runner.types.js.map +1 -0
  491. package/dist/worker/runners/base-agent-runner.d.ts +10 -0
  492. package/dist/worker/runners/base-agent-runner.js +41 -0
  493. package/dist/worker/runners/base-agent-runner.js.map +1 -0
  494. package/dist/worker/runners/claude-agent-runner.d.ts +9 -0
  495. package/dist/worker/runners/claude-agent-runner.js +79 -0
  496. package/dist/worker/runners/claude-agent-runner.js.map +1 -0
  497. package/dist/worker/runners/opencode-agent-runner.d.ts +18 -0
  498. package/dist/worker/runners/opencode-agent-runner.js +170 -0
  499. package/dist/worker/runners/opencode-agent-runner.js.map +1 -0
  500. package/dist/worker/worker-gateway-client.d.ts +45 -0
  501. package/dist/worker/worker-gateway-client.js +332 -0
  502. package/dist/worker/worker-gateway-client.js.map +1 -0
  503. package/dist/worker/worker-mode.d.ts +6 -0
  504. package/dist/worker/worker-mode.js +40 -0
  505. package/dist/worker/worker-mode.js.map +1 -0
  506. package/package.json +19 -12
  507. package/dist/public/assets/index-BpWAKFIY.css +0 -1
  508. package/dist/public/assets/index-gfAmuo9i.js +0 -11
  509. package/dist/public/beta/assets/index-B-4bxmRw.js +0 -85
@@ -0,0 +1,64 @@
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.ExecutionsModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const typeorm_1 = require("@nestjs/typeorm");
12
+ const task_execution_entity_1 = require("./task-execution.entity");
13
+ const worker_session_entity_1 = require("./worker-session.entity");
14
+ const execution_context_resolver_service_1 = require("./execution-context-resolver.service");
15
+ const execution_reconciler_service_1 = require("./execution-reconciler.service");
16
+ const execution_claim_service_1 = require("./execution-claim.service");
17
+ const executions_service_1 = require("./executions.service");
18
+ const worker_session_service_1 = require("./worker-session.service");
19
+ const executions_controller_1 = require("./executions.controller");
20
+ const workers_gateway_1 = require("./workers.gateway");
21
+ const executions_gateway_1 = require("./executions.gateway");
22
+ const agent_run_entity_1 = require("../agent-runs/agent-run.entity");
23
+ const threads_module_1 = require("../threads/threads.module");
24
+ const task_entity_1 = require("../tasks/task.entity");
25
+ const input_request_entity_1 = require("../tasks/input-request.entity");
26
+ const actor_entity_1 = require("../identity-provider/actor.entity");
27
+ const agent_entity_1 = require("../agents/agent.entity");
28
+ const auth_guards_module_1 = require("../auth/guards/auth-guards.module");
29
+ let ExecutionsModule = class ExecutionsModule {
30
+ };
31
+ exports.ExecutionsModule = ExecutionsModule;
32
+ exports.ExecutionsModule = ExecutionsModule = __decorate([
33
+ (0, common_1.Module)({
34
+ imports: [
35
+ typeorm_1.TypeOrmModule.forFeature([
36
+ task_execution_entity_1.TaskExecutionEntity,
37
+ worker_session_entity_1.WorkerSessionEntity,
38
+ agent_run_entity_1.AgentRunEntity,
39
+ task_entity_1.TaskEntity,
40
+ input_request_entity_1.InputRequestEntity,
41
+ actor_entity_1.ActorEntity,
42
+ agent_entity_1.AgentEntity,
43
+ ]),
44
+ (0, common_1.forwardRef)(() => threads_module_1.ThreadsModule),
45
+ auth_guards_module_1.AuthGuardsModule,
46
+ ],
47
+ controllers: [executions_controller_1.ExecutionsController],
48
+ providers: [
49
+ execution_context_resolver_service_1.ExecutionContextResolverService,
50
+ execution_reconciler_service_1.ExecutionReconcilerService,
51
+ execution_claim_service_1.ExecutionClaimService,
52
+ executions_service_1.ExecutionsService,
53
+ worker_session_service_1.WorkerSessionService,
54
+ workers_gateway_1.WorkersGateway,
55
+ executions_gateway_1.ExecutionsGateway,
56
+ ],
57
+ exports: [
58
+ execution_context_resolver_service_1.ExecutionContextResolverService,
59
+ execution_claim_service_1.ExecutionClaimService,
60
+ workers_gateway_1.WorkersGateway,
61
+ ],
62
+ })
63
+ ], ExecutionsModule);
64
+ //# sourceMappingURL=executions.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executions.module.js","sourceRoot":"","sources":["../../src/executions/executions.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,mEAA8D;AAC9D,mEAA8D;AAC9D,6FAAuF;AACvF,iFAA4E;AAC5E,uEAAkE;AAClE,6DAAyD;AACzD,qEAAgE;AAChE,mEAA+D;AAC/D,uDAAmD;AACnD,6DAAyD;AACzD,qEAAgE;AAChE,8DAA0D;AAC1D,sDAAkD;AAClD,wEAAmE;AACnE,oEAAgE;AAChE,yDAAqD;AACrD,0EAAqE;AAgC9D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IA9B5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,2CAAmB;gBACnB,2CAAmB;gBACnB,iCAAc;gBACd,wBAAU;gBACV,yCAAkB;gBAClB,0BAAW;gBACX,0BAAW;aACZ,CAAC;YACF,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,qCAAgB;SACjB;QACD,WAAW,EAAE,CAAC,4CAAoB,CAAC;QACnC,SAAS,EAAE;YACT,oEAA+B;YAC/B,yDAA0B;YAC1B,+CAAqB;YACrB,sCAAiB;YACjB,6CAAoB;YACpB,gCAAc;YACd,sCAAiB;SAClB;QACD,OAAO,EAAE;YACP,oEAA+B;YAC/B,+CAAqB;YACrB,gCAAc;SACf;KACF,CAAC;GACW,gBAAgB,CAAG"}
@@ -0,0 +1,15 @@
1
+ import { Repository } from 'typeorm';
2
+ import { TaskExecutionEntity } from './task-execution.entity';
3
+ import { TaskExecutionStatus } from './enums';
4
+ import { ListExecutionsInput, ListExecutionsResult } from './dto/service/executions.service.types';
5
+ export declare class ExecutionsService {
6
+ private readonly executionRepository;
7
+ private readonly logger;
8
+ constructor(executionRepository: Repository<TaskExecutionEntity>);
9
+ listExecutions(input: ListExecutionsInput): Promise<ListExecutionsResult>;
10
+ findById(executionId: string): Promise<TaskExecutionEntity | null>;
11
+ updateStatus(executionId: string, status: TaskExecutionStatus, updates?: {
12
+ finishedAt?: Date;
13
+ failureReason?: string;
14
+ }): Promise<void>;
15
+ }
@@ -0,0 +1,119 @@
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 ExecutionsService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ExecutionsService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_1 = require("@nestjs/typeorm");
19
+ const typeorm_2 = require("typeorm");
20
+ const task_execution_entity_1 = require("./task-execution.entity");
21
+ let ExecutionsService = ExecutionsService_1 = class ExecutionsService {
22
+ executionRepository;
23
+ logger = new common_1.Logger(ExecutionsService_1.name);
24
+ constructor(executionRepository) {
25
+ this.executionRepository = executionRepository;
26
+ }
27
+ async listExecutions(input) {
28
+ const page = input.page ?? 1;
29
+ const limit = input.limit ?? 50;
30
+ const skip = (page - 1) * limit;
31
+ const queryBuilder = this.executionRepository
32
+ .createQueryBuilder('execution')
33
+ .leftJoinAndSelect('execution.task', 'task')
34
+ .leftJoinAndSelect('execution.agentActor', 'agentActor')
35
+ .leftJoinAndSelect('execution.workerSession', 'workerSession');
36
+ if (input.status !== undefined) {
37
+ queryBuilder.andWhere('execution.status = :status', {
38
+ status: input.status,
39
+ });
40
+ }
41
+ if (input.agentActorId) {
42
+ queryBuilder.andWhere('execution.agentActorId = :agentActorId', {
43
+ agentActorId: input.agentActorId,
44
+ });
45
+ }
46
+ if (input.taskId) {
47
+ queryBuilder.andWhere('execution.taskId = :taskId', {
48
+ taskId: input.taskId,
49
+ });
50
+ }
51
+ queryBuilder.orderBy('execution.requestedAt', 'DESC');
52
+ const total = await queryBuilder.getCount();
53
+ const executions = await queryBuilder.skip(skip).take(limit).getMany();
54
+ const items = executions.map((execution) => ({
55
+ id: execution.id,
56
+ taskId: execution.taskId,
57
+ taskName: execution.task?.name ?? null,
58
+ agentActorId: execution.agentActorId,
59
+ agentSlug: execution.agentActor?.slug ?? null,
60
+ agentName: execution.agentActor?.displayName ?? null,
61
+ status: execution.status,
62
+ requestedAt: execution.requestedAt,
63
+ claimedAt: execution.claimedAt,
64
+ startedAt: execution.startedAt,
65
+ finishedAt: execution.finishedAt,
66
+ workerSessionId: execution.workerSessionId,
67
+ leaseExpiresAt: execution.leaseExpiresAt,
68
+ stopRequestedAt: execution.stopRequestedAt,
69
+ failureReason: execution.failureReason,
70
+ triggerReason: execution.triggerReason,
71
+ rowVersion: execution.rowVersion,
72
+ createdAt: execution.createdAt,
73
+ updatedAt: execution.updatedAt,
74
+ }));
75
+ return {
76
+ items,
77
+ total,
78
+ page,
79
+ limit,
80
+ };
81
+ }
82
+ async findById(executionId) {
83
+ return this.executionRepository.findOne({
84
+ where: { id: executionId },
85
+ });
86
+ }
87
+ async updateStatus(executionId, status, updates) {
88
+ const execution = await this.executionRepository.findOne({
89
+ where: { id: executionId },
90
+ });
91
+ if (!execution) {
92
+ this.logger.warn({
93
+ message: 'Attempted to update status of unknown execution',
94
+ executionId,
95
+ });
96
+ return;
97
+ }
98
+ execution.status = status;
99
+ if (updates?.finishedAt) {
100
+ execution.finishedAt = updates.finishedAt;
101
+ }
102
+ if (updates?.failureReason) {
103
+ execution.failureReason = updates.failureReason;
104
+ }
105
+ await this.executionRepository.save(execution);
106
+ this.logger.log({
107
+ message: 'Execution status updated',
108
+ executionId,
109
+ status,
110
+ });
111
+ }
112
+ };
113
+ exports.ExecutionsService = ExecutionsService;
114
+ exports.ExecutionsService = ExecutionsService = ExecutionsService_1 = __decorate([
115
+ (0, common_1.Injectable)(),
116
+ __param(0, (0, typeorm_1.InjectRepository)(task_execution_entity_1.TaskExecutionEntity)),
117
+ __metadata("design:paramtypes", [typeorm_2.Repository])
118
+ ], ExecutionsService);
119
+ //# sourceMappingURL=executions.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executions.service.js","sourceRoot":"","sources":["../../src/executions/executions.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { TaskEntity } from '../tasks/task.entity';
2
+ import { ActorEntity } from '../identity-provider/actor.entity';
3
+ import { WorkerSessionEntity } from './worker-session.entity';
4
+ import { TaskExecutionStatus } from './enums';
5
+ export declare class TaskExecutionEntity {
6
+ id: string;
7
+ taskId: string;
8
+ task?: TaskEntity;
9
+ agentActorId: string;
10
+ agentActor?: ActorEntity;
11
+ status: TaskExecutionStatus;
12
+ requestedAt: Date;
13
+ claimedAt: Date | null;
14
+ startedAt: Date | null;
15
+ finishedAt: Date | null;
16
+ workerSessionId: string | null;
17
+ workerSession?: WorkerSessionEntity | null;
18
+ leaseExpiresAt: Date | null;
19
+ stopRequestedAt: Date | null;
20
+ failureReason: string | null;
21
+ triggerReason: string | null;
22
+ rowVersion: number;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ }
@@ -0,0 +1,130 @@
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.TaskExecutionEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const task_entity_1 = require("../tasks/task.entity");
15
+ const actor_entity_1 = require("../identity-provider/actor.entity");
16
+ const worker_session_entity_1 = require("./worker-session.entity");
17
+ const enums_1 = require("./enums");
18
+ let TaskExecutionEntity = class TaskExecutionEntity {
19
+ id;
20
+ taskId;
21
+ task;
22
+ agentActorId;
23
+ agentActor;
24
+ status;
25
+ requestedAt;
26
+ claimedAt;
27
+ startedAt;
28
+ finishedAt;
29
+ workerSessionId;
30
+ workerSession;
31
+ leaseExpiresAt;
32
+ stopRequestedAt;
33
+ failureReason;
34
+ triggerReason;
35
+ rowVersion;
36
+ createdAt;
37
+ updatedAt;
38
+ };
39
+ exports.TaskExecutionEntity = TaskExecutionEntity;
40
+ __decorate([
41
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
42
+ __metadata("design:type", String)
43
+ ], TaskExecutionEntity.prototype, "id", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: false, name: 'task_id' }),
46
+ __metadata("design:type", String)
47
+ ], TaskExecutionEntity.prototype, "taskId", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.ManyToOne)(() => task_entity_1.TaskEntity),
50
+ (0, typeorm_1.JoinColumn)({ name: 'task_id' }),
51
+ __metadata("design:type", task_entity_1.TaskEntity)
52
+ ], TaskExecutionEntity.prototype, "task", void 0);
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: false, name: 'agent_actor_id' }),
55
+ __metadata("design:type", String)
56
+ ], TaskExecutionEntity.prototype, "agentActorId", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.ManyToOne)(() => actor_entity_1.ActorEntity),
59
+ (0, typeorm_1.JoinColumn)({ name: 'agent_actor_id' }),
60
+ __metadata("design:type", actor_entity_1.ActorEntity)
61
+ ], TaskExecutionEntity.prototype, "agentActor", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({
64
+ type: 'text',
65
+ enum: enums_1.TaskExecutionStatus,
66
+ default: enums_1.TaskExecutionStatus.READY,
67
+ }),
68
+ __metadata("design:type", String)
69
+ ], TaskExecutionEntity.prototype, "status", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: false, name: 'requested_at' }),
72
+ __metadata("design:type", Date)
73
+ ], TaskExecutionEntity.prototype, "requestedAt", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'claimed_at' }),
76
+ __metadata("design:type", Object)
77
+ ], TaskExecutionEntity.prototype, "claimedAt", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'started_at' }),
80
+ __metadata("design:type", Object)
81
+ ], TaskExecutionEntity.prototype, "startedAt", void 0);
82
+ __decorate([
83
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'finished_at' }),
84
+ __metadata("design:type", Object)
85
+ ], TaskExecutionEntity.prototype, "finishedAt", void 0);
86
+ __decorate([
87
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: true, name: 'worker_session_id' }),
88
+ __metadata("design:type", Object)
89
+ ], TaskExecutionEntity.prototype, "workerSessionId", void 0);
90
+ __decorate([
91
+ (0, typeorm_1.ManyToOne)(() => worker_session_entity_1.WorkerSessionEntity),
92
+ (0, typeorm_1.JoinColumn)({ name: 'worker_session_id' }),
93
+ __metadata("design:type", Object)
94
+ ], TaskExecutionEntity.prototype, "workerSession", void 0);
95
+ __decorate([
96
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'lease_expires_at' }),
97
+ __metadata("design:type", Object)
98
+ ], TaskExecutionEntity.prototype, "leaseExpiresAt", void 0);
99
+ __decorate([
100
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'stop_requested_at' }),
101
+ __metadata("design:type", Object)
102
+ ], TaskExecutionEntity.prototype, "stopRequestedAt", void 0);
103
+ __decorate([
104
+ (0, typeorm_1.Column)({ type: 'text', nullable: true, name: 'failure_reason' }),
105
+ __metadata("design:type", Object)
106
+ ], TaskExecutionEntity.prototype, "failureReason", void 0);
107
+ __decorate([
108
+ (0, typeorm_1.Column)({ type: 'text', nullable: true, name: 'trigger_reason' }),
109
+ __metadata("design:type", Object)
110
+ ], TaskExecutionEntity.prototype, "triggerReason", void 0);
111
+ __decorate([
112
+ (0, typeorm_1.VersionColumn)({ name: 'row_version' }),
113
+ __metadata("design:type", Number)
114
+ ], TaskExecutionEntity.prototype, "rowVersion", void 0);
115
+ __decorate([
116
+ (0, typeorm_1.CreateDateColumn)({ type: 'datetime', name: 'created_at' }),
117
+ __metadata("design:type", Date)
118
+ ], TaskExecutionEntity.prototype, "createdAt", void 0);
119
+ __decorate([
120
+ (0, typeorm_1.UpdateDateColumn)({ type: 'datetime', name: 'updated_at' }),
121
+ __metadata("design:type", Date)
122
+ ], TaskExecutionEntity.prototype, "updatedAt", void 0);
123
+ exports.TaskExecutionEntity = TaskExecutionEntity = __decorate([
124
+ (0, typeorm_1.Entity)({ name: 'task_executions' }),
125
+ (0, typeorm_1.Index)('idx_task_executions_task_id', ['taskId']),
126
+ (0, typeorm_1.Index)('idx_task_executions_agent_actor_id', ['agentActorId']),
127
+ (0, typeorm_1.Index)('idx_task_executions_worker_session_id', ['workerSessionId']),
128
+ (0, typeorm_1.Index)('idx_task_executions_status_requested_at', ['status', 'requestedAt'])
129
+ ], TaskExecutionEntity);
130
+ //# sourceMappingURL=task-execution.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-execution.entity.js","sourceRoot":"","sources":["../../src/executions/task-execution.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { WorkerSessionStatus } from './enums';
2
+ import { TaskExecutionEntity } from './task-execution.entity';
3
+ export declare class WorkerSessionEntity {
4
+ id: string;
5
+ oauthClientId: string;
6
+ status: WorkerSessionStatus;
7
+ connectedAt: Date;
8
+ lastHeartbeatAt: Date | null;
9
+ hostname: string | null;
10
+ pid: number | null;
11
+ version: string | null;
12
+ capabilities: string | null;
13
+ lastSeenIp: string | null;
14
+ drainingAt: Date | null;
15
+ rowVersion: number;
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ taskExecutions: TaskExecutionEntity[];
19
+ }
@@ -0,0 +1,103 @@
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.WorkerSessionEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const enums_1 = require("./enums");
15
+ const task_execution_entity_1 = require("./task-execution.entity");
16
+ let WorkerSessionEntity = class WorkerSessionEntity {
17
+ id;
18
+ oauthClientId;
19
+ status;
20
+ connectedAt;
21
+ lastHeartbeatAt;
22
+ hostname;
23
+ pid;
24
+ version;
25
+ capabilities;
26
+ lastSeenIp;
27
+ drainingAt;
28
+ rowVersion;
29
+ createdAt;
30
+ updatedAt;
31
+ taskExecutions;
32
+ };
33
+ exports.WorkerSessionEntity = WorkerSessionEntity;
34
+ __decorate([
35
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
36
+ __metadata("design:type", String)
37
+ ], WorkerSessionEntity.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)({ type: 'text', nullable: false, name: 'oauth_client_id' }),
40
+ __metadata("design:type", String)
41
+ ], WorkerSessionEntity.prototype, "oauthClientId", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.Column)({
44
+ type: 'text',
45
+ enum: enums_1.WorkerSessionStatus,
46
+ default: enums_1.WorkerSessionStatus.ONLINE,
47
+ }),
48
+ __metadata("design:type", String)
49
+ ], WorkerSessionEntity.prototype, "status", void 0);
50
+ __decorate([
51
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: false, name: 'connected_at' }),
52
+ __metadata("design:type", Date)
53
+ ], WorkerSessionEntity.prototype, "connectedAt", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'last_heartbeat_at' }),
56
+ __metadata("design:type", Object)
57
+ ], WorkerSessionEntity.prototype, "lastHeartbeatAt", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
60
+ __metadata("design:type", Object)
61
+ ], WorkerSessionEntity.prototype, "hostname", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
64
+ __metadata("design:type", Object)
65
+ ], WorkerSessionEntity.prototype, "pid", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
68
+ __metadata("design:type", Object)
69
+ ], WorkerSessionEntity.prototype, "version", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
72
+ __metadata("design:type", Object)
73
+ ], WorkerSessionEntity.prototype, "capabilities", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ type: 'text', nullable: true, name: 'last_seen_ip' }),
76
+ __metadata("design:type", Object)
77
+ ], WorkerSessionEntity.prototype, "lastSeenIp", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true, name: 'draining_at' }),
80
+ __metadata("design:type", Object)
81
+ ], WorkerSessionEntity.prototype, "drainingAt", void 0);
82
+ __decorate([
83
+ (0, typeorm_1.VersionColumn)({ name: 'row_version' }),
84
+ __metadata("design:type", Number)
85
+ ], WorkerSessionEntity.prototype, "rowVersion", void 0);
86
+ __decorate([
87
+ (0, typeorm_1.CreateDateColumn)({ type: 'datetime', name: 'created_at' }),
88
+ __metadata("design:type", Date)
89
+ ], WorkerSessionEntity.prototype, "createdAt", void 0);
90
+ __decorate([
91
+ (0, typeorm_1.UpdateDateColumn)({ type: 'datetime', name: 'updated_at' }),
92
+ __metadata("design:type", Date)
93
+ ], WorkerSessionEntity.prototype, "updatedAt", void 0);
94
+ __decorate([
95
+ (0, typeorm_1.OneToMany)(() => task_execution_entity_1.TaskExecutionEntity, (taskExecution) => taskExecution.workerSession),
96
+ __metadata("design:type", Array)
97
+ ], WorkerSessionEntity.prototype, "taskExecutions", void 0);
98
+ exports.WorkerSessionEntity = WorkerSessionEntity = __decorate([
99
+ (0, typeorm_1.Entity)({ name: 'worker_sessions' }),
100
+ (0, typeorm_1.Index)('idx_worker_sessions_status_last_heartbeat_at', ['status', 'lastHeartbeatAt']),
101
+ (0, typeorm_1.Index)('idx_worker_sessions_oauth_client_id', ['oauthClientId'])
102
+ ], WorkerSessionEntity);
103
+ //# sourceMappingURL=worker-session.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-session.entity.js","sourceRoot":"","sources":["../../src/executions/worker-session.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCASiB;AACjB,mCAA8C;AAC9C,mEAA8D;AAKvD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,EAAE,CAAU;IAGZ,aAAa,CAAU;IAOvB,MAAM,CAAuB;IAG7B,WAAW,CAAQ;IAGnB,eAAe,CAAe;IAG9B,QAAQ,CAAiB;IAGzB,GAAG,CAAiB;IAGpB,OAAO,CAAiB;IAGxB,YAAY,CAAiB;IAG7B,UAAU,CAAiB;IAG3B,UAAU,CAAe;IAGzB,UAAU,CAAU;IAGpB,SAAS,CAAQ;IAGjB,SAAS,CAAQ;IAGjB,cAAc,CAAyB;CACxC,CAAA;AAjDY,kDAAmB;AAE9B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;+CACnB;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;;0DAC5C;AAOvB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,2BAAmB;QACzB,OAAO,EAAE,2BAAmB,CAAC,MAAM;KACpC,CAAC;;mDAC2B;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;8BACtD,IAAI;wDAAC;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;;4DAC1C;AAG9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAChB;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACxB;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACjB;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;uDACpC;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;uDACzC;AAGzB;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;uDACnB;AAGpB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC/C,IAAI;sDAAC;AAGjB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC/C,IAAI;sDAAC;AAGjB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,2CAAmB,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC;;2DAC9C;8BAhD5B,mBAAmB;IAH/B,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IACnC,IAAA,eAAK,EAAC,8CAA8C,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACpF,IAAA,eAAK,EAAC,qCAAqC,EAAE,CAAC,eAAe,CAAC,CAAC;GACnD,mBAAmB,CAiD/B"}
@@ -0,0 +1,24 @@
1
+ import { Repository } from 'typeorm';
2
+ import { WorkerSessionEntity } from './worker-session.entity';
3
+ export interface RegisterWorkerSessionInput {
4
+ oauthClientId: string;
5
+ hostname?: string;
6
+ pid?: number;
7
+ version?: string;
8
+ capabilities?: string[];
9
+ lastSeenIp?: string;
10
+ }
11
+ export interface UpdateHeartbeatInput {
12
+ sessionId: string;
13
+ lastSeenIp?: string;
14
+ }
15
+ export declare class WorkerSessionService {
16
+ private readonly workerSessionRepository;
17
+ private readonly logger;
18
+ constructor(workerSessionRepository: Repository<WorkerSessionEntity>);
19
+ registerSession(input: RegisterWorkerSessionInput): Promise<WorkerSessionEntity>;
20
+ updateHeartbeat(input: UpdateHeartbeatInput): Promise<WorkerSessionEntity | null>;
21
+ markOffline(sessionId: string): Promise<WorkerSessionEntity | null>;
22
+ getSession(sessionId: string): Promise<WorkerSessionEntity | null>;
23
+ getSessionByOAuthClientId(oauthClientId: string): Promise<WorkerSessionEntity | null>;
24
+ }
@@ -0,0 +1,115 @@
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 WorkerSessionService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.WorkerSessionService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_1 = require("@nestjs/typeorm");
19
+ const typeorm_2 = require("typeorm");
20
+ const worker_session_entity_1 = require("./worker-session.entity");
21
+ const enums_1 = require("./enums");
22
+ let WorkerSessionService = WorkerSessionService_1 = class WorkerSessionService {
23
+ workerSessionRepository;
24
+ logger = new common_1.Logger(WorkerSessionService_1.name);
25
+ constructor(workerSessionRepository) {
26
+ this.workerSessionRepository = workerSessionRepository;
27
+ }
28
+ async registerSession(input) {
29
+ const now = new Date();
30
+ const session = this.workerSessionRepository.create({
31
+ oauthClientId: input.oauthClientId,
32
+ status: enums_1.WorkerSessionStatus.ONLINE,
33
+ connectedAt: now,
34
+ lastHeartbeatAt: now,
35
+ hostname: input.hostname ?? null,
36
+ pid: input.pid ?? null,
37
+ version: input.version ?? null,
38
+ capabilities: input.capabilities
39
+ ? JSON.stringify(input.capabilities)
40
+ : null,
41
+ lastSeenIp: input.lastSeenIp ?? null,
42
+ drainingAt: null,
43
+ });
44
+ const saved = await this.workerSessionRepository.save(session);
45
+ this.logger.log({
46
+ message: 'Worker session registered',
47
+ sessionId: saved.id,
48
+ oauthClientId: saved.oauthClientId,
49
+ hostname: saved.hostname,
50
+ pid: saved.pid,
51
+ version: saved.version,
52
+ });
53
+ return saved;
54
+ }
55
+ async updateHeartbeat(input) {
56
+ const session = await this.workerSessionRepository.findOne({
57
+ where: { id: input.sessionId },
58
+ });
59
+ if (!session) {
60
+ this.logger.warn({
61
+ message: 'Heartbeat for unknown session',
62
+ sessionId: input.sessionId,
63
+ });
64
+ return null;
65
+ }
66
+ session.lastHeartbeatAt = new Date();
67
+ if (input.lastSeenIp) {
68
+ session.lastSeenIp = input.lastSeenIp;
69
+ }
70
+ const updated = await this.workerSessionRepository.save(session);
71
+ this.logger.debug({
72
+ message: 'Worker heartbeat updated',
73
+ sessionId: updated.id,
74
+ });
75
+ return updated;
76
+ }
77
+ async markOffline(sessionId) {
78
+ const session = await this.workerSessionRepository.findOne({
79
+ where: { id: sessionId },
80
+ });
81
+ if (!session) {
82
+ this.logger.warn({
83
+ message: 'Attempted to mark unknown session offline',
84
+ sessionId,
85
+ });
86
+ return null;
87
+ }
88
+ session.status = enums_1.WorkerSessionStatus.OFFLINE;
89
+ const updated = await this.workerSessionRepository.save(session);
90
+ this.logger.log({
91
+ message: 'Worker session marked offline',
92
+ sessionId: updated.id,
93
+ oauthClientId: updated.oauthClientId,
94
+ });
95
+ return updated;
96
+ }
97
+ async getSession(sessionId) {
98
+ return this.workerSessionRepository.findOne({
99
+ where: { id: sessionId },
100
+ });
101
+ }
102
+ async getSessionByOAuthClientId(oauthClientId) {
103
+ return this.workerSessionRepository.findOne({
104
+ where: { oauthClientId },
105
+ order: { connectedAt: 'DESC' },
106
+ });
107
+ }
108
+ };
109
+ exports.WorkerSessionService = WorkerSessionService;
110
+ exports.WorkerSessionService = WorkerSessionService = WorkerSessionService_1 = __decorate([
111
+ (0, common_1.Injectable)(),
112
+ __param(0, (0, typeorm_1.InjectRepository)(worker_session_entity_1.WorkerSessionEntity)),
113
+ __metadata("design:paramtypes", [typeorm_2.Repository])
114
+ ], WorkerSessionService);
115
+ //# sourceMappingURL=worker-session.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-session.service.js","sourceRoot":"","sources":["../../src/executions/worker-session.service.ts"],"names":[],"mappings":"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"}