@taico/taico 0.9.0 → 0.9.2

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 (44) hide show
  1. package/README.md +1 -1
  2. package/dist/app.module.js +2 -0
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/executions/errors/executions.errors.d.ts +3 -0
  5. package/dist/executions/errors/executions.errors.js +7 -1
  6. package/dist/executions/errors/executions.errors.js.map +1 -1
  7. package/dist/executions/history/task-execution-history.controller.d.ts +2 -0
  8. package/dist/executions/history/task-execution-history.controller.js +24 -0
  9. package/dist/executions/history/task-execution-history.controller.js.map +1 -1
  10. package/dist/executions/history/task-execution-history.service.d.ts +2 -1
  11. package/dist/executions/history/task-execution-history.service.js +11 -0
  12. package/dist/executions/history/task-execution-history.service.js.map +1 -1
  13. package/dist/executions/history/task-execution-history.service.spec.js +30 -0
  14. package/dist/executions/history/task-execution-history.service.spec.js.map +1 -1
  15. package/dist/executions/traces/dto/http/execution-traces-response.dto.d.ts +4 -2
  16. package/dist/executions/traces/dto/http/execution-traces-response.dto.js +15 -1
  17. package/dist/executions/traces/dto/http/execution-traces-response.dto.js.map +1 -1
  18. package/dist/executions/traces/execution-trace.entity.d.ts +3 -1
  19. package/dist/executions/traces/execution-trace.entity.js +6 -1
  20. package/dist/executions/traces/execution-trace.entity.js.map +1 -1
  21. package/dist/executions/traces/execution-traces.controller.js +1 -0
  22. package/dist/executions/traces/execution-traces.controller.js.map +1 -1
  23. package/dist/executions/traces/execution-traces.service.d.ts +1 -0
  24. package/dist/executions/traces/execution-traces.service.js +31 -16
  25. package/dist/executions/traces/execution-traces.service.js.map +1 -1
  26. package/dist/executions/traces/execution-traces.service.spec.js +22 -2
  27. package/dist/executions/traces/execution-traces.service.spec.js.map +1 -1
  28. package/dist/meta/meta.service.js +11 -0
  29. package/dist/meta/meta.service.js.map +1 -1
  30. package/dist/meta/meta.service.spec.js +24 -0
  31. package/dist/meta/meta.service.spec.js.map +1 -1
  32. package/dist/migrations/1762500000002-ExecutionTraceSource.d.ts +6 -0
  33. package/dist/migrations/1762500000002-ExecutionTraceSource.js +24 -0
  34. package/dist/migrations/1762500000002-ExecutionTraceSource.js.map +1 -0
  35. package/dist/tasks/dto/list-tasks-query.dto.d.ts +1 -0
  36. package/dist/tasks/dto/list-tasks-query.dto.js +12 -0
  37. package/dist/tasks/dto/list-tasks-query.dto.js.map +1 -1
  38. package/dist/tasks/dto/service/tasks.service.types.d.ts +1 -0
  39. package/dist/tasks/tasks.controller.js +1 -0
  40. package/dist/tasks/tasks.controller.js.map +1 -1
  41. package/dist/tasks/tasks.service.js +6 -0
  42. package/dist/tasks/tasks.service.js.map +1 -1
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +4 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Backend
2
2
 
3
- [![Socket Badge](https://badge.socket.dev/npm/package/@taico/taico/0.9.0)](https://badge.socket.dev/npm/package/@taico/taico/0.9.0)
3
+ [![Socket Badge](https://badge.socket.dev/npm/package/@taico/taico/0.9.2)](https://badge.socket.dev/npm/package/@taico/taico/0.9.2)
4
4
 
5
5
  NestJS backend for Taico.
6
6
 
@@ -58,6 +58,7 @@ const access_requests_module_1 = require("./access-requests/access-requests.modu
58
58
  const _1762300000000_AccessRequests_1 = require("./migrations/1762300000000-AccessRequests");
59
59
  const _1762400000000_AccessRequestHeardFrom_1 = require("./migrations/1762400000000-AccessRequestHeardFrom");
60
60
  const walkthrough_module_1 = require("./walkthrough/walkthrough.module");
61
+ const _1762500000002_ExecutionTraceSource_1 = require("./migrations/1762500000002-ExecutionTraceSource");
61
62
  const _1762500000001_ExecutionTraceJson_1 = require("./migrations/1762500000001-ExecutionTraceJson");
62
63
  const _1762500000000_ExecutionTraces_1 = require("./migrations/1762500000000-ExecutionTraces");
63
64
  const server_lifecycle_service_1 = require("./server-lifecycle.service");
@@ -102,6 +103,7 @@ exports.AppModule = AppModule = __decorate([
102
103
  _1762400000000_AccessRequestHeardFrom_1.AccessRequestHeardFrom1762400000000,
103
104
  _1762500000000_ExecutionTraces_1.ExecutionTraces1762500000000,
104
105
  _1762500000001_ExecutionTraceJson_1.ExecutionTraceJson1762500000001,
106
+ _1762500000002_ExecutionTraceSource_1.ExecutionTraceSource1762500000002,
105
107
  ],
106
108
  }),
107
109
  event_emitter_1.EventEmitterModule.forRoot(),
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,6CAAgD;AAChD,yDAA2D;AAC3D,+CAAkD;AAClD,uDAAmD;AACnD,6DAAyD;AACzD,4EAAuE;AACvE,oGAA+F;AAC/F,mEAA+D;AAC/D,+EAA0E;AAC1E,0DAAsD;AACtD,6DAAyD;AACzD,2FAAsF;AACtF,oDAAgD;AAChD,sEAAiE;AACjE,oDAA4E;AAC5E,gEAA2D;AAC3D,qFAAgF;AAChF,iGAA4F;AAC5F,uGAAkG;AAClG,+GAA0G;AAC1G,6GAAwG;AACxG,mHAA8G;AAC9G,yGAAoG;AACpG,yHAAoH;AACpH,6GAAwG;AACxG,+FAA0F;AAC1F,+GAA0G;AAC1G,iIAA4H;AAC5H,uFAAkF;AAClF,yFAAoF;AACpF,iGAA4F;AAC5F,qGAAgG;AAChG,2GAAsG;AACtG,iHAA4G;AAC5G,yFAAoF;AACpF,+FAA0F;AAC1F,qFAAgF;AAChF,2GAAsG;AACtG,iGAA4F;AAC5F,6DAAyD;AACzD,4EAAuE;AACvE,sEAAkE;AAClE,+EAA0E;AAC1E,6DAAyD;AACzD,qFAAgF;AAChF,6FAAwF;AACxF,6GAAwG;AACxG,yEAAqE;AACrE,qGAAgG;AAChG,+FAA0F;AAC1F,yEAAoE;AAmE7D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAI,CAAA;AAAb,8BAAS;oBAAT,SAAS;IAjErB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,OAAO,CAAC;gBACpB,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,IAAA,sBAAS,GAAE,CAAC,WAAW;gBAC5B,aAAa,EAAE,UAAU;gBACzB,GAAG,EAAE,IAAA,sBAAS,GAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK;gBACnE,QAAQ,EAAE,CAAC,SAAS,GAAG,uBAAuB,CAAC;gBAC/C,WAAW,EAAE,IAAA,uCAA0B,GAAE;gBACzC,aAAa,EAAE,CAAC,IAAA,uCAA0B,GAAE;gBAC5C,UAAU,EAAE;oBACV,+DAA6B;oBAC7B,qEAAgC;oBAChC,6EAAoC;oBACpC,2EAAmC;oBACnC,iFAAsC;oBACtC,uEAAiC;oBACjC,uFAAyC;oBACzC,2EAAmC;oBACnC,6DAA4B;oBAC5B,6EAAoC;oBACpC,+FAA6C;oBAC7C,qDAAwB;oBACxB,uDAAyB;oBACzB,+DAA6B;oBAC7B,mEAA+B;oBAC/B,yEAAkC;oBAClC,+EAAqC;oBACrC,uDAAyB;oBACzB,6DAA4B;oBAC5B,mDAAuB;oBACvB,yEAAkC;oBAClC,+DAA6B;oBAC7B,2DAA2B;oBAC3B,2EAAmC;oBACnC,6DAA4B;oBAC5B,mEAA+B;iBAChC;aACF,CAAC;YACF,kCAAkB,CAAC,OAAO,EAAE;YAC5B,yBAAc,CAAC,OAAO,EAAE;YACxB,wBAAU;YACV,0BAAW;YACX,6CAAoB;YACpB,8BAAa;YACb,uCAAiB;YACjB,yCAAkB;YAClB,uDAAyB;YACzB,kCAAe;YACf,4BAAY;YACZ,mCAAe;YACf,8BAAa;YACb,iDAAsB;YACtB,+BAAa;YACb,8BAAa;YACb,uCAAiB;YACjB,oCAAgB;YAChB,8BAAa;YACb,yCAAkB;YAClB,sCAAiB;YACjB,6CAAoB;SACrB;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,EAAE,iDAAsB,CAAC;KAChD,CAAC;GACW,SAAS,CAAI"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,6CAAgD;AAChD,yDAA2D;AAC3D,+CAAkD;AAClD,uDAAmD;AACnD,6DAAyD;AACzD,4EAAuE;AACvE,oGAA+F;AAC/F,mEAA+D;AAC/D,+EAA0E;AAC1E,0DAAsD;AACtD,6DAAyD;AACzD,2FAAsF;AACtF,oDAAgD;AAChD,sEAAiE;AACjE,oDAA4E;AAC5E,gEAA2D;AAC3D,qFAAgF;AAChF,iGAA4F;AAC5F,uGAAkG;AAClG,+GAA0G;AAC1G,6GAAwG;AACxG,mHAA8G;AAC9G,yGAAoG;AACpG,yHAAoH;AACpH,6GAAwG;AACxG,+FAA0F;AAC1F,+GAA0G;AAC1G,iIAA4H;AAC5H,uFAAkF;AAClF,yFAAoF;AACpF,iGAA4F;AAC5F,qGAAgG;AAChG,2GAAsG;AACtG,iHAA4G;AAC5G,yFAAoF;AACpF,+FAA0F;AAC1F,qFAAgF;AAChF,2GAAsG;AACtG,iGAA4F;AAC5F,6DAAyD;AACzD,4EAAuE;AACvE,sEAAkE;AAClE,+EAA0E;AAC1E,6DAAyD;AACzD,qFAAgF;AAChF,6FAAwF;AACxF,6GAAwG;AACxG,yEAAqE;AACrE,yGAAoG;AACpG,qGAAgG;AAChG,+FAA0F;AAC1F,yEAAoE;AAoE7D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAI,CAAA;AAAb,8BAAS;oBAAT,SAAS;IAlErB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,OAAO,CAAC;gBACpB,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,IAAA,sBAAS,GAAE,CAAC,WAAW;gBAC5B,aAAa,EAAE,UAAU;gBACzB,GAAG,EAAE,IAAA,sBAAS,GAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK;gBACnE,QAAQ,EAAE,CAAC,SAAS,GAAG,uBAAuB,CAAC;gBAC/C,WAAW,EAAE,IAAA,uCAA0B,GAAE;gBACzC,aAAa,EAAE,CAAC,IAAA,uCAA0B,GAAE;gBAC5C,UAAU,EAAE;oBACV,+DAA6B;oBAC7B,qEAAgC;oBAChC,6EAAoC;oBACpC,2EAAmC;oBACnC,iFAAsC;oBACtC,uEAAiC;oBACjC,uFAAyC;oBACzC,2EAAmC;oBACnC,6DAA4B;oBAC5B,6EAAoC;oBACpC,+FAA6C;oBAC7C,qDAAwB;oBACxB,uDAAyB;oBACzB,+DAA6B;oBAC7B,mEAA+B;oBAC/B,yEAAkC;oBAClC,+EAAqC;oBACrC,uDAAyB;oBACzB,6DAA4B;oBAC5B,mDAAuB;oBACvB,yEAAkC;oBAClC,+DAA6B;oBAC7B,2DAA2B;oBAC3B,2EAAmC;oBACnC,6DAA4B;oBAC5B,mEAA+B;oBAC/B,uEAAiC;iBAClC;aACF,CAAC;YACF,kCAAkB,CAAC,OAAO,EAAE;YAC5B,yBAAc,CAAC,OAAO,EAAE;YACxB,wBAAU;YACV,0BAAW;YACX,6CAAoB;YACpB,8BAAa;YACb,uCAAiB;YACjB,yCAAkB;YAClB,uDAAyB;YACzB,kCAAe;YACf,4BAAY;YACZ,mCAAe;YACf,8BAAa;YACb,iDAAsB;YACtB,+BAAa;YACb,8BAAa;YACb,uCAAiB;YACjB,oCAAgB;YAChB,8BAAa;YACb,yCAAkB;YAClB,sCAAiB;YACjB,6CAAoB;SACrB;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,EAAE,iDAAsB,CAAC;KAChD,CAAC;GACW,SAAS,CAAI"}
@@ -11,6 +11,9 @@ export declare class TaskAlreadyClaimedError extends ExecutionsError {
11
11
  export declare class ActiveTaskExecutionNotFoundError extends ExecutionsError {
12
12
  constructor(executionId: string);
13
13
  }
14
+ export declare class TaskExecutionHistoryEntryNotFoundError extends ExecutionsError {
15
+ constructor(executionId: string);
16
+ }
14
17
  export declare class ActiveTaskExecutionWorkerMismatchError extends ExecutionsError {
15
18
  constructor(executionId: string);
16
19
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExecutionStatsNotFoundError = exports.ActiveTaskExecutionWorkerMismatchError = exports.ActiveTaskExecutionNotFoundError = exports.TaskAlreadyClaimedError = exports.TaskExecutionQueueEntryNotFoundError = exports.ExecutionsError = void 0;
3
+ exports.ExecutionStatsNotFoundError = exports.ActiveTaskExecutionWorkerMismatchError = exports.TaskExecutionHistoryEntryNotFoundError = exports.ActiveTaskExecutionNotFoundError = exports.TaskAlreadyClaimedError = exports.TaskExecutionQueueEntryNotFoundError = exports.ExecutionsError = void 0;
4
4
  class ExecutionsError extends Error {
5
5
  context;
6
6
  constructor(message, context) {
@@ -28,6 +28,12 @@ class ActiveTaskExecutionNotFoundError extends ExecutionsError {
28
28
  }
29
29
  }
30
30
  exports.ActiveTaskExecutionNotFoundError = ActiveTaskExecutionNotFoundError;
31
+ class TaskExecutionHistoryEntryNotFoundError extends ExecutionsError {
32
+ constructor(executionId) {
33
+ super('Finished execution was not found.', { executionId });
34
+ }
35
+ }
36
+ exports.TaskExecutionHistoryEntryNotFoundError = TaskExecutionHistoryEntryNotFoundError;
31
37
  class ActiveTaskExecutionWorkerMismatchError extends ExecutionsError {
32
38
  constructor(executionId) {
33
39
  super('Active execution is claimed by a different worker.', { executionId });
@@ -1 +1 @@
1
- {"version":3,"file":"executions.errors.js","sourceRoot":"","sources":["../../../src/executions/errors/executions.errors.ts"],"names":[],"mappings":";;;AAAA,MAAsB,eAAgB,SAAQ,KAAK;IACX;IAAtC,YAAY,OAAe,EAAW,OAAiC;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,YAAO,GAAP,OAAO,CAA0B;QAErE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AALD,0CAKC;AAED,MAAa,oCAAqC,SAAQ,eAAe;IACvE,YAAY,MAAc;QACxB,KAAK,CAAC,6CAA6C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AAJD,oFAIC;AAED,MAAa,uBAAwB,SAAQ,eAAe;IAC1D,YAAY,MAAc;QACxB,KAAK,CAAC,uCAAuC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAJD,0DAIC;AAED,MAAa,gCAAiC,SAAQ,eAAe;IACnE,YAAY,WAAmB;QAC7B,KAAK,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAJD,4EAIC;AAED,MAAa,sCAAuC,SAAQ,eAAe;IACzE,YAAY,WAAmB;QAC7B,KAAK,CAAC,oDAAoD,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF;AAJD,wFAIC;AAED,MAAa,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,WAAmB;QAC7B,KAAK,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAJD,kEAIC"}
1
+ {"version":3,"file":"executions.errors.js","sourceRoot":"","sources":["../../../src/executions/errors/executions.errors.ts"],"names":[],"mappings":";;;AAAA,MAAsB,eAAgB,SAAQ,KAAK;IACX;IAAtC,YAAY,OAAe,EAAW,OAAiC;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,YAAO,GAAP,OAAO,CAA0B;QAErE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AALD,0CAKC;AAED,MAAa,oCAAqC,SAAQ,eAAe;IACvE,YAAY,MAAc;QACxB,KAAK,CAAC,6CAA6C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AAJD,oFAIC;AAED,MAAa,uBAAwB,SAAQ,eAAe;IAC1D,YAAY,MAAc;QACxB,KAAK,CAAC,uCAAuC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAJD,0DAIC;AAED,MAAa,gCAAiC,SAAQ,eAAe;IACnE,YAAY,WAAmB;QAC7B,KAAK,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAJD,4EAIC;AAED,MAAa,sCAAuC,SAAQ,eAAe;IACzE,YAAY,WAAmB;QAC7B,KAAK,CAAC,mCAAmC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AAJD,wFAIC;AAED,MAAa,sCAAuC,SAAQ,eAAe;IACzE,YAAY,WAAmB;QAC7B,KAAK,CAAC,oDAAoD,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF;AAJD,wFAIC;AAED,MAAa,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,WAAmB;QAC7B,KAAK,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAJD,kEAIC"}
@@ -1,8 +1,10 @@
1
1
  import { TaskExecutionHistoryService } from './task-execution-history.service';
2
+ import { TaskExecutionHistoryResponseDto } from './dto/http/task-execution-history-response.dto';
2
3
  import { TaskExecutionHistoryListResponseDto } from './dto/http/task-execution-history-list-response.dto';
3
4
  import { ListHistoryQueryDto } from './dto/http/list-history-query.dto';
4
5
  export declare class TaskExecutionHistoryController {
5
6
  private readonly taskExecutionHistoryService;
6
7
  constructor(taskExecutionHistoryService: TaskExecutionHistoryService);
7
8
  listHistory(query: ListHistoryQueryDto): Promise<TaskExecutionHistoryListResponseDto>;
9
+ getHistoryEntry(id: string): Promise<TaskExecutionHistoryResponseDto>;
8
10
  }
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TaskExecutionHistoryController = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const swagger_1 = require("@nestjs/swagger");
18
+ const executions_errors_1 = require("../errors/executions.errors");
18
19
  const access_token_guard_1 = require("../../auth/guards/guards/access-token.guard");
19
20
  const scopes_guard_1 = require("../../auth/guards/guards/scopes.guard");
20
21
  const require_scopes_decorator_1 = require("../../auth/guards/decorators/require-scopes.decorator");
@@ -42,6 +43,16 @@ let TaskExecutionHistoryController = class TaskExecutionHistoryController {
42
43
  totalPages: Math.ceil(result.total / result.limit),
43
44
  };
44
45
  }
46
+ async getHistoryEntry(id) {
47
+ try {
48
+ return task_execution_history_response_dto_1.TaskExecutionHistoryResponseDto.fromResult(await this.taskExecutionHistoryService.getHistoryEntry(id));
49
+ }
50
+ catch (error) {
51
+ if (error instanceof executions_errors_1.TaskExecutionHistoryEntryNotFoundError)
52
+ throw new common_1.NotFoundException(error.message);
53
+ throw error;
54
+ }
55
+ }
45
56
  };
46
57
  exports.TaskExecutionHistoryController = TaskExecutionHistoryController;
47
58
  __decorate([
@@ -56,6 +67,19 @@ __decorate([
56
67
  __metadata("design:paramtypes", [list_history_query_dto_1.ListHistoryQueryDto]),
57
68
  __metadata("design:returntype", Promise)
58
69
  ], TaskExecutionHistoryController.prototype, "listHistory", null);
70
+ __decorate([
71
+ (0, common_1.Get)(':id'),
72
+ (0, swagger_1.ApiOperation)({
73
+ summary: 'Get one finished execution',
74
+ description: 'Returns a single execution history row by id, including runs older than the latest page of history.',
75
+ }),
76
+ (0, swagger_1.ApiOkResponse)({ type: task_execution_history_response_dto_1.TaskExecutionHistoryResponseDto }),
77
+ (0, swagger_1.ApiNotFoundResponse)({ description: 'Execution not found' }),
78
+ __param(0, (0, common_1.Param)('id', new common_1.ParseUUIDPipe())),
79
+ __metadata("design:type", Function),
80
+ __metadata("design:paramtypes", [String]),
81
+ __metadata("design:returntype", Promise)
82
+ ], TaskExecutionHistoryController.prototype, "getHistoryEntry", null);
59
83
  exports.TaskExecutionHistoryController = TaskExecutionHistoryController = __decorate([
60
84
  (0, swagger_1.ApiTags)('Executions'),
61
85
  (0, swagger_1.ApiCookieAuth)('JWT-Cookie'),
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"task-execution-history.controller.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6CAMyB;AACzB,mEAAqF;AACrF,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;IAUK,AAAN,KAAK,CAAC,eAAe,CACe,EAAU;QAE5C,IAAI,CAAC;YACH,OAAO,qEAA+B,CAAC,UAAU,CAC/C,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,EAAE,CAAC,CAC3D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,0DAAsC;gBACzD,MAAM,IAAI,0BAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AArDY,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;AAUK;IARL,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,4BAA4B;QACrC,WAAW,EACT,qGAAqG;KACxG,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,qEAA+B,EAAE,CAAC;IACxD,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAEzD,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,IAAI,sBAAa,EAAE,CAAC,CAAA;;;;qEAWlC;yCApDU,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,CAqD1C"}
@@ -1,6 +1,6 @@
1
1
  import { Repository } from 'typeorm';
2
2
  import { TaskExecutionHistoryEntity } from './task-execution-history.entity';
3
- import { TaskExecutionHistoryListResult } from '../dto/service/execution-results.service.types';
3
+ import { TaskExecutionHistoryListResult, TaskExecutionHistoryResult } from '../dto/service/execution-results.service.types';
4
4
  export declare class TaskExecutionHistoryService {
5
5
  private readonly taskExecutionHistoryRepository;
6
6
  constructor(taskExecutionHistoryRepository: Repository<TaskExecutionHistoryEntity>);
@@ -9,6 +9,7 @@ export declare class TaskExecutionHistoryService {
9
9
  limit?: number;
10
10
  taskId?: string;
11
11
  }): Promise<TaskExecutionHistoryListResult>;
12
+ getHistoryEntry(id: string): Promise<TaskExecutionHistoryResult>;
12
13
  getLatestHistoryForTask(taskId: string): Promise<TaskExecutionHistoryEntity | null>;
13
14
  countConsecutiveQuotaErrors(taskId: string): Promise<number>;
14
15
  private mapHistoryEntryToResult;
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
18
  const typeorm_2 = require("typeorm");
19
19
  const task_execution_history_entity_1 = require("./task-execution-history.entity");
20
+ const executions_errors_1 = require("../errors/executions.errors");
20
21
  let TaskExecutionHistoryService = class TaskExecutionHistoryService {
21
22
  taskExecutionHistoryRepository;
22
23
  constructor(taskExecutionHistoryRepository) {
@@ -41,6 +42,16 @@ let TaskExecutionHistoryService = class TaskExecutionHistoryService {
41
42
  limit,
42
43
  };
43
44
  }
45
+ async getHistoryEntry(id) {
46
+ const entry = await this.taskExecutionHistoryRepository.findOne({
47
+ where: { id },
48
+ relations: ['task', 'stats'],
49
+ });
50
+ if (!entry) {
51
+ throw new executions_errors_1.TaskExecutionHistoryEntryNotFoundError(id);
52
+ }
53
+ return this.mapHistoryEntryToResult(entry);
54
+ }
44
55
  async getLatestHistoryForTask(taskId) {
45
56
  return this.taskExecutionHistoryRepository.findOne({
46
57
  where: { taskId },
@@ -1 +1 @@
1
- {"version":3,"file":"task-execution-history.service.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-execution-history.service.js","sourceRoot":"","sources":["../../../src/executions/history/task-execution-history.service.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const task_execution_history_service_1 = require("./task-execution-history.servi
6
6
  const task_execution_history_entity_1 = require("./task-execution-history.entity");
7
7
  const task_execution_history_status_enum_1 = require("./task-execution-history-status.enum");
8
8
  const task_execution_history_error_code_enum_1 = require("./task-execution-history-error-code.enum");
9
+ const executions_errors_1 = require("../errors/executions.errors");
9
10
  describe('TaskExecutionHistoryService', () => {
10
11
  let service;
11
12
  let repository;
@@ -25,6 +26,35 @@ describe('TaskExecutionHistoryService', () => {
25
26
  service = module.get(task_execution_history_service_1.TaskExecutionHistoryService);
26
27
  repository = module.get((0, typeorm_1.getRepositoryToken)(task_execution_history_entity_1.TaskExecutionHistoryEntity));
27
28
  });
29
+ describe('getHistoryEntry', () => {
30
+ it('returns one finished run by id, with its task', async () => {
31
+ repository.findOne.mockResolvedValue({
32
+ id: 'run-1',
33
+ taskId: 'task-1',
34
+ task: { name: 'Rate limit the /export endpoint' },
35
+ status: task_execution_history_status_enum_1.TaskExecutionHistoryStatus.SUCCEEDED,
36
+ claimedAt: new Date('2026-10-27T08:00:00Z'),
37
+ transitionedAt: new Date('2026-10-27T08:04:00Z'),
38
+ agentActorId: 'agent-1',
39
+ workerClientId: 'worker-1',
40
+ runnerSessionId: null,
41
+ toolCallCount: 3,
42
+ errorCode: null,
43
+ errorMessage: null,
44
+ stats: null,
45
+ });
46
+ const result = await service.getHistoryEntry('run-1');
47
+ expect(repository.findOne).toHaveBeenCalledWith({
48
+ where: { id: 'run-1' },
49
+ relations: ['task', 'stats'],
50
+ });
51
+ expect(result).toMatchObject({ id: 'run-1', taskId: 'task-1', taskName: 'Rate limit the /export endpoint', toolCallCount: 3 });
52
+ });
53
+ it('throws when the run does not exist', async () => {
54
+ repository.findOne.mockResolvedValue(null);
55
+ await expect(service.getHistoryEntry('missing')).rejects.toBeInstanceOf(executions_errors_1.TaskExecutionHistoryEntryNotFoundError);
56
+ });
57
+ });
28
58
  describe('getLatestHistoryForTask', () => {
29
59
  it('should return the latest history entry for a task', async () => {
30
60
  const taskId = 'test-task-id';
@@ -1 +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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"}
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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"}
@@ -1,9 +1,10 @@
1
- import type { HarnessJson } from '@taico/events';
1
+ import type { HarnessJson, ExecutionTraceSource } from '@taico/events';
2
2
  import { ExecutionTraceEntity } from '../../execution-trace.entity';
3
3
  export declare class ExecutionTraceResponseDto {
4
4
  executionId: string;
5
5
  sequence: number;
6
- harness: string;
6
+ source: ExecutionTraceSource;
7
+ harness: string | null;
7
8
  runnerSessionId: string | null;
8
9
  emittedAt: string;
9
10
  receivedAt: string;
@@ -12,6 +13,7 @@ export declare class ExecutionTraceResponseDto {
12
13
  }
13
14
  export declare class ExecutionTracesResponseDto {
14
15
  items: ExecutionTraceResponseDto[];
16
+ lifecycle: ExecutionTraceResponseDto[];
15
17
  hasMoreBefore: boolean;
16
18
  nextAfterSequence: number;
17
19
  }
@@ -14,6 +14,7 @@ const swagger_1 = require("@nestjs/swagger");
14
14
  class ExecutionTraceResponseDto {
15
15
  executionId;
16
16
  sequence;
17
+ source;
17
18
  harness;
18
19
  runnerSessionId;
19
20
  emittedAt;
@@ -23,6 +24,7 @@ class ExecutionTraceResponseDto {
23
24
  return {
24
25
  executionId: event.executionId,
25
26
  sequence: event.sequence,
27
+ source: event.source,
26
28
  harness: event.harness,
27
29
  runnerSessionId: event.runnerSessionId,
28
30
  emittedAt: event.emittedAt.toISOString(),
@@ -41,8 +43,12 @@ __decorate([
41
43
  __metadata("design:type", Number)
42
44
  ], ExecutionTraceResponseDto.prototype, "sequence", void 0);
43
45
  __decorate([
44
- (0, swagger_1.ApiProperty)(),
46
+ (0, swagger_1.ApiProperty)({ enum: ['worker', 'harness'] }),
45
47
  __metadata("design:type", String)
48
+ ], ExecutionTraceResponseDto.prototype, "source", void 0);
49
+ __decorate([
50
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
51
+ __metadata("design:type", Object)
46
52
  ], ExecutionTraceResponseDto.prototype, "harness", void 0);
47
53
  __decorate([
48
54
  (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
@@ -67,6 +73,7 @@ __decorate([
67
73
  ], ExecutionTraceResponseDto.prototype, "payload", void 0);
68
74
  class ExecutionTracesResponseDto {
69
75
  items;
76
+ lifecycle;
70
77
  hasMoreBefore;
71
78
  nextAfterSequence;
72
79
  }
@@ -75,6 +82,13 @@ __decorate([
75
82
  (0, swagger_1.ApiProperty)({ type: [ExecutionTraceResponseDto] }),
76
83
  __metadata("design:type", Array)
77
84
  ], ExecutionTracesResponseDto.prototype, "items", void 0);
85
+ __decorate([
86
+ (0, swagger_1.ApiProperty)({
87
+ type: [ExecutionTraceResponseDto],
88
+ description: 'Worker lifecycle records across the entire execution, independent of the raw-event page',
89
+ }),
90
+ __metadata("design:type", Array)
91
+ ], ExecutionTracesResponseDto.prototype, "lifecycle", void 0);
78
92
  __decorate([
79
93
  (0, swagger_1.ApiProperty)(),
80
94
  __metadata("design:type", Boolean)
@@ -1 +1 @@
1
- {"version":3,"file":"execution-traces-response.dto.js","sourceRoot":"","sources":["../../../../../src/executions/traces/dto/http/execution-traces-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAI9C,MAAa,yBAAyB;IACrB,WAAW,CAAU;IACrB,QAAQ,CAAU;IAClB,OAAO,CAAU;IACe,eAAe,CAErD;IAC6B,SAAS,CAAU;IACnB,UAAU,CAAU;IAO1D,OAAO,CAAe;IAEtB,MAAM,CAAC,UAAU,CAAC,KAA2B;QAC3C,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE;YAC1C,OAAO,EAAE,KAAK,CAAC,OAAsB;SACtC,CAAC;IACJ,CAAC;CACF;AA5BD,8DA4BC;AA3BgB;IAAd,IAAA,qBAAW,GAAE;;8DAAsB;AACrB;IAAd,IAAA,qBAAW,GAAE;;2DAAmB;AAClB;IAAd,IAAA,qBAAW,GAAE;;0DAAkB;AACe;IAA9C,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEAErC;AAC6B;IAArC,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;4DAAoB;AACnB;IAArC,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;6DAAqB;AAO1D;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,IAAI;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC;;0DACoB;AAexB,MAAa,0BAA0B;IAErC,KAAK,CAA+B;IAEpC,aAAa,CAAW;IACT,iBAAiB,CAAU;CAC3C;AAND,gEAMC;AAJC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;;yDACf;AAEpC;IADC,IAAA,qBAAW,GAAE;;iEACU;AACT;IAAd,IAAA,qBAAW,GAAE;;qEAA4B"}
1
+ {"version":3,"file":"execution-traces-response.dto.js","sourceRoot":"","sources":["../../../../../src/executions/traces/dto/http/execution-traces-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAI9C,MAAa,yBAAyB;IACrB,WAAW,CAAU;IACrB,QAAQ,CAAU;IACa,MAAM,CAAwB;IAC7B,OAAO,CAAiB;IACxB,eAAe,CAErD;IAC6B,SAAS,CAAU;IACnB,UAAU,CAAU;IAO1D,OAAO,CAAe;IAEtB,MAAM,CAAC,UAAU,CAAC,KAA2B;QAC3C,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE;YAC1C,OAAO,EAAE,KAAK,CAAC,OAAsB;SACtC,CAAC;IACJ,CAAC;CACF;AA9BD,8DA8BC;AA7BgB;IAAd,IAAA,qBAAW,GAAE;;8DAAsB;AACrB;IAAd,IAAA,qBAAW,GAAE;;2DAAmB;AACa;IAA7C,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;;yDAA+B;AAC7B;IAA9C,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DAAyB;AACxB;IAA9C,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEAErC;AAC6B;IAArC,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;4DAAoB;AACnB;IAArC,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;6DAAqB;AAO1D;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,IAAI;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC;;0DACoB;AAgBxB,MAAa,0BAA0B;IAErC,KAAK,CAA+B;IAMpC,SAAS,CAA+B;IAExC,aAAa,CAAW;IACT,iBAAiB,CAAU;CAC3C;AAZD,gEAYC;AAVC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;;yDACf;AAMpC;IALC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,yBAAyB,CAAC;QACjC,WAAW,EACT,yFAAyF;KAC5F,CAAC;;6DACsC;AAExC;IADC,IAAA,qBAAW,GAAE;;iEACU;AACT;IAAd,IAAA,qBAAW,GAAE;;qEAA4B"}
@@ -1,7 +1,9 @@
1
+ import type { ExecutionTraceSource } from '@taico/events';
1
2
  export declare class ExecutionTraceEntity {
2
3
  executionId: string;
3
4
  sequence: number;
4
- harness: string;
5
+ source: ExecutionTraceSource;
6
+ harness: string | null;
5
7
  runnerSessionId: string | null;
6
8
  emittedAt: Date;
7
9
  payload: unknown;
@@ -14,6 +14,7 @@ const typeorm_1 = require("typeorm");
14
14
  let ExecutionTraceEntity = class ExecutionTraceEntity {
15
15
  executionId;
16
16
  sequence;
17
+ source;
17
18
  harness;
18
19
  runnerSessionId;
19
20
  emittedAt;
@@ -30,8 +31,12 @@ __decorate([
30
31
  __metadata("design:type", Number)
31
32
  ], ExecutionTraceEntity.prototype, "sequence", void 0);
32
33
  __decorate([
33
- (0, typeorm_1.Column)({ type: 'text' }),
34
+ (0, typeorm_1.Column)({ type: 'text', default: 'harness' }),
34
35
  __metadata("design:type", String)
36
+ ], ExecutionTraceEntity.prototype, "source", void 0);
37
+ __decorate([
38
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
39
+ __metadata("design:type", Object)
35
40
  ], ExecutionTraceEntity.prototype, "harness", void 0);
36
41
  __decorate([
37
42
  (0, typeorm_1.Column)({ type: 'text', name: 'runner_session_id', nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"execution-trace.entity.js","sourceRoot":"","sources":["../../../src/executions/traces/execution-trace.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA0E;AAGnE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAI/B,WAAW,CAAU;IAGrB,QAAQ,CAAU;IAGlB,OAAO,CAAU;IAGjB,eAAe,CAAiB;IAGhC,SAAS,CAAQ;IAGjB,OAAO,CAAW;IAGlB,UAAU,CAAQ;CACnB,CAAA;AAvBY,oDAAoB;AAI/B;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;yDACjC;AAGrB;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;sDACjB;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACR;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACpC;AAGhC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACxC,IAAI;uDAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACP;AAGlB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAClD,IAAI;wDAAC;+BAtBP,oBAAoB;IADhC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;GACxB,oBAAoB,CAuBhC"}
1
+ {"version":3,"file":"execution-trace.entity.js","sourceRoot":"","sources":["../../../src/executions/traces/execution-trace.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAA0E;AAGnE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAI/B,WAAW,CAAU;IAGrB,QAAQ,CAAU;IAGlB,MAAM,CAAwB;IAG9B,OAAO,CAAiB;IAGxB,eAAe,CAAiB;IAGhC,SAAS,CAAQ;IAGjB,OAAO,CAAW;IAGlB,UAAU,CAAQ;CACnB,CAAA;AA1BY,oDAAoB;AAI/B;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;yDACjC;AAGrB;IADC,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;sDACjB;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;oDACf;AAG9B;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,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACpC;AAGhC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BACxC,IAAI;uDAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACP;AAGlB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAClD,IAAI;wDAAC;+BAzBP,oBAAoB;IADhC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;GACxB,oBAAoB,CA0BhC"}
@@ -33,6 +33,7 @@ let ExecutionTracesController = class ExecutionTracesController {
33
33
  const result = await this.traces.list(executionId, query.afterSequence, query.limit, { latest: query.latest, beforeSequence: query.beforeSequence });
34
34
  return {
35
35
  items: result.items.map(execution_traces_response_dto_1.ExecutionTraceResponseDto.fromEntity),
36
+ lifecycle: result.lifecycle.map(execution_traces_response_dto_1.ExecutionTraceResponseDto.fromEntity),
36
37
  nextAfterSequence: result.nextAfterSequence,
37
38
  hasMoreBefore: result.hasMoreBefore,
38
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"execution-traces.controller.js","sourceRoot":"","sources":["../../../src/executions/traces/execution-traces.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6CAKyB;AACzB,oFAA+E;AAC/E,wEAAoE;AACpE,oGAAsF;AACtF,2DAAuD;AACvD,yEAAoE;AACpE,uEAAwE;AACxE,gGAAyF;AACzF,4FAGkD;AAO3C,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACP;IAA7B,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAOzD,AAAN,KAAK,CAAC,IAAI,CAC6B,WAAmB,EAC/C,KAAkC;QAE3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACnC,WAAW,EACX,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,KAAK,EACX,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAC/D,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyB,CAAC,UAAU,CAAC;gBAC7D,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qDAA2B;gBAC9C,MAAM,IAAI,0BAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA9BY,8DAAyB;AAQ9B;IALL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,+DAA+D;KACzE,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,0DAA0B,EAAE,CAAC;IAEjD,WAAA,IAAA,cAAK,EAAC,aAAa,EAAE,sBAAa,CAAC,CAAA;IACnC,WAAA,IAAA,cAAK,GAAE,CAAA;;6CAAQ,6DAA2B;;qDAmB5C;oCA7BU,yBAAyB;IALrC,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,uBAAa,EAAC,YAAY,CAAC;IAC3B,IAAA,mBAAU,EAAC,gCAAgC,CAAC;IAC5C,IAAA,kBAAS,EAAC,qCAAgB,EAAE,0BAAW,CAAC;IACxC,IAAA,wCAAa,EAAC,0BAAW,CAAC,IAAI,CAAC,EAAE,CAAC;qCAEI,iDAAsB;GADhD,yBAAyB,CA8BrC"}
1
+ {"version":3,"file":"execution-traces.controller.js","sourceRoot":"","sources":["../../../src/executions/traces/execution-traces.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6CAKyB;AACzB,oFAA+E;AAC/E,wEAAoE;AACpE,oGAAsF;AACtF,2DAAuD;AACvD,yEAAoE;AACpE,uEAAwE;AACxE,gGAAyF;AACzF,4FAGkD;AAO3C,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACP;IAA7B,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAOzD,AAAN,KAAK,CAAC,IAAI,CAC6B,WAAmB,EAC/C,KAAkC;QAE3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACnC,WAAW,EACX,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,KAAK,EACX,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAC/D,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyB,CAAC,UAAU,CAAC;gBAC7D,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,yDAAyB,CAAC,UAAU,CAAC;gBACrE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qDAA2B;gBAC9C,MAAM,IAAI,0BAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA/BY,8DAAyB;AAQ9B;IALL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,+DAA+D;KACzE,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,0DAA0B,EAAE,CAAC;IAEjD,WAAA,IAAA,cAAK,EAAC,aAAa,EAAE,sBAAa,CAAC,CAAA;IACnC,WAAA,IAAA,cAAK,GAAE,CAAA;;6CAAQ,6DAA2B;;qDAoB5C;oCA9BU,yBAAyB;IALrC,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,uBAAa,EAAC,YAAY,CAAC;IAC3B,IAAA,mBAAU,EAAC,gCAAgC,CAAC;IAC5C,IAAA,kBAAS,EAAC,qCAAgB,EAAE,0BAAW,CAAC;IACxC,IAAA,wCAAa,EAAC,0BAAW,CAAC,IAAI,CAAC,EAAE,CAAC;qCAEI,iDAAsB;GADhD,yBAAyB,CA+BrC"}
@@ -12,6 +12,7 @@ export declare class ExecutionTracesService {
12
12
  beforeSequence?: number;
13
13
  }): Promise<{
14
14
  items: ExecutionTraceEntity[];
15
+ lifecycle: ExecutionTraceEntity[];
15
16
  nextAfterSequence: number;
16
17
  hasMoreBefore: boolean;
17
18
  }>;
@@ -35,13 +35,17 @@ let ExecutionTracesService = class ExecutionTracesService {
35
35
  if (!workerClientId || execution.workerClientId !== workerClientId) {
36
36
  throw new execution_traces_errors_1.ExecutionTraceWorkerMismatchError(input.executionId);
37
37
  }
38
- const parameters = [input.executionId, input.harness];
38
+ const parameters = [
39
+ input.executionId,
40
+ input.harness,
41
+ input.source ?? 'harness',
42
+ ];
39
43
  const rows = input.events.map((event) => {
40
44
  const offset = parameters.length;
41
45
  parameters.push(event.sequence, event.emittedAt, event.runnerSessionId, JSON.stringify(event.payload));
42
- return `($1::uuid, $2, $${offset + 1}::integer, $${offset + 2}::timestamptz, $${offset + 3}, $${offset + 4}::json)`;
46
+ return `($1::uuid, $2, $3, $${offset + 1}::integer, $${offset + 2}::timestamptz, $${offset + 3}, $${offset + 4}::json)`;
43
47
  });
44
- const inserted = await this.traces.query(`INSERT INTO execution_traces (execution_id, harness, sequence, emitted_at, runner_session_id, payload)
48
+ const inserted = await this.traces.query(`INSERT INTO execution_traces (execution_id, harness, source, sequence, emitted_at, runner_session_id, payload)
45
49
  VALUES ${rows.join(', ')}
46
50
  ON CONFLICT (execution_id, sequence) DO NOTHING RETURNING sequence`, parameters);
47
51
  if (inserted.length) {
@@ -51,16 +55,22 @@ let ExecutionTracesService = class ExecutionTracesService {
51
55
  async list(executionId, afterSequence, limit, options = {}) {
52
56
  await this.resolveExecution(executionId);
53
57
  const backwards = options.latest || options.beforeSequence !== undefined;
54
- const items = await this.traces.find({
55
- where: {
56
- executionId,
57
- sequence: options.beforeSequence !== undefined
58
- ? (0, typeorm_2.LessThan)(options.beforeSequence)
59
- : (0, typeorm_2.MoreThan)(afterSequence),
60
- },
61
- order: { sequence: backwards ? 'DESC' : 'ASC' },
62
- take: limit + 1,
63
- });
58
+ const [items, lifecycle] = await Promise.all([
59
+ this.traces.find({
60
+ where: {
61
+ executionId,
62
+ sequence: options.beforeSequence !== undefined
63
+ ? (0, typeorm_2.LessThan)(options.beforeSequence)
64
+ : (0, typeorm_2.MoreThan)(afterSequence),
65
+ },
66
+ order: { sequence: backwards ? 'DESC' : 'ASC' },
67
+ take: limit + 1,
68
+ }),
69
+ this.traces.find({
70
+ where: { executionId, source: 'worker' },
71
+ order: { sequence: 'ASC' },
72
+ }),
73
+ ]);
64
74
  const hasMore = items.length > limit;
65
75
  if (hasMore)
66
76
  items.pop();
@@ -68,6 +78,7 @@ let ExecutionTracesService = class ExecutionTracesService {
68
78
  items.reverse();
69
79
  return {
70
80
  items,
81
+ lifecycle,
71
82
  nextAfterSequence: items.at(-1)?.sequence ?? afterSequence,
72
83
  hasMoreBefore: Boolean(backwards && hasMore),
73
84
  };
@@ -88,12 +99,16 @@ let ExecutionTracesService = class ExecutionTracesService {
88
99
  const invalid = () => {
89
100
  throw new execution_traces_errors_1.InvalidExecutionTraceError('Invalid execution trace batch.');
90
101
  };
102
+ const source = input?.source === undefined ? 'harness' : input.source;
91
103
  if (!input ||
104
+ (source !== 'worker' && source !== 'harness') ||
92
105
  typeof input.executionId !== 'string' ||
93
106
  !(0, class_validator_1.isUUID)(input.executionId) ||
94
- typeof input.harness !== 'string' ||
95
- !input.harness.length ||
96
- input.harness.length > 100 ||
107
+ (source === 'worker'
108
+ ? input.harness !== null
109
+ : typeof input.harness !== 'string' ||
110
+ !input.harness.length ||
111
+ input.harness.length > 100) ||
97
112
  !Array.isArray(input.events) ||
98
113
  !input.events.length ||
99
114
  input.events.length > events_1.EXECUTION_TRACE_BATCH_SIZE)
@@ -1 +1 @@
1
- {"version":3,"file":"execution-traces.service.js","sourceRoot":"","sources":["../../../src/executions/traces/execution-traces.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-traces.service.js","sourceRoot":"","sources":["../../../src/executions/traces/execution-traces.service.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ describe('ExecutionTracesService', () => {
27
27
  emit = jest.fn();
28
28
  service = new execution_traces_service_1.ExecutionTracesService({
29
29
  query,
30
- find,
30
+ find: (options) => options.where.source ? Promise.resolve([]) : find(options),
31
31
  }, { emit });
32
32
  });
33
33
  it('stores the entire JSON payload in one idempotent batch insert after resolving ownership', async () => {
@@ -39,12 +39,26 @@ describe('ExecutionTracesService', () => {
39
39
  expect(query.mock.calls[1][1]).toEqual([
40
40
  executionId,
41
41
  input.harness,
42
+ 'harness',
42
43
  1,
43
44
  input.events[0].emittedAt,
44
45
  null,
45
46
  JSON.stringify(input.events[0].payload),
46
47
  ]);
47
48
  });
49
+ it('stores explicit worker source without a fake SDK identity', async () => {
50
+ const input = {
51
+ ...batch(),
52
+ source: 'worker',
53
+ harness: null,
54
+ };
55
+ await service.append(input, 'owner');
56
+ expect(query.mock.calls[1][1].slice(0, 3)).toEqual([
57
+ executionId,
58
+ null,
59
+ 'worker',
60
+ ]);
61
+ });
48
62
  it('rejects another worker without inserting', async () => {
49
63
  await expect(service.append(batch(), 'other')).rejects.toBeInstanceOf(execution_traces_errors_1.ExecutionTraceWorkerMismatchError);
50
64
  expect(query).toHaveBeenCalledTimes(1);
@@ -58,6 +72,10 @@ describe('ExecutionTracesService', () => {
58
72
  null,
59
73
  { ...batch(), executionId: 'not-a-uuid' },
60
74
  { ...batch(), harness: '' },
75
+ { ...batch(), source: 'unknown' },
76
+ { ...batch(), source: null },
77
+ { ...batch(), source: 'worker' },
78
+ { ...batch(), source: 'harness', harness: null },
61
79
  { ...batch(), events: [] },
62
80
  { ...batch(), events: Array(101).fill(batch().events[0]) },
63
81
  { ...batch(), events: [{ ...batch().events[0], sequence: 0 }] },
@@ -83,11 +101,12 @@ describe('ExecutionTracesService', () => {
83
101
  const input = batch();
84
102
  input.events[0].payload = null;
85
103
  await service.append(input, 'owner');
86
- expect(JSON.parse(query.mock.calls[1][1][5])).toBeNull();
104
+ expect(JSON.parse(query.mock.calls[1][1][6])).toBeNull();
87
105
  });
88
106
  it('returns a stable cursor on an empty page and orders events by sequence', async () => {
89
107
  expect(await service.list(executionId, 5, 10)).toEqual({
90
108
  items: [],
109
+ lifecycle: [],
91
110
  nextAfterSequence: 5,
92
111
  hasMoreBefore: false,
93
112
  });
@@ -116,6 +135,7 @@ describe('ExecutionTracesService', () => {
116
135
  find.mockResolvedValue([{ sequence: 5 }, { sequence: 4 }, { sequence: 3 }]);
117
136
  expect(await service.list(executionId, 0, 2, { latest: true })).toEqual({
118
137
  items: [{ sequence: 4 }, { sequence: 5 }],
138
+ lifecycle: [],
119
139
  nextAfterSequence: 5,
120
140
  hasMoreBefore: true,
121
141
  });