@elaraai/e3-cli 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 (135) hide show
  1. package/LICENSE.md +4 -0
  2. package/README.md +169 -46
  3. package/dist/src/cli.js +197 -73
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/commands/auth.d.ts +23 -0
  6. package/dist/src/commands/auth.d.ts.map +1 -0
  7. package/dist/src/commands/auth.js +200 -0
  8. package/dist/src/commands/auth.js.map +1 -0
  9. package/dist/src/commands/complete.d.ts +14 -0
  10. package/dist/src/commands/complete.d.ts.map +1 -0
  11. package/dist/src/commands/complete.js +166 -0
  12. package/dist/src/commands/complete.js.map +1 -0
  13. package/dist/src/commands/complete.spec.d.ts +6 -0
  14. package/dist/src/commands/complete.spec.d.ts.map +1 -0
  15. package/dist/src/commands/complete.spec.js +63 -0
  16. package/dist/src/commands/complete.spec.js.map +1 -0
  17. package/dist/src/commands/completion-install.d.ts +47 -0
  18. package/dist/src/commands/completion-install.d.ts.map +1 -0
  19. package/dist/src/commands/completion-install.js +141 -0
  20. package/dist/src/commands/completion-install.js.map +1 -0
  21. package/dist/src/commands/completion-install.spec.d.ts +6 -0
  22. package/dist/src/commands/completion-install.spec.d.ts.map +1 -0
  23. package/dist/src/commands/completion-install.spec.js +136 -0
  24. package/dist/src/commands/completion-install.spec.js.map +1 -0
  25. package/dist/src/commands/completion.d.ts +12 -0
  26. package/dist/src/commands/completion.d.ts.map +1 -0
  27. package/dist/src/commands/completion.js +75 -0
  28. package/dist/src/commands/completion.js.map +1 -0
  29. package/dist/src/commands/completion.spec.d.ts +6 -0
  30. package/dist/src/commands/completion.spec.d.ts.map +1 -0
  31. package/dist/src/commands/completion.spec.js +48 -0
  32. package/dist/src/commands/completion.spec.js.map +1 -0
  33. package/dist/src/commands/convert.impl.spec.d.ts +6 -0
  34. package/dist/src/commands/convert.impl.spec.d.ts.map +1 -0
  35. package/dist/src/commands/convert.impl.spec.js +245 -0
  36. package/dist/src/commands/convert.impl.spec.js.map +1 -0
  37. package/dist/src/commands/dataset-status.d.ts +9 -0
  38. package/dist/src/commands/dataset-status.d.ts.map +1 -0
  39. package/dist/src/commands/dataset-status.js +77 -0
  40. package/dist/src/commands/dataset-status.js.map +1 -0
  41. package/dist/src/commands/find.d.ts +17 -0
  42. package/dist/src/commands/find.d.ts.map +1 -0
  43. package/dist/src/commands/find.js +59 -0
  44. package/dist/src/commands/find.js.map +1 -0
  45. package/dist/src/commands/find.spec.d.ts +6 -0
  46. package/dist/src/commands/find.spec.d.ts.map +1 -0
  47. package/dist/src/commands/find.spec.js +43 -0
  48. package/dist/src/commands/find.spec.js.map +1 -0
  49. package/dist/src/commands/get.d.ts +3 -0
  50. package/dist/src/commands/get.d.ts.map +1 -1
  51. package/dist/src/commands/get.js +43 -20
  52. package/dist/src/commands/get.js.map +1 -1
  53. package/dist/src/commands/get.spec.d.ts +6 -0
  54. package/dist/src/commands/get.spec.d.ts.map +1 -0
  55. package/dist/src/commands/get.spec.js +28 -0
  56. package/dist/src/commands/get.spec.js.map +1 -0
  57. package/dist/src/commands/list.d.ts +6 -2
  58. package/dist/src/commands/list.d.ts.map +1 -1
  59. package/dist/src/commands/list.js +189 -30
  60. package/dist/src/commands/list.js.map +1 -1
  61. package/dist/src/commands/logs.d.ts.map +1 -1
  62. package/dist/src/commands/logs.js +96 -70
  63. package/dist/src/commands/logs.js.map +1 -1
  64. package/dist/src/commands/package.d.ts.map +1 -1
  65. package/dist/src/commands/package.js +78 -18
  66. package/dist/src/commands/package.js.map +1 -1
  67. package/dist/src/commands/repo.d.ts +44 -0
  68. package/dist/src/commands/repo.d.ts.map +1 -0
  69. package/dist/src/commands/repo.js +278 -0
  70. package/dist/src/commands/repo.js.map +1 -0
  71. package/dist/src/commands/run.d.ts +12 -0
  72. package/dist/src/commands/run.d.ts.map +1 -1
  73. package/dist/src/commands/run.js +21 -13
  74. package/dist/src/commands/run.js.map +1 -1
  75. package/dist/src/commands/run.spec.d.ts +6 -0
  76. package/dist/src/commands/run.spec.d.ts.map +1 -0
  77. package/dist/src/commands/run.spec.js +39 -0
  78. package/dist/src/commands/run.spec.js.map +1 -0
  79. package/dist/src/commands/set.d.ts +1 -0
  80. package/dist/src/commands/set.d.ts.map +1 -1
  81. package/dist/src/commands/set.js +33 -32
  82. package/dist/src/commands/set.js.map +1 -1
  83. package/dist/src/commands/start.d.ts.map +1 -1
  84. package/dist/src/commands/start.js +270 -52
  85. package/dist/src/commands/start.js.map +1 -1
  86. package/dist/src/commands/watch.d.ts +5 -2
  87. package/dist/src/commands/watch.d.ts.map +1 -1
  88. package/dist/src/commands/watch.js +32 -26
  89. package/dist/src/commands/watch.js.map +1 -1
  90. package/dist/src/commands/workspace.d.ts +12 -1
  91. package/dist/src/commands/workspace.d.ts.map +1 -1
  92. package/dist/src/commands/workspace.js +332 -38
  93. package/dist/src/commands/workspace.js.map +1 -1
  94. package/dist/src/credentials.d.ts +123 -0
  95. package/dist/src/credentials.d.ts.map +1 -0
  96. package/dist/src/credentials.js +213 -0
  97. package/dist/src/credentials.js.map +1 -0
  98. package/dist/src/format.d.ts +18 -0
  99. package/dist/src/format.d.ts.map +1 -0
  100. package/dist/src/format.js +43 -0
  101. package/dist/src/format.js.map +1 -0
  102. package/dist/src/path-resolver.d.ts +86 -0
  103. package/dist/src/path-resolver.d.ts.map +1 -0
  104. package/dist/src/path-resolver.js +241 -0
  105. package/dist/src/path-resolver.js.map +1 -0
  106. package/dist/src/path-resolver.spec.d.ts +6 -0
  107. package/dist/src/path-resolver.spec.d.ts.map +1 -0
  108. package/dist/src/path-resolver.spec.js +247 -0
  109. package/dist/src/path-resolver.spec.js.map +1 -0
  110. package/dist/src/utils.d.ts +76 -1
  111. package/dist/src/utils.d.ts.map +1 -1
  112. package/dist/src/utils.js +104 -1
  113. package/dist/src/utils.js.map +1 -1
  114. package/dist/src/utils.spec.d.ts +6 -0
  115. package/dist/src/utils.spec.d.ts.map +1 -0
  116. package/dist/src/utils.spec.js +199 -0
  117. package/dist/src/utils.spec.js.map +1 -0
  118. package/package.json +22 -18
  119. package/scripts/postinstall.cjs +26 -0
  120. package/dist/src/commands/gc.d.ts +0 -12
  121. package/dist/src/commands/gc.d.ts.map +0 -1
  122. package/dist/src/commands/gc.js +0 -44
  123. package/dist/src/commands/gc.js.map +0 -1
  124. package/dist/src/commands/init.d.ts +0 -9
  125. package/dist/src/commands/init.d.ts.map +0 -1
  126. package/dist/src/commands/init.js +0 -33
  127. package/dist/src/commands/init.js.map +0 -1
  128. package/dist/src/commands/status.d.ts +0 -9
  129. package/dist/src/commands/status.d.ts.map +0 -1
  130. package/dist/src/commands/status.js +0 -157
  131. package/dist/src/commands/status.js.map +0 -1
  132. package/dist/src/commands/tree.d.ts +0 -14
  133. package/dist/src/commands/tree.d.ts.map +0 -1
  134. package/dist/src/commands/tree.js +0 -77
  135. package/dist/src/commands/tree.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
@@ -10,72 +10,176 @@ npm install -g @elaraai/e3-cli
10
10
 
11
11
  ## Commands
12
12
 
13
+ Every command that takes `<repo>` accepts either a local path or an `http(s)://` URL. The transport is detected from the argument shape. Set `E3_REPO` to default the repo argument when omitted (where the positional is optional).
14
+
13
15
  ### Repository
14
16
 
15
17
  ```bash
16
- e3 init <repo> # Initialize a new repository
17
- e3 status <repo> # Show repository status
18
- e3 gc <repo> [--dry-run] # Remove unreferenced objects
18
+ e3 repo create <repo> # Create a new repository
19
+ e3 repo status <repo> # Show repository status
20
+ e3 repo remove <repo> [-r] # Remove a repository (-r removes workspaces first)
21
+ e3 repo gc <repo> [--dry-run] # Remove unreferenced objects
22
+ e3 repo list <server-url> # List repositories on a server
19
23
  ```
20
24
 
21
25
  ### Packages
22
26
 
23
27
  ```bash
24
- e3 package import <repo> <zip> # Import package from .zip
25
- e3 package export <repo> <pkg> <zip> # Export package to .zip
26
- e3 package list <repo> # List installed packages
27
- e3 package remove <repo> <pkg> # Remove a package
28
+ e3 package import <repo> <zip> # Import package from .zip
29
+ e3 package export <repo> <pkg> <zip> # Export package to .zip
30
+ e3 package list <repo> # List installed packages
31
+ e3 package remove <repo> <pkg> # Remove a package
28
32
  ```
29
33
 
30
34
  ### Workspaces
31
35
 
32
36
  ```bash
33
- e3 workspace create <repo> <name> # Create empty workspace
34
- e3 workspace deploy <repo> <ws> <pkg> # Deploy package to workspace
35
- e3 workspace export <repo> <ws> <zip> # Export workspace as package
36
- e3 workspace list <repo> # List workspaces
37
- e3 workspace remove <repo> <ws> # Remove workspace
37
+ e3 workspace create <repo> <name> # Create empty workspace
38
+ e3 workspace deploy <repo> <ws> <pkg>[@<ver>] # Deploy a package
39
+ e3 workspace deploy <repo> <ws> --from-zip <path.zip> # Import + create + deploy in one shot
40
+ e3 workspace export <repo> <ws> <zip> # Export workspace as a package
41
+ e3 workspace list <repo> # List workspaces
42
+ e3 workspace status <repo> <ws> # Detailed workspace status
43
+ e3 workspace remove <repo> <ws> # Remove a workspace
44
+ ```
45
+
46
+ ### Datasets
47
+
48
+ Dataset paths use the flat form `<ws>.<name>`. The CLI resolves `<name>` against inputs and task outputs automatically.
49
+
50
+ ```bash
51
+ e3 dataset get <repo> <ws.name> [-f east|json|beast2]
52
+ e3 dataset set <repo> <ws.name> <file> [--type <spec>] [--type-file <path>]
53
+ e3 dataset list <repo> <ws> [-l] # List dataset paths (with -l for table view)
54
+ e3 dataset status <repo> <ws.name> # Show one dataset's kind/type/status/size
55
+ e3 dataset find <repo> <ws> <pattern> # Substring or glob (`*`, `?`) match across names
38
56
  ```
39
57
 
40
- ### Data
58
+ ### Tasks
41
59
 
42
60
  ```bash
43
- e3 list <repo> [path] # List workspaces or tree contents
44
- e3 get <repo> <path> [-f format] # Get dataset value (east/json/beast2)
45
- e3 set <repo> <path> <file> # Set dataset value from file
61
+ e3 task list <repo> <ws> # List tasks with execution status
62
+ e3 task logs <repo> <ws.task> [--follow] # Stream task logs
46
63
  ```
47
64
 
48
- ### Execution
65
+ ### Dataflow execution
49
66
 
50
67
  ```bash
51
- e3 run <repo> <task> [inputs...] # Run task ad-hoc
52
- e3 start <repo> <ws> # Execute tasks in workspace
53
- e3 logs <repo> <path> [--follow] # View task logs
68
+ e3 dataflow run <repo> <ws> [--filter <p>] [--concurrency <n>] [--force]
69
+ ```
70
+
71
+ After a successful run, the CLI prints the task output paths so you can read them straight away:
72
+
73
+ ```
74
+ Summary: 2 executed, 0 cached, ...
75
+ Outputs:
76
+ dev.greet String 14 B
77
+ dev.shout String 16 B
78
+ ```
79
+
80
+ ### Ad-hoc task execution
81
+
82
+ ```bash
83
+ e3 run <repo> <pkg.task> <inputs...> -o <out>
84
+ e3 run <repo> <pkg@1.0.0.task> <in.beast2> -o <out.beast2>
85
+ ```
86
+
87
+ ### Watch / live development
88
+
89
+ ```bash
90
+ e3 watch <source.ts> <repo> <ws> [--start] [--abort-on-change]
91
+ ```
92
+
93
+ ### Authentication
94
+
95
+ ```bash
96
+ e3 auth login <server> # OAuth2 device-flow login
97
+ e3 auth logout <server> # Clear saved credentials
98
+ e3 auth status # List saved credentials
99
+ e3 auth token <server> # Print access token (curl integration)
100
+ e3 auth whoami [server] # Show current identity
101
+ ```
102
+
103
+ ```bash
104
+ curl -H "Authorization: Bearer $(e3 auth token https://example.com)" \
105
+ https://example.com/api/repos/my-repo/status
54
106
  ```
55
107
 
56
108
  ### Utilities
57
109
 
58
110
  ```bash
59
- e3 convert [input] --to <format> # Convert between .east/.json/.beast2
111
+ e3 convert [input] [--from <fmt>] [--to <fmt>] [-o <out>] [--type <spec>]
112
+ e3 completion install # Detect your shell and wire up tab completion
113
+ e3 completion uninstall # Undo the above
114
+ e3 completion {bash|zsh|fish} # Print the raw script (manual install)
115
+ ```
116
+
117
+ `e3 completion install` is the one-shot setup — it detects `$SHELL`, appends `eval "$(e3 completion bash)"` (or the zsh/fish equivalent) to your rc file, and is idempotent on re-run. Override detection with `--shell <bash|zsh|fish>`.
118
+
119
+ If you'd rather wire it up yourself, `e3 completion bash > /etc/bash_completion.d/e3` (and equivalents) work too.
120
+
121
+ The completion script delegates dynamic lookups (workspace names, dataset paths, package names) to a hidden `e3 __complete` handler.
122
+
123
+ ### Defaulting the repository
124
+
125
+ When the positional `<repo>` is optional (every command that takes one as the first argument, except `run` and `watch`), the value is resolved in this order:
126
+
127
+ 1. Explicit positional argument.
128
+ 2. `E3_REPO` environment variable.
129
+ 3. `.` (current directory).
130
+
131
+ So once you're inside a repo, `export E3_REPO=.` lets you drop the leading `.`:
132
+
133
+ ```bash
134
+ export E3_REPO=.
135
+ e3 dataset get dev.greet
136
+ e3 dataflow run dev
60
137
  ```
61
138
 
139
+ ## Migration from earlier versions
140
+
141
+ | Old | New |
142
+ |--------------------------------------------------|-------------------------------------------------------|
143
+ | `e3 get <repo> <ws>.tasks.<name>.output` | `e3 dataset get <repo> <ws>.<name>` |
144
+ | `e3 set <repo> <ws>.inputs.<name>` | `e3 dataset set <repo> <ws>.<name>` |
145
+ | `e3 list <repo>` | `e3 workspace list <repo>` |
146
+ | `e3 list <repo> <ws>` | `e3 dataset list <repo> <ws>` |
147
+ | `e3 status <repo> <path>` | `e3 dataset status <repo> <path>` |
148
+ | `e3 logs <repo> <ws>` | `e3 task list <repo> <ws>` |
149
+ | `e3 logs <repo> <ws>.<task>` | `e3 task logs <repo> <ws>.<task>` |
150
+ | `e3 start <repo> <ws>` | `e3 dataflow run <repo> <ws>` |
151
+ | `e3 login <server>` / `e3 logout <server>` | `e3 auth login <server>` / `e3 auth logout <server>` |
152
+ | `e3 workspace import <repo> <ws> <zip>` | `e3 workspace deploy <repo> <ws> --from-zip <zip>` |
153
+ | `e3 run <repo> <pkg>/<task>` | `e3 run <repo> <pkg>.<task>` |
154
+ | `e3 watch <repo> <ws> <source>` | `e3 watch <source> <repo> <ws>` |
155
+
62
156
  ## Example
63
157
 
64
158
  ```bash
65
- # Initialize repository and import a package
66
- e3 init ./my-project
67
- e3 package import ./my-project ./greeting-pkg-1.0.0.zip
159
+ # Create a repository, deploy a package, run the dataflow
160
+ e3 repo create ./my-project
161
+ e3 workspace deploy ./my-project dev --from-zip ./hello.zip
162
+ e3 dataset set ./my-project dev.name ./name.east
163
+ e3 dataflow run ./my-project dev
164
+
165
+ # Read the results
166
+ e3 dataset get ./my-project dev.greet
167
+ ```
68
168
 
69
- # Create workspace and deploy package
70
- e3 workspace create ./my-project dev
71
- e3 workspace deploy ./my-project dev greeting-pkg@1.0.0
169
+ ## Claude Code plugin
72
170
 
73
- # Set input and run
74
- e3 set ./my-project dev.inputs.name ./name.east
75
- e3 start ./my-project dev
171
+ 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:
76
172
 
77
- # Get results
78
- e3 get ./my-project dev.tasks.shout.output
173
+ ```text
174
+ # Inside Claude Code
175
+ /plugin marketplace add elaraai/east-workspace
176
+ /plugin install east@elaraai
177
+ ```
178
+
179
+ ```bash
180
+ # From a terminal
181
+ claude plugin marketplace add elaraai/east-workspace
182
+ claude plugin install east@elaraai
79
183
  ```
80
184
 
81
185
  ## License
@@ -84,32 +188,47 @@ BSL 1.1. See [LICENSE.md](./LICENSE.md).
84
188
 
85
189
  ### Ecosystem
86
190
 
87
- - **[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.
88
- - [@elaraai/east-node-std](https://www.npmjs.com/package/@elaraai/east-node-std): Filesystem, console, HTTP fetch, crypto, random distributions, timestamps
89
- - [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, S3, FTP, SFTP
191
+ - **[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.
192
+ - [@elaraai/east](https://www.npmjs.com/package/@elaraai/east): Core language SDK with type system, expressions, and reference JS compiler
193
+
194
+ - **[East Node](https://github.com/elaraai/east-workspace/tree/main/libs/east-node)**: Node.js platform functions for I/O, databases, and system operations.
195
+ - [@elaraai/east-node-std](https://www.npmjs.com/package/@elaraai/east-node-std): Console, FileSystem, Fetch, Crypto, Time, Path, Random
196
+ - [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, compression
90
197
  - [@elaraai/east-node-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): CLI for running East IR programs in Node.js
91
198
 
92
- - **[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.
93
- - [@elaraai/east-py-datascience](https://www.npmjs.com/package/@elaraai/east-py-datascience): TypeScript types for optimization, gradient boosting, neural networks, explainability
199
+ - **[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.
200
+ - `east-c`: Core runtime type system, IR interpreter, 200+ builtins, serialization (Beast2, JSON, CSV, East text)
201
+ - `east-c-std`: Console, FileSystem, Fetch, Crypto, Time, Path, Random
202
+ - `east-c-cli`: CLI for running East IR programs natively
203
+
204
+ - **[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.
205
+ - [east-py](https://pypi.org/project/east-py/): Core Python runtime — type system, IR compiler, 212+ builtins, Cython-accelerated hot paths
206
+ - [east-py-std](https://pypi.org/project/east-py-std/): Console, FileSystem, Fetch, Crypto, Time, Path, Random
207
+ - [east-py-io](https://pypi.org/project/east-py-io/): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, compression
208
+ - [east-py-cli](https://pypi.org/project/east-py-cli/): CLI for running East IR programs in Python
209
+ - [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)
94
210
 
95
- - **[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.
211
+ - **[East UI](https://github.com/elaraai/east-workspace/tree/main/libs/east-ui)**: Typed UI component definitions and React renderer, plus VS Code preview.
96
212
  - [@elaraai/east-ui](https://www.npmjs.com/package/@elaraai/east-ui): 50+ typed UI components for layouts, forms, charts, tables, dialogs
97
- - [@elaraai/east-ui-components](https://www.npmjs.com/package/@elaraai/east-ui-components): React renderer with Chakra UI styling
213
+ - [@elaraai/east-ui-components](https://www.npmjs.com/package/@elaraai/east-ui-components): React renderer with Chakra UI v3 styling
214
+ - [@elaraai/e3-ui](https://www.npmjs.com/package/@elaraai/e3-ui): e3 + UI bridge — Data bindings, `e3.ui()` task, manifest
215
+ - [@elaraai/e3-ui-components](https://www.npmjs.com/package/@elaraai/e3-ui-components): React Query hooks and preview components for the e3 API
216
+ - [east-ui-preview](https://marketplace.visualstudio.com/items?itemName=ElaraAI.east-ui-preview): VS Code extension for live East UI component preview
98
217
 
99
- - **[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.
218
+ - **[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.
100
219
  - [@elaraai/e3](https://www.npmjs.com/package/@elaraai/e3): SDK for authoring e3 packages with typed tasks and pipelines
101
- - [@elaraai/e3-core](https://www.npmjs.com/package/@elaraai/e3-core): Git-like object store, task queue, result caching
220
+ - [@elaraai/e3-core](https://www.npmjs.com/package/@elaraai/e3-core): Object store, dataflow orchestrator, execution state
102
221
  - [@elaraai/e3-types](https://www.npmjs.com/package/@elaraai/e3-types): Shared type definitions for e3 packages
103
- - [@elaraai/e3-cli](https://www.npmjs.com/package/@elaraai/e3-cli): `e3 init`, `e3 run`, `e3 logs` commands for managing and monitoring tasks
104
- - [@elaraai/e3-api-client](https://www.npmjs.com/package/@elaraai/e3-api-client): HTTP client for remote e3 servers
222
+ - [@elaraai/e3-cli](https://www.npmjs.com/package/@elaraai/e3-cli): `e3 repo`, `e3 package`, `e3 workspace`, `e3 start`, `e3 watch`, `e3 logs` commands
223
+ - [@elaraai/e3-api-client](https://www.npmjs.com/package/@elaraai/e3-api-client): HTTP client for remote e3 repositories
105
224
  - [@elaraai/e3-api-server](https://www.npmjs.com/package/@elaraai/e3-api-server): REST API server for e3 repositories
225
+ - [@elaraai/e3-api-tests](https://www.npmjs.com/package/@elaraai/e3-api-tests): Shared API compliance test suites
106
226
 
107
227
  ## Links
108
228
 
109
- - [East Language](https://github.com/elaraai/east)
110
- - [East Python Runtime](https://github.com/elaraai/east-py)
229
+ - [East Language](https://github.com/elaraai/east-workspace/tree/main/libs/east)
111
230
  - [Elara AI](https://elaraai.com/)
112
- - [Issues](https://github.com/elaraai/e3/issues)
231
+ - [Issues](https://github.com/elaraai/east-workspace/issues)
113
232
  - support@elara.ai
114
233
 
115
234
  ## About Elara
@@ -118,4 +237,8 @@ East is developed by [Elara AI Pty Ltd](https://elaraai.com/), an AI-powered pla
118
237
 
119
238
  ---
120
239
 
240
+ *Developed by [Elara AI Pty Ltd](https://elaraai.com/).*
241
+
242
+ ---
243
+
121
244
  *Developed by [Elara AI Pty Ltd](https://elaraai.com/)*