@sparkleideas/browser 3.0.0-alpha.2-patch.17 → 3.0.0-alpha.2-patch.19

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 (53) hide show
  1. package/package.json +2 -2
  2. package/dist/agent/index.d.ts +0 -25
  3. package/dist/agent/index.d.ts.map +0 -1
  4. package/dist/agent/index.js +0 -33
  5. package/dist/agent/index.js.map +0 -1
  6. package/dist/application/browser-service.d.ts +0 -228
  7. package/dist/application/browser-service.d.ts.map +0 -1
  8. package/dist/application/browser-service.js +0 -470
  9. package/dist/application/browser-service.js.map +0 -1
  10. package/dist/domain/types.d.ts +0 -428
  11. package/dist/domain/types.d.ts.map +0 -1
  12. package/dist/domain/types.js +0 -95
  13. package/dist/domain/types.js.map +0 -1
  14. package/dist/index.d.ts +0 -131
  15. package/dist/index.d.ts.map +0 -1
  16. package/dist/index.js +0 -84
  17. package/dist/index.js.map +0 -1
  18. package/dist/infrastructure/agent-browser-adapter.d.ts +0 -134
  19. package/dist/infrastructure/agent-browser-adapter.d.ts.map +0 -1
  20. package/dist/infrastructure/agent-browser-adapter.js +0 -551
  21. package/dist/infrastructure/agent-browser-adapter.js.map +0 -1
  22. package/dist/infrastructure/hooks-integration.d.ts +0 -109
  23. package/dist/infrastructure/hooks-integration.d.ts.map +0 -1
  24. package/dist/infrastructure/hooks-integration.js +0 -111
  25. package/dist/infrastructure/hooks-integration.js.map +0 -1
  26. package/dist/infrastructure/memory-integration.d.ts +0 -149
  27. package/dist/infrastructure/memory-integration.d.ts.map +0 -1
  28. package/dist/infrastructure/memory-integration.js +0 -335
  29. package/dist/infrastructure/memory-integration.js.map +0 -1
  30. package/dist/infrastructure/reasoningbank-adapter.d.ts +0 -90
  31. package/dist/infrastructure/reasoningbank-adapter.d.ts.map +0 -1
  32. package/dist/infrastructure/reasoningbank-adapter.js +0 -224
  33. package/dist/infrastructure/reasoningbank-adapter.js.map +0 -1
  34. package/dist/infrastructure/security-integration.d.ts +0 -80
  35. package/dist/infrastructure/security-integration.d.ts.map +0 -1
  36. package/dist/infrastructure/security-integration.js +0 -404
  37. package/dist/infrastructure/security-integration.js.map +0 -1
  38. package/dist/infrastructure/workflow-templates.d.ts +0 -95
  39. package/dist/infrastructure/workflow-templates.d.ts.map +0 -1
  40. package/dist/infrastructure/workflow-templates.js +0 -366
  41. package/dist/infrastructure/workflow-templates.js.map +0 -1
  42. package/dist/mcp-tools/browser-tools.d.ts +0 -18
  43. package/dist/mcp-tools/browser-tools.d.ts.map +0 -1
  44. package/dist/mcp-tools/browser-tools.js +0 -1163
  45. package/dist/mcp-tools/browser-tools.js.map +0 -1
  46. package/dist/mcp-tools/index.d.ts +0 -6
  47. package/dist/mcp-tools/index.d.ts.map +0 -1
  48. package/dist/mcp-tools/index.js +0 -6
  49. package/dist/mcp-tools/index.js.map +0 -1
  50. package/dist/skill/index.d.ts +0 -15
  51. package/dist/skill/index.d.ts.map +0 -1
  52. package/dist/skill/index.js +0 -23
  53. package/dist/skill/index.js.map +0 -1
@@ -1,470 +0,0 @@
1
- /**
2
- * @sparkleideas/browser - Browser Service
3
- * Core application service integrating agent-browser with agentic-flow
4
- */
5
- import { AgentBrowserAdapter } from '../infrastructure/agent-browser-adapter.js';
6
- import { createMemoryManager } from '../infrastructure/memory-integration.js';
7
- import { getSecurityScanner } from '../infrastructure/security-integration.js';
8
- const activeTrajectories = new Map();
9
- export class BrowserService {
10
- adapter;
11
- sessionId;
12
- currentTrajectory;
13
- snapshots = new Map();
14
- memoryManager;
15
- securityScanner;
16
- config;
17
- constructor(config = {}) {
18
- this.config = config;
19
- this.sessionId = config.sessionId || `browser-${Date.now()}`;
20
- this.adapter = new AgentBrowserAdapter({
21
- session: this.sessionId,
22
- timeout: config.defaultTimeout || 30000,
23
- headless: config.headless !== false,
24
- });
25
- // Initialize memory integration if enabled (default: true)
26
- if (config.enableMemory !== false) {
27
- this.memoryManager = createMemoryManager(this.sessionId);
28
- }
29
- // Initialize security scanning if enabled (default: true)
30
- if (config.enableSecurity !== false) {
31
- this.securityScanner = getSecurityScanner({
32
- requireHttps: config.requireHttps,
33
- blockedDomains: config.blockedDomains,
34
- allowedDomains: config.allowedDomains,
35
- });
36
- }
37
- }
38
- // ===========================================================================
39
- // Trajectory Management (for ReasoningBank/SONA learning)
40
- // ===========================================================================
41
- /**
42
- * Start a new trajectory for learning
43
- */
44
- startTrajectory(goal) {
45
- const id = `traj-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
46
- activeTrajectories.set(id, {
47
- id,
48
- sessionId: this.sessionId,
49
- goal,
50
- steps: [],
51
- startedAt: new Date().toISOString(),
52
- });
53
- this.currentTrajectory = id;
54
- return id;
55
- }
56
- /**
57
- * Record a step in the current trajectory
58
- */
59
- recordStep(action, input, result) {
60
- if (!this.currentTrajectory)
61
- return;
62
- const trajectory = activeTrajectories.get(this.currentTrajectory);
63
- if (!trajectory)
64
- return;
65
- trajectory.steps.push({
66
- action,
67
- input: input,
68
- result,
69
- snapshot: trajectory.lastSnapshot,
70
- timestamp: new Date().toISOString(),
71
- });
72
- }
73
- /**
74
- * End trajectory and return for learning (also stores in memory)
75
- */
76
- async endTrajectory(success, verdict) {
77
- if (!this.currentTrajectory)
78
- return null;
79
- const trajectory = activeTrajectories.get(this.currentTrajectory);
80
- if (!trajectory)
81
- return null;
82
- const completed = {
83
- ...trajectory,
84
- completedAt: new Date().toISOString(),
85
- success,
86
- verdict,
87
- };
88
- // Store in memory for learning
89
- if (this.memoryManager) {
90
- await this.memoryManager.storeTrajectory(completed);
91
- }
92
- activeTrajectories.delete(this.currentTrajectory);
93
- this.currentTrajectory = undefined;
94
- return completed;
95
- }
96
- /**
97
- * Get current trajectory for inspection
98
- */
99
- getCurrentTrajectory() {
100
- if (!this.currentTrajectory)
101
- return null;
102
- return activeTrajectories.get(this.currentTrajectory) || null;
103
- }
104
- // ===========================================================================
105
- // Core Browser Operations
106
- // ===========================================================================
107
- /**
108
- * Navigate to URL with trajectory tracking and security scanning
109
- */
110
- async open(url, options) {
111
- // Security check before navigation
112
- if (this.securityScanner && !options?.skipSecurityCheck) {
113
- const scanResult = await this.securityScanner.scanUrl(url);
114
- if (!scanResult.safe) {
115
- const threats = scanResult.threats.map(t => `${t.type}: ${t.description}`).join('; ');
116
- return {
117
- success: false,
118
- error: `Security scan failed: ${threats}`,
119
- data: { scanResult },
120
- };
121
- }
122
- }
123
- const result = await this.adapter.open({
124
- url,
125
- waitUntil: options?.waitUntil,
126
- headers: options?.headers,
127
- });
128
- this.recordStep('open', { url, ...options }, result);
129
- return result;
130
- }
131
- /**
132
- * Scan URL for security threats without navigating
133
- */
134
- async scanUrl(url) {
135
- if (!this.securityScanner) {
136
- return { safe: true, threats: [], pii: [], score: 1, scanDuration: 0 };
137
- }
138
- return this.securityScanner.scanUrl(url);
139
- }
140
- /**
141
- * Get snapshot with automatic caching
142
- */
143
- async snapshot(options = {}) {
144
- const result = await this.adapter.snapshot({
145
- interactive: options.interactive !== false,
146
- compact: options.compact !== false,
147
- ...options,
148
- });
149
- if (result.success && result.data) {
150
- // Cache snapshot and update trajectory
151
- const snapshot = result.data;
152
- this.snapshots.set('latest', snapshot);
153
- if (this.currentTrajectory) {
154
- const trajectory = activeTrajectories.get(this.currentTrajectory);
155
- if (trajectory) {
156
- trajectory.lastSnapshot = snapshot;
157
- }
158
- }
159
- }
160
- this.recordStep('snapshot', options, result);
161
- return result;
162
- }
163
- /**
164
- * Click with trajectory tracking
165
- */
166
- async click(target, options) {
167
- const result = await this.adapter.click({
168
- target,
169
- ...options,
170
- });
171
- this.recordStep('click', { target, ...options }, result);
172
- return result;
173
- }
174
- /**
175
- * Fill input with trajectory tracking and PII scanning
176
- */
177
- async fill(target, value, options) {
178
- // Check for PII in the value
179
- if (this.securityScanner && !options?.skipPIICheck) {
180
- const scanResult = this.securityScanner.scanContent(value, target);
181
- if (scanResult.pii.length > 0) {
182
- // Log masked values for security
183
- const maskedPII = scanResult.pii.map(p => `${p.type}: ${p.masked}`).join(', ');
184
- console.log(`[security] PII detected in form field ${target}: ${maskedPII}`);
185
- }
186
- }
187
- const result = await this.adapter.fill({
188
- target,
189
- value,
190
- ...options,
191
- });
192
- this.recordStep('fill', { target, value: this.securityScanner ? '[REDACTED]' : value, ...options }, result);
193
- return result;
194
- }
195
- /**
196
- * Check if content contains PII
197
- */
198
- scanForPII(content, context) {
199
- if (!this.securityScanner) {
200
- return { safe: true, threats: [], pii: [], score: 1, scanDuration: 0 };
201
- }
202
- return this.securityScanner.scanContent(content, context);
203
- }
204
- /**
205
- * Type text with trajectory tracking
206
- */
207
- async type(target, text, options) {
208
- const result = await this.adapter.type({
209
- target,
210
- text,
211
- ...options,
212
- });
213
- this.recordStep('type', { target, text, ...options }, result);
214
- return result;
215
- }
216
- /**
217
- * Press key with trajectory tracking
218
- */
219
- async press(key, delay) {
220
- const result = await this.adapter.press(key, delay);
221
- this.recordStep('press', { key, delay }, result);
222
- return result;
223
- }
224
- /**
225
- * Wait for condition
226
- */
227
- async wait(options) {
228
- const result = await this.adapter.wait(options);
229
- this.recordStep('wait', options, result);
230
- return result;
231
- }
232
- /**
233
- * Get element text
234
- */
235
- async getText(target) {
236
- const result = await this.adapter.getText(target);
237
- this.recordStep('getText', { target }, result);
238
- return result;
239
- }
240
- /**
241
- * Execute JavaScript
242
- */
243
- async eval(script) {
244
- const result = await this.adapter.eval({ script });
245
- this.recordStep('eval', { script }, result);
246
- return result;
247
- }
248
- /**
249
- * Take screenshot
250
- */
251
- async screenshot(options) {
252
- const result = await this.adapter.screenshot(options || {});
253
- this.recordStep('screenshot', options || {}, result);
254
- return result;
255
- }
256
- /**
257
- * Close browser
258
- */
259
- async close() {
260
- const result = await this.adapter.close();
261
- this.recordStep('close', {}, result);
262
- return result;
263
- }
264
- // ===========================================================================
265
- // High-Level Workflow Operations
266
- // ===========================================================================
267
- /**
268
- * Authenticate using header injection (skips login UI)
269
- */
270
- async authenticateWithHeaders(url, headers) {
271
- return this.open(url, { headers });
272
- }
273
- /**
274
- * Fill and submit a form
275
- */
276
- async submitForm(fields, submitButton) {
277
- // Fill all fields
278
- for (const field of fields) {
279
- const result = await this.fill(field.target, field.value);
280
- if (!result.success)
281
- return result;
282
- }
283
- // Click submit
284
- return this.click(submitButton);
285
- }
286
- /**
287
- * Extract data using snapshot refs
288
- */
289
- async extractData(refs) {
290
- const data = {};
291
- for (const ref of refs) {
292
- const result = await this.getText(ref);
293
- if (result.success && result.data) {
294
- data[ref] = result.data;
295
- }
296
- }
297
- return data;
298
- }
299
- /**
300
- * Navigate and wait for specific element
301
- */
302
- async navigateAndWait(url, selector, timeout) {
303
- const navResult = await this.open(url);
304
- if (!navResult.success)
305
- return navResult;
306
- return this.wait({ selector, timeout });
307
- }
308
- // ===========================================================================
309
- // Session State
310
- // ===========================================================================
311
- /**
312
- * Get cached snapshot
313
- */
314
- getLatestSnapshot() {
315
- return this.snapshots.get('latest') || null;
316
- }
317
- /**
318
- * Get session ID
319
- */
320
- getSessionId() {
321
- return this.sessionId;
322
- }
323
- /**
324
- * Get underlying adapter for advanced operations
325
- */
326
- getAdapter() {
327
- return this.adapter;
328
- }
329
- /**
330
- * Get memory manager for direct memory operations
331
- */
332
- getMemoryManager() {
333
- return this.memoryManager;
334
- }
335
- /**
336
- * Get security scanner for direct security operations
337
- */
338
- getSecurityScanner() {
339
- return this.securityScanner;
340
- }
341
- /**
342
- * Find similar trajectories for a goal (uses HNSW search)
343
- */
344
- async findSimilarTrajectories(goal, topK = 5) {
345
- if (!this.memoryManager)
346
- return [];
347
- return this.memoryManager.findSimilarTrajectories(goal, topK);
348
- }
349
- /**
350
- * Get session memory statistics
351
- */
352
- async getMemoryStats() {
353
- if (!this.memoryManager)
354
- return null;
355
- return this.memoryManager.getSessionStats();
356
- }
357
- }
358
- // ============================================================================
359
- // Browser Swarm Coordinator
360
- // ============================================================================
361
- export class BrowserSwarmCoordinator {
362
- config;
363
- services = new Map();
364
- sharedData = new Map();
365
- constructor(config) {
366
- this.config = config;
367
- }
368
- /**
369
- * Spawn a new browser agent in the swarm
370
- */
371
- async spawnAgent(role) {
372
- if (this.services.size >= this.config.maxSessions) {
373
- throw new Error(`Max sessions (${this.config.maxSessions}) reached`);
374
- }
375
- const sessionId = `${this.config.sessionPrefix}-${role}-${Date.now()}`;
376
- const service = new BrowserService({
377
- sessionId,
378
- role,
379
- capabilities: this.getCapabilitiesForRole(role),
380
- defaultTimeout: 30000,
381
- headless: true,
382
- });
383
- this.services.set(sessionId, service);
384
- return service;
385
- }
386
- /**
387
- * Get capabilities for a role
388
- */
389
- getCapabilitiesForRole(role) {
390
- switch (role) {
391
- case 'navigator':
392
- return ['navigation', 'authentication', 'session-management'];
393
- case 'scraper':
394
- return ['snapshot', 'extraction', 'pagination'];
395
- case 'validator':
396
- return ['assertions', 'state-checks', 'screenshots'];
397
- case 'tester':
398
- return ['forms', 'interactions', 'assertions'];
399
- case 'monitor':
400
- return ['network', 'console', 'errors'];
401
- default:
402
- return [];
403
- }
404
- }
405
- /**
406
- * Share data between agents
407
- */
408
- shareData(key, value) {
409
- this.sharedData.set(key, value);
410
- }
411
- /**
412
- * Get shared data
413
- */
414
- getSharedData(key) {
415
- return this.sharedData.get(key);
416
- }
417
- /**
418
- * Get all active sessions
419
- */
420
- getSessions() {
421
- return Array.from(this.services.keys());
422
- }
423
- /**
424
- * Get a specific service
425
- */
426
- getService(sessionId) {
427
- return this.services.get(sessionId);
428
- }
429
- /**
430
- * Close all sessions
431
- */
432
- async closeAll() {
433
- const closePromises = Array.from(this.services.values()).map(s => s.close());
434
- await Promise.all(closePromises);
435
- this.services.clear();
436
- }
437
- /**
438
- * Get coordinator stats
439
- */
440
- getStats() {
441
- return {
442
- activeSessions: this.services.size,
443
- maxSessions: this.config.maxSessions,
444
- topology: this.config.topology,
445
- };
446
- }
447
- }
448
- // ============================================================================
449
- // Factory Functions
450
- // ============================================================================
451
- /**
452
- * Create a standalone browser service
453
- */
454
- export function createBrowserService(options) {
455
- return new BrowserService(options);
456
- }
457
- /**
458
- * Create a browser swarm coordinator
459
- */
460
- export function createBrowserSwarm(config) {
461
- return new BrowserSwarmCoordinator({
462
- topology: config?.topology || 'hierarchical',
463
- maxSessions: config?.maxSessions || 5,
464
- sessionPrefix: config?.sessionPrefix || 'swarm',
465
- sharedCookies: config?.sharedCookies,
466
- coordinatorSession: config?.coordinatorSession,
467
- });
468
- }
469
- export default BrowserService;
470
- //# sourceMappingURL=browser-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-service.js","sourceRoot":"","sources":["../../src/application/browser-service.ts"],"names":[],"mappings":"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"}