@hypercli.com/sdk 2026.4.5 → 2026.4.7-1

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 (89) hide show
  1. package/package.json +5 -1
  2. package/dist/agent.d.ts +0 -66
  3. package/dist/agent.d.ts.map +0 -1
  4. package/dist/agent.js +0 -152
  5. package/dist/agent.js.map +0 -1
  6. package/dist/agents.d.ts +0 -372
  7. package/dist/agents.d.ts.map +0 -1
  8. package/dist/agents.js +0 -1109
  9. package/dist/agents.js.map +0 -1
  10. package/dist/billing.d.ts +0 -72
  11. package/dist/billing.d.ts.map +0 -1
  12. package/dist/billing.js +0 -93
  13. package/dist/billing.js.map +0 -1
  14. package/dist/browser.d.ts +0 -25
  15. package/dist/browser.d.ts.map +0 -1
  16. package/dist/browser.js +0 -33
  17. package/dist/browser.js.map +0 -1
  18. package/dist/client.d.ts +0 -65
  19. package/dist/client.d.ts.map +0 -1
  20. package/dist/client.js +0 -98
  21. package/dist/client.js.map +0 -1
  22. package/dist/config.d.ts +0 -46
  23. package/dist/config.d.ts.map +0 -1
  24. package/dist/config.js +0 -235
  25. package/dist/config.js.map +0 -1
  26. package/dist/errors.d.ts +0 -9
  27. package/dist/errors.d.ts.map +0 -1
  28. package/dist/errors.js +0 -15
  29. package/dist/errors.js.map +0 -1
  30. package/dist/files.d.ts +0 -60
  31. package/dist/files.d.ts.map +0 -1
  32. package/dist/files.js +0 -128
  33. package/dist/files.js.map +0 -1
  34. package/dist/gateway.d.ts +0 -269
  35. package/dist/gateway.d.ts.map +0 -1
  36. package/dist/gateway.js +0 -2020
  37. package/dist/gateway.js.map +0 -1
  38. package/dist/http.d.ts +0 -42
  39. package/dist/http.d.ts.map +0 -1
  40. package/dist/http.js +0 -238
  41. package/dist/http.js.map +0 -1
  42. package/dist/index.d.ts +0 -25
  43. package/dist/index.d.ts.map +0 -1
  44. package/dist/index.js +0 -41
  45. package/dist/index.js.map +0 -1
  46. package/dist/instances.d.ts +0 -94
  47. package/dist/instances.d.ts.map +0 -1
  48. package/dist/instances.js +0 -197
  49. package/dist/instances.js.map +0 -1
  50. package/dist/job/base.d.ts +0 -80
  51. package/dist/job/base.d.ts.map +0 -1
  52. package/dist/job/base.js +0 -200
  53. package/dist/job/base.js.map +0 -1
  54. package/dist/job/comfyui.d.ts +0 -75
  55. package/dist/job/comfyui.d.ts.map +0 -1
  56. package/dist/job/comfyui.js +0 -454
  57. package/dist/job/comfyui.js.map +0 -1
  58. package/dist/job/gradio.d.ts +0 -48
  59. package/dist/job/gradio.d.ts.map +0 -1
  60. package/dist/job/gradio.js +0 -90
  61. package/dist/job/gradio.js.map +0 -1
  62. package/dist/jobs.d.ts +0 -153
  63. package/dist/jobs.d.ts.map +0 -1
  64. package/dist/jobs.js +0 -352
  65. package/dist/jobs.js.map +0 -1
  66. package/dist/keys.d.ts +0 -83
  67. package/dist/keys.d.ts.map +0 -1
  68. package/dist/keys.js +0 -69
  69. package/dist/keys.js.map +0 -1
  70. package/dist/logs.d.ts +0 -54
  71. package/dist/logs.d.ts.map +0 -1
  72. package/dist/logs.js +0 -256
  73. package/dist/logs.js.map +0 -1
  74. package/dist/renders.d.ts +0 -177
  75. package/dist/renders.d.ts.map +0 -1
  76. package/dist/renders.js +0 -310
  77. package/dist/renders.js.map +0 -1
  78. package/dist/user.d.ts +0 -49
  79. package/dist/user.d.ts.map +0 -1
  80. package/dist/user.js +0 -57
  81. package/dist/user.js.map +0 -1
  82. package/dist/voice.d.ts +0 -31
  83. package/dist/voice.d.ts.map +0 -1
  84. package/dist/voice.js +0 -36
  85. package/dist/voice.js.map +0 -1
  86. package/dist/x402.d.ts +0 -79
  87. package/dist/x402.d.ts.map +0 -1
  88. package/dist/x402.js +0 -295
  89. package/dist/x402.js.map +0 -1
@@ -1,94 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../src/instances.ts"],"names":[],"mappings":"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"}
package/dist/instances.js DELETED
@@ -1,197 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"instances.js","sourceRoot":"","sources":["../src/instances.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- /**
2
- * Base job class for GPU workloads
3
- */
4
- import type { HyperCLI } from '../client.js';
5
- import type { Job } from '../jobs.js';
6
- export interface BaseJobOptions {
7
- image?: string;
8
- gpuType?: string;
9
- gpuCount?: number;
10
- runtime?: number;
11
- [key: string]: any;
12
- }
13
- /**
14
- * Base class for managed GPU jobs with lifecycle helpers
15
- */
16
- export declare class BaseJob {
17
- client: HyperCLI;
18
- job: Job;
19
- static DEFAULT_IMAGE: string;
20
- static DEFAULT_GPU_TYPE: string;
21
- static HEALTH_ENDPOINT: string;
22
- static HEALTH_TIMEOUT: number;
23
- protected _baseUrl: string | null;
24
- constructor(client: HyperCLI, job: Job);
25
- get jobId(): string;
26
- get hostname(): string | null;
27
- get baseUrl(): string;
28
- get authHeaders(): Record<string, string>;
29
- /**
30
- * Find an existing running job, optionally filtering by image
31
- */
32
- static getRunning<T extends typeof BaseJob>(this: T, client: HyperCLI, imageFilter?: string): Promise<InstanceType<T> | null>;
33
- /**
34
- * Get a job by ID, hostname, or IP address
35
- */
36
- static getByInstance<T extends typeof BaseJob>(this: T, client: HyperCLI, instance: string, state?: string): Promise<InstanceType<T>>;
37
- /**
38
- * Create a new job
39
- */
40
- static create<T extends typeof BaseJob>(this: T, client: HyperCLI, options?: BaseJobOptions): Promise<InstanceType<T>>;
41
- /**
42
- * Get existing running job or create new one
43
- */
44
- static getOrCreate<T extends typeof BaseJob>(this: T, client: HyperCLI, options?: BaseJobOptions & {
45
- reuse?: boolean;
46
- }): Promise<InstanceType<T>>;
47
- /**
48
- * Refresh job state from API
49
- */
50
- refresh(): Promise<this>;
51
- /**
52
- * Wait for job to reach running state via API polling
53
- */
54
- waitForRunning(timeout?: number, pollInterval?: number): Promise<boolean>;
55
- /**
56
- * Alias for waitForRunning
57
- */
58
- waitForHostname(timeout?: number, pollInterval?: number): Promise<boolean>;
59
- /**
60
- * Check if the service is responding
61
- */
62
- checkHealth(): Promise<boolean>;
63
- /**
64
- * Wait for an EXISTING running job to respond to health checks
65
- */
66
- waitExisting(timeout?: number): Promise<boolean>;
67
- /**
68
- * Wait for a NEW job to be ready (running state + health check passing)
69
- */
70
- waitReady(timeout?: number, pollInterval?: number, dnsDelay?: number): Promise<boolean>;
71
- /**
72
- * Cancel the job
73
- */
74
- shutdown(): Promise<any>;
75
- /**
76
- * Extend job runtime
77
- */
78
- extend(runtime: number): Promise<this>;
79
- }
80
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/job/base.ts"],"names":[],"mappings":"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"}
package/dist/job/base.js DELETED
@@ -1,200 +0,0 @@
1
- import { findJob } from '../jobs.js';
2
- import { requestWithRetry } from '../http.js';
3
- /**
4
- * Base class for managed GPU jobs with lifecycle helpers
5
- */
6
- export class BaseJob {
7
- client;
8
- job;
9
- static DEFAULT_IMAGE = '';
10
- static DEFAULT_GPU_TYPE = 'l40s';
11
- static HEALTH_ENDPOINT = '/';
12
- static HEALTH_TIMEOUT = 5000;
13
- _baseUrl = null;
14
- constructor(client, job) {
15
- this.client = client;
16
- this.job = job;
17
- }
18
- get jobId() {
19
- return this.job.jobId;
20
- }
21
- get hostname() {
22
- return this.job.hostname;
23
- }
24
- get baseUrl() {
25
- if (!this._baseUrl && this.hostname) {
26
- this._baseUrl = `http://${this.hostname}`;
27
- }
28
- return this._baseUrl || '';
29
- }
30
- get authHeaders() {
31
- return { 'Authorization': `Bearer ${this.client.apiKey}` };
32
- }
33
- /**
34
- * Find an existing running job, optionally filtering by image
35
- */
36
- static async getRunning(client, imageFilter) {
37
- const jobs = await client.jobs.list('running');
38
- for (const job of jobs) {
39
- if (imageFilter && !job.dockerImage.includes(imageFilter)) {
40
- continue;
41
- }
42
- return new this(client, job);
43
- }
44
- return null;
45
- }
46
- /**
47
- * Get a job by ID, hostname, or IP address
48
- */
49
- static async getByInstance(client, instance, state = 'running') {
50
- const job = await findJob(client.jobs, instance, state);
51
- if (!job) {
52
- throw new Error(`No job found matching: ${instance}`);
53
- }
54
- return new this(client, job);
55
- }
56
- /**
57
- * Create a new job
58
- */
59
- static async create(client, options = {}) {
60
- const { image, gpuType, gpuCount = 1, runtime = 3600, ...kwargs } = options;
61
- const job = await client.jobs.create({
62
- image: image || this.DEFAULT_IMAGE,
63
- gpuType: gpuType || this.DEFAULT_GPU_TYPE,
64
- gpuCount,
65
- runtime,
66
- ...kwargs,
67
- });
68
- return new this(client, job);
69
- }
70
- /**
71
- * Get existing running job or create new one
72
- */
73
- static async getOrCreate(client, options = {}) {
74
- const { reuse = true, image, ...restOptions } = options;
75
- if (reuse) {
76
- const existing = await this.getRunning(client, image || this.DEFAULT_IMAGE);
77
- if (existing) {
78
- return existing;
79
- }
80
- }
81
- return this.create(client, { image, ...restOptions });
82
- }
83
- /**
84
- * Refresh job state from API
85
- */
86
- async refresh() {
87
- this.job = await this.client.jobs.get(this.jobId);
88
- this._baseUrl = null;
89
- return this;
90
- }
91
- /**
92
- * Wait for job to reach running state via API polling
93
- */
94
- async waitForRunning(timeout = 300000, pollInterval = 5000) {
95
- const start = Date.now();
96
- while (Date.now() - start < timeout) {
97
- await this.refresh();
98
- if (this.job.state === 'running' && this.hostname) {
99
- return true;
100
- }
101
- if (['failed', 'cancelled', 'completed', 'terminated'].includes(this.job.state)) {
102
- return false;
103
- }
104
- await new Promise(resolve => setTimeout(resolve, pollInterval));
105
- }
106
- return false;
107
- }
108
- /**
109
- * Alias for waitForRunning
110
- */
111
- async waitForHostname(timeout = 300000, pollInterval = 5000) {
112
- return this.waitForRunning(timeout, pollInterval);
113
- }
114
- /**
115
- * Check if the service is responding
116
- */
117
- async checkHealth() {
118
- if (!this.baseUrl || this.job.state !== 'running') {
119
- return false;
120
- }
121
- try {
122
- const Constructor = this.constructor;
123
- const response = await requestWithRetry({
124
- method: 'GET',
125
- url: `${this.baseUrl}${Constructor.HEALTH_ENDPOINT}`,
126
- headers: this.authHeaders,
127
- timeout: Constructor.HEALTH_TIMEOUT,
128
- retries: 3,
129
- });
130
- return response.status === 200;
131
- }
132
- catch {
133
- return false;
134
- }
135
- }
136
- /**
137
- * Wait for an EXISTING running job to respond to health checks
138
- */
139
- async waitExisting(timeout = 15000) {
140
- await this.refresh();
141
- if (this.job.state !== 'running' || !this.hostname) {
142
- return false;
143
- }
144
- const start = Date.now();
145
- while (Date.now() - start < timeout) {
146
- if (await this.checkHealth()) {
147
- return true;
148
- }
149
- await new Promise(resolve => setTimeout(resolve, 2000));
150
- }
151
- return false;
152
- }
153
- /**
154
- * Wait for a NEW job to be ready (running state + health check passing)
155
- */
156
- async waitReady(timeout = 300000, pollInterval = 5000, dnsDelay = 15000) {
157
- const start = Date.now();
158
- // Wait for running state via API
159
- await this.refresh();
160
- if (['failed', 'cancelled', 'completed', 'terminated'].includes(this.job.state)) {
161
- return false;
162
- }
163
- if (this.job.state !== 'running' || !this.hostname) {
164
- if (!await this.waitForRunning(timeout, pollInterval)) {
165
- return false;
166
- }
167
- }
168
- // DNS propagation delay
169
- if (dnsDelay > 0) {
170
- await new Promise(resolve => setTimeout(resolve, dnsDelay));
171
- }
172
- // Job is running, check health
173
- const elapsed = Date.now() - start;
174
- const remaining = timeout - elapsed;
175
- while (remaining > 0) {
176
- if (await this.checkHealth()) {
177
- return true;
178
- }
179
- await new Promise(resolve => setTimeout(resolve, 2000));
180
- const newRemaining = timeout - (Date.now() - start);
181
- if (newRemaining <= 0)
182
- break;
183
- }
184
- return false;
185
- }
186
- /**
187
- * Cancel the job
188
- */
189
- async shutdown() {
190
- return await this.client.jobs.cancel(this.jobId);
191
- }
192
- /**
193
- * Extend job runtime
194
- */
195
- async extend(runtime) {
196
- this.job = await this.client.jobs.extend(this.jobId, runtime);
197
- return this;
198
- }
199
- }
200
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/job/base.ts"],"names":[],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- /**
2
- * ComfyUI job helpers and workflow conversion utilities
3
- */
4
- import type { HyperCLI } from '../client.js';
5
- import type { Job } from '../jobs.js';
6
- import { BaseJob } from './base.js';
7
- export declare const DEFAULT_OBJECT_INFO: Record<string, any>;
8
- /**
9
- * Find nodes in API-format workflow by class_type and optional title pattern
10
- */
11
- export declare function findNodes(workflow: Record<string, any>, classType: string, titleContains?: string): Array<[string, any]>;
12
- /**
13
- * Find first node matching class_type and optional title pattern
14
- */
15
- export declare function findNode(workflow: Record<string, any>, classType: string, titleContains?: string): [string, any] | [null, null];
16
- /**
17
- * Apply parameters to workflow nodes
18
- */
19
- export declare function applyParams(workflow: Record<string, any>, params: Record<string, any>): Record<string, any>;
20
- /**
21
- * Convert ComfyUI graph format to API format
22
- */
23
- export declare function graphToApi(graph: any, objectInfo?: Record<string, any>, _debug?: boolean): Record<string, any>;
24
- /**
25
- * Apply graph modes (enable/disable nodes)
26
- */
27
- export declare function applyGraphModes(graph: any, nodesConfig: Record<string, any>): any;
28
- /**
29
- * ComfyUI-specific job with workflow execution helpers
30
- */
31
- export declare class ComfyUIJob extends BaseJob {
32
- static DEFAULT_IMAGE: string;
33
- static DEFAULT_GPU_TYPE: string;
34
- static HEALTH_ENDPOINT: string;
35
- static COMFYUI_PORT: number;
36
- private _objectInfo;
37
- private _jobToken;
38
- private _useLb;
39
- useAuth: boolean;
40
- template: string | null;
41
- constructor(client: HyperCLI, job: Job, template?: string, useLb?: boolean, useAuth?: boolean);
42
- get useLb(): boolean;
43
- set useLb(value: boolean);
44
- get baseUrl(): string;
45
- get authHeaders(): Record<string, string>;
46
- jobToken(): Promise<string>;
47
- /**
48
- * Create a new ComfyUI job configured for a specific template
49
- */
50
- static createForTemplate(client: HyperCLI, template: string, options?: {
51
- gpuType?: string;
52
- gpuCount?: number;
53
- runtime?: number;
54
- lb?: number;
55
- auth?: boolean;
56
- [key: string]: any;
57
- }): Promise<ComfyUIJob>;
58
- /**
59
- * Get object_info from ComfyUI (cached)
60
- */
61
- getObjectInfo(refresh?: boolean): Promise<Record<string, any>>;
62
- /**
63
- * Convert graph format workflow to API format
64
- */
65
- convertWorkflow(graph: any, debug?: boolean): Promise<Record<string, any>>;
66
- /**
67
- * Upload image to ComfyUI server
68
- */
69
- uploadImage(filePath: string, filename?: string): Promise<string>;
70
- /**
71
- * Upload audio to ComfyUI server
72
- */
73
- uploadAudio(filePath: string, filename?: string): Promise<string>;
74
- }
75
- //# sourceMappingURL=comfyui.d.ts.map