@lumerahq/cli 0.19.11 → 0.19.12
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 +1 -1
- package/templates/default/AGENTS.md +18 -1
- package/templates/default/biome.json +1 -1
- package/templates/default/package.json +1 -1
- package/templates/default/src/lib/utils.ts +2 -2
- package/templates/default/src/main.tsx +1 -1
- package/templates/default/src/routes/index.tsx +21 -10
- package/templates/default/src/styles.css +1 -1
- package/templates/default/vite.config.ts +1 -4
package/package.json
CHANGED
|
@@ -17,6 +17,12 @@ src/
|
|
|
17
17
|
scripts/ # Utility scripts (seed data, migrations, etc.)
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
The starter UI is intentionally throwaway. `src/routes/index.tsx` is just the
|
|
21
|
+
default landing page shown before the real app exists, and `index.html` is only
|
|
22
|
+
the Vite shell. When building the user's first real workflow or screen, replace
|
|
23
|
+
the starter home page with the app experience instead of preserving or building
|
|
24
|
+
around the placeholder content.
|
|
25
|
+
|
|
20
26
|
## Lumera Concepts
|
|
21
27
|
|
|
22
28
|
A Lumera app is built from these primitives — all defined as code in `platform/`:
|
|
@@ -122,6 +128,17 @@ const invoiceLink = buildShareableAppUrl('/invoices/123', { router: 'hash' });
|
|
|
122
128
|
|
|
123
129
|
When reporting a deployed app, use `launch_url` or `url` from the deploy response. Do not share `iframe_url`; it is only the internal iframe/static asset mount.
|
|
124
130
|
|
|
131
|
+
## Preview and Verification
|
|
132
|
+
|
|
133
|
+
The Studio environment already runs the Vite dev server and exposes it through
|
|
134
|
+
the portal's **Preview tab**. Users are not expected to run local developer
|
|
135
|
+
commands, and raw localhost URLs are not reachable from the Studio portal.
|
|
136
|
+
|
|
137
|
+
**Never tell users to run `pnpm dev`, `pnpm dev:vite`, `npm run dev`, or any
|
|
138
|
+
other dev-server command. Never tell users to open `localhost`, `127.0.0.1`, or
|
|
139
|
+
Vite ports such as `http://localhost:5173/`.** When explaining how to verify UI
|
|
140
|
+
changes, tell them to open the **Preview tab**.
|
|
141
|
+
|
|
125
142
|
|
|
126
143
|
## Workflow
|
|
127
144
|
|
|
@@ -134,7 +151,7 @@ Follow the user's lead. If they tell you exactly what to build, build it. The wo
|
|
|
134
151
|
|
|
135
152
|
### Step 2: Build (one slice at a time)
|
|
136
153
|
4. **Build horizontally** — Pick the first step. Build the full slice: collection schema → `lumera apply` → seed data → UI route/components → commit. Each slice should be deployable and usable on its own.
|
|
137
|
-
5. **Stop and ask for feedback** — Tell the user to open the **Preview tab** to see the app.
|
|
154
|
+
5. **Stop and ask for feedback** — Tell the user to open the **Preview tab** to see the app. Do not mention local dev-server commands or localhost URLs. Iterate on the slice until they're happy.
|
|
138
155
|
6. **Repeat** — Move to the next step. Build, deploy, get feedback.
|
|
139
156
|
|
|
140
157
|
### Rules
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"check:ci": "biome check . && tsr generate && tsc --noEmit"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@lumerahq/ui": "^0.
|
|
27
|
+
"@lumerahq/ui": "^0.9.1",
|
|
28
28
|
"@tanstack/react-query": "^5.90.11",
|
|
29
29
|
"@tanstack/react-router": "1.155.0",
|
|
30
30
|
"@tanstack/router-plugin": "1.155.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createFileRoute } from '@tanstack/react-router';
|
|
2
|
+
import { Bot, LayoutGrid, MessageSquare, Workflow } from 'lucide-react';
|
|
2
3
|
import { useContext } from 'react';
|
|
3
|
-
import { MessageSquare, LayoutGrid, Bot, Workflow } from 'lucide-react';
|
|
4
4
|
import { AuthContext } from '../lib/auth';
|
|
5
5
|
|
|
6
6
|
export const Route = createFileRoute('/')({
|
|
@@ -14,8 +14,12 @@ function HomePage() {
|
|
|
14
14
|
<div className="space-y-10">
|
|
15
15
|
{/* Header */}
|
|
16
16
|
<div>
|
|
17
|
-
<h1 className="text-2xl font-semibold tracking-tight">
|
|
18
|
-
|
|
17
|
+
<h1 className="text-2xl font-semibold tracking-tight">
|
|
18
|
+
Welcome{auth?.user?.name ? `, ${auth.user.name}` : ''}
|
|
19
|
+
</h1>
|
|
20
|
+
<p className="text-muted-foreground mt-2 text-[0.95rem] leading-relaxed">
|
|
21
|
+
Your app is ready. Use Studio to start building.
|
|
22
|
+
</p>
|
|
19
23
|
</div>
|
|
20
24
|
|
|
21
25
|
{/* Getting Started */}
|
|
@@ -27,8 +31,8 @@ function HomePage() {
|
|
|
27
31
|
<div className="space-y-2">
|
|
28
32
|
<h2 className="font-semibold text-lg tracking-tight">Build with Studio</h2>
|
|
29
33
|
<p className="text-muted-foreground text-sm leading-relaxed">
|
|
30
|
-
Switch to the <strong>Chat</strong> tab and tell the agent what you want to build.
|
|
31
|
-
|
|
34
|
+
Switch to the <strong>Chat</strong> tab and tell the agent what you want to build. It
|
|
35
|
+
will set up your data, write the logic, and build your UI — all from a conversation.
|
|
32
36
|
</p>
|
|
33
37
|
</div>
|
|
34
38
|
</div>
|
|
@@ -36,7 +40,9 @@ function HomePage() {
|
|
|
36
40
|
|
|
37
41
|
{/* Example prompts */}
|
|
38
42
|
<div>
|
|
39
|
-
<h2 className="text-sm font-semibold uppercase tracking-wider text-muted-foreground mb-4">
|
|
43
|
+
<h2 className="text-sm font-semibold uppercase tracking-wider text-muted-foreground mb-4">
|
|
44
|
+
Try asking the agent
|
|
45
|
+
</h2>
|
|
40
46
|
<div className="flex flex-wrap gap-2">
|
|
41
47
|
{[
|
|
42
48
|
'Build an invoice processing app with approval workflows',
|
|
@@ -57,27 +63,32 @@ function HomePage() {
|
|
|
57
63
|
|
|
58
64
|
{/* What you can build */}
|
|
59
65
|
<div>
|
|
60
|
-
<h2 className="text-sm font-semibold uppercase tracking-wider text-muted-foreground mb-5">
|
|
66
|
+
<h2 className="text-sm font-semibold uppercase tracking-wider text-muted-foreground mb-5">
|
|
67
|
+
What you can build
|
|
68
|
+
</h2>
|
|
61
69
|
<div className="grid gap-4 md:grid-cols-3">
|
|
62
70
|
<div className="group rounded-xl bg-card p-5 space-y-3 shadow-[0_1px_2px_0_oklch(0_0_0/0.03)] border border-border/60 hover:shadow-[0_4px_12px_-2px_oklch(0_0_0/0.06)] hover:border-border transition-all duration-300">
|
|
63
71
|
<LayoutGrid className="size-5 text-primary transition-colors duration-300" />
|
|
64
72
|
<h3 className="font-medium text-sm tracking-tight">Internal apps</h3>
|
|
65
73
|
<p className="text-xs text-muted-foreground leading-relaxed">
|
|
66
|
-
Back-office tools for your team — dashboards, approval queues, and operational
|
|
74
|
+
Back-office tools for your team — dashboards, approval queues, and operational
|
|
75
|
+
workflows.
|
|
67
76
|
</p>
|
|
68
77
|
</div>
|
|
69
78
|
<div className="group rounded-xl bg-card p-5 space-y-3 shadow-[0_1px_2px_0_oklch(0_0_0/0.03)] border border-border/60 hover:shadow-[0_4px_12px_-2px_oklch(0_0_0/0.06)] hover:border-border transition-all duration-300">
|
|
70
79
|
<Bot className="size-5 text-primary transition-colors duration-300" />
|
|
71
80
|
<h3 className="font-medium text-sm tracking-tight">Agent-powered workflows</h3>
|
|
72
81
|
<p className="text-xs text-muted-foreground leading-relaxed">
|
|
73
|
-
AI agents that extract data, run reviews, draft outputs, and route exceptions — humans
|
|
82
|
+
AI agents that extract data, run reviews, draft outputs, and route exceptions — humans
|
|
83
|
+
stay in the loop.
|
|
74
84
|
</p>
|
|
75
85
|
</div>
|
|
76
86
|
<div className="group rounded-xl bg-card p-5 space-y-3 shadow-[0_1px_2px_0_oklch(0_0_0/0.03)] border border-border/60 hover:shadow-[0_4px_12px_-2px_oklch(0_0_0/0.06)] hover:border-border transition-all duration-300">
|
|
77
87
|
<Workflow className="size-5 text-primary transition-colors duration-300" />
|
|
78
88
|
<h3 className="font-medium text-sm tracking-tight">Automations</h3>
|
|
79
89
|
<p className="text-xs text-muted-foreground leading-relaxed">
|
|
80
|
-
Connect to your systems, process inbound emails, and trigger actions automatically —
|
|
90
|
+
Connect to your systems, process inbound emails, and trigger actions automatically —
|
|
91
|
+
with a full audit trail.
|
|
81
92
|
</p>
|
|
82
93
|
</div>
|
|
83
94
|
</div>
|
|
@@ -34,7 +34,7 @@ body {
|
|
|
34
34
|
--secondary-foreground: oklch(0.16 0.01 60);
|
|
35
35
|
/* Warm stone muted tones */
|
|
36
36
|
--muted: oklch(0.955 0.005 60);
|
|
37
|
-
--muted-foreground: oklch(0.
|
|
37
|
+
--muted-foreground: oklch(0.5 0.01 60);
|
|
38
38
|
/* Accent — lighter orange tint */
|
|
39
39
|
--accent: oklch(0.95 0.03 50);
|
|
40
40
|
--accent-foreground: oklch(0.35 0.12 35);
|