@agent-native/core 0.168.10 → 0.168.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.
Files changed (42) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/clips/changelog/2026-08-19-desktop-settings-are-tighter-with-a-new-advanced-tab.md +6 -0
  3. package/corpus/templates/clips/desktop/README.md +79 -1
  4. package/corpus/templates/clips/desktop/components.json +20 -0
  5. package/corpus/templates/clips/desktop/package.json +10 -1
  6. package/corpus/templates/clips/desktop/src/app.tsx +1812 -1994
  7. package/corpus/templates/clips/desktop/src/components/ReadinessPanel.tsx +23 -65
  8. package/corpus/templates/clips/desktop/src/components/settings/settings-ui.tsx +399 -0
  9. package/corpus/templates/clips/desktop/src/components/ui/alert-dialog.tsx +166 -0
  10. package/corpus/templates/clips/desktop/src/components/ui/button.tsx +57 -0
  11. package/corpus/templates/clips/desktop/src/components/ui/empty.tsx +104 -0
  12. package/corpus/templates/clips/desktop/src/components/ui/input.tsx +22 -0
  13. package/corpus/templates/clips/desktop/src/components/ui/popover.tsx +38 -0
  14. package/corpus/templates/clips/desktop/src/components/ui/select.tsx +164 -0
  15. package/corpus/templates/clips/desktop/src/components/ui/skeleton.tsx +15 -0
  16. package/corpus/templates/clips/desktop/src/components/ui/spinner.tsx +17 -0
  17. package/corpus/templates/clips/desktop/src/components/ui/switch.tsx +27 -0
  18. package/corpus/templates/clips/desktop/src/components/ui/textarea.tsx +22 -0
  19. package/corpus/templates/clips/desktop/src/dev/browser-preview.ts +65 -0
  20. package/corpus/templates/clips/desktop/src/hooks/useSystemAccessRows.ts +128 -0
  21. package/corpus/templates/clips/desktop/src/hooks/useWhisperSettings.ts +0 -2
  22. package/corpus/templates/clips/desktop/src/lib/permission-status.ts +84 -0
  23. package/corpus/templates/clips/desktop/src/lib/rewind-status.ts +6 -5
  24. package/corpus/templates/clips/desktop/src/lib/settings-navigation.ts +18 -5
  25. package/corpus/templates/clips/desktop/src/lib/utils.ts +6 -0
  26. package/corpus/templates/clips/desktop/src/main.tsx +31 -4
  27. package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +2 -2
  28. package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +2 -2
  29. package/corpus/templates/clips/desktop/src/styles.css +75 -1427
  30. package/corpus/templates/clips/desktop/src/tailwind.css +282 -0
  31. package/corpus/templates/clips/desktop/tsconfig.json +4 -1
  32. package/corpus/templates/clips/desktop/vite.config.ts +7 -1
  33. package/corpus/templates/design/app/components/layout/Layout.tsx +38 -14
  34. package/dist/collab/awareness.d.ts +2 -2
  35. package/dist/collab/routes.d.ts +1 -1
  36. package/dist/notifications/routes.d.ts +3 -3
  37. package/dist/progress/routes.d.ts +1 -1
  38. package/dist/resources/handlers.d.ts +1 -1
  39. package/dist/server/action-routes.js +3 -2
  40. package/dist/server/request-origin.d.ts +6 -0
  41. package/dist/server/request-origin.js +12 -0
  42. package/package.json +1 -1
package/corpus/README.md CHANGED
@@ -31,4 +31,4 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
31
31
 
32
32
  ## Generated Counts
33
33
 
34
- - template files: 8504
34
+ - template files: 8522
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-08-19
4
+ ---
5
+
6
+ Desktop Settings is tighter and quicker to scan: General, Recording, Meetings, and Dictation each hold one short card where every setting says what it actually does, permissions and update status moved into General, and rarely-needed controls like the server URL, transcription engine, and region guides now live under a new Advanced tab, and Rewind gets a settings tab of its own.
@@ -47,6 +47,80 @@ localStorage.setItem("clips:dev-synthetic-capture", "1");
47
47
 
48
48
  Remove that key to return to real capture.
49
49
 
50
+ ### The tray needs a Clips server running
51
+
52
+ `pnpm tauri dev` starts only the tray and its own Vite server (port 1420). The
53
+ tray is a client of the **Clips web app**, which is a separate process. Dev
54
+ builds point at `http://localhost:8094` (`devPort` for clips in
55
+ `packages/shared-app-config/templates.ts`), but a standalone `pnpm dev` in the
56
+ template does **not** read that value — it lands on Vite's default 8080. Pass
57
+ the port explicitly so the two agree:
58
+
59
+ ```bash
60
+ cd templates/clips
61
+ pnpm dev -- --port 8094
62
+ ```
63
+
64
+ Without a server every request fails, sign-in included, and the popover shows
65
+ "Can't reach localhost:8094" with a link to the setting. To skip running it at
66
+ all, point the tray at the hosted instance from **Settings -> Advanced -> Clips
67
+ server URL**.
68
+
69
+ ### Signing in during development
70
+
71
+ **Use "Continue as the dev account".** The framework exposes
72
+ `/_agent-native/auth/local-dev`, which creates or reuses an auto-managed dev
73
+ account and returns a session token. The tray offers this button only when the
74
+ server answers `GET /_agent-native/auth/local-dev` with `available: true` —
75
+ which it does only when `NODE_ENV=development` and no other user rows exist. The
76
+ server decides, so the button cannot appear against a hosted instance.
77
+
78
+ Under the hood, dev auth rides the **bearer token**, not cookies. `tauri dev`
79
+ serves the webview from `http://localhost:1420`, and the framework deliberately
80
+ withholds credentialed CORS from localhost origins — see
81
+ `shouldAllowMcpEmbedCredentials`, "only the configured browser allowlist and the
82
+ framework's exact native app origins may receive cookies". Since the fetch
83
+ interceptor always adds `X-Request-Source`, every request is preflighted, so
84
+ asking for cookies there fails the whole request. The interceptor therefore
85
+ omits credentials on an http origin and relies on the token the server returns
86
+ in the login body (`http://localhost:1420` is on its token allowlist).
87
+
88
+ **Email + password needs an existing account.** `/_agent-native/auth/login`
89
+ calls `signInEmail` only — it never registers — and the tray has no sign-up
90
+ form. Create the account once in the web app at http://localhost:8094, then sign
91
+ in from the tray. Password signup does work locally: with
92
+ `NODE_ENV !== "production"` and no email provider configured,
93
+ `resolveEmailPasswordAuthPolicy` leaves both `requireEmailVerification` and
94
+ `disableSignUp` off, so there is no email round-trip.
95
+
96
+ **Google sign-in cannot work locally without credentials.** The provider is
97
+ registered only when `GOOGLE_SIGN_IN_CLIENT_ID`/`GOOGLE_SIGN_IN_CLIENT_SECRET`
98
+ (or the legacy `GOOGLE_CLIENT_ID`/`GOOGLE_CLIENT_SECRET`) are set for the Clips
99
+ server, and that OAuth client must whitelist the local redirect URI. With no
100
+ `.env` the auth-url endpoint returns 422 — by design, not a bug. Magic links are
101
+ no help either: dev logs a token _digest_, never a usable URL.
102
+
103
+ Sessions reset on every server restart unless `BETTER_AUTH_SECRET` is set; the
104
+ server warns about this on boot.
105
+
106
+ ### Previewing a surface in a browser tab
107
+
108
+ Layout and copy can be reviewed without a Rust build. `pnpm vite:dev` serves the
109
+ same bundle at http://localhost:1420, where `src/dev/browser-preview.ts` (dev
110
+ builds only) stubs just enough of Tauri's IPC to keep React mounted. Add a route
111
+ hash to land on a surface directly:
112
+
113
+ ```
114
+ http://localhost:1420/#settings
115
+ http://localhost:1420/#settings/advanced
116
+ ```
117
+
118
+ The route is read once at boot, so changing only the hash does nothing — reload
119
+ after editing it. Every Tauri command rejects there, and rows say so rather than
120
+ showing invented values — so treat it as a layout preview. Anything depending on real device
121
+ state (permission grants, the Whisper catalog, Rewind) has to be checked in the
122
+ actual app.
123
+
50
124
  ### Linux capabilities
51
125
 
52
126
  Linux uses the WebKitGTK recorder for screen, window, camera, and microphone
@@ -67,7 +141,11 @@ Remove that key to return full-screen mode to one-click native recording.
67
141
 
68
142
  ## First-run configuration
69
143
 
70
- On first launch the popover asks for the URL of your Clips server. This is stored in `localStorage` (default: `http://localhost:8080`). You can change it at any time from the popover's "Server" link.
144
+ The popover talks to a Clips server, whose URL is stored in `localStorage`. Dev
145
+ builds default to `http://localhost:8094`; release builds default to
146
+ `https://clips.agent-native.com`. Change it any time from **Settings ->
147
+ Advanced -> Clips server URL**. When nothing answers at that URL the sign-in
148
+ screen says so and links straight to that setting.
71
149
 
72
150
  Clips registers itself to open at login by default, then runs quietly in the menu bar / system tray. Users can turn this off from Settings -> Open at login.
73
151
 
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "",
8
+ "css": "src/tailwind.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ }
20
+ }
@@ -20,6 +20,9 @@
20
20
  "dependencies": {
21
21
  "@radix-ui/react-alert-dialog": "^1.1.23",
22
22
  "@radix-ui/react-popover": "^1.1.15",
23
+ "@radix-ui/react-select": "^2.2.5",
24
+ "@radix-ui/react-slot": "^1.2.3",
25
+ "@radix-ui/react-switch": "^1.2.5",
23
26
  "@radix-ui/react-tooltip": "^1.2.8",
24
27
  "@sentry/browser": "10.62.0",
25
28
  "@tabler/icons-react": "catalog:",
@@ -30,15 +33,21 @@
30
33
  "@tauri-apps/plugin-process": "^2.3.1",
31
34
  "@tauri-apps/plugin-shell": "^2.3.5",
32
35
  "@tauri-apps/plugin-updater": "^2.10.1",
36
+ "class-variance-authority": "^0.7.1",
37
+ "clsx": "^2.1.1",
33
38
  "react": "^19.2.5",
34
- "react-dom": "^19.2.5"
39
+ "react-dom": "^19.2.5",
40
+ "tailwind-merge": "^3.5.0"
35
41
  },
36
42
  "devDependencies": {
37
43
  "@agent-native/core": "workspace:*",
44
+ "@tailwindcss/vite": "catalog:",
38
45
  "@tauri-apps/cli": "^2.11.2",
39
46
  "@types/react": "^19.2.14",
40
47
  "@types/react-dom": "^19.2.3",
41
48
  "@vitejs/plugin-react": "catalog:",
49
+ "tailwindcss": "catalog:",
50
+ "tw-animate-css": "1.4.0",
42
51
  "typescript-7": "catalog:",
43
52
  "vite": "catalog:",
44
53
  "vitest": "catalog:"