@unbrowse/sdk 11.2.0 → 11.7.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 +32 -53
- package/dist/client.d.ts +86 -15
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +224 -106
- package/dist/client.js.map +1 -1
- package/dist/contracts.d.ts +31 -94
- package/dist/contracts.d.ts.map +1 -1
- package/dist/errors.d.ts +28 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +35 -6
- package/dist/errors.js.map +1 -1
- package/dist/flex.d.ts +254 -0
- package/dist/flex.d.ts.map +1 -0
- package/dist/flex.js +396 -0
- package/dist/flex.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/server-types.d.ts +97 -0
- package/dist/server-types.d.ts.map +1 -0
- package/dist/server-types.js +2 -0
- package/dist/server-types.js.map +1 -0
- package/dist/x402.d.ts +75 -0
- package/dist/x402.d.ts.map +1 -0
- package/dist/x402.js +29 -0
- package/dist/x402.js.map +1 -0
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -1,75 +1,54 @@
|
|
|
1
1
|
# @unbrowse/sdk
|
|
2
2
|
|
|
3
|
-
|
|
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
|
|
11
|
-
```
|
|
6
|
+
import { Unbrowse } from '@unbrowse/sdk';
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
import { Unbrowse } from "@unbrowse/sdk";
|
|
21
|
+
## Credentials
|
|
23
22
|
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
27
|
+
## Explicit requests and retries
|
|
44
28
|
|
|
45
29
|
```ts
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
+
## Payments
|
|
59
43
|
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
with:
|
|
50
|
+
## Browser choices and limits
|
|
72
51
|
|
|
73
|
-
|
|
74
|
-
|
|
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,
|
|
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
|
|
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
|
-
/**
|
|
89
|
-
|
|
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,EACT,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|