@rtrvr-ai/rover 1.1.1 → 1.2.0

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 CHANGED
@@ -104,6 +104,8 @@ const RoverWidget = dynamic(() => import('./RoverWidget'), { ssr: false });
104
104
  | `apiKey` | `string` | — | API key from Rover Workspace |
105
105
  | `siteKeyId` | `string` | — | Site key ID from Workspace |
106
106
  | `authToken` | `string` | — | Optional bearer token override (takes precedence over `apiKey` when both are set) |
107
+ | `visitor` | `{ name?: string; email?: string }` | — | Optional visitor profile for greeting personalization. Recommended flow is async updates via `identify(...)` after login/user hydration. |
108
+ | `apiBase` | `string` | `https://extensionrouter.rtrvr.ai` | Optional API base override. Workspace snippets keep the managed default; code integrations can pass a custom base directly (no `/extensionRouter` suffix required). |
107
109
  | `allowedDomains` | `string[]` | `[]` | Hostnames where Rover may operate |
108
110
  | `domainScopeMode` | `'registrable_domain' \| 'host_only'` | `'registrable_domain'` | Domain matching strategy |
109
111
  | `externalNavigationPolicy` | `'open_new_tab_notice' \| 'block' \| 'allow'` | `'open_new_tab_notice'` | External navigation policy |
@@ -140,6 +142,11 @@ const RoverWidget = dynamic(() => import('./RoverWidget'), { ssr: false });
140
142
  | `ui.thoughtStyle` | `'concise_cards' \| 'minimal'` | `'concise_cards'` | Thought rendering style |
141
143
  | `ui.panel.resizable` | `boolean` | `true` | Panel resizable preference |
142
144
  | `ui.showTaskControls` | `boolean` | `true` | Show new/end task controls |
145
+ | `ui.shortcuts` | `RoverShortcut[]` | `[]` | Suggested journeys (max 100 stored, max 12 rendered by default; lower site-key policy caps are enforced) |
146
+ | `ui.greeting` | `{ text?, delay?, duration?, disabled? }` | — | Greeting bubble config (`{name}` token supported) |
147
+
148
+ When a site key is used, Rover also fetches cloud site config via `roverGetSiteConfig` (shortcuts + greeting).
149
+ If the same field exists in both cloud config and boot config, boot config wins.
143
150
 
144
151
  If you enable `tools.web.scrapeMode: 'on_demand'`, use a site key capability profile that includes cloud scrape support.
145
152
 
@@ -173,6 +180,7 @@ rover.send('Hello');
173
180
  | `getState()` | Get current runtime state |
174
181
  | `update(config)` | Update configuration without rebooting |
175
182
  | `registerTool(def, handler)` | Register a client-side tool |
183
+ | `identify(visitor)` | Update visitor profile after boot (for async login/user hydration) |
176
184
  | `on(event, handler)` | Subscribe to events (returns unsubscribe fn) |
177
185
 
178
186
  ## Events
@@ -206,7 +214,7 @@ If your site sets a CSP header, add these directives:
206
214
  |---|---|---|
207
215
  | `script-src` | `https://rover.rtrvr.ai blob:` | SDK script + Web Worker blob |
208
216
  | `worker-src` | `blob: https://rover.rtrvr.ai` | Web Worker execution |
209
- | `connect-src` | `https://us-central1-rtrvr-extension-functions.cloudfunctions.net` | API calls |
217
+ | `connect-src` | `https://extensionrouter.rtrvr.ai` | API calls |
210
218
  | `style-src` | `'unsafe-inline'` | Shadow DOM styles |
211
219
  | `font-src` | `https://rover.rtrvr.ai` | Self-hosted Manrope font |
212
220