@elaraai/e3-api-server 1.0.72 → 1.0.73

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.
@@ -12,7 +12,9 @@ export declare function listTasks(storage: StorageBackend, repoPath: string, wor
12
12
  */
13
13
  export declare function getTask(storage: StorageBackend, repoPath: string, workspace: string, taskName: string): Promise<Response>;
14
14
  /**
15
- * List execution history for a task.
15
+ * List execution history for a task: the latest attempt per distinct
16
+ * inputs hash, or — with `all` — every attempt (a forced re-run or a retry
17
+ * after a failure adds one under the same inputs hash).
16
18
  */
17
- export declare function listExecutions(storage: StorageBackend, repoPath: string, workspace: string, taskName: string): Promise<Response>;
19
+ export declare function listExecutions(storage: StorageBackend, repoPath: string, workspace: string, taskName: string, all?: boolean): Promise<Response>;
18
20
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/handlers/tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAyBD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CA+DnB"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/handlers/tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AA0ED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,UAAQ,GACV,OAAO,CAAC,QAAQ,CAAC,CAqBnB"}
@@ -3,7 +3,7 @@
3
3
  * Licensed under BSL 1.1. See LICENSE for details.
4
4
  */
5
5
  import { ArrayType, none, some, variant } from '@elaraai/east';
6
- import { workspaceListTasks, workspaceGetTask, workspaceGetTaskHash, executionListForTask, executionGetLatest, } from '@elaraai/e3-core';
6
+ import { workspaceListTasks, workspaceGetTask, workspaceGetTaskHash, executionListForTask, executionGetLatest, executionListIds, executionGet, } from '@elaraai/e3-core';
7
7
  import { sendSuccess, sendError } from '../beast2.js';
8
8
  import { errorToVariant } from '../errors.js';
9
9
  import { TaskListItemType, TaskDetailsType, ExecutionListItemType } from '../types.js';
@@ -68,65 +68,72 @@ function calculateDuration(startedAt, completedAt) {
68
68
  return BigInt(Math.round(completedAt.getTime() - startedAt.getTime()));
69
69
  }
70
70
  /**
71
- * List execution history for a task.
71
+ * One execution as the history lists it.
72
72
  */
73
- export async function listExecutions(storage, repoPath, workspace, taskName) {
73
+ function toExecutionListItem(inputsHash, status) {
74
+ if (status.type === 'success') {
75
+ return {
76
+ inputsHash,
77
+ inputHashes: status.value.inputHashes,
78
+ status: statusToApiStatus(status),
79
+ startedAt: status.value.startedAt.toISOString(),
80
+ completedAt: some(status.value.completedAt.toISOString()),
81
+ duration: some(calculateDuration(status.value.startedAt, status.value.completedAt)),
82
+ exitCode: none,
83
+ };
84
+ }
85
+ if (status.type === 'failed') {
86
+ return {
87
+ inputsHash,
88
+ inputHashes: status.value.inputHashes,
89
+ status: statusToApiStatus(status),
90
+ startedAt: status.value.startedAt.toISOString(),
91
+ completedAt: some(status.value.completedAt.toISOString()),
92
+ duration: some(calculateDuration(status.value.startedAt, status.value.completedAt)),
93
+ exitCode: some(status.value.exitCode),
94
+ };
95
+ }
96
+ if (status.type === 'error') {
97
+ return {
98
+ inputsHash,
99
+ inputHashes: status.value.inputHashes,
100
+ status: statusToApiStatus(status),
101
+ startedAt: status.value.startedAt.toISOString(),
102
+ completedAt: some(status.value.completedAt.toISOString()),
103
+ duration: none,
104
+ exitCode: none,
105
+ };
106
+ }
107
+ // running
108
+ return {
109
+ inputsHash,
110
+ inputHashes: status.value.inputHashes,
111
+ status: statusToApiStatus(status),
112
+ startedAt: status.value.startedAt.toISOString(),
113
+ completedAt: none,
114
+ duration: none,
115
+ exitCode: none,
116
+ };
117
+ }
118
+ /**
119
+ * List execution history for a task: the latest attempt per distinct
120
+ * inputs hash, or — with `all` — every attempt (a forced re-run or a retry
121
+ * after a failure adds one under the same inputs hash).
122
+ */
123
+ export async function listExecutions(storage, repoPath, workspace, taskName, all = false) {
74
124
  try {
75
125
  const taskHash = await workspaceGetTaskHash(storage, repoPath, workspace, taskName);
76
126
  const inputsHashes = await executionListForTask(storage, repoPath, taskHash);
77
127
  const result = [];
78
128
  for (const inputsHash of inputsHashes) {
79
- const status = await executionGetLatest(storage, repoPath, taskHash, inputsHash);
80
- if (!status)
81
- continue;
82
- // Build the complete item based on status type
83
- let item;
84
- if (status.type === 'success') {
85
- item = {
86
- inputsHash,
87
- inputHashes: status.value.inputHashes,
88
- status: statusToApiStatus(status),
89
- startedAt: status.value.startedAt.toISOString(),
90
- completedAt: some(status.value.completedAt.toISOString()),
91
- duration: some(calculateDuration(status.value.startedAt, status.value.completedAt)),
92
- exitCode: none,
93
- };
94
- }
95
- else if (status.type === 'failed') {
96
- item = {
97
- inputsHash,
98
- inputHashes: status.value.inputHashes,
99
- status: statusToApiStatus(status),
100
- startedAt: status.value.startedAt.toISOString(),
101
- completedAt: some(status.value.completedAt.toISOString()),
102
- duration: some(calculateDuration(status.value.startedAt, status.value.completedAt)),
103
- exitCode: some(status.value.exitCode),
104
- };
105
- }
106
- else if (status.type === 'error') {
107
- item = {
108
- inputsHash,
109
- inputHashes: status.value.inputHashes,
110
- status: statusToApiStatus(status),
111
- startedAt: status.value.startedAt.toISOString(),
112
- completedAt: some(status.value.completedAt.toISOString()),
113
- duration: none,
114
- exitCode: none,
115
- };
116
- }
117
- else {
118
- // running status
119
- item = {
120
- inputsHash,
121
- inputHashes: status.value.inputHashes,
122
- status: statusToApiStatus(status),
123
- startedAt: status.value.startedAt.toISOString(),
124
- completedAt: none,
125
- duration: none,
126
- exitCode: none,
127
- };
129
+ const statuses = all
130
+ ? await Promise.all((await executionListIds(storage, repoPath, taskHash, inputsHash))
131
+ .map(executionId => executionGet(storage, repoPath, taskHash, inputsHash, executionId)))
132
+ : [await executionGetLatest(storage, repoPath, taskHash, inputsHash)];
133
+ for (const status of statuses) {
134
+ if (status)
135
+ result.push(toExecutionListItem(inputsHash, status));
128
136
  }
129
- result.push(item);
130
137
  }
131
138
  return sendSuccess(ArrayType(ExecutionListItemType), result);
132
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/handlers/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/handlers/tasks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,8EA+BtC"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,8EAiCtC"}
@@ -21,13 +21,15 @@ export function createTaskRoutes(storage, getRepoPath) {
21
21
  const taskName = c.req.param('task');
22
22
  return getTask(storage, repoPath, ws, taskName);
23
23
  });
24
- // GET /api/repos/:repo/workspaces/:ws/tasks/:task/executions - List execution history
24
+ // GET /api/repos/:repo/workspaces/:ws/tasks/:task/executions[?all=true] - List execution history
25
+ // (the latest attempt per inputs hash; `all=true` lists every attempt)
25
26
  app.get('/:task/executions', async (c) => {
26
27
  const repo = c.req.param('repo');
27
28
  const repoPath = getRepoPath(repo);
28
29
  const ws = c.req.param('ws');
29
30
  const taskName = c.req.param('task');
30
- return listExecutions(storage, repoPath, ws, taskName);
31
+ const all = c.req.query('all') === 'true';
32
+ return listExecutions(storage, repoPath, ws, taskName, all);
31
33
  });
32
34
  return app;
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,gBAAgB,CAC9B,OAAuB,EACvB,WAAqC;IAErC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,yDAAyD;IACzD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QACtC,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,gBAAgB,CAC9B,OAAuB,EACvB,WAAqC;IAErC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,yDAAyD;IACzD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,iGAAiG;IACjG,uEAAuE;IACvE,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;QAC1C,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/e3-api-server",
3
- "version": "1.0.72",
3
+ "version": "1.0.73",
4
4
  "type": "module",
5
5
  "description": "East Execution Engine API Server - HTTP server exposing e3-core operations",
6
6
  "main": "dist/src/index.js",
@@ -49,11 +49,11 @@
49
49
  "@hono/node-server": "^1.13.0",
50
50
  "commander": "^12.0.0",
51
51
  "hono": "^4.6.0",
52
- "@elaraai/e3-core": "1.0.72",
53
- "@elaraai/e3-types": "1.0.72"
52
+ "@elaraai/e3-core": "1.0.73",
53
+ "@elaraai/e3-types": "1.0.73"
54
54
  },
55
55
  "peerDependencies": {
56
- "@elaraai/east": "1.0.72"
56
+ "@elaraai/east": "1.0.73"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/node": "^22.0.0",