@agent-native/core 0.68.1 → 0.68.3
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/README.md +4 -4
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +16 -0
- package/corpus/core/docs/content/authentication.md +16 -2
- package/corpus/core/docs/content/template-analytics.md +14 -9
- package/corpus/core/docs/content/template-clips.md +35 -2
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/cli/pr-visual-recap-workflow.ts +1 -1
- package/corpus/core/src/client/AgentPanel.tsx +2 -4
- package/corpus/core/src/client/CommandMenu.tsx +98 -3
- package/corpus/core/src/client/ConnectBuilderCard.tsx +11 -2
- package/corpus/core/src/client/index.ts +2 -0
- package/corpus/core/src/extensions/content-patch.ts +12 -2
- package/corpus/core/src/oauth-tokens/google-refresh.ts +32 -17
- package/corpus/core/src/provider-api/index.ts +37 -17
- package/corpus/core/src/server/auth.ts +6 -8
- package/corpus/core/src/server/better-auth-instance.ts +19 -4
- package/corpus/core/src/server/core-routes-plugin.ts +157 -5
- package/corpus/core/src/server/google-oauth-credentials.ts +51 -0
- package/corpus/core/src/server/index.ts +8 -0
- package/corpus/core/src/server/onboarding-html.ts +2 -1
- package/corpus/core/src/server/social-og-image.ts +6 -1
- package/corpus/core/src/vite/client.ts +83 -1
- package/corpus/templates/analytics/app/routes/$.tsx +9 -0
- package/corpus/templates/calendar/app/components/calendar/DayView.tsx +33 -1
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +11 -3
- package/corpus/templates/calendar/app/components/calendar/EventCard.tsx +25 -2
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +12 -0
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +7 -2
- package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +37 -78
- package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +33 -1
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +46 -3
- package/corpus/templates/calendar/app/hooks/use-google-auth.ts +203 -2
- package/corpus/templates/calendar/app/lib/event-colors.ts +1 -4
- package/corpus/templates/calendar/app/lib/rsvp-status.tsx +6 -0
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +9 -4
- package/corpus/templates/calendar/app/pages/NotFound.tsx +1 -1
- package/corpus/templates/calendar/app/pages/Settings.tsx +25 -1
- package/corpus/templates/calendar/app/routes/_app.$.tsx +9 -0
- package/corpus/templates/calendar/server/handlers/google-auth.ts +152 -12
- package/corpus/templates/calendar/server/lib/google-calendar.ts +63 -14
- package/corpus/templates/calendar/server/plugins/auth.ts +4 -20
- package/corpus/templates/calendar/shared/api.ts +4 -0
- package/corpus/templates/clips/.agents/skills/recording/SKILL.md +17 -0
- package/corpus/templates/clips/actions/sync-calendars.ts +6 -7
- package/corpus/templates/clips/app/components/capture-install-options.tsx +157 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +9 -8
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +4 -6
- package/corpus/templates/clips/app/lib/capture-install-options.ts +14 -0
- package/corpus/templates/clips/app/root.tsx +54 -2
- package/corpus/templates/clips/app/routes/_app.dictate.tsx +9 -13
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +5 -7
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +5 -7
- package/corpus/templates/clips/app/routes/download.tsx +49 -0
- package/corpus/templates/clips/app/routes/record.tsx +4 -4
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +5 -6
- package/corpus/templates/clips/chrome-extension/STORE_DRAFT.md +29 -0
- package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +6 -7
- package/corpus/templates/clips/server/lib/google-calendar-client.ts +61 -0
- package/corpus/templates/clips/server/routes/_agent-native/google/auth-url.get.ts +19 -12
- package/corpus/templates/clips/server/routes/_agent-native/google/callback.get.ts +6 -6
- package/corpus/templates/content/vite.config.ts +37 -1
- package/corpus/templates/design/app/pages/NotFound.tsx +1 -1
- package/corpus/templates/design/app/routes/$.tsx +9 -0
- package/corpus/templates/mail/app/pages/NotFound.tsx +1 -1
- package/corpus/templates/mail/app/routes/$.tsx +9 -0
- package/corpus/templates/plan/app/global.css +2 -2
- package/corpus/templates/slides/app/pages/NotFound.tsx +1 -1
- package/corpus/templates/slides/app/routes/$.tsx +9 -0
- package/corpus/templates/slides/server/lib/google-docs-oauth.ts +81 -25
- package/corpus/templates/videos/app/pages/NotFound.tsx +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/CommandMenu.d.ts +15 -2
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +46 -3
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/ConnectBuilderCard.d.ts.map +1 -1
- package/dist/client/ConnectBuilderCard.js +11 -2
- package/dist/client/ConnectBuilderCard.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/extensions/content-patch.d.ts.map +1 -1
- package/dist/extensions/content-patch.js +10 -2
- package/dist/extensions/content-patch.js.map +1 -1
- package/dist/oauth-tokens/google-refresh.d.ts.map +1 -1
- package/dist/oauth-tokens/google-refresh.js +29 -17
- package/dist/oauth-tokens/google-refresh.js.map +1 -1
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +28 -16
- package/dist/provider-api/index.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +6 -6
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +18 -4
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +5 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +107 -5
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/google-oauth-credentials.d.ts +15 -0
- package/dist/server/google-oauth-credentials.d.ts.map +1 -0
- package/dist/server/google-oauth-credentials.js +34 -0
- package/dist/server/google-oauth-credentials.js.map +1 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +2 -1
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/social-og-image.d.ts.map +1 -1
- package/dist/server/social-og-image.js +5 -1
- package/dist/server/social-og-image.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +83 -1
- package/dist/vite/client.js.map +1 -1
- package/docs/content/authentication.md +16 -2
- package/docs/content/template-analytics.md +14 -9
- package/docs/content/template-clips.md +35 -2
- package/package.json +1 -1
|
@@ -104,6 +104,11 @@ Set environment variables to enable social login. Better Auth auto-detects them:
|
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
106
|
# Google OAuth
|
|
107
|
+
GOOGLE_SIGN_IN_CLIENT_ID=your-low-scope-sign-in-client-id
|
|
108
|
+
GOOGLE_SIGN_IN_CLIENT_SECRET=your-low-scope-sign-in-client-secret
|
|
109
|
+
|
|
110
|
+
# Backwards-compatible fallback, and provider OAuth credentials for templates
|
|
111
|
+
# that connect to Google APIs such as Gmail or Calendar.
|
|
107
112
|
GOOGLE_CLIENT_ID=your-client-id
|
|
108
113
|
GOOGLE_CLIENT_SECRET=your-client-secret
|
|
109
114
|
|
|
@@ -114,6 +119,13 @@ GITHUB_CLIENT_SECRET=your-client-secret
|
|
|
114
119
|
|
|
115
120
|
Templates that use `createGoogleAuthPlugin()` show a "Sign in with Google" page. The Google OAuth callback handles mobile deep linking for native apps automatically.
|
|
116
121
|
|
|
122
|
+
Prefer `GOOGLE_SIGN_IN_CLIENT_ID` / `GOOGLE_SIGN_IN_CLIENT_SECRET` for normal
|
|
123
|
+
app login. That client should request only identity scopes. Keep
|
|
124
|
+
`GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` for product integrations that need
|
|
125
|
+
Google API scopes, or as the legacy fallback when a deploy has not been split
|
|
126
|
+
yet. Mail and Calendar-style apps should use their own provider OAuth clients so
|
|
127
|
+
high-scope consent screens do not affect generic app sign-in.
|
|
128
|
+
|
|
117
129
|
### OAuth State Signing {#oauth-state-secret}
|
|
118
130
|
|
|
119
131
|
Set `OAUTH_STATE_SECRET` to a random 32+ char value in production so OAuth state envelopes (Google, Atlassian, Zoom) are HMAC-signed with a dedicated key independent of any third-party secret. See [Security — OAuth State Signing](/docs/security#oauth-state) for the full requirements and threat model.
|
|
@@ -309,8 +321,10 @@ The default `/_agent-native/google/auth-url` route does this automatically — o
|
|
|
309
321
|
| `AGENT_NATIVE_WORKSPACE` | `1` runs in workspace mode — one shared session realm across workspace apps |
|
|
310
322
|
| `AGENT_NATIVE_SHARE_COOKIE_DOMAIN` | Set with `COOKIE_DOMAIN` to share one auth database across first-party subdomains |
|
|
311
323
|
| `OAUTH_STATE_SECRET` | Dedicated HMAC key for OAuth state envelopes (see [Security — OAuth State Signing](/docs/security#oauth-state)) |
|
|
312
|
-
| `
|
|
313
|
-
| `
|
|
324
|
+
| `GOOGLE_SIGN_IN_CLIENT_ID` | Preferred low-scope Google OAuth client ID for app login |
|
|
325
|
+
| `GOOGLE_SIGN_IN_CLIENT_SECRET` | Preferred low-scope Google OAuth secret for app login |
|
|
326
|
+
| `GOOGLE_CLIENT_ID` | Legacy Google login fallback, and provider OAuth client ID for Google API integrations |
|
|
327
|
+
| `GOOGLE_CLIENT_SECRET` | Legacy Google login fallback, and provider OAuth secret for Google API integrations |
|
|
314
328
|
| `GITHUB_CLIENT_ID` | Enable GitHub OAuth |
|
|
315
329
|
| `GITHUB_CLIENT_SECRET` | GitHub OAuth secret |
|
|
316
330
|
| `ACCESS_TOKEN` | Static bearer fallback for MCP/connect clients; not browser auth |
|
|
@@ -140,18 +140,23 @@ truth choices, metric definitions, dashboards, and analyses.
|
|
|
140
140
|
|
|
141
141
|
Credentials are stored via the framework's settings/env layer — no secrets in git. Production requires:
|
|
142
142
|
|
|
143
|
-
| Variable | Purpose
|
|
144
|
-
| ---------------------------------------- |
|
|
145
|
-
| `DATABASE_URL` | Persistent SQL connection URL
|
|
146
|
-
| `BETTER_AUTH_SECRET` / `BETTER_AUTH_URL` | Auth
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
| `
|
|
150
|
-
| `
|
|
143
|
+
| Variable | Purpose |
|
|
144
|
+
| ---------------------------------------- | ------------------------------------------------------- |
|
|
145
|
+
| `DATABASE_URL` | Persistent SQL connection URL |
|
|
146
|
+
| `BETTER_AUTH_SECRET` / `BETTER_AUTH_URL` | Auth |
|
|
147
|
+
| `GOOGLE_SIGN_IN_CLIENT_ID` / `_SECRET` | Preferred Google sign-in client (OAuth 2.0) |
|
|
148
|
+
| `GOOGLE_CLIENT_ID` / `_SECRET` | Legacy sign-in fallback / Google API integration client |
|
|
149
|
+
| `BIGQUERY_PROJECT_ID` | BigQuery project |
|
|
150
|
+
| `GOOGLE_APPLICATION_CREDENTIALS_JSON` | BigQuery service-account JSON |
|
|
151
|
+
| `ANTHROPIC_API_KEY` | Agent chat |
|
|
151
152
|
|
|
152
153
|
Provider-specific keys (HubSpot, Jira, Gong, Pylon, etc.) are documented in each source's walkthrough on the Data Sources page. If you add a new action that needs an API key, it appears as a new source on that page via the template's onboarding registration.
|
|
153
154
|
|
|
154
|
-
Note: the BigQuery OAuth credential for Google sign-in is a **separate**
|
|
155
|
+
Note: the BigQuery OAuth credential for Google sign-in is a **separate**
|
|
156
|
+
credential from the BigQuery service account JSON. Create the sign-in client at
|
|
157
|
+
GCP Console → APIs & Services → Credentials → OAuth client ID, and prefer the
|
|
158
|
+
`GOOGLE_SIGN_IN_CLIENT_ID` / `GOOGLE_SIGN_IN_CLIENT_SECRET` env names so this
|
|
159
|
+
low-scope login client stays separate from Google API integration clients.
|
|
155
160
|
|
|
156
161
|
### Data model
|
|
157
162
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Clips"
|
|
3
3
|
description: "Async screen recording, calendar-synced meeting notes, and push-to-talk voice dictation — paste Clips links into agents and they can read transcripts, visuals, and summaries."
|
|
4
|
+
search: "Clips browser logs developer logs console logs network logs fetch XHR Chrome extension diagnostics recorder desktop app"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Clips
|
|
@@ -33,10 +34,34 @@ Think along the lines of Loom + Granola + Wispr Flow rolled into one app — but
|
|
|
33
34
|
- **Share clips** with per-clip permissions (public, team, private). Link tracking and threaded comments work too.
|
|
34
35
|
- **Preview public clips in Slack** with a Loom-style playable unfurl after the
|
|
35
36
|
workspace installs your Clips Slack app.
|
|
37
|
+
- **Capture browser logs with the Chrome extension.** Browser recordings can
|
|
38
|
+
attach redacted console logs and fetch/XHR metadata, which is helpful for
|
|
39
|
+
product bugs and browser-only repros.
|
|
36
40
|
- **Paste Clips links into agents** so they can discover the agent-readable context: metadata, transcript segments, recommended frames, and timestamped frame images without receiving the raw video file.
|
|
37
41
|
- **Smart library views.** Group by project, filter by speaker, auto-tag based on content.
|
|
38
42
|
- **Edit the transcript through chat.** "Fix the mis-transcribed word at 1:42." "Pull three quotes for a blog post." The agent edits the transcript and the UI updates live.
|
|
39
43
|
|
|
44
|
+
## Browser logs and developer diagnostics
|
|
45
|
+
|
|
46
|
+
Use the Clips Chrome extension when you need a recording plus browser logs from
|
|
47
|
+
the tab you are debugging. The extension starts an active-tab recording and can
|
|
48
|
+
save redacted console logs, JavaScript exceptions, and fetch/XHR network
|
|
49
|
+
metadata such as method, redacted URL, status, duration, and failure text. It
|
|
50
|
+
does not save request bodies, response bodies, or headers.
|
|
51
|
+
|
|
52
|
+
The regular browser recorder page can save diagnostics from the recorder page
|
|
53
|
+
itself. The Chrome extension is the path for active-tab developer logs and
|
|
54
|
+
browser-only repros. In the Clips UI, use the Chrome option for browser logs and
|
|
55
|
+
the desktop app for the most seamless everyday capture path.
|
|
56
|
+
|
|
57
|
+
The Agent-Native Clips Chrome extension listing is
|
|
58
|
+
`https://chromewebstore.google.com/detail/baoipacpchggcdigagnajakiidcgcffn`.
|
|
59
|
+
If you host your own Clips server, keep the Chrome extension option hidden until
|
|
60
|
+
your Web Store listing is live. Set `VITE_CLIPS_CHROME_EXTENSION_ENABLED=1`
|
|
61
|
+
after approval to show the extension beside desktop-app download prompts. Set
|
|
62
|
+
`VITE_CLIPS_CHROME_EXTENSION_URL` only if you need to override the default
|
|
63
|
+
listing URL.
|
|
64
|
+
|
|
40
65
|
## Agent-readable clips
|
|
41
66
|
|
|
42
67
|
Paste a normal public Clips share link into an agent. The share page advertises
|
|
@@ -143,7 +168,7 @@ Clips is a larger template with a native recorder (it ships a desktop companion
|
|
|
143
168
|
|
|
144
169
|
1. **Video storage (required).** Connect a storage backend through the onboarding wizard. The easiest path is Builder.io (free during beta, one-click). For self-hosted storage, set `S3_ENDPOINT`, `S3_BUCKET`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, and optionally `S3_REGION` and `S3_PUBLIC_BASE_URL`. Cloudflare R2 and DigitalOcean Spaces use the same env vars with the `R2_*` prefix.
|
|
145
170
|
2. **Google Calendar (optional).** To sync upcoming meetings, connect a Google Calendar account from Settings. The OAuth callback URL in dev is `http://localhost:8094/_agent-native/google/callback`. Set up a Google OAuth client in [Google Cloud Console](https://console.cloud.google.com/) with the Gmail and Google Calendar APIs enabled.
|
|
146
|
-
3. **Screen-capture permissions.** On macOS, grant Screen Recording permission to the browser (or the desktop companion app) in System Settings → Privacy & Security → Screen Recording.
|
|
171
|
+
3. **Screen-capture permissions.** On macOS, grant Screen Recording permission to the browser (or the desktop companion app) in System Settings → Privacy & Security → Screen Recording. Browser recordings can save redacted console and fetch/XHR diagnostics from the recorder page. Once the Chrome extension listing is available, enable `VITE_CLIPS_CHROME_EXTENSION_ENABLED=1` so users can choose the extension for active-tab browser logs or the desktop app for the smoothest native capture path.
|
|
147
172
|
4. **Slack previews (optional).** Create a Slack app with `links:read`, `links:write`, and `links.embed:write`; subscribe to `link_shared`; add your Clips share domain under **App Unfurl Domains**; set the Request URL to `https://your-clips.example.com/api/slack/unfurl`; and add the OAuth redirect URL `https://your-clips.example.com/api/slack/oauth/callback`. Configure `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, and `SLACK_SIGNING_SECRET`, then connect workspaces from Clips Settings.
|
|
148
173
|
|
|
149
174
|
### Host your own Clips server
|
|
@@ -185,7 +210,15 @@ tray app at your deployment.
|
|
|
185
210
|
include that path, such as `https://example.com/clips`. Click **Connect**,
|
|
186
211
|
then sign in with an account on that Clips server.
|
|
187
212
|
|
|
188
|
-
5. **
|
|
213
|
+
5. **Enable the Chrome extension after publishing.** Keep
|
|
214
|
+
`VITE_CLIPS_CHROME_EXTENSION_ENABLED` unset until the Chrome Web Store listing
|
|
215
|
+
is approved. Then set it to `1` to reveal the browser-log option beside the
|
|
216
|
+
desktop app prompts. The default listing URL is
|
|
217
|
+
`https://chromewebstore.google.com/detail/baoipacpchggcdigagnajakiidcgcffn`;
|
|
218
|
+
set `VITE_CLIPS_CHROME_EXTENSION_URL` only if your deployment uses a
|
|
219
|
+
different extension listing.
|
|
220
|
+
|
|
221
|
+
6. **Connect optional integrations.** Google Calendar powers the Meetings tab,
|
|
189
222
|
`GEMINI_API_KEY` or Builder.io Connect powers transcript cleanup and titles,
|
|
190
223
|
`GROQ_API_KEY` can provide speech-to-text fallback, and the Slack OAuth
|
|
191
224
|
connection in Settings enables playable Slack unfurls.
|