@elaraai/e3-api-server 0.0.2-beta.4 → 0.0.2-beta.40
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.
- package/README.md +145 -30
- package/dist/src/async-operation-state.d.ts +37 -0
- package/dist/src/async-operation-state.d.ts.map +1 -0
- package/dist/src/async-operation-state.js +118 -0
- package/dist/src/async-operation-state.js.map +1 -0
- package/dist/src/auth/device.d.ts +26 -0
- package/dist/src/auth/device.d.ts.map +1 -0
- package/dist/src/auth/device.js +227 -0
- package/dist/src/auth/device.js.map +1 -0
- package/dist/src/auth/discovery.d.ts +23 -0
- package/dist/src/auth/discovery.d.ts.map +1 -0
- package/dist/src/auth/discovery.js +40 -0
- package/dist/src/auth/discovery.js.map +1 -0
- package/dist/src/auth/index.d.ts +56 -0
- package/dist/src/auth/index.d.ts.map +1 -0
- package/dist/src/auth/index.js +69 -0
- package/dist/src/auth/index.js.map +1 -0
- package/dist/src/auth/keys.d.ts +55 -0
- package/dist/src/auth/keys.d.ts.map +1 -0
- package/dist/src/auth/keys.js +78 -0
- package/dist/src/auth/keys.js.map +1 -0
- package/dist/src/beast2.d.ts +15 -3
- package/dist/src/beast2.d.ts.map +1 -1
- package/dist/src/beast2.js +38 -8
- package/dist/src/beast2.js.map +1 -1
- package/dist/src/cli.js +58 -6
- package/dist/src/cli.js.map +1 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +8 -2
- package/dist/src/errors.js.map +1 -1
- package/dist/src/handlers/dataflow.d.ts +43 -0
- package/dist/src/handlers/dataflow.d.ts.map +1 -0
- package/dist/src/handlers/dataflow.js +363 -0
- package/dist/src/handlers/dataflow.js.map +1 -0
- package/dist/src/handlers/datasets.d.ts +38 -0
- package/dist/src/handlers/datasets.d.ts.map +1 -0
- package/dist/src/handlers/datasets.js +222 -0
- package/dist/src/handlers/datasets.js.map +1 -0
- package/dist/src/handlers/index.d.ts +11 -0
- package/dist/src/handlers/index.d.ts.map +1 -0
- package/dist/src/handlers/index.js +11 -0
- package/dist/src/handlers/index.js.map +1 -0
- package/dist/src/handlers/packages.d.ts +18 -0
- package/dist/src/handlers/packages.d.ts.map +1 -0
- package/dist/src/handlers/packages.js +51 -0
- package/dist/src/handlers/packages.js.map +1 -0
- package/dist/src/handlers/repository.d.ts +24 -0
- package/dist/src/handlers/repository.d.ts.map +1 -0
- package/dist/src/handlers/repository.js +79 -0
- package/dist/src/handlers/repository.js.map +1 -0
- package/dist/src/handlers/tasks.d.ts +18 -0
- package/dist/src/handlers/tasks.d.ts.map +1 -0
- package/dist/src/handlers/tasks.js +134 -0
- package/dist/src/handlers/tasks.js.map +1 -0
- package/dist/src/handlers/workspaces.d.ts +34 -0
- package/dist/src/handlers/workspaces.d.ts.map +1 -0
- package/dist/src/handlers/workspaces.js +225 -0
- package/dist/src/handlers/workspaces.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/middleware/auth.d.ts +51 -0
- package/dist/src/middleware/auth.d.ts.map +1 -0
- package/dist/src/middleware/auth.js +158 -0
- package/dist/src/middleware/auth.js.map +1 -0
- package/dist/src/orchestrator-manager.d.ts +45 -0
- package/dist/src/orchestrator-manager.d.ts.map +1 -0
- package/dist/src/orchestrator-manager.js +150 -0
- package/dist/src/orchestrator-manager.js.map +1 -0
- package/dist/src/routes/data.d.ts +21 -0
- package/dist/src/routes/data.d.ts.map +1 -0
- package/dist/src/routes/data.js +125 -0
- package/dist/src/routes/data.js.map +1 -0
- package/dist/src/routes/datasets.d.ts +2 -1
- package/dist/src/routes/datasets.d.ts.map +1 -1
- package/dist/src/routes/datasets.js +59 -83
- package/dist/src/routes/datasets.js.map +1 -1
- package/dist/src/routes/executions.d.ts +2 -1
- package/dist/src/routes/executions.d.ts.map +1 -1
- package/dist/src/routes/executions.js +54 -287
- package/dist/src/routes/executions.js.map +1 -1
- package/dist/src/routes/index.d.ts +15 -0
- package/dist/src/routes/index.d.ts.map +1 -0
- package/dist/src/routes/index.js +15 -0
- package/dist/src/routes/index.js.map +1 -0
- package/dist/src/routes/objects.d.ts +8 -0
- package/dist/src/routes/objects.d.ts.map +1 -0
- package/dist/src/routes/objects.js +38 -0
- package/dist/src/routes/objects.js.map +1 -0
- package/dist/src/routes/package-transfer.d.ts +23 -0
- package/dist/src/routes/package-transfer.d.ts.map +1 -0
- package/dist/src/routes/package-transfer.js +168 -0
- package/dist/src/routes/package-transfer.js.map +1 -0
- package/dist/src/routes/packages.d.ts +2 -1
- package/dist/src/routes/packages.d.ts.map +1 -1
- package/dist/src/routes/packages.js +18 -109
- package/dist/src/routes/packages.js.map +1 -1
- package/dist/src/routes/repository.d.ts +2 -1
- package/dist/src/routes/repository.d.ts.map +1 -1
- package/dist/src/routes/repository.js +19 -54
- package/dist/src/routes/repository.js.map +1 -1
- package/dist/src/routes/tasks.d.ts +2 -1
- package/dist/src/routes/tasks.d.ts.map +1 -1
- package/dist/src/routes/tasks.js +22 -46
- package/dist/src/routes/tasks.js.map +1 -1
- package/dist/src/routes/transfer.d.ts +19 -0
- package/dist/src/routes/transfer.d.ts.map +1 -0
- package/dist/src/routes/transfer.js +124 -0
- package/dist/src/routes/transfer.js.map +1 -0
- package/dist/src/routes/workspaces.d.ts +2 -1
- package/dist/src/routes/workspaces.d.ts.map +1 -1
- package/dist/src/routes/workspaces.js +45 -116
- package/dist/src/routes/workspaces.js.map +1 -1
- package/dist/src/server.d.ts +24 -3
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +266 -19
- package/dist/src/server.js.map +1 -1
- package/dist/src/types.d.ts +1385 -731
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +238 -2
- package/dist/src/types.js.map +1 -1
- package/package.json +16 -4
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { NullType, ArrayType, StringType, decodeBeast2, some, none, variant, toEastTypeValue, isVariant } from '@elaraai/east';
|
|
6
|
+
import { workspaceListTree, workspaceGetDatasetHash, workspaceGetDatasetStatus, workspaceSetDataset, workspaceGetTree, } from '@elaraai/e3-core';
|
|
7
|
+
import { BEAST2_CONTENT_TYPE } from '@elaraai/e3-core';
|
|
8
|
+
import { sendSuccess, sendError } from '../beast2.js';
|
|
9
|
+
import { errorToVariant } from '../errors.js';
|
|
10
|
+
import { DatasetStatusDetailType, ListEntryType } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* List dataset fields at the given path.
|
|
13
|
+
*/
|
|
14
|
+
export async function listDatasets(storage, repoPath, workspace, treePath) {
|
|
15
|
+
try {
|
|
16
|
+
const fields = await workspaceListTree(storage, repoPath, workspace, treePath);
|
|
17
|
+
return sendSuccess(ArrayType(StringType), fields);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return sendError(ArrayType(StringType), errorToVariant(err));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const SIZE_THRESHOLD = 1 * 1024 * 1024; // 1 MB
|
|
24
|
+
/**
|
|
25
|
+
* Get dataset value as raw BEAST2 bytes.
|
|
26
|
+
*
|
|
27
|
+
* For objects > 1MB, returns a 307 redirect to the object endpoint.
|
|
28
|
+
* The requestUrl is used to construct the redirect Location header.
|
|
29
|
+
*/
|
|
30
|
+
export async function getDataset(storage, repoPath, workspace, treePath, repo, requestUrl, transferBackend) {
|
|
31
|
+
try {
|
|
32
|
+
if (treePath.length === 0) {
|
|
33
|
+
return sendError(NullType, errorToVariant(new Error('Path required for get')));
|
|
34
|
+
}
|
|
35
|
+
const { refType, hash } = await workspaceGetDatasetHash(storage, repoPath, workspace, treePath);
|
|
36
|
+
if (refType === 'unassigned') {
|
|
37
|
+
return sendError(NullType, errorToVariant(new Error('Dataset is unassigned (pending task output)')));
|
|
38
|
+
}
|
|
39
|
+
if (refType === 'null' || !hash) {
|
|
40
|
+
return sendError(NullType, errorToVariant(new Error('Dataset is null')));
|
|
41
|
+
}
|
|
42
|
+
// When serving via API with a transfer backend, check size to decide whether to redirect
|
|
43
|
+
if (transferBackend && repo && requestUrl) {
|
|
44
|
+
const { size } = await storage.objects.stat(repoPath, hash);
|
|
45
|
+
if (size > SIZE_THRESHOLD) {
|
|
46
|
+
let downloadUrl = await transferBackend.datasetDownload.getDownloadUrl(repo, hash);
|
|
47
|
+
// Resolve relative URL against the request origin
|
|
48
|
+
if (downloadUrl.startsWith('/')) {
|
|
49
|
+
const origin = new URL(requestUrl).origin;
|
|
50
|
+
downloadUrl = `${origin}${downloadUrl}`;
|
|
51
|
+
}
|
|
52
|
+
return new Response(null, {
|
|
53
|
+
status: 307,
|
|
54
|
+
headers: {
|
|
55
|
+
'Location': downloadUrl,
|
|
56
|
+
'X-Content-Length': String(size),
|
|
57
|
+
'X-Content-SHA256': hash,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Inline response
|
|
63
|
+
const data = await storage.objects.read(repoPath, hash);
|
|
64
|
+
return new Response(data, {
|
|
65
|
+
status: 200,
|
|
66
|
+
headers: {
|
|
67
|
+
'Content-Type': BEAST2_CONTENT_TYPE,
|
|
68
|
+
'Content-Length': String(data.byteLength),
|
|
69
|
+
'X-Content-SHA256': hash,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
return sendError(NullType, errorToVariant(err));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Set dataset value from raw BEAST2 bytes.
|
|
79
|
+
*/
|
|
80
|
+
export async function setDataset(storage, repoPath, workspace, treePath, body) {
|
|
81
|
+
try {
|
|
82
|
+
if (treePath.length === 0) {
|
|
83
|
+
return sendError(NullType, errorToVariant(new Error('Path required for set')));
|
|
84
|
+
}
|
|
85
|
+
// Body is raw BEAST2 - decode to get type and value
|
|
86
|
+
const { type, value } = decodeBeast2(body);
|
|
87
|
+
await workspaceSetDataset(storage, repoPath, workspace, treePath, value, type);
|
|
88
|
+
return sendSuccess(NullType, null);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
return sendError(NullType, errorToVariant(err));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Flatten a tree of nodes into a list of ListEntry variants (dataset + tree entries).
|
|
96
|
+
*/
|
|
97
|
+
function flattenTreeEntries(nodes, pathPrefix, result, recursive) {
|
|
98
|
+
for (const node of nodes) {
|
|
99
|
+
const path = pathPrefix ? `${pathPrefix}.${node.name}` : `.${node.name}`;
|
|
100
|
+
if (node.kind === 'dataset') {
|
|
101
|
+
const datasetType = node.datasetType;
|
|
102
|
+
if (datasetType) {
|
|
103
|
+
const typeValue = isVariant(datasetType)
|
|
104
|
+
? datasetType
|
|
105
|
+
: toEastTypeValue(datasetType);
|
|
106
|
+
result.push(variant('dataset', {
|
|
107
|
+
path,
|
|
108
|
+
type: typeValue,
|
|
109
|
+
hash: node.hash ? some(node.hash) : none,
|
|
110
|
+
size: node.size !== undefined ? some(BigInt(node.size)) : none,
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (node.kind === 'tree') {
|
|
115
|
+
result.push(variant('tree', { path, kind: variant('struct', null) }));
|
|
116
|
+
if (recursive) {
|
|
117
|
+
flattenTreeEntries(node.children, path, result, recursive);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get status detail for a single dataset.
|
|
124
|
+
*/
|
|
125
|
+
export async function getDatasetStatus(storage, repoPath, workspace, treePath) {
|
|
126
|
+
try {
|
|
127
|
+
if (treePath.length === 0) {
|
|
128
|
+
return sendError(DatasetStatusDetailType, errorToVariant(new Error('Path required for status')));
|
|
129
|
+
}
|
|
130
|
+
const result = await workspaceGetDatasetStatus(storage, repoPath, workspace, treePath);
|
|
131
|
+
// Build path string from treePath
|
|
132
|
+
const pathStr = '.' + treePath.map(s => s.value).join('.');
|
|
133
|
+
// Convert EastType to EastTypeValue if needed
|
|
134
|
+
const typeValue = isVariant(result.datasetType)
|
|
135
|
+
? result.datasetType
|
|
136
|
+
: toEastTypeValue(result.datasetType);
|
|
137
|
+
const detail = {
|
|
138
|
+
path: pathStr,
|
|
139
|
+
type: typeValue,
|
|
140
|
+
refType: result.refType,
|
|
141
|
+
hash: result.hash ? some(result.hash) : none,
|
|
142
|
+
size: result.size !== null ? some(BigInt(result.size)) : none,
|
|
143
|
+
};
|
|
144
|
+
return sendSuccess(DatasetStatusDetailType, detail);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
return sendError(DatasetStatusDetailType, errorToVariant(err));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* List datasets recursively (flat list with paths, types, and status).
|
|
152
|
+
*/
|
|
153
|
+
export async function listDatasetsRecursive(storage, repoPath, workspace, treePath) {
|
|
154
|
+
try {
|
|
155
|
+
// Get tree with types and status included
|
|
156
|
+
const nodes = await workspaceGetTree(storage, repoPath, workspace, treePath, {
|
|
157
|
+
includeTypes: true,
|
|
158
|
+
includeStatus: true,
|
|
159
|
+
});
|
|
160
|
+
// Build path prefix from treePath
|
|
161
|
+
const pathPrefix = treePath.map(seg => seg.value).join('.');
|
|
162
|
+
// Flatten to list (includes tree entries)
|
|
163
|
+
const result = [];
|
|
164
|
+
flattenTreeEntries(nodes, pathPrefix ? `.${pathPrefix}` : '', result, true);
|
|
165
|
+
return sendSuccess(ArrayType(ListEntryType), result);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
return sendError(ArrayType(ListEntryType), errorToVariant(err));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Flatten tree nodes into a list of dataset paths (no types/status).
|
|
173
|
+
*/
|
|
174
|
+
function flattenTreePaths(nodes, pathPrefix, result) {
|
|
175
|
+
for (const node of nodes) {
|
|
176
|
+
const path = pathPrefix ? `${pathPrefix}.${node.name}` : `.${node.name}`;
|
|
177
|
+
if (node.kind === 'dataset') {
|
|
178
|
+
result.push(path);
|
|
179
|
+
}
|
|
180
|
+
else if (node.kind === 'tree') {
|
|
181
|
+
flattenTreePaths(node.children, path, result);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* List all descendant dataset paths (string[]).
|
|
187
|
+
*/
|
|
188
|
+
export async function listDatasetsRecursivePaths(storage, repoPath, workspace, treePath) {
|
|
189
|
+
try {
|
|
190
|
+
const nodes = await workspaceGetTree(storage, repoPath, workspace, treePath, {
|
|
191
|
+
includeTypes: false,
|
|
192
|
+
includeStatus: false,
|
|
193
|
+
});
|
|
194
|
+
const pathPrefix = treePath.map(seg => seg.value).join('.');
|
|
195
|
+
const result = [];
|
|
196
|
+
flattenTreePaths(nodes, pathPrefix ? `.${pathPrefix}` : '', result);
|
|
197
|
+
return sendSuccess(ArrayType(StringType), result);
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
return sendError(ArrayType(StringType), errorToVariant(err));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* List immediate children with types and status (ListEntry[]).
|
|
205
|
+
*/
|
|
206
|
+
export async function listDatasetsWithStatus(storage, repoPath, workspace, treePath) {
|
|
207
|
+
try {
|
|
208
|
+
const nodes = await workspaceGetTree(storage, repoPath, workspace, treePath, {
|
|
209
|
+
maxDepth: 0,
|
|
210
|
+
includeTypes: true,
|
|
211
|
+
includeStatus: true,
|
|
212
|
+
});
|
|
213
|
+
const pathPrefix = treePath.map(seg => seg.value).join('.');
|
|
214
|
+
const result = [];
|
|
215
|
+
flattenTreeEntries(nodes, pathPrefix ? `.${pathPrefix}` : '', result, false);
|
|
216
|
+
return sendSuccess(ArrayType(ListEntryType), result);
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
return sendError(ArrayType(ListEntryType), errorToVariant(err));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=datasets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../../src/handlers/datasets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
export { getStatus, startGc, getGcStatus } from './repository.js';
|
|
6
|
+
export { listPackages, getPackage, deletePackage, } from './packages.js';
|
|
7
|
+
export { listWorkspaces, createWorkspace, getWorkspace, getWorkspaceStatus, deleteWorkspace, deployWorkspace, exportWorkspace, } from './workspaces.js';
|
|
8
|
+
export { listDatasets, listDatasetsRecursive, listDatasetsRecursivePaths, listDatasetsWithStatus, getDataset, getDatasetStatus, setDataset, } from './datasets.js';
|
|
9
|
+
export { listTasks, getTask, } from './tasks.js';
|
|
10
|
+
export { startDataflow, getDataflowStatus, getDataflowGraph, getTaskLogs, } from './dataflow.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
export { getStatus, startGc, getGcStatus } from './repository.js';
|
|
6
|
+
export { listPackages, getPackage, deletePackage, } from './packages.js';
|
|
7
|
+
export { listWorkspaces, createWorkspace, getWorkspace, getWorkspaceStatus, deleteWorkspace, deployWorkspace, exportWorkspace, } from './workspaces.js';
|
|
8
|
+
export { listDatasets, listDatasetsRecursive, listDatasetsRecursivePaths, listDatasetsWithStatus, getDataset, getDatasetStatus, setDataset, } from './datasets.js';
|
|
9
|
+
export { listTasks, getTask, } from './tasks.js';
|
|
10
|
+
export { startDataflow, getDataflowStatus, getDataflowGraph, getTaskLogs, } from './dataflow.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { StorageBackend } from '@elaraai/e3-core';
|
|
6
|
+
/**
|
|
7
|
+
* List all packages in the repository.
|
|
8
|
+
*/
|
|
9
|
+
export declare function listPackages(storage: StorageBackend, repoPath: string): Promise<Response>;
|
|
10
|
+
/**
|
|
11
|
+
* Get package details.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPackage(storage: StorageBackend, repoPath: string, name: string, version: string): Promise<Response>;
|
|
14
|
+
/**
|
|
15
|
+
* Delete a package.
|
|
16
|
+
*/
|
|
17
|
+
export declare function deletePackage(storage: StorageBackend, repoPath: string, name: string, version: string): Promise<Response>;
|
|
18
|
+
//# sourceMappingURL=packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../../src/handlers/packages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAWnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, NullType } from '@elaraai/east';
|
|
6
|
+
import { packageList, packageRemove, packageRead, } from '@elaraai/e3-core';
|
|
7
|
+
import { PackageObjectType } from '@elaraai/e3-types';
|
|
8
|
+
import { sendSuccess, sendError } from '../beast2.js';
|
|
9
|
+
import { errorToVariant } from '../errors.js';
|
|
10
|
+
import { PackageListItemType } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* List all packages in the repository.
|
|
13
|
+
*/
|
|
14
|
+
export async function listPackages(storage, repoPath) {
|
|
15
|
+
try {
|
|
16
|
+
const packages = await packageList(storage, repoPath);
|
|
17
|
+
const result = packages.map((pkg) => ({
|
|
18
|
+
name: pkg.name,
|
|
19
|
+
version: pkg.version,
|
|
20
|
+
}));
|
|
21
|
+
return sendSuccess(ArrayType(PackageListItemType), result);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
return sendError(ArrayType(PackageListItemType), errorToVariant(err));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get package details.
|
|
29
|
+
*/
|
|
30
|
+
export async function getPackage(storage, repoPath, name, version) {
|
|
31
|
+
try {
|
|
32
|
+
const pkg = await packageRead(storage, repoPath, name, version);
|
|
33
|
+
return sendSuccess(PackageObjectType, pkg);
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
return sendError(PackageObjectType, errorToVariant(err));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Delete a package.
|
|
41
|
+
*/
|
|
42
|
+
export async function deletePackage(storage, repoPath, name, version) {
|
|
43
|
+
try {
|
|
44
|
+
await packageRemove(storage, repoPath, name, version);
|
|
45
|
+
return sendSuccess(NullType, null);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
return sendError(NullType, errorToVariant(err));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../src/handlers/packages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAuB,EACvB,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QACJ,OAAO,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,QAAgB,EAChB,IAAY,EACZ,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,iBAAiB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,QAAgB,EAChB,IAAY,EACZ,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { StorageBackend } from '@elaraai/e3-core';
|
|
6
|
+
/**
|
|
7
|
+
* Get repository status.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getStatus(storage: StorageBackend, repoPath: string): Promise<Response>;
|
|
10
|
+
/**
|
|
11
|
+
* Start garbage collection (async).
|
|
12
|
+
*
|
|
13
|
+
* Returns immediately with an executionId. GC runs in background.
|
|
14
|
+
* Poll getGcStatus() for progress.
|
|
15
|
+
*/
|
|
16
|
+
export declare function startGc(storage: StorageBackend, repoPath: string, options: {
|
|
17
|
+
dryRun: boolean;
|
|
18
|
+
minAge?: number;
|
|
19
|
+
}): Response;
|
|
20
|
+
/**
|
|
21
|
+
* Get garbage collection status.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getGcStatus(executionId: string): Response;
|
|
24
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/handlers/repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgBvD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAmBnB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,QAAQ,CAuBV;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAezD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { variant } from '@elaraai/east';
|
|
6
|
+
import { repoGc, packageList, workspaceList } from '@elaraai/e3-core';
|
|
7
|
+
import { sendSuccess, sendSuccessWithStatus, sendError } from '../beast2.js';
|
|
8
|
+
import { errorToVariant } from '../errors.js';
|
|
9
|
+
import { RepositoryStatusType, GcStartResultType, GcStatusResultType, } from '../types.js';
|
|
10
|
+
import { createGcOperation, completeGcOperation, failGcOperation, getGcOperationStatus, hasGcOperation, } from '../async-operation-state.js';
|
|
11
|
+
/**
|
|
12
|
+
* Get repository status.
|
|
13
|
+
*/
|
|
14
|
+
export async function getStatus(storage, repoPath) {
|
|
15
|
+
try {
|
|
16
|
+
// Count objects
|
|
17
|
+
const objectCount = await storage.objects.count(repoPath);
|
|
18
|
+
// Count packages and workspaces
|
|
19
|
+
const packages = await packageList(storage, repoPath);
|
|
20
|
+
const workspaces = await workspaceList(storage, repoPath);
|
|
21
|
+
const status = {
|
|
22
|
+
path: repoPath,
|
|
23
|
+
objectCount: BigInt(objectCount),
|
|
24
|
+
packageCount: BigInt(packages.length),
|
|
25
|
+
workspaceCount: BigInt(workspaces.length),
|
|
26
|
+
};
|
|
27
|
+
return sendSuccess(RepositoryStatusType, status);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
return sendError(RepositoryStatusType, errorToVariant(err));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Start garbage collection (async).
|
|
35
|
+
*
|
|
36
|
+
* Returns immediately with an executionId. GC runs in background.
|
|
37
|
+
* Poll getGcStatus() for progress.
|
|
38
|
+
*/
|
|
39
|
+
export function startGc(storage, repoPath, options) {
|
|
40
|
+
// Create operation and get executionId
|
|
41
|
+
const executionId = createGcOperation();
|
|
42
|
+
// Run GC in background (don't await)
|
|
43
|
+
void (async () => {
|
|
44
|
+
try {
|
|
45
|
+
const result = await repoGc(storage, repoPath, options);
|
|
46
|
+
completeGcOperation(executionId, {
|
|
47
|
+
deletedObjects: BigInt(result.deletedObjects),
|
|
48
|
+
deletedPartials: BigInt(result.deletedPartials),
|
|
49
|
+
retainedObjects: BigInt(result.retainedObjects),
|
|
50
|
+
skippedYoung: BigInt(result.skippedYoung),
|
|
51
|
+
bytesFreed: BigInt(result.bytesFreed),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
56
|
+
failGcOperation(executionId, message);
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
// Return 202 Accepted with executionId
|
|
60
|
+
return sendSuccessWithStatus(GcStartResultType, { executionId }, 202);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get garbage collection status.
|
|
64
|
+
*/
|
|
65
|
+
export function getGcStatus(executionId) {
|
|
66
|
+
if (!hasGcOperation(executionId)) {
|
|
67
|
+
return sendError(GcStatusResultType, variant('internal', {
|
|
68
|
+
message: `GC operation not found: ${executionId}`,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
const status = getGcOperationStatus(executionId);
|
|
72
|
+
if (!status) {
|
|
73
|
+
return sendError(GcStatusResultType, variant('internal', {
|
|
74
|
+
message: `GC operation not found: ${executionId}`,
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
return sendSuccess(GcStatusResultType, status);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/handlers/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { StorageBackend } from '@elaraai/e3-core';
|
|
6
|
+
/**
|
|
7
|
+
* List all tasks in a workspace.
|
|
8
|
+
*/
|
|
9
|
+
export declare function listTasks(storage: StorageBackend, repoPath: string, workspace: string): Promise<Response>;
|
|
10
|
+
/**
|
|
11
|
+
* Get task details.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getTask(storage: StorageBackend, repoPath: string, workspace: string, taskName: string): Promise<Response>;
|
|
14
|
+
/**
|
|
15
|
+
* List execution history for a task.
|
|
16
|
+
*/
|
|
17
|
+
export declare function listExecutions(storage: StorageBackend, repoPath: string, workspace: string, taskName: string): Promise<Response>;
|
|
18
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +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,CAgBnB;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,CAenB;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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, none, some, variant } from '@elaraai/east';
|
|
6
|
+
import { workspaceListTasks, workspaceGetTask, workspaceGetTaskHash, executionListForTask, executionGetLatest, } from '@elaraai/e3-core';
|
|
7
|
+
import { sendSuccess, sendError } from '../beast2.js';
|
|
8
|
+
import { errorToVariant } from '../errors.js';
|
|
9
|
+
import { TaskInfoType, TaskDetailsType, ExecutionListItemType } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* List all tasks in a workspace.
|
|
12
|
+
*/
|
|
13
|
+
export async function listTasks(storage, repoPath, workspace) {
|
|
14
|
+
try {
|
|
15
|
+
const taskNames = await workspaceListTasks(storage, repoPath, workspace);
|
|
16
|
+
// Get hash for each task
|
|
17
|
+
const result = await Promise.all(taskNames.map(async (name) => {
|
|
18
|
+
const hash = await workspaceGetTaskHash(storage, repoPath, workspace, name);
|
|
19
|
+
return { name, hash };
|
|
20
|
+
}));
|
|
21
|
+
return sendSuccess(ArrayType(TaskInfoType), result);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
return sendError(ArrayType(TaskInfoType), errorToVariant(err));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get task details.
|
|
29
|
+
*/
|
|
30
|
+
export async function getTask(storage, repoPath, workspace, taskName) {
|
|
31
|
+
try {
|
|
32
|
+
const hash = await workspaceGetTaskHash(storage, repoPath, workspace, taskName);
|
|
33
|
+
const task = await workspaceGetTask(storage, repoPath, workspace, taskName);
|
|
34
|
+
return sendSuccess(TaskDetailsType, {
|
|
35
|
+
name: taskName,
|
|
36
|
+
hash,
|
|
37
|
+
commandIr: task.commandIr,
|
|
38
|
+
inputs: task.inputs,
|
|
39
|
+
output: task.output,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
return sendError(TaskDetailsType, errorToVariant(err));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Convert ExecutionStatus to API ExecutionHistoryStatus variant.
|
|
48
|
+
*/
|
|
49
|
+
function statusToApiStatus(status) {
|
|
50
|
+
switch (status.type) {
|
|
51
|
+
case 'running':
|
|
52
|
+
return variant('running', null);
|
|
53
|
+
case 'success':
|
|
54
|
+
return variant('success', null);
|
|
55
|
+
case 'failed':
|
|
56
|
+
return variant('failed', null);
|
|
57
|
+
case 'error':
|
|
58
|
+
return variant('error', null);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Calculate duration in milliseconds between two dates.
|
|
63
|
+
*/
|
|
64
|
+
function calculateDuration(startedAt, completedAt) {
|
|
65
|
+
return BigInt(Math.round(completedAt.getTime() - startedAt.getTime()));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* List execution history for a task.
|
|
69
|
+
*/
|
|
70
|
+
export async function listExecutions(storage, repoPath, workspace, taskName) {
|
|
71
|
+
try {
|
|
72
|
+
const taskHash = await workspaceGetTaskHash(storage, repoPath, workspace, taskName);
|
|
73
|
+
const inputsHashes = await executionListForTask(storage, repoPath, taskHash);
|
|
74
|
+
const result = [];
|
|
75
|
+
for (const inputsHash of inputsHashes) {
|
|
76
|
+
const status = await executionGetLatest(storage, repoPath, taskHash, inputsHash);
|
|
77
|
+
if (!status)
|
|
78
|
+
continue;
|
|
79
|
+
// Build the complete item based on status type
|
|
80
|
+
let item;
|
|
81
|
+
if (status.type === 'success') {
|
|
82
|
+
item = {
|
|
83
|
+
inputsHash,
|
|
84
|
+
inputHashes: status.value.inputHashes,
|
|
85
|
+
status: statusToApiStatus(status),
|
|
86
|
+
startedAt: status.value.startedAt.toISOString(),
|
|
87
|
+
completedAt: some(status.value.completedAt.toISOString()),
|
|
88
|
+
duration: some(calculateDuration(status.value.startedAt, status.value.completedAt)),
|
|
89
|
+
exitCode: none,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
else if (status.type === 'failed') {
|
|
93
|
+
item = {
|
|
94
|
+
inputsHash,
|
|
95
|
+
inputHashes: status.value.inputHashes,
|
|
96
|
+
status: statusToApiStatus(status),
|
|
97
|
+
startedAt: status.value.startedAt.toISOString(),
|
|
98
|
+
completedAt: some(status.value.completedAt.toISOString()),
|
|
99
|
+
duration: some(calculateDuration(status.value.startedAt, status.value.completedAt)),
|
|
100
|
+
exitCode: some(status.value.exitCode),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
else if (status.type === 'error') {
|
|
104
|
+
item = {
|
|
105
|
+
inputsHash,
|
|
106
|
+
inputHashes: status.value.inputHashes,
|
|
107
|
+
status: statusToApiStatus(status),
|
|
108
|
+
startedAt: status.value.startedAt.toISOString(),
|
|
109
|
+
completedAt: some(status.value.completedAt.toISOString()),
|
|
110
|
+
duration: none,
|
|
111
|
+
exitCode: none,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// running status
|
|
116
|
+
item = {
|
|
117
|
+
inputsHash,
|
|
118
|
+
inputHashes: status.value.inputHashes,
|
|
119
|
+
status: statusToApiStatus(status),
|
|
120
|
+
startedAt: status.value.startedAt.toISOString(),
|
|
121
|
+
completedAt: none,
|
|
122
|
+
duration: none,
|
|
123
|
+
exitCode: none,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
result.push(item);
|
|
127
|
+
}
|
|
128
|
+
return sendSuccess(ArrayType(ExecutionListItemType), result);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return sendError(ArrayType(ExecutionListItemType), errorToVariant(err));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/handlers/tasks.ts"],"names":[],"mappings":"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"}
|