@taico/taico 0.2.14 → 0.2.16

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 (84) hide show
  1. package/dist/app.module.js +2 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/executions/active/active-task-execution.controller.d.ts +6 -2
  4. package/dist/executions/active/active-task-execution.controller.js +86 -6
  5. package/dist/executions/active/active-task-execution.controller.js.map +1 -1
  6. package/dist/executions/active/active-task-execution.entity.d.ts +2 -0
  7. package/dist/executions/active/active-task-execution.entity.js +10 -0
  8. package/dist/executions/active/active-task-execution.entity.js.map +1 -1
  9. package/dist/executions/active/active-task-execution.service.d.ts +25 -1
  10. package/dist/executions/active/active-task-execution.service.js +90 -5
  11. package/dist/executions/active/active-task-execution.service.js.map +1 -1
  12. package/dist/executions/active/dto/http/active-task-execution-list-response.dto.d.ts +8 -0
  13. package/dist/executions/active/dto/http/active-task-execution-list-response.dto.js +62 -0
  14. package/dist/executions/active/dto/http/active-task-execution-list-response.dto.js.map +1 -0
  15. package/dist/executions/active/dto/http/active-task-execution-response.dto.d.ts +2 -0
  16. package/dist/executions/active/dto/http/active-task-execution-response.dto.js +11 -0
  17. package/dist/executions/active/dto/http/active-task-execution-response.dto.js.map +1 -1
  18. package/dist/executions/active/dto/http/list-active-executions-query.dto.d.ts +5 -0
  19. package/dist/executions/active/dto/http/list-active-executions-query.dto.js +55 -0
  20. package/dist/executions/active/dto/http/list-active-executions-query.dto.js.map +1 -0
  21. package/dist/executions/active/dto/http/update-execution-stats.dto.d.ts +8 -0
  22. package/dist/executions/active/dto/http/update-execution-stats.dto.js +108 -0
  23. package/dist/executions/active/dto/http/update-execution-stats.dto.js.map +1 -0
  24. package/dist/executions/dto/http/execution-stats-response.dto.d.ts +10 -0
  25. package/dist/executions/dto/http/execution-stats-response.dto.js +87 -0
  26. package/dist/executions/dto/http/execution-stats-response.dto.js.map +1 -0
  27. package/dist/executions/errors/executions.errors.d.ts +6 -0
  28. package/dist/executions/errors/executions.errors.js +13 -1
  29. package/dist/executions/errors/executions.errors.js.map +1 -1
  30. package/dist/executions/executions.module.js +2 -0
  31. package/dist/executions/executions.module.js.map +1 -1
  32. package/dist/executions/history/dto/http/list-history-query.dto.d.ts +5 -0
  33. package/dist/executions/history/dto/http/list-history-query.dto.js +55 -0
  34. package/dist/executions/history/dto/http/list-history-query.dto.js.map +1 -0
  35. package/dist/executions/history/dto/http/task-execution-history-list-response.dto.d.ts +8 -0
  36. package/dist/executions/history/dto/http/task-execution-history-list-response.dto.js +62 -0
  37. package/dist/executions/history/dto/http/task-execution-history-list-response.dto.js.map +1 -0
  38. package/dist/executions/history/dto/http/task-execution-history-response.dto.d.ts +2 -0
  39. package/dist/executions/history/dto/http/task-execution-history-response.dto.js +11 -0
  40. package/dist/executions/history/dto/http/task-execution-history-response.dto.js.map +1 -1
  41. package/dist/executions/history/task-execution-history.controller.d.ts +3 -2
  42. package/dist/executions/history/task-execution-history.controller.js +22 -6
  43. package/dist/executions/history/task-execution-history.controller.js.map +1 -1
  44. package/dist/executions/history/task-execution-history.entity.d.ts +2 -0
  45. package/dist/executions/history/task-execution-history.entity.js +10 -0
  46. package/dist/executions/history/task-execution-history.entity.js.map +1 -1
  47. package/dist/executions/history/task-execution-history.service.d.ts +12 -1
  48. package/dist/executions/history/task-execution-history.service.js +36 -4
  49. package/dist/executions/history/task-execution-history.service.js.map +1 -1
  50. package/dist/executions/history/task-execution-history.service.spec.d.ts +1 -0
  51. package/dist/executions/history/task-execution-history.service.spec.js +132 -0
  52. package/dist/executions/history/task-execution-history.service.spec.js.map +1 -0
  53. package/dist/executions/queue/dto/http/list-queue-query.dto.d.ts +4 -0
  54. package/dist/executions/queue/dto/http/list-queue-query.dto.js +45 -0
  55. package/dist/executions/queue/dto/http/list-queue-query.dto.js.map +1 -0
  56. package/dist/executions/queue/dto/http/task-execution-queue-list-response.dto.d.ts +8 -0
  57. package/dist/executions/queue/dto/http/task-execution-queue-list-response.dto.js +62 -0
  58. package/dist/executions/queue/dto/http/task-execution-queue-list-response.dto.js.map +1 -0
  59. package/dist/executions/queue/task-execution-queue.controller.d.ts +3 -2
  60. package/dist/executions/queue/task-execution-queue.controller.js +18 -6
  61. package/dist/executions/queue/task-execution-queue.controller.js.map +1 -1
  62. package/dist/executions/queue/task-execution-queue.service.d.ts +9 -1
  63. package/dist/executions/queue/task-execution-queue.service.js +8 -2
  64. package/dist/executions/queue/task-execution-queue.service.js.map +1 -1
  65. package/dist/executions/readiness/task-execution-queue-populator.service.d.ts +4 -1
  66. package/dist/executions/readiness/task-execution-queue-populator.service.js +42 -2
  67. package/dist/executions/readiness/task-execution-queue-populator.service.js.map +1 -1
  68. package/dist/executions/readiness/task-execution-queue-populator.service.spec.js +196 -0
  69. package/dist/executions/readiness/task-execution-queue-populator.service.spec.js.map +1 -1
  70. package/dist/executions/stats/execution-stats.entity.d.ts +12 -0
  71. package/dist/executions/stats/execution-stats.entity.js +70 -0
  72. package/dist/executions/stats/execution-stats.entity.js.map +1 -0
  73. package/dist/migrations/1742600000000-AddExecutionStatsTable.d.ts +5 -0
  74. package/dist/migrations/1742600000000-AddExecutionStatsTable.js +36 -0
  75. package/dist/migrations/1742600000000-AddExecutionStatsTable.js.map +1 -0
  76. package/dist/public/assets/index-Bqsni13H.css +1 -0
  77. package/dist/public/assets/index-CboWmVjp.js +73 -0
  78. package/dist/public/index.html +2 -2
  79. package/dist/threads/backends/chat-backend.utils.js +16 -3
  80. package/dist/threads/backends/chat-backend.utils.js.map +1 -1
  81. package/dist/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +6 -5
  83. package/dist/public/assets/index-BFiHpO7T.js +0 -73
  84. package/dist/public/assets/index-N2Ursvu5.css +0 -1
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.TaskExecutionHistoryController = void 0;
13
16
  const common_1 = require("@nestjs/common");
@@ -18,14 +21,26 @@ const require_scopes_decorator_1 = require("../../auth/guards/decorators/require
18
21
  const tasks_scopes_1 = require("../../tasks/tasks.scopes");
19
22
  const task_execution_history_service_1 = require("./task-execution-history.service");
20
23
  const task_execution_history_response_dto_1 = require("./dto/http/task-execution-history-response.dto");
24
+ const task_execution_history_list_response_dto_1 = require("./dto/http/task-execution-history-list-response.dto");
25
+ const list_history_query_dto_1 = require("./dto/http/list-history-query.dto");
21
26
  let TaskExecutionHistoryController = class TaskExecutionHistoryController {
22
27
  taskExecutionHistoryService;
23
28
  constructor(taskExecutionHistoryService) {
24
29
  this.taskExecutionHistoryService = taskExecutionHistoryService;
25
30
  }
26
- async listHistory() {
27
- const history = await this.taskExecutionHistoryService.listHistory();
28
- return history.map((entry) => task_execution_history_response_dto_1.TaskExecutionHistoryResponseDto.fromEntity(entry));
31
+ async listHistory(query) {
32
+ const result = await this.taskExecutionHistoryService.listHistory({
33
+ page: query.page ?? 1,
34
+ limit: query.limit ?? 50,
35
+ taskId: query.taskId,
36
+ });
37
+ return {
38
+ items: result.items.map((item) => task_execution_history_response_dto_1.TaskExecutionHistoryResponseDto.fromEntity(item)),
39
+ total: result.total,
40
+ page: result.page,
41
+ limit: result.limit,
42
+ totalPages: Math.ceil(result.total / result.limit),
43
+ };
29
44
  }
30
45
  };
31
46
  exports.TaskExecutionHistoryController = TaskExecutionHistoryController;
@@ -33,11 +48,12 @@ __decorate([
33
48
  (0, common_1.Get)(),
34
49
  (0, swagger_1.ApiOperation)({
35
50
  summary: 'List task execution history',
36
- description: 'Returns the persisted execution history rows in the execution system.',
51
+ description: 'Returns the persisted execution history rows in the execution system with pagination.',
37
52
  }),
38
- (0, swagger_1.ApiOkResponse)({ type: [task_execution_history_response_dto_1.TaskExecutionHistoryResponseDto] }),
53
+ (0, swagger_1.ApiOkResponse)({ type: task_execution_history_list_response_dto_1.TaskExecutionHistoryListResponseDto }),
54
+ __param(0, (0, common_1.Query)()),
39
55
  __metadata("design:type", Function),
40
- __metadata("design:paramtypes", []),
56
+ __metadata("design:paramtypes", [list_history_query_dto_1.ListHistoryQueryDto]),
41
57
  __metadata("design:returntype", Promise)
42
58
  ], TaskExecutionHistoryController.prototype, "listHistory", null);
43
59
  exports.TaskExecutionHistoryController = TaskExecutionHistoryController = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-history.controller.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAC5D,6CAKyB;AACzB,oFAA+E;AAC/E,wEAAoE;AACpE,oGAAsF;AACtF,2DAAuD;AACvD,qFAA+E;AAC/E,wGAAiG;AAO1F,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAEtB;IADnB,YACmB,2BAAwD;QAAxD,gCAA2B,GAA3B,2BAA2B,CAA6B;IACxE,CAAC;IASE,AAAN,KAAK,CAAC,WAAW;QACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;QACrE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,qEAA+B,CAAC,UAAU,CAAC,KAAK,CAAC,CAClD,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,wEAA8B;AAYnC;IAPL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,6BAA6B;QACtC,WAAW,EACT,uEAAuE;KAC1E,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,CAAC,qEAA+B,CAAC,EAAE,CAAC;;;;iEAM1D;yCAjBU,8BAA8B;IAL1C,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,uBAAa,EAAC,YAAY,CAAC;IAC3B,IAAA,mBAAU,EAAC,oBAAoB,CAAC;IAChC,IAAA,kBAAS,EAAC,qCAAgB,EAAE,0BAAW,CAAC;IACxC,IAAA,wCAAa,EAAC,0BAAW,CAAC,IAAI,CAAC,EAAE,CAAC;qCAGe,4DAA2B;GAFhE,8BAA8B,CAkB1C"}
1
+ {"version":3,"file":"task-execution-history.controller.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,6CAKyB;AACzB,oFAA+E;AAC/E,wEAAoE;AACpE,oGAAsF;AACtF,2DAAuD;AACvD,qFAA+E;AAC/E,wGAAiG;AACjG,kHAA0G;AAC1G,8EAAwE;AAOjE,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAEtB;IADnB,YACmB,2BAAwD;QAAxD,gCAA2B,GAA3B,2BAA2B,CAA6B;IACxE,CAAC;IASE,AAAN,KAAK,CAAC,WAAW,CACN,KAA0B;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC;YAChE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,qEAA+B,CAAC,UAAU,CAAC,IAAI,CAAC,CACjD;YACD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;SACnD,CAAC;IACJ,CAAC;CACF,CAAA;AA/BY,wEAA8B;AAYnC;IAPL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,6BAA6B;QACtC,WAAW,EACT,uFAAuF;KAC1F,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,8EAAmC,EAAE,CAAC;IAE1D,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAQ,4CAAmB;;iEAiBpC;yCA9BU,8BAA8B;IAL1C,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,uBAAa,EAAC,YAAY,CAAC;IAC3B,IAAA,mBAAU,EAAC,oBAAoB,CAAC;IAChC,IAAA,kBAAS,EAAC,qCAAgB,EAAE,0BAAW,CAAC;IACxC,IAAA,wCAAa,EAAC,0BAAW,CAAC,IAAI,CAAC,EAAE,CAAC;qCAGe,4DAA2B;GAFhE,8BAA8B,CA+B1C"}
@@ -2,6 +2,7 @@ import { AgentEntity } from '../../agents/agent.entity';
2
2
  import { TaskEntity } from '../../tasks/task.entity';
3
3
  import { TaskExecutionHistoryErrorCode } from './task-execution-history-error-code.enum';
4
4
  import { TaskExecutionHistoryStatus } from './task-execution-history-status.enum';
5
+ import { ExecutionStatsEntity } from '../stats/execution-stats.entity';
5
6
  export declare class TaskExecutionHistoryEntity {
6
7
  id: string;
7
8
  taskId: string;
@@ -13,6 +14,7 @@ export declare class TaskExecutionHistoryEntity {
13
14
  workerClientId: string;
14
15
  runnerSessionId: string | null;
15
16
  toolCallCount: number;
17
+ stats: ExecutionStatsEntity | null;
16
18
  status: TaskExecutionHistoryStatus;
17
19
  errorCode: TaskExecutionHistoryErrorCode | null;
18
20
  errorMessage: string | null;
@@ -15,6 +15,7 @@ const agent_entity_1 = require("../../agents/agent.entity");
15
15
  const task_entity_1 = require("../../tasks/task.entity");
16
16
  const task_execution_history_error_code_enum_1 = require("./task-execution-history-error-code.enum");
17
17
  const task_execution_history_status_enum_1 = require("./task-execution-history-status.enum");
18
+ const execution_stats_entity_1 = require("../stats/execution-stats.entity");
18
19
  let TaskExecutionHistoryEntity = class TaskExecutionHistoryEntity {
19
20
  id;
20
21
  taskId;
@@ -26,6 +27,7 @@ let TaskExecutionHistoryEntity = class TaskExecutionHistoryEntity {
26
27
  workerClientId;
27
28
  runnerSessionId;
28
29
  toolCallCount;
30
+ stats;
29
31
  status;
30
32
  errorCode;
31
33
  errorMessage;
@@ -77,6 +79,14 @@ __decorate([
77
79
  (0, typeorm_1.Column)({ type: 'integer', name: 'tool_call_count', default: 0 }),
78
80
  __metadata("design:type", Number)
79
81
  ], TaskExecutionHistoryEntity.prototype, "toolCallCount", void 0);
82
+ __decorate([
83
+ (0, typeorm_1.OneToOne)(() => execution_stats_entity_1.ExecutionStatsEntity, {
84
+ nullable: true,
85
+ createForeignKeyConstraints: false,
86
+ }),
87
+ (0, typeorm_1.JoinColumn)({ name: 'id', referencedColumnName: 'executionId' }),
88
+ __metadata("design:type", Object)
89
+ ], TaskExecutionHistoryEntity.prototype, "stats", void 0);
80
90
  __decorate([
81
91
  (0, typeorm_1.Column)({
82
92
  type: 'text',
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-history.entity.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-execution-history.entity.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.entity.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,16 @@ import { TaskExecutionHistoryEntity } from './task-execution-history.entity';
3
3
  export declare class TaskExecutionHistoryService {
4
4
  private readonly taskExecutionHistoryRepository;
5
5
  constructor(taskExecutionHistoryRepository: Repository<TaskExecutionHistoryEntity>);
6
- listHistory(): Promise<TaskExecutionHistoryEntity[]>;
6
+ listHistory(options?: {
7
+ page?: number;
8
+ limit?: number;
9
+ taskId?: string;
10
+ }): Promise<{
11
+ items: TaskExecutionHistoryEntity[];
12
+ total: number;
13
+ page: number;
14
+ limit: number;
15
+ }>;
16
+ getLatestHistoryForTask(taskId: string): Promise<TaskExecutionHistoryEntity | null>;
17
+ countConsecutiveQuotaErrors(taskId: string): Promise<number>;
7
18
  }
@@ -22,11 +22,43 @@ let TaskExecutionHistoryService = class TaskExecutionHistoryService {
22
22
  constructor(taskExecutionHistoryRepository) {
23
23
  this.taskExecutionHistoryRepository = taskExecutionHistoryRepository;
24
24
  }
25
- async listHistory() {
26
- return this.taskExecutionHistoryRepository.find({
27
- relations: ['task'],
28
- order: { taskId: 'ASC' },
25
+ async listHistory(options) {
26
+ const page = options?.page ?? 1;
27
+ const limit = options?.limit ?? 50;
28
+ const skip = (page - 1) * limit;
29
+ const where = options?.taskId ? { taskId: options.taskId } : {};
30
+ const [items, total] = await this.taskExecutionHistoryRepository.findAndCount({
31
+ where,
32
+ relations: ['task', 'stats'],
33
+ order: { transitionedAt: 'DESC' },
34
+ skip,
35
+ take: limit,
29
36
  });
37
+ return { items, total, page, limit };
38
+ }
39
+ async getLatestHistoryForTask(taskId) {
40
+ return this.taskExecutionHistoryRepository.findOne({
41
+ where: { taskId },
42
+ relations: ['stats'],
43
+ order: { transitionedAt: 'DESC' },
44
+ });
45
+ }
46
+ async countConsecutiveQuotaErrors(taskId) {
47
+ const histories = await this.taskExecutionHistoryRepository.find({
48
+ where: { taskId },
49
+ order: { transitionedAt: 'DESC' },
50
+ });
51
+ let count = 0;
52
+ for (const history of histories) {
53
+ if (history.status === 'FAILED' &&
54
+ history.errorCode === 'OUT_OF_QUOTA') {
55
+ count++;
56
+ }
57
+ else {
58
+ break;
59
+ }
60
+ }
61
+ return count;
30
62
  }
31
63
  };
32
64
  exports.TaskExecutionHistoryService = TaskExecutionHistoryService;
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-history.service.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,mFAA6E;AAGtE,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAGnB;IAFnB,YAEmB,8BAAsE;QAAtE,mCAA8B,GAA9B,8BAA8B,CAAwC;IACtF,CAAC;IAEJ,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC;YAC9C,SAAS,EAAE,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAZY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,0DAA0B,CAAC,CAAA;qCACI,oBAAU;GAHlD,2BAA2B,CAYvC"}
1
+ {"version":3,"file":"task-execution-history.service.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,mFAA6E;AAGtE,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAGnB;IAFnB,YAEmB,8BAAsE;QAAtE,mCAA8B,GAA9B,8BAA8B,CAAwC;IACtF,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAIjB;QAMC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,YAAY,CAAC;YAC5E,KAAK;YACL,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YAC5B,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;YACjC,IAAI;YACJ,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,MAAc;QAEd,OAAO,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE,EAAE,MAAM,EAAE;YACjB,SAAS,EAAE,CAAC,OAAO,CAAC;YACpB,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,MAAc;QAE9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC;YAC/D,KAAK,EAAE,EAAE,MAAM,EAAE;YACjB,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAClC,CAAC,CAAC;QAGH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,IACE,OAAO,CAAC,MAAM,KAAK,QAAQ;gBAC3B,OAAO,CAAC,SAAS,KAAK,cAAc,EACpC,CAAC;gBACD,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAjEY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,0DAA0B,CAAC,CAAA;qCACI,oBAAU;GAHlD,2BAA2B,CAiEvC"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@nestjs/testing");
4
+ const typeorm_1 = require("@nestjs/typeorm");
5
+ const task_execution_history_service_1 = require("./task-execution-history.service");
6
+ const task_execution_history_entity_1 = require("./task-execution-history.entity");
7
+ const task_execution_history_status_enum_1 = require("./task-execution-history-status.enum");
8
+ const task_execution_history_error_code_enum_1 = require("./task-execution-history-error-code.enum");
9
+ describe('TaskExecutionHistoryService', () => {
10
+ let service;
11
+ let repository;
12
+ beforeEach(async () => {
13
+ const module = await testing_1.Test.createTestingModule({
14
+ providers: [
15
+ task_execution_history_service_1.TaskExecutionHistoryService,
16
+ {
17
+ provide: (0, typeorm_1.getRepositoryToken)(task_execution_history_entity_1.TaskExecutionHistoryEntity),
18
+ useValue: {
19
+ find: jest.fn(),
20
+ findOne: jest.fn(),
21
+ },
22
+ },
23
+ ],
24
+ }).compile();
25
+ service = module.get(task_execution_history_service_1.TaskExecutionHistoryService);
26
+ repository = module.get((0, typeorm_1.getRepositoryToken)(task_execution_history_entity_1.TaskExecutionHistoryEntity));
27
+ });
28
+ describe('getLatestHistoryForTask', () => {
29
+ it('should return the latest history entry for a task', async () => {
30
+ const taskId = 'test-task-id';
31
+ const mockHistory = {
32
+ taskId,
33
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.SUCCEEDED,
34
+ transitionedAt: new Date(),
35
+ };
36
+ repository.findOne.mockResolvedValue(mockHistory);
37
+ const result = await service.getLatestHistoryForTask(taskId);
38
+ expect(result).toBe(mockHistory);
39
+ expect(repository.findOne).toHaveBeenCalledWith({
40
+ where: { taskId },
41
+ order: { transitionedAt: 'DESC' },
42
+ });
43
+ });
44
+ it('should return null when no history exists', async () => {
45
+ const taskId = 'test-task-id';
46
+ repository.findOne.mockResolvedValue(null);
47
+ const result = await service.getLatestHistoryForTask(taskId);
48
+ expect(result).toBeNull();
49
+ });
50
+ });
51
+ describe('countConsecutiveQuotaErrors', () => {
52
+ const taskId = 'test-task-id';
53
+ const createHistoryEntry = (status, errorCode, minutesAgo) => ({
54
+ taskId,
55
+ status,
56
+ errorCode,
57
+ transitionedAt: new Date(Date.now() - minutesAgo * 60 * 1000),
58
+ });
59
+ it('should count consecutive quota errors from most recent execution', async () => {
60
+ const histories = [
61
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 1),
62
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 2),
63
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 3),
64
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.SUCCEEDED, null, 4),
65
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 5),
66
+ ];
67
+ repository.find.mockResolvedValue(histories);
68
+ const result = await service.countConsecutiveQuotaErrors(taskId);
69
+ expect(result).toBe(3);
70
+ expect(repository.find).toHaveBeenCalledWith({
71
+ where: { taskId },
72
+ order: { transitionedAt: 'DESC' },
73
+ });
74
+ });
75
+ it('should return 0 when latest execution is not a quota error', async () => {
76
+ const histories = [
77
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.SUCCEEDED, null, 1),
78
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 2),
79
+ ];
80
+ repository.find.mockResolvedValue(histories);
81
+ const result = await service.countConsecutiveQuotaErrors(taskId);
82
+ expect(result).toBe(0);
83
+ });
84
+ it('should return 0 when no history exists', async () => {
85
+ repository.find.mockResolvedValue([]);
86
+ const result = await service.countConsecutiveQuotaErrors(taskId);
87
+ expect(result).toBe(0);
88
+ });
89
+ it('should count all quota errors if all executions are quota errors', async () => {
90
+ const histories = [
91
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 1),
92
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 2),
93
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 3),
94
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 4),
95
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 5),
96
+ ];
97
+ repository.find.mockResolvedValue(histories);
98
+ const result = await service.countConsecutiveQuotaErrors(taskId);
99
+ expect(result).toBe(5);
100
+ });
101
+ it('should stop counting at first non-quota failure', async () => {
102
+ const histories = [
103
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 1),
104
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 2),
105
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.UNKNOWN, 3),
106
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 4),
107
+ ];
108
+ repository.find.mockResolvedValue(histories);
109
+ const result = await service.countConsecutiveQuotaErrors(taskId);
110
+ expect(result).toBe(2);
111
+ });
112
+ it('should stop counting at CANCELLED status', async () => {
113
+ const histories = [
114
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 1),
115
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.CANCELLED, null, 2),
116
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 3),
117
+ ];
118
+ repository.find.mockResolvedValue(histories);
119
+ const result = await service.countConsecutiveQuotaErrors(taskId);
120
+ expect(result).toBe(1);
121
+ });
122
+ it('should return 1 for single quota error', async () => {
123
+ const histories = [
124
+ createHistoryEntry(task_execution_history_status_enum_1.TaskExecutionHistoryStatus.FAILED, task_execution_history_error_code_enum_1.TaskExecutionHistoryErrorCode.OUT_OF_QUOTA, 1),
125
+ ];
126
+ repository.find.mockResolvedValue(histories);
127
+ const result = await service.countConsecutiveQuotaErrors(taskId);
128
+ expect(result).toBe(1);
129
+ });
130
+ });
131
+ });
132
+ //# sourceMappingURL=task-execution-history.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-execution-history.service.spec.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class ListQueueQueryDto {
2
+ page?: number;
3
+ limit?: number;
4
+ }
@@ -0,0 +1,45 @@
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.ListQueueQueryDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const class_transformer_1 = require("class-transformer");
16
+ class ListQueueQueryDto {
17
+ page = 1;
18
+ limit = 50;
19
+ }
20
+ exports.ListQueueQueryDto = ListQueueQueryDto;
21
+ __decorate([
22
+ (0, swagger_1.ApiPropertyOptional)({
23
+ description: 'Page number (1-indexed)',
24
+ example: 1,
25
+ default: 1,
26
+ }),
27
+ (0, class_validator_1.IsOptional)(),
28
+ (0, class_transformer_1.Transform)(({ value }) => Number(value)),
29
+ (0, class_validator_1.IsInt)(),
30
+ (0, class_validator_1.Min)(1),
31
+ __metadata("design:type", Number)
32
+ ], ListQueueQueryDto.prototype, "page", void 0);
33
+ __decorate([
34
+ (0, swagger_1.ApiPropertyOptional)({
35
+ description: 'Items per page (1-100)',
36
+ example: 50,
37
+ default: 50,
38
+ }),
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_transformer_1.Transform)(({ value }) => Number(value)),
41
+ (0, class_validator_1.IsInt)(),
42
+ (0, class_validator_1.Min)(1),
43
+ __metadata("design:type", Number)
44
+ ], ListQueueQueryDto.prototype, "limit", void 0);
45
+ //# sourceMappingURL=list-queue-query.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-queue-query.dto.js","sourceRoot":"","sources":["../../../../../src/executions/queue/dto/http/list-queue-query.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyD;AACzD,6CAAsD;AACtD,yDAA8C;AAE9C,MAAa,iBAAiB;IAU5B,IAAI,GAAY,CAAC,CAAC;IAWlB,KAAK,GAAY,EAAE,CAAC;CACrB;AAtBD,8CAsBC;AAZC;IATC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;+CACW;AAWlB;IATC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;gDACa"}
@@ -0,0 +1,8 @@
1
+ import { TaskExecutionQueueEntryResponseDto } from './task-execution-queue-entry-response.dto';
2
+ export declare class TaskExecutionQueueListResponseDto {
3
+ items: TaskExecutionQueueEntryResponseDto[];
4
+ total: number;
5
+ page: number;
6
+ limit: number;
7
+ totalPages: number;
8
+ }
@@ -0,0 +1,62 @@
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.TaskExecutionQueueListResponseDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const class_validator_1 = require("class-validator");
16
+ const task_execution_queue_entry_response_dto_1 = require("./task-execution-queue-entry-response.dto");
17
+ class TaskExecutionQueueListResponseDto {
18
+ items;
19
+ total;
20
+ page;
21
+ limit;
22
+ totalPages;
23
+ }
24
+ exports.TaskExecutionQueueListResponseDto = TaskExecutionQueueListResponseDto;
25
+ __decorate([
26
+ (0, swagger_1.ApiProperty)({
27
+ description: 'List of task execution queue entries',
28
+ type: () => [task_execution_queue_entry_response_dto_1.TaskExecutionQueueEntryResponseDto],
29
+ }),
30
+ (0, class_validator_1.ValidateNested)({ each: true }),
31
+ (0, class_transformer_1.Type)(() => task_execution_queue_entry_response_dto_1.TaskExecutionQueueEntryResponseDto),
32
+ __metadata("design:type", Array)
33
+ ], TaskExecutionQueueListResponseDto.prototype, "items", void 0);
34
+ __decorate([
35
+ (0, swagger_1.ApiProperty)({
36
+ description: 'Total number of queue entries',
37
+ example: 42,
38
+ }),
39
+ __metadata("design:type", Number)
40
+ ], TaskExecutionQueueListResponseDto.prototype, "total", void 0);
41
+ __decorate([
42
+ (0, swagger_1.ApiProperty)({
43
+ description: 'Current page number',
44
+ example: 1,
45
+ }),
46
+ __metadata("design:type", Number)
47
+ ], TaskExecutionQueueListResponseDto.prototype, "page", void 0);
48
+ __decorate([
49
+ (0, swagger_1.ApiProperty)({
50
+ description: 'Number of items per page',
51
+ example: 50,
52
+ }),
53
+ __metadata("design:type", Number)
54
+ ], TaskExecutionQueueListResponseDto.prototype, "limit", void 0);
55
+ __decorate([
56
+ (0, swagger_1.ApiProperty)({
57
+ description: 'Total number of pages',
58
+ example: 3,
59
+ }),
60
+ __metadata("design:type", Number)
61
+ ], TaskExecutionQueueListResponseDto.prototype, "totalPages", void 0);
62
+ //# sourceMappingURL=task-execution-queue-list-response.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-execution-queue-list-response.dto.js","sourceRoot":"","sources":["../../../../../src/executions/queue/dto/http/task-execution-queue-list-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAiD;AACjD,uGAA+F;AAE/F,MAAa,iCAAiC;IAO5C,KAAK,CAAwC;IAM7C,KAAK,CAAU;IAMf,IAAI,CAAU;IAMd,KAAK,CAAU;IAMf,UAAU,CAAU;CACrB;AAhCD,8EAgCC;AAzBC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,4EAAkC,CAAC;KACjD,CAAC;IACD,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4EAAkC,CAAC;;gEACF;AAM7C;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,EAAE;KACZ,CAAC;;gEACa;AAMf;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,CAAC;KACX,CAAC;;+DACY;AAMd;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,EAAE;KACZ,CAAC;;gEACa;AAMf;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,CAAC;KACX,CAAC;;qEACkB"}
@@ -2,11 +2,12 @@ import type { AuthContext } from '../../auth/guards/context/auth-context.types';
2
2
  import { ActiveTaskExecutionResponseDto } from '../active/dto/http/active-task-execution-response.dto';
3
3
  import { ActiveTaskExecutionService } from '../active/active-task-execution.service';
4
4
  import { TaskExecutionQueueService } from './task-execution-queue.service';
5
- import { TaskExecutionQueueEntryResponseDto } from './dto/http/task-execution-queue-entry-response.dto';
5
+ import { TaskExecutionQueueListResponseDto } from './dto/http/task-execution-queue-list-response.dto';
6
+ import { ListQueueQueryDto } from './dto/http/list-queue-query.dto';
6
7
  export declare class TaskExecutionQueueController {
7
8
  private readonly taskExecutionQueueService;
8
9
  private readonly activeTaskExecutionService;
9
10
  constructor(taskExecutionQueueService: TaskExecutionQueueService, activeTaskExecutionService: ActiveTaskExecutionService);
10
- listQueue(): Promise<TaskExecutionQueueEntryResponseDto[]>;
11
+ listQueue(query: ListQueueQueryDto): Promise<TaskExecutionQueueListResponseDto>;
11
12
  claimTask(taskId: string, auth: AuthContext): Promise<ActiveTaskExecutionResponseDto>;
12
13
  }
@@ -27,6 +27,8 @@ const active_task_execution_service_1 = require("../active/active-task-execution
27
27
  const executions_errors_1 = require("../errors/executions.errors");
28
28
  const task_execution_queue_service_1 = require("./task-execution-queue.service");
29
29
  const task_execution_queue_entry_response_dto_1 = require("./dto/http/task-execution-queue-entry-response.dto");
30
+ const task_execution_queue_list_response_dto_1 = require("./dto/http/task-execution-queue-list-response.dto");
31
+ const list_queue_query_dto_1 = require("./dto/http/list-queue-query.dto");
30
32
  let TaskExecutionQueueController = class TaskExecutionQueueController {
31
33
  taskExecutionQueueService;
32
34
  activeTaskExecutionService;
@@ -34,9 +36,18 @@ let TaskExecutionQueueController = class TaskExecutionQueueController {
34
36
  this.taskExecutionQueueService = taskExecutionQueueService;
35
37
  this.activeTaskExecutionService = activeTaskExecutionService;
36
38
  }
37
- async listQueue() {
38
- const queue = await this.taskExecutionQueueService.listQueue();
39
- return queue.map((entry) => task_execution_queue_entry_response_dto_1.TaskExecutionQueueEntryResponseDto.fromEntity(entry));
39
+ async listQueue(query) {
40
+ const result = await this.taskExecutionQueueService.listQueue({
41
+ page: query.page ?? 1,
42
+ limit: query.limit ?? 50,
43
+ });
44
+ return {
45
+ items: result.items.map((item) => task_execution_queue_entry_response_dto_1.TaskExecutionQueueEntryResponseDto.fromEntity(item)),
46
+ total: result.total,
47
+ page: result.page,
48
+ limit: result.limit,
49
+ totalPages: Math.ceil(result.total / result.limit),
50
+ };
40
51
  }
41
52
  async claimTask(taskId, auth) {
42
53
  try {
@@ -65,12 +76,13 @@ __decorate([
65
76
  (0, common_1.Get)(),
66
77
  (0, swagger_1.ApiOperation)({
67
78
  summary: 'List the current task execution work queue',
68
- description: 'Returns the tasks currently present in the execution queue. ' +
79
+ description: 'Returns the tasks currently present in the execution queue with pagination. ' +
69
80
  'Presence means the task is ready to be picked by the executor.',
70
81
  }),
71
- (0, swagger_1.ApiOkResponse)({ type: [task_execution_queue_entry_response_dto_1.TaskExecutionQueueEntryResponseDto] }),
82
+ (0, swagger_1.ApiOkResponse)({ type: task_execution_queue_list_response_dto_1.TaskExecutionQueueListResponseDto }),
83
+ __param(0, (0, common_1.Query)()),
72
84
  __metadata("design:type", Function),
73
- __metadata("design:paramtypes", []),
85
+ __metadata("design:paramtypes", [list_queue_query_dto_1.ListQueueQueryDto]),
74
86
  __metadata("design:returntype", Promise)
75
87
  ], TaskExecutionQueueController.prototype, "listQueue", null);
76
88
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-queue.controller.js","sourceRoot":"","sources":["../../../src/executions/queue/task-execution-queue.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-execution-queue.controller.js","sourceRoot":"","sources":["../../../src/executions/queue/task-execution-queue.controller.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,13 @@ import { TaskExecutionQueueEntity } from './task-execution-queue.entity';
3
3
  export declare class TaskExecutionQueueService {
4
4
  private readonly taskExecutionQueueRepository;
5
5
  constructor(taskExecutionQueueRepository: Repository<TaskExecutionQueueEntity>);
6
- listQueue(): Promise<TaskExecutionQueueEntity[]>;
6
+ listQueue(options?: {
7
+ page?: number;
8
+ limit?: number;
9
+ }): Promise<{
10
+ items: TaskExecutionQueueEntity[];
11
+ total: number;
12
+ page: number;
13
+ limit: number;
14
+ }>;
7
15
  }
@@ -22,11 +22,17 @@ let TaskExecutionQueueService = class TaskExecutionQueueService {
22
22
  constructor(taskExecutionQueueRepository) {
23
23
  this.taskExecutionQueueRepository = taskExecutionQueueRepository;
24
24
  }
25
- async listQueue() {
26
- return this.taskExecutionQueueRepository.find({
25
+ async listQueue(options) {
26
+ const page = options?.page ?? 1;
27
+ const limit = options?.limit ?? 50;
28
+ const skip = (page - 1) * limit;
29
+ const [items, total] = await this.taskExecutionQueueRepository.findAndCount({
27
30
  relations: ['task'],
28
31
  order: { taskId: 'ASC' },
32
+ skip,
33
+ take: limit,
29
34
  });
35
+ return { items, total, page, limit };
30
36
  }
31
37
  };
32
38
  exports.TaskExecutionQueueService = TaskExecutionQueueService;
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-queue.service.js","sourceRoot":"","sources":["../../../src/executions/queue/task-execution-queue.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,+EAAyE;AAGlE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAGjB;IAFnB,YAEmB,4BAAkE;QAAlE,iCAA4B,GAA5B,4BAA4B,CAAsC;IAClF,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;YAC5C,SAAS,EAAE,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAZY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,sDAAwB,CAAC,CAAA;qCACI,oBAAU;GAHhD,yBAAyB,CAYrC"}
1
+ {"version":3,"file":"task-execution-queue.service.js","sourceRoot":"","sources":["../../../src/executions/queue/task-execution-queue.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,+EAAyE;AAGlE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAGjB;IAFnB,YAEmB,4BAAkE;QAAlE,iCAA4B,GAA5B,4BAA4B,CAAsC;IAClF,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,OAGf;QAMC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC;YAC1E,SAAS,EAAE,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACxB,IAAI;YACJ,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;CACF,CAAA;AA5BY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,sDAAwB,CAAC,CAAA;qCACI,oBAAU;GAHhD,yBAAyB,CA4BrC"}