@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.
Files changed (285) hide show
  1. package/LICENSE.md +4 -0
  2. package/README.md +74 -35
  3. package/dist/src/dataflow/api-compat.d.ts +90 -0
  4. package/dist/src/dataflow/api-compat.d.ts.map +1 -0
  5. package/dist/src/dataflow/api-compat.js +139 -0
  6. package/dist/src/dataflow/api-compat.js.map +1 -0
  7. package/dist/src/dataflow/api-compat.spec.d.ts +6 -0
  8. package/dist/src/dataflow/api-compat.spec.d.ts.map +1 -0
  9. package/dist/src/dataflow/api-compat.spec.js +182 -0
  10. package/dist/src/dataflow/api-compat.spec.js.map +1 -0
  11. package/dist/src/dataflow/index.d.ts +18 -0
  12. package/dist/src/dataflow/index.d.ts.map +1 -0
  13. package/dist/src/dataflow/index.js +23 -0
  14. package/dist/src/dataflow/index.js.map +1 -0
  15. package/dist/src/dataflow/orchestrator/LocalOrchestrator.d.ts +76 -0
  16. package/dist/src/dataflow/orchestrator/LocalOrchestrator.d.ts.map +1 -0
  17. package/dist/src/dataflow/orchestrator/LocalOrchestrator.js +729 -0
  18. package/dist/src/dataflow/orchestrator/LocalOrchestrator.js.map +1 -0
  19. package/dist/src/dataflow/orchestrator/index.d.ts +12 -0
  20. package/dist/src/dataflow/orchestrator/index.d.ts.map +1 -0
  21. package/dist/src/dataflow/orchestrator/index.js +12 -0
  22. package/dist/src/dataflow/orchestrator/index.js.map +1 -0
  23. package/dist/src/dataflow/orchestrator/interfaces.d.ts +163 -0
  24. package/dist/src/dataflow/orchestrator/interfaces.d.ts.map +1 -0
  25. package/dist/src/dataflow/orchestrator/interfaces.js +52 -0
  26. package/dist/src/dataflow/orchestrator/interfaces.js.map +1 -0
  27. package/dist/src/dataflow/state-store/FileStateStore.d.ts +67 -0
  28. package/dist/src/dataflow/state-store/FileStateStore.d.ts.map +1 -0
  29. package/dist/src/dataflow/state-store/FileStateStore.js +300 -0
  30. package/dist/src/dataflow/state-store/FileStateStore.js.map +1 -0
  31. package/dist/src/dataflow/state-store/InMemoryStateStore.d.ts +42 -0
  32. package/dist/src/dataflow/state-store/InMemoryStateStore.d.ts.map +1 -0
  33. package/dist/src/dataflow/state-store/InMemoryStateStore.js +229 -0
  34. package/dist/src/dataflow/state-store/InMemoryStateStore.js.map +1 -0
  35. package/dist/src/dataflow/state-store/InMemoryStateStore.spec.d.ts +6 -0
  36. package/dist/src/dataflow/state-store/InMemoryStateStore.spec.d.ts.map +1 -0
  37. package/dist/src/dataflow/state-store/InMemoryStateStore.spec.js +114 -0
  38. package/dist/src/dataflow/state-store/InMemoryStateStore.spec.js.map +1 -0
  39. package/dist/src/dataflow/state-store/index.d.ts +13 -0
  40. package/dist/src/dataflow/state-store/index.d.ts.map +1 -0
  41. package/dist/src/dataflow/state-store/index.js +13 -0
  42. package/dist/src/dataflow/state-store/index.js.map +1 -0
  43. package/dist/src/dataflow/state-store/interfaces.d.ts +159 -0
  44. package/dist/src/dataflow/state-store/interfaces.d.ts.map +1 -0
  45. package/dist/src/dataflow/state-store/interfaces.js +6 -0
  46. package/dist/src/dataflow/state-store/interfaces.js.map +1 -0
  47. package/dist/src/dataflow/steps.d.ts +222 -0
  48. package/dist/src/dataflow/steps.d.ts.map +1 -0
  49. package/dist/src/dataflow/steps.js +707 -0
  50. package/dist/src/dataflow/steps.js.map +1 -0
  51. package/dist/src/dataflow/steps.spec.d.ts +6 -0
  52. package/dist/src/dataflow/steps.spec.d.ts.map +1 -0
  53. package/dist/src/dataflow/steps.spec.js +343 -0
  54. package/dist/src/dataflow/steps.spec.js.map +1 -0
  55. package/dist/src/dataflow/types.d.ts +127 -0
  56. package/dist/src/dataflow/types.d.ts.map +1 -0
  57. package/dist/src/dataflow/types.js +7 -0
  58. package/dist/src/dataflow/types.js.map +1 -0
  59. package/dist/src/dataflow-orchestration.spec.d.ts +6 -0
  60. package/dist/src/dataflow-orchestration.spec.d.ts.map +1 -0
  61. package/dist/src/dataflow-orchestration.spec.js +1025 -0
  62. package/dist/src/dataflow-orchestration.spec.js.map +1 -0
  63. package/dist/src/dataflow.d.ts +113 -38
  64. package/dist/src/dataflow.d.ts.map +1 -1
  65. package/dist/src/dataflow.js +269 -416
  66. package/dist/src/dataflow.js.map +1 -1
  67. package/dist/src/dataflow.spec.d.ts +6 -0
  68. package/dist/src/dataflow.spec.d.ts.map +1 -0
  69. package/dist/src/dataflow.spec.js +663 -0
  70. package/dist/src/dataflow.spec.js.map +1 -0
  71. package/dist/src/dataset-refs.d.ts +124 -0
  72. package/dist/src/dataset-refs.d.ts.map +1 -0
  73. package/dist/src/dataset-refs.js +319 -0
  74. package/dist/src/dataset-refs.js.map +1 -0
  75. package/dist/src/errors.d.ts +39 -9
  76. package/dist/src/errors.d.ts.map +1 -1
  77. package/dist/src/errors.js +51 -8
  78. package/dist/src/errors.js.map +1 -1
  79. package/dist/src/errors.spec.d.ts +6 -0
  80. package/dist/src/errors.spec.d.ts.map +1 -0
  81. package/dist/src/errors.spec.js +276 -0
  82. package/dist/src/errors.spec.js.map +1 -0
  83. package/dist/src/execution/LocalTaskRunner.d.ts +73 -0
  84. package/dist/src/execution/LocalTaskRunner.d.ts.map +1 -0
  85. package/dist/src/execution/LocalTaskRunner.js +399 -0
  86. package/dist/src/execution/LocalTaskRunner.js.map +1 -0
  87. package/dist/src/execution/MockTaskRunner.d.ts +49 -0
  88. package/dist/src/execution/MockTaskRunner.d.ts.map +1 -0
  89. package/dist/src/execution/MockTaskRunner.js +54 -0
  90. package/dist/src/execution/MockTaskRunner.js.map +1 -0
  91. package/dist/src/execution/index.d.ts +16 -0
  92. package/dist/src/execution/index.d.ts.map +1 -0
  93. package/dist/src/execution/index.js +8 -0
  94. package/dist/src/execution/index.js.map +1 -0
  95. package/dist/src/execution/interfaces.d.ts +246 -0
  96. package/dist/src/execution/interfaces.d.ts.map +1 -0
  97. package/dist/src/execution/interfaces.js +6 -0
  98. package/dist/src/execution/interfaces.js.map +1 -0
  99. package/dist/src/execution/processHelpers.d.ts +20 -0
  100. package/dist/src/execution/processHelpers.d.ts.map +1 -0
  101. package/dist/src/execution/processHelpers.js +62 -0
  102. package/dist/src/execution/processHelpers.js.map +1 -0
  103. package/dist/src/executions.d.ts +71 -104
  104. package/dist/src/executions.d.ts.map +1 -1
  105. package/dist/src/executions.js +113 -481
  106. package/dist/src/executions.js.map +1 -1
  107. package/dist/src/executions.spec.d.ts +6 -0
  108. package/dist/src/executions.spec.d.ts.map +1 -0
  109. package/dist/src/executions.spec.js +387 -0
  110. package/dist/src/executions.spec.js.map +1 -0
  111. package/dist/src/formats.d.ts +18 -2
  112. package/dist/src/formats.d.ts.map +1 -1
  113. package/dist/src/formats.js +34 -2
  114. package/dist/src/formats.js.map +1 -1
  115. package/dist/src/gc.spec.d.ts +6 -0
  116. package/dist/src/gc.spec.d.ts.map +1 -0
  117. package/dist/src/gc.spec.js +512 -0
  118. package/dist/src/gc.spec.js.map +1 -0
  119. package/dist/src/index.d.ts +20 -10
  120. package/dist/src/index.d.ts.map +1 -1
  121. package/dist/src/index.js +48 -18
  122. package/dist/src/index.js.map +1 -1
  123. package/dist/src/objects.d.ts +7 -53
  124. package/dist/src/objects.d.ts.map +1 -1
  125. package/dist/src/objects.js +13 -232
  126. package/dist/src/objects.js.map +1 -1
  127. package/dist/src/objects.spec.d.ts +6 -0
  128. package/dist/src/objects.spec.d.ts.map +1 -0
  129. package/dist/src/objects.spec.js +247 -0
  130. package/dist/src/objects.spec.js.map +1 -0
  131. package/dist/src/packages.d.ts +41 -14
  132. package/dist/src/packages.d.ts.map +1 -1
  133. package/dist/src/packages.js +151 -89
  134. package/dist/src/packages.js.map +1 -1
  135. package/dist/src/packages.spec.d.ts +6 -0
  136. package/dist/src/packages.spec.d.ts.map +1 -0
  137. package/dist/src/packages.spec.js +324 -0
  138. package/dist/src/packages.spec.js.map +1 -0
  139. package/dist/src/storage/in-memory/InMemoryRepoStore.d.ts +35 -0
  140. package/dist/src/storage/in-memory/InMemoryRepoStore.d.ts.map +1 -0
  141. package/dist/src/storage/in-memory/InMemoryRepoStore.js +107 -0
  142. package/dist/src/storage/in-memory/InMemoryRepoStore.js.map +1 -0
  143. package/dist/src/storage/in-memory/InMemoryRepoStore.spec.d.ts +6 -0
  144. package/dist/src/storage/in-memory/InMemoryRepoStore.spec.d.ts.map +1 -0
  145. package/dist/src/storage/in-memory/InMemoryRepoStore.spec.js +187 -0
  146. package/dist/src/storage/in-memory/InMemoryRepoStore.spec.js.map +1 -0
  147. package/dist/src/storage/in-memory/InMemoryStorage.d.ts +139 -0
  148. package/dist/src/storage/in-memory/InMemoryStorage.d.ts.map +1 -0
  149. package/dist/src/storage/in-memory/InMemoryStorage.js +439 -0
  150. package/dist/src/storage/in-memory/InMemoryStorage.js.map +1 -0
  151. package/dist/src/storage/in-memory/index.d.ts +12 -0
  152. package/dist/src/storage/in-memory/index.d.ts.map +1 -0
  153. package/dist/src/storage/in-memory/index.js +12 -0
  154. package/dist/src/storage/in-memory/index.js.map +1 -0
  155. package/dist/src/storage/index.d.ts +18 -0
  156. package/dist/src/storage/index.d.ts.map +1 -0
  157. package/dist/src/storage/index.js +10 -0
  158. package/dist/src/storage/index.js.map +1 -0
  159. package/dist/src/storage/interfaces.d.ts +581 -0
  160. package/dist/src/storage/interfaces.d.ts.map +1 -0
  161. package/dist/src/storage/interfaces.js +6 -0
  162. package/dist/src/storage/interfaces.js.map +1 -0
  163. package/dist/src/storage/local/LocalBackend.d.ts +56 -0
  164. package/dist/src/storage/local/LocalBackend.d.ts.map +1 -0
  165. package/dist/src/storage/local/LocalBackend.js +145 -0
  166. package/dist/src/storage/local/LocalBackend.js.map +1 -0
  167. package/dist/src/storage/local/LocalDatasetRefStore.d.ts +22 -0
  168. package/dist/src/storage/local/LocalDatasetRefStore.d.ts.map +1 -0
  169. package/dist/src/storage/local/LocalDatasetRefStore.js +118 -0
  170. package/dist/src/storage/local/LocalDatasetRefStore.js.map +1 -0
  171. package/dist/src/storage/local/LocalLockService.d.ts +111 -0
  172. package/dist/src/storage/local/LocalLockService.d.ts.map +1 -0
  173. package/dist/src/storage/local/LocalLockService.js +364 -0
  174. package/dist/src/storage/local/LocalLockService.js.map +1 -0
  175. package/dist/src/storage/local/LocalLockService.spec.d.ts +6 -0
  176. package/dist/src/storage/local/LocalLockService.spec.d.ts.map +1 -0
  177. package/dist/src/storage/local/LocalLockService.spec.js +148 -0
  178. package/dist/src/storage/local/LocalLockService.spec.js.map +1 -0
  179. package/dist/src/storage/local/LocalLogStore.d.ts +23 -0
  180. package/dist/src/storage/local/LocalLogStore.d.ts.map +1 -0
  181. package/dist/src/storage/local/LocalLogStore.js +66 -0
  182. package/dist/src/storage/local/LocalLogStore.js.map +1 -0
  183. package/dist/src/storage/local/LocalObjectStore.d.ts +55 -0
  184. package/dist/src/storage/local/LocalObjectStore.d.ts.map +1 -0
  185. package/dist/src/storage/local/LocalObjectStore.js +300 -0
  186. package/dist/src/storage/local/LocalObjectStore.js.map +1 -0
  187. package/dist/src/storage/local/LocalRefStore.d.ts +50 -0
  188. package/dist/src/storage/local/LocalRefStore.d.ts.map +1 -0
  189. package/dist/src/storage/local/LocalRefStore.js +337 -0
  190. package/dist/src/storage/local/LocalRefStore.js.map +1 -0
  191. package/dist/src/storage/local/LocalRepoStore.d.ts +55 -0
  192. package/dist/src/storage/local/LocalRepoStore.d.ts.map +1 -0
  193. package/dist/src/storage/local/LocalRepoStore.js +365 -0
  194. package/dist/src/storage/local/LocalRepoStore.js.map +1 -0
  195. package/dist/src/storage/local/LocalRepoStore.spec.d.ts +6 -0
  196. package/dist/src/storage/local/LocalRepoStore.spec.d.ts.map +1 -0
  197. package/dist/src/storage/local/LocalRepoStore.spec.js +255 -0
  198. package/dist/src/storage/local/LocalRepoStore.spec.js.map +1 -0
  199. package/dist/src/storage/local/gc.d.ts +92 -0
  200. package/dist/src/storage/local/gc.d.ts.map +1 -0
  201. package/dist/src/storage/local/gc.js +377 -0
  202. package/dist/src/storage/local/gc.js.map +1 -0
  203. package/dist/src/storage/local/index.d.ts +18 -0
  204. package/dist/src/storage/local/index.d.ts.map +1 -0
  205. package/dist/src/storage/local/index.js +18 -0
  206. package/dist/src/storage/local/index.js.map +1 -0
  207. package/dist/src/storage/local/localHelpers.d.ts +25 -0
  208. package/dist/src/storage/local/localHelpers.d.ts.map +1 -0
  209. package/dist/src/storage/local/localHelpers.js +69 -0
  210. package/dist/src/storage/local/localHelpers.js.map +1 -0
  211. package/dist/src/{repository.d.ts → storage/local/repository.d.ts} +8 -4
  212. package/dist/src/storage/local/repository.d.ts.map +1 -0
  213. package/dist/src/{repository.js → storage/local/repository.js} +31 -29
  214. package/dist/src/storage/local/repository.js.map +1 -0
  215. package/dist/src/storage/local/repository.spec.d.ts +6 -0
  216. package/dist/src/storage/local/repository.spec.d.ts.map +1 -0
  217. package/dist/src/storage/local/repository.spec.js +186 -0
  218. package/dist/src/storage/local/repository.spec.js.map +1 -0
  219. package/dist/src/tasks.d.ts +16 -10
  220. package/dist/src/tasks.d.ts.map +1 -1
  221. package/dist/src/tasks.js +35 -41
  222. package/dist/src/tasks.js.map +1 -1
  223. package/dist/src/tasks.spec.d.ts +6 -0
  224. package/dist/src/tasks.spec.d.ts.map +1 -0
  225. package/dist/src/tasks.spec.js +105 -0
  226. package/dist/src/tasks.spec.js.map +1 -0
  227. package/dist/src/test-helpers.d.ts +5 -4
  228. package/dist/src/test-helpers.d.ts.map +1 -1
  229. package/dist/src/test-helpers.js +9 -21
  230. package/dist/src/test-helpers.js.map +1 -1
  231. package/dist/src/transfer/InMemoryTransferBackend.d.ts +75 -0
  232. package/dist/src/transfer/InMemoryTransferBackend.d.ts.map +1 -0
  233. package/dist/src/transfer/InMemoryTransferBackend.js +211 -0
  234. package/dist/src/transfer/InMemoryTransferBackend.js.map +1 -0
  235. package/dist/src/transfer/index.d.ts +9 -0
  236. package/dist/src/transfer/index.d.ts.map +1 -0
  237. package/dist/src/transfer/index.js +11 -0
  238. package/dist/src/transfer/index.js.map +1 -0
  239. package/dist/src/transfer/interfaces.d.ts +103 -0
  240. package/dist/src/transfer/interfaces.d.ts.map +1 -0
  241. package/dist/src/transfer/interfaces.js +6 -0
  242. package/dist/src/transfer/interfaces.js.map +1 -0
  243. package/dist/src/transfer/process.d.ts +55 -0
  244. package/dist/src/transfer/process.d.ts.map +1 -0
  245. package/dist/src/transfer/process.js +144 -0
  246. package/dist/src/transfer/process.js.map +1 -0
  247. package/dist/src/transfer/types.d.ts +106 -0
  248. package/dist/src/transfer/types.d.ts.map +1 -0
  249. package/dist/src/transfer/types.js +61 -0
  250. package/dist/src/transfer/types.js.map +1 -0
  251. package/dist/src/trees.d.ts +102 -63
  252. package/dist/src/trees.d.ts.map +1 -1
  253. package/dist/src/trees.js +319 -479
  254. package/dist/src/trees.js.map +1 -1
  255. package/dist/src/trees.spec.d.ts +6 -0
  256. package/dist/src/trees.spec.d.ts.map +1 -0
  257. package/dist/src/trees.spec.js +635 -0
  258. package/dist/src/trees.spec.js.map +1 -0
  259. package/dist/src/uuid.d.ts +26 -0
  260. package/dist/src/uuid.d.ts.map +1 -0
  261. package/dist/src/uuid.js +80 -0
  262. package/dist/src/uuid.js.map +1 -0
  263. package/dist/src/workspaceStatus.d.ts +6 -4
  264. package/dist/src/workspaceStatus.d.ts.map +1 -1
  265. package/dist/src/workspaceStatus.js +46 -60
  266. package/dist/src/workspaceStatus.js.map +1 -1
  267. package/dist/src/workspaces.d.ts +46 -47
  268. package/dist/src/workspaces.d.ts.map +1 -1
  269. package/dist/src/workspaces.js +281 -221
  270. package/dist/src/workspaces.js.map +1 -1
  271. package/dist/src/workspaces.spec.d.ts +6 -0
  272. package/dist/src/workspaces.spec.d.ts.map +1 -0
  273. package/dist/src/workspaces.spec.js +273 -0
  274. package/dist/src/workspaces.spec.js.map +1 -0
  275. package/package.json +15 -15
  276. package/dist/src/gc.d.ts +0 -54
  277. package/dist/src/gc.d.ts.map +0 -1
  278. package/dist/src/gc.js +0 -233
  279. package/dist/src/gc.js.map +0 -1
  280. package/dist/src/repository.d.ts.map +0 -1
  281. package/dist/src/repository.js.map +0 -1
  282. package/dist/src/workspaceLock.d.ts +0 -67
  283. package/dist/src/workspaceLock.d.ts.map +0 -1
  284. package/dist/src/workspaceLock.js +0 -217
  285. 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 { initRepository, findRepository, getRepository } from '@elaraai/e3-core';
20
+ import { repoInit, repoFind, repoGet } from '@elaraai/e3-core';
21
21
 
22
- initRepository('/path/to/project');
23
- const repoPath = findRepository(); // Searches cwd and parents
22
+ await repoInit('/path/to/project');
23
+ const repoPath = repoFind(); // Searches cwd and parents
24
24
  ```
25
25
 
26
- ### Objects
26
+ ### Packages
27
27
 
28
28
  ```typescript
29
- import { storeObject, loadObject, computeTaskId } from '@elaraai/e3-core';
29
+ import { packageImport, packageList, packageResolve } from '@elaraai/e3-core';
30
30
 
31
- const hash = await storeObject(repoPath, data, '.beast2');
32
- const data = await loadObject(repoPath, hash, '.beast2');
33
- const taskId = computeTaskId(irHash, argsHashes);
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
- ### Commits
36
+ ### Workspaces
37
37
 
38
38
  ```typescript
39
- import { createNewTaskCommit, createTaskDoneCommit, loadCommit } from '@elaraai/e3-core';
39
+ import { workspaceCreate, workspaceList, workspaceDeploy, workspaceStatus } from '@elaraai/e3-core';
40
40
 
41
- const commitHash = await createNewTaskCommit(repoPath, taskId, irHash, argsHashes, 'node', null);
42
- const commit = await loadCommit(repoPath, commitHash);
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
- ### Tasks
46
+ ### Datasets
46
47
 
47
48
  ```typescript
48
- import { updateTaskState, getTaskState, listTasks } from '@elaraai/e3-core';
49
+ import { workspaceGetDataset, workspaceSetDataset } from '@elaraai/e3-core';
49
50
 
50
- await updateTaskState(repoPath, taskId, commitHash);
51
- const commit = await getTaskState(repoPath, taskId);
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
- ### Refs
55
+ ### Dataflow Execution
56
56
 
57
57
  ```typescript
58
- import { setTaskRef, deleteTaskRef, listTaskRefs, resolveToTaskId } from '@elaraai/e3-core';
58
+ import { dataflowExecute, dataflowStart } from '@elaraai/e3-core';
59
59
 
60
- await setTaskRef(repoPath, 'my-task', taskId);
61
- const taskId = await resolveToTaskId(repoPath, 'my-task');
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 Node](https://github.com/elaraai/east-node)**: Node.js platform functions for I/O, databases, and system operations. Connect East programs to filesystems, SQL/NoSQL databases, cloud storage, and network services.
70
- - [@elaraai/east-node-std](https://www.npmjs.com/package/@elaraai/east-node-std): Filesystem, console, HTTP fetch, crypto, random distributions, timestamps
71
- - [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, S3, FTP, SFTP
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 Python](https://github.com/elaraai/east-py)**: Python runtime and platform functions for data science and machine learning. Execute East programs with access to optimization solvers, gradient boosting, neural networks, and model explainability.
75
- - [@elaraai/east-py-datascience](https://www.npmjs.com/package/@elaraai/east-py-datascience): TypeScript types for optimization, gradient boosting, neural networks, explainability
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)**: East types and expressions for building dashboards and interactive layouts. Define UIs as data structures that render consistently across React, web, and other environments.
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 - East Execution Engine](https://github.com/elaraai/e3)**: Durable execution engine for running East pipelines at scale. Features Git-like content-addressable storage, automatic memoization, task queuing, and real-time monitoring.
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): Git-like object store, task queue, result caching
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 init`, `e3 run`, `e3 logs` commands for managing and monitoring tasks
86
- - [@elaraai/e3-api-client](https://www.npmjs.com/package/@elaraai/e3-api-client): HTTP client for remote e3 servers
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/e3/issues)
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,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=api-compat.spec.d.ts.map
@@ -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"}