@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/server/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,313 @@
1
+ export type BrowserEngine = "playwright" | "cdp" | "lightpanda" | "auto";
2
+ export declare enum UseCase {
3
+ SCRAPE = "scrape",
4
+ EXTRACT_LINKS = "extract_links",
5
+ STATUS_CHECK = "status_check",
6
+ FORM_FILL = "form_fill",
7
+ SPA_NAVIGATE = "spa_navigate",
8
+ SCREENSHOT = "screenshot",
9
+ AUTH_FLOW = "auth_flow",
10
+ MULTI_TAB = "multi_tab",
11
+ NETWORK_MONITOR = "network_monitor",
12
+ HAR_CAPTURE = "har_capture",
13
+ PERF_PROFILE = "perf_profile",
14
+ SCRIPT_INJECT = "script_inject",
15
+ COVERAGE = "coverage",
16
+ RECORD_REPLAY = "record_replay"
17
+ }
18
+ export interface Project {
19
+ id: string;
20
+ name: string;
21
+ path: string;
22
+ description?: string;
23
+ created_at: string;
24
+ }
25
+ export interface Agent {
26
+ id: string;
27
+ name: string;
28
+ description?: string;
29
+ session_id?: string;
30
+ project_id?: string;
31
+ working_dir?: string;
32
+ last_seen: string;
33
+ created_at: string;
34
+ }
35
+ export interface Heartbeat {
36
+ id: string;
37
+ agent_id: string;
38
+ session_id?: string;
39
+ timestamp: string;
40
+ }
41
+ export type SessionStatus = "active" | "closed" | "error";
42
+ export interface Session {
43
+ id: string;
44
+ engine: BrowserEngine;
45
+ project_id?: string;
46
+ agent_id?: string;
47
+ start_url?: string;
48
+ status: SessionStatus;
49
+ created_at: string;
50
+ closed_at?: string;
51
+ }
52
+ export interface SessionOptions {
53
+ engine?: BrowserEngine;
54
+ useCase?: UseCase;
55
+ projectId?: string;
56
+ agentId?: string;
57
+ startUrl?: string;
58
+ headless?: boolean;
59
+ viewport?: {
60
+ width: number;
61
+ height: number;
62
+ };
63
+ userAgent?: string;
64
+ }
65
+ export interface Snapshot {
66
+ id: string;
67
+ session_id: string;
68
+ url: string;
69
+ title?: string;
70
+ html?: string;
71
+ screenshot_path?: string;
72
+ timestamp: string;
73
+ }
74
+ export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
75
+ export interface NetworkRequest {
76
+ id: string;
77
+ session_id: string;
78
+ method: string;
79
+ url: string;
80
+ status_code?: number;
81
+ request_headers?: string;
82
+ response_headers?: string;
83
+ request_body?: string;
84
+ body_size?: number;
85
+ duration_ms?: number;
86
+ resource_type?: string;
87
+ timestamp: string;
88
+ }
89
+ export interface HAREntry {
90
+ startedDateTime: string;
91
+ time: number;
92
+ request: {
93
+ method: string;
94
+ url: string;
95
+ headers: Array<{
96
+ name: string;
97
+ value: string;
98
+ }>;
99
+ postData?: {
100
+ text: string;
101
+ };
102
+ };
103
+ response: {
104
+ status: number;
105
+ statusText: string;
106
+ headers: Array<{
107
+ name: string;
108
+ value: string;
109
+ }>;
110
+ content: {
111
+ size: number;
112
+ mimeType: string;
113
+ text?: string;
114
+ };
115
+ };
116
+ timings: {
117
+ send: number;
118
+ wait: number;
119
+ receive: number;
120
+ };
121
+ }
122
+ export interface HAR {
123
+ log: {
124
+ version: string;
125
+ creator: {
126
+ name: string;
127
+ version: string;
128
+ };
129
+ entries: HAREntry[];
130
+ };
131
+ }
132
+ export interface InterceptRule {
133
+ pattern: string;
134
+ action: "block" | "modify" | "log";
135
+ response?: {
136
+ status: number;
137
+ body: string;
138
+ headers?: Record<string, string>;
139
+ };
140
+ }
141
+ export type ConsoleLevel = "log" | "warn" | "error" | "debug" | "info";
142
+ export interface ConsoleMessage {
143
+ id: string;
144
+ session_id: string;
145
+ level: ConsoleLevel;
146
+ message: string;
147
+ source?: string;
148
+ line_number?: number;
149
+ timestamp: string;
150
+ }
151
+ export interface PerformanceMetrics {
152
+ fcp?: number;
153
+ lcp?: number;
154
+ cls?: number;
155
+ ttfb?: number;
156
+ dom_interactive?: number;
157
+ dom_complete?: number;
158
+ load_event?: number;
159
+ js_heap_size_used?: number;
160
+ js_heap_size_total?: number;
161
+ }
162
+ export interface CoverageEntry {
163
+ url: string;
164
+ text: string;
165
+ ranges: Array<{
166
+ start: number;
167
+ end: number;
168
+ }>;
169
+ }
170
+ export interface CoverageResult {
171
+ js: CoverageEntry[];
172
+ css: CoverageEntry[];
173
+ totalBytes: number;
174
+ usedBytes: number;
175
+ unusedPercent: number;
176
+ }
177
+ export type RecordingStepType = "navigate" | "click" | "type" | "scroll" | "hover" | "select" | "check" | "upload" | "wait" | "evaluate";
178
+ export interface RecordingStep {
179
+ type: RecordingStepType;
180
+ selector?: string;
181
+ value?: string;
182
+ url?: string;
183
+ x?: number;
184
+ y?: number;
185
+ timestamp: number;
186
+ }
187
+ export interface Recording {
188
+ id: string;
189
+ name: string;
190
+ project_id?: string;
191
+ start_url?: string;
192
+ steps: RecordingStep[];
193
+ created_at: string;
194
+ }
195
+ export interface ReplayResult {
196
+ recording_id: string;
197
+ success: boolean;
198
+ steps_executed: number;
199
+ steps_failed: number;
200
+ errors: string[];
201
+ duration_ms: number;
202
+ }
203
+ export interface CrawledPage {
204
+ url: string;
205
+ title?: string;
206
+ status_code?: number;
207
+ links: string[];
208
+ depth: number;
209
+ error?: string;
210
+ }
211
+ export interface CrawlResult {
212
+ id: string;
213
+ project_id?: string;
214
+ start_url: string;
215
+ depth: number;
216
+ pages: CrawledPage[];
217
+ total_links: number;
218
+ errors: string[];
219
+ created_at: string;
220
+ }
221
+ export interface CrawlOptions {
222
+ maxDepth?: number;
223
+ maxPages?: number;
224
+ sameDomain?: boolean;
225
+ filter?: (url: string) => boolean;
226
+ projectId?: string;
227
+ engine?: BrowserEngine;
228
+ }
229
+ export interface ExtractOptions {
230
+ selector?: string;
231
+ format?: "text" | "html" | "links" | "table" | "structured";
232
+ schema?: Record<string, string>;
233
+ }
234
+ export interface ExtractResult {
235
+ text?: string;
236
+ html?: string;
237
+ links?: string[];
238
+ table?: string[][];
239
+ structured?: Record<string, string | string[]>;
240
+ }
241
+ export interface ScreenshotOptions {
242
+ selector?: string;
243
+ fullPage?: boolean;
244
+ format?: "png" | "jpeg" | "webp";
245
+ quality?: number;
246
+ path?: string;
247
+ }
248
+ export interface ScreenshotResult {
249
+ path: string;
250
+ base64: string;
251
+ url?: string;
252
+ width: number;
253
+ height: number;
254
+ size_bytes: number;
255
+ }
256
+ export interface PDFOptions {
257
+ path?: string;
258
+ format?: "A4" | "Letter" | "A3" | "A5";
259
+ landscape?: boolean;
260
+ margin?: {
261
+ top?: string;
262
+ right?: string;
263
+ bottom?: string;
264
+ left?: string;
265
+ };
266
+ printBackground?: boolean;
267
+ }
268
+ export interface PDFResult {
269
+ path: string;
270
+ base64: string;
271
+ size_bytes: number;
272
+ }
273
+ export interface BrowserConfig {
274
+ default_engine: BrowserEngine;
275
+ headless: boolean;
276
+ viewport: {
277
+ width: number;
278
+ height: number;
279
+ };
280
+ data_dir: string;
281
+ screenshots_dir: string;
282
+ pdfs_dir: string;
283
+ har_dir: string;
284
+ lightpanda_binary?: string;
285
+ chrome_executable?: string;
286
+ }
287
+ export declare class BrowserError extends Error {
288
+ readonly code: string;
289
+ readonly retryable: boolean;
290
+ constructor(message: string, code?: string, retryable?: boolean);
291
+ }
292
+ export declare class SessionNotFoundError extends BrowserError {
293
+ constructor(id: string);
294
+ }
295
+ export declare class EngineNotAvailableError extends BrowserError {
296
+ constructor(engine: BrowserEngine, reason?: string);
297
+ }
298
+ export declare class NavigationError extends BrowserError {
299
+ constructor(url: string, reason?: string);
300
+ }
301
+ export declare class ElementNotFoundError extends BrowserError {
302
+ constructor(selector: string);
303
+ }
304
+ export declare class RecordingNotFoundError extends BrowserError {
305
+ constructor(id: string);
306
+ }
307
+ export declare class AgentNotFoundError extends BrowserError {
308
+ constructor(id: string);
309
+ }
310
+ export declare class ProjectNotFoundError extends BrowserError {
311
+ constructor(id: string);
312
+ }
313
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@hasna/browser",
3
+ "version": "0.0.1",
4
+ "description": "General-purpose browser agent toolkit — Playwright, Chrome DevTools Protocol, Lightpanda with auto engine selection. CLI + MCP + REST + SDK.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "browser": "dist/cli/index.js",
10
+ "browser-mcp": "dist/mcp/index.js",
11
+ "browser-serve": "dist/server/index.js"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist/",
21
+ "dashboard/dist/",
22
+ "LICENSE",
23
+ "README.md"
24
+ ],
25
+ "scripts": {
26
+ "build": "bun run build:dashboard && bun run build:cli && bun run build:mcp && bun run build:server && bun run build:lib && bun run build:types",
27
+ "build:cli": "bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external @anthropic-ai/sdk --external playwright",
28
+ "build:mcp": "bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external @anthropic-ai/sdk --external playwright",
29
+ "build:server": "bun build src/server/index.ts --outdir dist/server --target bun --external @anthropic-ai/sdk --external playwright",
30
+ "build:lib": "bun build src/index.ts --outdir dist --target bun --external playwright --external @anthropic-ai/sdk --external @modelcontextprotocol/sdk",
31
+ "build:types": "NODE_OPTIONS='--max-old-space-size=8192' tsc --emitDeclarationOnly --outDir dist --skipLibCheck",
32
+ "build:dashboard": "cd dashboard && bun run build",
33
+ "typecheck": "tsc --noEmit",
34
+ "test": "bun test",
35
+ "dev:cli": "bun run src/cli/index.tsx",
36
+ "dev:mcp": "bun run src/mcp/index.ts",
37
+ "dev:serve": "bun run src/server/index.ts"
38
+ },
39
+ "dependencies": {
40
+ "@anthropic-ai/sdk": "^0.52.0",
41
+ "@modelcontextprotocol/sdk": "^1.12.1",
42
+ "chalk": "^5.4.1",
43
+ "commander": "^13.1.0",
44
+ "ink": "^5.2.0",
45
+ "playwright": "^1.50.0",
46
+ "react": "^18.3.1",
47
+ "zod": "^3.24.2"
48
+ },
49
+ "devDependencies": {
50
+ "@types/bun": "latest",
51
+ "@types/react": "^18.3.18",
52
+ "typescript": "^5.7.3"
53
+ },
54
+ "engines": {
55
+ "bun": ">=1.0.0"
56
+ },
57
+ "publishConfig": {
58
+ "access": "public",
59
+ "registry": "https://registry.npmjs.org/"
60
+ },
61
+ "license": "MIT",
62
+ "keywords": [
63
+ "browser",
64
+ "automation",
65
+ "playwright",
66
+ "cdp",
67
+ "chrome-devtools",
68
+ "lightpanda",
69
+ "mcp",
70
+ "cli",
71
+ "scraping",
72
+ "agent"
73
+ ]
74
+ }