@hasna/browser 0.0.6 → 0.0.9

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.
@@ -16,5 +16,20 @@ export declare function listSessions(filter?: {
16
16
  }): Session[];
17
17
  export declare function updateSessionStatus(id: string, status: SessionStatus): Session;
18
18
  export declare function closeSession(id: string): Session;
19
+ export declare function lockSession(id: string, agentId: string): Session;
20
+ export declare function unlockSession(id: string, agentId?: string): Session;
21
+ export declare function isSessionLocked(id: string): {
22
+ locked: boolean;
23
+ locked_by?: string;
24
+ locked_at?: string;
25
+ };
26
+ export declare function transferSession(id: string, toAgentId: string): Session;
27
+ export declare function getActiveSessionForAgent(agentId: string): Session | null;
28
+ export declare function getDefaultActiveSession(): Session | null;
29
+ export declare function countActiveSessions(): number;
19
30
  export declare function deleteSession(id: string): void;
31
+ export declare function addSessionTag(id: string, tag: string): string[];
32
+ export declare function removeSessionTag(id: string, tag: string): string[];
33
+ export declare function getSessionTags(id: string): string[];
34
+ export declare function listSessionsByTag(tag: string): Session[];
20
35
  //# sourceMappingURL=sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/db/sessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG/E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAiB9D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAG7D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK9C;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAQ/F;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAO9E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG9C"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/db/sessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG/E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAiB9D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAG7D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK9C;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAQ/F;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAO9E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAUhE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAUnE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAKvG;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAItE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAGxE;AAED,wBAAgB,uBAAuB,IAAI,OAAO,GAAG,IAAI,CAIxD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAI/D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIlE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAKxD"}
@@ -0,0 +1,11 @@
1
+ export interface TimelineEvent {
2
+ id: string;
3
+ session_id: string;
4
+ event_type: string;
5
+ details: string;
6
+ timestamp: string;
7
+ }
8
+ export declare function logEvent(sessionId: string, eventType: string, details?: Record<string, unknown>): void;
9
+ export declare function getTimeline(sessionId: string, limit?: number): TimelineEvent[];
10
+ export declare function clearTimeline(sessionId: string): void;
11
+ //# sourceMappingURL=timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../src/db/timeline.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAM1G;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,aAAa,EAAE,CAK3E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGrD"}
@@ -18,7 +18,7 @@ export declare class BrowserPool {
18
18
  private readonly maxSize;
19
19
  private readonly options?;
20
20
  constructor(maxSize?: number, options?: PlaywrightLaunchOptions);
21
- acquire(): Promise<Browser>;
21
+ acquire(headless?: boolean): Promise<Browser>;
22
22
  release(browser: Browser): void;
23
23
  destroyAll(): Promise<void>;
24
24
  get size(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../src/engines/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1F;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzD;AAUD,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA0B;gBAEvC,OAAO,SAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAKpD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IA0BjC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
1
+ {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../src/engines/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1F;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzD;AAUD,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA0B;gBAEvC,OAAO,SAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAKpD,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BzD,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
package/dist/index.js CHANGED
@@ -211,6 +211,38 @@ function runMigrations(db) {
211
211
  CREATE INDEX IF NOT EXISTS idx_gallery_favorite ON gallery_entries(is_favorite);
212
212
  CREATE INDEX IF NOT EXISTS idx_gallery_created ON gallery_entries(created_at);
213
213
  `
214
+ },
215
+ {
216
+ version: 3,
217
+ sql: `
218
+ -- Session lock/claim for multi-agent ownership
219
+ ALTER TABLE sessions ADD COLUMN locked_by TEXT;
220
+ ALTER TABLE sessions ADD COLUMN locked_at TEXT;
221
+ `
222
+ },
223
+ {
224
+ version: 4,
225
+ sql: `
226
+ CREATE TABLE IF NOT EXISTS session_events (
227
+ id TEXT PRIMARY KEY,
228
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
229
+ event_type TEXT NOT NULL,
230
+ details TEXT DEFAULT '{}',
231
+ timestamp TEXT DEFAULT (datetime('now'))
232
+ );
233
+ CREATE INDEX IF NOT EXISTS idx_session_events_session ON session_events(session_id, timestamp);
234
+ `
235
+ },
236
+ {
237
+ version: 5,
238
+ sql: `
239
+ CREATE TABLE IF NOT EXISTS session_tags (
240
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
241
+ tag TEXT NOT NULL,
242
+ PRIMARY KEY (session_id, tag)
243
+ );
244
+ CREATE INDEX IF NOT EXISTS idx_session_tags_tag ON session_tags(tag);
245
+ `
214
246
  }
215
247
  ];
216
248
  for (const m of migrations) {
@@ -6927,8 +6959,24 @@ function updateSessionStatus(id, status) {
6927
6959
  return getSession(id);
6928
6960
  }
6929
6961
  function closeSession(id) {
6962
+ const db = getDatabase();
6963
+ db.prepare("UPDATE sessions SET locked_by = NULL, locked_at = NULL WHERE id = ?").run(id);
6930
6964
  return updateSessionStatus(id, "closed");
6931
6965
  }
6966
+ function getActiveSessionForAgent(agentId) {
6967
+ const db = getDatabase();
6968
+ return db.query("SELECT * FROM sessions WHERE agent_id = ? AND status = 'active' ORDER BY created_at DESC LIMIT 1").get(agentId) ?? null;
6969
+ }
6970
+ function getDefaultActiveSession() {
6971
+ const db = getDatabase();
6972
+ const rows = db.query("SELECT * FROM sessions WHERE status = 'active' ORDER BY created_at DESC LIMIT 2").all();
6973
+ return rows.length === 1 ? rows[0] : null;
6974
+ }
6975
+ function countActiveSessions() {
6976
+ const db = getDatabase();
6977
+ const row = db.query("SELECT COUNT(*) as count FROM sessions WHERE status = 'active'").get();
6978
+ return row?.count ?? 0;
6979
+ }
6932
6980
  function deleteSession(id) {
6933
6981
  const db = getDatabase();
6934
6982
  db.prepare("DELETE FROM sessions WHERE id = ?").run(id);
@@ -7144,14 +7192,14 @@ class BrowserPool {
7144
7192
  this.maxSize = maxSize;
7145
7193
  this.options = options;
7146
7194
  }
7147
- async acquire() {
7195
+ async acquire(headless = true) {
7148
7196
  const available = this.pool.find((e) => !e.inUse);
7149
7197
  if (available) {
7150
7198
  available.inUse = true;
7151
7199
  return available.browser;
7152
7200
  }
7153
7201
  if (this.pool.length < this.maxSize) {
7154
- const browser = await launchPlaywright(this.options);
7202
+ const browser = await launchPlaywright({ ...this.options, headless });
7155
7203
  this.pool.push({ browser, inUse: true, createdAt: Date.now() });
7156
7204
  return browser;
7157
7205
  }
@@ -8163,6 +8211,20 @@ function setupDialogHandler(page, sessionId) {
8163
8211
 
8164
8212
  // src/lib/session.ts
8165
8213
  var handles = new Map;
8214
+ var pool = new BrowserPool(5);
8215
+ var SESSION_TTL_MS = parseInt(process.env["SESSION_TTL_MINUTES"] ?? "10", 10) * 60000;
8216
+ var ttlInterval = setInterval(async () => {
8217
+ const now = Date.now();
8218
+ for (const [id, handle] of handles) {
8219
+ if (now - handle.lastActivity > SESSION_TTL_MS) {
8220
+ try {
8221
+ await closeSession2(id);
8222
+ } catch {}
8223
+ }
8224
+ }
8225
+ }, 60000);
8226
+ if (ttlInterval.unref)
8227
+ ttlInterval.unref();
8166
8228
  function createBunProxy(view) {
8167
8229
  return view;
8168
8230
  }
@@ -8191,11 +8253,7 @@ async function createSession2(opts = {}) {
8191
8253
  const context = await browser.newContext({ viewport: opts.viewport ?? { width: 1280, height: 720 } });
8192
8254
  page = await context.newPage();
8193
8255
  } else {
8194
- browser = await launchPlaywright({
8195
- headless: opts.headless ?? true,
8196
- viewport: opts.viewport,
8197
- userAgent: opts.userAgent
8198
- });
8256
+ browser = await pool.acquire(opts.headless ?? true);
8199
8257
  page = await getPage(browser, { viewport: opts.viewport, userAgent: opts.userAgent });
8200
8258
  }
8201
8259
  const sessionName = opts.name ?? (opts.startUrl ? (() => {
@@ -8249,7 +8307,7 @@ async function createSession2(opts = {}) {
8249
8307
  } catch {}
8250
8308
  }
8251
8309
  }
8252
- handles.set(session.id, { browser, bunView, page, engine: bunView ? "bun" : resolvedEngine, cleanups, tokenBudget: { total: 0, used: 0 } });
8310
+ handles.set(session.id, { browser, bunView, page, engine: bunView ? "bun" : resolvedEngine, cleanups, tokenBudget: { total: 0, used: 0 }, lastActivity: Date.now(), autoGallery: opts.autoGallery ?? false });
8253
8311
  if (opts.startUrl) {
8254
8312
  try {
8255
8313
  if (bunView) {
@@ -8275,6 +8333,7 @@ function getSessionPage(sessionId) {
8275
8333
  handles.delete(sessionId);
8276
8334
  throw new SessionNotFoundError(sessionId);
8277
8335
  }
8336
+ handle.lastActivity = Date.now();
8278
8337
  return handle.page;
8279
8338
  }
8280
8339
  function getSessionBunView(sessionId) {
@@ -8322,10 +8381,8 @@ async function closeSession2(sessionId) {
8322
8381
  try {
8323
8382
  await handle.page.context().close();
8324
8383
  } catch {}
8325
- try {
8326
- if (handle.browser)
8327
- await closeBrowser(handle.browser);
8328
- } catch {}
8384
+ if (handle.browser)
8385
+ pool.release(handle.browser);
8329
8386
  }
8330
8387
  handles.delete(sessionId);
8331
8388
  }
@@ -8341,6 +8398,7 @@ async function closeAllSessions() {
8341
8398
  for (const [id] of handles) {
8342
8399
  await closeSession2(id).catch(() => {});
8343
8400
  }
8401
+ await pool.destroyAll();
8344
8402
  }
8345
8403
  function getSessionByName2(name) {
8346
8404
  return getSessionByName(name);
@@ -8352,6 +8410,48 @@ function getTokenBudget(sessionId) {
8352
8410
  const handle = handles.get(sessionId);
8353
8411
  return handle ? handle.tokenBudget : null;
8354
8412
  }
8413
+ function getActiveSessionForAgent2(agentId) {
8414
+ const session = getActiveSessionForAgent(agentId);
8415
+ if (!session)
8416
+ return null;
8417
+ const handle = handles.get(session.id);
8418
+ if (!handle)
8419
+ return null;
8420
+ try {
8421
+ if (handle.bunView)
8422
+ handle.bunView.url();
8423
+ else
8424
+ handle.page.url();
8425
+ } catch {
8426
+ handles.delete(session.id);
8427
+ return null;
8428
+ }
8429
+ return { session, page: handle.page };
8430
+ }
8431
+ function getDefaultSession() {
8432
+ const session = getDefaultActiveSession();
8433
+ if (!session)
8434
+ return null;
8435
+ const handle = handles.get(session.id);
8436
+ if (!handle)
8437
+ return null;
8438
+ try {
8439
+ if (handle.bunView)
8440
+ handle.bunView.url();
8441
+ else
8442
+ handle.page.url();
8443
+ } catch {
8444
+ handles.delete(session.id);
8445
+ return null;
8446
+ }
8447
+ return { session, page: handle.page };
8448
+ }
8449
+ function isAutoGallery(sessionId) {
8450
+ return handles.get(sessionId)?.autoGallery ?? false;
8451
+ }
8452
+ function countActiveSessions2() {
8453
+ return countActiveSessions();
8454
+ }
8355
8455
  // src/lib/snapshot.ts
8356
8456
  var lastSnapshots = new Map;
8357
8457
  var sessionRefMaps = new Map;
@@ -9491,6 +9591,7 @@ export {
9491
9591
  isLightpandaAvailable,
9492
9592
  isEngineAvailable,
9493
9593
  isBunSession,
9594
+ isAutoGallery,
9494
9595
  isAgentStale,
9495
9596
  inferUseCase,
9496
9597
  hoverRef,
@@ -9529,6 +9630,7 @@ export {
9529
9630
  getLastHeartbeat,
9530
9631
  getIndexedDB,
9531
9632
  getHTML,
9633
+ getDefaultSession,
9532
9634
  getDatabase,
9533
9635
  getDataDir,
9534
9636
  getCrawlResult,
@@ -9539,6 +9641,7 @@ export {
9539
9641
  getAgentByName,
9540
9642
  getAgent,
9541
9643
  getActiveSessions,
9644
+ getActiveSessionForAgent2 as getActiveSessionForAgent,
9542
9645
  getActiveAgents,
9543
9646
  generatePDF,
9544
9647
  findElements,
@@ -9574,6 +9677,7 @@ export {
9574
9677
  createProject,
9575
9678
  createCrawlResult,
9576
9679
  crawl,
9680
+ countActiveSessions2 as countActiveSessions,
9577
9681
  connectLightpanda,
9578
9682
  closeSession2 as closeSession,
9579
9683
  closePage,
@@ -9593,6 +9697,7 @@ export {
9593
9697
  checkRef,
9594
9698
  checkBox,
9595
9699
  capturePageErrors,
9700
+ pool as browserPool,
9596
9701
  attachPageListeners,
9597
9702
  addInterceptRule,
9598
9703
  UseCase,
@@ -1,7 +1,9 @@
1
1
  import type { Browser, Page } from "playwright";
2
2
  import type { Session, SessionOptions, SessionStatus } from "../types/index.js";
3
3
  import { BrowserEngine } from "../types/index.js";
4
+ import { BrowserPool } from "../engines/playwright.js";
4
5
  import { BunWebViewSession } from "../engines/bun-webview.js";
6
+ declare const pool: BrowserPool;
5
7
  export interface CreateSessionResult {
6
8
  session: Session;
7
9
  page: Page;
@@ -22,10 +24,15 @@ export declare function listSessions(filter?: {
22
24
  }): Session[];
23
25
  export declare function getActiveSessions(): Session[];
24
26
  export declare function closeAllSessions(): Promise<void>;
27
+ export { pool as browserPool };
25
28
  export declare function getSessionByName(name: string): Session | null;
26
29
  export declare function renameSession(id: string, name: string): Session;
27
30
  export declare function getTokenBudget(sessionId: string): {
28
31
  total: number;
29
32
  used: number;
30
33
  } | null;
34
+ export declare function getActiveSessionForAgent(agentId: string): CreateSessionResult | null;
35
+ export declare function getDefaultSession(): CreateSessionResult | null;
36
+ export declare function isAutoGallery(sessionId: string): boolean;
37
+ export declare function countActiveSessions(): number;
31
38
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAW,MAAM,mBAAmB,CAAC;AAK3D,OAAO,EAAE,iBAAiB,EAAyB,MAAM,2BAA2B,CAAC;AA6BrF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuG3F;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAiBtD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE7E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAIjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAIlE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAetE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAE/F;AAED,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAE7C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAItD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,kBAE5C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAErD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAW,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAA0F,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE/I,OAAO,EAAE,iBAAiB,EAAyB,MAAM,2BAA2B,CAAC;AAuBrF,QAAA,MAAM,IAAI,aAAqB,CAAC;AA0BhC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmG3F;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAkBtD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE7E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAIjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAIlE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAetE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAE/F;AAED,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAE7C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD;AAED,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AAE/B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,kBAE5C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAErD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAID,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAcpF;AAID,wBAAgB,iBAAiB,IAAI,mBAAmB,GAAG,IAAI,CAa9D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}