@unbrowse/sdk 11.1.0 → 11.1.5
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 +40 -192
- package/dist/client.d.ts +117 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +385 -0
- package/dist/client.js.map +1 -0
- package/dist/contracts.d.ts +541 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +2 -0
- package/dist/contracts.js.map +1 -0
- package/dist/errors.d.ts +27 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +47 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime.d.ts +78 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +339 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +3 -4
package/README.md
CHANGED
|
@@ -1,227 +1,75 @@
|
|
|
1
1
|
# @unbrowse/sdk
|
|
2
2
|
|
|
3
|
-
TypeScript
|
|
3
|
+
TypeScript client for the Unbrowse 11.1.5 local runtime. It can connect to an
|
|
4
|
+
existing runtime or start the `unbrowse` binary for the lifetime of your process.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
New applications that do not need process control should use the SDK bundled in
|
|
7
|
+
`unbrowse`:
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Current version: **9.13.0**.
|
|
9
|
+
```ts
|
|
10
|
+
import { Unbrowse } from "unbrowse/sdk";
|
|
11
|
+
```
|
|
12
12
|
|
|
13
13
|
## Install
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install @unbrowse/sdk
|
|
16
|
+
npm install @unbrowse/sdk unbrowse
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## Quick start
|
|
19
|
+
## Start locally
|
|
22
20
|
|
|
23
21
|
```ts
|
|
24
22
|
import { Unbrowse } from "@unbrowse/sdk";
|
|
25
23
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
console.log(r.result);
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
That's it — `Unbrowse.local()` probes `127.0.0.1:6969`, connects if a daemon is alive, and spawns the `unbrowse` CLI as a child process if not. The spawned daemon's lifecycle is owned by your process; it shuts down cleanly on exit.
|
|
32
|
-
|
|
33
|
-
## Three factories, three lifecycles
|
|
34
|
-
|
|
35
|
-
```ts
|
|
36
|
-
// 1. Common case — probe then spawn. The right answer 95% of the time.
|
|
37
|
-
const u = await Unbrowse.local();
|
|
38
|
-
|
|
39
|
-
// 2. External daemon already running (Docker, sidecar, dev server).
|
|
40
|
-
const u = await Unbrowse.connect("http://localhost:6969");
|
|
41
|
-
|
|
42
|
-
// 3. Always spawn fresh — owned lifecycle, useful for tests and isolated workers.
|
|
43
|
-
const u = await Unbrowse.spawn({ port: 7969 });
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
All three return the same `Unbrowse` client interface. Pass `{ apiKey }` to any factory to override the auto-generated marketplace key.
|
|
47
|
-
|
|
48
|
-
## Resolve and execute
|
|
49
|
-
|
|
50
|
-
```ts
|
|
51
|
-
const resolved = await u.resolve({
|
|
52
|
-
intent: "get feed posts",
|
|
53
|
-
url: "https://news.ycombinator.com",
|
|
24
|
+
const unbrowse = await Unbrowse.local({
|
|
25
|
+
apiKey: process.env.UNBROWSE_API_KEY,
|
|
54
26
|
});
|
|
55
27
|
|
|
56
|
-
// Re-run later with explicit projection
|
|
57
|
-
const rerun = await u.execute(resolved, { projection: { raw: true } });
|
|
58
|
-
|
|
59
|
-
// Or by skill id, with params
|
|
60
|
-
const quote = await u.execute("skill_123", { params: { symbol: "NVDA" } });
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Payments
|
|
64
|
-
|
|
65
|
-
Unbrowse routes monetize on use via [x402](https://www.x402.org). Every paid execute (priced skills, `search`, `resolve` over a priced shortlist) is gated by a `402 Payment Required` flow. The SDK turns that into a typed error you can catch and retry. v6.16 settles on [Faremeter Flex](https://docs.faremeter.xyz/flex/overview) — your wallet signs an off-chain authorization with a session key, the facilitator settles on-chain in batches, and splits to contributors land atomically.
|
|
66
|
-
|
|
67
|
-
```ts
|
|
68
|
-
import { Unbrowse, PaymentRequiredError, payAndRetryFlex } from "@unbrowse/sdk";
|
|
69
|
-
|
|
70
28
|
try {
|
|
71
|
-
await
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
{ headers: { "X-PAYMENT": header } },
|
|
79
|
-
),
|
|
80
|
-
); // signs the Flex authorization, retries with proof attached
|
|
81
|
-
}
|
|
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();
|
|
82
36
|
}
|
|
83
37
|
```
|
|
84
38
|
|
|
85
|
-
`
|
|
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.
|
|
86
42
|
|
|
87
|
-
|
|
43
|
+
## Health and public stats
|
|
88
44
|
|
|
89
45
|
```ts
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
);
|
|
46
|
+
const live = await unbrowse.liveness();
|
|
47
|
+
const ready = await unbrowse.readiness();
|
|
48
|
+
const summary = await unbrowse.statsSummary();
|
|
49
|
+
const flywheel = await unbrowse.flywheel();
|
|
95
50
|
```
|
|
96
51
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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.
|
|
100
55
|
|
|
101
|
-
|
|
56
|
+
## Credits
|
|
102
57
|
|
|
103
|
-
|
|
104
|
-
### Choosing a payment provider
|
|
105
|
-
|
|
106
|
-
The SDK persists your wallet provider so subsequent settles route through it without per-call configuration. Four providers ship as of v6.16:
|
|
58
|
+
Metered work is charged to account credits through the normal account API.
|
|
107
59
|
|
|
108
60
|
```ts
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// One-time per account; persists via POST /v1/account/payment-provider
|
|
112
|
-
await u.paymentProvider("pay_sh"); // TouchID + USDC via x402 MPP
|
|
113
|
-
await u.paymentProvider("lobster_cash"); // Crossmint credit card -> Solana
|
|
114
|
-
await u.paymentProvider("privy"); // Embedded wallet bound to Privy session
|
|
115
|
-
await u.paymentProvider("external"); // Bring your own Solana signer
|
|
61
|
+
const credits = await unbrowse.credits();
|
|
62
|
+
console.log(credits.balance_uc / 1_000_000);
|
|
116
63
|
```
|
|
117
64
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
## Publishing skills, setting markup, reading earnings
|
|
121
|
-
|
|
122
|
-
Captured routes monetize when re-used by other agents. The SDK exposes the full publish-then-earn surface:
|
|
65
|
+
An HTTP 402 becomes `InsufficientCreditsError`. Add credits, then retry the same
|
|
66
|
+
request. Executes retain their normal idempotency behavior.
|
|
123
67
|
|
|
124
|
-
|
|
125
|
-
// Publish a captured skill so other agents can resolve + execute it.
|
|
126
|
-
// markup_bps is clamped server-side to [500, 8000] (5 to 80 percent platform cut).
|
|
127
|
-
const pub = await u.publish({
|
|
128
|
-
skill: capturedSkill,
|
|
129
|
-
markup_bps: 1500, // optional; defaults to PLATFORM_BPS = 5000 (50%)
|
|
130
|
-
});
|
|
68
|
+
## Authentication
|
|
131
69
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
await u.annotate({ endpoint_id: "ep_123", description: "Search trending repos by language" });
|
|
135
|
-
|
|
136
|
-
// Earnings transparency.
|
|
137
|
-
const earnings = await u.dashboard();
|
|
138
|
-
const tx = await u.creatorTransactions(agentId);
|
|
139
|
-
const attribution = await u.indexerAttribution(indexerId);
|
|
140
|
-
```
|
|
70
|
+
Pass `apiKey` to the constructor/factory or set `UNBROWSE_API_KEY`. Create a key
|
|
71
|
+
with:
|
|
141
72
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
## Verify the deployed manifest
|
|
145
|
-
|
|
146
|
-
The backend serves `GET /v1/version` with a HMAC-signed manifest (`signed_manifest_hash = hex(hmac-sha256(version|build_sha|deployed_at, RELEASE_MANIFEST_SIGNING_SECRET))`). Use `scripts/verify-release-manifest.sh <base-url>` from the unbrowse repo, or recompute via node:crypto / openssl, to confirm the SDK is hitting the artifact CI built and not a tampered intermediary.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
## Auth
|
|
150
|
-
|
|
151
|
-
```ts
|
|
152
|
-
// Interactive login — opens a real browser window for first-time auth.
|
|
153
|
-
await u.login({ url: "https://calendar.google.com" });
|
|
154
|
-
|
|
155
|
-
// Or import cookies from your local browser storage.
|
|
156
|
-
await u.importAuth({ url: "https://x.com/home", browser: "auto" });
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Search
|
|
160
|
-
|
|
161
|
-
Three search shapes ship as of v6.16, each tuned for a different agent need:
|
|
162
|
-
|
|
163
|
-
```ts
|
|
164
|
-
// 1. Skill-grouped global search — returns SearchHit[] (one row per skill).
|
|
165
|
-
// Use when you want the marketplace skill that covers the intent.
|
|
166
|
-
const global = await u.search({ intent: "get stock prices", k: 5 });
|
|
167
|
-
|
|
168
|
-
// 2. Domain-scoped skill search — same shape, scoped to one host.
|
|
169
|
-
const domain = await u.searchDomain({
|
|
170
|
-
intent: "find trending repositories",
|
|
171
|
-
domain: "github.com",
|
|
172
|
-
k: 3,
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
// 3. Flat endpoint search — returns EndpointSearchHit[] (one row per endpoint
|
|
176
|
-
// across the WHOLE marketplace). Use when you want to pick endpoints
|
|
177
|
-
// across many skills without an explicit URL. Each hit carries
|
|
178
|
-
// endpoint_id + skill_id so you can chain into execute() directly.
|
|
179
|
-
const { endpoints } = await u.searchEndpoints({
|
|
180
|
-
intent: "search trending repositories",
|
|
181
|
-
k: 10,
|
|
182
|
-
// domain: "github.com", // optional: scope to one host
|
|
183
|
-
});
|
|
184
|
-
for (const ep of endpoints) {
|
|
185
|
-
console.log(ep.score, ep.skill_id, ep.endpoint_id, ep.description);
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
`searchEndpoints()` hits `/v1/search/endpoints` and unwraps the canonical
|
|
190
|
-
graph-index `metadata.content` server-side so the SDK consumer never has to
|
|
191
|
-
`JSON.parse` to reach `skill_id` / `endpoint_id`. Anonymous callers get free
|
|
192
|
-
rate-limited public discovery; authenticated agents pay the standard search
|
|
193
|
-
fee per the x402 economics in [`HOW_UNBROWSE_PAYS.md`](../../docs/HOW_UNBROWSE_PAYS.md).
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
## Error handling
|
|
197
|
-
|
|
198
|
-
```ts
|
|
199
|
-
import { Unbrowse, UnbrowseApiError } from "@unbrowse/sdk";
|
|
200
|
-
|
|
201
|
-
try {
|
|
202
|
-
await u.resolve({ intent: "get inbox", url: "https://mail.google.com" });
|
|
203
|
-
} catch (err) {
|
|
204
|
-
if (err instanceof UnbrowseApiError) {
|
|
205
|
-
console.error(err.status, err.path, err.data);
|
|
206
|
-
}
|
|
207
|
-
throw err;
|
|
208
|
-
}
|
|
73
|
+
```bash
|
|
74
|
+
unbrowse register --email you@example.com
|
|
209
75
|
```
|
|
210
|
-
|
|
211
|
-
`UnbrowseApiError` is the generic wrapper. `PaymentRequiredError` and `SponsorExhaustedError` are payment-specific subclasses; both expose `accepts[]` so you can introspect what the gate wants.
|
|
212
|
-
|
|
213
|
-
## Notes
|
|
214
|
-
|
|
215
|
-
- Default `baseUrl` is `http://localhost:6969`. `Unbrowse.local()` picks this up automatically.
|
|
216
|
-
- Default `apiKey` reads from `UNBROWSE_API_KEY` when present.
|
|
217
|
-
- `resolve({ url })` maps the URL into both `params.url` and `context.url`, matching the CLI path.
|
|
218
|
-
- Response types are strongest on inputs and core trace/skill metadata, lighter on payload bodies, because endpoint payload shape varies by site.
|
|
219
|
-
|
|
220
|
-
## More
|
|
221
|
-
|
|
222
|
-
- Complete docs: [`docs/`](./docs/)
|
|
223
|
-
- Use case recipes: [`docs/examples/`](./docs/examples/)
|
|
224
|
-
- API reference: [`docs/api-reference/`](./docs/api-reference/)
|
|
225
|
-
- Payment surface: [`docs/payments/`](./docs/payments/)
|
|
226
|
-
|
|
227
|
-
_Audited for public docs + SDK staleness: 2026-05-25_
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
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";
|
|
2
|
+
import { type SpawnRuntimeOptions } from "./runtime.js";
|
|
3
|
+
export declare class Unbrowse {
|
|
4
|
+
readonly baseUrl: string;
|
|
5
|
+
readonly apiKey?: string;
|
|
6
|
+
readonly clientId?: string;
|
|
7
|
+
private readonly defaultHeaders?;
|
|
8
|
+
private readonly fetchImpl;
|
|
9
|
+
private readonly timeoutMs?;
|
|
10
|
+
private _runtimeHandle;
|
|
11
|
+
constructor(options?: UnbrowseClientOptions);
|
|
12
|
+
/**
|
|
13
|
+
* Build a `params` object from an `AvailableEndpoint.input_params` spec, using
|
|
14
|
+
* the `example_value` of each declared key. Skips keys without an example.
|
|
15
|
+
*/
|
|
16
|
+
static paramsFromInputSpec(spec: AvailableEndpoint["input_params"] | undefined): Record<string, unknown>;
|
|
17
|
+
/**
|
|
18
|
+
* Point at an already-running Unbrowse runtime. No probe, no spawn.
|
|
19
|
+
* `.close()` is a no-op for the runtime (the caller owns it).
|
|
20
|
+
*/
|
|
21
|
+
static connect(baseUrl: string, opts?: Omit<UnbrowseClientOptions, "baseUrl">): Promise<Unbrowse>;
|
|
22
|
+
/**
|
|
23
|
+
* Spawn a co-located Unbrowse runtime and return a client pointed at it.
|
|
24
|
+
* The client takes ownership of the child process: `.close()` will tear
|
|
25
|
+
* it down.
|
|
26
|
+
*/
|
|
27
|
+
static spawn(opts?: SpawnRuntimeOptions & Omit<UnbrowseClientOptions, "baseUrl">): Promise<Unbrowse>;
|
|
28
|
+
/**
|
|
29
|
+
* Probe 127.0.0.1 on the requested port (default 6969). Adopts a live
|
|
30
|
+
* runtime via `connect`; spawns a new one via `spawn` if dead. The
|
|
31
|
+
* resulting client only owns the runtime if it had to spawn.
|
|
32
|
+
*/
|
|
33
|
+
static local(opts?: SpawnRuntimeOptions & Omit<UnbrowseClientOptions, "baseUrl">): Promise<Unbrowse>;
|
|
34
|
+
/**
|
|
35
|
+
* Release any resources owned by this client. If the client spawned its
|
|
36
|
+
* own runtime, this kills the child process. Otherwise no-op.
|
|
37
|
+
*/
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
request<T>(method: string, path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
40
|
+
resolve(input: ResolveInput, options?: RequestOptions): Promise<ResolveResponse>;
|
|
41
|
+
execute(skill: string | ExecuteInput | ResolveResponse, input?: Omit<ExecuteInput, "skillId">, options?: RequestOptions): Promise<ExecuteResponse>;
|
|
42
|
+
getSkill(skillId: string, options?: RequestOptions): Promise<SkillManifest>;
|
|
43
|
+
login(input: LoginInput, options?: RequestOptions): Promise<LoginResponse>;
|
|
44
|
+
importAuth(input: StealAuthInput, options?: RequestOptions): Promise<StealAuthResponse>;
|
|
45
|
+
stealAuth(input: StealAuthInput, options?: RequestOptions): Promise<StealAuthResponse>;
|
|
46
|
+
search(input: SearchInput, options?: RequestOptions): Promise<SearchResponse>;
|
|
47
|
+
searchDomain(input: SearchDomainInput, options?: RequestOptions): Promise<SearchResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Semantic search across ALL indexed endpoints (flat shape).
|
|
50
|
+
*
|
|
51
|
+
* Returns one row per endpoint, ranked by semantic match against the
|
|
52
|
+
* intent string. Use this when you want to pick endpoints across many
|
|
53
|
+
* skills (vs `search()` which groups by skill).
|
|
54
|
+
*
|
|
55
|
+
* Optional `domain` scopes the search to one host's endpoints; omit for
|
|
56
|
+
* cross-marketplace search. Authenticated agents are charged the
|
|
57
|
+
* standard credit cost; anonymous
|
|
58
|
+
* callers get free rate-limited public discovery.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* const { endpoints } = await u.searchEndpoints({ intent: "trending repositories", k: 5 });
|
|
63
|
+
* for (const ep of endpoints) {
|
|
64
|
+
* console.log(ep.score, ep.skill_id, ep.endpoint_id, ep.description);
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
searchEndpoints(input: SearchEndpointsInput, options?: RequestOptions): Promise<SearchEndpointsResponse>;
|
|
69
|
+
feedback(input: FeedbackInput, options?: RequestOptions): Promise<FeedbackResponse>;
|
|
70
|
+
stats(options?: RequestOptions): Promise<StatsResponse>;
|
|
71
|
+
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
|
+
/**
|
|
84
|
+
* Earnings/spending dashboard for the authenticated agent.
|
|
85
|
+
* Requires `apiKey` set on the client. Backend: `GET /v1/dashboard/me`.
|
|
86
|
+
*/
|
|
87
|
+
dashboard(options?: RequestOptions): Promise<Dashboard>;
|
|
88
|
+
/** Current account credit balance and usage ledger. */
|
|
89
|
+
credits(options?: RequestOptions): Promise<CreditsBalance>;
|
|
90
|
+
/**
|
|
91
|
+
* Per-transaction earnings ledger for a creator agent.
|
|
92
|
+
* Backend: `GET /v1/transactions/creator/:agentId`.
|
|
93
|
+
*/
|
|
94
|
+
creatorTransactions(agentId: string, options?: RequestOptions): Promise<CreatorTransactionsResponse>;
|
|
95
|
+
/**
|
|
96
|
+
* Indexer earnings via delta-based attribution.
|
|
97
|
+
* Backend: `GET /v1/attribution/indexer/:indexerId`.
|
|
98
|
+
*/
|
|
99
|
+
indexerAttribution(indexerId: string, options?: RequestOptions): Promise<AttributionLedger>;
|
|
100
|
+
/**
|
|
101
|
+
* Publish a captured skill to the marketplace.
|
|
102
|
+
* Backend: `POST /v1/skills`.
|
|
103
|
+
*
|
|
104
|
+
* SDK gap-fill (Wave 2 of rebuild-the-unbrowse-sdk-as-a-thin-http-first-ty
|
|
105
|
+
* + the parity gate from tests/cli-mcp-sdk-parity.test.ts). Mirrors the
|
|
106
|
+
* CLI `unbrowse publish` and the MCP `unbrowse_publish` tool.
|
|
107
|
+
*/
|
|
108
|
+
publish(skill: PublishSkillInput, options?: RequestOptions): Promise<PublishResponse>;
|
|
109
|
+
/**
|
|
110
|
+
* Annotate an endpoint with a tip, constraint, or gotcha.
|
|
111
|
+
* Backend: `POST /v1/skills/:id/endpoints/:eid/annotate`.
|
|
112
|
+
*
|
|
113
|
+
* SDK gap-fill. Mirrors CLI `unbrowse annotate` + MCP `unbrowse_annotate`.
|
|
114
|
+
*/
|
|
115
|
+
annotate(input: AnnotateInput, options?: RequestOptions): Promise<AnnotateResponse>;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|