feat(browser-automation): add playwright-cli as browser automation provider

- Add playwright-cli to BrowserAutomationProviderSchema enum
- Add playwright-cli to BuiltinSkillNameSchema
- Create playwrightCliSkill with official Microsoft template
- Update skill selection logic to handle 3 providers
- Add comprehensive tests for schema and skill selection
- Regenerate JSON schema

Closes #<issue-number-if-any>
This commit is contained in:
Jonas Herrmansdsoerfer
2026-02-13 11:15:38 +01:00
parent 9a07227bea
commit 27f8feda04
6 changed files with 346 additions and 1 deletions
@@ -140,4 +140,35 @@ describe("createBuiltinSkills", () => {
// #then
expect(skills.length).toBe(4)
})
test("returns playwright-cli skill when browserProvider is 'playwright-cli'", () => {
// given
const options = { browserProvider: "playwright-cli" as const }
// when
const skills = createBuiltinSkills(options)
// then
const playwrightSkill = skills.find((s) => s.name === "playwright")
const agentBrowserSkill = skills.find((s) => s.name === "agent-browser")
expect(playwrightSkill).toBeDefined()
expect(playwrightSkill!.description).toContain("browser")
expect(playwrightSkill!.allowedTools).toContain("Bash(playwright-cli:*)")
expect(playwrightSkill!.mcpConfig).toBeUndefined()
expect(agentBrowserSkill).toBeUndefined()
})
test("playwright-cli skill template contains CLI commands", () => {
// given
const options = { browserProvider: "playwright-cli" as const }
// when
const skills = createBuiltinSkills(options)
const skill = skills.find((s) => s.name === "playwright")
// then
expect(skill!.template).toContain("playwright-cli open")
expect(skill!.template).toContain("playwright-cli snapshot")
expect(skill!.template).toContain("playwright-cli click")
})
})