@hypercli.com/sdk 0.9.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 (193) hide show
  1. package/README.md +629 -0
  2. package/dist/acp-driver.d.ts +72 -0
  3. package/dist/acp-driver.d.ts.map +1 -0
  4. package/dist/acp-driver.js +147 -0
  5. package/dist/acp-driver.js.map +1 -0
  6. package/dist/acp-pool.d.ts +70 -0
  7. package/dist/acp-pool.d.ts.map +1 -0
  8. package/dist/acp-pool.js +181 -0
  9. package/dist/acp-pool.js.map +1 -0
  10. package/dist/acp.d.ts +179 -0
  11. package/dist/acp.d.ts.map +1 -0
  12. package/dist/acp.js +487 -0
  13. package/dist/acp.js.map +1 -0
  14. package/dist/agent-persona.d.ts +68 -0
  15. package/dist/agent-persona.d.ts.map +1 -0
  16. package/dist/agent-persona.js +78 -0
  17. package/dist/agent-persona.js.map +1 -0
  18. package/dist/agent-slots.d.ts +18 -0
  19. package/dist/agent-slots.d.ts.map +1 -0
  20. package/dist/agent-slots.js +24 -0
  21. package/dist/agent-slots.js.map +1 -0
  22. package/dist/agent-urls.d.ts +47 -0
  23. package/dist/agent-urls.d.ts.map +1 -0
  24. package/dist/agent-urls.js +178 -0
  25. package/dist/agent-urls.js.map +1 -0
  26. package/dist/agent.d.ts +482 -0
  27. package/dist/agent.d.ts.map +1 -0
  28. package/dist/agent.js +926 -0
  29. package/dist/agent.js.map +1 -0
  30. package/dist/agents.d.ts +1452 -0
  31. package/dist/agents.d.ts.map +1 -0
  32. package/dist/agents.js +4022 -0
  33. package/dist/agents.js.map +1 -0
  34. package/dist/billing.d.ts +72 -0
  35. package/dist/billing.d.ts.map +1 -0
  36. package/dist/billing.js +93 -0
  37. package/dist/billing.js.map +1 -0
  38. package/dist/browser-jobs.d.ts +24 -0
  39. package/dist/browser-jobs.d.ts.map +1 -0
  40. package/dist/browser-jobs.js +209 -0
  41. package/dist/browser-jobs.js.map +1 -0
  42. package/dist/browser.d.ts +41 -0
  43. package/dist/browser.d.ts.map +1 -0
  44. package/dist/browser.js +57 -0
  45. package/dist/browser.js.map +1 -0
  46. package/dist/buzz-activity.d.ts +169 -0
  47. package/dist/buzz-activity.d.ts.map +1 -0
  48. package/dist/buzz-activity.js +844 -0
  49. package/dist/buzz-activity.js.map +1 -0
  50. package/dist/channels.d.ts +99 -0
  51. package/dist/channels.d.ts.map +1 -0
  52. package/dist/channels.js +27 -0
  53. package/dist/channels.js.map +1 -0
  54. package/dist/chat-integrations.d.ts +44 -0
  55. package/dist/chat-integrations.d.ts.map +1 -0
  56. package/dist/chat-integrations.js +138 -0
  57. package/dist/chat-integrations.js.map +1 -0
  58. package/dist/client.d.ts +88 -0
  59. package/dist/client.d.ts.map +1 -0
  60. package/dist/client.js +144 -0
  61. package/dist/client.js.map +1 -0
  62. package/dist/config.d.ts +44 -0
  63. package/dist/config.d.ts.map +1 -0
  64. package/dist/config.js +192 -0
  65. package/dist/config.js.map +1 -0
  66. package/dist/connectors.d.ts +80 -0
  67. package/dist/connectors.d.ts.map +1 -0
  68. package/dist/connectors.js +2 -0
  69. package/dist/connectors.js.map +1 -0
  70. package/dist/errors.d.ts +16 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/errors.js +26 -0
  73. package/dist/errors.js.map +1 -0
  74. package/dist/files.d.ts +60 -0
  75. package/dist/files.d.ts.map +1 -0
  76. package/dist/files.js +128 -0
  77. package/dist/files.js.map +1 -0
  78. package/dist/http.d.ts +56 -0
  79. package/dist/http.d.ts.map +1 -0
  80. package/dist/http.js +362 -0
  81. package/dist/http.js.map +1 -0
  82. package/dist/index.d.ts +49 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +64 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/instances.d.ts +94 -0
  87. package/dist/instances.d.ts.map +1 -0
  88. package/dist/instances.js +197 -0
  89. package/dist/instances.js.map +1 -0
  90. package/dist/integrations.d.ts +111 -0
  91. package/dist/integrations.d.ts.map +1 -0
  92. package/dist/integrations.js +206 -0
  93. package/dist/integrations.js.map +1 -0
  94. package/dist/job/base.d.ts +86 -0
  95. package/dist/job/base.d.ts.map +1 -0
  96. package/dist/job/base.js +206 -0
  97. package/dist/job/base.js.map +1 -0
  98. package/dist/job/comfyui.d.ts +259 -0
  99. package/dist/job/comfyui.d.ts.map +1 -0
  100. package/dist/job/comfyui.js +1563 -0
  101. package/dist/job/comfyui.js.map +1 -0
  102. package/dist/job/gradio.d.ts +48 -0
  103. package/dist/job/gradio.d.ts.map +1 -0
  104. package/dist/job/gradio.js +90 -0
  105. package/dist/job/gradio.js.map +1 -0
  106. package/dist/job-codecs.d.ts +66 -0
  107. package/dist/job-codecs.d.ts.map +1 -0
  108. package/dist/job-codecs.js +132 -0
  109. package/dist/job-codecs.js.map +1 -0
  110. package/dist/jobs.d.ts +148 -0
  111. package/dist/jobs.d.ts.map +1 -0
  112. package/dist/jobs.js +480 -0
  113. package/dist/jobs.js.map +1 -0
  114. package/dist/keys.d.ts +99 -0
  115. package/dist/keys.d.ts.map +1 -0
  116. package/dist/keys.js +145 -0
  117. package/dist/keys.js.map +1 -0
  118. package/dist/logs.d.ts +54 -0
  119. package/dist/logs.d.ts.map +1 -0
  120. package/dist/logs.js +256 -0
  121. package/dist/logs.js.map +1 -0
  122. package/dist/managed-context.d.ts +20 -0
  123. package/dist/managed-context.d.ts.map +1 -0
  124. package/dist/managed-context.js +95 -0
  125. package/dist/managed-context.js.map +1 -0
  126. package/dist/mcp.d.ts +7 -0
  127. package/dist/mcp.d.ts.map +1 -0
  128. package/dist/mcp.js +8 -0
  129. package/dist/mcp.js.map +1 -0
  130. package/dist/memory.d.ts +87 -0
  131. package/dist/memory.d.ts.map +1 -0
  132. package/dist/memory.js +79 -0
  133. package/dist/memory.js.map +1 -0
  134. package/dist/models.d.ts +15 -0
  135. package/dist/models.d.ts.map +1 -0
  136. package/dist/models.js +19 -0
  137. package/dist/models.js.map +1 -0
  138. package/dist/openclaw-control-ui-origin.d.ts +23 -0
  139. package/dist/openclaw-control-ui-origin.d.ts.map +1 -0
  140. package/dist/openclaw-control-ui-origin.js +53 -0
  141. package/dist/openclaw-control-ui-origin.js.map +1 -0
  142. package/dist/renders.d.ts +187 -0
  143. package/dist/renders.d.ts.map +1 -0
  144. package/dist/renders.js +360 -0
  145. package/dist/renders.js.map +1 -0
  146. package/dist/routines.d.ts +59 -0
  147. package/dist/routines.d.ts.map +1 -0
  148. package/dist/routines.js +135 -0
  149. package/dist/routines.js.map +1 -0
  150. package/dist/runners.d.ts +61 -0
  151. package/dist/runners.d.ts.map +1 -0
  152. package/dist/runners.js +127 -0
  153. package/dist/runners.js.map +1 -0
  154. package/dist/sessions.d.ts +280 -0
  155. package/dist/sessions.d.ts.map +1 -0
  156. package/dist/sessions.js +292 -0
  157. package/dist/sessions.js.map +1 -0
  158. package/dist/skills.d.ts +170 -0
  159. package/dist/skills.d.ts.map +1 -0
  160. package/dist/skills.js +2 -0
  161. package/dist/skills.js.map +1 -0
  162. package/dist/user.d.ts +78 -0
  163. package/dist/user.d.ts.map +1 -0
  164. package/dist/user.js +143 -0
  165. package/dist/user.js.map +1 -0
  166. package/dist/version.d.ts +2 -0
  167. package/dist/version.d.ts.map +1 -0
  168. package/dist/version.js +3 -0
  169. package/dist/version.js.map +1 -0
  170. package/dist/voice-session.d.ts +66 -0
  171. package/dist/voice-session.d.ts.map +1 -0
  172. package/dist/voice-session.js +366 -0
  173. package/dist/voice-session.js.map +1 -0
  174. package/dist/voice-transcription-session.d.ts +64 -0
  175. package/dist/voice-transcription-session.d.ts.map +1 -0
  176. package/dist/voice-transcription-session.js +228 -0
  177. package/dist/voice-transcription-session.js.map +1 -0
  178. package/dist/voice.d.ts +62 -0
  179. package/dist/voice.d.ts.map +1 -0
  180. package/dist/voice.js +134 -0
  181. package/dist/voice.js.map +1 -0
  182. package/dist/workspace-tomd.d.ts +61 -0
  183. package/dist/workspace-tomd.d.ts.map +1 -0
  184. package/dist/workspace-tomd.js +177 -0
  185. package/dist/workspace-tomd.js.map +1 -0
  186. package/dist/workspaces.d.ts +255 -0
  187. package/dist/workspaces.d.ts.map +1 -0
  188. package/dist/workspaces.js +653 -0
  189. package/dist/workspaces.js.map +1 -0
  190. package/package.json +115 -0
  191. package/runtime/config-require.browser.js +4 -0
  192. package/runtime/config-require.d.ts +2 -0
  193. package/runtime/config-require.node.js +8 -0
@@ -0,0 +1,206 @@
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
+ /**
14
+ * Consumer-side hostname settling window. The API returns after committing
15
+ * the Cloudflare record; waiting before the first lookup avoids caching a
16
+ * transient NXDOMAIN in recursive resolvers.
17
+ */
18
+ static DEFAULT_HOSTNAME_SETTLE_DELAY = 15000;
19
+ _baseUrl = null;
20
+ constructor(client, job) {
21
+ this.client = client;
22
+ this.job = job;
23
+ }
24
+ get jobId() {
25
+ return this.job.jobId;
26
+ }
27
+ get hostname() {
28
+ return this.job.hostname;
29
+ }
30
+ get baseUrl() {
31
+ if (!this._baseUrl && this.hostname) {
32
+ this._baseUrl = `http://${this.hostname}`;
33
+ }
34
+ return this._baseUrl || '';
35
+ }
36
+ get authHeaders() {
37
+ return { 'Authorization': `Bearer ${this.client.apiKey}` };
38
+ }
39
+ /**
40
+ * Find an existing running job, optionally filtering by image
41
+ */
42
+ static async getRunning(client, imageFilter) {
43
+ const jobs = await client.jobs.list('running');
44
+ for (const job of jobs) {
45
+ if (imageFilter && !job.dockerImage.includes(imageFilter)) {
46
+ continue;
47
+ }
48
+ return new this(client, job);
49
+ }
50
+ return null;
51
+ }
52
+ /**
53
+ * Get a job by ID, hostname, or IP address
54
+ */
55
+ static async getByInstance(client, instance, state = 'running') {
56
+ const job = await findJob(client.jobs, instance, state);
57
+ if (!job) {
58
+ throw new Error(`No job found matching: ${instance}`);
59
+ }
60
+ return new this(client, job);
61
+ }
62
+ /**
63
+ * Create a new job
64
+ */
65
+ static async create(client, options = {}) {
66
+ const { image, gpuType, gpuCount = 1, runtime = 3600, ...kwargs } = options;
67
+ const job = await client.jobs.create({
68
+ image: image || this.DEFAULT_IMAGE,
69
+ gpuType: gpuType || this.DEFAULT_GPU_TYPE,
70
+ gpuCount,
71
+ runtime,
72
+ ...kwargs,
73
+ });
74
+ return new this(client, job);
75
+ }
76
+ /**
77
+ * Get existing running job or create new one
78
+ */
79
+ static async getOrCreate(client, options = {}) {
80
+ const { reuse = true, image, ...restOptions } = options;
81
+ if (reuse) {
82
+ const existing = await this.getRunning(client, image || this.DEFAULT_IMAGE);
83
+ if (existing) {
84
+ return existing;
85
+ }
86
+ }
87
+ return this.create(client, { image, ...restOptions });
88
+ }
89
+ /**
90
+ * Refresh job state from API
91
+ */
92
+ async refresh() {
93
+ this.job = await this.client.jobs.get(this.jobId);
94
+ this._baseUrl = null;
95
+ return this;
96
+ }
97
+ /**
98
+ * Wait for job to reach running state via API polling
99
+ */
100
+ async waitForRunning(timeout = 300000, pollInterval = 5000) {
101
+ const start = Date.now();
102
+ while (Date.now() - start < timeout) {
103
+ await this.refresh();
104
+ if (this.job.state === 'running' && this.hostname) {
105
+ return true;
106
+ }
107
+ if (['failed', 'cancelled', 'completed', 'terminated'].includes(this.job.state)) {
108
+ return false;
109
+ }
110
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
111
+ }
112
+ return false;
113
+ }
114
+ /**
115
+ * Alias for waitForRunning
116
+ */
117
+ async waitForHostname(timeout = 300000, pollInterval = 5000) {
118
+ return this.waitForRunning(timeout, pollInterval);
119
+ }
120
+ /**
121
+ * Check if the service is responding
122
+ */
123
+ async checkHealth() {
124
+ if (!this.baseUrl || this.job.state !== 'running') {
125
+ return false;
126
+ }
127
+ try {
128
+ const Constructor = this.constructor;
129
+ const response = await requestWithRetry({
130
+ method: 'GET',
131
+ url: `${this.baseUrl}${Constructor.HEALTH_ENDPOINT}`,
132
+ headers: this.authHeaders,
133
+ timeout: Constructor.HEALTH_TIMEOUT,
134
+ retries: 3,
135
+ });
136
+ return response.status === 200;
137
+ }
138
+ catch {
139
+ return false;
140
+ }
141
+ }
142
+ /**
143
+ * Wait for an EXISTING running job to respond to health checks
144
+ */
145
+ async waitExisting(timeout = 15000) {
146
+ await this.refresh();
147
+ if (this.job.state !== 'running' || !this.hostname) {
148
+ return false;
149
+ }
150
+ const start = Date.now();
151
+ while (Date.now() - start < timeout) {
152
+ if (await this.checkHealth()) {
153
+ return true;
154
+ }
155
+ await new Promise(resolve => setTimeout(resolve, 2000));
156
+ }
157
+ return false;
158
+ }
159
+ /**
160
+ * Wait for a NEW job to be ready (running state + health check passing)
161
+ */
162
+ async waitReady(timeout = 300000, pollInterval = 5000, dnsDelay = this.constructor.DEFAULT_HOSTNAME_SETTLE_DELAY) {
163
+ const start = Date.now();
164
+ // Wait for running state via API
165
+ await this.refresh();
166
+ if (['failed', 'cancelled', 'completed', 'terminated'].includes(this.job.state)) {
167
+ return false;
168
+ }
169
+ if (this.job.state !== 'running' || !this.hostname) {
170
+ if (!await this.waitForRunning(timeout, pollInterval)) {
171
+ return false;
172
+ }
173
+ }
174
+ // DNS propagation delay
175
+ if (dnsDelay > 0) {
176
+ await new Promise(resolve => setTimeout(resolve, dnsDelay));
177
+ }
178
+ // Job is running, check health
179
+ const elapsed = Date.now() - start;
180
+ const remaining = timeout - elapsed;
181
+ while (remaining > 0) {
182
+ if (await this.checkHealth()) {
183
+ return true;
184
+ }
185
+ await new Promise(resolve => setTimeout(resolve, 2000));
186
+ const newRemaining = timeout - (Date.now() - start);
187
+ if (newRemaining <= 0)
188
+ break;
189
+ }
190
+ return false;
191
+ }
192
+ /**
193
+ * Cancel the job
194
+ */
195
+ async shutdown() {
196
+ return await this.client.jobs.cancel(this.jobId);
197
+ }
198
+ /**
199
+ * Extend job runtime
200
+ */
201
+ async extend(runtime) {
202
+ this.job = await this.client.jobs.extend(this.jobId, runtime);
203
+ return this;
204
+ }
205
+ }
206
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/job/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,259 @@
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
+ /**
8
+ * Load a workflow template JSON in graph format (nodes array, links array).
9
+ *
10
+ * The Python SDK resolves IDs via the comfyui-workflow-templates pip package;
11
+ * Node has no equivalent package, so `templateId` must resolve to a JSON file:
12
+ * an explicit path, `<templateId>.json`, or — when `templatesDir` is given —
13
+ * `<templatesDir>/<templateId>.json` or `<templatesDir>/<templateId>/<templateId>.json`.
14
+ */
15
+ export declare function loadTemplate(templateId: string, options?: {
16
+ templatesDir?: string;
17
+ }): Record<string, any>;
18
+ /** Check whether a widget value matches the expected input type. */
19
+ export declare function valueMatchesType(value: any, inputSpec: any): boolean;
20
+ /**
21
+ * Expand subgraph/group nodes into their constituent nodes.
22
+ *
23
+ * ComfyUI supports "workflow components" (group nodes) where a subgraph is
24
+ * collapsed into a single node with a UUID type. These must be expanded before
25
+ * the workflow can be executed. Returns a new graph; the input is not modified.
26
+ */
27
+ export declare function expandSubgraphs(graph: Record<string, any>, debug?: boolean): Record<string, any>;
28
+ export declare const DEFAULT_OBJECT_INFO: Record<string, any>;
29
+ /**
30
+ * Find nodes in API-format workflow by class_type and optional title pattern
31
+ */
32
+ export declare function findNodes(workflow: Record<string, any>, classType: string, titleContains?: string): Array<[string, any]>;
33
+ /**
34
+ * Find first node matching class_type and optional title pattern
35
+ */
36
+ export declare function findNode(workflow: Record<string, any>, classType: string, titleContains?: string): [string, any] | [null, null];
37
+ /**
38
+ * Apply parameters to workflow nodes
39
+ */
40
+ export declare function applyParams(workflow: Record<string, any>, params: Record<string, any>): Record<string, any>;
41
+ /**
42
+ * Convert ComfyUI graph format (from UI) to API format (for /prompt endpoint).
43
+ */
44
+ export declare function graphToApi(graph: any, objectInfo?: Record<string, any>, debug?: boolean): Record<string, any>;
45
+ /**
46
+ * Apply graph modes (enable/disable nodes)
47
+ */
48
+ export declare function applyGraphModes(graph: any, nodesConfig: Record<string, any>): any;
49
+ /**
50
+ * ComfyUI-specific job with workflow execution helpers
51
+ */
52
+ export declare class ComfyUIJob extends BaseJob {
53
+ static DEFAULT_IMAGE: string;
54
+ static DEFAULT_GPU_TYPE: string;
55
+ static HEALTH_ENDPOINT: string;
56
+ static COMFYUI_PORT: number;
57
+ private _objectInfo;
58
+ private _jobToken;
59
+ private _useLb;
60
+ useAuth: boolean;
61
+ template: string | null;
62
+ constructor(client: HyperCLI, job: Job, template?: string, useLb?: boolean, useAuth?: boolean);
63
+ get useLb(): boolean;
64
+ set useLb(value: boolean);
65
+ get baseUrl(): string;
66
+ get authHeaders(): Record<string, string>;
67
+ jobToken(): Promise<string>;
68
+ /**
69
+ * Create a new ComfyUI job configured for a specific template
70
+ */
71
+ static createForTemplate(client: HyperCLI, template: string, options?: {
72
+ gpuType?: string;
73
+ gpuCount?: number;
74
+ runtime?: number;
75
+ lb?: number;
76
+ auth?: boolean;
77
+ [key: string]: any;
78
+ }): Promise<ComfyUIJob>;
79
+ /**
80
+ * Get object_info from ComfyUI (cached)
81
+ */
82
+ getObjectInfo(refresh?: boolean): Promise<Record<string, any>>;
83
+ /**
84
+ * Convert graph format workflow to API format
85
+ */
86
+ convertWorkflow(graph: any, debug?: boolean): Promise<Record<string, any>>;
87
+ /**
88
+ * Connect to a specific ComfyUI instance by job ID or hostname.
89
+ */
90
+ static getInstance(client: HyperCLI, instance: string, options?: {
91
+ useLb?: boolean;
92
+ useAuth?: boolean;
93
+ }): Promise<ComfyUIJob>;
94
+ /**
95
+ * Get existing running job or create new one for a template.
96
+ *
97
+ * If reuse is true and a ComfyUI job is already running, it will be reused
98
+ * (note: the existing job may have different models loaded).
99
+ */
100
+ static getOrCreateForTemplate(client: HyperCLI, template: string, options?: {
101
+ gpuType?: string;
102
+ gpuCount?: number;
103
+ runtime?: number;
104
+ reuse?: boolean;
105
+ lb?: number;
106
+ auth?: boolean;
107
+ [key: string]: any;
108
+ }): Promise<ComfyUIJob>;
109
+ /**
110
+ * Load workflow template JSON in graph format.
111
+ *
112
+ * Unlike the Python SDK, Node has no comfyui-workflow-templates package, so
113
+ * the ID must resolve to a JSON file (see the module-level loadTemplate).
114
+ */
115
+ loadTemplate(templateId: string, options?: {
116
+ templatesDir?: string;
117
+ }): Record<string, any>;
118
+ private comfyJson;
119
+ private resolvedAuthHeaders;
120
+ private static isTransientNetworkError;
121
+ /**
122
+ * Get set of available node class_types from ComfyUI's /object_info.
123
+ */
124
+ getAvailableNodeTypes(): Promise<Set<string>>;
125
+ /**
126
+ * Extract all class_type values from a workflow (API format or UI format).
127
+ */
128
+ getWorkflowNodeTypes(workflow: Record<string, any>): Set<string>;
129
+ /**
130
+ * Find node types in workflow that aren't available in ComfyUI.
131
+ */
132
+ getMissingNodeTypes(workflow: Record<string, any>): Promise<Set<string>>;
133
+ /**
134
+ * Get node class_type to package mappings from ComfyUI Manager.
135
+ *
136
+ * Returns a mapping of package URL to [node_list, metadata].
137
+ */
138
+ getNodeMappings(): Promise<Record<string, any>>;
139
+ /**
140
+ * Look up which packages provide the given node types.
141
+ *
142
+ * Returns a mapping of package URL to the node types it provides.
143
+ */
144
+ lookupPackagesForNodes(nodeTypes: Iterable<string>): Promise<Record<string, string[]>>;
145
+ /**
146
+ * Get the full list of available custom node packages.
147
+ */
148
+ getCustomNodeList(): Promise<Record<string, any>>;
149
+ /**
150
+ * Install custom node packages by their repository URLs. Returns
151
+ * { queued, failed, notFound } package titles/URLs.
152
+ */
153
+ installPackagesByUrl(packageUrls: string[]): Promise<{
154
+ queued: string[];
155
+ failed: string[];
156
+ notFound: string[];
157
+ }>;
158
+ /**
159
+ * Automatically install missing custom nodes for a workflow.
160
+ */
161
+ autoInstallWorkflowNodes(workflow: Record<string, any>, options?: {
162
+ wait?: boolean;
163
+ reboot?: boolean;
164
+ }): Promise<{
165
+ missingNodes: string[];
166
+ packagesToInstall: Record<string, string[]>;
167
+ installed: string[];
168
+ failed: string[];
169
+ notFoundNodes: string[];
170
+ }>;
171
+ /**
172
+ * Get list of installed custom nodes from ComfyUI Manager.
173
+ */
174
+ getInstalledNodes(): Promise<Record<string, any>>;
175
+ /**
176
+ * Install a custom node package via ComfyUI Manager.
177
+ * Returns true if installation was queued successfully.
178
+ */
179
+ installNode(nodeName: string): Promise<boolean>;
180
+ /**
181
+ * Install multiple custom node packages. Returns { queued, failed }.
182
+ */
183
+ installNodes(nodeNames: string[], options?: {
184
+ wait?: boolean;
185
+ }): Promise<{
186
+ queued: string[];
187
+ failed: string[];
188
+ }>;
189
+ /**
190
+ * Reboot ComfyUI server (required after installing nodes).
191
+ */
192
+ reboot(options?: {
193
+ waitReady?: boolean;
194
+ timeoutSeconds?: number;
195
+ }): Promise<boolean>;
196
+ /**
197
+ * Ensure custom nodes are installed, installing missing ones. Returns
198
+ * { alreadyInstalled, installed, failed }.
199
+ */
200
+ ensureNodesInstalled(nodeNames: string[]): Promise<{
201
+ alreadyInstalled: string[];
202
+ installed: string[];
203
+ failed: string[];
204
+ }>;
205
+ /**
206
+ * Submit workflow to ComfyUI, returns prompt_id.
207
+ * Retries on connection errors including DNS failures.
208
+ */
209
+ queuePrompt(workflow: Record<string, any>, retries?: number): Promise<string>;
210
+ /**
211
+ * Get execution history for a prompt. Retries on connection errors including
212
+ * DNS failures.
213
+ */
214
+ getHistory(promptId: string, retries?: number): Promise<Record<string, any> | null>;
215
+ /**
216
+ * Wait for prompt execution to complete, returns the history entry.
217
+ */
218
+ waitForCompletion(promptId: string, options?: {
219
+ timeoutSeconds?: number;
220
+ pollIntervalSeconds?: number;
221
+ }): Promise<Record<string, any>>;
222
+ /**
223
+ * Download output file from ComfyUI server.
224
+ * If the file already exists, increments the name (file_1.png, file_2.png, etc.)
225
+ */
226
+ downloadOutput(filename: string, options?: {
227
+ outputDir?: string;
228
+ subfolder?: string;
229
+ retries?: number;
230
+ }): Promise<string>;
231
+ /**
232
+ * Run a workflow and wait for completion.
233
+ */
234
+ run(workflow: Record<string, any>, options?: {
235
+ timeoutSeconds?: number;
236
+ convert?: boolean;
237
+ }): Promise<Record<string, any>>;
238
+ /**
239
+ * Run a template workflow with parameter overrides.
240
+ */
241
+ runTemplate(templateId: string, options?: {
242
+ timeoutSeconds?: number;
243
+ templatesDir?: string;
244
+ params?: Record<string, any>;
245
+ }): Promise<Record<string, any>>;
246
+ /**
247
+ * Extract output file info from a history entry (images, videos, gifs).
248
+ */
249
+ getOutputImages(history: Record<string, any>): Array<Record<string, any>>;
250
+ /**
251
+ * Upload image to ComfyUI server
252
+ */
253
+ uploadImage(filePath: string, filename?: string): Promise<string>;
254
+ /**
255
+ * Upload audio to ComfyUI server
256
+ */
257
+ uploadAudio(filePath: string, filename?: string): Promise<string>;
258
+ }
259
+ //# sourceMappingURL=comfyui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comfyui.d.ts","sourceRoot":"","sources":["../../src/job/comfyui.ts"],"names":[],"mappings":"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"}