Change tab selection to use 0-based indexing instead of 1-based

Co-authored-by: Skn0tt <14912729+Skn0tt@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-06-19 09:38:10 +00:00
parent c82a17ddfd
commit 708aa6d6a5
4 changed files with 12 additions and 12 deletions

View File

@ -662,9 +662,9 @@ X Y coordinate space, based on the provided screenshot.
- **browser_tab_select**
- Title: Select a tab
- Description: Select a tab by index (1-based indexing)
- Description: Select a tab by index (0-based indexing)
- Parameters:
- `index` (number): The index of the tab to select (1-based: first tab is 1, second tab is 2, etc.)
- `index` (number): The index of the tab to select (0-based: first tab is 0, second tab is 1, etc.)
- Read-only: **true**
<!-- NOTE: This has been generated via update-readme.js -->
@ -673,7 +673,7 @@ X Y coordinate space, based on the provided screenshot.
- Title: Close a tab
- Description: Close a tab
- Parameters:
- `index` (number, optional): The index of the tab to close (1-based: first tab is 1, second tab is 2, etc.). Closes current tab if not provided.
- `index` (number, optional): The index of the tab to close (0-based: first tab is 0, second tab is 1, etc.). Closes current tab if not provided.
- Read-only: **false**
</details>

View File

@ -101,7 +101,7 @@ export class Context {
}
async selectTab(index: number) {
this._currentTab = this._tabs[index - 1];
this._currentTab = this._tabs[index];
await this._currentTab.page.bringToFront();
}
@ -127,7 +127,7 @@ export class Context {
}
async closeTab(index: number | undefined) {
const tab = index === undefined ? this._currentTab : this._tabs[index - 1];
const tab = index === undefined ? this._currentTab : this._tabs[index];
await tab?.page.close();
return await this.listTabsMarkdown();
}

View File

@ -50,9 +50,9 @@ const selectTab: ToolFactory = captureSnapshot => defineTool({
schema: {
name: 'browser_tab_select',
title: 'Select a tab',
description: 'Select a tab by index (1-based indexing)',
description: 'Select a tab by index (0-based indexing)',
inputSchema: z.object({
index: z.number().describe('The index of the tab to select (1-based: first tab is 1, second tab is 2, etc.)'),
index: z.number().describe('The index of the tab to select (0-based: first tab is 0, second tab is 1, etc.)'),
}),
type: 'readOnly',
},
@ -108,7 +108,7 @@ const closeTab: ToolFactory = captureSnapshot => defineTool({
title: 'Close a tab',
description: 'Close a tab',
inputSchema: z.object({
index: z.number().optional().describe('The index of the tab to close (1-based: first tab is 1, second tab is 2, etc.). Closes current tab if not provided.'),
index: z.number().optional().describe('The index of the tab to close (0-based: first tab is 0, second tab is 1, etc.). Closes current tab if not provided.'),
}),
type: 'destructive',
},

View File

@ -90,12 +90,12 @@ test('select tab', async ({ client }) => {
expect(await client.callTool({
name: 'browser_tab_select',
arguments: {
index: 2,
index: 1,
},
})).toHaveTextContent(`
- Ran Playwright code:
\`\`\`js
// <internal code to select tab 2>
// <internal code to select tab 1>
\`\`\`
### Open tabs
@ -118,12 +118,12 @@ test('close tab', async ({ client }) => {
expect(await client.callTool({
name: 'browser_tab_close',
arguments: {
index: 3,
index: 2,
},
})).toHaveTextContent(`
- Ran Playwright code:
\`\`\`js
// <internal code to close tab 3>
// <internal code to close tab 2>
\`\`\`
### Open tabs