{"record":{"id":"5f19c3811a40154c","repo":"diegosouzapw/OmniRoute","slug":"unknown-action-action","errorCode":null,"errorMessage":"Unknown action: ${action}","messagePattern":"Unknown action: (.+?)","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/lib/skills/builtin/browser.ts","lineNumber":12,"sourceCode":"import { SkillHandler } from \"../types\";\n\nexport const browserSkill: SkillHandler = async (input, context) => {\n  const { action } = input as {\n    action: \"navigate\" | \"click\" | \"type\" | \"screenshot\" | \"extract\";\n    url?: string;\n    selector?: string;\n    text?: string;\n  };\n\n  if (![\"navigate\", \"click\", \"type\", \"screenshot\", \"extract\"].includes(action)) {\n    throw new Error(`Unknown action: ${action}`);\n  }\n\n  throw new Error(\n    \"Browser automation skill is disabled. Configure a Playwright-backed browser runtime before enabling this skill.\"\n  );\n};\n\nexport function registerBrowserSkill(executor: any): void {\n  executor.registerHandler(\"browser\", browserSkill);\n}\n","sourceCodeStart":1,"sourceCodeEnd":23,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/skills/builtin/browser.ts#L1-L23","documentation":"Input validation guard at the entry of the browser skill handler: the `action` field of the skill input is checked against the allow-list (navigate, click, type, screenshot, extract) before anything runs. Any other value — including undefined or a typo — trips this guard. Note the skill is currently a stub that always throws a disabled error afterward, so this is purely an input-shape rejection.","triggerScenarios":"Thrown at src/lib/skills/builtin/browser.ts:12 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set action to one of: navigate, click, type, screenshot, extract","Check the skill invocation payload for typos or a missing action field"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}