{"version":3,"file":"action.mjs","names":[],"sources":["../src/action.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { exa } from \"./app\";\nimport { executeExaTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action(\n  tool: string,\n  def: {\n    slug: string;\n    name: string;\n    description: string;\n    input: z.ZodTypeAny;\n    output: z.ZodTypeAny;\n  },\n) {\n  return exa.action({\n    slug: def.slug,\n    name: def.name,\n    description: def.description,\n    input: def.input,\n    output: def.output,\n    async run(input) {\n      return def.output.parse(await executeExaTool(tool, input as Record<string, unknown>));\n    },\n  });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAO,IAAI,OAAO;EAChB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAM,eAAe,MAAM,KAAgC,CAAC;EACtF;CACF,CAAC;AACH"}