@rtrvr-ai/rover 1.1.2 → 1.2.1

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,7 +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
- | `apiBase` | `string` | `https://extensionrouter.rtrvr.ai` | Optional API base override. For custom domain routing you can pass the base directly (no `/extensionRouter` suffix required). |
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). |
108
109
  | `allowedDomains` | `string[]` | `[]` | Hostnames where Rover may operate |
109
110
  | `domainScopeMode` | `'registrable_domain' \| 'host_only'` | `'registrable_domain'` | Domain matching strategy |
110
111
  | `externalNavigationPolicy` | `'open_new_tab_notice' \| 'block' \| 'allow'` | `'open_new_tab_notice'` | External navigation policy |
@@ -121,10 +122,10 @@ const RoverWidget = dynamic(() => import('./RoverWidget'), { ssr: false });
121
122
  | `checkpointing.onStateChange` | `(payload) => void` | — | Checkpoint lifecycle updates (`active`, `paused_auth`) |
122
123
  | `checkpointing.onError` | `(payload) => void` | — | Checkpoint request error callback |
123
124
  | `telemetry.enabled` | `boolean` | `true` | Enable runtime telemetry batching |
124
- | `telemetry.sampleRate` | `number` | `1` | Event sampling ratio (0..1) |
125
- | `telemetry.flushIntervalMs` | `number` | `12000` | Telemetry flush cadence |
126
- | `telemetry.maxBatchSize` | `number` | `30` | Max events per telemetry request |
127
- | `telemetry.includePayloads` | `boolean` | `false` | Include richer event payloads |
125
+ | `telemetry.sampleRate` | `number` | `1` | Sampling ratio (`1` = all events, `0.1` ≈ 10%) |
126
+ | `telemetry.flushIntervalMs` | `number` | `12000` | Flush cadence for buffered telemetry events |
127
+ | `telemetry.maxBatchSize` | `number` | `30` | Maximum number of telemetry events sent per flush request |
128
+ | `telemetry.includePayloads` | `boolean` | `false` | Include richer per-event payload details (debug/tool context). Increases telemetry volume and may include sensitive runtime content. |
128
129
  | `apiMode` | `boolean` | auto (`true` when `apiKey` exists) | Force API execution mode |
129
130
  | `apiToolsConfig.mode` | `'allowlist' \| 'profile' \| 'none'` | `'none'` | API additional tool exposure mode |
130
131
  | `tools.web.enableExternalWebContext` | `boolean` | `false` | External tab cloud context fallback |
@@ -141,6 +142,11 @@ const RoverWidget = dynamic(() => import('./RoverWidget'), { ssr: false });
141
142
  | `ui.thoughtStyle` | `'concise_cards' \| 'minimal'` | `'concise_cards'` | Thought rendering style |
142
143
  | `ui.panel.resizable` | `boolean` | `true` | Panel resizable preference |
143
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.
144
150
 
145
151
  If you enable `tools.web.scrapeMode: 'on_demand'`, use a site key capability profile that includes cloud scrape support.
146
152
 
@@ -174,6 +180,7 @@ rover.send('Hello');
174
180
  | `getState()` | Get current runtime state |
175
181
  | `update(config)` | Update configuration without rebooting |
176
182
  | `registerTool(def, handler)` | Register a client-side tool |
183
+ | `identify(visitor)` | Update visitor profile after boot (for async login/user hydration) |
177
184
  | `on(event, handler)` | Subscribe to events (returns unsubscribe fn) |
178
185
 
179
186
  ## Events