@claw-network/sdk 0.5.3 → 0.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/dist/index.d.ts CHANGED
@@ -23,6 +23,8 @@ export { MarketsApi, InfoMarketApi, TaskMarketApi, CapabilityMarketApi, MarketDi
23
23
  export { ContractsApi } from './contracts.js';
24
24
  export { DaoApi } from './dao.js';
25
25
  export { MessagingApi, RECEIPT_TOPIC } from './messaging.js';
26
+ export { RelayApi } from './relay.js';
27
+ export type { RelayStats, RelayPeriodStats, RelayHealthInfo, RelayAccessInfo, RelayAccessUpdateParams, } from './relay.js';
26
28
  export type { SendMessageParams, SendMessageResult, SendBatchParams, SendBatchResult, InboxMessage, InboxQueryParams, InboxResponse, RelayAttachmentParams, RelayAttachmentResult, AttachmentInfo, AttachmentListResponse, } from './messaging.js';
27
29
  export * from './types.js';
28
30
  import { HttpClient, type HttpClientConfig } from './http.js';
@@ -34,6 +36,7 @@ import { MarketsApi } from './markets.js';
34
36
  import { ContractsApi } from './contracts.js';
35
37
  import { DaoApi } from './dao.js';
36
38
  import { MessagingApi } from './messaging.js';
39
+ import { RelayApi } from './relay.js';
37
40
  /** Configuration for the top-level client. */
38
41
  export type ClientConfig = HttpClientConfig;
39
42
  /**
@@ -53,6 +56,7 @@ export declare class ClawNetClient {
53
56
  readonly contracts: ContractsApi;
54
57
  readonly dao: DaoApi;
55
58
  readonly messaging: MessagingApi;
59
+ readonly relay: RelayApi;
56
60
  constructor(config?: Partial<ClientConfig>);
57
61
  }
58
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAI5C;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAc3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAI5C;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAEb,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAe3C"}
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ export { MarketsApi, InfoMarketApi, TaskMarketApi, CapabilityMarketApi, MarketDi
24
24
  export { ContractsApi } from './contracts.js';
25
25
  export { DaoApi } from './dao.js';
26
26
  export { MessagingApi, RECEIPT_TOPIC } from './messaging.js';
27
+ export { RelayApi } from './relay.js';
27
28
  // ── Shared types ─────────────────────────────────────────────────────────
28
29
  export * from './types.js';
29
30
  import { HttpClient } from './http.js';
@@ -35,6 +36,7 @@ import { MarketsApi } from './markets.js';
35
36
  import { ContractsApi } from './contracts.js';
36
37
  import { DaoApi } from './dao.js';
37
38
  import { MessagingApi } from './messaging.js';
39
+ import { RelayApi } from './relay.js';
38
40
  const DEFAULT_BASE_URL = 'http://127.0.0.1:9528';
39
41
  /**
40
42
  * Top-level client that exposes all ClawNet APIs via REST.
@@ -53,6 +55,7 @@ export class ClawNetClient {
53
55
  contracts;
54
56
  dao;
55
57
  messaging;
58
+ relay;
56
59
  constructor(config) {
57
60
  this.http = new HttpClient({
58
61
  baseUrl: config?.baseUrl ?? DEFAULT_BASE_URL,
@@ -66,6 +69,7 @@ export class ClawNetClient {
66
69
  this.contracts = new ContractsApi(this.http);
67
70
  this.dao = new DaoApi(this.http);
68
71
  this.messaging = new MessagingApi(this.http);
72
+ this.relay = new RelayApi(this.http);
69
73
  }
70
74
  }
71
75
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,UAAU,EAAoC,YAAY,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAe7D,4EAA4E;AAC5E,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAyB,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,CAAa;IACjB,IAAI,CAAU;IACd,QAAQ,CAAc;IACtB,MAAM,CAAY;IAClB,UAAU,CAAgB;IAC1B,OAAO,CAAa;IACpB,SAAS,CAAe;IACxB,GAAG,CAAS;IACZ,SAAS,CAAe;IAEjC,YAAY,MAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,gBAAgB;YAC5C,GAAG,MAAM;SACV,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,UAAU,EAAoC,YAAY,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsBtC,4EAA4E;AAC5E,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAyB,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,CAAa;IACjB,IAAI,CAAU;IACd,QAAQ,CAAc;IACtB,MAAM,CAAY;IAClB,UAAU,CAAgB;IAC1B,OAAO,CAAa;IACpB,SAAS,CAAe;IACxB,GAAG,CAAS;IACZ,SAAS,CAAe;IACxB,KAAK,CAAW;IAEzB,YAAY,MAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,gBAAgB;YAC5C,GAAG,MAAM;SACV,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Relay API — relay statistics, health diagnosis, access control,
3
+ * relay discovery, quality scoring, and drain management.
4
+ */
5
+ import type { HttpClient, RequestOptions } from './http.js';
6
+ export interface RelayPeriodStats {
7
+ periodStart: number;
8
+ periodEnd: number;
9
+ bytesRelayed: number;
10
+ attachmentBytesRelayed: number;
11
+ circuitsServed: number;
12
+ uniquePeersServed: number;
13
+ }
14
+ export interface RelayStats {
15
+ relayEnabled: boolean;
16
+ totalCircuitsServed: number;
17
+ activeCircuits: number;
18
+ totalBytesRelayed: number;
19
+ totalMessagesRelayed: number;
20
+ totalAttachmentBytesRelayed: number;
21
+ uptimeSeconds: number;
22
+ periodStats: RelayPeriodStats;
23
+ }
24
+ export interface RelayHealthInfo {
25
+ relayEnabled: boolean;
26
+ natStatus: 'public' | 'private' | 'unknown';
27
+ publicAddresses: string[];
28
+ isReachable: boolean;
29
+ load: {
30
+ activeCircuits: number;
31
+ maxCircuits: number;
32
+ utilizationPercent: number;
33
+ };
34
+ warnings: string[];
35
+ }
36
+ export interface RelayAccessInfo {
37
+ mode: 'open' | 'whitelist' | 'blacklist';
38
+ list: string[];
39
+ }
40
+ export interface RelayAccessUpdateParams {
41
+ action?: 'add' | 'remove';
42
+ did?: string;
43
+ mode?: 'open' | 'whitelist' | 'blacklist';
44
+ }
45
+ /** Relay discovery result (F2). */
46
+ export interface RelayDiscoveryInfo {
47
+ relays: string[];
48
+ count: number;
49
+ }
50
+ /** Relay quality score (F5). */
51
+ export interface RelayScore {
52
+ peerId: string;
53
+ latencyMs: number;
54
+ availableCapacity: number;
55
+ maxCapacity: number;
56
+ successRate: number;
57
+ uptimeSeconds: number;
58
+ score: number;
59
+ }
60
+ /** Relay scoring result (F5). */
61
+ export interface RelayScoresInfo {
62
+ scores: RelayScore[];
63
+ count: number;
64
+ }
65
+ /** Relay peers info (F12). */
66
+ export interface RelayPeersInfo {
67
+ peers: string[];
68
+ count: number;
69
+ draining: boolean;
70
+ }
71
+ /** Relay drain result (F12). */
72
+ export interface RelayDrainResult {
73
+ draining: boolean;
74
+ }
75
+ /** A single peer's co-signed confirmation of relay traffic (F10). */
76
+ export interface PeerConfirmation {
77
+ peerDid: string;
78
+ bytesConfirmed: number;
79
+ circuitsConfirmed: number;
80
+ signature: string;
81
+ }
82
+ /** Period contribution proof with co-signatures (F4). */
83
+ export interface RelayPeriodProof {
84
+ relayDid: string;
85
+ periodId: number;
86
+ periodStart: number;
87
+ periodEnd: number;
88
+ bytesRelayed: number;
89
+ attachmentBytesRelayed: number;
90
+ circuitsServed: number;
91
+ uniquePeersServed: number;
92
+ peerConfirmations: PeerConfirmation[];
93
+ relaySignature: string;
94
+ }
95
+ /** Params for confirming relay contribution (F10). */
96
+ export interface ConfirmContributionParams {
97
+ peerDid: string;
98
+ bytesConfirmed: number;
99
+ circuitsConfirmed: number;
100
+ signature: string;
101
+ }
102
+ /** Result of confirm-contribution (F10). */
103
+ export interface ConfirmContributionResult {
104
+ accepted: boolean;
105
+ peerDid: string;
106
+ bytesConfirmed: number;
107
+ circuitsConfirmed: number;
108
+ }
109
+ export declare class RelayApi {
110
+ private readonly http;
111
+ constructor(http: HttpClient);
112
+ /** Get relay traffic statistics. */
113
+ getStats(opts?: RequestOptions): Promise<RelayStats>;
114
+ /** Get relay self-diagnosis health info. */
115
+ getHealth(opts?: RequestOptions): Promise<RelayHealthInfo>;
116
+ /** Get current relay access control settings. */
117
+ getAccess(opts?: RequestOptions): Promise<RelayAccessInfo>;
118
+ /** Update relay access control settings (add/remove DID, or change mode). */
119
+ updateAccess(params: RelayAccessUpdateParams, opts?: RequestOptions): Promise<RelayAccessInfo>;
120
+ /** Discover relay nodes via DHT (F2). */
121
+ discover(opts?: RequestOptions): Promise<RelayDiscoveryInfo>;
122
+ /** Get scored relay candidates (F5). Discovers + probes + scores. */
123
+ getScores(opts?: RequestOptions): Promise<RelayScoresInfo>;
124
+ /** Get peers using this node as relay (F12). */
125
+ getPeers(opts?: RequestOptions): Promise<RelayPeersInfo>;
126
+ /** Start or stop graceful relay drain (F12). */
127
+ setDrain(enable?: boolean, opts?: RequestOptions): Promise<RelayDrainResult>;
128
+ /** Get the last generated period proof (F4). */
129
+ getPeriodProof(opts?: RequestOptions): Promise<RelayPeriodProof | null>;
130
+ /** Generate a new period proof (F4). */
131
+ generatePeriodProof(relayDid: string, opts?: RequestOptions): Promise<RelayPeriodProof>;
132
+ /** Confirm relay contribution as a served peer (F10). */
133
+ confirmContribution(params: ConfirmContributionParams, opts?: RequestOptions): Promise<ConfirmContributionResult>;
134
+ }
135
+ //# sourceMappingURL=relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
package/dist/relay.js ADDED
@@ -0,0 +1,55 @@
1
+ // ── API class ───────────────────────────────────────────────────
2
+ export class RelayApi {
3
+ http;
4
+ constructor(http) {
5
+ this.http = http;
6
+ }
7
+ /** Get relay traffic statistics. */
8
+ async getStats(opts) {
9
+ return this.http.get('/api/v1/relay/stats', undefined, opts);
10
+ }
11
+ /** Get relay self-diagnosis health info. */
12
+ async getHealth(opts) {
13
+ return this.http.get('/api/v1/relay/health', undefined, opts);
14
+ }
15
+ /** Get current relay access control settings. */
16
+ async getAccess(opts) {
17
+ return this.http.get('/api/v1/relay/access', undefined, opts);
18
+ }
19
+ /** Update relay access control settings (add/remove DID, or change mode). */
20
+ async updateAccess(params, opts) {
21
+ return this.http.post('/api/v1/relay/access', params, opts);
22
+ }
23
+ /** Discover relay nodes via DHT (F2). */
24
+ async discover(opts) {
25
+ return this.http.get('/api/v1/relay/discover', undefined, opts);
26
+ }
27
+ /** Get scored relay candidates (F5). Discovers + probes + scores. */
28
+ async getScores(opts) {
29
+ return this.http.get('/api/v1/relay/scores', undefined, opts);
30
+ }
31
+ /** Get peers using this node as relay (F12). */
32
+ async getPeers(opts) {
33
+ return this.http.get('/api/v1/relay/peers', undefined, opts);
34
+ }
35
+ /** Start or stop graceful relay drain (F12). */
36
+ async setDrain(enable = true, opts) {
37
+ return this.http.post('/api/v1/relay/drain', { enable }, opts);
38
+ }
39
+ /** Get the last generated period proof (F4). */
40
+ async getPeriodProof(opts) {
41
+ const result = await this.http.get('/api/v1/relay/period-proof', undefined, opts);
42
+ if ('proof' in result && result.proof === null)
43
+ return null;
44
+ return result;
45
+ }
46
+ /** Generate a new period proof (F4). */
47
+ async generatePeriodProof(relayDid, opts) {
48
+ return this.http.post('/api/v1/relay/period-proof', { relayDid }, opts);
49
+ }
50
+ /** Confirm relay contribution as a served peer (F10). */
51
+ async confirmContribution(params, opts) {
52
+ return this.http.post('/api/v1/relay/confirm-contribution', params, opts);
53
+ }
54
+ }
55
+ //# sourceMappingURL=relay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AA6HA,mEAAmE;AAEnE,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,oCAAoC;IACpC,KAAK,CAAC,QAAQ,CAAC,IAAqB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,SAAS,CAAC,IAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,SAAS,CAAC,IAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,YAAY,CAAC,MAA+B,EAAE,IAAqB;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,sBAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,QAAQ,CAAC,IAAqB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,wBAAwB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,SAAS,CAAC,IAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,QAAQ,CAAC,IAAqB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE,IAAqB;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,cAAc,CAAC,IAAqB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAChC,4BAA4B,EAAE,SAAS,EAAE,IAAI,CAC9C,CAAC;QACF,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO,MAA0B,CAAC;IACpC,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,IAAqB;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,4BAA4B,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,mBAAmB,CAAC,MAAiC,EAAE,IAAqB;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,oCAAoC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvG,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claw-network/sdk",
3
- "version": "0.5.3",
3
+ "version": "0.6.0",
4
4
  "description": "TypeScript SDK for the ClawNet decentralized agent economy",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -31,6 +31,6 @@
31
31
  "scripts": {
32
32
  "build": "tsc -b tsconfig.json",
33
33
  "test": "vitest run --passWithNoTests",
34
- "lint": "eslint src --max-warnings=0"
34
+ "lint": "eslint src test --max-warnings=0"
35
35
  }
36
36
  }