@skippr/live-agent-sdk 0.43.0 → 0.45.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
@@ -9,7 +9,7 @@ Embed product specialists that see, speak, and act in real time. Configure **mod
9
9
  - **Multi-module picker** — the widget fetches your active modules and lets the user pick which one to start (onboarding, demo, support, etc.), so a single embed covers every use case
10
10
  - **Real-time voice** — two-way audio with live transcription
11
11
  - **Capture modes** — `screenshare` (user shares screen) or `auto` (DOM capture)
12
- - **Agent controls** — opt-in capabilities like element highlighting, configured per module (auto mode only)
12
+ - **Agent controls** — opt-in capabilities like element highlighting and on-screen actions, configured per module (auto mode only)
13
13
  - **Chat + transcript** — text messaging with voice transcripts merged into one thread
14
14
  - **Session agenda** — structured phases with progress tracking
15
15
  - **Flexible auth** — email OTP (direct auth) or backend-signed JWT (secret mode)
@@ -217,7 +217,7 @@ Self-contained widget component. Renders a floating button that opens a sidebar
217
217
  | `startSessionLabel` | `string` | `'Talk to Skippr'` | Label for the start-session button (only shown when `agentId` is pinned) |
218
218
  | `autoFocusChat` | `boolean` | `true` | Whether the chat input auto-focuses when opened |
219
219
  | `captureMode` | `'screenshare' \| 'auto'` | `'screenshare'` | How the agent sees the page — `'screenshare'` prompts the user to share, `'auto'` uses DOM capture (no permission prompt) |
220
- | `agentControls` | `{ highlight?: boolean }` | — | Opt-in agent capabilities (e.g. element highlighting). **Requires `captureMode: 'auto'`** and only applies when `agentId` is pinned. In picker mode, controls are configured per module in the dashboard. |
220
+ | `agentControls` | `{ highlight?: boolean; actions?: boolean }` | — | Opt-in agent capabilities — `highlight` (element highlighting) and `actions` (on-screen actions). **Requires `captureMode: 'auto'`** and only applies when `agentId` is pinned. In picker mode, controls are configured per module in the dashboard. |
221
221
 
222
222
  ### `useLiveAgent()`
223
223
 
@@ -253,7 +253,7 @@ interface Module {
253
253
  description: string | null;
254
254
  type: string;
255
255
  priority: number;
256
- controls: { highlight?: boolean };
256
+ controls: { highlight?: boolean; actions?: boolean };
257
257
  }
258
258
  ```
259
259
 
@@ -261,7 +261,7 @@ interface Module {
261
261
 
262
262
  | Method | Type | Description |
263
263
  |--------|------|-------------|
264
- | `startSession` | `(opts: { agentId: string; agentControls?: { highlight?: boolean } }) => Promise<void>` | Start a new agent session |
264
+ | `startSession` | `(opts: { agentId: string; agentControls?: { highlight?: boolean; actions?: boolean } }) => Promise<void>` | Start a new agent session |
265
265
  | `pauseSession` | `() => Promise<void>` | Pause the active session and disconnect from LiveKit; resumable later |
266
266
  | `resumeSession` | `() => Promise<void>` | Resume the pinned agent's paused session, reconnecting to continue |
267
267
  | `disconnect` | `() => Promise<void>` | End the current session |
@@ -302,6 +302,12 @@ Available on `window.Skippr` when using the script tag bundle.
302
302
  | `Skippr.destroy()` | Remove the widget from the page and clear auth tokens |
303
303
 
304
304
 
305
+ ## On-screen actions
306
+
307
+ When an agent has the `actions` control enabled (auto mode only), it can act on the page for the user, not just guide them. A small on-screen indicator shows each action as it happens.
308
+
309
+ Actions are guardrailed: the SDK refuses to act on masked fields (passwords, secrets), sensitive iframes (Stripe, Plaid, captchas), or disabled controls. Use `data-skippr-private` (below) to put anything else off limits.
310
+
305
311
  ## Hiding elements from the agent
306
312
 
307
313
  To hide an element (and everything inside it) from the agent in `captureMode: 'auto'`, add the `data-skippr-private` attribute: