erosolar-cli 1.5.14 → 1.6.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.
Files changed (36) hide show
  1. package/dist/browser/BrowserSessionManager.d.ts +307 -0
  2. package/dist/browser/BrowserSessionManager.d.ts.map +1 -0
  3. package/dist/browser/BrowserSessionManager.js +713 -0
  4. package/dist/browser/BrowserSessionManager.js.map +1 -0
  5. package/dist/capabilities/browserAutomationCapability.d.ts +37 -0
  6. package/dist/capabilities/browserAutomationCapability.d.ts.map +1 -0
  7. package/dist/capabilities/browserAutomationCapability.js +49 -0
  8. package/dist/capabilities/browserAutomationCapability.js.map +1 -0
  9. package/dist/capabilities/frontendTestingCapability.d.ts +13 -0
  10. package/dist/capabilities/frontendTestingCapability.d.ts.map +1 -0
  11. package/dist/capabilities/frontendTestingCapability.js +28 -0
  12. package/dist/capabilities/frontendTestingCapability.js.map +1 -0
  13. package/dist/capabilities/index.d.ts +2 -0
  14. package/dist/capabilities/index.d.ts.map +1 -1
  15. package/dist/capabilities/index.js +2 -0
  16. package/dist/capabilities/index.js.map +1 -1
  17. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts +14 -0
  18. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts.map +1 -0
  19. package/dist/plugins/tools/browser/browserAutomationPlugin.js +26 -0
  20. package/dist/plugins/tools/browser/browserAutomationPlugin.js.map +1 -0
  21. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +3 -0
  22. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +1 -0
  23. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +14 -0
  24. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +1 -0
  25. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  26. package/dist/plugins/tools/nodeDefaults.js +4 -0
  27. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  28. package/dist/tools/browserAutomationTools.d.ts +23 -0
  29. package/dist/tools/browserAutomationTools.d.ts.map +1 -0
  30. package/dist/tools/browserAutomationTools.js +908 -0
  31. package/dist/tools/browserAutomationTools.js.map +1 -0
  32. package/dist/tools/frontendTestingTools.d.ts +35 -0
  33. package/dist/tools/frontendTestingTools.d.ts.map +1 -0
  34. package/dist/tools/frontendTestingTools.js +1254 -0
  35. package/dist/tools/frontendTestingTools.js.map +1 -0
  36. package/package.json +4 -1
@@ -0,0 +1,307 @@
1
+ /**
2
+ * Browser Session Manager - Manages browser instances, sessions, cookies, and authentication
3
+ *
4
+ * Provides browser-use-like functionality for AI agents:
5
+ * - Persistent browser sessions with cookie management
6
+ * - Authentication state persistence
7
+ * - Multi-profile support
8
+ * - Session recovery and cleanup
9
+ *
10
+ * @license MIT
11
+ * @author Bo Shang
12
+ */
13
+ import { Browser, BrowserContext, Page } from 'playwright';
14
+ export interface SessionConfig {
15
+ /** Session identifier */
16
+ sessionId: string;
17
+ /** Browser type to use */
18
+ browserType?: 'chromium' | 'firefox' | 'webkit';
19
+ /** Run in headless mode */
20
+ headless?: boolean;
21
+ /** User agent string */
22
+ userAgent?: string;
23
+ /** Viewport size */
24
+ viewport?: {
25
+ width: number;
26
+ height: number;
27
+ };
28
+ /** Load existing profile */
29
+ profilePath?: string;
30
+ /** Enable stealth mode (anti-detection) */
31
+ stealthMode?: boolean;
32
+ /** Proxy configuration */
33
+ proxy?: {
34
+ server: string;
35
+ username?: string;
36
+ password?: string;
37
+ };
38
+ /** Session timeout in milliseconds */
39
+ timeout?: number;
40
+ }
41
+ export interface AuthConfig {
42
+ /** Authentication type */
43
+ type: 'basic' | 'form' | 'oauth' | 'cookie' | 'token';
44
+ /** Credentials */
45
+ credentials?: {
46
+ username?: string;
47
+ password?: string;
48
+ token?: string;
49
+ };
50
+ /** Form selectors for form-based auth */
51
+ formSelectors?: {
52
+ usernameField: string;
53
+ passwordField: string;
54
+ submitButton: string;
55
+ };
56
+ /** Login URL */
57
+ loginUrl?: string;
58
+ /** URL to verify successful login */
59
+ successUrl?: string;
60
+ /** Selector that indicates successful login */
61
+ successSelector?: string;
62
+ }
63
+ export interface SessionState {
64
+ sessionId: string;
65
+ browserType: string;
66
+ isActive: boolean;
67
+ createdAt: number;
68
+ lastAccessedAt: number;
69
+ currentUrl?: string;
70
+ isAuthenticated: boolean;
71
+ authDomain?: string;
72
+ cookies: SerializedCookie[];
73
+ localStorage?: Record<string, string>;
74
+ }
75
+ interface SerializedCookie {
76
+ name: string;
77
+ value: string;
78
+ domain: string;
79
+ path: string;
80
+ expires?: number;
81
+ httpOnly?: boolean;
82
+ secure?: boolean;
83
+ sameSite?: 'Strict' | 'Lax' | 'None';
84
+ }
85
+ interface ActiveSession {
86
+ config: SessionConfig;
87
+ browser: Browser;
88
+ context: BrowserContext;
89
+ page: Page;
90
+ state: SessionState;
91
+ }
92
+ /**
93
+ * Browser Session Manager
94
+ * Manages browser instances, sessions, and authentication state
95
+ */
96
+ export declare class BrowserSessionManager {
97
+ private sessions;
98
+ private storageDir;
99
+ constructor(storageDir?: string);
100
+ private ensureStorageDir;
101
+ /**
102
+ * Create a new browser session
103
+ */
104
+ createSession(config: SessionConfig): Promise<string>;
105
+ /**
106
+ * Apply stealth scripts to avoid bot detection
107
+ */
108
+ private applyStealthScripts;
109
+ /**
110
+ * Get an active session
111
+ */
112
+ getSession(sessionId: string): ActiveSession | undefined;
113
+ /**
114
+ * Get the page for a session
115
+ */
116
+ getPage(sessionId: string): Page | undefined;
117
+ /**
118
+ * Navigate to a URL
119
+ */
120
+ navigateTo(sessionId: string, url: string, options?: {
121
+ waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
122
+ }): Promise<{
123
+ success: boolean;
124
+ url: string;
125
+ title: string;
126
+ error?: string;
127
+ }>;
128
+ /**
129
+ * Perform authentication
130
+ */
131
+ authenticate(sessionId: string, authConfig: AuthConfig): Promise<{
132
+ success: boolean;
133
+ message: string;
134
+ }>;
135
+ /**
136
+ * Perform form-based authentication
137
+ */
138
+ private performFormAuth;
139
+ /**
140
+ * Perform basic HTTP authentication
141
+ */
142
+ private performBasicAuth;
143
+ /**
144
+ * Perform cookie-based authentication
145
+ */
146
+ private performCookieAuth;
147
+ /**
148
+ * Perform token-based authentication
149
+ */
150
+ private performTokenAuth;
151
+ /**
152
+ * Save cookies for a session
153
+ */
154
+ saveCookies(session: ActiveSession): Promise<void>;
155
+ /**
156
+ * Save session state to disk
157
+ */
158
+ private saveSessionState;
159
+ /**
160
+ * Load session state from disk
161
+ */
162
+ private loadSessionState;
163
+ /**
164
+ * Take a screenshot
165
+ */
166
+ takeScreenshot(sessionId: string, options?: {
167
+ fullPage?: boolean;
168
+ path?: string;
169
+ }): Promise<{
170
+ success: boolean;
171
+ data?: string;
172
+ path?: string;
173
+ error?: string;
174
+ }>;
175
+ /**
176
+ * Click on an element
177
+ */
178
+ click(sessionId: string, selector: string, options?: {
179
+ timeout?: number;
180
+ force?: boolean;
181
+ }): Promise<{
182
+ success: boolean;
183
+ error?: string;
184
+ }>;
185
+ /**
186
+ * Type text into an element
187
+ */
188
+ type(sessionId: string, selector: string, text: string, options?: {
189
+ delay?: number;
190
+ clear?: boolean;
191
+ }): Promise<{
192
+ success: boolean;
193
+ error?: string;
194
+ }>;
195
+ /**
196
+ * Fill an input field (faster than type)
197
+ */
198
+ fill(sessionId: string, selector: string, value: string): Promise<{
199
+ success: boolean;
200
+ error?: string;
201
+ }>;
202
+ /**
203
+ * Get text content of an element
204
+ */
205
+ getText(sessionId: string, selector: string): Promise<{
206
+ success: boolean;
207
+ text?: string;
208
+ error?: string;
209
+ }>;
210
+ /**
211
+ * Get page HTML content
212
+ */
213
+ getPageContent(sessionId: string): Promise<{
214
+ success: boolean;
215
+ html?: string;
216
+ error?: string;
217
+ }>;
218
+ /**
219
+ * Wait for a selector to appear
220
+ */
221
+ waitForSelector(sessionId: string, selector: string, options?: {
222
+ timeout?: number;
223
+ state?: 'attached' | 'visible' | 'hidden';
224
+ }): Promise<{
225
+ success: boolean;
226
+ error?: string;
227
+ }>;
228
+ /**
229
+ * Execute JavaScript in the page context
230
+ */
231
+ executeScript<T>(sessionId: string, script: string, args?: any[]): Promise<{
232
+ success: boolean;
233
+ result?: T;
234
+ error?: string;
235
+ }>;
236
+ /**
237
+ * Select an option from a dropdown
238
+ */
239
+ selectOption(sessionId: string, selector: string, value: string | string[]): Promise<{
240
+ success: boolean;
241
+ error?: string;
242
+ }>;
243
+ /**
244
+ * Check/uncheck a checkbox
245
+ */
246
+ setChecked(sessionId: string, selector: string, checked: boolean): Promise<{
247
+ success: boolean;
248
+ error?: string;
249
+ }>;
250
+ /**
251
+ * Upload a file
252
+ */
253
+ uploadFile(sessionId: string, selector: string, filePath: string | string[]): Promise<{
254
+ success: boolean;
255
+ error?: string;
256
+ }>;
257
+ /**
258
+ * Get all cookies for the session
259
+ */
260
+ getCookies(sessionId: string, urls?: string[]): Promise<{
261
+ success: boolean;
262
+ cookies?: SerializedCookie[];
263
+ error?: string;
264
+ }>;
265
+ /**
266
+ * Add cookies to the session
267
+ */
268
+ addCookies(sessionId: string, cookies: SerializedCookie[]): Promise<{
269
+ success: boolean;
270
+ error?: string;
271
+ }>;
272
+ /**
273
+ * Clear cookies for the session
274
+ */
275
+ clearCookies(sessionId: string): Promise<{
276
+ success: boolean;
277
+ error?: string;
278
+ }>;
279
+ /**
280
+ * Close a session
281
+ */
282
+ closeSession(sessionId: string, saveCookies?: boolean): Promise<void>;
283
+ /**
284
+ * Close all sessions
285
+ */
286
+ closeAllSessions(): Promise<void>;
287
+ /**
288
+ * List all stored sessions
289
+ */
290
+ listStoredSessions(): string[];
291
+ /**
292
+ * Delete stored session data
293
+ */
294
+ deleteStoredSession(sessionId: string): boolean;
295
+ /**
296
+ * Get session info
297
+ */
298
+ getSessionInfo(sessionId: string): SessionState | null;
299
+ /**
300
+ * Check if session is authenticated
301
+ */
302
+ isAuthenticated(sessionId: string): boolean;
303
+ }
304
+ export declare function getDefaultBrowserSessionManager(): BrowserSessionManager;
305
+ export declare function createBrowserSessionManager(storageDir?: string): BrowserSessionManager;
306
+ export {};
307
+ //# sourceMappingURL=BrowserSessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserSessionManager.d.ts","sourceRoot":"","sources":["../../src/browser/BrowserSessionManager.ts"],"names":[],"mappings":"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"}