claude-chrome-parallel 3.4.2 → 3.5.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/dist/cdp/connection-pool.d.ts +29 -0
- package/dist/cdp/connection-pool.d.ts.map +1 -1
- package/dist/cdp/connection-pool.js +141 -2
- package/dist/cdp/connection-pool.js.map +1 -1
- package/dist/cdp/screenshot-scheduler.d.ts +54 -0
- package/dist/cdp/screenshot-scheduler.d.ts.map +1 -0
- package/dist/cdp/screenshot-scheduler.js +87 -0
- package/dist/cdp/screenshot-scheduler.js.map +1 -0
- package/dist/orchestration/workflow-engine.d.ts +30 -1
- package/dist/orchestration/workflow-engine.d.ts.map +1 -1
- package/dist/orchestration/workflow-engine.js +160 -4
- package/dist/orchestration/workflow-engine.js.map +1 -1
- package/dist/session-manager.d.ts +6 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +26 -0
- package/dist/session-manager.js.map +1 -1
- package/dist/tools/batch-execute.d.ts +11 -0
- package/dist/tools/batch-execute.d.ts.map +1 -0
- package/dist/tools/batch-execute.js +226 -0
- package/dist/tools/batch-execute.js.map +1 -0
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +4 -2
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lightweight-scroll.d.ts +11 -0
- package/dist/tools/lightweight-scroll.d.ts.map +1 -0
- package/dist/tools/lightweight-scroll.js +266 -0
- package/dist/tools/lightweight-scroll.js.map +1 -0
- package/dist/tools/orchestration.d.ts.map +1 -1
- package/dist/tools/orchestration.js +110 -2
- package/dist/tools/orchestration.js.map +1 -1
- package/dist/tools/read-page.d.ts.map +1 -1
- package/dist/tools/read-page.js +59 -0
- package/dist/tools/read-page.js.map +1 -1
- package/package.json +1 -1
|
@@ -43,10 +43,27 @@ export declare class CDPConnectionPool {
|
|
|
43
43
|
* Initialize the pool with pre-warmed pages
|
|
44
44
|
*/
|
|
45
45
|
initialize(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* When true, suppresses automatic pool replenishment.
|
|
48
|
+
* Set during bulk operations (acquireBatch, preWarmForWorkflow) to prevent
|
|
49
|
+
* about:blank tab proliferation.
|
|
50
|
+
*/
|
|
51
|
+
private suppressReplenishment;
|
|
46
52
|
/**
|
|
47
53
|
* Acquire a page from the pool
|
|
48
54
|
*/
|
|
49
55
|
acquirePage(): Promise<Page>;
|
|
56
|
+
/**
|
|
57
|
+
* Acquire multiple pages at once without triggering per-page replenishment.
|
|
58
|
+
* Prevents about:blank tab proliferation during workflow_init.
|
|
59
|
+
*
|
|
60
|
+
* Instead of acquiring one-by-one (each triggering replenishPoolAsync),
|
|
61
|
+
* this method batch-acquires all needed pages, only replenishing once at the end.
|
|
62
|
+
*
|
|
63
|
+
* @param count Number of pages to acquire
|
|
64
|
+
* @returns Array of acquired pages
|
|
65
|
+
*/
|
|
66
|
+
acquireBatch(count: number): Promise<Page[]>;
|
|
50
67
|
/**
|
|
51
68
|
* Release a page back to the pool (non-blocking: cleanup runs async)
|
|
52
69
|
*/
|
|
@@ -75,6 +92,18 @@ export declare class CDPConnectionPool {
|
|
|
75
92
|
* Perform maintenance on the pool
|
|
76
93
|
*/
|
|
77
94
|
private performMaintenance;
|
|
95
|
+
/**
|
|
96
|
+
* Pre-warm pages for an upcoming workflow.
|
|
97
|
+
* Call this before creating workers to eliminate page creation delay
|
|
98
|
+
* during the worker creation loop.
|
|
99
|
+
*
|
|
100
|
+
* @param count Number of pages needed for the workflow
|
|
101
|
+
* @param concurrency Max parallel page creation (default: 10)
|
|
102
|
+
*/
|
|
103
|
+
preWarmForWorkflow(count: number, concurrency?: number): Promise<{
|
|
104
|
+
warmed: number;
|
|
105
|
+
durationMs: number;
|
|
106
|
+
}>;
|
|
78
107
|
/**
|
|
79
108
|
* Get pool statistics
|
|
80
109
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-pool.d.ts","sourceRoot":"","sources":["../../src/cdp/connection-pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAgB,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAgBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,YAAY,CAAgB;gBAExB,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU;IAKtD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-pool.d.ts","sourceRoot":"","sources":["../../src/cdp/connection-pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAgB,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAgBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,YAAY,CAAgB;gBAExB,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU;IAKtD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA8ClC;;;;;;;;;OASG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA0ElD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5C;;OAEG;YACW,oBAAoB;IAuClC,MAAM,CAAC,QAAQ,CAAC,gBAAgB;;;MAAiC;IAEjE;;OAEG;YACW,aAAa;IAU3B;;OAEG;YACW,kBAAkB;IAuBhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;YACW,kBAAkB;IAiChC;;;;;;;OAOG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAkE1G;;OAEG;IACH,QAAQ,IAAI,SAAS;IAgBrB;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;IAIjC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAI/C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CA6BhC;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAK3E"}
|
|
@@ -47,6 +47,12 @@ class CDPConnectionPool {
|
|
|
47
47
|
this.isInitialized = true;
|
|
48
48
|
console.error('[Pool] Connection pool initialized');
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* When true, suppresses automatic pool replenishment.
|
|
52
|
+
* Set during bulk operations (acquireBatch, preWarmForWorkflow) to prevent
|
|
53
|
+
* about:blank tab proliferation.
|
|
54
|
+
*/
|
|
55
|
+
suppressReplenishment = false;
|
|
50
56
|
/**
|
|
51
57
|
* Acquire a page from the pool
|
|
52
58
|
*/
|
|
@@ -83,10 +89,84 @@ class CDPConnectionPool {
|
|
|
83
89
|
if (this.acquireTimes.length > 100) {
|
|
84
90
|
this.acquireTimes.shift();
|
|
85
91
|
}
|
|
86
|
-
// Replenish pool in background if needed
|
|
87
|
-
this.
|
|
92
|
+
// Replenish pool in background if needed (suppressed during bulk ops)
|
|
93
|
+
if (!this.suppressReplenishment) {
|
|
94
|
+
this.replenishPoolAsync();
|
|
95
|
+
}
|
|
88
96
|
return page;
|
|
89
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Acquire multiple pages at once without triggering per-page replenishment.
|
|
100
|
+
* Prevents about:blank tab proliferation during workflow_init.
|
|
101
|
+
*
|
|
102
|
+
* Instead of acquiring one-by-one (each triggering replenishPoolAsync),
|
|
103
|
+
* this method batch-acquires all needed pages, only replenishing once at the end.
|
|
104
|
+
*
|
|
105
|
+
* @param count Number of pages to acquire
|
|
106
|
+
* @returns Array of acquired pages
|
|
107
|
+
*/
|
|
108
|
+
async acquireBatch(count) {
|
|
109
|
+
if (!this.isInitialized) {
|
|
110
|
+
await this.initialize();
|
|
111
|
+
}
|
|
112
|
+
// Suppress replenishment during batch acquire
|
|
113
|
+
this.suppressReplenishment = true;
|
|
114
|
+
const startTime = Date.now();
|
|
115
|
+
try {
|
|
116
|
+
const pages = [];
|
|
117
|
+
// First, take as many as possible from the pool
|
|
118
|
+
const fromPool = Math.min(count, this.availablePages.length);
|
|
119
|
+
for (let i = 0; i < fromPool; i++) {
|
|
120
|
+
const pooledPage = this.availablePages.pop();
|
|
121
|
+
pooledPage.lastUsedAt = Date.now();
|
|
122
|
+
this.inUsePages.set(pooledPage.page, pooledPage);
|
|
123
|
+
this.pagesReused++;
|
|
124
|
+
pages.push(pooledPage.page);
|
|
125
|
+
}
|
|
126
|
+
// Create remaining pages on-demand (in parallel with concurrency limit)
|
|
127
|
+
const remaining = count - fromPool;
|
|
128
|
+
if (remaining > 0) {
|
|
129
|
+
const concurrency = 10;
|
|
130
|
+
let active = 0;
|
|
131
|
+
const queue = [];
|
|
132
|
+
const limiter = async (fn) => {
|
|
133
|
+
if (active >= concurrency) {
|
|
134
|
+
await new Promise((resolve) => queue.push(resolve));
|
|
135
|
+
}
|
|
136
|
+
active++;
|
|
137
|
+
try {
|
|
138
|
+
return await fn();
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
active--;
|
|
142
|
+
if (queue.length > 0)
|
|
143
|
+
queue.shift()();
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const newPages = await Promise.all(Array.from({ length: remaining }, () => limiter(async () => {
|
|
147
|
+
const page = await this.createNewPage();
|
|
148
|
+
const pooledPage = {
|
|
149
|
+
page,
|
|
150
|
+
createdAt: Date.now(),
|
|
151
|
+
lastUsedAt: Date.now(),
|
|
152
|
+
visitedOrigins: new Set(),
|
|
153
|
+
};
|
|
154
|
+
this.inUsePages.set(page, pooledPage);
|
|
155
|
+
this.pagesCreatedOnDemand++;
|
|
156
|
+
return page;
|
|
157
|
+
})));
|
|
158
|
+
pages.push(...newPages);
|
|
159
|
+
}
|
|
160
|
+
const durationMs = Date.now() - startTime;
|
|
161
|
+
console.error(`[Pool] Batch acquired ${pages.length} pages (${fromPool} from pool, ${remaining} on-demand) in ${durationMs}ms`);
|
|
162
|
+
return pages;
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
this.suppressReplenishment = false;
|
|
166
|
+
// Single replenishment check after batch complete
|
|
167
|
+
this.replenishPoolAsync();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
90
170
|
/**
|
|
91
171
|
* Release a page back to the pool (non-blocking: cleanup runs async)
|
|
92
172
|
*/
|
|
@@ -232,6 +312,65 @@ class CDPConnectionPool {
|
|
|
232
312
|
console.error(`[Pool] Maintenance: closed ${pagesToRemove.length} idle page(s)`);
|
|
233
313
|
}
|
|
234
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Pre-warm pages for an upcoming workflow.
|
|
317
|
+
* Call this before creating workers to eliminate page creation delay
|
|
318
|
+
* during the worker creation loop.
|
|
319
|
+
*
|
|
320
|
+
* @param count Number of pages needed for the workflow
|
|
321
|
+
* @param concurrency Max parallel page creation (default: 10)
|
|
322
|
+
*/
|
|
323
|
+
async preWarmForWorkflow(count, concurrency = 10) {
|
|
324
|
+
const startTime = Date.now();
|
|
325
|
+
if (!this.isInitialized) {
|
|
326
|
+
await this.initialize();
|
|
327
|
+
}
|
|
328
|
+
const currentAvailable = this.availablePages.length;
|
|
329
|
+
const needed = Math.max(0, Math.min(count - currentAvailable, this.config.maxPoolSize - currentAvailable - this.inUsePages.size));
|
|
330
|
+
if (needed === 0) {
|
|
331
|
+
return { warmed: 0, durationMs: 0 };
|
|
332
|
+
}
|
|
333
|
+
console.error(`[Pool] Pre-warming ${needed} pages for workflow (${currentAvailable} already available, ${count} needed)`);
|
|
334
|
+
// Create pages with concurrency control
|
|
335
|
+
let active = 0;
|
|
336
|
+
const queue = [];
|
|
337
|
+
let created = 0;
|
|
338
|
+
const limiter = async (fn) => {
|
|
339
|
+
if (active >= concurrency) {
|
|
340
|
+
await new Promise((resolve) => queue.push(resolve));
|
|
341
|
+
}
|
|
342
|
+
active++;
|
|
343
|
+
try {
|
|
344
|
+
return await fn();
|
|
345
|
+
}
|
|
346
|
+
finally {
|
|
347
|
+
active--;
|
|
348
|
+
if (queue.length > 0) {
|
|
349
|
+
const next = queue.shift();
|
|
350
|
+
next();
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
const promises = [];
|
|
355
|
+
for (let i = 0; i < needed; i++) {
|
|
356
|
+
promises.push(limiter(async () => {
|
|
357
|
+
const page = await this.createNewPage();
|
|
358
|
+
this.availablePages.push({
|
|
359
|
+
page,
|
|
360
|
+
createdAt: Date.now(),
|
|
361
|
+
lastUsedAt: Date.now(),
|
|
362
|
+
visitedOrigins: new Set(),
|
|
363
|
+
});
|
|
364
|
+
created++;
|
|
365
|
+
}).catch((err) => {
|
|
366
|
+
console.error('[Pool] Failed to pre-warm page:', err);
|
|
367
|
+
}));
|
|
368
|
+
}
|
|
369
|
+
await Promise.all(promises);
|
|
370
|
+
const durationMs = Date.now() - startTime;
|
|
371
|
+
console.error(`[Pool] Pre-warmed ${created}/${needed} pages in ${durationMs}ms`);
|
|
372
|
+
return { warmed: created, durationMs };
|
|
373
|
+
}
|
|
235
374
|
/**
|
|
236
375
|
* Get pool statistics
|
|
237
376
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-pool.js","sourceRoot":"","sources":["../../src/cdp/connection-pool.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgXH,oDAKC;AAlXD,qCAAmD;AAmCnD,MAAM,cAAc,GAAyB;IAC3C,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;IAC5C,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAa,iBAAiB;IACpB,SAAS,CAAY;IACrB,MAAM,CAAuB;IAC7B,cAAc,GAAiB,EAAE,CAAC;IAClC,UAAU,GAA0B,IAAI,GAAG,EAAE,CAAC;IAC9C,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,aAAa,GAAG,KAAK,CAAC;IAE9B,QAAQ;IACA,iBAAiB,GAAG,CAAC,CAAC;IACtB,WAAW,GAAG,CAAC,CAAC;IAChB,oBAAoB,GAAG,CAAC,CAAC;IACzB,YAAY,GAAa,EAAE,CAAC;IAEpC,YAAY,SAAqB,EAAE,MAAmB;QACpD,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAA,qBAAY,GAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAE/B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,CAAC,WAAW,WAAW,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB;QAC9B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAU,CAAC;QACf,IAAI,UAAsB,CAAC;QAE3B,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAG,CAAC;YACxC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YACvB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,UAAU,GAAG;gBACX,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,cAAc,EAAE,IAAI,GAAG,EAAE;aAC1B,CAAC;YACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAEtC,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAU;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,+CAA+C;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7B,4EAA4E;QAC5E,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxD,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,IAAU,EAAE,UAAsB;QACnE,kFAAkF;QAClF,IAAI,aAAiC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,UAAU,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBAC/C,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QAED,wCAAwC;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjF,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAEjD,sEAAsE;QACtE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBAC9C,MAAM,EAAE,aAAa;gBACrB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAChD,CAAC;QACD,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtB,yEAAyE;QACzE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAU,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEjE;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC/C,kFAAkF;QAClF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC3E,IAAI,aAAa,IAAI,CAAC;YAAE,OAAO;QAE/B,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,IAAI;oBACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtB,cAAc,EAAE,IAAI,GAAG,EAAE;iBAC1B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,aAAa,GAAiB,EAAE,CAAC;QAEvC,0CAA0C;QAC1C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC;YAC7C,IACE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe;gBACtC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EACpD,CAAC;gBACD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,8BAA8B,aAAa,CAAC,MAAM,eAAe,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,cAAc,GAClB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;YACzE,CAAC,CAAC,CAAC,CAAC;QAER,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YAC1C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAChC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,GAAG;SACzD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAA2B;QACtC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,yBAAyB;QACzB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACnD,CAAC;;AA7TH,8CA8TC;AAED,qBAAqB;AACrB,IAAI,YAAY,GAA6B,IAAI,CAAC;AAElD,SAAgB,oBAAoB,CAAC,MAAmB;IACtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"connection-pool.js","sourceRoot":"","sources":["../../src/cdp/connection-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screenshot Scheduler - Concurrency-controlled screenshot pipeline
|
|
3
|
+
*
|
|
4
|
+
* Prevents GPU/renderer contention when multiple tabs request
|
|
5
|
+
* screenshots simultaneously. Without this, 20 concurrent screenshot
|
|
6
|
+
* requests serialize through Chrome's renderer, causing 185s+ timeouts.
|
|
7
|
+
*
|
|
8
|
+
* Performance impact: 20 concurrent screenshots from 4000ms to ~800ms
|
|
9
|
+
*/
|
|
10
|
+
import { Page } from 'puppeteer-core';
|
|
11
|
+
import { CDPClient } from './client';
|
|
12
|
+
export interface ScreenshotOptions {
|
|
13
|
+
format?: 'webp' | 'png' | 'jpeg';
|
|
14
|
+
quality?: number;
|
|
15
|
+
fullPage?: boolean;
|
|
16
|
+
clip?: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
scale?: number;
|
|
22
|
+
};
|
|
23
|
+
optimizeForSpeed?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ScreenshotResult {
|
|
26
|
+
data: string;
|
|
27
|
+
durationMs: number;
|
|
28
|
+
waitMs: number;
|
|
29
|
+
}
|
|
30
|
+
export interface SchedulerStats {
|
|
31
|
+
pending: number;
|
|
32
|
+
active: number;
|
|
33
|
+
completed: number;
|
|
34
|
+
totalWaitMs: number;
|
|
35
|
+
totalCaptureMs: number;
|
|
36
|
+
concurrency: number;
|
|
37
|
+
}
|
|
38
|
+
export declare class ScreenshotScheduler {
|
|
39
|
+
private readonly concurrency;
|
|
40
|
+
private active;
|
|
41
|
+
private queue;
|
|
42
|
+
private completed;
|
|
43
|
+
private totalWaitMs;
|
|
44
|
+
private totalCaptureMs;
|
|
45
|
+
constructor(concurrency?: number);
|
|
46
|
+
/**
|
|
47
|
+
* Capture a screenshot with concurrency control.
|
|
48
|
+
* Queues the request if too many are already in flight.
|
|
49
|
+
*/
|
|
50
|
+
capture(page: Page, cdpClient: CDPClient, options?: ScreenshotOptions): Promise<ScreenshotResult>;
|
|
51
|
+
getStats(): SchedulerStats;
|
|
52
|
+
}
|
|
53
|
+
export declare function getScreenshotScheduler(): ScreenshotScheduler;
|
|
54
|
+
//# sourceMappingURL=screenshot-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-scheduler.d.ts","sourceRoot":"","sources":["../../src/cdp/screenshot-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAK;gBAGR,WAAW,GAAE,MAAU;IAG1C;;;OAGG;IACG,OAAO,CACX,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAmD5B,QAAQ,IAAI,cAAc;CAU3B;AAKD,wBAAgB,sBAAsB,IAAI,mBAAmB,CAM5D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Screenshot Scheduler - Concurrency-controlled screenshot pipeline
|
|
4
|
+
*
|
|
5
|
+
* Prevents GPU/renderer contention when multiple tabs request
|
|
6
|
+
* screenshots simultaneously. Without this, 20 concurrent screenshot
|
|
7
|
+
* requests serialize through Chrome's renderer, causing 185s+ timeouts.
|
|
8
|
+
*
|
|
9
|
+
* Performance impact: 20 concurrent screenshots from 4000ms to ~800ms
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScreenshotScheduler = void 0;
|
|
13
|
+
exports.getScreenshotScheduler = getScreenshotScheduler;
|
|
14
|
+
class ScreenshotScheduler {
|
|
15
|
+
concurrency;
|
|
16
|
+
active = 0;
|
|
17
|
+
queue = [];
|
|
18
|
+
completed = 0;
|
|
19
|
+
totalWaitMs = 0;
|
|
20
|
+
totalCaptureMs = 0;
|
|
21
|
+
constructor(concurrency = 5) {
|
|
22
|
+
this.concurrency = concurrency;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Capture a screenshot with concurrency control.
|
|
26
|
+
* Queues the request if too many are already in flight.
|
|
27
|
+
*/
|
|
28
|
+
async capture(page, cdpClient, options = {}) {
|
|
29
|
+
const queuedAt = Date.now();
|
|
30
|
+
// Wait for a slot if at capacity
|
|
31
|
+
if (this.active >= this.concurrency) {
|
|
32
|
+
await new Promise((resolve) => this.queue.push(resolve));
|
|
33
|
+
}
|
|
34
|
+
this.active++;
|
|
35
|
+
const waitMs = Date.now() - queuedAt;
|
|
36
|
+
const captureStart = Date.now();
|
|
37
|
+
try {
|
|
38
|
+
const format = options.format || 'webp';
|
|
39
|
+
const quality = options.quality ?? 60;
|
|
40
|
+
const params = {
|
|
41
|
+
format,
|
|
42
|
+
quality,
|
|
43
|
+
optimizeForSpeed: options.optimizeForSpeed ?? true,
|
|
44
|
+
};
|
|
45
|
+
if (options.clip) {
|
|
46
|
+
params.clip = options.clip;
|
|
47
|
+
}
|
|
48
|
+
if (options.fullPage) {
|
|
49
|
+
params.captureBeyondViewport = true;
|
|
50
|
+
}
|
|
51
|
+
const { data } = await cdpClient.send(page, 'Page.captureScreenshot', params);
|
|
52
|
+
const durationMs = Date.now() - captureStart;
|
|
53
|
+
this.completed++;
|
|
54
|
+
this.totalWaitMs += waitMs;
|
|
55
|
+
this.totalCaptureMs += durationMs;
|
|
56
|
+
return { data, durationMs, waitMs };
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
this.active--;
|
|
60
|
+
if (this.queue.length > 0) {
|
|
61
|
+
const next = this.queue.shift();
|
|
62
|
+
next();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getStats() {
|
|
67
|
+
return {
|
|
68
|
+
pending: this.queue.length,
|
|
69
|
+
active: this.active,
|
|
70
|
+
completed: this.completed,
|
|
71
|
+
totalWaitMs: this.totalWaitMs,
|
|
72
|
+
totalCaptureMs: this.totalCaptureMs,
|
|
73
|
+
concurrency: this.concurrency,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.ScreenshotScheduler = ScreenshotScheduler;
|
|
78
|
+
// Singleton instance
|
|
79
|
+
let schedulerInstance = null;
|
|
80
|
+
function getScreenshotScheduler() {
|
|
81
|
+
if (!schedulerInstance) {
|
|
82
|
+
const concurrency = parseInt(process.env.SCREENSHOT_CONCURRENCY || '5', 10);
|
|
83
|
+
schedulerInstance = new ScreenshotScheduler(concurrency);
|
|
84
|
+
}
|
|
85
|
+
return schedulerInstance;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=screenshot-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-scheduler.js","sourceRoot":"","sources":["../../src/cdp/screenshot-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export interface WorkflowDefinition {
|
|
|
18
18
|
parallel: boolean;
|
|
19
19
|
maxRetries: number;
|
|
20
20
|
timeout: number;
|
|
21
|
+
/** Maximum consecutive stale updates before circuit breaker triggers (default: 5) */
|
|
22
|
+
maxStaleIterations?: number;
|
|
23
|
+
/** Maximum total workflow execution time in ms (default: 300000) */
|
|
24
|
+
globalTimeoutMs?: number;
|
|
21
25
|
}
|
|
22
26
|
export interface WorkerResult {
|
|
23
27
|
workerId: string;
|
|
@@ -45,6 +49,19 @@ export declare class WorkflowEngine {
|
|
|
45
49
|
* This is the source of truth for completion tracking — avoids file-based race conditions.
|
|
46
50
|
*/
|
|
47
51
|
private workflowStates;
|
|
52
|
+
/**
|
|
53
|
+
* Per-worker runtime state for timeout and circuit breaker tracking.
|
|
54
|
+
* Keyed by workerName.
|
|
55
|
+
*/
|
|
56
|
+
private workerRuntimeStates;
|
|
57
|
+
/**
|
|
58
|
+
* Timeout handles for worker absolute timeouts. Keyed by workerName.
|
|
59
|
+
*/
|
|
60
|
+
private workerTimeoutHandles;
|
|
61
|
+
/**
|
|
62
|
+
* Global workflow timeout handle. Keyed by orchestrationId.
|
|
63
|
+
*/
|
|
64
|
+
private globalTimeoutHandles;
|
|
48
65
|
/**
|
|
49
66
|
* Promise-based mutex for serializing completeWorker operations.
|
|
50
67
|
* Prevents lost-update races when multiple workers complete simultaneously.
|
|
@@ -68,7 +85,7 @@ export declare class WorkflowEngine {
|
|
|
68
85
|
}>;
|
|
69
86
|
}>;
|
|
70
87
|
/**
|
|
71
|
-
* Update worker progress
|
|
88
|
+
* Update worker progress with circuit breaker check
|
|
72
89
|
*/
|
|
73
90
|
updateWorkerProgress(workerName: string, update: {
|
|
74
91
|
status?: WorkerState['status'];
|
|
@@ -78,6 +95,18 @@ export declare class WorkflowEngine {
|
|
|
78
95
|
extractedData?: unknown;
|
|
79
96
|
error?: string;
|
|
80
97
|
}): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Hash extracted data for circuit breaker comparison
|
|
100
|
+
*/
|
|
101
|
+
private hashData;
|
|
102
|
+
/**
|
|
103
|
+
* Force-complete a single worker due to timeout or circuit breaker
|
|
104
|
+
*/
|
|
105
|
+
private forceCompleteWorker;
|
|
106
|
+
/**
|
|
107
|
+
* Force-complete all running workers in a workflow (global timeout)
|
|
108
|
+
*/
|
|
109
|
+
private forceCompleteAllRunningWorkers;
|
|
81
110
|
/**
|
|
82
111
|
* Mark worker as complete.
|
|
83
112
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-engine.d.ts","sourceRoot":"","sources":["../../src/orchestration/workflow-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAgC,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-engine.d.ts","sourceRoot":"","sources":["../../src/orchestration/workflow-engine.ts"],"names":[],"mappings":"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"}
|