@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.
Files changed (123) hide show
  1. package/README.md +145 -30
  2. package/dist/src/async-operation-state.d.ts +37 -0
  3. package/dist/src/async-operation-state.d.ts.map +1 -0
  4. package/dist/src/async-operation-state.js +118 -0
  5. package/dist/src/async-operation-state.js.map +1 -0
  6. package/dist/src/auth/device.d.ts +26 -0
  7. package/dist/src/auth/device.d.ts.map +1 -0
  8. package/dist/src/auth/device.js +227 -0
  9. package/dist/src/auth/device.js.map +1 -0
  10. package/dist/src/auth/discovery.d.ts +23 -0
  11. package/dist/src/auth/discovery.d.ts.map +1 -0
  12. package/dist/src/auth/discovery.js +40 -0
  13. package/dist/src/auth/discovery.js.map +1 -0
  14. package/dist/src/auth/index.d.ts +56 -0
  15. package/dist/src/auth/index.d.ts.map +1 -0
  16. package/dist/src/auth/index.js +69 -0
  17. package/dist/src/auth/index.js.map +1 -0
  18. package/dist/src/auth/keys.d.ts +55 -0
  19. package/dist/src/auth/keys.d.ts.map +1 -0
  20. package/dist/src/auth/keys.js +78 -0
  21. package/dist/src/auth/keys.js.map +1 -0
  22. package/dist/src/beast2.d.ts +15 -3
  23. package/dist/src/beast2.d.ts.map +1 -1
  24. package/dist/src/beast2.js +38 -8
  25. package/dist/src/beast2.js.map +1 -1
  26. package/dist/src/cli.js +58 -6
  27. package/dist/src/cli.js.map +1 -1
  28. package/dist/src/errors.d.ts.map +1 -1
  29. package/dist/src/errors.js +8 -2
  30. package/dist/src/errors.js.map +1 -1
  31. package/dist/src/handlers/dataflow.d.ts +43 -0
  32. package/dist/src/handlers/dataflow.d.ts.map +1 -0
  33. package/dist/src/handlers/dataflow.js +363 -0
  34. package/dist/src/handlers/dataflow.js.map +1 -0
  35. package/dist/src/handlers/datasets.d.ts +38 -0
  36. package/dist/src/handlers/datasets.d.ts.map +1 -0
  37. package/dist/src/handlers/datasets.js +222 -0
  38. package/dist/src/handlers/datasets.js.map +1 -0
  39. package/dist/src/handlers/index.d.ts +11 -0
  40. package/dist/src/handlers/index.d.ts.map +1 -0
  41. package/dist/src/handlers/index.js +11 -0
  42. package/dist/src/handlers/index.js.map +1 -0
  43. package/dist/src/handlers/packages.d.ts +18 -0
  44. package/dist/src/handlers/packages.d.ts.map +1 -0
  45. package/dist/src/handlers/packages.js +51 -0
  46. package/dist/src/handlers/packages.js.map +1 -0
  47. package/dist/src/handlers/repository.d.ts +24 -0
  48. package/dist/src/handlers/repository.d.ts.map +1 -0
  49. package/dist/src/handlers/repository.js +79 -0
  50. package/dist/src/handlers/repository.js.map +1 -0
  51. package/dist/src/handlers/tasks.d.ts +18 -0
  52. package/dist/src/handlers/tasks.d.ts.map +1 -0
  53. package/dist/src/handlers/tasks.js +134 -0
  54. package/dist/src/handlers/tasks.js.map +1 -0
  55. package/dist/src/handlers/workspaces.d.ts +34 -0
  56. package/dist/src/handlers/workspaces.d.ts.map +1 -0
  57. package/dist/src/handlers/workspaces.js +225 -0
  58. package/dist/src/handlers/workspaces.js.map +1 -0
  59. package/dist/src/index.d.ts +3 -0
  60. package/dist/src/index.d.ts.map +1 -1
  61. package/dist/src/index.js +6 -0
  62. package/dist/src/index.js.map +1 -1
  63. package/dist/src/middleware/auth.d.ts +51 -0
  64. package/dist/src/middleware/auth.d.ts.map +1 -0
  65. package/dist/src/middleware/auth.js +158 -0
  66. package/dist/src/middleware/auth.js.map +1 -0
  67. package/dist/src/orchestrator-manager.d.ts +45 -0
  68. package/dist/src/orchestrator-manager.d.ts.map +1 -0
  69. package/dist/src/orchestrator-manager.js +150 -0
  70. package/dist/src/orchestrator-manager.js.map +1 -0
  71. package/dist/src/routes/data.d.ts +21 -0
  72. package/dist/src/routes/data.d.ts.map +1 -0
  73. package/dist/src/routes/data.js +125 -0
  74. package/dist/src/routes/data.js.map +1 -0
  75. package/dist/src/routes/datasets.d.ts +2 -1
  76. package/dist/src/routes/datasets.d.ts.map +1 -1
  77. package/dist/src/routes/datasets.js +59 -83
  78. package/dist/src/routes/datasets.js.map +1 -1
  79. package/dist/src/routes/executions.d.ts +2 -1
  80. package/dist/src/routes/executions.d.ts.map +1 -1
  81. package/dist/src/routes/executions.js +54 -287
  82. package/dist/src/routes/executions.js.map +1 -1
  83. package/dist/src/routes/index.d.ts +15 -0
  84. package/dist/src/routes/index.d.ts.map +1 -0
  85. package/dist/src/routes/index.js +15 -0
  86. package/dist/src/routes/index.js.map +1 -0
  87. package/dist/src/routes/objects.d.ts +8 -0
  88. package/dist/src/routes/objects.d.ts.map +1 -0
  89. package/dist/src/routes/objects.js +38 -0
  90. package/dist/src/routes/objects.js.map +1 -0
  91. package/dist/src/routes/package-transfer.d.ts +23 -0
  92. package/dist/src/routes/package-transfer.d.ts.map +1 -0
  93. package/dist/src/routes/package-transfer.js +168 -0
  94. package/dist/src/routes/package-transfer.js.map +1 -0
  95. package/dist/src/routes/packages.d.ts +2 -1
  96. package/dist/src/routes/packages.d.ts.map +1 -1
  97. package/dist/src/routes/packages.js +18 -109
  98. package/dist/src/routes/packages.js.map +1 -1
  99. package/dist/src/routes/repository.d.ts +2 -1
  100. package/dist/src/routes/repository.d.ts.map +1 -1
  101. package/dist/src/routes/repository.js +19 -54
  102. package/dist/src/routes/repository.js.map +1 -1
  103. package/dist/src/routes/tasks.d.ts +2 -1
  104. package/dist/src/routes/tasks.d.ts.map +1 -1
  105. package/dist/src/routes/tasks.js +22 -46
  106. package/dist/src/routes/tasks.js.map +1 -1
  107. package/dist/src/routes/transfer.d.ts +19 -0
  108. package/dist/src/routes/transfer.d.ts.map +1 -0
  109. package/dist/src/routes/transfer.js +124 -0
  110. package/dist/src/routes/transfer.js.map +1 -0
  111. package/dist/src/routes/workspaces.d.ts +2 -1
  112. package/dist/src/routes/workspaces.d.ts.map +1 -1
  113. package/dist/src/routes/workspaces.js +45 -116
  114. package/dist/src/routes/workspaces.js.map +1 -1
  115. package/dist/src/server.d.ts +24 -3
  116. package/dist/src/server.d.ts.map +1 -1
  117. package/dist/src/server.js +266 -19
  118. package/dist/src/server.js.map +1 -1
  119. package/dist/src/types.d.ts +1385 -731
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/dist/src/types.js +238 -2
  122. package/dist/src/types.js.map +1 -1
  123. package/package.json +16 -4
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
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
+ * Start dataflow execution (non-blocking).
8
+ *
9
+ * Returns 202 Accepted immediately and runs execution in background.
10
+ * Creates execution state that can be polled via getDataflowExecution().
11
+ */
12
+ export declare function startDataflow(storage: StorageBackend, repoPath: string, workspace: string, options: {
13
+ concurrency: number;
14
+ force: boolean;
15
+ filter?: string;
16
+ }): Promise<Response>;
17
+ /**
18
+ * Get workspace status (for polling).
19
+ */
20
+ export declare function getDataflowStatus(storage: StorageBackend, repoPath: string, workspace: string): Promise<Response>;
21
+ /**
22
+ * Get dependency graph.
23
+ */
24
+ export declare function getDataflowGraph(storage: StorageBackend, repoPath: string, workspace: string): Promise<Response>;
25
+ /**
26
+ * Get task logs.
27
+ */
28
+ export declare function getTaskLogs(storage: StorageBackend, repoPath: string, workspace: string, taskName: string, stream: 'stdout' | 'stderr', offset: number, limit: number): Promise<Response>;
29
+ /**
30
+ * Get dataflow execution state (for polling).
31
+ *
32
+ * Returns the current execution state including events for progress tracking.
33
+ * Supports offset/limit for paginating events.
34
+ */
35
+ export declare function getDataflowExecution(repoPath: string, workspace: string, options?: {
36
+ offset?: number;
37
+ limit?: number;
38
+ }): Promise<Response>;
39
+ /**
40
+ * Cancel a running dataflow execution.
41
+ */
42
+ export declare function cancelDataflow(repoPath: string, workspace: string): Promise<Response>;
43
+ //# sourceMappingURL=dataflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../../src/handlers/dataflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAyIvD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,QAAQ,CAAC,CA6BnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAenB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAqBnB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,OAAO,CAAC,QAAQ,CAAC,CA0InB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAiBnB"}
@@ -0,0 +1,363 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ import { NullType, some, none, variant } from '@elaraai/east';
6
+ import { dataflowGetGraph, workspaceStatus, executionFindCurrent, executionReadLog, WorkspaceLockError, ExecutionNotFoundError, coreEventToApiEvent, coreStatusToApiStatus, } from '@elaraai/e3-core';
7
+ import { sendSuccess, sendError, sendSuccessWithStatus } from '../beast2.js';
8
+ import { errorToVariant } from '../errors.js';
9
+ import { WorkspaceStatusResultType, DataflowGraphType, LogChunkType, DataflowExecutionStateType, } from '../types.js';
10
+ import { getOrchestrator, getStateStore, setActiveExecution, getActiveExecution, getLatestExecution, getExecutionStartTime, clearActiveExecution, } from '../orchestrator-manager.js';
11
+ /**
12
+ * Convert core DatasetStatusInfo to API type.
13
+ */
14
+ function convertDatasetStatus(info) {
15
+ let status;
16
+ switch (info.status.type) {
17
+ case 'unset':
18
+ status = variant('unset', null);
19
+ break;
20
+ case 'stale':
21
+ status = variant('stale', null);
22
+ break;
23
+ case 'up-to-date':
24
+ status = variant('up-to-date', null);
25
+ break;
26
+ }
27
+ return {
28
+ path: info.path,
29
+ status,
30
+ hash: info.hash ? some(info.hash) : none,
31
+ isTaskOutput: info.isTaskOutput,
32
+ producedBy: info.producedBy ? some(info.producedBy) : none,
33
+ };
34
+ }
35
+ /**
36
+ * Convert core TaskStatusInfo to API type.
37
+ */
38
+ function convertTaskStatus(info) {
39
+ let status;
40
+ switch (info.status.type) {
41
+ case 'up-to-date':
42
+ status = variant('up-to-date', { cached: info.status.cached });
43
+ break;
44
+ case 'ready':
45
+ status = variant('ready', null);
46
+ break;
47
+ case 'waiting':
48
+ status = variant('waiting', { reason: info.status.reason });
49
+ break;
50
+ case 'in-progress':
51
+ status = variant('in-progress', {
52
+ pid: info.status.pid != null ? some(BigInt(info.status.pid)) : none,
53
+ startedAt: info.status.startedAt ? some(info.status.startedAt) : none,
54
+ });
55
+ break;
56
+ case 'failed':
57
+ status = variant('failed', {
58
+ exitCode: BigInt(info.status.exitCode),
59
+ completedAt: info.status.completedAt ? some(info.status.completedAt) : none,
60
+ });
61
+ break;
62
+ case 'error':
63
+ status = variant('error', {
64
+ message: info.status.message,
65
+ completedAt: info.status.completedAt ? some(info.status.completedAt) : none,
66
+ });
67
+ break;
68
+ case 'stale-running':
69
+ status = variant('stale-running', {
70
+ pid: info.status.pid != null ? some(BigInt(info.status.pid)) : none,
71
+ startedAt: info.status.startedAt ? some(info.status.startedAt) : none,
72
+ });
73
+ break;
74
+ }
75
+ return {
76
+ name: info.name,
77
+ hash: info.hash,
78
+ status,
79
+ inputs: info.inputs,
80
+ output: info.output,
81
+ dependsOn: info.dependsOn,
82
+ };
83
+ }
84
+ /**
85
+ * Convert core WorkspaceStatusResult to API type.
86
+ */
87
+ function convertWorkspaceStatus(result) {
88
+ return {
89
+ workspace: result.workspace,
90
+ lock: result.lock && result.lock.pid !== undefined
91
+ ? some({
92
+ pid: BigInt(result.lock.pid),
93
+ acquiredAt: result.lock.acquiredAt,
94
+ bootId: result.lock.bootId ? some(result.lock.bootId) : none,
95
+ command: result.lock.command ? some(result.lock.command) : none,
96
+ })
97
+ : none,
98
+ datasets: result.datasets.map(convertDatasetStatus),
99
+ tasks: result.tasks.map(convertTaskStatus),
100
+ summary: {
101
+ datasets: {
102
+ total: BigInt(result.summary.datasets.total),
103
+ unset: BigInt(result.summary.datasets.unset),
104
+ stale: BigInt(result.summary.datasets.stale),
105
+ upToDate: BigInt(result.summary.datasets.upToDate),
106
+ },
107
+ tasks: {
108
+ total: BigInt(result.summary.tasks.total),
109
+ upToDate: BigInt(result.summary.tasks.upToDate),
110
+ ready: BigInt(result.summary.tasks.ready),
111
+ waiting: BigInt(result.summary.tasks.waiting),
112
+ inProgress: BigInt(result.summary.tasks.inProgress),
113
+ failed: BigInt(result.summary.tasks.failed),
114
+ error: BigInt(result.summary.tasks.error),
115
+ staleRunning: BigInt(result.summary.tasks.staleRunning),
116
+ },
117
+ },
118
+ };
119
+ }
120
+ /**
121
+ * Start dataflow execution (non-blocking).
122
+ *
123
+ * Returns 202 Accepted immediately and runs execution in background.
124
+ * Creates execution state that can be polled via getDataflowExecution().
125
+ */
126
+ export async function startDataflow(storage, repoPath, workspace, options) {
127
+ try {
128
+ const orchestrator = getOrchestrator(repoPath);
129
+ // Start execution via orchestrator (acquires lock internally)
130
+ const handle = await orchestrator.start(storage, repoPath, workspace, {
131
+ concurrency: options.concurrency,
132
+ force: options.force,
133
+ filter: options.filter,
134
+ });
135
+ // Track as active execution for this workspace
136
+ setActiveExecution(repoPath, workspace, handle);
137
+ // Set up completion handler to clear active execution
138
+ orchestrator.wait(handle).then(() => {
139
+ clearActiveExecution(repoPath, workspace);
140
+ }).catch(() => {
141
+ clearActiveExecution(repoPath, workspace);
142
+ });
143
+ // Return immediately with 202 Accepted
144
+ return sendSuccessWithStatus(NullType, null, 202);
145
+ }
146
+ catch (err) {
147
+ if (err instanceof WorkspaceLockError) {
148
+ return sendError(NullType, errorToVariant(err));
149
+ }
150
+ return sendError(NullType, errorToVariant(err));
151
+ }
152
+ }
153
+ /**
154
+ * Get workspace status (for polling).
155
+ */
156
+ export async function getDataflowStatus(storage, repoPath, workspace) {
157
+ try {
158
+ const result = await workspaceStatus(storage, repoPath, workspace);
159
+ return sendSuccess(WorkspaceStatusResultType, convertWorkspaceStatus(result));
160
+ }
161
+ catch (err) {
162
+ return sendError(WorkspaceStatusResultType, errorToVariant(err));
163
+ }
164
+ }
165
+ /**
166
+ * Get dependency graph.
167
+ */
168
+ export async function getDataflowGraph(storage, repoPath, workspace) {
169
+ try {
170
+ const graph = await dataflowGetGraph(storage, repoPath, workspace);
171
+ return sendSuccess(DataflowGraphType, {
172
+ tasks: graph.tasks.map((t) => ({
173
+ name: t.name,
174
+ hash: t.hash,
175
+ inputs: t.inputs,
176
+ output: t.output,
177
+ dependsOn: t.dependsOn,
178
+ })),
179
+ });
180
+ }
181
+ catch (err) {
182
+ return sendError(DataflowGraphType, errorToVariant(err));
183
+ }
184
+ }
185
+ /**
186
+ * Get task logs.
187
+ */
188
+ export async function getTaskLogs(storage, repoPath, workspace, taskName, stream, offset, limit) {
189
+ try {
190
+ // Find the current execution for this task
191
+ const execution = await executionFindCurrent(storage, repoPath, workspace, taskName);
192
+ if (!execution) {
193
+ throw new ExecutionNotFoundError(taskName);
194
+ }
195
+ // Read logs
196
+ const chunk = await executionReadLog(storage, repoPath, execution.taskHash, execution.inputsHash, execution.executionId, stream, { offset, limit });
197
+ return sendSuccess(LogChunkType, {
198
+ data: chunk.data,
199
+ offset: BigInt(chunk.offset),
200
+ size: BigInt(chunk.size),
201
+ totalSize: BigInt(chunk.totalSize),
202
+ complete: chunk.complete,
203
+ });
204
+ }
205
+ catch (err) {
206
+ return sendError(LogChunkType, errorToVariant(err));
207
+ }
208
+ }
209
+ /**
210
+ * Get dataflow execution state (for polling).
211
+ *
212
+ * Returns the current execution state including events for progress tracking.
213
+ * Supports offset/limit for paginating events.
214
+ */
215
+ export async function getDataflowExecution(repoPath, workspace, options = {}) {
216
+ const stateStore = getStateStore(repoPath);
217
+ // Find the latest execution for this workspace
218
+ const handle = await getLatestExecution(repoPath, workspace);
219
+ if (!handle) {
220
+ return sendError(DataflowExecutionStateType, variant('execution_not_found', {
221
+ task: workspace,
222
+ }));
223
+ }
224
+ // Read execution state
225
+ const coreState = await stateStore.read(repoPath, workspace, handle.id);
226
+ if (!coreState) {
227
+ return sendError(DataflowExecutionStateType, variant('execution_not_found', {
228
+ task: workspace,
229
+ }));
230
+ }
231
+ // Count total API-visible events, then slice for pagination
232
+ const offset = options.offset ?? 0;
233
+ const allEvents = coreState.events;
234
+ let totalApiEvents = 0;
235
+ for (const event of allEvents) {
236
+ if (coreEventToApiEvent(event) !== null) {
237
+ totalApiEvents++;
238
+ }
239
+ }
240
+ // Apply offset and limit
241
+ let events = allEvents.slice(offset);
242
+ if (options.limit !== undefined) {
243
+ events = events.slice(0, options.limit);
244
+ }
245
+ // Convert page events to API format
246
+ const apiEvents = [];
247
+ for (const event of events) {
248
+ const apiEvent = coreEventToApiEvent(event);
249
+ if (apiEvent !== null) {
250
+ // Convert to East variant format
251
+ switch (apiEvent.type) {
252
+ case 'start':
253
+ apiEvents.push(variant('start', {
254
+ task: apiEvent.task,
255
+ timestamp: apiEvent.timestamp,
256
+ }));
257
+ break;
258
+ case 'complete':
259
+ apiEvents.push(variant('complete', {
260
+ task: apiEvent.task,
261
+ timestamp: apiEvent.timestamp,
262
+ duration: apiEvent.duration ?? 0,
263
+ }));
264
+ break;
265
+ case 'cached':
266
+ apiEvents.push(variant('cached', {
267
+ task: apiEvent.task,
268
+ timestamp: apiEvent.timestamp,
269
+ }));
270
+ break;
271
+ case 'failed':
272
+ apiEvents.push(variant('failed', {
273
+ task: apiEvent.task,
274
+ timestamp: apiEvent.timestamp,
275
+ duration: apiEvent.duration ?? 0,
276
+ exitCode: apiEvent.exitCode ?? BigInt(-1),
277
+ }));
278
+ break;
279
+ case 'error':
280
+ apiEvents.push(variant('error', {
281
+ task: apiEvent.task,
282
+ timestamp: apiEvent.timestamp,
283
+ message: apiEvent.message ?? 'Unknown error',
284
+ }));
285
+ break;
286
+ case 'input_unavailable':
287
+ apiEvents.push(variant('input_unavailable', {
288
+ task: apiEvent.task,
289
+ timestamp: apiEvent.timestamp,
290
+ reason: apiEvent.reason ?? 'Upstream task failed',
291
+ }));
292
+ break;
293
+ }
294
+ }
295
+ }
296
+ // Convert status to API format
297
+ const apiStatus = coreStatusToApiStatus(coreState.status);
298
+ let status;
299
+ switch (apiStatus) {
300
+ case 'running':
301
+ status = variant('running', null);
302
+ break;
303
+ case 'completed':
304
+ status = variant('completed', null);
305
+ break;
306
+ case 'failed':
307
+ status = variant('failed', null);
308
+ break;
309
+ case 'aborted':
310
+ status = variant('aborted', null);
311
+ break;
312
+ }
313
+ // Calculate duration
314
+ const startTime = getExecutionStartTime(repoPath, workspace, handle.id);
315
+ const duration = startTime ? Date.now() - startTime : 0;
316
+ // Build summary if not running
317
+ let summary;
318
+ if (coreState.status !== 'running') {
319
+ summary = some({
320
+ executed: coreState.executed,
321
+ cached: coreState.cached,
322
+ failed: coreState.failed,
323
+ skipped: coreState.skipped,
324
+ duration,
325
+ });
326
+ }
327
+ else {
328
+ summary = none;
329
+ }
330
+ // Get completedAt value (handle Option type)
331
+ const completedAtValue = coreState.completedAt.type === 'some'
332
+ ? some(coreState.completedAt.value.toISOString())
333
+ : none;
334
+ const state = {
335
+ status,
336
+ startedAt: coreState.startedAt.toISOString(),
337
+ completedAt: completedAtValue,
338
+ summary,
339
+ events: apiEvents,
340
+ totalEvents: BigInt(totalApiEvents),
341
+ };
342
+ return sendSuccess(DataflowExecutionStateType, state);
343
+ }
344
+ /**
345
+ * Cancel a running dataflow execution.
346
+ */
347
+ export async function cancelDataflow(repoPath, workspace) {
348
+ try {
349
+ const orchestrator = getOrchestrator(repoPath);
350
+ const execution = getActiveExecution(repoPath, workspace);
351
+ if (!execution) {
352
+ return sendError(NullType, variant('internal', {
353
+ message: 'No active execution for this workspace',
354
+ }));
355
+ }
356
+ await orchestrator.cancel(execution);
357
+ return sendSuccess(NullType, null);
358
+ }
359
+ catch (err) {
360
+ return sendError(NullType, errorToVariant(err));
361
+ }
362
+ }
363
+ //# sourceMappingURL=dataflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../../src/handlers/dataflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ import type { TreePath } from '@elaraai/e3-types';
6
+ import { type StorageBackend, type TransferBackend } from '@elaraai/e3-core';
7
+ /**
8
+ * List dataset fields at the given path.
9
+ */
10
+ export declare function listDatasets(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath): Promise<Response>;
11
+ /**
12
+ * Get dataset value as raw BEAST2 bytes.
13
+ *
14
+ * For objects > 1MB, returns a 307 redirect to the object endpoint.
15
+ * The requestUrl is used to construct the redirect Location header.
16
+ */
17
+ export declare function getDataset(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath, repo?: string, requestUrl?: string, transferBackend?: TransferBackend): Promise<Response>;
18
+ /**
19
+ * Set dataset value from raw BEAST2 bytes.
20
+ */
21
+ export declare function setDataset(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath, body: Uint8Array): Promise<Response>;
22
+ /**
23
+ * Get status detail for a single dataset.
24
+ */
25
+ export declare function getDatasetStatus(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath): Promise<Response>;
26
+ /**
27
+ * List datasets recursively (flat list with paths, types, and status).
28
+ */
29
+ export declare function listDatasetsRecursive(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath): Promise<Response>;
30
+ /**
31
+ * List all descendant dataset paths (string[]).
32
+ */
33
+ export declare function listDatasetsRecursivePaths(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath): Promise<Response>;
34
+ /**
35
+ * List immediate children with types and status (ListEntry[]).
36
+ */
37
+ export declare function listDatasetsWithStatus(storage: StorageBackend, repoPath: string, workspace: string, treePath: TreePath): Promise<Response>;
38
+ //# sourceMappingURL=datasets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../../src/handlers/datasets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,OAAO,EAAuB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKlG;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAID;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,QAAQ,CAAC,CAkDnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,QAAQ,CAAC,CAcnB;AAqCD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CA4BnB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAmBnB;AAoBD;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAenB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAgBnB"}