@hypercli.com/sdk 2026.4.13-3 → 2026.4.13-4

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.
Files changed (97) hide show
  1. package/dist/agent.d.ts +350 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +620 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/agents.d.ts +433 -0
  6. package/dist/agents.d.ts.map +1 -0
  7. package/dist/agents.js +1140 -0
  8. package/dist/agents.js.map +1 -0
  9. package/dist/billing.d.ts +72 -0
  10. package/dist/billing.d.ts.map +1 -0
  11. package/dist/billing.js +93 -0
  12. package/dist/billing.js.map +1 -0
  13. package/dist/browser.d.ts +25 -0
  14. package/dist/browser.d.ts.map +1 -0
  15. package/dist/browser.js +33 -0
  16. package/dist/browser.js.map +1 -0
  17. package/dist/client.d.ts +67 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/client.js +100 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/config.d.ts +46 -0
  22. package/dist/config.d.ts.map +1 -0
  23. package/dist/config.js +235 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/errors.d.ts +9 -0
  26. package/dist/errors.d.ts.map +1 -0
  27. package/dist/errors.js +15 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/files.d.ts +60 -0
  30. package/dist/files.d.ts.map +1 -0
  31. package/dist/files.js +128 -0
  32. package/dist/files.js.map +1 -0
  33. package/dist/gateway.d.ts +2 -0
  34. package/dist/gateway.d.ts.map +1 -0
  35. package/dist/gateway.js +2 -0
  36. package/dist/gateway.js.map +1 -0
  37. package/dist/http.d.ts +42 -0
  38. package/dist/http.d.ts.map +1 -0
  39. package/dist/http.js +238 -0
  40. package/dist/http.js.map +1 -0
  41. package/dist/index.d.ts +26 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +42 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/instances.d.ts +94 -0
  46. package/dist/instances.d.ts.map +1 -0
  47. package/dist/instances.js +197 -0
  48. package/dist/instances.js.map +1 -0
  49. package/dist/job/base.d.ts +80 -0
  50. package/dist/job/base.d.ts.map +1 -0
  51. package/dist/job/base.js +200 -0
  52. package/dist/job/base.js.map +1 -0
  53. package/dist/job/comfyui.d.ts +75 -0
  54. package/dist/job/comfyui.d.ts.map +1 -0
  55. package/dist/job/comfyui.js +454 -0
  56. package/dist/job/comfyui.js.map +1 -0
  57. package/dist/job/gradio.d.ts +48 -0
  58. package/dist/job/gradio.d.ts.map +1 -0
  59. package/dist/job/gradio.js +90 -0
  60. package/dist/job/gradio.js.map +1 -0
  61. package/dist/jobs.d.ts +153 -0
  62. package/dist/jobs.d.ts.map +1 -0
  63. package/dist/jobs.js +352 -0
  64. package/dist/jobs.js.map +1 -0
  65. package/dist/keys.d.ts +83 -0
  66. package/dist/keys.d.ts.map +1 -0
  67. package/dist/keys.js +69 -0
  68. package/dist/keys.js.map +1 -0
  69. package/dist/logs.d.ts +54 -0
  70. package/dist/logs.d.ts.map +1 -0
  71. package/dist/logs.js +256 -0
  72. package/dist/logs.js.map +1 -0
  73. package/dist/models.d.ts +15 -0
  74. package/dist/models.d.ts.map +1 -0
  75. package/dist/models.js +19 -0
  76. package/dist/models.js.map +1 -0
  77. package/dist/openclaw/gateway.d.ts +269 -0
  78. package/dist/openclaw/gateway.d.ts.map +1 -0
  79. package/dist/openclaw/gateway.js +2021 -0
  80. package/dist/openclaw/gateway.js.map +1 -0
  81. package/dist/renders.d.ts +187 -0
  82. package/dist/renders.d.ts.map +1 -0
  83. package/dist/renders.js +360 -0
  84. package/dist/renders.js.map +1 -0
  85. package/dist/user.d.ts +49 -0
  86. package/dist/user.d.ts.map +1 -0
  87. package/dist/user.js +57 -0
  88. package/dist/user.js.map +1 -0
  89. package/dist/voice.d.ts +31 -0
  90. package/dist/voice.d.ts.map +1 -0
  91. package/dist/voice.js +36 -0
  92. package/dist/voice.js.map +1 -0
  93. package/dist/x402.d.ts +79 -0
  94. package/dist/x402.d.ts.map +1 -0
  95. package/dist/x402.js +295 -0
  96. package/dist/x402.js.map +1 -0
  97. package/package.json +2 -1
package/dist/http.js ADDED
@@ -0,0 +1,238 @@
1
+ /**
2
+ * HTTP client utilities with retry logic
3
+ */
4
+ import { APIError } from './errors.js';
5
+ /**
6
+ * Make an HTTP request with retry logic for transient errors
7
+ */
8
+ export async function requestWithRetry(options) {
9
+ const { method, url, headers = {}, body, params, retries = 3, backoff = 1.0, timeout = 30000, } = options;
10
+ // Build URL with query params
11
+ let finalUrl = url;
12
+ if (params) {
13
+ const searchParams = new URLSearchParams();
14
+ for (const [key, value] of Object.entries(params)) {
15
+ if (value !== undefined && value !== null) {
16
+ if (Array.isArray(value)) {
17
+ for (const item of value) {
18
+ if (item !== undefined && item !== null) {
19
+ searchParams.append(key, String(item));
20
+ }
21
+ }
22
+ continue;
23
+ }
24
+ searchParams.append(key, String(value));
25
+ }
26
+ }
27
+ const queryString = searchParams.toString();
28
+ if (queryString) {
29
+ finalUrl = `${url}${url.includes('?') ? '&' : '?'}${queryString}`;
30
+ }
31
+ }
32
+ let lastError;
33
+ for (let attempt = 0; attempt < retries; attempt++) {
34
+ try {
35
+ const controller = new AbortController();
36
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
37
+ const response = await fetch(finalUrl, {
38
+ method,
39
+ headers,
40
+ body: body ? JSON.stringify(body) : undefined,
41
+ signal: controller.signal,
42
+ });
43
+ clearTimeout(timeoutId);
44
+ return response;
45
+ }
46
+ catch (error) {
47
+ lastError = error;
48
+ // Check if it's a transient error (network, timeout, etc.)
49
+ const isTransient = error.name === 'AbortError' ||
50
+ error.cause?.code === 'ECONNREFUSED' ||
51
+ error.cause?.code === 'ECONNRESET' ||
52
+ error.cause?.code === 'ETIMEDOUT';
53
+ if (isTransient && attempt < retries - 1) {
54
+ // Wait before retry with exponential backoff
55
+ await new Promise(resolve => setTimeout(resolve, backoff * (attempt + 1) * 1000));
56
+ continue;
57
+ }
58
+ throw error;
59
+ }
60
+ }
61
+ throw lastError || new Error('Request failed');
62
+ }
63
+ /**
64
+ * Handle API response, raise on error
65
+ */
66
+ async function handleResponse(response) {
67
+ if (response.status >= 400) {
68
+ let detail;
69
+ try {
70
+ const json = await response.json();
71
+ detail = json.detail || response.statusText;
72
+ }
73
+ catch {
74
+ detail = response.statusText || await response.text();
75
+ }
76
+ throw new APIError(response.status, detail);
77
+ }
78
+ if (response.status === 204) {
79
+ return undefined;
80
+ }
81
+ return (await response.json());
82
+ }
83
+ async function handleBytesResponse(response) {
84
+ if (response.status >= 400) {
85
+ let detail;
86
+ try {
87
+ const json = await response.json();
88
+ detail = json.detail || response.statusText;
89
+ }
90
+ catch {
91
+ detail = response.statusText || await response.text();
92
+ }
93
+ throw new APIError(response.status, detail);
94
+ }
95
+ return new Uint8Array(await response.arrayBuffer());
96
+ }
97
+ /**
98
+ * HTTP Client for making authenticated requests to the API
99
+ */
100
+ export class HTTPClient {
101
+ baseUrl;
102
+ apiKey;
103
+ timeout;
104
+ constructor(baseUrl, apiKey, timeout = 30000) {
105
+ this.baseUrl = baseUrl.replace(/\/$/, ''); // Remove trailing slash
106
+ this.apiKey = apiKey;
107
+ this.timeout = timeout;
108
+ }
109
+ get headers() {
110
+ return {
111
+ 'Authorization': `Bearer ${this.apiKey}`,
112
+ 'Content-Type': 'application/json',
113
+ };
114
+ }
115
+ async get(path, params) {
116
+ const response = await requestWithRetry({
117
+ method: 'GET',
118
+ url: `${this.baseUrl}${path}`,
119
+ headers: this.headers,
120
+ params,
121
+ timeout: this.timeout,
122
+ });
123
+ return handleResponse(response);
124
+ }
125
+ async post(path, body) {
126
+ const response = await requestWithRetry({
127
+ method: 'POST',
128
+ url: `${this.baseUrl}${path}`,
129
+ headers: this.headers,
130
+ body,
131
+ timeout: this.timeout,
132
+ });
133
+ return handleResponse(response);
134
+ }
135
+ async postBytes(path, body) {
136
+ const response = await requestWithRetry({
137
+ method: 'POST',
138
+ url: `${this.baseUrl}${path}`,
139
+ headers: this.headers,
140
+ body,
141
+ timeout: this.timeout,
142
+ });
143
+ return handleBytesResponse(response);
144
+ }
145
+ async patch(path, body) {
146
+ const response = await requestWithRetry({
147
+ method: 'PATCH',
148
+ url: `${this.baseUrl}${path}`,
149
+ headers: this.headers,
150
+ body,
151
+ timeout: this.timeout,
152
+ });
153
+ return handleResponse(response);
154
+ }
155
+ async delete(path) {
156
+ const response = await requestWithRetry({
157
+ method: 'DELETE',
158
+ url: `${this.baseUrl}${path}`,
159
+ headers: this.headers,
160
+ timeout: this.timeout,
161
+ });
162
+ return handleResponse(response);
163
+ }
164
+ /**
165
+ * POST with multipart form data for file uploads
166
+ */
167
+ async postMultipart(path, files, params) {
168
+ const formData = new FormData();
169
+ for (const [fieldName, file] of Object.entries(files)) {
170
+ const blob = new Blob([file.content], { type: file.contentType });
171
+ formData.append(fieldName, blob, file.filename);
172
+ }
173
+ // Build URL with params
174
+ let url = `${this.baseUrl}${path}`;
175
+ if (params) {
176
+ const searchParams = new URLSearchParams(params);
177
+ const queryString = searchParams.toString();
178
+ if (queryString) {
179
+ url = `${url}?${queryString}`;
180
+ }
181
+ }
182
+ // Don't set Content-Type for multipart - fetch will set it with boundary
183
+ const headers = {
184
+ 'Authorization': `Bearer ${this.apiKey}`,
185
+ };
186
+ const response = await requestWithRetry({
187
+ method: 'POST',
188
+ url,
189
+ headers,
190
+ body: formData,
191
+ timeout: this.timeout,
192
+ });
193
+ return handleResponse(response);
194
+ }
195
+ /**
196
+ * Streaming POST for SSE responses
197
+ */
198
+ async *streamPost(path, body) {
199
+ const response = await fetch(`${this.baseUrl}${path}`, {
200
+ method: 'POST',
201
+ headers: this.headers,
202
+ body: body ? JSON.stringify(body) : undefined,
203
+ });
204
+ if (!response.ok) {
205
+ const text = await response.text();
206
+ throw new APIError(response.status, text);
207
+ }
208
+ if (!response.body) {
209
+ throw new Error('Response body is null');
210
+ }
211
+ const reader = response.body.getReader();
212
+ const decoder = new TextDecoder();
213
+ let buffer = '';
214
+ try {
215
+ while (true) {
216
+ const { done, value } = await reader.read();
217
+ if (done)
218
+ break;
219
+ buffer += decoder.decode(value, { stream: true });
220
+ const lines = buffer.split('\n');
221
+ buffer = lines.pop() || '';
222
+ for (const line of lines) {
223
+ if (line.trim()) {
224
+ yield line;
225
+ }
226
+ }
227
+ }
228
+ // Yield any remaining content in buffer
229
+ if (buffer.trim()) {
230
+ yield buffer;
231
+ }
232
+ }
233
+ finally {
234
+ reader.releaseLock();
235
+ }
236
+ }
237
+ }
238
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * HyperCLI SDK - TypeScript client for HyperCLI API
3
+ */
4
+ export { HyperCLI, type HyperCLIOptions } from './client.js';
5
+ export { BrowserHyperCLI, type BrowserHyperCLIOptions } from './browser.js';
6
+ export { configure, getApiKey, getAgentApiKey, getApiUrl, getAgentsApiBaseUrl, getAgentsWsUrl, getWsUrl, GHCR_IMAGES, COMFYUI_IMAGE, DEFAULT_API_URL, DEFAULT_AGENTS_API_BASE_URL, DEFAULT_AGENTS_WS_URL, DEV_AGENTS_API_BASE_URL, DEV_AGENTS_WS_URL, DEFAULT_WS_URL, } from './config.js';
7
+ export { APIError } from './errors.js';
8
+ export { HTTPClient } from './http.js';
9
+ export { Billing, type Balance, type Transaction } from './billing.js';
10
+ export { Jobs, type Job, type JobListPage, type GPUMetrics, type SystemMetrics, type JobMetrics, type ExecResult, type CreateJobOptions, type ListJobsOptions, findJob, findById, findByHostname, findByIp, isUuid, } from './jobs.js';
11
+ export { Instances, type GPUType, type GPUConfig, type Region, type GPUPricing, type PricingTier, type AvailableGPU, } from './instances.js';
12
+ export { Renders, type Render, type RenderStatus, } from './renders.js';
13
+ export { Files, type File, } from './files.js';
14
+ export { VoiceAPI, type TTSOptions, type CloneOptions, type DesignOptions, } from './voice.js';
15
+ export { UserAPI, type User, type AuthMe, } from './user.js';
16
+ export { KeysAPI, type ApiKey, type ApiKeyBaselineValue, type ApiKeyBaselineFamily, API_KEY_BASELINE_FAMILIES, } from './keys.js';
17
+ export { ModelsAPI, type Model, } from './models.js';
18
+ export { LogStream, streamLogs, fetchLogs, } from './logs.js';
19
+ export { HyperAgent, type HyperAgentPlan, type HyperAgentCurrentPlan, type HyperAgentEntitlements, type HyperAgentEntitlementsSummary, type HyperAgentSubscription, type HyperAgentSubscriptionMutationResult, type HyperAgentSubscriptionSummary, type HyperAgentModel, type HyperAgentUsageSummary, type HyperAgentUsageHistoryEntry, type HyperAgentUsageHistory, type HyperAgentKeyUsageEntry, type HyperAgentKeyUsage, type HyperAgentTypePreset, type HyperAgentTypePlan, type HyperAgentTypeCatalog, type HyperAgentBillingProfileFields, type HyperAgentBillingInfo, type HyperAgentBillingProfileResponse, type HyperAgentBillingUser, type HyperAgentPaymentSubscription, type HyperAgentPaymentEntitlement, type HyperAgentPayment, type HyperAgentPaymentsResponse, type HyperAgentPaymentsOptions, type HyperAgentStripeCheckoutRequest, type HyperAgentStripeCheckoutResponse, type HyperAgentX402CheckoutRequest, type HyperAgentX402CheckoutResponse, } from './agent.js';
20
+ export { Deployments, Agent, OpenClawAgent, buildAgentConfig, buildOpenClawRoutes, type OpenClawModelApi, type OpenClawModelProviderAuthMode, type OpenClawSecretInput, type OpenClawModelCompatConfig, type OpenClawModelDefinitionConfig, type OpenClawModelProviderConfig, type OpenClawModelProviderPatch, type AgentExecResult, type AgentTokenResponse, type AgentShellTokenResponse, type AgentRouteConfig, type RegistryAuth, type BuildAgentConfigOptions, type OpenClawRouteOptions, type CreateAgentOptions, type OpenClawCreateAgentOptions, type OpenClawStartAgentOptions, type StartAgentOptions, type AgentExecOptions, } from './agents.js';
21
+ export { BaseJob, type BaseJobOptions, } from './job/base.js';
22
+ export { ComfyUIJob, DEFAULT_OBJECT_INFO, findNode, findNodes, applyParams, applyGraphModes, graphToApi, } from './job/comfyui.js';
23
+ export { GradioJob, type GradioJobOptions, } from './job/gradio.js';
24
+ export { X402Client, type X402Signer, type X402JobLaunch, type X402FlowCreate, type FlowCatalogItem, type X402CreateJobOptions, type X402CreateFlowOptions, } from './x402.js';
25
+ export { GatewayClient, type GatewayOptions, type GatewayEvent, type ChatEvent, type ChatAttachment, type BrowserChatAttachment, type GatewayChatAttachmentPayload, type GatewayChatToolCall, type GatewayChatMessageSummary, type GatewayEventHandler, normalizeChatAttachments, extractGatewayChatThinking, extractGatewayChatMediaUrls, extractGatewayChatToolCalls, normalizeGatewayChatMessage, } from './openclaw/gateway.js';
26
+ //# 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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"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * HyperCLI SDK - TypeScript client for HyperCLI API
3
+ */
4
+ // Main client
5
+ export { HyperCLI } from './client.js';
6
+ export { BrowserHyperCLI } from './browser.js';
7
+ // Configuration
8
+ export { configure, getApiKey, getAgentApiKey, getApiUrl, getAgentsApiBaseUrl, getAgentsWsUrl, getWsUrl, GHCR_IMAGES, COMFYUI_IMAGE, DEFAULT_API_URL, DEFAULT_AGENTS_API_BASE_URL, DEFAULT_AGENTS_WS_URL, DEV_AGENTS_API_BASE_URL, DEV_AGENTS_WS_URL, DEFAULT_WS_URL, } from './config.js';
9
+ // Errors
10
+ export { APIError } from './errors.js';
11
+ // HTTP Client
12
+ export { HTTPClient } from './http.js';
13
+ // Billing API
14
+ export { Billing } from './billing.js';
15
+ // Jobs API
16
+ export { Jobs, findJob, findById, findByHostname, findByIp, isUuid, } from './jobs.js';
17
+ // Instances API
18
+ export { Instances, } from './instances.js';
19
+ // Renders API
20
+ export { Renders, } from './renders.js';
21
+ // Files API
22
+ export { Files, } from './files.js';
23
+ // Voice API
24
+ export { VoiceAPI, } from './voice.js';
25
+ // User API
26
+ export { UserAPI, } from './user.js';
27
+ // Keys API
28
+ export { KeysAPI, API_KEY_BASELINE_FAMILIES, } from './keys.js';
29
+ export { ModelsAPI, } from './models.js';
30
+ // Logs
31
+ export { LogStream, streamLogs, fetchLogs, } from './logs.js';
32
+ // HyperAgent
33
+ export { HyperAgent, } from './agent.js';
34
+ export { Deployments, Agent, OpenClawAgent, buildAgentConfig, buildOpenClawRoutes, } from './agents.js';
35
+ // Job helpers
36
+ export { BaseJob, } from './job/base.js';
37
+ export { ComfyUIJob, DEFAULT_OBJECT_INFO, findNode, findNodes, applyParams, applyGraphModes, graphToApi, } from './job/comfyui.js';
38
+ export { GradioJob, } from './job/gradio.js';
39
+ // x402 pay-per-use
40
+ export { X402Client, } from './x402.js';
41
+ export { GatewayClient, normalizeChatAttachments, extractGatewayChatThinking, extractGatewayChatMediaUrls, extractGatewayChatToolCalls, normalizeGatewayChatMessage, } from './openclaw/gateway.js';
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc;AACd,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA+B,MAAM,cAAc,CAAC;AAE5E,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,eAAe,EACf,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,SAAS;AACT,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,cAAc;AACd,OAAO,EAAE,OAAO,EAAkC,MAAM,cAAc,CAAC;AAEvE,WAAW;AACX,OAAO,EACL,IAAI,EASJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,MAAM,GACP,MAAM,WAAW,CAAC;AAEnB,gBAAgB;AAChB,OAAO,EACL,SAAS,GAOV,MAAM,gBAAgB,CAAC;AAExB,cAAc;AACd,OAAO,EACL,OAAO,GAGR,MAAM,cAAc,CAAC;AAEtB,YAAY;AACZ,OAAO,EACL,KAAK,GAEN,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EACL,QAAQ,GAIT,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EACL,OAAO,GAGR,MAAM,WAAW,CAAC;AAEnB,WAAW;AACX,OAAO,EACL,OAAO,EAIP,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,SAAS,GAEV,MAAM,aAAa,CAAC;AAErB,OAAO;AACP,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,WAAW,CAAC;AAEnB,aAAa;AACb,OAAO,EACL,UAAU,GA8BX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GAoBpB,MAAM,aAAa,CAAC;AAErB,cAAc;AACd,OAAO,EACL,OAAO,GAER,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,GAEV,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EACL,UAAU,GAOX,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EAUb,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Instances API - GPU types, regions, and pricing
3
+ */
4
+ import type { HTTPClient } from './http.js';
5
+ export interface GPUConfig {
6
+ gpuCount: number;
7
+ cpuCores: number;
8
+ memoryGb: number;
9
+ storageGb: number;
10
+ regions: string[];
11
+ constraints: Record<string, string> | null;
12
+ }
13
+ export interface GPUType {
14
+ id: string;
15
+ name: string;
16
+ description: string;
17
+ configs: GPUConfig[];
18
+ }
19
+ export interface Region {
20
+ id: string;
21
+ description: string;
22
+ country: string;
23
+ }
24
+ export interface PricingTier {
25
+ region: string;
26
+ onDemand: number | null;
27
+ interruptible: number | null;
28
+ }
29
+ export interface GPUPricing {
30
+ gpuType: string;
31
+ gpuCount: number;
32
+ tiers: PricingTier[];
33
+ }
34
+ export interface AvailableGPU {
35
+ gpuType: string;
36
+ gpuName: string;
37
+ gpuCount: number;
38
+ cpuCores: number;
39
+ memoryGb: number;
40
+ storageGb: number;
41
+ region: string;
42
+ regionName: string;
43
+ country: string;
44
+ priceSpot: number | null;
45
+ priceOnDemand: number | null;
46
+ }
47
+ export declare class Instances {
48
+ private http;
49
+ private typesCache;
50
+ private regionsCache;
51
+ private pricingCache;
52
+ constructor(http: HTTPClient);
53
+ /**
54
+ * Get available GPU types
55
+ */
56
+ types(refresh?: boolean): Promise<Record<string, GPUType>>;
57
+ /**
58
+ * Get available regions
59
+ */
60
+ regions(refresh?: boolean): Promise<Record<string, Region>>;
61
+ /**
62
+ * Get pricing information
63
+ */
64
+ pricing(refresh?: boolean): Promise<Record<string, GPUPricing>>;
65
+ /**
66
+ * Get a specific GPU type by ID
67
+ */
68
+ getType(gpuType: string): Promise<GPUType | null>;
69
+ /**
70
+ * Get a specific region by ID
71
+ */
72
+ getRegion(regionId: string): Promise<Region | null>;
73
+ /**
74
+ * Get price for a specific GPU configuration
75
+ */
76
+ getPrice(gpuType: string, gpuCount?: number, region?: string, interruptible?: boolean): Promise<number | null>;
77
+ /**
78
+ * Get real-time GPU capacity by type and region
79
+ */
80
+ capacity(gpuType?: string): Promise<any>;
81
+ /**
82
+ * List available GPU configurations, optionally filtered
83
+ */
84
+ listAvailable(gpuType?: string, region?: string): Promise<AvailableGPU[]>;
85
+ /**
86
+ * Get available regions for a GPU type and count
87
+ */
88
+ availableRegions(gpu: GPUType, gpuCount?: number): string[];
89
+ /**
90
+ * Get available GPU counts for a type
91
+ */
92
+ availableCounts(gpu: GPUType): number[];
93
+ }
94
+ //# sourceMappingURL=instances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../src/instances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ function gpuConfigFromDict(data) {
2
+ return {
3
+ gpuCount: data.gpu_count || 1,
4
+ cpuCores: data.cpu_cores || 0,
5
+ memoryGb: data.memory_gb || 0,
6
+ storageGb: data.storage_gb || 0,
7
+ regions: data.regions || [],
8
+ constraints: data.constraints || null,
9
+ };
10
+ }
11
+ function gpuTypeFromDict(id, data) {
12
+ return {
13
+ id,
14
+ name: data.name || id,
15
+ description: data.description || '',
16
+ configs: (data.configs || []).map(gpuConfigFromDict),
17
+ };
18
+ }
19
+ function regionFromDict(id, data) {
20
+ return {
21
+ id,
22
+ description: data.description || id,
23
+ country: data.country || '',
24
+ };
25
+ }
26
+ function pricingTierFromDict(region, data) {
27
+ return {
28
+ region,
29
+ onDemand: data['on-demand'] ?? null,
30
+ interruptible: data.interruptable ?? null, // Note: API has typo
31
+ };
32
+ }
33
+ function gpuPricingFromKey(key, data) {
34
+ // Parse key like "h100_x8" -> gpu_type="h100", gpu_count=8
35
+ const parts = key.split('_x');
36
+ const gpuType = parts[0];
37
+ const gpuCount = parts.length > 1 ? parseInt(parts[1]) : 1;
38
+ const tiers = Object.entries(data).map(([region, prices]) => pricingTierFromDict(region, prices));
39
+ return { gpuType, gpuCount, tiers };
40
+ }
41
+ export class Instances {
42
+ http;
43
+ typesCache = null;
44
+ regionsCache = null;
45
+ pricingCache = null;
46
+ constructor(http) {
47
+ this.http = http;
48
+ }
49
+ /**
50
+ * Get available GPU types
51
+ */
52
+ async types(refresh = false) {
53
+ if (this.typesCache === null || refresh) {
54
+ const data = await this.http.get('/instances/types');
55
+ this.typesCache = {};
56
+ for (const [id, info] of Object.entries(data)) {
57
+ this.typesCache[id] = gpuTypeFromDict(id, info);
58
+ }
59
+ }
60
+ return this.typesCache;
61
+ }
62
+ /**
63
+ * Get available regions
64
+ */
65
+ async regions(refresh = false) {
66
+ if (this.regionsCache === null || refresh) {
67
+ const data = await this.http.get('/instances/regions');
68
+ this.regionsCache = {};
69
+ for (const [id, info] of Object.entries(data)) {
70
+ this.regionsCache[id] = regionFromDict(id, info);
71
+ }
72
+ }
73
+ return this.regionsCache;
74
+ }
75
+ /**
76
+ * Get pricing information
77
+ */
78
+ async pricing(refresh = false) {
79
+ if (this.pricingCache === null || refresh) {
80
+ const data = await this.http.get('/instances/pricing');
81
+ this.pricingCache = {};
82
+ for (const [key, prices] of Object.entries(data)) {
83
+ this.pricingCache[key] = gpuPricingFromKey(key, prices);
84
+ }
85
+ }
86
+ return this.pricingCache;
87
+ }
88
+ /**
89
+ * Get a specific GPU type by ID
90
+ */
91
+ async getType(gpuType) {
92
+ const types = await this.types();
93
+ return types[gpuType] || null;
94
+ }
95
+ /**
96
+ * Get a specific region by ID
97
+ */
98
+ async getRegion(regionId) {
99
+ const regions = await this.regions();
100
+ return regions[regionId] || null;
101
+ }
102
+ /**
103
+ * Get price for a specific GPU configuration
104
+ */
105
+ async getPrice(gpuType, gpuCount = 1, region, interruptible = true) {
106
+ const key = `${gpuType}_x${gpuCount}`;
107
+ const pricing = await this.pricing();
108
+ const gpuPricing = pricing[key];
109
+ if (gpuPricing && region) {
110
+ for (const tier of gpuPricing.tiers) {
111
+ if (tier.region === region) {
112
+ return interruptible ? tier.interruptible : tier.onDemand;
113
+ }
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Get real-time GPU capacity by type and region
120
+ */
121
+ async capacity(gpuType) {
122
+ const params = {};
123
+ if (gpuType) {
124
+ params.gpu_type = gpuType;
125
+ }
126
+ return await this.http.get('/api/jobs/instances/capacity', params);
127
+ }
128
+ /**
129
+ * List available GPU configurations, optionally filtered
130
+ */
131
+ async listAvailable(gpuType, region) {
132
+ const types = await this.types();
133
+ const regions = await this.regions();
134
+ const pricing = await this.pricing();
135
+ const results = [];
136
+ for (const [typeId, gpu] of Object.entries(types)) {
137
+ if (gpuType && typeId !== gpuType)
138
+ continue;
139
+ for (const config of gpu.configs) {
140
+ if (!config.regions.length)
141
+ continue;
142
+ if (region && !config.regions.includes(region))
143
+ continue;
144
+ const key = `${typeId}_x${config.gpuCount}`;
145
+ const gpuPricing = pricing[key];
146
+ for (const r of config.regions) {
147
+ if (region && r !== region)
148
+ continue;
149
+ const regionInfo = regions[r];
150
+ let priceSpot = null;
151
+ let priceOnDemand = null;
152
+ if (gpuPricing) {
153
+ for (const tier of gpuPricing.tiers) {
154
+ if (tier.region === r) {
155
+ priceSpot = tier.interruptible;
156
+ priceOnDemand = tier.onDemand;
157
+ break;
158
+ }
159
+ }
160
+ }
161
+ results.push({
162
+ gpuType: typeId,
163
+ gpuName: gpu.name,
164
+ gpuCount: config.gpuCount,
165
+ cpuCores: config.cpuCores,
166
+ memoryGb: config.memoryGb,
167
+ storageGb: config.storageGb,
168
+ region: r,
169
+ regionName: regionInfo?.description || r,
170
+ country: regionInfo?.country || '',
171
+ priceSpot,
172
+ priceOnDemand,
173
+ });
174
+ }
175
+ }
176
+ }
177
+ return results;
178
+ }
179
+ /**
180
+ * Get available regions for a GPU type and count
181
+ */
182
+ availableRegions(gpu, gpuCount = 1) {
183
+ for (const config of gpu.configs) {
184
+ if (config.gpuCount === gpuCount) {
185
+ return config.regions;
186
+ }
187
+ }
188
+ return [];
189
+ }
190
+ /**
191
+ * Get available GPU counts for a type
192
+ */
193
+ availableCounts(gpu) {
194
+ return gpu.configs.filter(c => c.regions.length > 0).map(c => c.gpuCount);
195
+ }
196
+ }
197
+ //# sourceMappingURL=instances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.js","sourceRoot":"","sources":["../src/instances.ts"],"names":[],"mappings":"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"}