chore: checkpoint browser tooling and routing updates
This commit is contained in:
@@ -55,7 +55,8 @@ describe('Browser tools', () => {
|
||||
expect(names).toContain('browser.type');
|
||||
expect(names).toContain('browser.content');
|
||||
expect(names).toContain('browser.eval');
|
||||
expect(names).toHaveLength(6);
|
||||
expect(names).toContain('browser.evaluate');
|
||||
expect(names).toHaveLength(7);
|
||||
});
|
||||
|
||||
it('browser.navigate navigates to URL', async () => {
|
||||
@@ -147,6 +148,13 @@ describe('Browser tools', () => {
|
||||
expect(result.output).toBe('hello world');
|
||||
});
|
||||
|
||||
it('browser.evaluate aliases browser.eval behavior', async () => {
|
||||
const tool = getTool('browser.evaluate');
|
||||
const result = await tool.execute({ expression: '1 + 1' });
|
||||
expect(result.success).toBe(true);
|
||||
expect(result.output).toContain('42');
|
||||
});
|
||||
|
||||
it('handles navigation errors gracefully', async () => {
|
||||
mockGoto.mockRejectedValueOnce(new Error('Navigation failed'));
|
||||
const tool = getTool('browser.navigate');
|
||||
|
||||
@@ -64,6 +64,7 @@ export function createBrowserTools(manager: BrowserManager): Tool[] {
|
||||
createBrowserTypeTool(manager),
|
||||
createBrowserContentTool(manager),
|
||||
createBrowserEvalTool(manager),
|
||||
createBrowserEvaluateTool(manager),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -294,9 +295,25 @@ function createBrowserContentTool(manager: BrowserManager): Tool {
|
||||
}
|
||||
|
||||
function createBrowserEvalTool(manager: BrowserManager): Tool {
|
||||
return createBrowserEvalLikeTool(
|
||||
manager,
|
||||
'browser.eval',
|
||||
'Evaluate JavaScript in the browser page context. Returns the result as a string.',
|
||||
);
|
||||
}
|
||||
|
||||
function createBrowserEvaluateTool(manager: BrowserManager): Tool {
|
||||
return createBrowserEvalLikeTool(
|
||||
manager,
|
||||
'browser.evaluate',
|
||||
'Alias of browser.eval for compatibility. Evaluates JavaScript in the browser page context.',
|
||||
);
|
||||
}
|
||||
|
||||
function createBrowserEvalLikeTool(manager: BrowserManager, name: 'browser.eval' | 'browser.evaluate', description: string): Tool {
|
||||
return {
|
||||
name: 'browser.eval',
|
||||
description: 'Evaluate JavaScript in the browser page context. Returns the result as a string.',
|
||||
name,
|
||||
description,
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
|
||||
+2
-1
@@ -98,6 +98,7 @@ const PROFILE_TOOLS: Record<ToolProfile, Set<string>> = {
|
||||
'browser.type',
|
||||
'browser.content',
|
||||
'browser.eval',
|
||||
'browser.evaluate',
|
||||
'agent.delegate',
|
||||
'agents.list',
|
||||
]),
|
||||
@@ -110,7 +111,7 @@ const PROFILE_TOOLS: Record<ToolProfile, Set<string>> = {
|
||||
export const TOOL_GROUPS: Record<string, string[]> = {
|
||||
'group:fs': ['file.read', 'file.write', 'file.edit', 'file.patch', 'file.list'],
|
||||
'group:runtime': ['shell.exec', 'process.start', 'process.output', 'process.status', 'process.kill', 'process.list', 'screen.capture', 'camera.capture'],
|
||||
'group:web': ['web.fetch', 'web.search', 'browser.navigate', 'browser.screenshot', 'browser.click', 'browser.type', 'browser.content', 'browser.eval'],
|
||||
'group:web': ['web.fetch', 'web.search', 'browser.navigate', 'browser.screenshot', 'browser.click', 'browser.type', 'browser.content', 'browser.eval', 'browser.evaluate'],
|
||||
'group:memory': ['memory.read', 'memory.write', 'memory.search'],
|
||||
'group:gmail': ['gmail.list', 'gmail.search', 'gmail.read'],
|
||||
'group:gcal': ['calendar.today', 'calendar.list', 'calendar.search'],
|
||||
|
||||
Reference in New Issue
Block a user