@elaraai/create-e3 1.0.28 → 1.0.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/create-e3",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "description": "Scaffold a new e3 project (BSL-1.1, Node + Python, durable execution): npm create @elaraai/e3",
5
5
  "type": "module",
6
6
  "bin": {
@@ -42,6 +42,11 @@ npm run clean # remove build output, dependencies, and the local repo
42
42
 
43
43
  If you scaffolded with UI, `src/ui/index.tsx` holds a decision surface — a `ui()` task an operator
44
44
  uses to observe and act on the recommendation, registered in the package next to the decision.
45
+ Render it to a PNG with `npm run shot` (first time on a machine: `npx e3-ui install-browser`
46
+ downloads the headless Chromium it renders with; `npx e3-ui doctor` diagnoses browser problems).
47
+ `npm run shots:png` sweeps `src/` for EVERY renderable UI export (surfaces and `example()` defs
48
+ alike) into git-ignored `.shots/<path>/<export>.png` + a `manifest.json` of what rendered and why
49
+ anything was skipped; `npm run shots:html` adds a standalone HTML beside each PNG.
45
50
 
46
51
  If you scaffolded with `--platform`, `src/platform/` holds project-owned TS-East platform functions
47
52
  (exported via `./platform`) and `platform_module/` holds the Python ones — replace the generated
@@ -7,3 +7,4 @@ __pycache__/
7
7
  .pytest_cache/
8
8
  .repos/
9
9
  uv.lock
10
+ .shots/
@@ -14,6 +14,9 @@
14
14
  "deploy": "e3 repo create .repos --exist-ok && e3 workspace deploy .repos __WORKSPACE_NAME__ --from-source ./src/index.ts",
15
15
  "start": "npm run deploy && e3 dataflow run .repos __WORKSPACE_NAME__",
16
16
  "watch": "e3 watch ./src/index.ts .repos __WORKSPACE_NAME__ --start",
17
+ "shot": "e3-ui shot --from-source src/ui/index.tsx --export surface -o surface.png",
18
+ "shots:png": "e3-ui shots src --out .shots --json",
19
+ "shots:html": "e3-ui shots src --out .shots --json --html",
17
20
  "lint": "eslint .",
18
21
  "clean": "rimraf dist node_modules .venv uv.lock .repos *.tsbuildinfo"
19
22
  },
@@ -29,6 +32,7 @@
29
32
  },
30
33
  "devDependencies": {
31
34
  "@elaraai/e3-cli": "workspace:*",
35
+ "@elaraai/e3-ui-cli": "workspace:*",
32
36
  "@elaraai/east-node-cli": "workspace:*",
33
37
  "@elaraai/east-c-cli": "workspace:*",
34
38
  "@types/node": "^22",
@@ -2,54 +2,104 @@
2
2
  "features": {
3
3
  "tests": {
4
4
  "default": true,
5
- "files": ["src/index.spec.ts", "tests/test_unit.py"],
6
- "scripts": ["test:ts", "test:export", "test:py"]
5
+ "files": [
6
+ "src/index.spec.ts",
7
+ "tests/test_unit.py"
8
+ ],
9
+ "scripts": [
10
+ "test:ts",
11
+ "test:export",
12
+ "test:py"
13
+ ]
7
14
  },
8
15
  "ui": {
9
16
  "default": false,
10
- "files": ["src/ui/index.tsx"],
11
- "dependencies": ["@elaraai/east-ui", "@elaraai/e3-ui"]
17
+ "files": [
18
+ "src/ui/index.tsx"
19
+ ],
20
+ "dependencies": [
21
+ "@elaraai/east-ui",
22
+ "@elaraai/e3-ui"
23
+ ],
24
+ "devDependencies": [
25
+ "@elaraai/e3-ui-cli"
26
+ ],
27
+ "scripts": [
28
+ "shot",
29
+ "shots:png",
30
+ "shots:html"
31
+ ]
12
32
  },
13
33
  "platform": {
14
34
  "default": false,
15
- "files": ["src/platform/index.ts", "src/platform/example.ts"],
35
+ "files": [
36
+ "src/platform/index.ts",
37
+ "src/platform/example.ts"
38
+ ],
16
39
  "packageJson": {
17
40
  "exports": {
18
41
  ".": "./dist/index.js",
19
42
  "./platform": "./dist/platform/index.js",
20
43
  "./package.json": "./package.json"
21
- }
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "platform_module"
48
+ ]
22
49
  }
23
50
  },
24
51
  "platform-py": {
25
- "allOf": ["platform", "runner:east-py"],
52
+ "allOf": [
53
+ "platform",
54
+ "runner:east-py"
55
+ ],
26
56
  "files": [
27
57
  "platform_module/__init__.py",
28
58
  "platform_module/example.py",
29
59
  "src/platform_module.ts",
30
60
  "pyproject.platform.toml"
31
61
  ],
32
- "disable": ["pyproject.toml"],
33
- "rename": { "pyproject.platform.toml": "pyproject.toml" }
62
+ "disable": [
63
+ "pyproject.toml"
64
+ ],
65
+ "rename": {
66
+ "pyproject.platform.toml": "pyproject.toml"
67
+ }
34
68
  },
35
69
  "runner:east-node": {
36
70
  "default": true,
37
- "devDependencies": ["@elaraai/east-node-cli"]
71
+ "devDependencies": [
72
+ "@elaraai/east-node-cli"
73
+ ]
38
74
  },
39
75
  "runner:east-c": {
40
76
  "default": true,
41
- "devDependencies": ["@elaraai/east-c-cli"]
77
+ "devDependencies": [
78
+ "@elaraai/east-c-cli"
79
+ ]
42
80
  },
43
81
  "runner:east-py": {
44
82
  "default": true,
45
- "files": ["pyproject.toml", ".python-version", "tests/test_unit.py"],
46
- "scripts": ["test:py"],
47
- "dependencies": ["@elaraai/east-py-datascience"]
83
+ "files": [
84
+ "pyproject.toml",
85
+ ".python-version",
86
+ "tests/test_unit.py"
87
+ ],
88
+ "scripts": [
89
+ "test:py"
90
+ ],
91
+ "dependencies": [
92
+ "@elaraai/east-py-datascience"
93
+ ]
48
94
  },
49
95
  "eslint": {
50
96
  "default": true,
51
- "files": ["eslint.config.js"],
52
- "scripts": ["lint"],
97
+ "files": [
98
+ "eslint.config.js"
99
+ ],
100
+ "scripts": [
101
+ "lint"
102
+ ],
53
103
  "devDependencies": [
54
104
  "eslint",
55
105
  "@typescript-eslint/eslint-plugin",
@@ -59,29 +109,90 @@
59
109
  },
60
110
  "editor-diagnostics": {
61
111
  "default": true,
62
- "devDependencies": ["@elaraai/tsserver-plugin-east"]
112
+ "devDependencies": [
113
+ "@elaraai/tsserver-plugin-east"
114
+ ]
63
115
  }
64
116
  },
65
117
  "indexVariants": [
66
- { "when": ["ui", "platform", "runner:east-py"], "source": "src/index.ui.platform.py.ts" },
67
- { "when": ["ui", "platform"], "source": "src/index.ui.platform.ts" },
68
- { "when": ["ui"], "source": "src/index.ui.ts" },
69
- { "when": ["platform", "runner:east-py"], "source": "src/index.platform.py.ts" },
70
- { "when": ["platform"], "source": "src/index.platform.ts" },
71
- { "when": [], "source": "src/index.ts" }
118
+ {
119
+ "when": [
120
+ "ui",
121
+ "platform",
122
+ "runner:east-py"
123
+ ],
124
+ "source": "src/index.ui.platform.py.ts"
125
+ },
126
+ {
127
+ "when": [
128
+ "ui",
129
+ "platform"
130
+ ],
131
+ "source": "src/index.ui.platform.ts"
132
+ },
133
+ {
134
+ "when": [
135
+ "ui"
136
+ ],
137
+ "source": "src/index.ui.ts"
138
+ },
139
+ {
140
+ "when": [
141
+ "platform",
142
+ "runner:east-py"
143
+ ],
144
+ "source": "src/index.platform.py.ts"
145
+ },
146
+ {
147
+ "when": [
148
+ "platform"
149
+ ],
150
+ "source": "src/index.platform.ts"
151
+ },
152
+ {
153
+ "when": [],
154
+ "source": "src/index.ts"
155
+ }
72
156
  ],
73
157
  "scriptVariants": {
74
158
  "test": [
75
- { "when": ["tests", "runner:east-py"], "value": "npm run build && npm run test:export && npm run test:py" },
76
- { "when": ["tests"], "value": "npm run build && npm run test:export" }
159
+ {
160
+ "when": [
161
+ "tests",
162
+ "runner:east-py"
163
+ ],
164
+ "value": "npm run build && npm run test:export && npm run test:py"
165
+ },
166
+ {
167
+ "when": [
168
+ "tests"
169
+ ],
170
+ "value": "npm run build && npm run test:export"
171
+ }
77
172
  ],
78
173
  "setup": [
79
- { "when": ["runner:east-py"], "value": "npm install && uv sync" },
80
- { "when": [], "value": "npm install" }
174
+ {
175
+ "when": [
176
+ "runner:east-py"
177
+ ],
178
+ "value": "npm install && uv sync"
179
+ },
180
+ {
181
+ "when": [],
182
+ "value": "npm install"
183
+ }
81
184
  ],
82
185
  "start": [
83
- { "when": ["platform"], "value": "npm run build && npm run deploy && e3 dataflow run .repos __WORKSPACE_NAME__" },
84
- { "when": [], "value": "npm run deploy && e3 dataflow run .repos __WORKSPACE_NAME__" }
186
+ {
187
+ "when": [
188
+ "platform"
189
+ ],
190
+ "value": "npm run build && npm run deploy && e3 dataflow run .repos __WORKSPACE_NAME__"
191
+ },
192
+ {
193
+ "when": [],
194
+ "value": "npm run deploy && e3 dataflow run .repos __WORKSPACE_NAME__"
195
+ }
85
196
  ]
86
197
  }
87
198
  }
@@ -1,15 +1,22 @@
1
1
  {
2
- "exclude": ["dist"],
2
+ "exclude": [
3
+ "dist"
4
+ ],
3
5
  "compilerOptions": {
4
6
  "outDir": "./dist",
5
7
  "rootDir": "./src",
6
8
  "module": "nodenext",
7
9
  "target": "esnext",
8
- "lib": ["esnext", "es2024"],
9
- "types": ["node"],
10
+ "lib": [
11
+ "esnext",
12
+ "es2024"
13
+ ],
14
+ "types": [
15
+ "node"
16
+ ],
10
17
  "sourceMap": true,
11
- "declaration": true,
12
- "declarationMap": true,
18
+ "declaration": false,
19
+ "declarationMap": false,
13
20
  "noUncheckedIndexedAccess": true,
14
21
  "exactOptionalPropertyTypes": true,
15
22
  "strict": true,
@@ -22,6 +29,10 @@
22
29
  "skipLibCheck": true,
23
30
  "noErrorTruncation": true,
24
31
  "incremental": true,
25
- "plugins": [{ "name": "@elaraai/tsserver-plugin-east" }]
32
+ "plugins": [
33
+ {
34
+ "name": "@elaraai/tsserver-plugin-east"
35
+ }
36
+ ]
26
37
  }
27
38
  }