comfyui-node 1.6.3 → 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.
package/dist/index.d.ts CHANGED
@@ -14,6 +14,6 @@ export { seed } from "./tools.js";
14
14
  export { MultiWorkflowPool } from "./multipool/index.js";
15
15
  export { Workflow as MultiWorkflow } from "./multipool/workflow.js";
16
16
  export type { PoolEvent, ClientEventPayload, MultiWorkflowPoolOptions } from "./multipool/interfaces.js";
17
- export type { JobResults, JobState, JobStatus as MultiJobStatus, JobResultStatus } from "./multipool/job-state-registry.js";
18
- export type { JobProfileStats as MultiJobProfileStats } from "./multipool/job-profiler.js";
17
+ export type { JobResults, JobState, JobStatus as MultiJobStatus, JobResultStatus } from "./multipool/interfaces.js";
18
+ export type { JobProfileStats as MultiJobProfileStats } from "./multipool/interfaces.js";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnH,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,SAAS,IAAI,aAAa,EAC1B,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzG,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,IAAI,cAAc,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAC5H,YAAY,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnH,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,SAAS,IAAI,aAAa,EAC1B,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzG,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,IAAI,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACpH,YAAY,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,33 +1,24 @@
1
- import { MultiWorkflowPool } from "src/multipool/multi-workflow-pool.js";
2
- import { ComfyApi } from "src/client.js";
3
- import { Workflow } from "./workflow.js";
4
- import { Logger } from "./logger.js";
5
- export type ClientState = "idle" | "busy" | "offline";
6
- export interface EnhancedClient {
7
- url: string;
8
- state: ClientState;
9
- nodeName: string;
10
- priority?: number;
11
- api: ComfyApi;
12
- workflowAffinity?: Set<string>;
13
- }
14
- export declare class ClientRegistry {
15
- pool: MultiWorkflowPool;
16
- private logger;
17
- clients: Map<string, EnhancedClient>;
18
- workflowAffinityMap: Map<string, Set<string>>;
19
- constructor(pool: MultiWorkflowPool, logger: Logger);
20
- addClient(clientUrl: string, options?: {
21
- workflowAffinity: Workflow[];
22
- priority?: number;
23
- }): void;
24
- removeClient(clientUrl: string): void;
25
- getQueueStatus(clientUrl: string): Promise<import("../types/api.js").QueueResponse>;
26
- getOptimalClient(workflow: Workflow): EnhancedClient | null;
27
- hasClientsForWorkflow(workflowHash: string): boolean;
28
- getOptimalIdleClient(workflow: Workflow): Promise<EnhancedClient | null>;
29
- private checkClientQueueState;
30
- markClientIncompatibleWithWorkflow(url: string, structureHash: string | undefined): void;
31
- getAllEligibleClientsForWorkflow(workflow: Workflow): EnhancedClient[];
32
- }
1
+ import { MultiWorkflowPool } from "./multi-workflow-pool.js";
2
+ import { Workflow } from "./workflow.js";
3
+ import { Logger } from "./logger.js";
4
+ import { EnhancedClient } from "./interfaces.js";
5
+ export declare class ClientRegistry {
6
+ pool: MultiWorkflowPool;
7
+ private logger;
8
+ clients: Map<string, EnhancedClient>;
9
+ workflowAffinityMap: Map<string, Set<string>>;
10
+ constructor(pool: MultiWorkflowPool, logger: Logger);
11
+ addClient(clientUrl: string, options?: {
12
+ workflowAffinity: Workflow[];
13
+ priority?: number;
14
+ }): void;
15
+ removeClient(clientUrl: string): void;
16
+ getQueueStatus(clientUrl: string): Promise<import("../types/api.js").QueueResponse>;
17
+ getOptimalClient(workflow: Workflow): EnhancedClient | null;
18
+ hasClientsForWorkflow(workflowHash: string): boolean;
19
+ getOptimalIdleClient(workflow: Workflow): Promise<EnhancedClient | null>;
20
+ private checkClientQueueState;
21
+ markClientIncompatibleWithWorkflow(url: string, structureHash: string | undefined): void;
22
+ getAllEligibleClientsForWorkflow(workflow: Workflow): EnhancedClient[];
23
+ }
33
24
  //# sourceMappingURL=client-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-registry.d.ts","sourceRoot":"","sources":["../../src/multipool/client-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,qBAAa,cAAc;IAEzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAGjD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAa;gBAE9C,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;IAKnD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IA8B1F,YAAY,CAAC,SAAS,EAAE,MAAM;IAIxB,cAAc,CAAC,SAAS,EAAE,MAAM;IAQtC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;IAsCnC,qBAAqB,CAAC,YAAY,EAAE,MAAM;IAMpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;YA6B/B,qBAAqB;IAcnC,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS;IAcjF,gCAAgC,CAAC,QAAQ,EAAE,QAAQ;CAapD"}
1
+ {"version":3,"file":"client-registry.d.ts","sourceRoot":"","sources":["../../src/multipool/client-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,cAAc;IAEzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAGjD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAa;gBAE9C,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;IAKnD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IA8B1F,YAAY,CAAC,SAAS,EAAE,MAAM;IAIxB,cAAc,CAAC,SAAS,EAAE,MAAM;IAQtC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;IAsCnC,qBAAqB,CAAC,YAAY,EAAE,MAAM;IAMpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;YA6B/B,qBAAqB;IAcnC,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS;IAcjF,gCAAgC,CAAC,QAAQ,EAAE,QAAQ;CAapD"}
@@ -1,4 +1,4 @@
1
- import { ComfyApi } from "src/client.js";
1
+ import { ComfyApi } from "../client.js";
2
2
  export class ClientRegistry {
3
3
  pool;
4
4
  logger;
@@ -1 +1 @@
1
- {"version":3,"file":"client-registry.js","sourceRoot":"","sources":["../../src/multipool/client-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-registry.js","sourceRoot":"","sources":["../../src/multipool/client-registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
+ import { ImageInfo } from "../types/api.js";
2
+ import { ComfyApi } from "../client.js";
1
3
  import { LogLevel } from "./logger.js";
4
+ import { Workflow } from "./workflow.js";
5
+ import { JobProfiler } from "./job-profiler.js";
2
6
  /**
3
7
  * Pool event emitted through PoolEventManager
4
8
  * All ComfyUI client events are forwarded with the prefix "client:"
@@ -27,4 +31,106 @@ export interface MultiWorkflowPoolOptions {
27
31
  logLevel?: LogLevel;
28
32
  enableProfiling?: boolean;
29
33
  }
34
+ export type ClientState = "idle" | "busy" | "offline";
35
+ export interface EnhancedClient {
36
+ url: string;
37
+ state: ClientState;
38
+ nodeName: string;
39
+ priority?: number;
40
+ api: ComfyApi;
41
+ workflowAffinity?: Set<string>;
42
+ }
43
+ export interface NodeExecutionProfile {
44
+ /** Node ID */
45
+ nodeId: string;
46
+ /** Node class type (e.g., KSampler, VAELoader) */
47
+ type?: string;
48
+ /** Node title/label */
49
+ title?: string;
50
+ /** Timestamp when node started executing (ms since epoch) */
51
+ startedAt?: number;
52
+ /** Timestamp when node completed (ms since epoch) */
53
+ completedAt?: number;
54
+ /** Execution duration in milliseconds */
55
+ duration?: number;
56
+ /** Progress events captured for this node */
57
+ progressEvents?: Array<{
58
+ timestamp: number;
59
+ value: number;
60
+ max: number;
61
+ }>;
62
+ /** Whether this node was cached (instant execution) */
63
+ cached: boolean;
64
+ /** Execution status */
65
+ status: 'pending' | 'executing' | 'completed' | 'cached' | 'failed';
66
+ /** Error message if failed */
67
+ error?: string;
68
+ }
69
+ export interface JobProfileStats {
70
+ /** Prompt ID from ComfyUI */
71
+ promptId?: string;
72
+ /** Total execution time from queue to completion (ms) */
73
+ totalDuration: number;
74
+ /** Time spent in queue before execution started (ms) */
75
+ queueTime: number;
76
+ /** Actual execution time (ms) */
77
+ executionTime: number;
78
+ /** Timestamp when job was queued */
79
+ queuedAt: number;
80
+ /** Timestamp when execution started */
81
+ startedAt?: number;
82
+ /** Timestamp when execution completed */
83
+ completedAt: number;
84
+ /** Per-node execution profiles */
85
+ nodes: NodeExecutionProfile[];
86
+ /** Execution timeline summary */
87
+ summary: {
88
+ /** Total number of nodes in workflow */
89
+ totalNodes: number;
90
+ /** Number of nodes actually executed */
91
+ executedNodes: number;
92
+ /** Number of cached nodes */
93
+ cachedNodes: number;
94
+ /** Number of failed nodes */
95
+ failedNodes: number;
96
+ /** Slowest nodes (top 5) */
97
+ slowestNodes: Array<{
98
+ nodeId: string;
99
+ type?: string;
100
+ title?: string;
101
+ duration: number;
102
+ }>;
103
+ /** Nodes that emitted progress events */
104
+ progressNodes: string[];
105
+ };
106
+ }
107
+ export interface QueueJob {
108
+ jobId: string;
109
+ workflow: Workflow;
110
+ attempts: number;
111
+ }
112
+ export type JobStatus = "pending" | "assigned" | "running" | "completed" | "failed" | "canceled" | "no_clients";
113
+ export type JobResultStatus = "completed" | "failed" | "canceled";
114
+ export interface JobState {
115
+ jobId: string;
116
+ prompt_id?: string;
117
+ assignedClientUrl?: string;
118
+ workflow: Workflow;
119
+ status: JobStatus;
120
+ autoSeeds?: Record<string, number>;
121
+ resolver: ((results: JobResults) => void) | null;
122
+ resultsPromise?: Promise<JobResults>;
123
+ images?: ImageInfo[];
124
+ onProgress?: (progress: any) => void;
125
+ onPreview?: (preview: any) => void;
126
+ profiler?: JobProfiler;
127
+ }
128
+ export interface JobResults {
129
+ status: JobResultStatus;
130
+ jobId: string;
131
+ prompt_id: string;
132
+ images: string[];
133
+ error?: any;
134
+ profileStats?: JobProfileStats;
135
+ }
30
136
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/multipool/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/multipool/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;IACH,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;IAChB,uBAAuB;IACvB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpE,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,iCAAiC;IACjC,OAAO,EAAE;QACP,wCAAwC;QACxC,UAAU,EAAE,MAAM,CAAC;QACnB,wCAAwC;QACxC,aAAa,EAAE,MAAM,CAAC;QACtB,6BAA6B;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,6BAA6B;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,4BAA4B;QAC5B,YAAY,EAAE,KAAK,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC,CAAC;QACH,yCAAyC;QACzC,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAGD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,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"}
@@ -1,128 +1,65 @@
1
- /**
2
- * Job Profiler for MultiWorkflowPool - Automatic per-node execution profiling
3
- * ===========================================================================
4
- *
5
- * Captures detailed execution metrics for workflow jobs automatically:
6
- * - Per-node execution timing
7
- * - Progress tracking for nodes that emit progress events
8
- * - Execution order and dependencies
9
- * - Node types and metadata
10
- *
11
- * Usage:
12
- * ```ts
13
- * const pool = new MultiWorkflowPool({ enableProfiling: true });
14
- * const jobId = await pool.submitJob(workflow);
15
- *
16
- * const results = await pool.waitForJobCompletion(jobId);
17
- * console.log(results.profileStats);
18
- * ```
19
- */
20
- export interface NodeExecutionProfile {
21
- /** Node ID */
22
- nodeId: string;
23
- /** Node class type (e.g., KSampler, VAELoader) */
24
- type?: string;
25
- /** Node title/label */
26
- title?: string;
27
- /** Timestamp when node started executing (ms since epoch) */
28
- startedAt?: number;
29
- /** Timestamp when node completed (ms since epoch) */
30
- completedAt?: number;
31
- /** Execution duration in milliseconds */
32
- duration?: number;
33
- /** Progress events captured for this node */
34
- progressEvents?: Array<{
35
- timestamp: number;
36
- value: number;
37
- max: number;
38
- }>;
39
- /** Whether this node was cached (instant execution) */
40
- cached: boolean;
41
- /** Execution status */
42
- status: 'pending' | 'executing' | 'completed' | 'cached' | 'failed';
43
- /** Error message if failed */
44
- error?: string;
45
- }
46
- export interface JobProfileStats {
47
- /** Prompt ID from ComfyUI */
48
- promptId?: string;
49
- /** Total execution time from queue to completion (ms) */
50
- totalDuration: number;
51
- /** Time spent in queue before execution started (ms) */
52
- queueTime: number;
53
- /** Actual execution time (ms) */
54
- executionTime: number;
55
- /** Timestamp when job was queued */
56
- queuedAt: number;
57
- /** Timestamp when execution started */
58
- startedAt?: number;
59
- /** Timestamp when execution completed */
60
- completedAt: number;
61
- /** Per-node execution profiles */
62
- nodes: NodeExecutionProfile[];
63
- /** Execution timeline summary */
64
- summary: {
65
- /** Total number of nodes in workflow */
66
- totalNodes: number;
67
- /** Number of nodes actually executed */
68
- executedNodes: number;
69
- /** Number of cached nodes */
70
- cachedNodes: number;
71
- /** Number of failed nodes */
72
- failedNodes: number;
73
- /** Slowest nodes (top 5) */
74
- slowestNodes: Array<{
75
- nodeId: string;
76
- type?: string;
77
- title?: string;
78
- duration: number;
79
- }>;
80
- /** Nodes that emitted progress events */
81
- progressNodes: string[];
82
- };
83
- }
84
- /**
85
- * JobProfiler tracks execution metrics for a single workflow job.
86
- */
87
- export declare class JobProfiler {
88
- private queuedAt;
89
- private startedAt?;
90
- private completedAt?;
91
- private promptId?;
92
- private nodeProfiles;
93
- private lastExecutingNode;
94
- constructor(queuedAt: number, workflowJson?: Record<string, any>);
95
- /**
96
- * Record execution start event
97
- */
98
- onExecutionStart(promptId: string): void;
99
- /**
100
- * Record cached nodes
101
- */
102
- onCachedNodes(nodeIds: string[]): void;
103
- /**
104
- * Record node execution start
105
- */
106
- onNodeExecuting(nodeId: string): void;
107
- /**
108
- * Record node completion (when next node starts or execution ends)
109
- */
110
- private completeNode;
111
- /**
112
- * Record execution end (node: null event)
113
- */
114
- onExecutionComplete(): void;
115
- /**
116
- * Record progress event for a node
117
- */
118
- onProgress(nodeId: string | number, value: number, max: number): void;
119
- /**
120
- * Record node execution error
121
- */
122
- onNodeError(nodeId: string, error: string): void;
123
- /**
124
- * Generate final profile statistics
125
- */
126
- getStats(): JobProfileStats;
127
- }
1
+ /**
2
+ * Job Profiler for MultiWorkflowPool - Automatic per-node execution profiling
3
+ * ===========================================================================
4
+ *
5
+ * Captures detailed execution metrics for workflow jobs automatically:
6
+ * - Per-node execution timing
7
+ * - Progress tracking for nodes that emit progress events
8
+ * - Execution order and dependencies
9
+ * - Node types and metadata
10
+ *
11
+ * Usage:
12
+ * ```ts
13
+ * const pool = new MultiWorkflowPool({ enableProfiling: true });
14
+ * const jobId = await pool.submitJob(workflow);
15
+ *
16
+ * const results = await pool.waitForJobCompletion(jobId);
17
+ * console.log(results.profileStats);
18
+ * ```
19
+ */
20
+ import { JobProfileStats } from "./interfaces.js";
21
+ /**
22
+ * JobProfiler tracks execution metrics for a single workflow job.
23
+ */
24
+ export declare class JobProfiler {
25
+ private queuedAt;
26
+ private startedAt?;
27
+ private completedAt?;
28
+ private promptId?;
29
+ private nodeProfiles;
30
+ private lastExecutingNode;
31
+ constructor(queuedAt: number, workflowJson?: Record<string, any>);
32
+ /**
33
+ * Record execution start event
34
+ */
35
+ onExecutionStart(promptId: string): void;
36
+ /**
37
+ * Record cached nodes
38
+ */
39
+ onCachedNodes(nodeIds: string[]): void;
40
+ /**
41
+ * Record node execution start
42
+ */
43
+ onNodeExecuting(nodeId: string): void;
44
+ /**
45
+ * Record node completion (when next node starts or execution ends)
46
+ */
47
+ private completeNode;
48
+ /**
49
+ * Record execution end (node: null event)
50
+ */
51
+ onExecutionComplete(): void;
52
+ /**
53
+ * Record progress event for a node
54
+ */
55
+ onProgress(nodeId: string | number, value: number, max: number): void;
56
+ /**
57
+ * Record node execution error
58
+ */
59
+ onNodeError(nodeId: string, error: string): void;
60
+ /**
61
+ * Generate final profile statistics
62
+ */
63
+ getStats(): JobProfileStats;
64
+ }
128
65
  //# sourceMappingURL=job-profiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-profiler.d.ts","sourceRoot":"","sources":["../../src/multipool/job-profiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-profiler.d.ts","sourceRoot":"","sources":["../../src/multipool/job-profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,eAAe,EAAwB,MAAM,iBAAiB,CAAC;AAExE;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAgD;IACpE,OAAO,CAAC,iBAAiB,CAAuB;gBAEpC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoBhE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOxC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAoBtC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBrC;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAmB3B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAyBrE;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAoBhD;;OAEG;IACH,QAAQ,IAAI,eAAe;CA8C5B"}