@elaraai/e3-core 0.0.2-beta.9 → 1.0.1
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/LICENSE.md +4 -0
- package/README.md +74 -35
- package/dist/src/dataflow/api-compat.d.ts +90 -0
- package/dist/src/dataflow/api-compat.d.ts.map +1 -0
- package/dist/src/dataflow/api-compat.js +139 -0
- package/dist/src/dataflow/api-compat.js.map +1 -0
- package/dist/src/dataflow/api-compat.spec.d.ts +6 -0
- package/dist/src/dataflow/api-compat.spec.d.ts.map +1 -0
- package/dist/src/dataflow/api-compat.spec.js +182 -0
- package/dist/src/dataflow/api-compat.spec.js.map +1 -0
- package/dist/src/dataflow/index.d.ts +18 -0
- package/dist/src/dataflow/index.d.ts.map +1 -0
- package/dist/src/dataflow/index.js +23 -0
- package/dist/src/dataflow/index.js.map +1 -0
- package/dist/src/dataflow/orchestrator/LocalOrchestrator.d.ts +76 -0
- package/dist/src/dataflow/orchestrator/LocalOrchestrator.d.ts.map +1 -0
- package/dist/src/dataflow/orchestrator/LocalOrchestrator.js +729 -0
- package/dist/src/dataflow/orchestrator/LocalOrchestrator.js.map +1 -0
- package/dist/src/dataflow/orchestrator/index.d.ts +12 -0
- package/dist/src/dataflow/orchestrator/index.d.ts.map +1 -0
- package/dist/src/dataflow/orchestrator/index.js +12 -0
- package/dist/src/dataflow/orchestrator/index.js.map +1 -0
- package/dist/src/dataflow/orchestrator/interfaces.d.ts +163 -0
- package/dist/src/dataflow/orchestrator/interfaces.d.ts.map +1 -0
- package/dist/src/dataflow/orchestrator/interfaces.js +52 -0
- package/dist/src/dataflow/orchestrator/interfaces.js.map +1 -0
- package/dist/src/dataflow/state-store/FileStateStore.d.ts +67 -0
- package/dist/src/dataflow/state-store/FileStateStore.d.ts.map +1 -0
- package/dist/src/dataflow/state-store/FileStateStore.js +300 -0
- package/dist/src/dataflow/state-store/FileStateStore.js.map +1 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.d.ts +42 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.d.ts.map +1 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.js +229 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.js.map +1 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.spec.d.ts +6 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.spec.d.ts.map +1 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.spec.js +114 -0
- package/dist/src/dataflow/state-store/InMemoryStateStore.spec.js.map +1 -0
- package/dist/src/dataflow/state-store/index.d.ts +13 -0
- package/dist/src/dataflow/state-store/index.d.ts.map +1 -0
- package/dist/src/dataflow/state-store/index.js +13 -0
- package/dist/src/dataflow/state-store/index.js.map +1 -0
- package/dist/src/dataflow/state-store/interfaces.d.ts +159 -0
- package/dist/src/dataflow/state-store/interfaces.d.ts.map +1 -0
- package/dist/src/dataflow/state-store/interfaces.js +6 -0
- package/dist/src/dataflow/state-store/interfaces.js.map +1 -0
- package/dist/src/dataflow/steps.d.ts +222 -0
- package/dist/src/dataflow/steps.d.ts.map +1 -0
- package/dist/src/dataflow/steps.js +707 -0
- package/dist/src/dataflow/steps.js.map +1 -0
- package/dist/src/dataflow/steps.spec.d.ts +6 -0
- package/dist/src/dataflow/steps.spec.d.ts.map +1 -0
- package/dist/src/dataflow/steps.spec.js +343 -0
- package/dist/src/dataflow/steps.spec.js.map +1 -0
- package/dist/src/dataflow/types.d.ts +127 -0
- package/dist/src/dataflow/types.d.ts.map +1 -0
- package/dist/src/dataflow/types.js +7 -0
- package/dist/src/dataflow/types.js.map +1 -0
- package/dist/src/dataflow-orchestration.spec.d.ts +6 -0
- package/dist/src/dataflow-orchestration.spec.d.ts.map +1 -0
- package/dist/src/dataflow-orchestration.spec.js +1025 -0
- package/dist/src/dataflow-orchestration.spec.js.map +1 -0
- package/dist/src/dataflow.d.ts +113 -38
- package/dist/src/dataflow.d.ts.map +1 -1
- package/dist/src/dataflow.js +269 -416
- package/dist/src/dataflow.js.map +1 -1
- package/dist/src/dataflow.spec.d.ts +6 -0
- package/dist/src/dataflow.spec.d.ts.map +1 -0
- package/dist/src/dataflow.spec.js +663 -0
- package/dist/src/dataflow.spec.js.map +1 -0
- package/dist/src/dataset-refs.d.ts +124 -0
- package/dist/src/dataset-refs.d.ts.map +1 -0
- package/dist/src/dataset-refs.js +319 -0
- package/dist/src/dataset-refs.js.map +1 -0
- package/dist/src/errors.d.ts +39 -9
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +51 -8
- package/dist/src/errors.js.map +1 -1
- package/dist/src/errors.spec.d.ts +6 -0
- package/dist/src/errors.spec.d.ts.map +1 -0
- package/dist/src/errors.spec.js +276 -0
- package/dist/src/errors.spec.js.map +1 -0
- package/dist/src/execution/LocalTaskRunner.d.ts +73 -0
- package/dist/src/execution/LocalTaskRunner.d.ts.map +1 -0
- package/dist/src/execution/LocalTaskRunner.js +399 -0
- package/dist/src/execution/LocalTaskRunner.js.map +1 -0
- package/dist/src/execution/MockTaskRunner.d.ts +49 -0
- package/dist/src/execution/MockTaskRunner.d.ts.map +1 -0
- package/dist/src/execution/MockTaskRunner.js +54 -0
- package/dist/src/execution/MockTaskRunner.js.map +1 -0
- package/dist/src/execution/index.d.ts +16 -0
- package/dist/src/execution/index.d.ts.map +1 -0
- package/dist/src/execution/index.js +8 -0
- package/dist/src/execution/index.js.map +1 -0
- package/dist/src/execution/interfaces.d.ts +246 -0
- package/dist/src/execution/interfaces.d.ts.map +1 -0
- package/dist/src/execution/interfaces.js +6 -0
- package/dist/src/execution/interfaces.js.map +1 -0
- package/dist/src/execution/processHelpers.d.ts +20 -0
- package/dist/src/execution/processHelpers.d.ts.map +1 -0
- package/dist/src/execution/processHelpers.js +62 -0
- package/dist/src/execution/processHelpers.js.map +1 -0
- package/dist/src/executions.d.ts +71 -104
- package/dist/src/executions.d.ts.map +1 -1
- package/dist/src/executions.js +113 -481
- package/dist/src/executions.js.map +1 -1
- package/dist/src/executions.spec.d.ts +6 -0
- package/dist/src/executions.spec.d.ts.map +1 -0
- package/dist/src/executions.spec.js +387 -0
- package/dist/src/executions.spec.js.map +1 -0
- package/dist/src/formats.d.ts +18 -2
- package/dist/src/formats.d.ts.map +1 -1
- package/dist/src/formats.js +34 -2
- package/dist/src/formats.js.map +1 -1
- package/dist/src/gc.spec.d.ts +6 -0
- package/dist/src/gc.spec.d.ts.map +1 -0
- package/dist/src/gc.spec.js +512 -0
- package/dist/src/gc.spec.js.map +1 -0
- package/dist/src/index.d.ts +20 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +48 -18
- package/dist/src/index.js.map +1 -1
- package/dist/src/objects.d.ts +7 -53
- package/dist/src/objects.d.ts.map +1 -1
- package/dist/src/objects.js +13 -232
- package/dist/src/objects.js.map +1 -1
- package/dist/src/objects.spec.d.ts +6 -0
- package/dist/src/objects.spec.d.ts.map +1 -0
- package/dist/src/objects.spec.js +247 -0
- package/dist/src/objects.spec.js.map +1 -0
- package/dist/src/packages.d.ts +41 -14
- package/dist/src/packages.d.ts.map +1 -1
- package/dist/src/packages.js +151 -89
- package/dist/src/packages.js.map +1 -1
- package/dist/src/packages.spec.d.ts +6 -0
- package/dist/src/packages.spec.d.ts.map +1 -0
- package/dist/src/packages.spec.js +324 -0
- package/dist/src/packages.spec.js.map +1 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.d.ts +35 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.d.ts.map +1 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.js +107 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.js.map +1 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.spec.d.ts +6 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.spec.d.ts.map +1 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.spec.js +187 -0
- package/dist/src/storage/in-memory/InMemoryRepoStore.spec.js.map +1 -0
- package/dist/src/storage/in-memory/InMemoryStorage.d.ts +139 -0
- package/dist/src/storage/in-memory/InMemoryStorage.d.ts.map +1 -0
- package/dist/src/storage/in-memory/InMemoryStorage.js +439 -0
- package/dist/src/storage/in-memory/InMemoryStorage.js.map +1 -0
- package/dist/src/storage/in-memory/index.d.ts +12 -0
- package/dist/src/storage/in-memory/index.d.ts.map +1 -0
- package/dist/src/storage/in-memory/index.js +12 -0
- package/dist/src/storage/in-memory/index.js.map +1 -0
- package/dist/src/storage/index.d.ts +18 -0
- package/dist/src/storage/index.d.ts.map +1 -0
- package/dist/src/storage/index.js +10 -0
- package/dist/src/storage/index.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +581 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -0
- package/dist/src/storage/interfaces.js +6 -0
- package/dist/src/storage/interfaces.js.map +1 -0
- package/dist/src/storage/local/LocalBackend.d.ts +56 -0
- package/dist/src/storage/local/LocalBackend.d.ts.map +1 -0
- package/dist/src/storage/local/LocalBackend.js +145 -0
- package/dist/src/storage/local/LocalBackend.js.map +1 -0
- package/dist/src/storage/local/LocalDatasetRefStore.d.ts +22 -0
- package/dist/src/storage/local/LocalDatasetRefStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalDatasetRefStore.js +118 -0
- package/dist/src/storage/local/LocalDatasetRefStore.js.map +1 -0
- package/dist/src/storage/local/LocalLockService.d.ts +111 -0
- package/dist/src/storage/local/LocalLockService.d.ts.map +1 -0
- package/dist/src/storage/local/LocalLockService.js +364 -0
- package/dist/src/storage/local/LocalLockService.js.map +1 -0
- package/dist/src/storage/local/LocalLockService.spec.d.ts +6 -0
- package/dist/src/storage/local/LocalLockService.spec.d.ts.map +1 -0
- package/dist/src/storage/local/LocalLockService.spec.js +148 -0
- package/dist/src/storage/local/LocalLockService.spec.js.map +1 -0
- package/dist/src/storage/local/LocalLogStore.d.ts +23 -0
- package/dist/src/storage/local/LocalLogStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalLogStore.js +66 -0
- package/dist/src/storage/local/LocalLogStore.js.map +1 -0
- package/dist/src/storage/local/LocalObjectStore.d.ts +55 -0
- package/dist/src/storage/local/LocalObjectStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalObjectStore.js +300 -0
- package/dist/src/storage/local/LocalObjectStore.js.map +1 -0
- package/dist/src/storage/local/LocalRefStore.d.ts +50 -0
- package/dist/src/storage/local/LocalRefStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalRefStore.js +337 -0
- package/dist/src/storage/local/LocalRefStore.js.map +1 -0
- package/dist/src/storage/local/LocalRepoStore.d.ts +55 -0
- package/dist/src/storage/local/LocalRepoStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalRepoStore.js +365 -0
- package/dist/src/storage/local/LocalRepoStore.js.map +1 -0
- package/dist/src/storage/local/LocalRepoStore.spec.d.ts +6 -0
- package/dist/src/storage/local/LocalRepoStore.spec.d.ts.map +1 -0
- package/dist/src/storage/local/LocalRepoStore.spec.js +255 -0
- package/dist/src/storage/local/LocalRepoStore.spec.js.map +1 -0
- package/dist/src/storage/local/gc.d.ts +92 -0
- package/dist/src/storage/local/gc.d.ts.map +1 -0
- package/dist/src/storage/local/gc.js +377 -0
- package/dist/src/storage/local/gc.js.map +1 -0
- package/dist/src/storage/local/index.d.ts +18 -0
- package/dist/src/storage/local/index.d.ts.map +1 -0
- package/dist/src/storage/local/index.js +18 -0
- package/dist/src/storage/local/index.js.map +1 -0
- package/dist/src/storage/local/localHelpers.d.ts +25 -0
- package/dist/src/storage/local/localHelpers.d.ts.map +1 -0
- package/dist/src/storage/local/localHelpers.js +69 -0
- package/dist/src/storage/local/localHelpers.js.map +1 -0
- package/dist/src/{repository.d.ts → storage/local/repository.d.ts} +8 -4
- package/dist/src/storage/local/repository.d.ts.map +1 -0
- package/dist/src/{repository.js → storage/local/repository.js} +31 -29
- package/dist/src/storage/local/repository.js.map +1 -0
- package/dist/src/storage/local/repository.spec.d.ts +6 -0
- package/dist/src/storage/local/repository.spec.d.ts.map +1 -0
- package/dist/src/storage/local/repository.spec.js +186 -0
- package/dist/src/storage/local/repository.spec.js.map +1 -0
- package/dist/src/tasks.d.ts +16 -10
- package/dist/src/tasks.d.ts.map +1 -1
- package/dist/src/tasks.js +35 -41
- package/dist/src/tasks.js.map +1 -1
- package/dist/src/tasks.spec.d.ts +6 -0
- package/dist/src/tasks.spec.d.ts.map +1 -0
- package/dist/src/tasks.spec.js +105 -0
- package/dist/src/tasks.spec.js.map +1 -0
- package/dist/src/test-helpers.d.ts +5 -4
- package/dist/src/test-helpers.d.ts.map +1 -1
- package/dist/src/test-helpers.js +9 -21
- package/dist/src/test-helpers.js.map +1 -1
- package/dist/src/transfer/InMemoryTransferBackend.d.ts +75 -0
- package/dist/src/transfer/InMemoryTransferBackend.d.ts.map +1 -0
- package/dist/src/transfer/InMemoryTransferBackend.js +211 -0
- package/dist/src/transfer/InMemoryTransferBackend.js.map +1 -0
- package/dist/src/transfer/index.d.ts +9 -0
- package/dist/src/transfer/index.d.ts.map +1 -0
- package/dist/src/transfer/index.js +11 -0
- package/dist/src/transfer/index.js.map +1 -0
- package/dist/src/transfer/interfaces.d.ts +103 -0
- package/dist/src/transfer/interfaces.d.ts.map +1 -0
- package/dist/src/transfer/interfaces.js +6 -0
- package/dist/src/transfer/interfaces.js.map +1 -0
- package/dist/src/transfer/process.d.ts +55 -0
- package/dist/src/transfer/process.d.ts.map +1 -0
- package/dist/src/transfer/process.js +144 -0
- package/dist/src/transfer/process.js.map +1 -0
- package/dist/src/transfer/types.d.ts +106 -0
- package/dist/src/transfer/types.d.ts.map +1 -0
- package/dist/src/transfer/types.js +61 -0
- package/dist/src/transfer/types.js.map +1 -0
- package/dist/src/trees.d.ts +102 -63
- package/dist/src/trees.d.ts.map +1 -1
- package/dist/src/trees.js +319 -479
- package/dist/src/trees.js.map +1 -1
- package/dist/src/trees.spec.d.ts +6 -0
- package/dist/src/trees.spec.d.ts.map +1 -0
- package/dist/src/trees.spec.js +635 -0
- package/dist/src/trees.spec.js.map +1 -0
- package/dist/src/uuid.d.ts +26 -0
- package/dist/src/uuid.d.ts.map +1 -0
- package/dist/src/uuid.js +80 -0
- package/dist/src/uuid.js.map +1 -0
- package/dist/src/workspaceStatus.d.ts +6 -4
- package/dist/src/workspaceStatus.d.ts.map +1 -1
- package/dist/src/workspaceStatus.js +46 -60
- package/dist/src/workspaceStatus.js.map +1 -1
- package/dist/src/workspaces.d.ts +46 -47
- package/dist/src/workspaces.d.ts.map +1 -1
- package/dist/src/workspaces.js +281 -221
- package/dist/src/workspaces.js.map +1 -1
- package/dist/src/workspaces.spec.d.ts +6 -0
- package/dist/src/workspaces.spec.d.ts.map +1 -0
- package/dist/src/workspaces.spec.js +273 -0
- package/dist/src/workspaces.spec.js.map +1 -0
- package/package.json +15 -15
- package/dist/src/gc.d.ts +0 -54
- package/dist/src/gc.d.ts.map +0 -1
- package/dist/src/gc.js +0 -233
- package/dist/src/gc.js.map +0 -1
- package/dist/src/repository.d.ts.map +0 -1
- package/dist/src/repository.js.map +0 -1
- package/dist/src/workspaceLock.d.ts +0 -67
- package/dist/src/workspaceLock.d.ts.map +0 -1
- package/dist/src/workspaceLock.js +0 -217
- package/dist/src/workspaceLock.js.map +0 -1
package/LICENSE.md
CHANGED
|
@@ -34,6 +34,10 @@ On the Change Date (four years after each release), the Licensed Work will be ma
|
|
|
34
34
|
|
|
35
35
|
THE LICENSED WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. THE LICENSOR DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
36
36
|
|
|
37
|
+
### Package-Specific Licenses
|
|
38
|
+
|
|
39
|
+
Individual packages within this repository may have different licensing terms. See the LICENSE.md file in each package directory for details.
|
|
40
|
+
|
|
37
41
|
## Commercial Licensing
|
|
38
42
|
|
|
39
43
|
To obtain a commercial license for Production Use, contact:
|
package/README.md
CHANGED
|
@@ -17,81 +17,116 @@ Pure business logic with no UI dependencies. Use this to build custom tools, int
|
|
|
17
17
|
### Repository
|
|
18
18
|
|
|
19
19
|
```typescript
|
|
20
|
-
import {
|
|
20
|
+
import { repoInit, repoFind, repoGet } from '@elaraai/e3-core';
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
const repoPath =
|
|
22
|
+
await repoInit('/path/to/project');
|
|
23
|
+
const repoPath = repoFind(); // Searches cwd and parents
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
###
|
|
26
|
+
### Packages
|
|
27
27
|
|
|
28
28
|
```typescript
|
|
29
|
-
import {
|
|
29
|
+
import { packageImport, packageList, packageResolve } from '@elaraai/e3-core';
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const
|
|
31
|
+
await packageImport(repoPath, zipPath);
|
|
32
|
+
const packages = await packageList(repoPath);
|
|
33
|
+
const pkg = await packageResolve(repoPath, 'my-pkg@1.0.0');
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
###
|
|
36
|
+
### Workspaces
|
|
37
37
|
|
|
38
38
|
```typescript
|
|
39
|
-
import {
|
|
39
|
+
import { workspaceCreate, workspaceList, workspaceDeploy, workspaceStatus } from '@elaraai/e3-core';
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
await workspaceCreate(repoPath, 'dev');
|
|
42
|
+
await workspaceDeploy(repoPath, 'dev', 'my-pkg@1.0.0');
|
|
43
|
+
const status = await workspaceStatus(storage, repoPath, 'dev');
|
|
43
44
|
```
|
|
44
45
|
|
|
45
|
-
###
|
|
46
|
+
### Datasets
|
|
46
47
|
|
|
47
48
|
```typescript
|
|
48
|
-
import {
|
|
49
|
+
import { workspaceGetDataset, workspaceSetDataset } from '@elaraai/e3-core';
|
|
49
50
|
|
|
50
|
-
await
|
|
51
|
-
|
|
52
|
-
const tasks = await listTasks(repoPath);
|
|
51
|
+
const value = await workspaceGetDataset(storage, repoPath, 'dev', ['inputs', 'config']);
|
|
52
|
+
await workspaceSetDataset(storage, repoPath, 'dev', ['inputs', 'config'], newValue);
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
###
|
|
55
|
+
### Dataflow Execution
|
|
56
56
|
|
|
57
57
|
```typescript
|
|
58
|
-
import {
|
|
58
|
+
import { dataflowExecute, dataflowStart } from '@elaraai/e3-core';
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
const
|
|
60
|
+
// Blocking execution
|
|
61
|
+
const result = await dataflowExecute(storage, repoPath, 'dev', { force: true });
|
|
62
|
+
|
|
63
|
+
// Non-blocking execution
|
|
64
|
+
const handle = await dataflowStart(storage, repoPath, 'dev');
|
|
65
|
+
```
|
|
66
|
+
## Claude Code plugin
|
|
67
|
+
|
|
68
|
+
The East ecosystem also ships a [Claude Code](https://claude.com/claude-code) plugin — East language skills, example search, and preemptive diagnostics for East code — installed separately from the `elaraai` marketplace:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
# Inside Claude Code
|
|
72
|
+
/plugin marketplace add elaraai/east-workspace
|
|
73
|
+
/plugin install east@elaraai
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# From a terminal
|
|
78
|
+
claude plugin marketplace add elaraai/east-workspace
|
|
79
|
+
claude plugin install east@elaraai
|
|
62
80
|
```
|
|
81
|
+
|
|
63
82
|
## License
|
|
64
83
|
|
|
65
84
|
BSL 1.1. See [LICENSE.md](./LICENSE.md).
|
|
66
85
|
|
|
67
86
|
### Ecosystem
|
|
68
87
|
|
|
69
|
-
- **[East
|
|
70
|
-
- [@elaraai/east
|
|
71
|
-
|
|
88
|
+
- **[East](https://github.com/elaraai/east-workspace/tree/main/libs/east)**: Statically typed, expression-based language with serializable IR. Run portable logic across TypeScript, Python, C, and other runtimes.
|
|
89
|
+
- [@elaraai/east](https://www.npmjs.com/package/@elaraai/east): Core language SDK with type system, expressions, and reference JS compiler
|
|
90
|
+
|
|
91
|
+
- **[East Node](https://github.com/elaraai/east-workspace/tree/main/libs/east-node)**: Node.js platform functions for I/O, databases, and system operations.
|
|
92
|
+
- [@elaraai/east-node-std](https://www.npmjs.com/package/@elaraai/east-node-std): Console, FileSystem, Fetch, Crypto, Time, Path, Random
|
|
93
|
+
- [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, compression
|
|
72
94
|
- [@elaraai/east-node-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): CLI for running East IR programs in Node.js
|
|
73
95
|
|
|
74
|
-
- **[East
|
|
75
|
-
-
|
|
96
|
+
- **[East C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11 native runtime for executing East IR. Tarballed for `linux-x64` and `linux-arm64`, attached to each GitHub Release.
|
|
97
|
+
- `east-c`: Core runtime — type system, IR interpreter, 200+ builtins, serialization (Beast2, JSON, CSV, East text)
|
|
98
|
+
- `east-c-std`: Console, FileSystem, Fetch, Crypto, Time, Path, Random
|
|
99
|
+
- `east-c-cli`: CLI for running East IR programs natively
|
|
100
|
+
|
|
101
|
+
- **[East Python](https://github.com/elaraai/east-workspace/tree/main/libs/east-py)**: Python runtime, standard platform, I/O, and data-science platform functions. Published to PyPI.
|
|
102
|
+
- [east-py](https://pypi.org/project/east-py/): Core Python runtime — type system, IR compiler, 212+ builtins, Cython-accelerated hot paths
|
|
103
|
+
- [east-py-std](https://pypi.org/project/east-py-std/): Console, FileSystem, Fetch, Crypto, Time, Path, Random
|
|
104
|
+
- [east-py-io](https://pypi.org/project/east-py-io/): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, compression
|
|
105
|
+
- [east-py-cli](https://pypi.org/project/east-py-cli/): CLI for running East IR programs in Python
|
|
106
|
+
- [east-py-datascience](https://pypi.org/project/east-py-datascience/) (PyPI) + [@elaraai/east-py-datascience](https://www.npmjs.com/package/@elaraai/east-py-datascience) (npm): Optimization (MADS, Optuna, ALNS, GoogleOR), ML (XGBoost, LightGBM, NGBoost, PyTorch, Lightning, GP), Bayesian inference (PyMC), explainability (SHAP), conformal prediction (MAPIE)
|
|
76
107
|
|
|
77
|
-
- **[East UI](https://github.com/elaraai/east-ui)**:
|
|
108
|
+
- **[East UI](https://github.com/elaraai/east-workspace/tree/main/libs/east-ui)**: Typed UI component definitions and React renderer, plus VS Code preview.
|
|
78
109
|
- [@elaraai/east-ui](https://www.npmjs.com/package/@elaraai/east-ui): 50+ typed UI components for layouts, forms, charts, tables, dialogs
|
|
79
|
-
- [@elaraai/east-ui-components](https://www.npmjs.com/package/@elaraai/east-ui-components): React renderer with Chakra UI styling
|
|
110
|
+
- [@elaraai/east-ui-components](https://www.npmjs.com/package/@elaraai/east-ui-components): React renderer with Chakra UI v3 styling
|
|
111
|
+
- [@elaraai/e3-ui](https://www.npmjs.com/package/@elaraai/e3-ui): e3 + UI bridge — Data bindings, `e3.ui()` task, manifest
|
|
112
|
+
- [@elaraai/e3-ui-components](https://www.npmjs.com/package/@elaraai/e3-ui-components): React Query hooks and preview components for the e3 API
|
|
113
|
+
- [east-ui-preview](https://marketplace.visualstudio.com/items?itemName=ElaraAI.east-ui-preview): VS Code extension for live East UI component preview
|
|
80
114
|
|
|
81
|
-
- **[e3
|
|
115
|
+
- **[e3 — East Execution Engine](https://github.com/elaraai/east-workspace/tree/main/libs/e3)**: Durable execution engine for running East pipelines at scale. Git-like content-addressable storage, automatic memoization, reactive dataflow, real-time monitoring.
|
|
82
116
|
- [@elaraai/e3](https://www.npmjs.com/package/@elaraai/e3): SDK for authoring e3 packages with typed tasks and pipelines
|
|
83
|
-
- [@elaraai/e3-core](https://www.npmjs.com/package/@elaraai/e3-core):
|
|
117
|
+
- [@elaraai/e3-core](https://www.npmjs.com/package/@elaraai/e3-core): Object store, dataflow orchestrator, execution state
|
|
84
118
|
- [@elaraai/e3-types](https://www.npmjs.com/package/@elaraai/e3-types): Shared type definitions for e3 packages
|
|
85
|
-
- [@elaraai/e3-cli](https://www.npmjs.com/package/@elaraai/e3-cli): `e3
|
|
86
|
-
- [@elaraai/e3-api-client](https://www.npmjs.com/package/@elaraai/e3-api-client): HTTP client for remote e3
|
|
119
|
+
- [@elaraai/e3-cli](https://www.npmjs.com/package/@elaraai/e3-cli): `e3 repo`, `e3 package`, `e3 workspace`, `e3 start`, `e3 watch`, `e3 logs` commands
|
|
120
|
+
- [@elaraai/e3-api-client](https://www.npmjs.com/package/@elaraai/e3-api-client): HTTP client for remote e3 repositories
|
|
87
121
|
- [@elaraai/e3-api-server](https://www.npmjs.com/package/@elaraai/e3-api-server): REST API server for e3 repositories
|
|
122
|
+
- [@elaraai/e3-api-tests](https://www.npmjs.com/package/@elaraai/e3-api-tests): Shared API compliance test suites
|
|
88
123
|
|
|
89
124
|
## Links
|
|
90
125
|
|
|
91
|
-
- [East Language](https://github.com/elaraai/east)
|
|
92
|
-
- [East Python Runtime](https://github.com/elaraai/east-py)
|
|
126
|
+
- [East Language](https://github.com/elaraai/east-workspace/tree/main/libs/east)
|
|
127
|
+
- [East Python Runtime](https://github.com/elaraai/east-workspace/tree/main/libs/east-py)
|
|
93
128
|
- [Elara AI](https://elaraai.com/)
|
|
94
|
-
- [Issues](https://github.com/elaraai/
|
|
129
|
+
- [Issues](https://github.com/elaraai/east-workspace/issues)
|
|
95
130
|
- support@elara.ai
|
|
96
131
|
|
|
97
132
|
## About Elara
|
|
@@ -100,4 +135,8 @@ East is developed by [Elara AI Pty Ltd](https://elaraai.com/), an AI-powered pla
|
|
|
100
135
|
|
|
101
136
|
---
|
|
102
137
|
|
|
138
|
+
*Developed by [Elara AI Pty Ltd](https://elaraai.com/).*
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
103
142
|
*Developed by [Elara AI Pty Ltd](https://elaraai.com/)*
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* API compatibility layer for dataflow execution.
|
|
7
|
+
*
|
|
8
|
+
* Maps e3-core internal event/status types to API-compatible types
|
|
9
|
+
* used by e3-api-server and e3-api-client. This ensures consumers
|
|
10
|
+
* of the API see a stable interface regardless of internal changes.
|
|
11
|
+
*
|
|
12
|
+
* Vocabulary mappings:
|
|
13
|
+
* - e3-core 'cancelled' -> API 'aborted'
|
|
14
|
+
* - e3-core 'task_started' -> API 'start'
|
|
15
|
+
* - e3-core 'task_completed' (cached: false) -> API 'complete'
|
|
16
|
+
* - e3-core 'task_completed' (cached: true) -> API 'cached'
|
|
17
|
+
* - e3-core 'task_failed' -> API 'failed' or 'error'
|
|
18
|
+
* - e3-core 'task_skipped' -> API 'input_unavailable'
|
|
19
|
+
*/
|
|
20
|
+
import type { ExecutionEvent, DataflowExecutionStatus, DataflowExecutionState } from './types.js';
|
|
21
|
+
/**
|
|
22
|
+
* API-compatible event types for dataflow execution polling.
|
|
23
|
+
* These match the DataflowEventType from e3-api-server/types.ts.
|
|
24
|
+
*/
|
|
25
|
+
export type ApiDataflowEventType = 'start' | 'complete' | 'cached' | 'failed' | 'error' | 'input_unavailable';
|
|
26
|
+
/**
|
|
27
|
+
* API-compatible event structure.
|
|
28
|
+
*/
|
|
29
|
+
export interface ApiDataflowEvent {
|
|
30
|
+
type: ApiDataflowEventType;
|
|
31
|
+
task: string;
|
|
32
|
+
timestamp: string;
|
|
33
|
+
duration?: number;
|
|
34
|
+
exitCode?: bigint;
|
|
35
|
+
message?: string;
|
|
36
|
+
reason?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* API-compatible execution status.
|
|
40
|
+
*/
|
|
41
|
+
export type ApiExecutionStatus = 'running' | 'completed' | 'failed' | 'aborted';
|
|
42
|
+
/**
|
|
43
|
+
* API-compatible execution summary.
|
|
44
|
+
*/
|
|
45
|
+
export interface ApiExecutionSummary {
|
|
46
|
+
executed: bigint;
|
|
47
|
+
cached: bigint;
|
|
48
|
+
failed: bigint;
|
|
49
|
+
skipped: bigint;
|
|
50
|
+
duration: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* API-compatible execution state (matches DataflowExecutionStateType).
|
|
54
|
+
*/
|
|
55
|
+
export interface ApiExecutionState {
|
|
56
|
+
status: ApiExecutionStatus;
|
|
57
|
+
startedAt: string;
|
|
58
|
+
completedAt: string | null;
|
|
59
|
+
summary: ApiExecutionSummary | null;
|
|
60
|
+
events: ApiDataflowEvent[];
|
|
61
|
+
totalEvents: bigint;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Convert e3-core execution event to API-compatible event.
|
|
65
|
+
*
|
|
66
|
+
* Returns null for events that don't have an API equivalent
|
|
67
|
+
* (e.g., execution_started, task_ready, execution_completed, execution_cancelled).
|
|
68
|
+
*
|
|
69
|
+
* @param event - The e3-core execution event (variant format)
|
|
70
|
+
* @returns API-compatible event or null if no mapping exists
|
|
71
|
+
*/
|
|
72
|
+
export declare function coreEventToApiEvent(event: ExecutionEvent): ApiDataflowEvent | null;
|
|
73
|
+
/**
|
|
74
|
+
* Convert e3-core execution status to API status.
|
|
75
|
+
*
|
|
76
|
+
* @param status - The e3-core execution status
|
|
77
|
+
* @returns API-compatible status string
|
|
78
|
+
*/
|
|
79
|
+
export declare function coreStatusToApiStatus(status: DataflowExecutionStatus): ApiExecutionStatus;
|
|
80
|
+
/**
|
|
81
|
+
* Convert e3-core execution state to API-compatible state.
|
|
82
|
+
*
|
|
83
|
+
* @param state - The e3-core execution state
|
|
84
|
+
* @param events - Events to include (already filtered by offset/limit)
|
|
85
|
+
* @param totalApiEvents - Total number of API-visible events (for pagination)
|
|
86
|
+
* @param duration - Total execution duration in milliseconds
|
|
87
|
+
* @returns API-compatible execution state
|
|
88
|
+
*/
|
|
89
|
+
export declare function coreStateToApiState(state: DataflowExecutionState, events: ExecutionEvent[], totalApiEvents: number, duration: number): ApiExecutionState;
|
|
90
|
+
//# sourceMappingURL=api-compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-compat.d.ts","sourceRoot":"","sources":["../../../src/dataflow/api-compat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAkElF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,kBAAkB,CAWzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,cAAc,EAAE,EACxB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,iBAAiB,CAmCnB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
// =============================================================================
|
|
6
|
+
// Conversion Functions
|
|
7
|
+
// =============================================================================
|
|
8
|
+
/**
|
|
9
|
+
* Convert e3-core execution event to API-compatible event.
|
|
10
|
+
*
|
|
11
|
+
* Returns null for events that don't have an API equivalent
|
|
12
|
+
* (e.g., execution_started, task_ready, execution_completed, execution_cancelled).
|
|
13
|
+
*
|
|
14
|
+
* @param event - The e3-core execution event (variant format)
|
|
15
|
+
* @returns API-compatible event or null if no mapping exists
|
|
16
|
+
*/
|
|
17
|
+
export function coreEventToApiEvent(event) {
|
|
18
|
+
switch (event.type) {
|
|
19
|
+
case 'task_started':
|
|
20
|
+
return {
|
|
21
|
+
type: 'start',
|
|
22
|
+
task: event.value.task,
|
|
23
|
+
timestamp: event.value.timestamp.toISOString(),
|
|
24
|
+
};
|
|
25
|
+
case 'task_completed':
|
|
26
|
+
if (event.value.cached) {
|
|
27
|
+
return {
|
|
28
|
+
type: 'cached',
|
|
29
|
+
task: event.value.task,
|
|
30
|
+
timestamp: event.value.timestamp.toISOString(),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
type: 'complete',
|
|
35
|
+
task: event.value.task,
|
|
36
|
+
timestamp: event.value.timestamp.toISOString(),
|
|
37
|
+
duration: Number(event.value.duration),
|
|
38
|
+
};
|
|
39
|
+
case 'task_failed': {
|
|
40
|
+
// If there's an exit code, treat as 'failed'; otherwise as 'error'
|
|
41
|
+
const exitCode = event.value.exitCode.type === 'some' ? event.value.exitCode.value : undefined;
|
|
42
|
+
const error = event.value.error.type === 'some' ? event.value.error.value : undefined;
|
|
43
|
+
if (exitCode !== undefined) {
|
|
44
|
+
return {
|
|
45
|
+
type: 'failed',
|
|
46
|
+
task: event.value.task,
|
|
47
|
+
timestamp: event.value.timestamp.toISOString(),
|
|
48
|
+
duration: Number(event.value.duration),
|
|
49
|
+
exitCode,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
type: 'error',
|
|
54
|
+
task: event.value.task,
|
|
55
|
+
timestamp: event.value.timestamp.toISOString(),
|
|
56
|
+
message: error ?? 'Unknown error',
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
case 'task_skipped':
|
|
60
|
+
return {
|
|
61
|
+
type: 'input_unavailable',
|
|
62
|
+
task: event.value.task,
|
|
63
|
+
timestamp: event.value.timestamp.toISOString(),
|
|
64
|
+
reason: `Upstream task '${event.value.cause}' failed`,
|
|
65
|
+
};
|
|
66
|
+
// Events without API equivalents.
|
|
67
|
+
// Reactive events (input_changed, task_invalidated, task_deferred) are
|
|
68
|
+
// internal to the execution loop and not yet exposed via the API.
|
|
69
|
+
case 'execution_started':
|
|
70
|
+
case 'task_ready':
|
|
71
|
+
case 'execution_completed':
|
|
72
|
+
case 'execution_cancelled':
|
|
73
|
+
case 'input_changed':
|
|
74
|
+
case 'task_invalidated':
|
|
75
|
+
case 'task_deferred':
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Convert e3-core execution status to API status.
|
|
81
|
+
*
|
|
82
|
+
* @param status - The e3-core execution status
|
|
83
|
+
* @returns API-compatible status string
|
|
84
|
+
*/
|
|
85
|
+
export function coreStatusToApiStatus(status) {
|
|
86
|
+
switch (status) {
|
|
87
|
+
case 'running':
|
|
88
|
+
return 'running';
|
|
89
|
+
case 'completed':
|
|
90
|
+
return 'completed';
|
|
91
|
+
case 'failed':
|
|
92
|
+
return 'failed';
|
|
93
|
+
case 'cancelled':
|
|
94
|
+
return 'aborted';
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Convert e3-core execution state to API-compatible state.
|
|
99
|
+
*
|
|
100
|
+
* @param state - The e3-core execution state
|
|
101
|
+
* @param events - Events to include (already filtered by offset/limit)
|
|
102
|
+
* @param totalApiEvents - Total number of API-visible events (for pagination)
|
|
103
|
+
* @param duration - Total execution duration in milliseconds
|
|
104
|
+
* @returns API-compatible execution state
|
|
105
|
+
*/
|
|
106
|
+
export function coreStateToApiState(state, events, totalApiEvents, duration) {
|
|
107
|
+
// Convert events, filtering out those without API equivalents
|
|
108
|
+
const apiEvents = [];
|
|
109
|
+
for (const event of events) {
|
|
110
|
+
const apiEvent = coreEventToApiEvent(event);
|
|
111
|
+
if (apiEvent !== null) {
|
|
112
|
+
apiEvents.push(apiEvent);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Build summary if execution is complete
|
|
116
|
+
let summary = null;
|
|
117
|
+
if (state.status !== 'running') {
|
|
118
|
+
summary = {
|
|
119
|
+
executed: state.executed,
|
|
120
|
+
cached: state.cached,
|
|
121
|
+
failed: state.failed,
|
|
122
|
+
skipped: state.skipped,
|
|
123
|
+
duration,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
// Get completedAt value (handle Option type)
|
|
127
|
+
const completedAtValue = state.completedAt.type === 'some'
|
|
128
|
+
? state.completedAt.value.toISOString()
|
|
129
|
+
: null;
|
|
130
|
+
return {
|
|
131
|
+
status: coreStatusToApiStatus(state.status),
|
|
132
|
+
startedAt: state.startedAt.toISOString(),
|
|
133
|
+
completedAt: completedAtValue,
|
|
134
|
+
summary,
|
|
135
|
+
events: apiEvents,
|
|
136
|
+
totalEvents: BigInt(totalApiEvents),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=api-compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-compat.js","sourceRoot":"","sources":["../../../src/dataflow/api-compat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-compat.spec.d.ts","sourceRoot":"","sources":["../../../src/dataflow/api-compat.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it } from 'node:test';
|
|
6
|
+
import assert from 'node:assert';
|
|
7
|
+
import { variant, some, none } from '@elaraai/east';
|
|
8
|
+
import { coreEventToApiEvent, coreStateToApiState } from './api-compat.js';
|
|
9
|
+
const now = new Date('2025-01-15T12:00:00Z');
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Helper: build a minimal DataflowExecutionState
|
|
12
|
+
// =============================================================================
|
|
13
|
+
function makeState(overrides = {}) {
|
|
14
|
+
return {
|
|
15
|
+
id: '1',
|
|
16
|
+
repo: 'test-repo',
|
|
17
|
+
workspace: 'ws',
|
|
18
|
+
startedAt: now,
|
|
19
|
+
concurrency: 4n,
|
|
20
|
+
force: false,
|
|
21
|
+
filter: none,
|
|
22
|
+
graph: none,
|
|
23
|
+
graphHash: none,
|
|
24
|
+
tasks: new Map(),
|
|
25
|
+
executed: 0n,
|
|
26
|
+
cached: 0n,
|
|
27
|
+
failed: 0n,
|
|
28
|
+
skipped: 0n,
|
|
29
|
+
status: 'completed',
|
|
30
|
+
completedAt: some(now),
|
|
31
|
+
error: none,
|
|
32
|
+
events: [],
|
|
33
|
+
eventSeq: 0n,
|
|
34
|
+
versionVectors: new Map(),
|
|
35
|
+
inputSnapshot: new Map(),
|
|
36
|
+
taskOutputPaths: [],
|
|
37
|
+
reexecuted: 0n,
|
|
38
|
+
...overrides,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
// =============================================================================
|
|
42
|
+
// coreEventToApiEvent
|
|
43
|
+
// =============================================================================
|
|
44
|
+
describe('coreEventToApiEvent', () => {
|
|
45
|
+
it('maps task_started to start', () => {
|
|
46
|
+
const event = variant('task_started', {
|
|
47
|
+
seq: 1n, timestamp: now, task: 'build',
|
|
48
|
+
});
|
|
49
|
+
const result = coreEventToApiEvent(event);
|
|
50
|
+
assert.strictEqual(result?.type, 'start');
|
|
51
|
+
assert.strictEqual(result?.task, 'build');
|
|
52
|
+
});
|
|
53
|
+
it('maps task_completed (not cached) to complete', () => {
|
|
54
|
+
const event = variant('task_completed', {
|
|
55
|
+
seq: 2n, timestamp: now, task: 'build',
|
|
56
|
+
cached: false, outputHash: 'abc', duration: 1000n,
|
|
57
|
+
});
|
|
58
|
+
const result = coreEventToApiEvent(event);
|
|
59
|
+
assert.strictEqual(result?.type, 'complete');
|
|
60
|
+
assert.strictEqual(result?.duration, 1000);
|
|
61
|
+
});
|
|
62
|
+
it('maps task_completed (cached) to cached', () => {
|
|
63
|
+
const event = variant('task_completed', {
|
|
64
|
+
seq: 2n, timestamp: now, task: 'build',
|
|
65
|
+
cached: true, outputHash: 'abc', duration: 0n,
|
|
66
|
+
});
|
|
67
|
+
const result = coreEventToApiEvent(event);
|
|
68
|
+
assert.strictEqual(result?.type, 'cached');
|
|
69
|
+
});
|
|
70
|
+
it('maps task_failed with exitCode to failed', () => {
|
|
71
|
+
const event = variant('task_failed', {
|
|
72
|
+
seq: 3n, timestamp: now, task: 'build',
|
|
73
|
+
error: none, exitCode: some(1n), duration: 500n,
|
|
74
|
+
});
|
|
75
|
+
const result = coreEventToApiEvent(event);
|
|
76
|
+
assert.strictEqual(result?.type, 'failed');
|
|
77
|
+
assert.strictEqual(result?.exitCode, 1n);
|
|
78
|
+
});
|
|
79
|
+
it('maps task_failed without exitCode to error', () => {
|
|
80
|
+
const event = variant('task_failed', {
|
|
81
|
+
seq: 3n, timestamp: now, task: 'build',
|
|
82
|
+
error: some('OOM'), exitCode: none, duration: 500n,
|
|
83
|
+
});
|
|
84
|
+
const result = coreEventToApiEvent(event);
|
|
85
|
+
assert.strictEqual(result?.type, 'error');
|
|
86
|
+
assert.strictEqual(result?.message, 'OOM');
|
|
87
|
+
});
|
|
88
|
+
it('maps task_skipped to input_unavailable', () => {
|
|
89
|
+
const event = variant('task_skipped', {
|
|
90
|
+
seq: 4n, timestamp: now, task: 'deploy', cause: 'build',
|
|
91
|
+
});
|
|
92
|
+
const result = coreEventToApiEvent(event);
|
|
93
|
+
assert.strictEqual(result?.type, 'input_unavailable');
|
|
94
|
+
assert.strictEqual(result?.reason, "Upstream task 'build' failed");
|
|
95
|
+
});
|
|
96
|
+
it('returns null for execution_started', () => {
|
|
97
|
+
const event = variant('execution_started', {
|
|
98
|
+
seq: 0n, timestamp: now, executionId: '1', totalTasks: 3n,
|
|
99
|
+
});
|
|
100
|
+
assert.strictEqual(coreEventToApiEvent(event), null);
|
|
101
|
+
});
|
|
102
|
+
it('returns null for task_ready', () => {
|
|
103
|
+
const event = variant('task_ready', {
|
|
104
|
+
seq: 1n, timestamp: now, task: 'build',
|
|
105
|
+
});
|
|
106
|
+
assert.strictEqual(coreEventToApiEvent(event), null);
|
|
107
|
+
});
|
|
108
|
+
it('returns null for execution_completed', () => {
|
|
109
|
+
const event = variant('execution_completed', {
|
|
110
|
+
seq: 5n, timestamp: now, success: true,
|
|
111
|
+
executed: 1n, cached: 0n, failed: 0n, skipped: 0n, duration: 1000n,
|
|
112
|
+
});
|
|
113
|
+
assert.strictEqual(coreEventToApiEvent(event), null);
|
|
114
|
+
});
|
|
115
|
+
it('returns null for execution_cancelled', () => {
|
|
116
|
+
const event = variant('execution_cancelled', {
|
|
117
|
+
seq: 5n, timestamp: now, reason: none,
|
|
118
|
+
});
|
|
119
|
+
assert.strictEqual(coreEventToApiEvent(event), null);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
// =============================================================================
|
|
123
|
+
// coreStateToApiState — totalEvents
|
|
124
|
+
// =============================================================================
|
|
125
|
+
describe('coreStateToApiState', () => {
|
|
126
|
+
it('totalEvents counts only API-visible events', () => {
|
|
127
|
+
// 5 core events: execution_started, task_ready, task_started, task_completed, execution_completed
|
|
128
|
+
// Only 2 are API-visible: task_started → start, task_completed → complete
|
|
129
|
+
const events = [
|
|
130
|
+
variant('execution_started', {
|
|
131
|
+
seq: 0n, timestamp: now, executionId: '1', totalTasks: 1n,
|
|
132
|
+
}),
|
|
133
|
+
variant('task_ready', {
|
|
134
|
+
seq: 1n, timestamp: now, task: 'build',
|
|
135
|
+
}),
|
|
136
|
+
variant('task_started', {
|
|
137
|
+
seq: 2n, timestamp: now, task: 'build',
|
|
138
|
+
}),
|
|
139
|
+
variant('task_completed', {
|
|
140
|
+
seq: 3n, timestamp: now, task: 'build',
|
|
141
|
+
cached: false, outputHash: 'abc', duration: 1000n,
|
|
142
|
+
}),
|
|
143
|
+
variant('execution_completed', {
|
|
144
|
+
seq: 4n, timestamp: now, success: true,
|
|
145
|
+
executed: 1n, cached: 0n, failed: 0n, skipped: 0n, duration: 1000n,
|
|
146
|
+
}),
|
|
147
|
+
];
|
|
148
|
+
const state = makeState({ executed: 1n, events });
|
|
149
|
+
const result = coreStateToApiState(state, events, 2, 1000);
|
|
150
|
+
assert.strictEqual(result.events.length, 2);
|
|
151
|
+
assert.strictEqual(result.totalEvents, 2n);
|
|
152
|
+
assert.strictEqual(result.events[0]?.type, 'start');
|
|
153
|
+
assert.strictEqual(result.events[1]?.type, 'complete');
|
|
154
|
+
});
|
|
155
|
+
it('totalEvents is 0 when all events are internal', () => {
|
|
156
|
+
const events = [
|
|
157
|
+
variant('execution_started', {
|
|
158
|
+
seq: 0n, timestamp: now, executionId: '1', totalTasks: 0n,
|
|
159
|
+
}),
|
|
160
|
+
variant('execution_completed', {
|
|
161
|
+
seq: 1n, timestamp: now, success: true,
|
|
162
|
+
executed: 0n, cached: 0n, failed: 0n, skipped: 0n, duration: 0n,
|
|
163
|
+
}),
|
|
164
|
+
];
|
|
165
|
+
const state = makeState({ events });
|
|
166
|
+
const result = coreStateToApiState(state, events, 0, 0);
|
|
167
|
+
assert.strictEqual(result.events.length, 0);
|
|
168
|
+
assert.strictEqual(result.totalEvents, 0n);
|
|
169
|
+
});
|
|
170
|
+
it('includes summary only for non-running executions', () => {
|
|
171
|
+
const state = makeState({ status: 'running', completedAt: none });
|
|
172
|
+
const result = coreStateToApiState(state, [], 0, 500);
|
|
173
|
+
assert.strictEqual(result.summary, null);
|
|
174
|
+
assert.strictEqual(result.status, 'running');
|
|
175
|
+
});
|
|
176
|
+
it('maps cancelled status to aborted', () => {
|
|
177
|
+
const state = makeState({ status: 'cancelled' });
|
|
178
|
+
const result = coreStateToApiState(state, [], 0, 0);
|
|
179
|
+
assert.strictEqual(result.status, 'aborted');
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
//# sourceMappingURL=api-compat.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-compat.spec.js","sourceRoot":"","sources":["../../../src/dataflow/api-compat.spec.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
|
+
/**
|
|
6
|
+
* Resumable dataflow execution module.
|
|
7
|
+
*
|
|
8
|
+
* This module provides interfaces and implementations for resumable,
|
|
9
|
+
* portable dataflow execution that supports both local and cloud environments.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
export * from './types.js';
|
|
14
|
+
export * from './steps.js';
|
|
15
|
+
export * from './state-store/index.js';
|
|
16
|
+
export * from './orchestrator/index.js';
|
|
17
|
+
export * from './api-compat.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataflow/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,wBAAwB,CAAC;AAGvC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iBAAiB,CAAC"}
|