@taico/taico 0.2.13 → 0.2.15

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 (146) hide show
  1. package/dist/agents/agent-avatar.library.d.ts +15 -0
  2. package/dist/agents/agent-avatar.library.js +128 -0
  3. package/dist/agents/agent-avatar.library.js.map +1 -0
  4. package/dist/agents/agent-template.catalog.js +5 -3
  5. package/dist/agents/agent-template.catalog.js.map +1 -1
  6. package/dist/agents/agents.service.d.ts +1 -0
  7. package/dist/agents/agents.service.js +14 -3
  8. package/dist/agents/agents.service.js.map +1 -1
  9. package/dist/agents/dto/agent-response.dto.js +1 -1
  10. package/dist/agents/dto/agent-response.dto.js.map +1 -1
  11. package/dist/agents/dto/agent-template-catalog-response.dto.d.ts +7 -0
  12. package/dist/agents/dto/agent-template-catalog-response.dto.js +41 -1
  13. package/dist/agents/dto/agent-template-catalog-response.dto.js.map +1 -1
  14. package/dist/agents/dto/create-agent.dto.js +1 -1
  15. package/dist/agents/dto/create-agent.dto.js.map +1 -1
  16. package/dist/agents/dto/patch-agent.dto.js +1 -1
  17. package/dist/agents/dto/patch-agent.dto.js.map +1 -1
  18. package/dist/agents/enums/agent-type.enum.d.ts +0 -1
  19. package/dist/agents/enums/agent-type.enum.js +1 -9
  20. package/dist/agents/enums/agent-type.enum.js.map +1 -1
  21. package/dist/agents/errors/agents.errors.d.ts +3 -0
  22. package/dist/agents/errors/agents.errors.js +7 -1
  23. package/dist/agents/errors/agents.errors.js.map +1 -1
  24. package/dist/app-init/agent/code-reviewer.agent.js +2 -1
  25. package/dist/app-init/agent/code-reviewer.agent.js.map +1 -1
  26. package/dist/app-init/agent/codex-dev.agent.js +2 -1
  27. package/dist/app-init/agent/codex-dev.agent.js.map +1 -1
  28. package/dist/app-init/agent/gemini-assistant.agent.js +2 -1
  29. package/dist/app-init/agent/gemini-assistant.agent.js.map +1 -1
  30. package/dist/app-init/agent/taico.agent.js +2 -1
  31. package/dist/app-init/agent/taico.agent.js.map +1 -1
  32. package/dist/app.module.js +4 -0
  33. package/dist/app.module.js.map +1 -1
  34. package/dist/context/context.mcp.gateway.js +1 -1
  35. package/dist/context/context.mcp.gateway.js.map +1 -1
  36. package/dist/executions/active/active-task-execution.controller.d.ts +6 -2
  37. package/dist/executions/active/active-task-execution.controller.js +80 -6
  38. package/dist/executions/active/active-task-execution.controller.js.map +1 -1
  39. package/dist/executions/active/active-task-execution.entity.d.ts +2 -0
  40. package/dist/executions/active/active-task-execution.entity.js +10 -0
  41. package/dist/executions/active/active-task-execution.entity.js.map +1 -1
  42. package/dist/executions/active/active-task-execution.service.d.ts +27 -2
  43. package/dist/executions/active/active-task-execution.service.js +88 -7
  44. package/dist/executions/active/active-task-execution.service.js.map +1 -1
  45. package/dist/executions/active/dto/http/active-task-execution-list-response.dto.d.ts +8 -0
  46. package/dist/executions/active/dto/http/active-task-execution-list-response.dto.js +62 -0
  47. package/dist/executions/active/dto/http/active-task-execution-list-response.dto.js.map +1 -0
  48. package/dist/executions/active/dto/http/active-task-execution-response.dto.d.ts +2 -0
  49. package/dist/executions/active/dto/http/active-task-execution-response.dto.js +11 -0
  50. package/dist/executions/active/dto/http/active-task-execution-response.dto.js.map +1 -1
  51. package/dist/executions/active/dto/http/list-active-executions-query.dto.d.ts +5 -0
  52. package/dist/executions/active/dto/http/list-active-executions-query.dto.js +55 -0
  53. package/dist/executions/active/dto/http/list-active-executions-query.dto.js.map +1 -0
  54. package/dist/executions/active/dto/http/update-execution-stats.dto.d.ts +8 -0
  55. package/dist/executions/active/dto/http/update-execution-stats.dto.js +108 -0
  56. package/dist/executions/active/dto/http/update-execution-stats.dto.js.map +1 -0
  57. package/dist/executions/dto/http/execution-stats-response.dto.d.ts +10 -0
  58. package/dist/executions/dto/http/execution-stats-response.dto.js +87 -0
  59. package/dist/executions/dto/http/execution-stats-response.dto.js.map +1 -0
  60. package/dist/executions/errors/executions.errors.d.ts +3 -0
  61. package/dist/executions/errors/executions.errors.js +7 -1
  62. package/dist/executions/errors/executions.errors.js.map +1 -1
  63. package/dist/executions/events/execution-interrupt.event.d.ts +15 -0
  64. package/dist/executions/events/execution-interrupt.event.js +15 -0
  65. package/dist/executions/events/execution-interrupt.event.js.map +1 -0
  66. package/dist/executions/executions-worker.gateway.d.ts +3 -0
  67. package/dist/executions/executions-worker.gateway.js +41 -0
  68. package/dist/executions/executions-worker.gateway.js.map +1 -1
  69. package/dist/executions/executions.module.js +2 -0
  70. package/dist/executions/executions.module.js.map +1 -1
  71. package/dist/executions/history/dto/http/list-history-query.dto.d.ts +5 -0
  72. package/dist/executions/history/dto/http/list-history-query.dto.js +55 -0
  73. package/dist/executions/history/dto/http/list-history-query.dto.js.map +1 -0
  74. package/dist/executions/history/dto/http/task-execution-history-list-response.dto.d.ts +8 -0
  75. package/dist/executions/history/dto/http/task-execution-history-list-response.dto.js +62 -0
  76. package/dist/executions/history/dto/http/task-execution-history-list-response.dto.js.map +1 -0
  77. package/dist/executions/history/dto/http/task-execution-history-response.dto.d.ts +2 -0
  78. package/dist/executions/history/dto/http/task-execution-history-response.dto.js +11 -0
  79. package/dist/executions/history/dto/http/task-execution-history-response.dto.js.map +1 -1
  80. package/dist/executions/history/task-execution-history-error-code.enum.d.ts +1 -0
  81. package/dist/executions/history/task-execution-history-error-code.enum.js +1 -0
  82. package/dist/executions/history/task-execution-history-error-code.enum.js.map +1 -1
  83. package/dist/executions/history/task-execution-history.controller.d.ts +3 -2
  84. package/dist/executions/history/task-execution-history.controller.js +22 -6
  85. package/dist/executions/history/task-execution-history.controller.js.map +1 -1
  86. package/dist/executions/history/task-execution-history.entity.d.ts +2 -0
  87. package/dist/executions/history/task-execution-history.entity.js +10 -0
  88. package/dist/executions/history/task-execution-history.entity.js.map +1 -1
  89. package/dist/executions/history/task-execution-history.service.d.ts +12 -1
  90. package/dist/executions/history/task-execution-history.service.js +36 -4
  91. package/dist/executions/history/task-execution-history.service.js.map +1 -1
  92. package/dist/executions/history/task-execution-history.service.spec.d.ts +1 -0
  93. package/dist/executions/history/task-execution-history.service.spec.js +132 -0
  94. package/dist/executions/history/task-execution-history.service.spec.js.map +1 -0
  95. package/dist/executions/queue/dto/http/list-queue-query.dto.d.ts +4 -0
  96. package/dist/executions/queue/dto/http/list-queue-query.dto.js +45 -0
  97. package/dist/executions/queue/dto/http/list-queue-query.dto.js.map +1 -0
  98. package/dist/executions/queue/dto/http/task-execution-queue-list-response.dto.d.ts +8 -0
  99. package/dist/executions/queue/dto/http/task-execution-queue-list-response.dto.js +62 -0
  100. package/dist/executions/queue/dto/http/task-execution-queue-list-response.dto.js.map +1 -0
  101. package/dist/executions/queue/task-execution-queue.controller.d.ts +3 -2
  102. package/dist/executions/queue/task-execution-queue.controller.js +18 -6
  103. package/dist/executions/queue/task-execution-queue.controller.js.map +1 -1
  104. package/dist/executions/queue/task-execution-queue.service.d.ts +9 -1
  105. package/dist/executions/queue/task-execution-queue.service.js +8 -2
  106. package/dist/executions/queue/task-execution-queue.service.js.map +1 -1
  107. package/dist/executions/readiness/task-execution-queue-populator.service.d.ts +4 -1
  108. package/dist/executions/readiness/task-execution-queue-populator.service.js +42 -2
  109. package/dist/executions/readiness/task-execution-queue-populator.service.js.map +1 -1
  110. package/dist/executions/readiness/task-execution-queue-populator.service.spec.js +196 -0
  111. package/dist/executions/readiness/task-execution-queue-populator.service.spec.js.map +1 -1
  112. package/dist/executions/stats/execution-stats.entity.d.ts +12 -0
  113. package/dist/executions/stats/execution-stats.entity.js +70 -0
  114. package/dist/executions/stats/execution-stats.entity.js.map +1 -0
  115. package/dist/llm/openai-responses.service.js +1 -1
  116. package/dist/migrations/1742500000000-AllowInterruptedExecutionErrorCode.d.ts +7 -0
  117. package/dist/migrations/1742500000000-AllowInterruptedExecutionErrorCode.js +116 -0
  118. package/dist/migrations/1742500000000-AllowInterruptedExecutionErrorCode.js.map +1 -0
  119. package/dist/migrations/1742600000000-AddExecutionStatsTable.d.ts +5 -0
  120. package/dist/migrations/1742600000000-AddExecutionStatsTable.js +36 -0
  121. package/dist/migrations/1742600000000-AddExecutionStatsTable.js.map +1 -0
  122. package/dist/public/assets/index-BDd_IOss.css +1 -0
  123. package/dist/public/assets/index-BwirgFmY.js +73 -0
  124. package/dist/public/avatar/angus.png +0 -0
  125. package/dist/public/avatar/bruce.png +0 -0
  126. package/dist/public/avatar/claude.webp +0 -0
  127. package/dist/public/avatar/cockatoo.png +0 -0
  128. package/dist/public/avatar/gemini.png +0 -0
  129. package/dist/public/avatar/grace.png +0 -0
  130. package/dist/public/avatar/gustav.png +0 -0
  131. package/dist/public/avatar/openai.svg +15 -0
  132. package/dist/public/avatar/opencode.svg +1 -0
  133. package/dist/public/avatar/qwen.png +0 -0
  134. package/dist/public/avatar/stacy.png +0 -0
  135. package/dist/public/avatar/taico.png +0 -0
  136. package/dist/public/beta/assets/{index-g8TuopEh.js → index-Bnn4h6Il.js} +1 -1
  137. package/dist/public/beta/index.html +1 -1
  138. package/dist/public/index.html +2 -2
  139. package/dist/threads/backends/chat-backend.utils.js +16 -3
  140. package/dist/threads/backends/chat-backend.utils.js.map +1 -1
  141. package/dist/threads/backends/openai.backend.js +3 -3
  142. package/dist/threads/backends/openai.backend.js.map +1 -1
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +6 -5
  145. package/dist/public/assets/index-Cl8y_6g0.css +0 -1
  146. package/dist/public/assets/index-DaHPYsvL.js +0 -73
@@ -8,12 +8,17 @@ const task_execution_queue_entity_1 = require("../queue/task-execution-queue.ent
8
8
  const task_execution_queued_event_1 = require("../queue/task-execution-queued.event");
9
9
  const agents_service_1 = require("../../agents/agents.service");
10
10
  const readiness_candidate_repository_1 = require("./readiness-candidate.repository");
11
+ const task_execution_history_service_1 = require("../history/task-execution-history.service");
12
+ const task_execution_history_status_enum_1 = require("../history/task-execution-history-status.enum");
13
+ const task_execution_history_error_code_enum_1 = require("../history/task-execution-history-error-code.enum");
14
+ const task_status_enum_1 = require("../../tasks/enums/task-status.enum");
11
15
  describe('TaskExecutionQueuePopulatorService - Event Emission', () => {
12
16
  let service;
13
17
  let queueRepository;
14
18
  let eventEmitter;
15
19
  let agentsService;
16
20
  let readinessCandidateRepository;
21
+ let taskExecutionHistoryService;
17
22
  beforeEach(async () => {
18
23
  const module = await testing_1.Test.createTestingModule({
19
24
  providers: [
@@ -46,6 +51,13 @@ describe('TaskExecutionQueuePopulatorService - Event Emission', () => {
46
51
  emit: jest.fn(),
47
52
  },
48
53
  },
54
+ {
55
+ provide: task_execution_history_service_1.TaskExecutionHistoryService,
56
+ useValue: {
57
+ getLatestHistoryForTask: jest.fn(),
58
+ countConsecutiveQuotaErrors: jest.fn(),
59
+ },
60
+ },
49
61
  ],
50
62
  }).compile();
51
63
  service = module.get(task_execution_queue_populator_service_1.TaskExecutionQueuePopulatorService);
@@ -53,6 +65,7 @@ describe('TaskExecutionQueuePopulatorService - Event Emission', () => {
53
65
  eventEmitter = module.get(event_emitter_1.EventEmitter2);
54
66
  agentsService = module.get(agents_service_1.AgentsService);
55
67
  readinessCandidateRepository = module.get(readiness_candidate_repository_1.ReadinessCandidateRepository);
68
+ taskExecutionHistoryService = module.get(task_execution_history_service_1.TaskExecutionHistoryService);
56
69
  });
57
70
  describe('upsertQueueEntry', () => {
58
71
  it('should emit TaskExecutionQueuedEvent when a new row is inserted (SQLite changes > 0)', async () => {
@@ -109,5 +122,188 @@ describe('TaskExecutionQueuePopulatorService - Event Emission', () => {
109
122
  expect(eventEmitter.emit).not.toHaveBeenCalled();
110
123
  });
111
124
  });
125
+ describe('shouldQueueTask - Delay Retry Logic', () => {
126
+ const createMockTask = (overrides = {}) => {
127
+ return {
128
+ id: 'test-task-id',
129
+ name: 'Test Task',
130
+ status: task_status_enum_1.TaskStatus.NOT_STARTED,
131
+ assigneeActorId: 'agent-actor-id',
132
+ tags: [],
133
+ ...overrides,
134
+ };
135
+ };
136
+ const createMockAgent = (overrides = {}) => {
137
+ return {
138
+ actorId: 'agent-actor-id',
139
+ slug: 'test-agent',
140
+ statusTriggers: [task_status_enum_1.TaskStatus.NOT_STARTED],
141
+ tagTriggers: [],
142
+ concurrencyLimit: null,
143
+ ...overrides,
144
+ };
145
+ };
146
+ beforeEach(() => {
147
+ jest.clearAllMocks();
148
+ agentsService.getActiveAgentsByActorIds.mockResolvedValue([
149
+ createMockAgent(),
150
+ ]);
151
+ readinessCandidateRepository.countActiveExecutionsForAgent.mockResolvedValue(0);
152
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue(null);
153
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(0);
154
+ });
155
+ describe('CANCELLED delay', () => {
156
+ it('should NOT queue task when cancelled less than 10 minutes ago', async () => {
157
+ const task = createMockTask();
158
+ const cancelledAt = new Date(Date.now() - 5 * 60 * 1000);
159
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
160
+ taskId: task.id,
161
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.CANCELLED,
162
+ errorCode: null,
163
+ transitionedAt: cancelledAt,
164
+ });
165
+ const result = await service.shouldQueueTask(task);
166
+ expect(result).toBe(false);
167
+ expect(taskExecutionHistoryService.getLatestHistoryForTask).toHaveBeenCalledWith(task.id);
168
+ });
169
+ it('should queue task when cancelled 10 minutes ago or more', async () => {
170
+ const task = createMockTask();
171
+ const cancelledAt = new Date(Date.now() - 10 * 60 * 1000);
172
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
173
+ taskId: task.id,
174
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.CANCELLED,
175
+ errorCode: null,
176
+ transitionedAt: cancelledAt,
177
+ });
178
+ const result = await service.shouldQueueTask(task);
179
+ expect(result).toBe(true);
180
+ });
181
+ it('should queue task when cancelled more than 10 minutes ago', async () => {
182
+ const task = createMockTask();
183
+ const cancelledAt = new Date(Date.now() - 15 * 60 * 1000);
184
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
185
+ taskId: task.id,
186
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.CANCELLED,
187
+ errorCode: null,
188
+ transitionedAt: cancelledAt,
189
+ });
190
+ const result = await service.shouldQueueTask(task);
191
+ expect(result).toBe(true);
192
+ });
193
+ });
194
+ describe('OUT_OF_QUOTA delay', () => {
195
+ it('should NOT queue task with 1 quota error less than 10 minutes ago', async () => {
196
+ const task = createMockTask();
197
+ const errorAt = new Date(Date.now() - 5 * 60 * 1000);
198
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
199
+ taskId: task.id,
200
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
201
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA,
202
+ transitionedAt: errorAt,
203
+ });
204
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(1);
205
+ const result = await service.shouldQueueTask(task);
206
+ expect(result).toBe(false);
207
+ expect(taskExecutionHistoryService.countConsecutiveQuotaErrors).toHaveBeenCalledWith(task.id);
208
+ });
209
+ it('should queue task with 1 quota error 10 minutes ago or more', async () => {
210
+ const task = createMockTask();
211
+ const errorAt = new Date(Date.now() - 10 * 60 * 1000);
212
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
213
+ taskId: task.id,
214
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
215
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA,
216
+ transitionedAt: errorAt,
217
+ });
218
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(1);
219
+ const result = await service.shouldQueueTask(task);
220
+ expect(result).toBe(true);
221
+ });
222
+ it('should NOT queue task with 3 quota errors less than 30 minutes ago', async () => {
223
+ const task = createMockTask();
224
+ const errorAt = new Date(Date.now() - 20 * 60 * 1000);
225
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
226
+ taskId: task.id,
227
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
228
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA,
229
+ transitionedAt: errorAt,
230
+ });
231
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(3);
232
+ const result = await service.shouldQueueTask(task);
233
+ expect(result).toBe(false);
234
+ });
235
+ it('should queue task with 3 quota errors 30 minutes ago or more', async () => {
236
+ const task = createMockTask();
237
+ const errorAt = new Date(Date.now() - 30 * 60 * 1000);
238
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
239
+ taskId: task.id,
240
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
241
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA,
242
+ transitionedAt: errorAt,
243
+ });
244
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(3);
245
+ const result = await service.shouldQueueTask(task);
246
+ expect(result).toBe(true);
247
+ });
248
+ it('should cap delay at 1 hour for many consecutive quota errors', async () => {
249
+ const task = createMockTask();
250
+ const errorAt = new Date(Date.now() - 50 * 60 * 1000);
251
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
252
+ taskId: task.id,
253
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
254
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA,
255
+ transitionedAt: errorAt,
256
+ });
257
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(10);
258
+ const result = await service.shouldQueueTask(task);
259
+ expect(result).toBe(false);
260
+ });
261
+ it('should queue task with many consecutive quota errors after 1 hour', async () => {
262
+ const task = createMockTask();
263
+ const errorAt = new Date(Date.now() - 60 * 60 * 1000);
264
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
265
+ taskId: task.id,
266
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
267
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA,
268
+ transitionedAt: errorAt,
269
+ });
270
+ taskExecutionHistoryService.countConsecutiveQuotaErrors.mockResolvedValue(10);
271
+ const result = await service.shouldQueueTask(task);
272
+ expect(result).toBe(true);
273
+ });
274
+ });
275
+ describe('Non-delay scenarios', () => {
276
+ it('should queue task with no execution history', async () => {
277
+ const task = createMockTask();
278
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue(null);
279
+ const result = await service.shouldQueueTask(task);
280
+ expect(result).toBe(true);
281
+ });
282
+ it('should queue task with SUCCEEDED latest history', async () => {
283
+ const task = createMockTask();
284
+ const successAt = new Date(Date.now() - 1 * 60 * 1000);
285
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
286
+ taskId: task.id,
287
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.SUCCEEDED,
288
+ errorCode: null,
289
+ transitionedAt: successAt,
290
+ });
291
+ const result = await service.shouldQueueTask(task);
292
+ expect(result).toBe(true);
293
+ });
294
+ it('should queue task with FAILED latest history (non-quota error)', async () => {
295
+ const task = createMockTask();
296
+ const failedAt = new Date(Date.now() - 1 * 60 * 1000);
297
+ taskExecutionHistoryService.getLatestHistoryForTask.mockResolvedValue({
298
+ taskId: task.id,
299
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED,
300
+ errorCode: task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.UNKNOWN,
301
+ transitionedAt: failedAt,
302
+ });
303
+ const result = await service.shouldQueueTask(task);
304
+ expect(result).toBe(true);
305
+ });
306
+ });
307
+ });
112
308
  });
113
309
  //# sourceMappingURL=task-execution-queue-populator.service.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-queue-populator.service.spec.js","sourceRoot":"","sources":["../../../src/executions/readiness/task-execution-queue-populator.service.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-execution-queue-populator.service.spec.js","sourceRoot":"","sources":["../../../src/executions/readiness/task-execution-queue-populator.service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare class ExecutionStatsEntity {
2
+ executionId: string;
3
+ harness: string | null;
4
+ providerId: string | null;
5
+ modelId: string | null;
6
+ inputTokens: number | null;
7
+ outputTokens: number | null;
8
+ totalTokens: number | null;
9
+ rowVersion: number;
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ }
@@ -0,0 +1,70 @@
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.ExecutionStatsEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ let ExecutionStatsEntity = class ExecutionStatsEntity {
15
+ executionId;
16
+ harness;
17
+ providerId;
18
+ modelId;
19
+ inputTokens;
20
+ outputTokens;
21
+ totalTokens;
22
+ rowVersion;
23
+ createdAt;
24
+ updatedAt;
25
+ };
26
+ exports.ExecutionStatsEntity = ExecutionStatsEntity;
27
+ __decorate([
28
+ (0, typeorm_1.PrimaryColumn)({ type: 'uuid', name: 'execution_id' }),
29
+ __metadata("design:type", String)
30
+ ], ExecutionStatsEntity.prototype, "executionId", void 0);
31
+ __decorate([
32
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
33
+ __metadata("design:type", Object)
34
+ ], ExecutionStatsEntity.prototype, "harness", void 0);
35
+ __decorate([
36
+ (0, typeorm_1.Column)({ type: 'text', name: 'provider_id', nullable: true }),
37
+ __metadata("design:type", Object)
38
+ ], ExecutionStatsEntity.prototype, "providerId", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.Column)({ type: 'text', name: 'model_id', nullable: true }),
41
+ __metadata("design:type", Object)
42
+ ], ExecutionStatsEntity.prototype, "modelId", void 0);
43
+ __decorate([
44
+ (0, typeorm_1.Column)({ type: 'integer', name: 'input_tokens', nullable: true }),
45
+ __metadata("design:type", Object)
46
+ ], ExecutionStatsEntity.prototype, "inputTokens", void 0);
47
+ __decorate([
48
+ (0, typeorm_1.Column)({ type: 'integer', name: 'output_tokens', nullable: true }),
49
+ __metadata("design:type", Object)
50
+ ], ExecutionStatsEntity.prototype, "outputTokens", void 0);
51
+ __decorate([
52
+ (0, typeorm_1.Column)({ type: 'integer', name: 'total_tokens', nullable: true }),
53
+ __metadata("design:type", Object)
54
+ ], ExecutionStatsEntity.prototype, "totalTokens", void 0);
55
+ __decorate([
56
+ (0, typeorm_1.VersionColumn)({ name: 'row_version' }),
57
+ __metadata("design:type", Number)
58
+ ], ExecutionStatsEntity.prototype, "rowVersion", void 0);
59
+ __decorate([
60
+ (0, typeorm_1.CreateDateColumn)({ type: 'datetime', name: 'created_at' }),
61
+ __metadata("design:type", Date)
62
+ ], ExecutionStatsEntity.prototype, "createdAt", void 0);
63
+ __decorate([
64
+ (0, typeorm_1.UpdateDateColumn)({ type: 'datetime', name: 'updated_at' }),
65
+ __metadata("design:type", Date)
66
+ ], ExecutionStatsEntity.prototype, "updatedAt", void 0);
67
+ exports.ExecutionStatsEntity = ExecutionStatsEntity = __decorate([
68
+ (0, typeorm_1.Entity)({ name: 'execution_stats' })
69
+ ], ExecutionStatsEntity);
70
+ //# sourceMappingURL=execution-stats.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-stats.entity.js","sourceRoot":"","sources":["../../../src/executions/stats/execution-stats.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAOiB;AAGV,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE/B,WAAW,CAAU;IAGrB,OAAO,CAAiB;IAGxB,UAAU,CAAiB;IAG3B,OAAO,CAAiB;IAGxB,WAAW,CAAiB;IAG5B,YAAY,CAAiB;IAG7B,WAAW,CAAiB;IAG5B,UAAU,CAAU;IAGpB,SAAS,CAAQ;IAGjB,SAAS,CAAQ;CAClB,CAAA;AA9BY,oDAAoB;AAE/B;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;yDACjC;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACjB;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACnC;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACnC;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACtC;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtC;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACtC;AAG5B;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;wDACnB;AAGpB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC/C,IAAI;uDAAC;AAGjB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC/C,IAAI;uDAAC;+BA7BN,oBAAoB;IADhC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;GACvB,oBAAoB,CA8BhC"}
@@ -44,7 +44,7 @@ let OpenAiResponsesService = OpenAiResponsesService_1 = class OpenAiResponsesSer
44
44
  try {
45
45
  const client = new openai_1.OpenAI({ apiKey });
46
46
  const response = await client.responses.create({
47
- model: input.model || 'gpt-5.2',
47
+ model: input.model || 'gpt-5.4',
48
48
  input: input.prompt,
49
49
  });
50
50
  const text = this.extractResponseText(response);
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AllowInterruptedExecutionErrorCode1742500000000 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ private rebuildTaskExecutionHistory;
7
+ }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AllowInterruptedExecutionErrorCode1742500000000 = void 0;
4
+ class AllowInterruptedExecutionErrorCode1742500000000 {
5
+ name = 'AllowInterruptedExecutionErrorCode1742500000000';
6
+ async up(queryRunner) {
7
+ await this.rebuildTaskExecutionHistory(queryRunner, true);
8
+ }
9
+ async down(queryRunner) {
10
+ await queryRunner.query(`
11
+ UPDATE task_execution_history
12
+ SET error_code = 'UNKNOWN'
13
+ WHERE error_code = 'INTERRUPTED'
14
+ `);
15
+ await this.rebuildTaskExecutionHistory(queryRunner, false);
16
+ }
17
+ async rebuildTaskExecutionHistory(queryRunner, allowInterrupted) {
18
+ const errorCodes = allowInterrupted
19
+ ? "'OUT_OF_QUOTA', 'INTERRUPTED', 'UNKNOWN'"
20
+ : "'OUT_OF_QUOTA', 'UNKNOWN'";
21
+ await queryRunner.query('PRAGMA foreign_keys=off');
22
+ try {
23
+ await queryRunner.query('DROP INDEX IF EXISTS idx_task_execution_history_v2_transitioned_at');
24
+ await queryRunner.query('DROP INDEX IF EXISTS idx_task_execution_history_v2_worker_client_id');
25
+ await queryRunner.query('DROP INDEX IF EXISTS idx_task_execution_history_v2_agent_actor_id');
26
+ await queryRunner.query('DROP INDEX IF EXISTS idx_task_execution_history_v2_task_id');
27
+ await queryRunner.query(`
28
+ CREATE TABLE task_execution_history_new (
29
+ id varchar PRIMARY KEY NOT NULL,
30
+ task_id text NOT NULL,
31
+ claimed_at datetime NOT NULL,
32
+ transitioned_at datetime NOT NULL,
33
+ agent_actor_id text NOT NULL,
34
+ worker_client_id text NOT NULL,
35
+ status text NOT NULL
36
+ CHECK (status IN ('SUCCEEDED', 'FAILED', 'STALE', 'CANCELLED')),
37
+ error_code text
38
+ CHECK (error_code IS NULL OR error_code IN (${errorCodes})),
39
+ row_version integer NOT NULL DEFAULT 1,
40
+ created_at datetime NOT NULL DEFAULT (datetime('now')),
41
+ updated_at datetime NOT NULL DEFAULT (datetime('now')),
42
+ deleted_at datetime,
43
+ error_message text,
44
+ runner_session_id text,
45
+ tool_call_count integer NOT NULL DEFAULT 0,
46
+ CONSTRAINT fk_task_execution_history_task_id
47
+ FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,
48
+ CONSTRAINT fk_task_execution_history_agent_actor_id
49
+ FOREIGN KEY (agent_actor_id) REFERENCES agents(actor_id)
50
+ )
51
+ `);
52
+ await queryRunner.query(`
53
+ INSERT INTO task_execution_history_new (
54
+ id,
55
+ task_id,
56
+ claimed_at,
57
+ transitioned_at,
58
+ agent_actor_id,
59
+ worker_client_id,
60
+ status,
61
+ error_code,
62
+ row_version,
63
+ created_at,
64
+ updated_at,
65
+ deleted_at,
66
+ error_message,
67
+ runner_session_id,
68
+ tool_call_count
69
+ )
70
+ SELECT
71
+ id,
72
+ task_id,
73
+ claimed_at,
74
+ transitioned_at,
75
+ agent_actor_id,
76
+ worker_client_id,
77
+ status,
78
+ error_code,
79
+ row_version,
80
+ created_at,
81
+ updated_at,
82
+ deleted_at,
83
+ error_message,
84
+ runner_session_id,
85
+ tool_call_count
86
+ FROM task_execution_history
87
+ `);
88
+ await queryRunner.query('DROP TABLE task_execution_history');
89
+ await queryRunner.query(`
90
+ ALTER TABLE task_execution_history_new
91
+ RENAME TO task_execution_history
92
+ `);
93
+ await queryRunner.query(`
94
+ CREATE INDEX IF NOT EXISTS idx_task_execution_history_v2_task_id
95
+ ON task_execution_history (task_id)
96
+ `);
97
+ await queryRunner.query(`
98
+ CREATE INDEX IF NOT EXISTS idx_task_execution_history_v2_agent_actor_id
99
+ ON task_execution_history (agent_actor_id)
100
+ `);
101
+ await queryRunner.query(`
102
+ CREATE INDEX IF NOT EXISTS idx_task_execution_history_v2_worker_client_id
103
+ ON task_execution_history (worker_client_id)
104
+ `);
105
+ await queryRunner.query(`
106
+ CREATE INDEX IF NOT EXISTS idx_task_execution_history_v2_transitioned_at
107
+ ON task_execution_history (transitioned_at)
108
+ `);
109
+ }
110
+ finally {
111
+ await queryRunner.query('PRAGMA foreign_keys=on');
112
+ }
113
+ }
114
+ }
115
+ exports.AllowInterruptedExecutionErrorCode1742500000000 = AllowInterruptedExecutionErrorCode1742500000000;
116
+ //# sourceMappingURL=1742500000000-AllowInterruptedExecutionErrorCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1742500000000-AllowInterruptedExecutionErrorCode.js","sourceRoot":"","sources":["../../src/migrations/1742500000000-AllowInterruptedExecutionErrorCode.ts"],"names":[],"mappings":";;;AAEA,MAAa,+CAA+C;IAG1D,IAAI,GAAG,iDAAiD,CAAC;IAElD,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC;;;;KAIvB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,WAAwB,EACxB,gBAAyB;QAEzB,MAAM,UAAU,GAAG,gBAAgB;YACjC,CAAC,CAAC,0CAA0C;YAC5C,CAAC,CAAC,2BAA2B,CAAC;QAEhC,MAAM,WAAW,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CACrB,oEAAoE,CACrE,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACrB,mEAAmE,CACpE,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACrB,4DAA4D,CAC7D,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;0DAW4B,UAAU;;;;;;;;;;;;;OAa7D,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCvB,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC7D,MAAM,WAAW,CAAC,KAAK,CAAC;;;OAGvB,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;OAGvB,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CAAC;;;OAGvB,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CAAC;;;OAGvB,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CAAC;;;OAGvB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AAlID,0GAkIC"}
@@ -0,0 +1,5 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddExecutionStatsTable1742600000000 implements MigrationInterface {
3
+ up(queryRunner: QueryRunner): Promise<void>;
4
+ down(queryRunner: QueryRunner): Promise<void>;
5
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddExecutionStatsTable1742600000000 = void 0;
4
+ class AddExecutionStatsTable1742600000000 {
5
+ async up(queryRunner) {
6
+ await queryRunner.query(`
7
+ CREATE TABLE IF NOT EXISTS execution_stats (
8
+ execution_id uuid PRIMARY KEY,
9
+ harness text,
10
+ provider_id text,
11
+ model_id text,
12
+ input_tokens integer,
13
+ output_tokens integer,
14
+ total_tokens integer,
15
+ row_version integer NOT NULL DEFAULT 1,
16
+ created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
17
+ updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
18
+ )
19
+ `);
20
+ await queryRunner.query(`
21
+ CREATE INDEX IF NOT EXISTS idx_execution_stats_harness
22
+ ON execution_stats (harness)
23
+ `);
24
+ await queryRunner.query(`
25
+ CREATE INDEX IF NOT EXISTS idx_execution_stats_provider_model
26
+ ON execution_stats (provider_id, model_id)
27
+ `);
28
+ }
29
+ async down(queryRunner) {
30
+ await queryRunner.query('DROP INDEX IF EXISTS idx_execution_stats_provider_model');
31
+ await queryRunner.query('DROP INDEX IF EXISTS idx_execution_stats_harness');
32
+ await queryRunner.query('DROP TABLE IF EXISTS execution_stats');
33
+ }
34
+ }
35
+ exports.AddExecutionStatsTable1742600000000 = AddExecutionStatsTable1742600000000;
36
+ //# sourceMappingURL=1742600000000-AddExecutionStatsTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1742600000000-AddExecutionStatsTable.js","sourceRoot":"","sources":["../../src/migrations/1742600000000-AddExecutionStatsTable.ts"],"names":[],"mappings":";;;AAEA,MAAa,mCAAmC;IAGvC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;KAavB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;KAGvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;KAGvB,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACnF,MAAM,WAAW,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC5E,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAClE,CAAC;CACF;AAnCD,kFAmCC"}