@scalebrowser/sdk 1.2.0 → 1.3.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/CHANGELOG.md CHANGED
@@ -9,6 +9,66 @@ reconstructing it here would look like a record that had been kept all along.
9
9
  The daemon and the SDK version independently. An SDK release names the daemon
10
10
  version it was tested against wherever that matters.
11
11
 
12
+ ## 1.3.0 (2026-11-05)
13
+
14
+ Tested against daemon 0.26.0. Nothing is removed or renamed: every change adds a
15
+ method, a field or a value to a union. A daemon up to 0.25.x answers the new
16
+ workflow, table and plan routes with 404 or leaves the new fields out.
17
+
18
+ - **Plans**: an account without a subscription is on `free` now, and
19
+ `enterprise` is a plan too (`Account.plan`). `Account` gains `profile_limit` and
20
+ `workflow_limit` (absent when the plan has no cap) and `workflows_local`.
21
+ - `ErrorCode.PlanLimit` (4014): the plan itself stops an action, for example a
22
+ fourth profile on Free, a schedule on Free or a workflow over the plan's
23
+ number. The error body's `plan_limit` names the limit, the allowed number, the
24
+ plan and whether the 7-day trial is still open. `ApiError.reason` carries the
25
+ case where one numeric code covers several.
26
+ - **Workflows**, the whole surface the app's workflow editor uses, about ninety
27
+ methods: create, edit, rename and delete (`createWorkflow`, `editWorkflow`,
28
+ `renameWorkflow`, `deleteWorkflow`, `workflowDeletePreview`), versions and
29
+ publishing (`saveWorkflowVersion`, `publishWorkflow`, `listWorkflowVersions`,
30
+ `diffWorkflow`, `revertWorkflow`, `adoptWorkflowVersion`, `undoWorkflowBatch`),
31
+ runs (`startWorkflowRun`, `listWorkflowRuns`, `getWorkflowRun`,
32
+ `listWorkflowRunSteps`, `cancelWorkflowRun`, `forkWorkflowRun`,
33
+ `previewWorkflowRunFork`, `decideWorkflowRun`, run files), approvals
34
+ (`listWorkflowApprovals`, `decideWorkflowApproval`, the approval webhook),
35
+ triggers and switches (`workflowHooks`, `rotateWorkflowHook`,
36
+ `listWorkflowFires`, `listWorkflowSwitches`, `setWorkflowSwitch`,
37
+ `emergencyStopWorkflows`), variables, file access, repairs, readiness, usage,
38
+ the queue, node types and the settings schema, templates
39
+ (`workflowTemplates`, `instantiateTemplate`), sharing (`shareWorkflow`,
40
+ `importSharedWorkflow`, `revokeWorkflowShare`) and the machines a workflow runs
41
+ on (`workflowMachines`, `cancelWorkflowForward`).
42
+ - **Tables**: `createTable`, `listTables`, `getTable`, `updateTable`, `editTable`,
43
+ `listTableRows`, `countTableRows`, `importTable`, `exportTable`, the trash
44
+ (`listTableTrash`, `restoreTables`) and `deleteTable`.
45
+ - **Google Sheets**: `connectGoogle`, `listGoogleConnections`, `linkSheet` and
46
+ `disconnectGoogle`.
47
+ - **Model sources for the AI steps**: `listAiSources`, `createAiSource`,
48
+ `updateAiSource`, `checkAiSource`, `deleteAiSource`, `getAiSettings`,
49
+ `putAiSettings` and `listAiInvocations`.
50
+ - **White label**: `agencyClients`, `setAgencyDistribution`, `setAgencyAiKey`,
51
+ `setClientBriefMode`, `wlSharing` and `setWlSharing`.
52
+ - A run, an activity and an agent run can now name `workflow` as their actor
53
+ (`RunActor`), and `workflows` is a tool group (`ToolGroupId`).
54
+
55
+ - `revealInbox(profileId, { vault_password })`: the profile's bound mailbox for a
56
+ script, with every message, the code candidates in it and each link with its
57
+ full address. Behind the vault password, because a sign-in link IS the account.
58
+ - `listPendingInterruptions(profileId, { targetId })`: what waits in a tab right
59
+ now. Operator locks and standing rules answer what they decide first, and those
60
+ come back under `already_answered`.
61
+ - `respondInterruption(profileId, { interruption_id, choice })`: answer one the
62
+ way its own button would. A kind an operator lock decides is refused with 409.
63
+ - `LifecycleEvent` lacked three events the daemon sends: `concurrency_rejected`,
64
+ `secret_changed` (the whole entry as `SecretRow`, never a value) and
65
+ `secret_gone`. A test compares the union with the daemon's own list, so a new
66
+ event can no longer be missing here.
67
+ - `WorkflowSyncView.unsent` (`UnsentChange[]`): what this machine could not send
68
+ to its other machines, with the workflow, its size and since when. The daemon
69
+ now splits a large saved version into parts, so only a change above about 8 MB
70
+ lands here. Optional: a daemon up to 0.24.0 does not send it.
71
+
12
72
  ## 1.2.0 (2026-10-22)
13
73
 
14
74
  Two fixes in the CDP driver, both measured against a real browser, and three
package/README.md CHANGED
@@ -98,14 +98,18 @@ Every `/v1` endpoint is a typed method on `ScalebrowserClient`:
98
98
  - **Sessions**: `exportSession`, `importSession`
99
99
  - **Mailboxes**: `listInboxes`, `createInbox`, `updateInbox`, `deleteInbox`,
100
100
  `getInboxBindings`, `bindInbox`, `unbindInbox`, which is where a profile's
101
- confirmation codes arrive
101
+ confirmation codes arrive. `revealInbox` reads them: every message, the code
102
+ candidates in it and each link with its full address, behind the vault password
103
+ because a sign-in link IS the account
102
104
  - **Passkeys**: `listPasskeys`, `deletePasskey`. Metadata only: the private key
103
105
  has no field and no endpoint
104
106
  - **Agent runs**: `listRuns`, `getRun`, `listRunSteps`, `getRunShot`,
105
107
  `getActivity`. Read-only, all of it
106
108
  - **Interruptions**: `listInterruptionLocks`, `setInterruptionLock`,
107
109
  `listInterruptionRules`, `setInterruptionRule`, `deleteInterruptionRule`: who
108
- may answer when the browser asks something
110
+ may answer when the browser asks something. `listPendingInterruptions` shows what
111
+ waits in a tab right now and `respondInterruption` answers it; a kind an
112
+ operator lock decides is refused (409)
109
113
  - **Artifacts**: `putArtifact` (hand the daemon a file to upload later),
110
114
  `getArtifact` (fetch a screenshot, download or saved PDF as bytes)
111
115
  - **Tasks and memory**: `listTasks`, `createTasks`, `cancelTask`, `deleteTask`,
@@ -133,6 +137,49 @@ Every `/v1` endpoint is a typed method on `ScalebrowserClient`:
133
137
  optional MCP tool groups agents see), `getConnection` (which installation
134
138
  answered: its data directory and its binary)
135
139
  - **Input**: `sendInput`
140
+ - **Workflows**: `listWorkflows`, `getWorkflow`, `createWorkflow`, `editWorkflow`,
141
+ `renameWorkflow`, `deleteWorkflow`, `workflowDeletePreview`, `extractWorkflow`.
142
+ `extractWorkflow` moves a part of the draft into a workflow of its own
143
+ - **Workflow versions**: `listWorkflowVersions`, `getWorkflowVersion`,
144
+ `saveWorkflowVersion`, `publishWorkflow`, `diffWorkflow`, `revertWorkflow`,
145
+ `adoptWorkflowVersion`, `undoWorkflowBatch`. Saving, publishing and going back
146
+ - **Workflow runs**: `startWorkflowRun`, `listWorkflowRuns`, `getWorkflowRun`,
147
+ `listWorkflowRunSteps`, `listWorkflowRunFiles`, `getWorkflowRunFile`,
148
+ `cancelWorkflowRun`, `forkWorkflowRun`, `previewWorkflowRunFork`,
149
+ `decideWorkflowRun`, `getWorkflowQueue`, `getWorkflowUsage`,
150
+ `getWorkflowReadiness`. A fork runs again from a chosen step and keeps the outputs
151
+ before it
152
+ - **Approvals**: `listWorkflowApprovals`, `decideWorkflowApproval`,
153
+ `getApprovalWebhook`, `setApprovalWebhook`. Steps that wait for a person
154
+ - **Triggers and switches**: `workflowHooks`, `rotateWorkflowHook`,
155
+ `listWorkflowFires`, `listWorkflowSwitches`, `setWorkflowSwitch`,
156
+ `emergencyStopWorkflows`. Schedules and webhooks need a paid plan (4014 on Free)
157
+ - **Variables and files**: `listWorkflowVariables`, `setWorkflowVariable`,
158
+ `revealWorkflowVariable`, `getWorkflowFileAccess`, `setWorkflowFileAccess`,
159
+ `grantWorkflowFolder`, `ungrantWorkflowFolder`, `listWorkflowFastDomains`,
160
+ `putWorkflowFastDomain`, `deleteWorkflowFastDomain`. A secret variable is shown
161
+ again only through `revealWorkflowVariable`, behind the vault password
162
+ - **Repairs**: `listWorkflowRepairs`, `getWorkflowRepair`, `revertWorkflowRepair`,
163
+ `getWorkflowRepairMetrics`. The fixes the repair made when a step broke
164
+ - **Building blocks**: `listNodeTypes`, `getNodeType`, `getWorkflowSettingsSchema`,
165
+ `getWorkflowReferenceSources`, `workflowTemplates`, `instantiateTemplate`
166
+ - **Sharing and machines**: `shareWorkflow`, `importSharedWorkflow`,
167
+ `revokeWorkflowShare`, `workflowMachines`, `cancelWorkflowForward`.
168
+ `workflowMachines` names the machine each profile lives on; a start sent there can
169
+ be cancelled
170
+ - **Tables**: `countTableRows`, `createTable`, `deleteTable`, `editTable`,
171
+ `exportTable`, `getTable`, `importTable`, `listTableRows`, `listTableTrash`,
172
+ `listTables`, `restoreTables`, `updateTable`. The data a workflow reads and
173
+ writes, with a trash
174
+ - **Google Sheets**: `connectGoogle`, `disconnectGoogle`, `linkSheet`,
175
+ `listGoogleConnections`. Linked with Google's own picker; on Free only through
176
+ your own Google Cloud project
177
+ - **Model sources**: `checkAiSource`, `createAiSource`, `deleteAiSource`,
178
+ `getAiSettings`, `listAiInvocations`, `listAiSources`, `putAiSettings`,
179
+ `updateAiSource`. The keys and models behind the AI steps
180
+ - **White label**: `agencyClients`, `setAgencyAiKey`, `setAgencyDistribution`,
181
+ `setClientBriefMode`, `setWlSharing`, `wlSharing`. For an Enterprise agency and
182
+ its clients
136
183
  - **Metrics / Account / Health**: `getMetrics`, `getAccount`, `health`, `ready`.
137
184
  The first two answer 404 on a daemon without them, which the SDK treats as
138
185
  information rather than as an error: metrics are then derived from profile
@@ -141,7 +188,7 @@ Every `/v1` endpoint is a typed method on `ScalebrowserClient`:
141
188
 
142
189
  `setToken` swaps the bearer token on a live client.
143
190
 
144
- Errors map to typed exceptions carrying the daemon's numeric code (4001–4013):
191
+ Errors map to typed exceptions carrying the daemon's numeric code (4001–4014; 4014 is a plan limit, with `plan_limit` in its body):
145
192
 
146
193
  ```ts
147
194
  import { ApiError, ErrorCode } from '@scalebrowser/sdk';