@1claw/sdk 0.33.0 → 0.34.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 +59 -0
- package/dist/auth/dpop.d.ts +25 -0
- package/dist/auth/dpop.d.ts.map +1 -0
- package/dist/auth/dpop.js +95 -0
- package/dist/auth/dpop.js.map +1 -0
- package/dist/core/client.d.ts +3 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +2 -0
- package/dist/core/client.js.map +1 -1
- package/dist/core/http.d.ts +4 -0
- package/dist/core/http.d.ts.map +1 -1
- package/dist/core/http.js +35 -2
- package/dist/core/http.js.map +1 -1
- package/dist/generated/api-types.d.ts +454 -0
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/org.d.ts +17 -0
- package/dist/resources/org.d.ts.map +1 -1
- package/dist/resources/org.js +14 -0
- package/dist/resources/org.js.map +1 -1
- package/dist/resources/risk.d.ts +80 -0
- package/dist/resources/risk.d.ts.map +1 -0
- package/dist/resources/risk.js +35 -0
- package/dist/resources/risk.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -105,6 +105,7 @@ await client.auth.verifyEmailChange({ code: "123456" });
|
|
|
105
105
|
| `client.platform` | `createApp`, `listApps`, `getApp`, `updateApp`, `deleteApp`, `rotateKey`, `createTemplate`, `listTemplates`, `upsertUser`, `listUsers`, `bootstrapUser`, `reissueClaim`, `claimPreview`, `claimRedeem`, `listConnectedApps`, `disconnectApp`, `createSpendPolicy`, `listSpendPolicies`, `setUserSpendPolicy`, `deleteSpendPolicy` |
|
|
106
106
|
| `client.devices` | `register`, `list`, `delete`, `challenge`, `attest`, `setPushToken` |
|
|
107
107
|
| `client.passkeys` | `list`, `registerBegin`, `registerComplete`, `assertBegin`, `assertComplete`, `delete` |
|
|
108
|
+
| `client.risk` | `listEvents`, `getVerdict`, `listVerdicts`, `createHoneytoken`, `listHoneytokens`, `deleteHoneytoken` |
|
|
108
109
|
| `client.x402` | `getPaymentRequirement`, `pay`, `verifyReceipt`, `withPayment` |
|
|
109
110
|
|
|
110
111
|
**Platform bootstrap response:** `bootstrapUser()` returns a `summary` object containing `agent_api_key` (one-time, not retrievable later) and `signing_keys[]` (with chain, address, and public_key for each provisioned key).
|
|
@@ -343,6 +344,64 @@ const client = createClient({
|
|
|
343
344
|
// Tokens refresh transparently — just make API calls
|
|
344
345
|
```
|
|
345
346
|
|
|
347
|
+
## DPoP (Proof-of-Possession)
|
|
348
|
+
|
|
349
|
+
Enable [DPoP (RFC 9449)](https://datatracker.ietf.org/doc/html/rfc9449) to bind tokens to the client's ephemeral keypair. When enabled, the SDK generates a P-256 ECDSA keypair at startup and attaches a `DPoP` proof JWT to every request — stolen tokens are unusable without the matching private key.
|
|
350
|
+
|
|
351
|
+
```typescript
|
|
352
|
+
const client = createClient({
|
|
353
|
+
baseUrl: "https://api.1claw.xyz",
|
|
354
|
+
apiKey: "ocv_...",
|
|
355
|
+
agentId: "agent-uuid",
|
|
356
|
+
dpop: true, // Generates ephemeral P-256 keypair, attaches DPoP proofs
|
|
357
|
+
});
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
The `DPoPManager` class is also exported for advanced use cases:
|
|
361
|
+
|
|
362
|
+
```typescript
|
|
363
|
+
import { DPoPManager } from "@1claw/sdk";
|
|
364
|
+
|
|
365
|
+
const dpop = new DPoPManager();
|
|
366
|
+
await dpop.init();
|
|
367
|
+
|
|
368
|
+
const proof = await dpop.generateProof("POST", "https://api.1claw.xyz/v1/auth/agent-token");
|
|
369
|
+
const thumbprint = dpop.getThumbprint(); // JWK SHA-256 thumbprint (base64url)
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
## Risk Engine
|
|
373
|
+
|
|
374
|
+
Query risk events, retrieve threat verdicts, and manage honeytokens via `client.risk`:
|
|
375
|
+
|
|
376
|
+
```typescript
|
|
377
|
+
// List recent risk events (filtered by severity)
|
|
378
|
+
const events = await client.risk.listEvents({
|
|
379
|
+
severity: "high",
|
|
380
|
+
limit: 50,
|
|
381
|
+
});
|
|
382
|
+
console.log(events.data?.events);
|
|
383
|
+
|
|
384
|
+
// Get the current risk verdict for a specific agent
|
|
385
|
+
const verdict = await client.risk.getVerdict("agent", agentId);
|
|
386
|
+
console.log(verdict.data?.verdict?.severity); // "low" | "medium" | "high" | "critical"
|
|
387
|
+
console.log(verdict.data?.verdict?.reasons); // detector breakdown
|
|
388
|
+
|
|
389
|
+
// List all verdicts for the org
|
|
390
|
+
const verdicts = await client.risk.listVerdicts();
|
|
391
|
+
|
|
392
|
+
// Create a honeytoken (canary secret that triggers alerts on access)
|
|
393
|
+
const ht = await client.risk.createHoneytoken({
|
|
394
|
+
vault_id: vaultId,
|
|
395
|
+
secret_path: "honeypot/admin-key",
|
|
396
|
+
notes: "Canary for unauthorized agent access",
|
|
397
|
+
});
|
|
398
|
+
console.log(ht.data?.honeytoken.id);
|
|
399
|
+
|
|
400
|
+
// List and delete honeytokens
|
|
401
|
+
const honeytokens = await client.risk.listHoneytokens();
|
|
402
|
+
await client.risk.deleteHoneytoken(honeytokenId);
|
|
403
|
+
```
|
|
404
|
+
|
|
346
405
|
## x402 Payment Protocol
|
|
347
406
|
|
|
348
407
|
When free-tier limits are exceeded, the API returns `402 Payment Required`. The SDK can automatically handle payments if you provide a signer:
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DPoP (Demonstration of Proof-of-Possession) manager.
|
|
3
|
+
* Generates and manages an ephemeral keypair, produces DPoP proof JWTs per RFC 9449.
|
|
4
|
+
*/
|
|
5
|
+
export declare class DPoPManager {
|
|
6
|
+
private keyPair;
|
|
7
|
+
private publicJwk;
|
|
8
|
+
private thumbprint;
|
|
9
|
+
/**
|
|
10
|
+
* Initialize the DPoP manager by generating an ephemeral P-256 keypair.
|
|
11
|
+
* Call this once during client construction.
|
|
12
|
+
*/
|
|
13
|
+
init(): Promise<void>;
|
|
14
|
+
/** Get the public JWK for sending to the server during token exchange. */
|
|
15
|
+
getPublicJwk(): JsonWebKey;
|
|
16
|
+
/** Get the JWK SHA-256 thumbprint (base64url). */
|
|
17
|
+
getThumbprint(): string;
|
|
18
|
+
/** Generate a DPoP proof JWT for the given HTTP method and URL. */
|
|
19
|
+
generateProof(method: string, url: string): Promise<string>;
|
|
20
|
+
private computeThumbprint;
|
|
21
|
+
private stripQuery;
|
|
22
|
+
private base64url;
|
|
23
|
+
private base64urlFromBuffer;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=dpop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dpop.d.ts","sourceRoot":"","sources":["../../src/auth/dpop.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,0EAA0E;IAC1E,YAAY,IAAI,UAAU;IAK1B,kDAAkD;IAClD,aAAa,IAAI,MAAM;IAKvB,mEAAmE;IAC7D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAqCnD,iBAAiB;IAe/B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,mBAAmB;CAS9B"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DPoP (Demonstration of Proof-of-Possession) manager.
|
|
3
|
+
* Generates and manages an ephemeral keypair, produces DPoP proof JWTs per RFC 9449.
|
|
4
|
+
*/
|
|
5
|
+
export class DPoPManager {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.keyPair = null;
|
|
8
|
+
this.publicJwk = null;
|
|
9
|
+
this.thumbprint = null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Initialize the DPoP manager by generating an ephemeral P-256 keypair.
|
|
13
|
+
* Call this once during client construction.
|
|
14
|
+
*/
|
|
15
|
+
async init() {
|
|
16
|
+
this.keyPair = await crypto.subtle.generateKey({ name: "ECDSA", namedCurve: "P-256" }, true, ["sign", "verify"]);
|
|
17
|
+
this.publicJwk = await crypto.subtle.exportKey("jwk", this.keyPair.publicKey);
|
|
18
|
+
this.thumbprint = await this.computeThumbprint(this.publicJwk);
|
|
19
|
+
}
|
|
20
|
+
/** Get the public JWK for sending to the server during token exchange. */
|
|
21
|
+
getPublicJwk() {
|
|
22
|
+
if (!this.publicJwk)
|
|
23
|
+
throw new Error("DPoPManager not initialized");
|
|
24
|
+
return this.publicJwk;
|
|
25
|
+
}
|
|
26
|
+
/** Get the JWK SHA-256 thumbprint (base64url). */
|
|
27
|
+
getThumbprint() {
|
|
28
|
+
if (!this.thumbprint)
|
|
29
|
+
throw new Error("DPoPManager not initialized");
|
|
30
|
+
return this.thumbprint;
|
|
31
|
+
}
|
|
32
|
+
/** Generate a DPoP proof JWT for the given HTTP method and URL. */
|
|
33
|
+
async generateProof(method, url) {
|
|
34
|
+
if (!this.keyPair || !this.publicJwk) {
|
|
35
|
+
throw new Error("DPoPManager not initialized");
|
|
36
|
+
}
|
|
37
|
+
const header = {
|
|
38
|
+
typ: "dpop+jwt",
|
|
39
|
+
alg: "ES256",
|
|
40
|
+
jwk: {
|
|
41
|
+
kty: this.publicJwk.kty,
|
|
42
|
+
crv: this.publicJwk.crv,
|
|
43
|
+
x: this.publicJwk.x,
|
|
44
|
+
y: this.publicJwk.y,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const payload = {
|
|
48
|
+
jti: crypto.randomUUID(),
|
|
49
|
+
htm: method.toUpperCase(),
|
|
50
|
+
htu: this.stripQuery(url),
|
|
51
|
+
iat: Math.floor(Date.now() / 1000),
|
|
52
|
+
};
|
|
53
|
+
const headerB64 = this.base64url(JSON.stringify(header));
|
|
54
|
+
const payloadB64 = this.base64url(JSON.stringify(payload));
|
|
55
|
+
const signingInput = `${headerB64}.${payloadB64}`;
|
|
56
|
+
const signature = await crypto.subtle.sign({ name: "ECDSA", hash: "SHA-256" }, this.keyPair.privateKey, new TextEncoder().encode(signingInput));
|
|
57
|
+
const sigB64 = this.base64urlFromBuffer(signature);
|
|
58
|
+
return `${signingInput}.${sigB64}`;
|
|
59
|
+
}
|
|
60
|
+
async computeThumbprint(jwk) {
|
|
61
|
+
// RFC 7638: canonical JSON with sorted keys for EC
|
|
62
|
+
const canonical = JSON.stringify({
|
|
63
|
+
crv: jwk.crv,
|
|
64
|
+
kty: jwk.kty,
|
|
65
|
+
x: jwk.x,
|
|
66
|
+
y: jwk.y,
|
|
67
|
+
});
|
|
68
|
+
const hash = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(canonical));
|
|
69
|
+
return this.base64urlFromBuffer(hash);
|
|
70
|
+
}
|
|
71
|
+
stripQuery(url) {
|
|
72
|
+
try {
|
|
73
|
+
const u = new URL(url);
|
|
74
|
+
return `${u.protocol}//${u.host}${u.pathname}`;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return url.split("?")[0];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
base64url(str) {
|
|
81
|
+
const bytes = new TextEncoder().encode(str);
|
|
82
|
+
return this.base64urlFromBuffer(bytes.buffer);
|
|
83
|
+
}
|
|
84
|
+
base64urlFromBuffer(buf) {
|
|
85
|
+
const bytes = new Uint8Array(buf);
|
|
86
|
+
let binary = "";
|
|
87
|
+
for (const b of bytes)
|
|
88
|
+
binary += String.fromCharCode(b);
|
|
89
|
+
return btoa(binary)
|
|
90
|
+
.replace(/\+/g, "-")
|
|
91
|
+
.replace(/\//g, "_")
|
|
92
|
+
.replace(/=+$/, "");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=dpop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dpop.js","sourceRoot":"","sources":["../../src/auth/dpop.ts"],"names":[],"mappings":"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"}
|
package/dist/core/client.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ import { PasskeysResource } from "../resources/passkeys";
|
|
|
21
21
|
import { DepositDestinationsResource } from "../resources/deposit-destinations";
|
|
22
22
|
import { InternalAccountsResource } from "../resources/internal-accounts";
|
|
23
23
|
import { FiatResource } from "../resources/fiat";
|
|
24
|
+
import { RiskResource } from "../resources/risk";
|
|
24
25
|
/**
|
|
25
26
|
* The main 1Claw SDK client. All API resources are exposed as
|
|
26
27
|
* namespaced properties for discoverability and tree-shaking.
|
|
@@ -88,6 +89,8 @@ export declare class OneclawClient {
|
|
|
88
89
|
readonly internalAccounts: InternalAccountsResource;
|
|
89
90
|
/** Fiat on/off ramps — buy and sell crypto via partner integrations. */
|
|
90
91
|
readonly fiat: FiatResource;
|
|
92
|
+
/** Risk engine — events, verdicts, and honeytokens. */
|
|
93
|
+
readonly risk: RiskResource;
|
|
91
94
|
constructor(config: OneclawClientConfig);
|
|
92
95
|
private autoAuthenticateUserKey;
|
|
93
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAClD,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;IAC1D,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IACpD,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBAEhB,MAAM,EAAE,mBAAmB;IAoCvC,OAAO,CAAC,uBAAuB;CAclC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAEvE"}
|
package/dist/core/client.js
CHANGED
|
@@ -21,6 +21,7 @@ import { PasskeysResource } from "../resources/passkeys";
|
|
|
21
21
|
import { DepositDestinationsResource } from "../resources/deposit-destinations";
|
|
22
22
|
import { InternalAccountsResource } from "../resources/internal-accounts";
|
|
23
23
|
import { FiatResource } from "../resources/fiat";
|
|
24
|
+
import { RiskResource } from "../resources/risk";
|
|
24
25
|
/**
|
|
25
26
|
* The main 1Claw SDK client. All API resources are exposed as
|
|
26
27
|
* namespaced properties for discoverability and tree-shaking.
|
|
@@ -74,6 +75,7 @@ export class OneclawClient {
|
|
|
74
75
|
this.depositDestinations = new DepositDestinationsResource(this.http);
|
|
75
76
|
this.internalAccounts = new InternalAccountsResource(this.http);
|
|
76
77
|
this.fiat = new FiatResource(this.http);
|
|
78
|
+
this.risk = new RiskResource(this.http);
|
|
77
79
|
}
|
|
78
80
|
autoAuthenticateUserKey(config) {
|
|
79
81
|
const authPromise = this.http
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/http.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export declare class HttpClient {
|
|
|
12
12
|
private agentCredentials?;
|
|
13
13
|
private refreshPromise?;
|
|
14
14
|
private _resolvedAgentId?;
|
|
15
|
+
private dpopEnabled;
|
|
16
|
+
private dpopManager?;
|
|
17
|
+
private dpopReady;
|
|
15
18
|
private static readonly REFRESH_BUFFER_MS;
|
|
16
19
|
constructor(config: OneclawClientConfig);
|
|
17
20
|
/** Agent ID resolved from the token exchange (for key-only auth). */
|
|
@@ -21,6 +24,7 @@ export declare class HttpClient {
|
|
|
21
24
|
getToken(): string | undefined;
|
|
22
25
|
getBaseUrl(): string;
|
|
23
26
|
private static decodeExpiry;
|
|
27
|
+
private ensureDPoP;
|
|
24
28
|
private ensureToken;
|
|
25
29
|
/**
|
|
26
30
|
* Perform a typed request against the API and return an envelope.
|
package/dist/core/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,eAAe,EAGlB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,eAAe,EAGlB,MAAM,UAAU,CAAC;AAIlB;;;GAGG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAC,CAAuC;IAChE,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAU;gBAEvC,MAAM,EAAE,mBAAmB;IAqBvC,qEAAqE;IACrE,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,UAAU,IAAI,MAAM;IAIpB,OAAO,CAAC,MAAM,CAAC,YAAY;YAab,UAAU;YAQV,WAAW;IAuEzB;;;;OAIG;IACG,OAAO,CAAC,CAAC,EACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;QACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,8DAA8D;QAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;KACjB,GACP,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAqD9B;;;OAGG;IACG,cAAc,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;QACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,GACP,OAAO,CAAC,CAAC,CAAC;IAyCb,OAAO,CAAC,QAAQ;IAahB;;;OAGG;YACW,aAAa;CAoD9B"}
|
package/dist/core/http.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { errorFromResponse, PaymentRequiredError } from "./errors";
|
|
2
|
+
import { DPoPManager } from "../auth/dpop";
|
|
2
3
|
/**
|
|
3
4
|
* Internal HTTP transport used by every resource module.
|
|
4
5
|
* Handles authentication headers, 402 auto-pay, and error mapping.
|
|
@@ -6,10 +7,15 @@ import { errorFromResponse, PaymentRequiredError } from "./errors";
|
|
|
6
7
|
export class HttpClient {
|
|
7
8
|
constructor(config) {
|
|
8
9
|
this.tokenExpiresAt = 0;
|
|
10
|
+
this.dpopReady = null;
|
|
9
11
|
this.baseUrl = config.baseUrl.replace(/\/$/, "");
|
|
10
12
|
this.token = config.token;
|
|
11
13
|
this.signer = config.x402Signer;
|
|
12
14
|
this.maxAutoPayUsd = config.maxAutoPayUsd ?? 0;
|
|
15
|
+
this.dpopEnabled = config.dpop ?? false;
|
|
16
|
+
if (this.dpopEnabled) {
|
|
17
|
+
this.dpopManager = new DPoPManager();
|
|
18
|
+
}
|
|
13
19
|
const isAgentKey = config.apiKey?.startsWith("ocv_") || !!config.agentId;
|
|
14
20
|
if (config.apiKey && isAgentKey) {
|
|
15
21
|
this.agentCredentials = {
|
|
@@ -45,6 +51,14 @@ export class HttpClient {
|
|
|
45
51
|
return 0;
|
|
46
52
|
}
|
|
47
53
|
}
|
|
54
|
+
async ensureDPoP() {
|
|
55
|
+
if (!this.dpopManager)
|
|
56
|
+
return;
|
|
57
|
+
if (!this.dpopReady) {
|
|
58
|
+
this.dpopReady = this.dpopManager.init();
|
|
59
|
+
}
|
|
60
|
+
await this.dpopReady;
|
|
61
|
+
}
|
|
48
62
|
async ensureToken() {
|
|
49
63
|
if (!this.agentCredentials)
|
|
50
64
|
return;
|
|
@@ -56,15 +70,26 @@ export class HttpClient {
|
|
|
56
70
|
return;
|
|
57
71
|
}
|
|
58
72
|
this.refreshPromise = (async () => {
|
|
73
|
+
await this.ensureDPoP();
|
|
59
74
|
const body = {
|
|
60
75
|
api_key: this.agentCredentials.apiKey,
|
|
61
76
|
};
|
|
62
77
|
if (this.agentCredentials.agentId) {
|
|
63
78
|
body.agent_id = this.agentCredentials.agentId;
|
|
64
79
|
}
|
|
65
|
-
|
|
80
|
+
if (this.dpopManager) {
|
|
81
|
+
body.dpop_jwk = this.dpopManager.getPublicJwk();
|
|
82
|
+
}
|
|
83
|
+
const tokenUrl = `${this.baseUrl}/v1/auth/agent-token`;
|
|
84
|
+
const tokenHeaders = {
|
|
85
|
+
"Content-Type": "application/json",
|
|
86
|
+
};
|
|
87
|
+
if (this.dpopManager) {
|
|
88
|
+
tokenHeaders["DPoP"] = await this.dpopManager.generateProof("POST", tokenUrl);
|
|
89
|
+
}
|
|
90
|
+
const res = await fetch(tokenUrl, {
|
|
66
91
|
method: "POST",
|
|
67
|
-
headers:
|
|
92
|
+
headers: tokenHeaders,
|
|
68
93
|
body: JSON.stringify(body),
|
|
69
94
|
});
|
|
70
95
|
if (!res.ok) {
|
|
@@ -101,6 +126,10 @@ export class HttpClient {
|
|
|
101
126
|
if (!options.skipAuth && this.token) {
|
|
102
127
|
headers["Authorization"] = `Bearer ${this.token}`;
|
|
103
128
|
}
|
|
129
|
+
if (this.dpopManager) {
|
|
130
|
+
await this.ensureDPoP();
|
|
131
|
+
headers["DPoP"] = await this.dpopManager.generateProof(method, url);
|
|
132
|
+
}
|
|
104
133
|
const init = { method, headers };
|
|
105
134
|
if (options.body !== undefined) {
|
|
106
135
|
init.body = JSON.stringify(options.body);
|
|
@@ -145,6 +174,10 @@ export class HttpClient {
|
|
|
145
174
|
if (this.token) {
|
|
146
175
|
headers["Authorization"] = `Bearer ${this.token}`;
|
|
147
176
|
}
|
|
177
|
+
if (this.dpopManager) {
|
|
178
|
+
await this.ensureDPoP();
|
|
179
|
+
headers["DPoP"] = await this.dpopManager.generateProof(method, url);
|
|
180
|
+
}
|
|
148
181
|
const init = { method, headers };
|
|
149
182
|
if (options.body !== undefined) {
|
|
150
183
|
init.body = JSON.stringify(options.body);
|
package/dist/core/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
|