@targe/sdk 0.1.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.
@@ -0,0 +1,26 @@
1
+ import { ethers } from 'ethers';
2
+ export class AuthBuilder {
3
+ constructor(privateKey) {
4
+ this.wallet = new ethers.Wallet(privateKey);
5
+ }
6
+ get address() {
7
+ return this.wallet.address;
8
+ }
9
+ async buildAgentAuth(action) {
10
+ const timestamp = Date.now();
11
+ const challenge = `targe-provider:${action}:${timestamp}`;
12
+ const signature = await this.wallet.signMessage(challenge);
13
+ const payload = {
14
+ address: this.wallet.address,
15
+ signature,
16
+ timestamp,
17
+ action,
18
+ };
19
+ return Buffer.from(JSON.stringify(payload)).toString('base64');
20
+ }
21
+ buildPaymentSignature() {
22
+ const payload = { from: this.wallet.address };
23
+ return Buffer.from(JSON.stringify(payload)).toString('base64');
24
+ }
25
+ }
26
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,WAAW;IAGtB,YAAY,UAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,kBAAkB,MAAM,IAAI,SAAS,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,SAAS;YACT,SAAS;YACT,MAAM;SACP,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,qBAAqB;QACnB,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,77 @@
1
+ import axios from 'axios';
2
+ import { mapHttpError, TargeError } from './errors';
3
+ export class TargeClient {
4
+ constructor(baseUrl, timeout, retries) {
5
+ this.retries = retries;
6
+ this.http = axios.create({
7
+ baseURL: baseUrl,
8
+ timeout,
9
+ headers: { 'Content-Type': 'application/json' },
10
+ });
11
+ }
12
+ async request(method, path, opts = {}) {
13
+ let lastError;
14
+ for (let attempt = 0; attempt <= this.retries; attempt++) {
15
+ try {
16
+ const response = await this.http.request({
17
+ method,
18
+ url: path,
19
+ data: opts.body,
20
+ headers: opts.headers,
21
+ timeout: opts.timeout,
22
+ });
23
+ return response.data;
24
+ }
25
+ catch (err) {
26
+ const mapped = this.handleError(err);
27
+ lastError = mapped;
28
+ if (mapped.status < 500 || attempt === this.retries) {
29
+ throw mapped;
30
+ }
31
+ // Exponential backoff before retry
32
+ await this.sleep(1000 * Math.pow(2, attempt));
33
+ }
34
+ }
35
+ throw lastError;
36
+ }
37
+ async streamRequest(method, path, opts = {}) {
38
+ try {
39
+ const response = await this.http.request({
40
+ method,
41
+ url: path,
42
+ data: opts.body,
43
+ headers: opts.headers,
44
+ timeout: opts.timeout,
45
+ responseType: 'stream',
46
+ });
47
+ const headers = {};
48
+ for (const [key, value] of Object.entries(response.headers)) {
49
+ if (typeof value === 'string')
50
+ headers[key] = value;
51
+ }
52
+ return { stream: response.data, headers };
53
+ }
54
+ catch (err) {
55
+ throw this.handleError(err);
56
+ }
57
+ }
58
+ handleError(err) {
59
+ if (err instanceof TargeError)
60
+ return err;
61
+ if (axios.isAxiosError(err)) {
62
+ const axErr = err;
63
+ if (axErr.response) {
64
+ return mapHttpError(axErr.response.status, axErr.response.data);
65
+ }
66
+ if (axErr.code === 'ECONNABORTED' || axErr.code === 'ETIMEDOUT') {
67
+ return new TargeError('Request timeout', 408, 'TIMEOUT');
68
+ }
69
+ return new TargeError(axErr.message, 0, 'NETWORK_ERROR');
70
+ }
71
+ return new TargeError(String(err), 0, 'UNKNOWN_ERROR');
72
+ }
73
+ sleep(ms) {
74
+ return new Promise(resolve => setTimeout(resolve, ms));
75
+ }
76
+ }
77
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ export class TargeError extends Error {
2
+ constructor(message, status, code, details) {
3
+ super(message);
4
+ this.name = 'TargeError';
5
+ this.status = status;
6
+ this.code = code;
7
+ this.details = details;
8
+ }
9
+ }
10
+ export class InsufficientBalanceError extends TargeError {
11
+ constructor(message, details) {
12
+ super(message, 402, 'INSUFFICIENT_BALANCE', details);
13
+ this.name = 'InsufficientBalanceError';
14
+ }
15
+ }
16
+ export class AuthenticationError extends TargeError {
17
+ constructor(message, details) {
18
+ super(message, 401, 'AUTHENTICATION_ERROR', details);
19
+ this.name = 'AuthenticationError';
20
+ }
21
+ }
22
+ export class RateLimitError extends TargeError {
23
+ constructor(message, retryAfter, details) {
24
+ super(message, 429, 'RATE_LIMITED', details);
25
+ this.name = 'RateLimitError';
26
+ this.retryAfter = retryAfter;
27
+ }
28
+ }
29
+ export class NotFoundError extends TargeError {
30
+ constructor(message, details) {
31
+ super(message, 404, 'NOT_FOUND', details);
32
+ this.name = 'NotFoundError';
33
+ }
34
+ }
35
+ export class KeyNotAvailableError extends TargeError {
36
+ constructor(message, status = 503, details) {
37
+ super(message, status, 'KEY_NOT_AVAILABLE', details);
38
+ this.name = 'KeyNotAvailableError';
39
+ }
40
+ }
41
+ export class UpstreamError extends TargeError {
42
+ constructor(message, details) {
43
+ super(message, 502, 'UPSTREAM_ERROR', details);
44
+ this.name = 'UpstreamError';
45
+ }
46
+ }
47
+ export function mapHttpError(status, body) {
48
+ const message = body?.error || body?.message || `HTTP ${status}`;
49
+ const details = typeof body === 'object' ? body : undefined;
50
+ switch (status) {
51
+ case 401:
52
+ return new AuthenticationError(message, details);
53
+ case 402:
54
+ return new InsufficientBalanceError(message, details);
55
+ case 404:
56
+ return new NotFoundError(message, details);
57
+ case 410:
58
+ return new KeyNotAvailableError(message, 410, details);
59
+ case 429: {
60
+ const retryAfter = body?.retryAfter ?? body?.retry_after;
61
+ return new RateLimitError(message, retryAfter, details);
62
+ }
63
+ case 502:
64
+ return new UpstreamError(message, details);
65
+ case 503:
66
+ return new KeyNotAvailableError(message, 503, details);
67
+ default:
68
+ return new TargeError(message, status, `HTTP_${status}`, details);
69
+ }
70
+ }
71
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import { AuthBuilder } from './auth';
2
+ import { TargeClient } from './client';
3
+ import { parseSSEStream } from './sse';
4
+ export { AuthBuilder } from './auth';
5
+ export { TargeClient } from './client';
6
+ export { parseSSEStream } from './sse';
7
+ export * from './errors';
8
+ export * from './types';
9
+ const DEFAULT_BASE_URL = 'https://api.targe.io';
10
+ const DEFAULT_TIMEOUT = 30000;
11
+ const DEFAULT_STREAM_TIMEOUT = 120000;
12
+ const DEFAULT_RETRIES = 1;
13
+ export class Targe {
14
+ constructor(opts) {
15
+ this.auth = new AuthBuilder(opts.privateKey);
16
+ this.address = this.auth.address;
17
+ this.streamTimeout = opts.streamTimeout ?? DEFAULT_STREAM_TIMEOUT;
18
+ this.client = new TargeClient(opts.baseUrl ?? DEFAULT_BASE_URL, opts.timeout ?? DEFAULT_TIMEOUT, opts.retries ?? DEFAULT_RETRIES);
19
+ }
20
+ // ── Account Management (Agent Auth) ──────────────────────────────
21
+ async register() {
22
+ return this.agentRequest('POST', '/agent/register', 'register');
23
+ }
24
+ async getBalance() {
25
+ return this.agentRequest('GET', '/agent/balance', 'get-balance');
26
+ }
27
+ async getDepositAddress() {
28
+ return this.agentRequest('GET', '/agent/deposit-address', 'get-deposit-address');
29
+ }
30
+ async getDeposits() {
31
+ return this.agentRequest('GET', '/agent/deposits', 'get-deposits');
32
+ }
33
+ async getTransactions(opts) {
34
+ let path = '/agent/transactions';
35
+ const params = [];
36
+ if (opts?.limit)
37
+ params.push(`limit=${opts.limit}`);
38
+ if (opts?.offset)
39
+ params.push(`offset=${opts.offset}`);
40
+ if (params.length)
41
+ path += '?' + params.join('&');
42
+ return this.agentRequest('GET', path, 'get-transactions');
43
+ }
44
+ // ── Proxy (Payment Signature) ────────────────────────────────────
45
+ async proxy(keyId, path, opts) {
46
+ const method = opts?.method ?? 'GET';
47
+ const cleanPath = path.startsWith('/') ? path.slice(1) : path;
48
+ return this.client.request(method, `/proxy/${keyId}/${cleanPath}`, {
49
+ headers: {
50
+ 'Payment-Signature': this.auth.buildPaymentSignature(),
51
+ ...opts?.headers,
52
+ },
53
+ body: opts?.body,
54
+ });
55
+ }
56
+ async proxyPool(provider, path, body) {
57
+ const cleanPath = path.startsWith('/') ? path.slice(1) : path;
58
+ return this.client.request('POST', `/proxy/pool/${provider}/${cleanPath}`, {
59
+ headers: {
60
+ 'Payment-Signature': this.auth.buildPaymentSignature(),
61
+ },
62
+ body,
63
+ });
64
+ }
65
+ async proxyStream(keyId, path, body) {
66
+ const cleanPath = path.startsWith('/') ? path.slice(1) : path;
67
+ const streamBody = { ...body, stream: true };
68
+ const { stream, headers } = await this.client.streamRequest('POST', `/proxy/${keyId}/${cleanPath}`, {
69
+ headers: {
70
+ 'Payment-Signature': this.auth.buildPaymentSignature(),
71
+ },
72
+ body: streamBody,
73
+ timeout: this.streamTimeout,
74
+ });
75
+ return { stream: parseSSEStream(stream), headers };
76
+ }
77
+ async proxyPoolStream(provider, path, body) {
78
+ const cleanPath = path.startsWith('/') ? path.slice(1) : path;
79
+ const streamBody = { ...body, stream: true };
80
+ const { stream, headers } = await this.client.streamRequest('POST', `/proxy/pool/${provider}/${cleanPath}`, {
81
+ headers: {
82
+ 'Payment-Signature': this.auth.buildPaymentSignature(),
83
+ },
84
+ body: streamBody,
85
+ timeout: this.streamTimeout,
86
+ });
87
+ return { stream: parseSSEStream(stream), headers };
88
+ }
89
+ // ── Key Sharing (Agent Auth) ─────────────────────────────────────
90
+ async registerKey(opts) {
91
+ return this.agentRequest('POST', '/agent/keys', 'register-shared-key', opts);
92
+ }
93
+ async listKeys() {
94
+ return this.agentRequest('GET', '/agent/keys', 'list-shared-keys');
95
+ }
96
+ async getKey(id) {
97
+ return this.agentRequest('GET', `/agent/keys/${id}`, 'get-shared-key');
98
+ }
99
+ async updateKey(id, updates) {
100
+ return this.agentRequest('PATCH', `/agent/keys/${id}`, 'update-shared-key', updates);
101
+ }
102
+ async pauseKey(id) {
103
+ return this.agentRequest('POST', `/agent/keys/${id}/pause`, 'pause-shared-key');
104
+ }
105
+ async resumeKey(id) {
106
+ return this.agentRequest('POST', `/agent/keys/${id}/resume`, 'resume-shared-key');
107
+ }
108
+ async reclaimKey(id) {
109
+ return this.agentRequest('POST', `/agent/keys/${id}/reclaim`, 'reclaim-shared-key');
110
+ }
111
+ async getKeyEarnings(id) {
112
+ return this.agentRequest('GET', `/agent/keys/${id}/earnings`, 'get-key-earnings');
113
+ }
114
+ // ── Permit2 (Agent Auth) ─────────────────────────────────────────
115
+ async registerPermit(opts) {
116
+ return this.agentRequest('POST', '/agent/permit', 'register-permit', opts);
117
+ }
118
+ async getPermit() {
119
+ return this.agentRequest('GET', '/agent/permit', 'get-permit');
120
+ }
121
+ async revokePermit() {
122
+ await this.agentRequest('DELETE', '/agent/permit', 'revoke-permit');
123
+ }
124
+ async getNonce() {
125
+ return this.agentRequest('GET', '/agent/permit/nonce', 'get-nonce');
126
+ }
127
+ async getTab() {
128
+ return this.agentRequest('GET', '/agent/tab', 'get-tab');
129
+ }
130
+ async settleTab() {
131
+ return this.agentRequest('POST', '/agent/tab/settle', 'settle-tab');
132
+ }
133
+ async getTabHistory() {
134
+ return this.agentRequest('GET', '/agent/tab/history', 'tab-history');
135
+ }
136
+ // ── Public (Static, No Auth) ─────────────────────────────────────
137
+ static async getCatalog(baseUrl) {
138
+ const client = new TargeClient(baseUrl ?? DEFAULT_BASE_URL, DEFAULT_TIMEOUT, 0);
139
+ return client.request('GET', '/catalog');
140
+ }
141
+ static async getHealth(baseUrl) {
142
+ const client = new TargeClient(baseUrl ?? DEFAULT_BASE_URL, DEFAULT_TIMEOUT, 0);
143
+ return client.request('GET', '/health');
144
+ }
145
+ static async getStats(baseUrl) {
146
+ const client = new TargeClient(baseUrl ?? DEFAULT_BASE_URL, DEFAULT_TIMEOUT, 0);
147
+ return client.request('GET', '/stats');
148
+ }
149
+ static async getLeaderboard(baseUrl) {
150
+ const client = new TargeClient(baseUrl ?? DEFAULT_BASE_URL, DEFAULT_TIMEOUT, 0);
151
+ return client.request('GET', '/leaderboard');
152
+ }
153
+ // ── Internal ─────────────────────────────────────────────────────
154
+ async agentRequest(method, path, action, body) {
155
+ const authHeader = await this.auth.buildAgentAuth(action);
156
+ return this.client.request(method, path, {
157
+ headers: { 'X-Agent-Auth': authHeader },
158
+ body,
159
+ });
160
+ }
161
+ }
162
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ export async function* parseSSEStream(readable) {
2
+ let buffer = '';
3
+ let currentEvent = {};
4
+ for await (const chunk of readable) {
5
+ buffer += typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
6
+ const lines = buffer.split('\n');
7
+ // Keep the last incomplete line in the buffer
8
+ buffer = lines.pop() || '';
9
+ for (const line of lines) {
10
+ if (line === '') {
11
+ // Blank line = event boundary
12
+ if (currentEvent.data !== undefined) {
13
+ yield {
14
+ event: currentEvent.event,
15
+ data: currentEvent.data,
16
+ id: currentEvent.id,
17
+ };
18
+ }
19
+ currentEvent = {};
20
+ continue;
21
+ }
22
+ if (line.startsWith(':')) {
23
+ // Comment line, skip
24
+ continue;
25
+ }
26
+ const colonIndex = line.indexOf(':');
27
+ let field;
28
+ let value;
29
+ if (colonIndex === -1) {
30
+ field = line;
31
+ value = '';
32
+ }
33
+ else {
34
+ field = line.slice(0, colonIndex);
35
+ value = line.slice(colonIndex + 1);
36
+ // Remove single leading space if present
37
+ if (value.startsWith(' '))
38
+ value = value.slice(1);
39
+ }
40
+ switch (field) {
41
+ case 'event':
42
+ currentEvent.event = value;
43
+ break;
44
+ case 'data':
45
+ // Multi-line data: concatenate with newline
46
+ currentEvent.data = currentEvent.data !== undefined
47
+ ? currentEvent.data + '\n' + value
48
+ : value;
49
+ break;
50
+ case 'id':
51
+ currentEvent.id = value;
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ // Flush any remaining event in the buffer
57
+ if (buffer) {
58
+ const lines = buffer.split('\n');
59
+ for (const line of lines) {
60
+ if (line === '')
61
+ continue;
62
+ const colonIndex = line.indexOf(':');
63
+ if (colonIndex !== -1) {
64
+ const field = line.slice(0, colonIndex);
65
+ let value = line.slice(colonIndex + 1);
66
+ if (value.startsWith(' '))
67
+ value = value.slice(1);
68
+ if (field === 'data') {
69
+ currentEvent.data = currentEvent.data !== undefined
70
+ ? currentEvent.data + '\n' + value
71
+ : value;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ if (currentEvent.data !== undefined) {
77
+ yield {
78
+ event: currentEvent.event,
79
+ data: currentEvent.data,
80
+ id: currentEvent.id,
81
+ };
82
+ }
83
+ }
84
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/sse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // ── Enums ────────────────────────────────────────────────────────────
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,wEAAwE"}
@@ -0,0 +1,8 @@
1
+ export declare class AuthBuilder {
2
+ private wallet;
3
+ constructor(privateKey: string);
4
+ get address(): string;
5
+ buildAgentAuth(action: string): Promise<string>;
6
+ buildPaymentSignature(): string;
7
+ }
8
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;gBAElB,UAAU,EAAE,MAAM;IAI9B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEK,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAarD,qBAAqB,IAAI,MAAM;CAIhC"}
@@ -0,0 +1,18 @@
1
+ export interface RequestOptions {
2
+ headers?: Record<string, string>;
3
+ body?: any;
4
+ timeout?: number;
5
+ }
6
+ export declare class TargeClient {
7
+ private http;
8
+ private retries;
9
+ constructor(baseUrl: string, timeout: number, retries: number);
10
+ request<T>(method: string, path: string, opts?: RequestOptions): Promise<T>;
11
+ streamRequest(method: string, path: string, opts?: RequestOptions): Promise<{
12
+ stream: NodeJS.ReadableStream;
13
+ headers: Record<string, string>;
14
+ }>;
15
+ private handleError;
16
+ private sleep;
17
+ }
18
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IASvD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IA6B/E,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC;QACpF,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;IAsBF,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,KAAK;CAGd"}
@@ -0,0 +1,27 @@
1
+ export declare class TargeError extends Error {
2
+ readonly status: number;
3
+ readonly code: string;
4
+ readonly details?: Record<string, any>;
5
+ constructor(message: string, status: number, code: string, details?: Record<string, any>);
6
+ }
7
+ export declare class InsufficientBalanceError extends TargeError {
8
+ constructor(message: string, details?: Record<string, any>);
9
+ }
10
+ export declare class AuthenticationError extends TargeError {
11
+ constructor(message: string, details?: Record<string, any>);
12
+ }
13
+ export declare class RateLimitError extends TargeError {
14
+ readonly retryAfter?: number;
15
+ constructor(message: string, retryAfter?: number, details?: Record<string, any>);
16
+ }
17
+ export declare class NotFoundError extends TargeError {
18
+ constructor(message: string, details?: Record<string, any>);
19
+ }
20
+ export declare class KeyNotAvailableError extends TargeError {
21
+ constructor(message: string, status?: number, details?: Record<string, any>);
22
+ }
23
+ export declare class UpstreamError extends TargeError {
24
+ constructor(message: string, details?: Record<string, any>);
25
+ }
26
+ export declare function mapHttpError(status: number, body: any): TargeError;
27
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAElC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAOzF;AAED,qBAAa,wBAAyB,SAAQ,UAAU;gBAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAI3D;AAED,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAI3D;AAED,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAExB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAKhF;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAI3D;AAED,qBAAa,oBAAqB,SAAQ,UAAU;gBACtC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAIjF;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAI3D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,UAAU,CAwBlE"}
@@ -0,0 +1,43 @@
1
+ import type { TargeOptions, ProxyOptions, PoolProxyResult, StreamResult, RegisterResult, BalanceResult, DepositAddressResult, DepositsResult, TransactionsResult, TransactionQueryOptions, RegisterKeyOptions, RegisterKeyResult, ListKeysResult, GetKeyResult, UpdateKeyOptions, UpdateKeyResult, StatusResult, ReclaimResult, KeyEarningsResult, PermitOptions, PermitResult, NonceResult, TabResult, SettlementResult, SettlementHistoryResult, CatalogResult, HealthResult, StatsResult, LeaderboardResult, LlmProvider } from './types';
2
+ export { AuthBuilder } from './auth';
3
+ export { TargeClient } from './client';
4
+ export { parseSSEStream } from './sse';
5
+ export * from './errors';
6
+ export * from './types';
7
+ export declare class Targe {
8
+ readonly address: string;
9
+ private auth;
10
+ private client;
11
+ private streamTimeout;
12
+ constructor(opts: TargeOptions);
13
+ register(): Promise<RegisterResult>;
14
+ getBalance(): Promise<BalanceResult>;
15
+ getDepositAddress(): Promise<DepositAddressResult>;
16
+ getDeposits(): Promise<DepositsResult>;
17
+ getTransactions(opts?: TransactionQueryOptions): Promise<TransactionsResult>;
18
+ proxy(keyId: string, path: string, opts?: ProxyOptions): Promise<any>;
19
+ proxyPool(provider: LlmProvider, path: string, body: any): Promise<PoolProxyResult>;
20
+ proxyStream(keyId: string, path: string, body: any): Promise<StreamResult>;
21
+ proxyPoolStream(provider: LlmProvider, path: string, body: any): Promise<StreamResult>;
22
+ registerKey(opts: RegisterKeyOptions): Promise<RegisterKeyResult>;
23
+ listKeys(): Promise<ListKeysResult>;
24
+ getKey(id: string): Promise<GetKeyResult>;
25
+ updateKey(id: string, updates: UpdateKeyOptions): Promise<UpdateKeyResult>;
26
+ pauseKey(id: string): Promise<StatusResult>;
27
+ resumeKey(id: string): Promise<StatusResult>;
28
+ reclaimKey(id: string): Promise<ReclaimResult>;
29
+ getKeyEarnings(id: string): Promise<KeyEarningsResult>;
30
+ registerPermit(opts: PermitOptions): Promise<PermitResult>;
31
+ getPermit(): Promise<PermitResult>;
32
+ revokePermit(): Promise<void>;
33
+ getNonce(): Promise<NonceResult>;
34
+ getTab(): Promise<TabResult>;
35
+ settleTab(): Promise<SettlementResult>;
36
+ getTabHistory(): Promise<SettlementHistoryResult>;
37
+ static getCatalog(baseUrl?: string): Promise<CatalogResult>;
38
+ static getHealth(baseUrl?: string): Promise<HealthResult>;
39
+ static getStats(baseUrl?: string): Promise<StatsResult>;
40
+ static getLeaderboard(baseUrl?: string): Promise<LeaderboardResult>;
41
+ private agentRequest;
42
+ }
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SSEEvent } from './types';
2
+ export declare function parseSSEStream(readable: NodeJS.ReadableStream): AsyncGenerator<SSEEvent>;
3
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,wBAAuB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,CAuF/F"}