@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.
- package/corpus/README.md +1 -1
- package/corpus/templates/clips/changelog/2026-08-19-desktop-settings-are-tighter-with-a-new-advanced-tab.md +6 -0
- package/corpus/templates/clips/desktop/README.md +79 -1
- package/corpus/templates/clips/desktop/components.json +20 -0
- package/corpus/templates/clips/desktop/package.json +10 -1
- package/corpus/templates/clips/desktop/src/app.tsx +1812 -1994
- package/corpus/templates/clips/desktop/src/components/ReadinessPanel.tsx +23 -65
- package/corpus/templates/clips/desktop/src/components/settings/settings-ui.tsx +399 -0
- package/corpus/templates/clips/desktop/src/components/ui/alert-dialog.tsx +166 -0
- package/corpus/templates/clips/desktop/src/components/ui/button.tsx +57 -0
- package/corpus/templates/clips/desktop/src/components/ui/empty.tsx +104 -0
- package/corpus/templates/clips/desktop/src/components/ui/input.tsx +22 -0
- package/corpus/templates/clips/desktop/src/components/ui/popover.tsx +38 -0
- package/corpus/templates/clips/desktop/src/components/ui/select.tsx +164 -0
- package/corpus/templates/clips/desktop/src/components/ui/skeleton.tsx +15 -0
- package/corpus/templates/clips/desktop/src/components/ui/spinner.tsx +17 -0
- package/corpus/templates/clips/desktop/src/components/ui/switch.tsx +27 -0
- package/corpus/templates/clips/desktop/src/components/ui/textarea.tsx +22 -0
- package/corpus/templates/clips/desktop/src/dev/browser-preview.ts +65 -0
- package/corpus/templates/clips/desktop/src/hooks/useSystemAccessRows.ts +128 -0
- package/corpus/templates/clips/desktop/src/hooks/useWhisperSettings.ts +0 -2
- package/corpus/templates/clips/desktop/src/lib/permission-status.ts +84 -0
- package/corpus/templates/clips/desktop/src/lib/rewind-status.ts +6 -5
- package/corpus/templates/clips/desktop/src/lib/settings-navigation.ts +18 -5
- package/corpus/templates/clips/desktop/src/lib/utils.ts +6 -0
- package/corpus/templates/clips/desktop/src/main.tsx +31 -4
- package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +2 -2
- package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +2 -2
- package/corpus/templates/clips/desktop/src/styles.css +75 -1427
- package/corpus/templates/clips/desktop/src/tailwind.css +282 -0
- package/corpus/templates/clips/desktop/tsconfig.json +4 -1
- package/corpus/templates/clips/desktop/vite.config.ts +7 -1
- package/corpus/templates/design/app/components/layout/Layout.tsx +38 -14
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/routes.d.ts +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/server/action-routes.js +3 -2
- package/dist/server/request-origin.d.ts +6 -0
- package/dist/server/request-origin.js +12 -0
- package/package.json +1 -1
package/corpus/README.md
CHANGED
|
@@ -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
|
-
|
|
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:"
|