@unbrowse/sdk 11.2.0 → 11.6.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
@@ -1,75 +1,54 @@
1
1
  # @unbrowse/sdk
2
2
 
3
- TypeScript client for the Unbrowse 11.1.9 local runtime. It can connect to an
4
- existing runtime or start the `unbrowse` binary for the lifetime of your process.
5
-
6
- New applications that do not need process control should use the SDK bundled in
7
- `unbrowse`:
3
+ Clients submit tasks to your Unbrowse API. The server indexes a site with Browser Use on the first request and replays observed HTTP reads afterward. The SDK never reverse-engineers a site or starts a local browser.
8
4
 
9
5
  ```ts
10
- import { Unbrowse } from "unbrowse/sdk";
11
- ```
6
+ import { Unbrowse } from '@unbrowse/sdk';
12
7
 
13
- ## Install
14
-
15
- ```bash
16
- npm install @unbrowse/sdk unbrowse
8
+ const client = new Unbrowse({
9
+ baseUrl: process.env.UNBROWSE_API_URL,
10
+ apiKey: process.env.UNBROWSE_API_KEY,
11
+ });
12
+ const result = await client.run({
13
+ url: 'https://example.com/products',
14
+ intent: 'Find matching products',
15
+ params: { q: 'books' },
16
+ });
17
17
  ```
18
18
 
19
- ## Start locally
19
+ Deploy the Worker and private executor before using the new API. The default hosted URL has not been cut over. See [server execution](../../docs/server-execution.md) for deployment and measured proof.
20
20
 
21
- ```ts
22
- import { Unbrowse } from "@unbrowse/sdk";
21
+ ## Credentials
23
22
 
24
- const unbrowse = await Unbrowse.local({
25
- apiKey: process.env.UNBROWSE_API_KEY,
26
- });
27
-
28
- try {
29
- const resolved = await unbrowse.resolve({
30
- intent: "list tomorrow's events",
31
- url: "https://calendar.google.com",
32
- });
33
- console.log(resolved.result);
34
- } finally {
35
- await unbrowse.close();
36
- }
37
- ```
23
+ Provide transient origin-scoped headers with `credentials: { storage: 'local', origin, headers }`, or use `storeCredential(id, { origin, headers })` and pass `credentials: { storage: 'remote', id }`. The server encrypts remote credentials per tenant. `deleteCredential(id)` removes them. No plaintext credential-read endpoint exists.
38
24
 
39
- `Unbrowse.local()` reuses a healthy runtime on `127.0.0.1:6969` or starts one
40
- when necessary. Use `connect(url)` when another process owns the runtime and
41
- `spawn()` when you always want an isolated child.
25
+ Both modes send requests through the API. Local custody means your application retains the credential between calls; the server necessarily processes it during execution. Never paste credentials into prompts or URLs.
42
26
 
43
- ## Health and public stats
27
+ ## Explicit requests and retries
44
28
 
45
29
  ```ts
46
- const live = await unbrowse.liveness();
47
- const ready = await unbrowse.readiness();
48
- const summary = await unbrowse.statsSummary();
49
- const flywheel = await unbrowse.flywheel();
30
+ const operationKey = crypto.randomUUID(); // retain for this intended operation
31
+ await client.run({
32
+ url: 'https://example.com/api/items',
33
+ intent: 'Create the item requested by the user',
34
+ request: { method: 'POST', body: JSON.stringify({ name: 'Example' }) },
35
+ }, { headers: { 'Idempotency-Key': operationKey } });
50
36
  ```
51
37
 
52
- `liveness()` answers whether the process is up. `readiness()` includes storage
53
- dependency state and returns a typed `degraded` response when Cloudflare KV is
54
- serving as the fallback, rather than throwing on the readiness HTTP 503.
38
+ Writes require an explicit method and retained key. The SDK does not retry execution automatically. An uncertain dispatch stays indeterminate; changed content under the same key is rejected. A completed duplicate returns the saved result. These rules do not guarantee exactly-once effects in an external system.
55
39
 
56
- ## Credits
40
+ `resolve` requires a target URL and executes through the gateway. `execute` requires explicit URL and method; an old skill ID alone does not authorize a request. Search methods remain free discovery.
57
41
 
58
- Metered work is charged to account credits through the normal account API.
42
+ ## Payments
59
43
 
60
- ```ts
61
- const credits = await unbrowse.credits();
62
- console.log(credits.balance_uc / 1_000_000);
63
- ```
44
+ Execution is free by default. No payment provider is required. Optional server configuration supports x402 Base USDC with Stripe transaction verification, Stripe MPP for Link Agent Wallet, and verified Stripe Billing subscription admission. Link agent payments use MPP; subscriptions use Billing.
64
45
 
65
- An HTTP 402 becomes `InsufficientCreditsError`. Add credits, then retry the same
66
- request. Executes retain their normal idempotency behavior.
46
+ A payment-required error contains response headers, the complete challenge, the operation key and `retryWithPayment(headers)`. Obtain a proof with an official payment client under explicit spending authority, then pass `PAYMENT-SIGNATURE` or `Authorization: Payment …` to that closure. It preserves request body and operation identity. The retained legacy `payAndRetry` helper does not implement this new protocol.
67
47
 
68
- ## Authentication
48
+ No paid mode is enabled automatically. Live Stripe/Link settlement requires configured provider accounts and independent validation. See [payment setup](../../docs/machine-payments.md).
69
49
 
70
- Pass `apiKey` to the constructor/factory or set `UNBROWSE_API_KEY`. Create a key
71
- with:
50
+ ## Browser choices and limits
72
51
 
73
- ```bash
74
- unbrowse register --email you@example.com
75
- ```
52
+ Server-owned Chromium is the default. Remote Browser Use Cloud is explicit opt-in. `browser: 'disabled'` permits known-route replay but rejects a cache miss.
53
+
54
+ Current learned routes are single observed JSON reads. Browser form interactions, multi-step DAGs, automatic password login/session refresh, binary downloads and streaming are outside this gateway. Local HTML parsing and research formatting may still run client-side; upstream execution goes through your API.
package/dist/client.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- import type { AttributionLedger, AvailableEndpoint, CreatorTransactionsResponse, Dashboard, ExecuteInput, ExecuteResponse, FeedbackInput, FeedbackResponse, HealthResponse, LivenessResponse, StatsSummaryResponse, FlywheelPulse, LoginInput, LoginResponse, RequestOptions, ResolveInput, ResolveResponse, SearchDomainInput, SearchInput, SearchResponse, SearchEndpointsInput, SearchEndpointsResponse, SkillManifest, StatsResponse, StealAuthInput, StealAuthResponse, UnbrowseClientOptions, PublishSkillInput, PublishResponse, AnnotateInput, AnnotateResponse, CreditsBalance } from "./contracts.js";
1
+ import type { AttributionLedger, AvailableEndpoint, CreatorTransactionsResponse, Dashboard, ExecuteInput, ExecuteResponse, FeedbackInput, FeedbackResponse, HealthResponse, LoginInput, LoginResponse, RequestOptions, ResolveInput, ResolveResponse, SearchDomainInput, SearchInput, SearchResponse, SearchEndpointsInput, SearchEndpointsResponse, SkillManifest, StatsResponse, StealAuthInput, StealAuthResponse, UnbrowseClientOptions, PublishSkillInput, PublishResponse, AnnotateInput, AnnotateResponse, PaymentProvider, PaymentProviderResponse } from "./contracts.js";
2
+ import type { ServerRunInput, ServerRunResult, ServerRegistry, ServerPrimitiveCall, ServerPrimitiveSelection, ServerWorkflow, ServerWorkflowResult } from "./server-types.js";
2
3
  import { type SpawnRuntimeOptions } from "./runtime.js";
4
+ export declare function telemetryEnvDisabled(value: string | undefined): boolean;
5
+ /** Collapse an SDK route to a fixed category without retaining path parameters. */
6
+ export declare function sdkUsageOperationForPath(path: string, method?: string): string;
3
7
  export declare class Unbrowse {
4
8
  readonly baseUrl: string;
5
9
  readonly apiKey?: string;
@@ -7,6 +11,8 @@ export declare class Unbrowse {
7
11
  private readonly defaultHeaders?;
8
12
  private readonly fetchImpl;
9
13
  private readonly timeoutMs?;
14
+ private readonly telemetryEnabled;
15
+ private readonly telemetryEndpoint;
10
16
  private _runtimeHandle;
11
17
  constructor(options?: UnbrowseClientOptions);
12
18
  /**
@@ -36,7 +42,21 @@ export declare class Unbrowse {
36
42
  * own runtime, this kills the child process. Otherwise no-op.
37
43
  */
38
44
  close(): Promise<void>;
45
+ private reportUsage;
39
46
  request<T>(method: string, path: string, body?: unknown, options?: RequestOptions): Promise<T>;
47
+ run(input: ServerRunInput, options?: RequestOptions): Promise<ServerRunResult>;
48
+ registry(options?: RequestOptions): Promise<ServerRegistry>;
49
+ selectPrimitive(goal: string, options?: RequestOptions): Promise<ServerPrimitiveSelection>;
50
+ callPrimitive(input: ServerPrimitiveCall, options?: RequestOptions): Promise<ServerRunResult>;
51
+ runWorkflow(input: ServerWorkflow, options?: RequestOptions): Promise<ServerWorkflowResult>;
52
+ storeCredential(id: string, credential: import("./server-types.js").ServerCredential, options?: RequestOptions): Promise<{
53
+ id: string;
54
+ origin: string;
55
+ storage: "remote";
56
+ }>;
57
+ deleteCredential(id: string, options?: RequestOptions): Promise<{
58
+ deleted: true;
59
+ }>;
40
60
  resolve(input: ResolveInput, options?: RequestOptions): Promise<ResolveResponse>;
41
61
  execute(skill: string | ExecuteInput | ResolveResponse, input?: Omit<ExecuteInput, "skillId">, options?: RequestOptions): Promise<ExecuteResponse>;
42
62
  getSkill(skillId: string, options?: RequestOptions): Promise<SkillManifest>;
@@ -54,7 +74,7 @@ export declare class Unbrowse {
54
74
  *
55
75
  * Optional `domain` scopes the search to one host's endpoints; omit for
56
76
  * cross-marketplace search. Authenticated agents are charged the
57
- * standard credit cost; anonymous
77
+ * standard search fee per the existing x402 economics; anonymous
58
78
  * callers get free rate-limited public discovery.
59
79
  *
60
80
  * @example
@@ -69,29 +89,69 @@ export declare class Unbrowse {
69
89
  feedback(input: FeedbackInput, options?: RequestOptions): Promise<FeedbackResponse>;
70
90
  stats(options?: RequestOptions): Promise<StatsResponse>;
71
91
  health(options?: RequestOptions): Promise<HealthResponse>;
72
- /** Process liveness only. Use this for uptime checks. */
73
- liveness(options?: RequestOptions): Promise<LivenessResponse>;
74
- /**
75
- * Dependency-aware readiness. A 503 degraded response is returned as typed
76
- * data instead of thrown, so callers can inspect the active fallback.
77
- */
78
- readiness(options?: RequestOptions): Promise<HealthResponse>;
79
- /** Public marketplace and performance counters. */
80
- statsSummary(options?: RequestOptions): Promise<StatsSummaryResponse>;
81
- /** Cached marketplace flywheel pulse. */
82
- flywheel(options?: RequestOptions): Promise<FlywheelPulse>;
83
92
  /**
84
93
  * Earnings/spending dashboard for the authenticated agent.
85
94
  * Requires `apiKey` set on the client. Backend: `GET /v1/dashboard/me`.
86
95
  */
87
96
  dashboard(options?: RequestOptions): Promise<Dashboard>;
88
- /** Current account credit balance and usage ledger. */
89
- credits(options?: RequestOptions): Promise<CreditsBalance>;
97
+ /**
98
+ * Public dashboard for any wallet address. Backend: `GET /v1/dashboard/wallet/:walletAddress`.
99
+ */
100
+ dashboardByWallet(walletAddress: string, options?: RequestOptions): Promise<Dashboard>;
90
101
  /**
91
102
  * Per-transaction earnings ledger for a creator agent.
92
103
  * Backend: `GET /v1/transactions/creator/:agentId`.
93
104
  */
94
105
  creatorTransactions(agentId: string, options?: RequestOptions): Promise<CreatorTransactionsResponse>;
106
+ /**
107
+ * Fund a Flex escrow on the caller's behalf. Thin wrapper around
108
+ * `fundEscrow` in `./flex.ts` — requires the caller to pass
109
+ * `signer` + `rpc` for v6.16-preview.0 (until SDK ships its own
110
+ * @solana/kit pipeline). For pure tx construction without sending,
111
+ * import `buildEscrowCreationTx` from the package root.
112
+ */
113
+ fundEscrow(params: {
114
+ amountUsdc: string;
115
+ walletAddress?: string;
116
+ facilitatorAddress?: string;
117
+ mint?: string;
118
+ refundTimeoutSlots?: number;
119
+ deadmanTimeoutSlots?: number;
120
+ signer?: unknown;
121
+ rpc?: unknown;
122
+ }): Promise<{
123
+ escrowAddress: string;
124
+ txSignature: string;
125
+ }>;
126
+ /**
127
+ * Register a session key against the caller's existing Flex escrow.
128
+ * Thin wrapper around `registerSessionKey` in `./flex.ts`.
129
+ */
130
+ registerSessionKey(params: {
131
+ sessionKeyAddress: string;
132
+ walletAddress?: string;
133
+ escrowAddress?: string;
134
+ expiresAtSlot?: string;
135
+ revocationGracePeriodSlots?: number;
136
+ signer?: unknown;
137
+ rpc?: unknown;
138
+ }): Promise<{
139
+ txSignature: string;
140
+ }>;
141
+ /**
142
+ * Execute a skill against a Flex-metered route. preview.0/preview.1 stub:
143
+ * the backend metered-execute route (`POST /v1/skills/:id/execute` with
144
+ * Flex-shaped 402 + usage_units settlement) ships in v6.16.0-preview.2.
145
+ * Callers must use `Unbrowse#execute` against fixed-price skills until
146
+ * then. The method signature stays for forward compat; the body refuses
147
+ * with a precise version-targeted error.
148
+ */
149
+ executeMetered<T = unknown>(_skillOrId: string | {
150
+ skill_id: string;
151
+ }, _input: unknown, _opts?: {
152
+ onUsage?: (units: number) => void;
153
+ wallet?: import("./flex.js").FlexWalletLike;
154
+ }, _options?: RequestOptions): Promise<T>;
95
155
  /**
96
156
  * Indexer earnings via delta-based attribution.
97
157
  * Backend: `GET /v1/attribution/indexer/:indexerId`.
@@ -113,5 +173,16 @@ export declare class Unbrowse {
113
173
  * SDK gap-fill. Mirrors CLI `unbrowse annotate` + MCP `unbrowse_annotate`.
114
174
  */
115
175
  annotate(input: AnnotateInput, options?: RequestOptions): Promise<AnnotateResponse>;
176
+ /**
177
+ * Persist the agent's chosen x402 payment rail on the backend.
178
+ * Backend: `POST /v1/account/payment-provider` (shipped in #691).
179
+ *
180
+ * SDK gap-fill: surface the Wave 2 backend route as a typed SDK
181
+ * method so SDK callers can sync provider choice without rolling
182
+ * a raw fetch. Allowed values are the same six the route whitelists:
183
+ * pay_sh / lobster_cash / external_solana / privy_embedded /
184
+ * privy_embedded_solana / skip.
185
+ */
186
+ paymentProvider(provider: PaymentProvider, options?: RequestOptions): Promise<PaymentProviderResponse>;
116
187
  }
117
188
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}