comfyui-node 1.6.2 → 1.6.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 (69) hide show
  1. package/README.md +50 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.d.ts +18 -13
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +10 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/multipool/client-registry.d.ts +23 -32
  8. package/dist/multipool/client-registry.d.ts.map +1 -1
  9. package/dist/multipool/client-registry.js +152 -152
  10. package/dist/multipool/client-registry.js.map +1 -1
  11. package/dist/multipool/helpers.js +52 -52
  12. package/dist/multipool/helpers.js.map +1 -1
  13. package/dist/multipool/index.js +2 -2
  14. package/dist/multipool/interfaces.d.ts +135 -12
  15. package/dist/multipool/interfaces.d.ts.map +1 -1
  16. package/dist/multipool/interfaces.js +1 -1
  17. package/dist/multipool/job-profiler.d.ts +64 -127
  18. package/dist/multipool/job-profiler.d.ts.map +1 -1
  19. package/dist/multipool/job-profiler.js +221 -221
  20. package/dist/multipool/job-profiler.js.map +1 -1
  21. package/dist/multipool/job-queue-processor.d.ts +23 -27
  22. package/dist/multipool/job-queue-processor.d.ts.map +1 -1
  23. package/dist/multipool/job-queue-processor.js +196 -196
  24. package/dist/multipool/job-queue-processor.js.map +1 -1
  25. package/dist/multipool/job-state-registry.d.ts +42 -66
  26. package/dist/multipool/job-state-registry.d.ts.map +1 -1
  27. package/dist/multipool/job-state-registry.js +282 -282
  28. package/dist/multipool/job-state-registry.js.map +1 -1
  29. package/dist/multipool/multi-workflow-pool.d.ts +101 -42
  30. package/dist/multipool/multi-workflow-pool.d.ts.map +1 -1
  31. package/dist/multipool/multi-workflow-pool.js +424 -313
  32. package/dist/multipool/multi-workflow-pool.js.map +1 -1
  33. package/dist/multipool/pool-event-manager.d.ts +10 -10
  34. package/dist/multipool/pool-event-manager.d.ts.map +1 -1
  35. package/dist/multipool/pool-event-manager.js +27 -27
  36. package/dist/multipool/tests/client-registry-api-demo.d.ts +7 -0
  37. package/dist/multipool/tests/client-registry-api-demo.d.ts.map +1 -0
  38. package/dist/multipool/tests/client-registry-api-demo.js +136 -0
  39. package/dist/multipool/tests/client-registry-api-demo.js.map +1 -0
  40. package/dist/multipool/tests/client-registry.spec.d.ts +2 -0
  41. package/dist/multipool/tests/client-registry.spec.d.ts.map +1 -0
  42. package/dist/multipool/tests/client-registry.spec.js +191 -0
  43. package/dist/multipool/tests/client-registry.spec.js.map +1 -0
  44. package/dist/multipool/tests/error-classification-tests.js +373 -373
  45. package/dist/multipool/tests/event-forwarding-demo.d.ts +7 -0
  46. package/dist/multipool/tests/event-forwarding-demo.d.ts.map +1 -0
  47. package/dist/multipool/tests/event-forwarding-demo.js +88 -0
  48. package/dist/multipool/tests/event-forwarding-demo.js.map +1 -0
  49. package/dist/multipool/tests/helpers.spec.d.ts +2 -0
  50. package/dist/multipool/tests/helpers.spec.d.ts.map +1 -0
  51. package/dist/multipool/tests/helpers.spec.js +100 -0
  52. package/dist/multipool/tests/helpers.spec.js.map +1 -0
  53. package/dist/multipool/tests/job-queue-processor.spec.d.ts +2 -0
  54. package/dist/multipool/tests/job-queue-processor.spec.d.ts.map +1 -0
  55. package/dist/multipool/tests/job-queue-processor.spec.js +89 -0
  56. package/dist/multipool/tests/job-queue-processor.spec.js.map +1 -0
  57. package/dist/multipool/tests/job-state-registry.spec.d.ts +2 -0
  58. package/dist/multipool/tests/job-state-registry.spec.d.ts.map +1 -0
  59. package/dist/multipool/tests/job-state-registry.spec.js +143 -0
  60. package/dist/multipool/tests/job-state-registry.spec.js.map +1 -0
  61. package/dist/multipool/tests/multipool-basic.js +141 -141
  62. package/dist/multipool/tests/profiling-demo.js +87 -87
  63. package/dist/multipool/tests/profiling-demo.js.map +1 -1
  64. package/dist/multipool/tests/two-stage-edit-simulation.js +298 -298
  65. package/dist/multipool/tests/two-stage-edit-simulation.js.map +1 -1
  66. package/dist/multipool/workflow.d.ts +178 -178
  67. package/dist/multipool/workflow.d.ts.map +1 -1
  68. package/dist/multipool/workflow.js +333 -333
  69. package/package.json +1 -1
@@ -1,197 +1,197 @@
1
- import { classifyFailure } from "src/multipool/helpers.js";
2
- export class JobQueueProcessor {
3
- jobs;
4
- clientRegistry;
5
- logger;
6
- queue = [];
7
- workflowHash = "";
8
- isProcessing = false;
9
- maxAttempts = 3;
10
- constructor(stateRegistry, clientRegistry, workflowHash, logger) {
11
- this.logger = logger;
12
- this.logger.debug(`Creating JobQueueProcessor for workflow hash: '${workflowHash}'`);
13
- this.clientRegistry = clientRegistry;
14
- this.jobs = stateRegistry;
15
- this.workflowHash = workflowHash;
16
- }
17
- async enqueueJob(newJobId, workflow) {
18
- // validate job state on registry
19
- const jobStatus = this.jobs.getJobStatus(newJobId);
20
- if (jobStatus !== "pending") {
21
- throw new Error(`Cannot enqueue job ${newJobId} with status ${jobStatus}`);
22
- }
23
- this.queue.push({ jobId: newJobId, workflow, attempts: 1 });
24
- this.processQueue().catch(reason => {
25
- this.logger.error(`Error processing job queue for workflow hash ${this.workflowHash}:`, reason);
26
- });
27
- }
28
- async processQueue() {
29
- if (this.isProcessing) {
30
- this.logger.debug(`Job queue for workflow hash ${this.workflowHash} is already being processed, skipping.`);
31
- return;
32
- }
33
- this.isProcessing = true;
34
- // Get the next job in the queue
35
- const nextJob = this.queue.shift();
36
- if (nextJob) {
37
- this.logger.debug(`Processing job ${nextJob.jobId}`);
38
- let preferredClient;
39
- // If this processor is for the general queue, try to find a preferred client
40
- if (this.workflowHash === "general") {
41
- preferredClient = await this.clientRegistry.getOptimalIdleClient(nextJob.workflow);
42
- }
43
- else {
44
- preferredClient = this.clientRegistry.getOptimalClient(nextJob.workflow);
45
- }
46
- if (!preferredClient) {
47
- this.logger.debug(`No idle clients available for job ${nextJob.jobId}.`);
48
- // Mark as pending again
49
- this.jobs.setJobStatus(nextJob.jobId, "pending");
50
- // Re-add the job to the front of the queue for later processing
51
- this.queue.unshift(nextJob);
52
- this.isProcessing = false;
53
- return;
54
- }
55
- else {
56
- this.logger.info(`Assigning job ${nextJob.jobId} to client ${preferredClient.nodeName}`);
57
- this.jobs.setJobStatus(nextJob.jobId, "assigned", preferredClient.url);
58
- await this.runJobOnClient(nextJob, preferredClient);
59
- }
60
- }
61
- this.isProcessing = false;
62
- // Recursively process the next job if we have idle clients to handle them
63
- if (this.queue.length > 0) {
64
- let idleCount = 0;
65
- for (const client of this.clientRegistry.clients.values()) {
66
- this.logger.debug(`Client ${client.nodeName} state: ${client.state}`);
67
- if (client.state === "idle") {
68
- idleCount++;
69
- }
70
- }
71
- if (idleCount > 0) {
72
- this.logger.debug(`Continuing to process next job in queue for workflow hash ${this.workflowHash}.`);
73
- try {
74
- await this.processQueue();
75
- }
76
- catch (e) {
77
- this.logger.error(`Error processing job queue for workflow hash ${this.workflowHash}:`, e);
78
- }
79
- }
80
- }
81
- }
82
- applyAutoSeed(workflow) {
83
- const autoSeeds = {};
84
- for (const [nodeId, nodeValue] of Object.entries(workflow)) {
85
- if (!nodeValue || typeof nodeValue !== "object")
86
- continue;
87
- const inputs = nodeValue.inputs;
88
- if (!inputs || typeof inputs !== "object")
89
- continue;
90
- if (typeof inputs.seed === "number" && inputs.seed === -1) {
91
- const val = Math.floor(Math.random() * 2_147_483_647);
92
- inputs.seed = val;
93
- autoSeeds[nodeId] = val;
94
- }
95
- }
96
- return autoSeeds;
97
- }
98
- async runJobOnClient(nextJob, preferredClient) {
99
- try {
100
- const api = preferredClient.api;
101
- // Check if client is idle before sending job
102
- const queueStatus = await api.getQueue();
103
- if (queueStatus.queue_running.length !== 0 || queueStatus.queue_pending.length !== 0) {
104
- this.logger.debug(`Client ${preferredClient.nodeName} is busy, re-adding job ${nextJob.jobId} to queue.`);
105
- this.jobs.setJobStatus(nextJob.jobId, "pending");
106
- this.queue.unshift(nextJob);
107
- return;
108
- }
109
- await this.processAttachedMedia(nextJob.workflow, api);
110
- const workflowJson = nextJob.workflow.toJSON();
111
- const autoSeeds = this.applyAutoSeed(workflowJson);
112
- if (Object.keys(autoSeeds).length > 0) {
113
- this.logger.queue(this.workflowHash, `Applied auto seeds for job ${nextJob.jobId}: ${JSON.stringify(autoSeeds)}`);
114
- this.jobs.updateJobAutoSeeds(nextJob.jobId, autoSeeds);
115
- // Update the workflow json with the new seeds before sending
116
- const nodeIds = Object.keys(autoSeeds);
117
- for (const nodeId of nodeIds) {
118
- workflowJson[nodeId].inputs.seed = autoSeeds[nodeId];
119
- }
120
- }
121
- this.logger.queue(this.workflowHash, `Starting job ${nextJob.jobId} on client ${preferredClient.nodeName}`);
122
- const result = await api.ext.queue.queuePrompt(null, workflowJson);
123
- // at this point we have the prompt_id assigned by comfyui, we can mark the job as running
124
- if (result.prompt_id) {
125
- this.jobs.setPromptId(nextJob.jobId, result.prompt_id);
126
- this.jobs.setJobStatus(nextJob.jobId, "running");
127
- this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} is now queued on client ${preferredClient.nodeName} with prompt ID ${result.prompt_id}`);
128
- // we also mark the client as busy, to prevent new jobs being assigned until we detect completion
129
- preferredClient.state = "busy";
130
- this.logger.debug(Array.from(this.clientRegistry.clients.values()).map((c) => `${c.nodeName}: ${c.state}`).join(", "));
131
- }
132
- else {
133
- this.logger.error(`Failed to enqueue job ${nextJob.jobId} on client ${preferredClient.nodeName}: No prompt_id returned.`);
134
- this.jobs.setJobStatus(nextJob.jobId, "failed");
135
- }
136
- }
137
- catch (e) {
138
- this.logger.error(`Failed to run job ${nextJob.jobId} on client ${preferredClient.nodeName}`);
139
- this.handleFailure(preferredClient, nextJob, e);
140
- }
141
- }
142
- dequeueJob(jobId) {
143
- this.queue = this.queue.filter(job => job.jobId !== jobId);
144
- }
145
- handleFailure(preferredClient, nextJob, e) {
146
- const { type, message } = classifyFailure(e);
147
- this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} failed on ${preferredClient.nodeName}. Failure type: ${type}. Reason: ${message}`);
148
- switch (type) {
149
- case "connection":
150
- preferredClient.state = "offline"; // Mark as offline to be re-checked later
151
- this.logger.queue(this.workflowHash, `Re-queuing job ${nextJob.jobId} due to connection error.`);
152
- this.jobs.setJobStatus(nextJob.jobId, "pending");
153
- this.queue.unshift(nextJob); // Re-queue without incrementing attempts
154
- break;
155
- case "workflow_incompatibility":
156
- preferredClient.state = "idle";
157
- this.logger.queue(this.workflowHash, `Marking client ${preferredClient.nodeName} as incompatible with workflow ${nextJob.workflow.structureHash}.`);
158
- this.clientRegistry.markClientIncompatibleWithWorkflow(preferredClient.url, nextJob.workflow.structureHash);
159
- this.retryOrMarkFailed(nextJob, e);
160
- break;
161
- case "transient":
162
- preferredClient.state = "idle";
163
- this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} failed with a transient error. It will not be retried.`);
164
- this.jobs.setJobFailure(nextJob.jobId, { error: message, details: e.bodyJSON });
165
- break;
166
- }
167
- // Trigger processing for the next job in the queue
168
- this.processQueue().catch(reason => {
169
- this.logger.error(`Error processing job queue for workflow hash ${this.workflowHash}:`, reason);
170
- });
171
- }
172
- retryOrMarkFailed(nextJob, originalError) {
173
- // Check if the job has exceeded its max attempts
174
- if (nextJob.attempts >= this.maxAttempts) {
175
- this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} has reached max attempts (${this.maxAttempts}). Marking as failed.`);
176
- this.jobs.setJobFailure(nextJob.jobId, originalError.bodyJSON);
177
- return;
178
- }
179
- // Confirm if we should re-queue or fail the job
180
- const eligibleClients = this.clientRegistry.getAllEligibleClientsForWorkflow(nextJob.workflow);
181
- if (eligibleClients.length > 0) {
182
- this.logger.queue(this.workflowHash, `Re-queuing job ${nextJob.jobId} (attempt ${nextJob.attempts + 1}) as there are other eligible clients available.`);
183
- this.jobs.setJobStatus(nextJob.jobId, "pending");
184
- // Increment attempts and re-add to the front of the queue
185
- nextJob.attempts++;
186
- this.queue.unshift(nextJob);
187
- }
188
- else {
189
- this.logger.queue(this.workflowHash, `No other eligible clients for job ${nextJob.jobId}, marking as failed.`);
190
- this.jobs.setJobFailure(nextJob.jobId, originalError.bodyJSON);
191
- }
192
- }
193
- async processAttachedMedia(workflow, api) {
194
- await workflow.uploadAssets(api);
195
- }
196
- }
1
+ import { classifyFailure } from "./helpers.js";
2
+ export class JobQueueProcessor {
3
+ jobs;
4
+ clientRegistry;
5
+ logger;
6
+ queue = [];
7
+ workflowHash = "";
8
+ isProcessing = false;
9
+ maxAttempts = 3;
10
+ constructor(stateRegistry, clientRegistry, workflowHash, logger) {
11
+ this.logger = logger;
12
+ this.logger.debug(`Creating JobQueueProcessor for workflow hash: '${workflowHash}'`);
13
+ this.clientRegistry = clientRegistry;
14
+ this.jobs = stateRegistry;
15
+ this.workflowHash = workflowHash;
16
+ }
17
+ async enqueueJob(newJobId, workflow) {
18
+ // validate job state on registry
19
+ const jobStatus = this.jobs.getJobStatus(newJobId);
20
+ if (jobStatus !== "pending") {
21
+ throw new Error(`Cannot enqueue job ${newJobId} with status ${jobStatus}`);
22
+ }
23
+ this.queue.push({ jobId: newJobId, workflow, attempts: 1 });
24
+ this.processQueue().catch(reason => {
25
+ this.logger.error(`Error processing job queue for workflow hash ${this.workflowHash}:`, reason);
26
+ });
27
+ }
28
+ async processQueue() {
29
+ if (this.isProcessing) {
30
+ this.logger.debug(`Job queue for workflow hash ${this.workflowHash} is already being processed, skipping.`);
31
+ return;
32
+ }
33
+ this.isProcessing = true;
34
+ // Get the next job in the queue
35
+ const nextJob = this.queue.shift();
36
+ if (nextJob) {
37
+ this.logger.debug(`Processing job ${nextJob.jobId}`);
38
+ let preferredClient;
39
+ // If this processor is for the general queue, try to find a preferred client
40
+ if (this.workflowHash === "general") {
41
+ preferredClient = await this.clientRegistry.getOptimalIdleClient(nextJob.workflow);
42
+ }
43
+ else {
44
+ preferredClient = this.clientRegistry.getOptimalClient(nextJob.workflow);
45
+ }
46
+ if (!preferredClient) {
47
+ this.logger.debug(`No idle clients available for job ${nextJob.jobId}.`);
48
+ // Mark as pending again
49
+ this.jobs.setJobStatus(nextJob.jobId, "pending");
50
+ // Re-add the job to the front of the queue for later processing
51
+ this.queue.unshift(nextJob);
52
+ this.isProcessing = false;
53
+ return;
54
+ }
55
+ else {
56
+ this.logger.info(`Assigning job ${nextJob.jobId} to client ${preferredClient.nodeName}`);
57
+ this.jobs.setJobStatus(nextJob.jobId, "assigned", preferredClient.url);
58
+ await this.runJobOnClient(nextJob, preferredClient);
59
+ }
60
+ }
61
+ this.isProcessing = false;
62
+ // Recursively process the next job if we have idle clients to handle them
63
+ if (this.queue.length > 0) {
64
+ let idleCount = 0;
65
+ for (const client of this.clientRegistry.clients.values()) {
66
+ this.logger.debug(`Client ${client.nodeName} state: ${client.state}`);
67
+ if (client.state === "idle") {
68
+ idleCount++;
69
+ }
70
+ }
71
+ if (idleCount > 0) {
72
+ this.logger.debug(`Continuing to process next job in queue for workflow hash ${this.workflowHash}.`);
73
+ try {
74
+ await this.processQueue();
75
+ }
76
+ catch (e) {
77
+ this.logger.error(`Error processing job queue for workflow hash ${this.workflowHash}:`, e);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ applyAutoSeed(workflow) {
83
+ const autoSeeds = {};
84
+ for (const [nodeId, nodeValue] of Object.entries(workflow)) {
85
+ if (!nodeValue || typeof nodeValue !== "object")
86
+ continue;
87
+ const inputs = nodeValue.inputs;
88
+ if (!inputs || typeof inputs !== "object")
89
+ continue;
90
+ if (typeof inputs.seed === "number" && inputs.seed === -1) {
91
+ const val = Math.floor(Math.random() * 2_147_483_647);
92
+ inputs.seed = val;
93
+ autoSeeds[nodeId] = val;
94
+ }
95
+ }
96
+ return autoSeeds;
97
+ }
98
+ async runJobOnClient(nextJob, preferredClient) {
99
+ try {
100
+ const api = preferredClient.api;
101
+ // Check if client is idle before sending job
102
+ const queueStatus = await api.getQueue();
103
+ if (queueStatus.queue_running.length !== 0 || queueStatus.queue_pending.length !== 0) {
104
+ this.logger.debug(`Client ${preferredClient.nodeName} is busy, re-adding job ${nextJob.jobId} to queue.`);
105
+ this.jobs.setJobStatus(nextJob.jobId, "pending");
106
+ this.queue.unshift(nextJob);
107
+ return;
108
+ }
109
+ await this.processAttachedMedia(nextJob.workflow, api);
110
+ const workflowJson = nextJob.workflow.toJSON();
111
+ const autoSeeds = this.applyAutoSeed(workflowJson);
112
+ if (Object.keys(autoSeeds).length > 0) {
113
+ this.logger.queue(this.workflowHash, `Applied auto seeds for job ${nextJob.jobId}: ${JSON.stringify(autoSeeds)}`);
114
+ this.jobs.updateJobAutoSeeds(nextJob.jobId, autoSeeds);
115
+ // Update the workflow json with the new seeds before sending
116
+ const nodeIds = Object.keys(autoSeeds);
117
+ for (const nodeId of nodeIds) {
118
+ workflowJson[nodeId].inputs.seed = autoSeeds[nodeId];
119
+ }
120
+ }
121
+ this.logger.queue(this.workflowHash, `Starting job ${nextJob.jobId} on client ${preferredClient.nodeName}`);
122
+ const result = await api.ext.queue.queuePrompt(null, workflowJson);
123
+ // at this point we have the prompt_id assigned by comfyui, we can mark the job as running
124
+ if (result.prompt_id) {
125
+ this.jobs.setPromptId(nextJob.jobId, result.prompt_id);
126
+ this.jobs.setJobStatus(nextJob.jobId, "running");
127
+ this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} is now queued on client ${preferredClient.nodeName} with prompt ID ${result.prompt_id}`);
128
+ // we also mark the client as busy, to prevent new jobs being assigned until we detect completion
129
+ preferredClient.state = "busy";
130
+ this.logger.debug(Array.from(this.clientRegistry.clients.values()).map((c) => `${c.nodeName}: ${c.state}`).join(", "));
131
+ }
132
+ else {
133
+ this.logger.error(`Failed to enqueue job ${nextJob.jobId} on client ${preferredClient.nodeName}: No prompt_id returned.`);
134
+ this.jobs.setJobStatus(nextJob.jobId, "failed");
135
+ }
136
+ }
137
+ catch (e) {
138
+ this.logger.error(`Failed to run job ${nextJob.jobId} on client ${preferredClient.nodeName}`);
139
+ this.handleFailure(preferredClient, nextJob, e);
140
+ }
141
+ }
142
+ dequeueJob(jobId) {
143
+ this.queue = this.queue.filter(job => job.jobId !== jobId);
144
+ }
145
+ handleFailure(preferredClient, nextJob, e) {
146
+ const { type, message } = classifyFailure(e);
147
+ this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} failed on ${preferredClient.nodeName}. Failure type: ${type}. Reason: ${message}`);
148
+ switch (type) {
149
+ case "connection":
150
+ preferredClient.state = "offline"; // Mark as offline to be re-checked later
151
+ this.logger.queue(this.workflowHash, `Re-queuing job ${nextJob.jobId} due to connection error.`);
152
+ this.jobs.setJobStatus(nextJob.jobId, "pending");
153
+ this.queue.unshift(nextJob); // Re-queue without incrementing attempts
154
+ break;
155
+ case "workflow_incompatibility":
156
+ preferredClient.state = "idle";
157
+ this.logger.queue(this.workflowHash, `Marking client ${preferredClient.nodeName} as incompatible with workflow ${nextJob.workflow.structureHash}.`);
158
+ this.clientRegistry.markClientIncompatibleWithWorkflow(preferredClient.url, nextJob.workflow.structureHash);
159
+ this.retryOrMarkFailed(nextJob, e);
160
+ break;
161
+ case "transient":
162
+ preferredClient.state = "idle";
163
+ this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} failed with a transient error. It will not be retried.`);
164
+ this.jobs.setJobFailure(nextJob.jobId, { error: message, details: e.bodyJSON });
165
+ break;
166
+ }
167
+ // Trigger processing for the next job in the queue
168
+ this.processQueue().catch(reason => {
169
+ this.logger.error(`Error processing job queue for workflow hash ${this.workflowHash}:`, reason);
170
+ });
171
+ }
172
+ retryOrMarkFailed(nextJob, originalError) {
173
+ // Check if the job has exceeded its max attempts
174
+ if (nextJob.attempts >= this.maxAttempts) {
175
+ this.logger.queue(this.workflowHash, `Job ${nextJob.jobId} has reached max attempts (${this.maxAttempts}). Marking as failed.`);
176
+ this.jobs.setJobFailure(nextJob.jobId, originalError.bodyJSON);
177
+ return;
178
+ }
179
+ // Confirm if we should re-queue or fail the job
180
+ const eligibleClients = this.clientRegistry.getAllEligibleClientsForWorkflow(nextJob.workflow);
181
+ if (eligibleClients.length > 0) {
182
+ this.logger.queue(this.workflowHash, `Re-queuing job ${nextJob.jobId} (attempt ${nextJob.attempts + 1}) as there are other eligible clients available.`);
183
+ this.jobs.setJobStatus(nextJob.jobId, "pending");
184
+ // Increment attempts and re-add to the front of the queue
185
+ nextJob.attempts++;
186
+ this.queue.unshift(nextJob);
187
+ }
188
+ else {
189
+ this.logger.queue(this.workflowHash, `No other eligible clients for job ${nextJob.jobId}, marking as failed.`);
190
+ this.jobs.setJobFailure(nextJob.jobId, originalError.bodyJSON);
191
+ }
192
+ }
193
+ async processAttachedMedia(workflow, api) {
194
+ await workflow.uploadAssets(api);
195
+ }
196
+ }
197
197
  //# sourceMappingURL=job-queue-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-queue-processor.js","sourceRoot":"","sources":["../../src/multipool/job-queue-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-queue-processor.js","sourceRoot":"","sources":["../../src/multipool/job-queue-processor.ts"],"names":[],"mappings":"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"}
@@ -1,67 +1,43 @@
1
- import { MultiWorkflowPool } from "src/multipool/multi-workflow-pool.js";
2
- import { Workflow } from "src/multipool/workflow.js";
3
- import { ImageInfo } from "src/types/api.js";
4
- import { ClientRegistry } from "src/multipool/client-registry.js";
5
- import { JobProfiler, JobProfileStats } from "./job-profiler.js";
6
- export type JobStatus = "pending" | "assigned" | "running" | "completed" | "failed" | "canceled" | "no_clients";
7
- export type JobResultStatus = "completed" | "failed" | "canceled";
8
- export interface JobState {
9
- jobId: string;
10
- prompt_id?: string;
11
- assignedClientUrl?: string;
12
- workflow: Workflow;
13
- status: JobStatus;
14
- autoSeeds?: Record<string, number>;
15
- resolver: ((results: JobResults) => void) | null;
16
- resultsPromise?: Promise<JobResults>;
17
- images?: ImageInfo[];
18
- onProgress?: (progress: any) => void;
19
- onPreview?: (preview: any) => void;
20
- profiler?: JobProfiler;
21
- }
22
- export interface JobResults {
23
- status: JobResultStatus;
24
- jobId: string;
25
- prompt_id: string;
26
- images: string[];
27
- error?: any;
28
- profileStats?: JobProfileStats;
29
- }
30
- export declare class JobStateRegistry {
31
- pool: MultiWorkflowPool;
32
- clients: ClientRegistry;
33
- jobs: Map<string, JobState>;
34
- promptIdToJobId: Map<string, string>;
35
- constructor(pool: MultiWorkflowPool, clients: ClientRegistry);
36
- addJob(workflow: Workflow): string;
37
- getJobStatus(jobId: string): JobStatus;
38
- cancelJob(jobId: string): Promise<void>;
39
- setJobStatus(jobId: string, newStatus: JobStatus, assignedClientUrl?: string): void;
40
- updateJobAutoSeeds(jobId: string, autoSeeds: Record<string, number>): void;
41
- setPromptId(jobId: string, prompt_id: string): void;
42
- completeJob(prompt_id: string): void;
43
- private processQueue;
44
- waitForResults(jobId: string): Promise<JobResults>;
45
- addJobImages(prompt_id: string, images: ImageInfo[]): void;
46
- private removeJobFromQueue;
47
- attachJobProgressListener(jobId: string, progressListener: (progress: {
48
- value: number;
49
- max: number;
50
- }) => void): void;
51
- attachJobPreviewListener(jobId: string, previewListener: (preview: {
52
- metadata: any;
53
- blob: Blob;
54
- }) => void): void;
55
- updateJobProgress(prompt_id: string, value: number, max: number, nodeId?: string | number): void;
56
- updateJobPreviewMetadata(prompt_id: any, metadata: any, blob: Blob): void;
57
- setJobFailure(jobId: string, bodyJSON: any): void;
58
- /**
59
- * Track node execution start for profiling
60
- */
61
- onNodeExecuting(prompt_id: string, nodeId: string): void;
62
- /**
63
- * Track cached nodes for profiling
64
- */
65
- onCachedNodes(prompt_id: string, nodeIds: string[]): void;
66
- }
1
+ import { JobResults, JobState, JobStatus } from "./interfaces.js";
2
+ import { MultiWorkflowPool } from "./multi-workflow-pool.js";
3
+ import { ClientRegistry } from "./client-registry.js";
4
+ import { Workflow } from "./workflow.js";
5
+ import { ImageInfo } from "../types/api.js";
6
+ export declare class JobStateRegistry {
7
+ pool: MultiWorkflowPool;
8
+ clients: ClientRegistry;
9
+ jobs: Map<string, JobState>;
10
+ promptIdToJobId: Map<string, string>;
11
+ constructor(pool: MultiWorkflowPool, clients: ClientRegistry);
12
+ addJob(workflow: Workflow): string;
13
+ getJobStatus(jobId: string): JobStatus;
14
+ cancelJob(jobId: string): Promise<void>;
15
+ setJobStatus(jobId: string, newStatus: JobStatus, assignedClientUrl?: string): void;
16
+ updateJobAutoSeeds(jobId: string, autoSeeds: Record<string, number>): void;
17
+ setPromptId(jobId: string, prompt_id: string): void;
18
+ completeJob(prompt_id: string): void;
19
+ private processQueue;
20
+ waitForResults(jobId: string): Promise<JobResults>;
21
+ addJobImages(prompt_id: string, images: ImageInfo[]): void;
22
+ private removeJobFromQueue;
23
+ attachJobProgressListener(jobId: string, progressListener: (progress: {
24
+ value: number;
25
+ max: number;
26
+ }) => void): void;
27
+ attachJobPreviewListener(jobId: string, previewListener: (preview: {
28
+ metadata: any;
29
+ blob: Blob;
30
+ }) => void): void;
31
+ updateJobProgress(prompt_id: string, value: number, max: number, nodeId?: string | number): void;
32
+ updateJobPreviewMetadata(prompt_id: any, metadata: any, blob: Blob): void;
33
+ setJobFailure(jobId: string, bodyJSON: any): void;
34
+ /**
35
+ * Track node execution start for profiling
36
+ */
37
+ onNodeExecuting(prompt_id: string, nodeId: string): void;
38
+ /**
39
+ * Track cached nodes for profiling
40
+ */
41
+ onCachedNodes(prompt_id: string, nodeIds: string[]): void;
42
+ }
67
43
  //# sourceMappingURL=job-state-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-state-registry.d.ts","sourceRoot":"","sources":["../../src/multipool/job-state-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAChH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,qBAAa,gBAAgB;IAE3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IAGxB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAGxC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;gBAErC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc;IAK5D,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAwBlC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQhC,SAAS,CAAC,KAAK,EAAE,MAAM;IAiE7B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM;IAW5E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQnE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAc5C,WAAW,CAAC,SAAS,EAAE,MAAM;IA4C7B,OAAO,CAAC,YAAY;IASd,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAWxD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;IAWnD,OAAO,CAAC,kBAAkB;IAO1B,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,QAAQ,EAAE;QACpE,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,KAAK,IAAI;IAQV,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE;QACjE,QAAQ,EAAE,GAAG,CAAC;QACd,IAAI,EAAE,IAAI,CAAC;KACZ,KAAK,IAAI;IAQV,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBzF,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;IAWlE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IA+B1C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOjD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAMnD"}
1
+ {"version":3,"file":"job-state-registry.d.ts","sourceRoot":"","sources":["../../src/multipool/job-state-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,gBAAgB;IAE3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IAGxB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAGxC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;gBAErC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc;IAK5D,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAwBlC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQhC,SAAS,CAAC,KAAK,EAAE,MAAM;IAiE7B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM;IAW5E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQnE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAc5C,WAAW,CAAC,SAAS,EAAE,MAAM;IA4C7B,OAAO,CAAC,YAAY;IASd,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAWxD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;IAWnD,OAAO,CAAC,kBAAkB;IAO1B,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,QAAQ,EAAE;QACpE,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,KAAK,IAAI;IAQV,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE;QACjE,QAAQ,EAAE,GAAG,CAAC;QACd,IAAI,EAAE,IAAI,CAAC;KACZ,KAAK,IAAI;IAQV,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBzF,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;IAWlE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IA+B1C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOjD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAMnD"}