@framers/agentos-ext-web-browser 1.1.0 → 1.1.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.
@@ -9,16 +9,47 @@
9
9
  */
10
10
  export class NavigateTool {
11
11
  browserService;
12
- id = 'browserNavigate';
13
- name = 'Navigate to URL';
14
- description = 'Navigate browser to a URL and get page content';
12
+ id = 'web-browser-navigate-v1';
13
+ /** Tool call name used by the LLM / ToolExecutor. */
14
+ name = 'browser_navigate';
15
+ displayName = 'Browser Navigate';
16
+ description = 'Navigate the browser to a URL and return page text (and optionally HTML).';
17
+ category = 'research';
18
+ hasSideEffects = false;
19
+ inputSchema = {
20
+ type: 'object',
21
+ required: ['url'],
22
+ properties: {
23
+ url: {
24
+ type: 'string',
25
+ description: 'The URL to navigate to',
26
+ },
27
+ waitFor: {
28
+ type: 'string',
29
+ enum: ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'],
30
+ default: 'networkidle2',
31
+ description: 'When to consider navigation complete',
32
+ },
33
+ returnHtml: {
34
+ type: 'boolean',
35
+ default: false,
36
+ description: 'Include full HTML in response',
37
+ },
38
+ returnText: {
39
+ type: 'boolean',
40
+ default: true,
41
+ description: 'Include extracted text in response',
42
+ },
43
+ },
44
+ additionalProperties: false,
45
+ };
15
46
  constructor(browserService) {
16
47
  this.browserService = browserService;
17
48
  }
18
49
  /**
19
50
  * Execute navigation
20
51
  */
21
- async execute(input) {
52
+ async execute(input, _context) {
22
53
  try {
23
54
  const result = await this.browserService.navigate(input.url, {
24
55
  waitFor: input.waitFor,
@@ -47,7 +78,7 @@ export class NavigateTool {
47
78
  /**
48
79
  * Validate input
49
80
  */
50
- validate(input) {
81
+ validateArgs(input) {
51
82
  const errors = [];
52
83
  if (!input.url) {
53
84
  errors.push('URL is required');
@@ -63,38 +94,7 @@ export class NavigateTool {
63
94
  errors.push('Invalid URL format');
64
95
  }
65
96
  }
66
- return { valid: errors.length === 0, errors };
67
- }
68
- /**
69
- * Get JSON schema for tool
70
- */
71
- getSchema() {
72
- return {
73
- type: 'object',
74
- required: ['url'],
75
- properties: {
76
- url: {
77
- type: 'string',
78
- description: 'The URL to navigate to',
79
- },
80
- waitFor: {
81
- type: 'string',
82
- enum: ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'],
83
- default: 'networkidle2',
84
- description: 'When to consider navigation complete',
85
- },
86
- returnHtml: {
87
- type: 'boolean',
88
- default: false,
89
- description: 'Include full HTML in response',
90
- },
91
- returnText: {
92
- type: 'boolean',
93
- default: true,
94
- description: 'Include extracted text in response',
95
- },
96
- },
97
- };
97
+ return errors.length === 0 ? { isValid: true } : { isValid: false, errors };
98
98
  }
99
99
  }
100
100
  //# sourceMappingURL=navigate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/tools/navigate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/tools/navigate.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,22 @@
4
4
  *
5
5
  * @module @framers/agentos-ext-web-browser
6
6
  */
7
- import type { ITool } from '@framers/agentos';
8
- import type { BrowserService } from '../services/browserService';
9
- import type { ScrapeResult } from '../types';
7
+ import type { ITool, JSONSchemaObject, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
8
+ import type { BrowserService } from '../services/browserService.js';
9
+ import type { ScrapeResult } from '../types.js';
10
10
  /**
11
11
  * Tool for scraping page content
12
12
  */
13
13
  export declare class ScrapeTool implements ITool {
14
14
  private browserService;
15
- readonly id = "browserScrape";
16
- readonly name = "Scrape Content";
17
- readonly description = "Extract content from web page using CSS selectors";
15
+ readonly id = "web-browser-scrape-v1";
16
+ /** Tool call name used by the LLM / ToolExecutor. */
17
+ readonly name = "browser_scrape";
18
+ readonly displayName = "Browser Scrape";
19
+ readonly description = "Extract content from the current page using a CSS selector.";
20
+ readonly category = "research";
21
+ readonly hasSideEffects = false;
22
+ readonly inputSchema: JSONSchemaObject;
18
23
  constructor(browserService: BrowserService);
19
24
  /**
20
25
  * Execute scraping
@@ -23,21 +28,13 @@ export declare class ScrapeTool implements ITool {
23
28
  selector: string;
24
29
  limit?: number;
25
30
  attributes?: string[];
26
- }): Promise<{
27
- success: boolean;
28
- output?: ScrapeResult;
29
- error?: string;
30
- }>;
31
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult<ScrapeResult>>;
31
32
  /**
32
33
  * Validate input
33
34
  */
34
- validate(input: any): {
35
- valid: boolean;
36
- errors: string[];
35
+ validateArgs(input: Record<string, any>): {
36
+ isValid: boolean;
37
+ errors?: any[];
37
38
  };
38
- /**
39
- * Get JSON schema for tool
40
- */
41
- getSchema(): any;
42
39
  }
43
40
  //# sourceMappingURL=scrape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,UAAW,YAAW,KAAK;IAK1B,OAAO,CAAC,cAAc;IAJlC,SAAgB,EAAE,mBAAmB;IACrC,SAAgB,IAAI,oBAAoB;IACxC,SAAgB,WAAW,uDAAuD;gBAE9D,cAAc,EAAE,cAAc;IAElD;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA4BxE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAkB1D;;OAEG;IACH,SAAS,IAAI,GAAG;CAsBjB"}
1
+ {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,qBAAa,UAAW,YAAW,KAAK;IA+B1B,OAAO,CAAC,cAAc;IA9BlC,SAAgB,EAAE,2BAA2B;IAC7C,qDAAqD;IACrD,SAAgB,IAAI,oBAAoB;IACxC,SAAgB,WAAW,oBAAoB;IAC/C,SAAgB,WAAW,iEAAiE;IAC5F,SAAgB,QAAQ,cAAc;IACtC,SAAgB,cAAc,SAAS;IAEvC,SAAgB,WAAW,EAAE,gBAAgB,CAoB3C;gBAEkB,cAAc,EAAE,cAAc;IAElD;;OAEG;IACG,OAAO,CACX,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAClE,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IA4B7C;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE;CAiB/E"}
@@ -9,16 +9,41 @@
9
9
  */
10
10
  export class ScrapeTool {
11
11
  browserService;
12
- id = 'browserScrape';
13
- name = 'Scrape Content';
14
- description = 'Extract content from web page using CSS selectors';
12
+ id = 'web-browser-scrape-v1';
13
+ /** Tool call name used by the LLM / ToolExecutor. */
14
+ name = 'browser_scrape';
15
+ displayName = 'Browser Scrape';
16
+ description = 'Extract content from the current page using a CSS selector.';
17
+ category = 'research';
18
+ hasSideEffects = false;
19
+ inputSchema = {
20
+ type: 'object',
21
+ required: ['selector'],
22
+ properties: {
23
+ selector: {
24
+ type: 'string',
25
+ description: 'CSS selector to match elements',
26
+ },
27
+ limit: {
28
+ type: 'number',
29
+ description: 'Maximum number of elements to return',
30
+ minimum: 1,
31
+ },
32
+ attributes: {
33
+ type: 'array',
34
+ items: { type: 'string' },
35
+ description: 'Specific attributes to extract',
36
+ },
37
+ },
38
+ additionalProperties: false,
39
+ };
15
40
  constructor(browserService) {
16
41
  this.browserService = browserService;
17
42
  }
18
43
  /**
19
44
  * Execute scraping
20
45
  */
21
- async execute(input) {
46
+ async execute(input, _context) {
22
47
  try {
23
48
  const result = await this.browserService.scrape(input.selector);
24
49
  // Apply limit if specified
@@ -42,7 +67,7 @@ export class ScrapeTool {
42
67
  /**
43
68
  * Validate input
44
69
  */
45
- validate(input) {
70
+ validateArgs(input) {
46
71
  const errors = [];
47
72
  if (!input.selector) {
48
73
  errors.push('Selector is required');
@@ -55,32 +80,7 @@ export class ScrapeTool {
55
80
  errors.push('Limit must be a positive number');
56
81
  }
57
82
  }
58
- return { valid: errors.length === 0, errors };
59
- }
60
- /**
61
- * Get JSON schema for tool
62
- */
63
- getSchema() {
64
- return {
65
- type: 'object',
66
- required: ['selector'],
67
- properties: {
68
- selector: {
69
- type: 'string',
70
- description: 'CSS selector to match elements',
71
- },
72
- limit: {
73
- type: 'number',
74
- description: 'Maximum number of elements to return',
75
- minimum: 1,
76
- },
77
- attributes: {
78
- type: 'array',
79
- items: { type: 'string' },
80
- description: 'Specific attributes to extract',
81
- },
82
- },
83
- };
83
+ return errors.length === 0 ? { isValid: true } : { isValid: false, errors };
84
84
  }
85
85
  }
86
86
  //# sourceMappingURL=scrape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,22 @@
4
4
  *
5
5
  * @module @framers/agentos-ext-web-browser
6
6
  */
7
- import type { ITool } from '@framers/agentos';
8
- import type { BrowserService } from '../services/browserService';
9
- import type { ScreenshotResult } from '../types';
7
+ import type { ITool, JSONSchemaObject, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
8
+ import type { BrowserService } from '../services/browserService.js';
9
+ import type { ScreenshotResult } from '../types.js';
10
10
  /**
11
11
  * Tool for taking screenshots
12
12
  */
13
13
  export declare class ScreenshotTool implements ITool {
14
14
  private browserService;
15
- readonly id = "browserScreenshot";
16
- readonly name = "Take Screenshot";
17
- readonly description = "Capture screenshot of current page or element";
15
+ readonly id = "web-browser-screenshot-v1";
16
+ /** Tool call name used by the LLM / ToolExecutor. */
17
+ readonly name = "browser_screenshot";
18
+ readonly displayName = "Browser Screenshot";
19
+ readonly description = "Capture a screenshot of the current page or a specific element.";
20
+ readonly category = "research";
21
+ readonly hasSideEffects = false;
22
+ readonly inputSchema: JSONSchemaObject;
18
23
  constructor(browserService: BrowserService);
19
24
  /**
20
25
  * Execute screenshot capture
@@ -24,21 +29,13 @@ export declare class ScreenshotTool implements ITool {
24
29
  selector?: string;
25
30
  format?: 'png' | 'jpeg' | 'webp';
26
31
  quality?: number;
27
- }): Promise<{
28
- success: boolean;
29
- output?: ScreenshotResult;
30
- error?: string;
31
- }>;
32
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult<ScreenshotResult>>;
32
33
  /**
33
34
  * Validate input
34
35
  */
35
- validate(input: any): {
36
- valid: boolean;
37
- errors: string[];
36
+ validateArgs(input: Record<string, any>): {
37
+ isValid: boolean;
38
+ errors?: any[];
38
39
  };
39
- /**
40
- * Get JSON schema for tool
41
- */
42
- getSchema(): any;
43
40
  }
44
41
  //# sourceMappingURL=screenshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,qBAAa,cAAe,YAAW,KAAK;IAK9B,OAAO,CAAC,cAAc;IAJlC,SAAgB,EAAE,uBAAuB;IACzC,SAAgB,IAAI,qBAAqB;IACzC,SAAgB,WAAW,mDAAmD;gBAE1D,cAAc,EAAE,cAAc;IAElD;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAe5E;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAgB1D;;OAEG;IACH,SAAS,IAAI,GAAG;CA6BjB"}
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,qBAAa,cAAe,YAAW,KAAK;IAsC9B,OAAO,CAAC,cAAc;IArClC,SAAgB,EAAE,+BAA+B;IACjD,qDAAqD;IACrD,SAAgB,IAAI,wBAAwB;IAC5C,SAAgB,WAAW,wBAAwB;IACnD,SAAgB,WAAW,qEAAqE;IAChG,SAAgB,QAAQ,cAAc;IACtC,SAAgB,cAAc,SAAS;IAEvC,SAAgB,WAAW,EAAE,gBAAgB,CA2B3C;gBAEkB,cAAc,EAAE,cAAc;IAElD;;OAEG;IACG,OAAO,CACX,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EACpG,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAejD;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE;CAe/E"}
@@ -9,16 +9,48 @@
9
9
  */
10
10
  export class ScreenshotTool {
11
11
  browserService;
12
- id = 'browserScreenshot';
13
- name = 'Take Screenshot';
14
- description = 'Capture screenshot of current page or element';
12
+ id = 'web-browser-screenshot-v1';
13
+ /** Tool call name used by the LLM / ToolExecutor. */
14
+ name = 'browser_screenshot';
15
+ displayName = 'Browser Screenshot';
16
+ description = 'Capture a screenshot of the current page or a specific element.';
17
+ category = 'research';
18
+ hasSideEffects = false;
19
+ inputSchema = {
20
+ type: 'object',
21
+ properties: {
22
+ fullPage: {
23
+ type: 'boolean',
24
+ default: false,
25
+ description: 'Capture full scrollable page',
26
+ },
27
+ selector: {
28
+ type: 'string',
29
+ description: 'CSS selector for specific element to capture',
30
+ },
31
+ format: {
32
+ type: 'string',
33
+ enum: ['png', 'jpeg', 'webp'],
34
+ default: 'png',
35
+ description: 'Image format',
36
+ },
37
+ quality: {
38
+ type: 'number',
39
+ minimum: 0,
40
+ maximum: 100,
41
+ default: 80,
42
+ description: 'Quality for jpeg/webp (0-100)',
43
+ },
44
+ },
45
+ additionalProperties: false,
46
+ };
15
47
  constructor(browserService) {
16
48
  this.browserService = browserService;
17
49
  }
18
50
  /**
19
51
  * Execute screenshot capture
20
52
  */
21
- async execute(input) {
53
+ async execute(input, _context) {
22
54
  try {
23
55
  const result = await this.browserService.screenshot({
24
56
  fullPage: input.fullPage,
@@ -35,7 +67,7 @@ export class ScreenshotTool {
35
67
  /**
36
68
  * Validate input
37
69
  */
38
- validate(input) {
70
+ validateArgs(input) {
39
71
  const errors = [];
40
72
  if (input.format && !['png', 'jpeg', 'webp'].includes(input.format)) {
41
73
  errors.push('Format must be png, jpeg, or webp');
@@ -45,39 +77,7 @@ export class ScreenshotTool {
45
77
  errors.push('Quality must be a number between 0 and 100');
46
78
  }
47
79
  }
48
- return { valid: errors.length === 0, errors };
49
- }
50
- /**
51
- * Get JSON schema for tool
52
- */
53
- getSchema() {
54
- return {
55
- type: 'object',
56
- properties: {
57
- fullPage: {
58
- type: 'boolean',
59
- default: false,
60
- description: 'Capture full scrollable page',
61
- },
62
- selector: {
63
- type: 'string',
64
- description: 'CSS selector for specific element to capture',
65
- },
66
- format: {
67
- type: 'string',
68
- enum: ['png', 'jpeg', 'webp'],
69
- default: 'png',
70
- description: 'Image format',
71
- },
72
- quality: {
73
- type: 'number',
74
- minimum: 0,
75
- maximum: 100,
76
- default: 80,
77
- description: 'Quality for jpeg/webp (0-100)',
78
- },
79
- },
80
- };
80
+ return errors.length === 0 ? { isValid: true } : { isValid: false, errors };
81
81
  }
82
82
  }
83
83
  //# sourceMappingURL=screenshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,OAAO,cAAc;IAKL;IAJJ,EAAE,GAAG,mBAAmB,CAAC;IACzB,IAAI,GAAG,iBAAiB,CAAC;IACzB,WAAW,GAAG,+CAA+C,CAAC;IAE9E,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAKb;QACC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;gBAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAU;QACjB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;gBAClF,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;oBAC7B,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,cAAc;iBAC5B;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,+BAA+B;iBAC7C;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,OAAO,cAAc;IAsCL;IArCJ,EAAE,GAAG,2BAA2B,CAAC;IACjD,qDAAqD;IACrC,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,oBAAoB,CAAC;IACnC,WAAW,GAAG,iEAAiE,CAAC;IAChF,QAAQ,GAAG,UAAU,CAAC;IACtB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAqB;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC7B,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,cAAc;aAC5B;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,+BAA+B;aAC7C;SACF;QACD,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IAEF,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,KAAoG,EACpG,QAA8B;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;gBAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAA0B;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;gBAClF,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC9E,CAAC;CACF"}
@@ -4,39 +4,36 @@
4
4
  *
5
5
  * @module @framers/agentos-ext-web-browser
6
6
  */
7
- import type { ITool } from '@framers/agentos';
8
- import type { BrowserService } from '../services/browserService';
9
- import type { PageSnapshot } from '../types';
7
+ import type { ITool, JSONSchemaObject, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
8
+ import type { BrowserService } from '../services/browserService.js';
9
+ import type { PageSnapshot } from '../types.js';
10
10
  /**
11
11
  * Tool for getting page snapshot
12
12
  */
13
13
  export declare class SnapshotTool implements ITool {
14
14
  private browserService;
15
- readonly id = "browserSnapshot";
16
- readonly name = "Page Snapshot";
17
- readonly description = "Get accessibility snapshot of current page with interactive elements";
15
+ readonly id = "web-browser-snapshot-v1";
16
+ /** Tool call name used by the LLM / ToolExecutor. */
17
+ readonly name = "browser_snapshot";
18
+ readonly displayName = "Browser Snapshot";
19
+ readonly description = "Get an accessibility-like snapshot of the current page (interactive elements, links, forms).";
20
+ readonly category = "research";
21
+ readonly hasSideEffects = false;
22
+ readonly inputSchema: JSONSchemaObject;
18
23
  constructor(browserService: BrowserService);
19
24
  /**
20
25
  * Execute snapshot capture
21
26
  */
22
- execute(_input: {
27
+ execute(input: {
23
28
  includeLinks?: boolean;
24
29
  includeForms?: boolean;
25
- }): Promise<{
26
- success: boolean;
27
- output?: PageSnapshot;
28
- error?: string;
29
- }>;
30
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult<PageSnapshot>>;
30
31
  /**
31
32
  * Validate input
32
33
  */
33
- validate(_input: any): {
34
- valid: boolean;
35
- errors: string[];
34
+ validateArgs(_input: Record<string, any>): {
35
+ isValid: boolean;
36
+ errors?: any[];
36
37
  };
37
- /**
38
- * Get JSON schema for tool
39
- */
40
- getSchema(): any;
41
38
  }
42
39
  //# sourceMappingURL=snapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,YAAa,YAAW,KAAK;IAK5B,OAAO,CAAC,cAAc;IAJlC,SAAgB,EAAE,qBAAqB;IACvC,SAAgB,IAAI,mBAAmB;IACvC,SAAgB,WAAW,0EAA0E;gBAEjF,cAAc,EAAE,cAAc;IAElD;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAUxE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAI3D;;OAEG;IACH,SAAS,IAAI,GAAG;CAiBjB"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,qBAAa,YAAa,YAAW,KAAK;IA0B5B,OAAO,CAAC,cAAc;IAzBlC,SAAgB,EAAE,6BAA6B;IAC/C,qDAAqD;IACrD,SAAgB,IAAI,sBAAsB;IAC1C,SAAgB,WAAW,sBAAsB;IACjD,SAAgB,WAAW,kGAAkG;IAC7H,SAAgB,QAAQ,cAAc;IACtC,SAAgB,cAAc,SAAS;IAEvC,SAAgB,WAAW,EAAE,gBAAgB,CAe3C;gBAEkB,cAAc,EAAE,cAAc;IAElD;;OAEG;IACG,OAAO,CACX,KAAK,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,EACzD,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAoB7C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE;CAGhF"}
@@ -9,19 +9,48 @@
9
9
  */
10
10
  export class SnapshotTool {
11
11
  browserService;
12
- id = 'browserSnapshot';
13
- name = 'Page Snapshot';
14
- description = 'Get accessibility snapshot of current page with interactive elements';
12
+ id = 'web-browser-snapshot-v1';
13
+ /** Tool call name used by the LLM / ToolExecutor. */
14
+ name = 'browser_snapshot';
15
+ displayName = 'Browser Snapshot';
16
+ description = 'Get an accessibility-like snapshot of the current page (interactive elements, links, forms).';
17
+ category = 'research';
18
+ hasSideEffects = false;
19
+ inputSchema = {
20
+ type: 'object',
21
+ properties: {
22
+ includeLinks: {
23
+ type: 'boolean',
24
+ default: true,
25
+ description: 'Include links in snapshot',
26
+ },
27
+ includeForms: {
28
+ type: 'boolean',
29
+ default: true,
30
+ description: 'Include forms in snapshot',
31
+ },
32
+ },
33
+ additionalProperties: false,
34
+ };
15
35
  constructor(browserService) {
16
36
  this.browserService = browserService;
17
37
  }
18
38
  /**
19
39
  * Execute snapshot capture
20
40
  */
21
- async execute(_input) {
41
+ async execute(input, _context) {
22
42
  try {
23
43
  const snapshot = await this.browserService.getSnapshot();
24
- return { success: true, output: snapshot };
44
+ const includeLinks = input.includeLinks !== false;
45
+ const includeForms = input.includeForms !== false;
46
+ return {
47
+ success: true,
48
+ output: {
49
+ ...snapshot,
50
+ links: includeLinks ? snapshot.links : [],
51
+ forms: includeForms ? snapshot.forms : [],
52
+ },
53
+ };
25
54
  }
26
55
  catch (error) {
27
56
  return { success: false, error: error.message };
@@ -30,28 +59,8 @@ export class SnapshotTool {
30
59
  /**
31
60
  * Validate input
32
61
  */
33
- validate(_input) {
34
- return { valid: true, errors: [] };
35
- }
36
- /**
37
- * Get JSON schema for tool
38
- */
39
- getSchema() {
40
- return {
41
- type: 'object',
42
- properties: {
43
- includeLinks: {
44
- type: 'boolean',
45
- default: true,
46
- description: 'Include links in snapshot',
47
- },
48
- includeForms: {
49
- type: 'boolean',
50
- default: true,
51
- description: 'Include forms in snapshot',
52
- },
53
- },
54
- };
62
+ validateArgs(_input) {
63
+ return { isValid: true };
55
64
  }
56
65
  }
57
66
  //# sourceMappingURL=snapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,OAAO,YAAY;IAKH;IAJJ,EAAE,GAAG,iBAAiB,CAAC;IACvB,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,sEAAsE,CAAC;IAErG,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAGb;QACC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAEzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAW;QAClB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,2BAA2B;iBACzC;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,2BAA2B;iBACzC;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,OAAO,YAAY;IA0BH;IAzBJ,EAAE,GAAG,yBAAyB,CAAC;IAC/C,qDAAqD;IACrC,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAAG,kBAAkB,CAAC;IACjC,WAAW,GAAG,8FAA8F,CAAC;IAC7G,QAAQ,GAAG,UAAU,CAAC;IACtB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAqB;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,2BAA2B;aACzC;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,2BAA2B;aACzC;SACF;QACD,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IAEF,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,KAAyD,EACzD,QAA8B;QAE9B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAEzD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC;YAClD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC;YAElD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,GAAG,QAAQ;oBACX,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACzC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;iBAC1C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAA2B;QACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF"}