comfyui-node 1.6.6 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +342 -341
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/multipool/client-registry.d.ts +5 -5
- package/dist/multipool/client-registry.d.ts.map +1 -1
- package/dist/multipool/client-registry.js +17 -17
- package/dist/multipool/client-registry.js.map +1 -1
- package/dist/multipool/helpers.d.ts +4 -4
- package/dist/multipool/index.d.ts +2 -2
- package/dist/multipool/interfaces.d.ts +13 -2
- package/dist/multipool/interfaces.d.ts.map +1 -1
- package/dist/multipool/job-queue-processor.d.ts +4 -4
- package/dist/multipool/job-queue-processor.d.ts.map +1 -1
- package/dist/multipool/job-queue-processor.js +32 -31
- package/dist/multipool/job-queue-processor.js.map +1 -1
- package/dist/multipool/logger.d.ts +29 -29
- package/dist/multipool/multi-workflow-pool.d.ts +2 -3
- package/dist/multipool/multi-workflow-pool.d.ts.map +1 -1
- package/dist/multipool/multi-workflow-pool.js +50 -39
- package/dist/multipool/multi-workflow-pool.js.map +1 -1
- package/dist/multipool/tests/client-registry-api-demo.js +1 -3
- package/dist/multipool/tests/client-registry-api-demo.js.map +1 -1
- package/dist/multipool/tests/client-registry.spec.js +6 -7
- package/dist/multipool/tests/client-registry.spec.js.map +1 -1
- package/dist/multipool/tests/error-classification-tests.d.ts +1 -1
- package/dist/multipool/tests/event-forwarding-demo.js +1 -3
- package/dist/multipool/tests/event-forwarding-demo.js.map +1 -1
- package/dist/multipool/tests/job-queue-processor.spec.js +8 -8
- package/dist/multipool/tests/job-queue-processor.spec.js.map +1 -1
- package/dist/multipool/tests/job-state-registry.d.ts +16 -16
- package/dist/multipool/tests/job-state-registry.js +23 -23
- package/dist/multipool/tests/job-state-registry.spec.js +5 -4
- package/dist/multipool/tests/job-state-registry.spec.js.map +1 -1
- package/dist/multipool/tests/multipool-basic.d.ts +11 -11
- package/dist/multipool/tests/profiling-demo.d.ts +6 -6
- package/dist/multipool/tests/profiling-demo.js +1 -2
- package/dist/multipool/tests/profiling-demo.js.map +1 -1
- package/dist/multipool/tests/prompt-generator.d.ts +9 -9
- package/dist/multipool/tests/test-helpers.d.ts +3 -3
- package/dist/multipool/tests/two-stage-edit-simulation.d.ts +31 -31
- package/dist/multipool/tests/two-stage-edit-simulation.d.ts.map +1 -1
- package/dist/multipool/tests/two-stage-edit-simulation.js +1 -2
- package/dist/multipool/tests/two-stage-edit-simulation.js.map +1 -1
- package/dist/pool/SmartPool.d.ts +143 -143
- package/dist/pool/SmartPool.js +676 -676
- package/dist/pool/SmartPoolV2.d.ts +119 -119
- package/dist/pool/SmartPoolV2.js +586 -586
- package/dist/pool/WorkflowPool.d.ts +202 -202
- package/dist/pool/client/ClientManager.d.ts +86 -86
- package/dist/pool/index.d.ts +9 -9
- package/package.json +2 -2
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
import { TypedEventTarget } from "../typed-event-target.js";
|
|
2
|
-
import { ComfyApi } from "../client.js";
|
|
3
|
-
import { Workflow } from "../workflow.js";
|
|
4
|
-
import type { WorkflowAffinity } from "./types/affinity.js";
|
|
5
|
-
import type { JobId, JobRecord } from "./types/job.js";
|
|
6
|
-
interface SmartPoolV2Options {
|
|
7
|
-
connectionTimeoutMs?: number;
|
|
8
|
-
jobExecutionTimeoutMs?: number;
|
|
9
|
-
groupIdleTimeoutMs?: number;
|
|
10
|
-
maxQueueDepth?: number;
|
|
11
|
-
}
|
|
12
|
-
interface ServerPerformanceMetrics {
|
|
13
|
-
clientId: string;
|
|
14
|
-
totalJobsCompleted: number;
|
|
15
|
-
totalExecutionTimeMs: number;
|
|
16
|
-
averageExecutionTimeMs: number;
|
|
17
|
-
lastJobDurationMs?: number;
|
|
18
|
-
}
|
|
19
|
-
interface SmartPoolV2EventMap extends Record<string, CustomEvent<any>> {
|
|
20
|
-
"job:queued": CustomEvent<{
|
|
21
|
-
job: JobRecord;
|
|
22
|
-
}>;
|
|
23
|
-
"job:accepted": CustomEvent<{
|
|
24
|
-
job: JobRecord;
|
|
25
|
-
clientId: string;
|
|
26
|
-
}>;
|
|
27
|
-
"job:started": CustomEvent<{
|
|
28
|
-
job: JobRecord;
|
|
29
|
-
clientId: string;
|
|
30
|
-
promptId: string;
|
|
31
|
-
}>;
|
|
32
|
-
"job:completed": CustomEvent<{
|
|
33
|
-
job: JobRecord;
|
|
34
|
-
}>;
|
|
35
|
-
"job:failed": CustomEvent<{
|
|
36
|
-
job: JobRecord;
|
|
37
|
-
error: Error;
|
|
38
|
-
willRetry?: boolean;
|
|
39
|
-
}>;
|
|
40
|
-
"group:idle-timeout": CustomEvent<{
|
|
41
|
-
groupId: string;
|
|
42
|
-
reason: string;
|
|
43
|
-
}>;
|
|
44
|
-
"server:idle": CustomEvent<{
|
|
45
|
-
clientId: string;
|
|
46
|
-
groupId?: string;
|
|
47
|
-
}>;
|
|
48
|
-
}
|
|
49
|
-
export declare class SmartPoolV2 extends TypedEventTarget<SmartPoolV2EventMap> {
|
|
50
|
-
private clientMap;
|
|
51
|
-
private affinityGroups;
|
|
52
|
-
private defaultQueue?;
|
|
53
|
-
private jobStore;
|
|
54
|
-
private executionContexts;
|
|
55
|
-
private idleServers;
|
|
56
|
-
private serverPerformance;
|
|
57
|
-
private options;
|
|
58
|
-
private isReady;
|
|
59
|
-
private readyResolve?;
|
|
60
|
-
constructor(clients: (ComfyApi | string)[], options?: SmartPoolV2Options);
|
|
61
|
-
/**
|
|
62
|
-
* Initialize pool and connect all clients
|
|
63
|
-
*/
|
|
64
|
-
connect(): Promise<void>;
|
|
65
|
-
/**
|
|
66
|
-
* Wait for pool to be ready
|
|
67
|
-
*/
|
|
68
|
-
ready(): Promise<void>;
|
|
69
|
-
/**
|
|
70
|
-
* Enqueue a workflow - automatically routed by workflow hash
|
|
71
|
-
* Optional preferredClientIds overrides default routing for this specific job
|
|
72
|
-
*/
|
|
73
|
-
enqueue(workflow: Workflow<any>, options?: {
|
|
74
|
-
preferredClientIds?: string[];
|
|
75
|
-
priority?: number;
|
|
76
|
-
metadata?: Record<string, any>;
|
|
77
|
-
}): Promise<JobId>;
|
|
78
|
-
/**
|
|
79
|
-
* Set workflow affinity - auto-creates group by workflow hash
|
|
80
|
-
* Maps workflow hash to preferred servers
|
|
81
|
-
*/
|
|
82
|
-
setAffinity(workflow: object, affinity: Omit<WorkflowAffinity, "workflowHash">): void;
|
|
83
|
-
/**
|
|
84
|
-
* Get job by ID
|
|
85
|
-
*/
|
|
86
|
-
getJob(jobId: JobId): JobRecord | undefined;
|
|
87
|
-
/**
|
|
88
|
-
* Shutdown pool
|
|
89
|
-
*/
|
|
90
|
-
shutdown(): void;
|
|
91
|
-
/**
|
|
92
|
-
* Get server performance metrics
|
|
93
|
-
*/
|
|
94
|
-
getServerPerformance(clientId: string): ServerPerformanceMetrics | undefined;
|
|
95
|
-
private createAffinityGroup;
|
|
96
|
-
/**
|
|
97
|
-
* Process affinity group queue - triggered by events only (no polling)
|
|
98
|
-
*/
|
|
99
|
-
private processAffinityGroup;
|
|
100
|
-
/**
|
|
101
|
-
* Enqueue job on server and manage execution
|
|
102
|
-
*/
|
|
103
|
-
private enqueueJobOnServer;
|
|
104
|
-
/**
|
|
105
|
-
* Handle job completion
|
|
106
|
-
*/
|
|
107
|
-
private handleJobCompletion;
|
|
108
|
-
/**
|
|
109
|
-
* Handle job failure
|
|
110
|
-
*/
|
|
111
|
-
private handleJobFailure;
|
|
112
|
-
/**
|
|
113
|
-
* Handle job timeout
|
|
114
|
-
*/
|
|
115
|
-
private handleJobTimeout;
|
|
116
|
-
private updateServerPerformance;
|
|
117
|
-
private sortServersByPerformance;
|
|
118
|
-
}
|
|
119
|
-
export {};
|
|
1
|
+
import { TypedEventTarget } from "../typed-event-target.js";
|
|
2
|
+
import { ComfyApi } from "../client.js";
|
|
3
|
+
import { Workflow } from "../workflow.js";
|
|
4
|
+
import type { WorkflowAffinity } from "./types/affinity.js";
|
|
5
|
+
import type { JobId, JobRecord } from "./types/job.js";
|
|
6
|
+
interface SmartPoolV2Options {
|
|
7
|
+
connectionTimeoutMs?: number;
|
|
8
|
+
jobExecutionTimeoutMs?: number;
|
|
9
|
+
groupIdleTimeoutMs?: number;
|
|
10
|
+
maxQueueDepth?: number;
|
|
11
|
+
}
|
|
12
|
+
interface ServerPerformanceMetrics {
|
|
13
|
+
clientId: string;
|
|
14
|
+
totalJobsCompleted: number;
|
|
15
|
+
totalExecutionTimeMs: number;
|
|
16
|
+
averageExecutionTimeMs: number;
|
|
17
|
+
lastJobDurationMs?: number;
|
|
18
|
+
}
|
|
19
|
+
interface SmartPoolV2EventMap extends Record<string, CustomEvent<any>> {
|
|
20
|
+
"job:queued": CustomEvent<{
|
|
21
|
+
job: JobRecord;
|
|
22
|
+
}>;
|
|
23
|
+
"job:accepted": CustomEvent<{
|
|
24
|
+
job: JobRecord;
|
|
25
|
+
clientId: string;
|
|
26
|
+
}>;
|
|
27
|
+
"job:started": CustomEvent<{
|
|
28
|
+
job: JobRecord;
|
|
29
|
+
clientId: string;
|
|
30
|
+
promptId: string;
|
|
31
|
+
}>;
|
|
32
|
+
"job:completed": CustomEvent<{
|
|
33
|
+
job: JobRecord;
|
|
34
|
+
}>;
|
|
35
|
+
"job:failed": CustomEvent<{
|
|
36
|
+
job: JobRecord;
|
|
37
|
+
error: Error;
|
|
38
|
+
willRetry?: boolean;
|
|
39
|
+
}>;
|
|
40
|
+
"group:idle-timeout": CustomEvent<{
|
|
41
|
+
groupId: string;
|
|
42
|
+
reason: string;
|
|
43
|
+
}>;
|
|
44
|
+
"server:idle": CustomEvent<{
|
|
45
|
+
clientId: string;
|
|
46
|
+
groupId?: string;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export declare class SmartPoolV2 extends TypedEventTarget<SmartPoolV2EventMap> {
|
|
50
|
+
private clientMap;
|
|
51
|
+
private affinityGroups;
|
|
52
|
+
private defaultQueue?;
|
|
53
|
+
private jobStore;
|
|
54
|
+
private executionContexts;
|
|
55
|
+
private idleServers;
|
|
56
|
+
private serverPerformance;
|
|
57
|
+
private options;
|
|
58
|
+
private isReady;
|
|
59
|
+
private readyResolve?;
|
|
60
|
+
constructor(clients: (ComfyApi | string)[], options?: SmartPoolV2Options);
|
|
61
|
+
/**
|
|
62
|
+
* Initialize pool and connect all clients
|
|
63
|
+
*/
|
|
64
|
+
connect(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Wait for pool to be ready
|
|
67
|
+
*/
|
|
68
|
+
ready(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Enqueue a workflow - automatically routed by workflow hash
|
|
71
|
+
* Optional preferredClientIds overrides default routing for this specific job
|
|
72
|
+
*/
|
|
73
|
+
enqueue(workflow: Workflow<any>, options?: {
|
|
74
|
+
preferredClientIds?: string[];
|
|
75
|
+
priority?: number;
|
|
76
|
+
metadata?: Record<string, any>;
|
|
77
|
+
}): Promise<JobId>;
|
|
78
|
+
/**
|
|
79
|
+
* Set workflow affinity - auto-creates group by workflow hash
|
|
80
|
+
* Maps workflow hash to preferred servers
|
|
81
|
+
*/
|
|
82
|
+
setAffinity(workflow: object, affinity: Omit<WorkflowAffinity, "workflowHash">): void;
|
|
83
|
+
/**
|
|
84
|
+
* Get job by ID
|
|
85
|
+
*/
|
|
86
|
+
getJob(jobId: JobId): JobRecord | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* Shutdown pool
|
|
89
|
+
*/
|
|
90
|
+
shutdown(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Get server performance metrics
|
|
93
|
+
*/
|
|
94
|
+
getServerPerformance(clientId: string): ServerPerformanceMetrics | undefined;
|
|
95
|
+
private createAffinityGroup;
|
|
96
|
+
/**
|
|
97
|
+
* Process affinity group queue - triggered by events only (no polling)
|
|
98
|
+
*/
|
|
99
|
+
private processAffinityGroup;
|
|
100
|
+
/**
|
|
101
|
+
* Enqueue job on server and manage execution
|
|
102
|
+
*/
|
|
103
|
+
private enqueueJobOnServer;
|
|
104
|
+
/**
|
|
105
|
+
* Handle job completion
|
|
106
|
+
*/
|
|
107
|
+
private handleJobCompletion;
|
|
108
|
+
/**
|
|
109
|
+
* Handle job failure
|
|
110
|
+
*/
|
|
111
|
+
private handleJobFailure;
|
|
112
|
+
/**
|
|
113
|
+
* Handle job timeout
|
|
114
|
+
*/
|
|
115
|
+
private handleJobTimeout;
|
|
116
|
+
private updateServerPerformance;
|
|
117
|
+
private sortServersByPerformance;
|
|
118
|
+
}
|
|
119
|
+
export {};
|
|
120
120
|
//# sourceMappingURL=SmartPoolV2.d.ts.map
|