@moinulmoin/eden 0.1.0 → 0.1.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/README.md +208 -11
- package/dist/index.js +3 -3
- package/package.json +23 -14
package/README.md
CHANGED
|
@@ -1,20 +1,217 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Eden
|
|
2
2
|
|
|
3
|
-
CLI for
|
|
3
|
+
Eden is a CLI for running AI agents on Cloudflare.
|
|
4
|
+
|
|
5
|
+
It has two deliberately separate workflows:
|
|
6
|
+
|
|
7
|
+
- **Eden Deploy** hosts an existing [Vercel Eve](https://github.com/vercel/eve)
|
|
8
|
+
project on Cloudflare without rewriting the project or replacing Eve.
|
|
9
|
+
- **Eden Agent** creates and runs a smaller Cloudflare-native durable agent from
|
|
10
|
+
an `agent/` directory.
|
|
11
|
+
|
|
12
|
+
If you already have an Eve project, start with `eden deploy`. If you want to
|
|
13
|
+
create a new Eden-native agent, start with `eden agent init`.
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
Use any one of these package managers:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npm install --global @moinulmoin/eden@0.1.1
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
pnpm add --global @moinulmoin/eden@0.1.1
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
bun add --global @moinulmoin/eden@0.1.1
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Then confirm the CLI is available:
|
|
4
32
|
|
|
5
33
|
```sh
|
|
6
|
-
npm install --global @moinulmoin/eden@0.1.0
|
|
7
34
|
eden --help
|
|
8
35
|
```
|
|
9
36
|
|
|
10
|
-
|
|
11
|
-
|
|
37
|
+
Bun can install Eden, but Eden still runs on Node. Do not use `bunx --bun`.
|
|
38
|
+
|
|
39
|
+
## Requirements
|
|
40
|
+
|
|
41
|
+
For every workflow:
|
|
42
|
+
|
|
43
|
+
- macOS or Linux
|
|
44
|
+
- Node `>=24.17.0`
|
|
45
|
+
- a Cloudflare account
|
|
46
|
+
- Wrangler authentication:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
npx wrangler@4.120.0 login
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
For **Eden Deploy**, also provide:
|
|
53
|
+
|
|
54
|
+
- Docker or OrbStack with Linux/amd64 container support
|
|
55
|
+
- an existing Eve project with an exact `packageManager: "pnpm@..."` entry
|
|
56
|
+
- the matching root `pnpm-lock.yaml`
|
|
57
|
+
- any providers, databases, Workflow World, credentials, and external services
|
|
58
|
+
already required by that Eve project
|
|
59
|
+
|
|
60
|
+
Eden Deploy supports pinned pnpm Eve projects in this release. Bun lockfiles and
|
|
61
|
+
native Windows are not currently supported.
|
|
62
|
+
|
|
63
|
+
For **Eden Agent**, Corepack must be available. The setup below enables the
|
|
64
|
+
generated project's pinned pnpm `11.21.0` version once.
|
|
65
|
+
|
|
66
|
+
## Deploy an existing Eve project
|
|
67
|
+
|
|
68
|
+
Deploy is the primary workflow. It performs its checks inline, installs the
|
|
69
|
+
project's pinned pnpm lockfile, runs its project-local Eve executable, packages
|
|
70
|
+
the real Eve server into one Cloudflare Container, and publishes one Worker in
|
|
71
|
+
front of it.
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
eden deploy \
|
|
75
|
+
--project ./my-eve-app \
|
|
76
|
+
--env preview \
|
|
77
|
+
--name my-eve-preview
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
A successful command prints the deployed generation and its `workers.dev` URL.
|
|
81
|
+
Eden does not change the source directory.
|
|
82
|
+
|
|
83
|
+
If the Eve project needs runtime values, put them in a regular owner-readable
|
|
84
|
+
environment file outside source control:
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
eden deploy \
|
|
88
|
+
--project ./my-eve-app \
|
|
89
|
+
--env preview \
|
|
90
|
+
--name my-eve-preview \
|
|
91
|
+
--env-file ~/.config/my-eve-app/preview.env
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`eden preflight` is an optional read-only diagnostic. You do not need to run it
|
|
95
|
+
before `deploy`:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
eden preflight \
|
|
99
|
+
--project ./my-eve-app \
|
|
100
|
+
--env preview \
|
|
101
|
+
--name my-eve-preview
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Remove exactly that deployment when finished:
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
eden destroy \
|
|
108
|
+
--project ./my-eve-app \
|
|
109
|
+
--env preview \
|
|
110
|
+
--name my-eve-preview
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Destroy verifies Eden's ownership record and the current remote identity before
|
|
114
|
+
removing anything. It never deletes by prefix or broad account search.
|
|
115
|
+
|
|
116
|
+
## Create an Eden Agent
|
|
117
|
+
|
|
118
|
+
Create a project in an empty directory:
|
|
119
|
+
|
|
120
|
+
```sh
|
|
121
|
+
mkdir my-agent
|
|
122
|
+
eden agent init --project ./my-agent
|
|
123
|
+
cd my-agent
|
|
124
|
+
corepack enable
|
|
125
|
+
pnpm install
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The generated project contains:
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
agent/
|
|
132
|
+
├── agent.ts
|
|
133
|
+
├── instructions.md
|
|
134
|
+
└── tools/
|
|
135
|
+
└── greet.ts
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Build the static Worker generation:
|
|
139
|
+
|
|
140
|
+
```sh
|
|
141
|
+
pnpm run build
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Start it locally with an explicit bearer secret:
|
|
145
|
+
|
|
146
|
+
```sh
|
|
147
|
+
export EDEN_BEARER_SECRET="$(node -e 'process.stdout.write(require("node:crypto").randomBytes(24).toString("hex"))')"
|
|
148
|
+
pnpm run dev
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The local endpoints are:
|
|
152
|
+
|
|
153
|
+
- Worker: `http://127.0.0.1:8797`
|
|
154
|
+
- Wrangler inspector: `http://127.0.0.1:9297`
|
|
155
|
+
|
|
156
|
+
Leave this terminal running until Eden prints its ready message. Press `Ctrl-C`
|
|
157
|
+
to stop local development before continuing to deployment; the bearer value
|
|
158
|
+
remains in the current shell.
|
|
159
|
+
|
|
160
|
+
Deploy the Agent to an explicit preview target:
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
pnpm run deploy -- \
|
|
164
|
+
--env preview \
|
|
165
|
+
--name my-agent-preview
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
After testing, remove the exact preview Worker and its secret:
|
|
169
|
+
|
|
170
|
+
```sh
|
|
171
|
+
pnpm exec wrangler secret delete EDEN_BEARER_SECRET \
|
|
172
|
+
--name my-agent-preview \
|
|
173
|
+
--config "$PWD/wrangler.jsonc"
|
|
174
|
+
pnpm exec wrangler delete my-agent-preview \
|
|
175
|
+
--env preview \
|
|
176
|
+
--config "$PWD/wrangler.jsonc" \
|
|
177
|
+
--force
|
|
178
|
+
unset EDEN_BEARER_SECRET
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Run these commands only for the explicit preview name you just created.
|
|
182
|
+
|
|
183
|
+
## Command map
|
|
184
|
+
|
|
185
|
+
| Command | Purpose |
|
|
186
|
+
| --- | --- |
|
|
187
|
+
| `eden preflight` | Build and inspect an Eve candidate without remote mutation |
|
|
188
|
+
| `eden deploy` | Deploy an existing Eve project to one exact target |
|
|
189
|
+
| `eden destroy` | Remove one exact Eden-owned Eve deployment |
|
|
190
|
+
| `eden agent init` | Create an Eden Agent project |
|
|
191
|
+
| `eden agent build` | Compile an Agent generation |
|
|
192
|
+
| `eden agent dev` | Run the Agent locally |
|
|
193
|
+
| `eden agent deploy` | Deploy the Agent runtime |
|
|
194
|
+
|
|
195
|
+
Run `eden <command> --help` for command-specific options.
|
|
196
|
+
|
|
197
|
+
## What Eden does not do
|
|
198
|
+
|
|
199
|
+
- Deploy does not translate Eve into an Eden Agent.
|
|
200
|
+
- Deploy does not replace the Eve project's providers, databases, Workflow
|
|
201
|
+
World, authentication, schedules, channels, or sandbox.
|
|
202
|
+
- Container-local memory and disk are disposable. Production Eve durability
|
|
203
|
+
requires a project-configured durable Workflow World.
|
|
204
|
+
- This release uses one logical Container instance and does not promise
|
|
205
|
+
horizontal scaling or custom domains.
|
|
206
|
+
- Bun is an installer only; Node remains the runtime.
|
|
207
|
+
|
|
208
|
+
## Documentation
|
|
12
209
|
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
-
|
|
210
|
+
- [Deploying Eve projects](https://github.com/moinulmoin/eden/blob/main/docs/deploy.md)
|
|
211
|
+
- [Eden Agent CLI](https://github.com/moinulmoin/eden/blob/main/docs/agent-cli.md)
|
|
212
|
+
- [Validation and cleanup](https://github.com/moinulmoin/eden/blob/main/docs/validation.md)
|
|
16
213
|
|
|
17
|
-
|
|
18
|
-
<https://github.com/moinulmoin/eden#readme>
|
|
214
|
+
## License
|
|
19
215
|
|
|
20
|
-
Apache-2.0.
|
|
216
|
+
Apache-2.0. The package includes `LICENSE` and `NOTICE` with the applicable Eve
|
|
217
|
+
and Cloudflare attribution.
|
package/dist/index.js
CHANGED
|
@@ -120,7 +120,7 @@ export default greet;
|
|
|
120
120
|
"type": "module",
|
|
121
121
|
"packageManager": "pnpm@11.21.0",
|
|
122
122
|
"engines": {
|
|
123
|
-
"node": ">=24.17.0
|
|
123
|
+
"node": ">=24.17.0"
|
|
124
124
|
},
|
|
125
125
|
"scripts": {
|
|
126
126
|
"build": "eden agent build",
|
|
@@ -128,8 +128,8 @@ export default greet;
|
|
|
128
128
|
"deploy": "eden agent deploy"
|
|
129
129
|
},
|
|
130
130
|
"devDependencies": {
|
|
131
|
-
"@moinulmoin/eden": "0.1.
|
|
132
|
-
"@moinulmoin/eden-definitions": "0.1.
|
|
131
|
+
"@moinulmoin/eden": "0.1.1",
|
|
132
|
+
"@moinulmoin/eden-definitions": "0.1.1",
|
|
133
133
|
"typescript": "5.9.3",
|
|
134
134
|
"wrangler": "4.120.0"
|
|
135
135
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moinulmoin/eden",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Deploy existing Eve agents to Cloudflare and author Cloudflare-native Eden Agents.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"agents",
|
|
8
|
+
"cli",
|
|
9
|
+
"cloudflare",
|
|
10
|
+
"durable-objects",
|
|
11
|
+
"eve"
|
|
12
|
+
],
|
|
5
13
|
"type": "module",
|
|
6
14
|
"license": "Apache-2.0",
|
|
7
15
|
"types": "./dist/index.d.ts",
|
|
@@ -23,10 +31,18 @@
|
|
|
23
31
|
"NOTICE"
|
|
24
32
|
],
|
|
25
33
|
"dependencies": {
|
|
34
|
+
"@moinulmoin/eden-compiler": "workspace:*",
|
|
35
|
+
"@moinulmoin/eden-runtime-cloudflare": "workspace:*",
|
|
26
36
|
"chokidar": "5.0.0",
|
|
27
|
-
"wrangler": "4.120.0"
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
"wrangler": "4.120.0"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "tsc -b",
|
|
41
|
+
"postbuild": "chmod 755 dist/index.js",
|
|
42
|
+
"prepack": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && pnpm run build",
|
|
43
|
+
"typecheck": "tsc -b --pretty false",
|
|
44
|
+
"lint": "eslint src --max-warnings 0",
|
|
45
|
+
"test": "pnpm --dir ../.. exec vitest run packages/cli/test --passWithNoTests --maxWorkers=1"
|
|
30
46
|
},
|
|
31
47
|
"devDependencies": {
|
|
32
48
|
"@types/node": "24.0.0"
|
|
@@ -44,13 +60,6 @@
|
|
|
44
60
|
"access": "public"
|
|
45
61
|
},
|
|
46
62
|
"engines": {
|
|
47
|
-
"node": ">=24.17.0
|
|
48
|
-
},
|
|
49
|
-
"scripts": {
|
|
50
|
-
"build": "tsc -b",
|
|
51
|
-
"postbuild": "chmod 755 dist/index.js",
|
|
52
|
-
"typecheck": "tsc -b --pretty false",
|
|
53
|
-
"lint": "eslint src --max-warnings 0",
|
|
54
|
-
"test": "pnpm --dir ../.. exec vitest run packages/cli/test --passWithNoTests --maxWorkers=1"
|
|
63
|
+
"node": ">=24.17.0"
|
|
55
64
|
}
|
|
56
|
-
}
|
|
65
|
+
}
|