@hasna/browser 0.0.1

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 (95) hide show
  1. package/dashboard/dist/assets/index-fnTihDNb.js +40 -0
  2. package/dashboard/dist/index.html +16 -0
  3. package/dist/cli/index.d.ts +3 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +8625 -0
  6. package/dist/cli/index.test.d.ts +2 -0
  7. package/dist/cli/index.test.d.ts.map +1 -0
  8. package/dist/db/agents.d.ts +16 -0
  9. package/dist/db/agents.d.ts.map +1 -0
  10. package/dist/db/agents.test.d.ts +2 -0
  11. package/dist/db/agents.test.d.ts.map +1 -0
  12. package/dist/db/console-log.d.ts +6 -0
  13. package/dist/db/console-log.d.ts.map +1 -0
  14. package/dist/db/crawl-results.d.ts +6 -0
  15. package/dist/db/crawl-results.d.ts.map +1 -0
  16. package/dist/db/heartbeats.d.ts +6 -0
  17. package/dist/db/heartbeats.d.ts.map +1 -0
  18. package/dist/db/network-log.d.ts +7 -0
  19. package/dist/db/network-log.d.ts.map +1 -0
  20. package/dist/db/projects.d.ts +9 -0
  21. package/dist/db/projects.d.ts.map +1 -0
  22. package/dist/db/projects.test.d.ts +2 -0
  23. package/dist/db/projects.test.d.ts.map +1 -0
  24. package/dist/db/recordings.d.ts +11 -0
  25. package/dist/db/recordings.d.ts.map +1 -0
  26. package/dist/db/recordings.test.d.ts +2 -0
  27. package/dist/db/recordings.test.d.ts.map +1 -0
  28. package/dist/db/schema.d.ts +5 -0
  29. package/dist/db/schema.d.ts.map +1 -0
  30. package/dist/db/schema.test.d.ts +2 -0
  31. package/dist/db/schema.test.d.ts.map +1 -0
  32. package/dist/db/sessions.d.ts +17 -0
  33. package/dist/db/sessions.d.ts.map +1 -0
  34. package/dist/db/sessions.test.d.ts +2 -0
  35. package/dist/db/sessions.test.d.ts.map +1 -0
  36. package/dist/db/snapshots.d.ts +7 -0
  37. package/dist/db/snapshots.d.ts.map +1 -0
  38. package/dist/engines/cdp.d.ts +26 -0
  39. package/dist/engines/cdp.d.ts.map +1 -0
  40. package/dist/engines/lightpanda.d.ts +25 -0
  41. package/dist/engines/lightpanda.d.ts.map +1 -0
  42. package/dist/engines/playwright.d.ts +27 -0
  43. package/dist/engines/playwright.d.ts.map +1 -0
  44. package/dist/engines/selector.d.ts +17 -0
  45. package/dist/engines/selector.d.ts.map +1 -0
  46. package/dist/engines/selector.test.d.ts +2 -0
  47. package/dist/engines/selector.test.d.ts.map +1 -0
  48. package/dist/index.d.ts +28 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +2080 -0
  51. package/dist/lib/actions.d.ts +33 -0
  52. package/dist/lib/actions.d.ts.map +1 -0
  53. package/dist/lib/actions.test.d.ts +2 -0
  54. package/dist/lib/actions.test.d.ts.map +1 -0
  55. package/dist/lib/agents.d.ts +9 -0
  56. package/dist/lib/agents.d.ts.map +1 -0
  57. package/dist/lib/agents.test.d.ts +2 -0
  58. package/dist/lib/agents.test.d.ts.map +1 -0
  59. package/dist/lib/console.d.ts +6 -0
  60. package/dist/lib/console.d.ts.map +1 -0
  61. package/dist/lib/crawler.d.ts +3 -0
  62. package/dist/lib/crawler.d.ts.map +1 -0
  63. package/dist/lib/extractor.d.ts +14 -0
  64. package/dist/lib/extractor.d.ts.map +1 -0
  65. package/dist/lib/extractor.test.d.ts +2 -0
  66. package/dist/lib/extractor.test.d.ts.map +1 -0
  67. package/dist/lib/network.d.ts +11 -0
  68. package/dist/lib/network.d.ts.map +1 -0
  69. package/dist/lib/network.test.d.ts +2 -0
  70. package/dist/lib/network.test.d.ts.map +1 -0
  71. package/dist/lib/performance.d.ts +13 -0
  72. package/dist/lib/performance.d.ts.map +1 -0
  73. package/dist/lib/recorder.d.ts +11 -0
  74. package/dist/lib/recorder.d.ts.map +1 -0
  75. package/dist/lib/recorder.test.d.ts +2 -0
  76. package/dist/lib/recorder.test.d.ts.map +1 -0
  77. package/dist/lib/screenshot.d.ts +9 -0
  78. package/dist/lib/screenshot.d.ts.map +1 -0
  79. package/dist/lib/session.d.ts +21 -0
  80. package/dist/lib/session.d.ts.map +1 -0
  81. package/dist/lib/storage.d.ts +19 -0
  82. package/dist/lib/storage.d.ts.map +1 -0
  83. package/dist/mcp/index.d.ts +3 -0
  84. package/dist/mcp/index.d.ts.map +1 -0
  85. package/dist/mcp/index.js +5944 -0
  86. package/dist/mcp/index.test.d.ts +2 -0
  87. package/dist/mcp/index.test.d.ts.map +1 -0
  88. package/dist/server/index.d.ts +2 -0
  89. package/dist/server/index.d.ts.map +1 -0
  90. package/dist/server/index.js +1580 -0
  91. package/dist/server/index.test.d.ts +2 -0
  92. package/dist/server/index.test.d.ts.map +1 -0
  93. package/dist/types/index.d.ts +313 -0
  94. package/dist/types/index.d.ts.map +1 -0
  95. package/package.json +74 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/cli/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { Agent } from "../types/index.js";
2
+ export interface RegisterAgentOptions {
3
+ description?: string;
4
+ sessionId?: string;
5
+ projectId?: string;
6
+ workingDir?: string;
7
+ }
8
+ export declare function registerAgent(name: string, opts?: RegisterAgentOptions): Agent;
9
+ export declare function heartbeat(agentId: string): void;
10
+ export declare function getAgent(id: string): Agent;
11
+ export declare function getAgentByName(name: string): Agent | null;
12
+ export declare function listAgents(projectId?: string): Agent[];
13
+ export declare function updateAgent(id: string, data: Partial<Omit<Agent, "id" | "created_at">>): Agent;
14
+ export declare function deleteAgent(id: string): void;
15
+ export declare function cleanStaleAgents(thresholdMs: number): number;
16
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,KAAK,CAoBlF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAU/C;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAK1C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAGzD;AAED,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAQtD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,KAAK,CAa9F;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG5C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAO5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agents.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.test.d.ts","sourceRoot":"","sources":["../../src/db/agents.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { ConsoleMessage, ConsoleLevel } from "../types/index.js";
2
+ export declare function logConsoleMessage(data: Omit<ConsoleMessage, "id" | "timestamp">): ConsoleMessage;
3
+ export declare function getConsoleMessage(id: string): ConsoleMessage | null;
4
+ export declare function getConsoleLog(sessionId: string, level?: ConsoleLevel): ConsoleMessage[];
5
+ export declare function clearConsoleLog(sessionId: string): void;
6
+ //# sourceMappingURL=console-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-log.d.ts","sourceRoot":"","sources":["../../src/db/console-log.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,cAAc,CAOhG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGnE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,EAAE,CAYvF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGvD"}
@@ -0,0 +1,6 @@
1
+ import type { CrawlResult } from "../types/index.js";
2
+ export declare function createCrawlResult(data: Omit<CrawlResult, "id" | "created_at" | "total_links">): CrawlResult;
3
+ export declare function getCrawlResult(id: string): CrawlResult | null;
4
+ export declare function listCrawlResults(projectId?: string): CrawlResult[];
5
+ export declare function deleteCrawlResult(id: string): void;
6
+ //# sourceMappingURL=crawl-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crawl-results.d.ts","sourceRoot":"","sources":["../../src/db/crawl-results.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AA2BlE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG,WAAW,CAe3G;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAI7D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAMlE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGlD"}
@@ -0,0 +1,6 @@
1
+ import type { Heartbeat } from "../types/index.js";
2
+ export declare function recordHeartbeat(agentId: string, sessionId?: string): Heartbeat;
3
+ export declare function getLastHeartbeat(agentId: string): Heartbeat | null;
4
+ export declare function listHeartbeats(agentId: string, limit?: number): Heartbeat[];
5
+ export declare function cleanOldHeartbeats(olderThanMs: number): number;
6
+ //# sourceMappingURL=heartbeats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/db/heartbeats.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAQ9E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,SAAS,EAAE,CAOvE;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK9D"}
@@ -0,0 +1,7 @@
1
+ import type { NetworkRequest } from "../types/index.js";
2
+ export declare function logRequest(data: Omit<NetworkRequest, "id" | "timestamp">): NetworkRequest;
3
+ export declare function getNetworkRequest(id: string): NetworkRequest | null;
4
+ export declare function getNetworkLog(sessionId: string): NetworkRequest[];
5
+ export declare function clearNetworkLog(sessionId: string): void;
6
+ export declare function deleteNetworkRequest(id: string): void;
7
+ //# sourceMappingURL=network-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-log.d.ts","sourceRoot":"","sources":["../../src/db/network-log.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,cAAc,CAqBzF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGnE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAKjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGrD"}
@@ -0,0 +1,9 @@
1
+ import type { Project } from "../types/index.js";
2
+ export declare function createProject(data: Omit<Project, "id" | "created_at">): Project;
3
+ export declare function ensureProject(name: string, path: string, description?: string): Project;
4
+ export declare function getProject(id: string): Project;
5
+ export declare function getProjectByName(name: string): Project | null;
6
+ export declare function listProjects(): Project[];
7
+ export declare function updateProject(id: string, data: Partial<Omit<Project, "id" | "created_at">>): Project;
8
+ export declare function deleteProject(id: string): void;
9
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,OAAO,CAO/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAOvF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK9C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAG7D;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAGxC;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,OAAO,CAWpG;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG9C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=projects.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.test.d.ts","sourceRoot":"","sources":["../../src/db/projects.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import type { Recording, RecordingStep } from "../types/index.js";
2
+ export declare function createRecording(data: Omit<Recording, "id" | "created_at">): Recording;
3
+ export declare function getRecording(id: string): Recording;
4
+ export declare function listRecordings(projectId?: string): Recording[];
5
+ export declare function updateRecording(id: string, data: {
6
+ name?: string;
7
+ steps?: RecordingStep[];
8
+ start_url?: string;
9
+ }): Recording;
10
+ export declare function deleteRecording(id: string): void;
11
+ //# sourceMappingURL=recordings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/db/recordings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAqBlE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,SAAS,CAOrF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAKlD;AAED,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAM9D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAW3H;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGhD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=recordings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordings.test.d.ts","sourceRoot":"","sources":["../../src/db/recordings.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Database } from "bun:sqlite";
2
+ export declare function getDataDir(): string;
3
+ export declare function getDatabase(path?: string): Database;
4
+ export declare function resetDatabase(): void;
5
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAKD,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAenD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.test.d.ts","sourceRoot":"","sources":["../../src/db/schema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import type { Session, SessionStatus, BrowserEngine } from "../types/index.js";
2
+ export interface CreateSessionData {
3
+ engine: BrowserEngine;
4
+ projectId?: string;
5
+ agentId?: string;
6
+ startUrl?: string;
7
+ }
8
+ export declare function createSession(data: CreateSessionData): Session;
9
+ export declare function getSession(id: string): Session;
10
+ export declare function listSessions(filter?: {
11
+ status?: SessionStatus;
12
+ projectId?: string;
13
+ }): Session[];
14
+ export declare function updateSessionStatus(id: string, status: SessionStatus): Session;
15
+ export declare function closeSession(id: string): Session;
16
+ export declare function deleteSession(id: string): void;
17
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +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;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAO9D;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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sessions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.test.d.ts","sourceRoot":"","sources":["../../src/db/sessions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { Snapshot } from "../types/index.js";
2
+ export declare function createSnapshot(data: Omit<Snapshot, "id" | "timestamp">): Snapshot;
3
+ export declare function getSnapshot(id: string): Snapshot | null;
4
+ export declare function listSnapshots(sessionId: string): Snapshot[];
5
+ export declare function deleteSnapshot(id: string): void;
6
+ export declare function deleteSnapshotsBySession(sessionId: string): void;
7
+ //# sourceMappingURL=snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/db/snapshots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,QAAQ,CAOjF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAGvD;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAK3D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG/C;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGhE"}
@@ -0,0 +1,26 @@
1
+ import type { Page, CDPSession } from "playwright";
2
+ import type { PerformanceMetrics, CoverageEntry, CoverageResult } from "../types/index.js";
3
+ export declare class CDPClient {
4
+ private session;
5
+ private networkEnabled;
6
+ private performanceEnabled;
7
+ constructor(session: CDPSession);
8
+ static fromPage(page: Page): Promise<CDPClient>;
9
+ send<T = unknown>(method: string, params?: Record<string, unknown>): Promise<T>;
10
+ on(event: string, handler: (data: any) => void): void;
11
+ off(event: string, handler: (data: any) => void): void;
12
+ enableNetwork(): Promise<void>;
13
+ enablePerformance(): Promise<void>;
14
+ getPerformanceMetrics(): Promise<PerformanceMetrics>;
15
+ startJSCoverage(): Promise<void>;
16
+ stopJSCoverage(): Promise<CoverageEntry[]>;
17
+ getCoverage(): Promise<CoverageResult>;
18
+ captureHAREntries(page: Page, handler: (entry: {
19
+ method: string;
20
+ url: string;
21
+ status: number;
22
+ duration: number;
23
+ }) => void): Promise<() => void>;
24
+ detach(): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=cdp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/engines/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAK3F,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,OAAO,EAAE,UAAU;WAIlB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAa/C,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYrF,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKrD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIhD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAkBpD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAuB1C,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAWtC,iBAAiB,CACrB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAC1F,OAAO,CAAC,MAAM,IAAI,CAAC;IAgChB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B"}
@@ -0,0 +1,25 @@
1
+ import { type ChildProcess } from "node:child_process";
2
+ import { type Browser, type Page } from "playwright";
3
+ export declare function isLightpandaAvailable(): boolean;
4
+ export declare function getLightpandaBinaryPath(): string;
5
+ export interface LightpandaProcess {
6
+ process: ChildProcess;
7
+ port: number;
8
+ wsUrl: string;
9
+ }
10
+ export declare function launchLightpanda(port?: number): Promise<LightpandaProcess>;
11
+ export declare function connectLightpanda(port?: number): Promise<Browser>;
12
+ export declare function stopLightpanda(): void;
13
+ export declare class LightpandaPage {
14
+ private page;
15
+ constructor(page: Page);
16
+ static create(port?: number): Promise<LightpandaPage>;
17
+ navigate(url: string): Promise<void>;
18
+ getContent(): Promise<string>;
19
+ getTitle(): Promise<string>;
20
+ getLinks(): Promise<string[]>;
21
+ getText(selector?: string): Promise<string>;
22
+ get rawPage(): Page;
23
+ close(): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=lightpanda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightpanda.d.ts","sourceRoot":"","sources":["../../src/engines/lightpanda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAM/D,wBAAgB,qBAAqB,IAAI,OAAO,CAoB/C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAsBhD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgDhF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcvE;AAED,wBAAgB,cAAc,IAAI,IAAI,CAKrC;AAID,qBAAa,cAAc;IACb,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;WAEjB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOrD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ7B,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjD,IAAI,OAAO,IAAI,IAAI,CAElB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -0,0 +1,27 @@
1
+ import { type Browser, type Page } from "playwright";
2
+ export interface PlaywrightLaunchOptions {
3
+ headless?: boolean;
4
+ viewport?: {
5
+ width: number;
6
+ height: number;
7
+ };
8
+ userAgent?: string;
9
+ locale?: string;
10
+ executablePath?: string;
11
+ }
12
+ export declare function launchPlaywright(options?: PlaywrightLaunchOptions): Promise<Browser>;
13
+ export declare function getPage(browser: Browser, options?: PlaywrightLaunchOptions): Promise<Page>;
14
+ export declare function closeBrowser(browser: Browser): Promise<void>;
15
+ export declare function closePage(page: Page): Promise<void>;
16
+ export declare class BrowserPool {
17
+ private pool;
18
+ private readonly maxSize;
19
+ private readonly options?;
20
+ constructor(maxSize?: number, options?: PlaywrightLaunchOptions);
21
+ acquire(): Promise<Browser>;
22
+ release(browser: Browser): void;
23
+ destroyAll(): Promise<void>;
24
+ get size(): number;
25
+ get available(): number;
26
+ }
27
+ //# sourceMappingURL=playwright.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ import type { BrowserEngine } from "../types/index.js";
2
+ import { UseCase } from "../types/index.js";
3
+ /**
4
+ * Select the optimal engine for a given use case.
5
+ * If explicit engine is provided, it takes precedence (unless "auto").
6
+ * Falls back to playwright if the preferred engine is not available.
7
+ */
8
+ export declare function selectEngine(useCase: UseCase, explicit?: BrowserEngine): BrowserEngine;
9
+ /**
10
+ * Returns true if the engine is available on this system.
11
+ */
12
+ export declare function isEngineAvailable(engine: BrowserEngine): boolean;
13
+ /**
14
+ * Infer a UseCase from a plain string label (for CLI/MCP convenience).
15
+ */
16
+ export declare function inferUseCase(label: string): UseCase;
17
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/engines/selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA0B5C;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,aAAa,GACvB,aAAa,CAYf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAMhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CA0BnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=selector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.test.d.ts","sourceRoot":"","sources":["../../src/engines/selector.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ export * from "./types/index.js";
2
+ export { getDatabase, getDataDir, resetDatabase } from "./db/schema.js";
3
+ export { createProject, ensureProject, getProject, getProjectByName, listProjects, updateProject, deleteProject } from "./db/projects.js";
4
+ export { registerAgent as dbRegisterAgent, heartbeat as dbHeartbeat, getAgent, getAgentByName, listAgents as dbListAgents, updateAgent, deleteAgent, cleanStaleAgents } from "./db/agents.js";
5
+ export type { RegisterAgentOptions } from "./db/agents.js";
6
+ export { createSession as dbCreateSession, getSession, listSessions as dbListSessions, closeSession as dbCloseSession, updateSessionStatus, deleteSession } from "./db/sessions.js";
7
+ export { createSnapshot, getSnapshot, listSnapshots, deleteSnapshot, deleteSnapshotsBySession } from "./db/snapshots.js";
8
+ export { logRequest, getNetworkRequest, getNetworkLog, clearNetworkLog, deleteNetworkRequest } from "./db/network-log.js";
9
+ export { logConsoleMessage, getConsoleMessage, getConsoleLog, clearConsoleLog } from "./db/console-log.js";
10
+ export { createRecording, getRecording, listRecordings as dbListRecordings, updateRecording, deleteRecording } from "./db/recordings.js";
11
+ export { createCrawlResult, getCrawlResult, listCrawlResults, deleteCrawlResult } from "./db/crawl-results.js";
12
+ export { recordHeartbeat, getLastHeartbeat, listHeartbeats, cleanOldHeartbeats } from "./db/heartbeats.js";
13
+ export * from "./engines/playwright.js";
14
+ export * from "./engines/cdp.js";
15
+ export * from "./engines/lightpanda.js";
16
+ export { selectEngine, isEngineAvailable, inferUseCase } from "./engines/selector.js";
17
+ export * from "./lib/session.js";
18
+ export * from "./lib/actions.js";
19
+ export * from "./lib/extractor.js";
20
+ export * from "./lib/network.js";
21
+ export * from "./lib/performance.js";
22
+ export * from "./lib/console.js";
23
+ export * from "./lib/screenshot.js";
24
+ export * from "./lib/storage.js";
25
+ export * from "./lib/recorder.js";
26
+ export * from "./lib/crawler.js";
27
+ export * from "./lib/agents.js";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1I,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,SAAS,IAAI,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,IAAI,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9L,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,UAAU,EAAE,YAAY,IAAI,cAAc,EAAE,YAAY,IAAI,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpL,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACzH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC1H,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,IAAI,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzI,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG3G,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGtF,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}