@fluxy-chat/create-fluxy-chat 0.5.4 → 0.5.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.6] - 2026-08-19
4
+
5
+ ### Changed
6
+
7
+ - Hosted `full` template opens a local onboarding tour first. Clerk sign-in is the last step, then you land on a simple chat (same UI primitives as the console). Open a second tab to try realtime. Dashboard is a separate button, not the first screen.
8
+
9
+ ### Fixed
10
+
11
+ - Pin Vite to `@fluxy-chat/ui/dist/index.js` and force `@fluxy-chat/sdk@0.6.2` so `pnpm install` + `pnpm dev` work without extra setup.
12
+ - Depend on `@fluxy-chat/ui@^0.1.3` (valid package exports).
13
+
14
+ ## [0.5.5] - 2026-08-19
15
+
16
+ ### Fixed
17
+
18
+ - Hosted `full` template now provisions a user project + assistant room via Clerk (no more public playground session).
19
+ - Hosted `full` template uses the same chat UI primitives as FluxyChat (message bubbles/composer/status) to match dashboard/rooms/onboarding styling.
20
+ - Remove fuorvianti "dash" UI artifacts and wire message sending through the same chat path as the dashboard.
21
+
3
22
  ## [0.5.4] - 2026-08-19
4
23
 
5
24
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluxy-chat/create-fluxy-chat",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "Scaffold a new FluxyChat bot project with a single command",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,66 +1,47 @@
1
- # FluxyChat full stack starter
1
+ # FluxyChat full stack starter
2
2
 
3
- Chat + AI agent + tool calls in one Vite app. Provisions against a local FluxyChat worker in ~60 seconds.
3
+ Chat + AI agent in a Vite app. Hosted mode starts with a short local tour, then Clerk, then your own room.
4
4
 
5
5
  ## Quick start
6
6
 
7
7
  **Hosted (no wrangler):**
8
8
 
9
9
  ```bash
10
- npx @fluxy-chat/create-fluxy-chat my-app --mode hosted -y
10
+ npx @fluxy-chat/create-fluxy-chat@latest my-app --mode hosted -y
11
11
  cd my-app
12
12
  pnpm install
13
13
  pnpm setup:hosted
14
14
  pnpm dev
15
15
  ```
16
16
 
17
- **Local (full control):**
17
+ Localhost opens a 3-step tour. Last step is sign in. After Clerk you come back to a simple chat. Open a second tab to try realtime. Use Open dashboard for rooms and agents.
18
+
19
+ **Local worker:**
18
20
 
19
21
  ```bash
20
- # Terminal 1 — monorepo worker
21
22
  pnpm --filter @fluxy-chat/worker dev
22
-
23
- # Terminal 2 — new project
24
- npx create-fluxy-chat my-app --full -y
23
+ npx @fluxy-chat/create-fluxy-chat@latest my-app --full -y
25
24
  cd my-app
26
25
  pnpm install
27
26
  pnpm setup
28
27
  pnpm dev
29
28
  ```
30
29
 
31
- Optional: `pnpm doctor` checks `.env`, worker health, room access.
32
-
33
- ## What you get
34
-
35
- - Realtime chat (`useChat` + WebSocket)
36
- - `@assistant` invoke with tool call thread in the UI
37
- - Sidebar with project/room/agent metadata
38
- - Link to operator console
39
-
40
30
  ## Scripts
41
31
 
42
32
  | Command | Description |
43
33
  |---------|-------------|
44
- | `pnpm setup:hosted` | Guest JWT via `GET /demo/session` on api.fluxychat.com |
45
- | `pnpm setup:local` | Local `/dev/provision` (same as `pnpm setup`) |
46
- | `pnpm doctor` | Health check: .env, worker, room |
47
- | `pnpm dev` | Start Vite; auto-start worker if FluxyChat monorepo is detected nearby |
48
- | `pnpm dev:app` | Vite only |
34
+ | `pnpm setup:hosted` | Writes worker + console URLs. Auth happens in the browser via Clerk. |
35
+ | `pnpm setup:local` | Local `/dev/provision` |
36
+ | `pnpm doctor` | Health check |
37
+ | `pnpm dev` | Start Vite |
49
38
 
50
39
  ## Environment
51
40
 
52
- See `.env.example`. Generated by `pnpm setup`:
53
-
54
- - `VITE_FLUXYCHAT_WORKER_URL` — default `http://127.0.0.1:8787`
55
- - `VITE_FLUXYCHAT_MEMBER_JWT` — member token with admin roles
56
- - `VITE_FLUXYCHAT_ROOM_ID` — `{projectId}-general`
57
- - `VITE_FLUXYCHAT_AGENT_ID` — built-in `@assistant`
58
-
59
- ## Hosted credentials
41
+ `.env` from `pnpm setup:hosted` only needs worker and console URLs. Member JWT, room, and agent come from Clerk after sign in.
60
42
 
61
- Use [fluxychat.com/onboarding](https://fluxychat.com/onboarding) and copy values into `.env` manually.
43
+ Dashboard: [fluxychat.com/dashboard](https://fluxychat.com/dashboard)
62
44
 
63
45
  ## Learn more
64
46
 
65
- - [One-click product roadmap](https://github.com/AlessandroFare/fluxychat/blob/main/docs/ONE-CLICK-PRODUCT-ROADMAP.md)
66
47
  - [Docs](https://docs.fluxychat.com)
@@ -4,6 +4,9 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>FluxyChat</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650&display=swap" rel="stylesheet" />
7
10
  </head>
8
11
  <body>
9
12
  <div id="root"></div>
@@ -16,15 +16,30 @@
16
16
  "dependencies": {
17
17
  "@fluxy-chat/react": "^0.1.1",
18
18
  "@fluxy-chat/sdk": "^0.6.2",
19
+ "@fluxy-chat/ui": "^0.1.3",
20
+ "class-variance-authority": "^0.7.1",
21
+ "clsx": "^2.1.1",
22
+ "lucide-react": "^0.511.0",
23
+ "radix-ui": "^1.4.3",
19
24
  "react": "^19.0.0",
20
25
  "react-dom": "^19.0.0",
26
+ "tailwind-merge": "^3.0.0",
21
27
  "zustand": "^5.0.14"
22
28
  },
23
29
  "devDependencies": {
24
30
  "@types/react": "^19.0.0",
25
31
  "@types/react-dom": "^19.0.0",
26
32
  "@vitejs/plugin-react": "^4.3.0",
33
+ "autoprefixer": "^10.4.20",
34
+ "postcss": "^8.5.0",
35
+ "tailwindcss": "^3.4.17",
27
36
  "typescript": "^5.6.0",
28
37
  "vite": "^6.0.0"
38
+ },
39
+ "pnpm": {
40
+ "overrides": {
41
+ "@fluxy-chat/sdk": "0.6.2",
42
+ "@fluxy-chat/react>@fluxy-chat/sdk": "0.6.2"
43
+ }
29
44
  }
30
45
  }
@@ -0,0 +1,6 @@
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ };
@@ -71,8 +71,11 @@ async function main() {
71
71
  if (!workerUrl) fail("VITE_FLUXYCHAT_WORKER_URL unset");
72
72
  else pass(`worker URL: ${workerUrl}`);
73
73
 
74
- if (!jwt) fail("VITE_FLUXYCHAT_MEMBER_JWT unset");
75
- else pass(`JWT present (${jwt.length} chars)`);
74
+ const hosted = (env.VITE_FLUXYCHAT_CONSOLE_URL || "").includes("fluxychat.com");
75
+ if (!jwt) {
76
+ if (hosted) warn("VITE_FLUXYCHAT_MEMBER_JWT unset — sign in from the app (Clerk)");
77
+ else fail("VITE_FLUXYCHAT_MEMBER_JWT unset");
78
+ } else pass(`JWT present (${jwt.length} chars)`);
76
79
 
77
80
  if (!roomId) warn("VITE_FLUXYCHAT_ROOM_ID unset");
78
81
  else pass(`room: ${roomId}`);
@@ -189,49 +189,32 @@ async function setupHosted() {
189
189
 
190
190
  console.log(dim(` mode: hosted · worker: ${workerUrl}`));
191
191
 
192
- const cliHeaders = { Origin: consoleUrl };
193
-
194
- const status = await getJson(workerUrl, "/demo/status", cliHeaders).catch(() => null);
195
- if (!status?.ready) {
196
- fail(
197
- `Public demo not available at ${workerUrl}\n` +
198
- " Try: pnpm setup -- --mode local (with local worker)\n" +
199
- " Or: https://fluxychat.com/demo",
200
- );
201
- }
202
- ok("public demo ready");
203
-
204
- const session = await getJson(workerUrl, "/demo/session", cliHeaders);
205
- if (!session?.token || !session?.roomId) {
206
- fail("/demo/session did not return token + roomId");
207
- }
208
- ok(`guest session · room ${session.roomId}`);
209
-
210
192
  writeEnv({
211
193
  workerUrl,
212
- token: session.token,
213
- roomId: session.roomId,
214
- agentId: session.agentId ?? "",
215
- agentHandle: session.agentHandle ?? "@assistant",
216
- projectId: "hosted-demo",
217
- userId: session.userId ?? "demo-guest",
194
+ token: "",
195
+ roomId: "",
196
+ agentId: "",
197
+ agentHandle: "@assistant",
198
+ projectId: "",
199
+ userId: "",
218
200
  consoleUrl,
219
201
  });
220
202
 
221
203
  writeMeta({
222
204
  mode: "hosted",
223
205
  workerUrl,
224
- projectId: "hosted-demo",
225
- roomId: session.roomId,
226
- agentId: session.agentId ?? null,
227
- agentHandle: session.agentHandle ?? "@assistant",
228
- expiresIn: session.expiresIn ?? null,
206
+ projectId: null,
207
+ roomId: null,
208
+ agentId: null,
209
+ agentHandle: "@assistant",
229
210
  setupAt: new Date().toISOString(),
211
+ auth: "clerk",
230
212
  });
231
213
 
214
+ ok("wrote hosted endpoints (sign in with Clerk on pnpm dev)");
232
215
  console.log(dim(" Run: pnpm dev"));
233
- console.log(dim(` Keep this project: ${consoleUrl}/onboarding?from=cli`));
234
- console.log(dim(" Paste your .env in the console to continue onboarding."));
216
+ console.log(dim(" Sign in with Clerk. We create your project and assistant room."));
217
+ console.log(dim(` Console: ${consoleUrl}/onboarding`));
235
218
  }
236
219
 
237
220
  async function setupLocal() {