{"version":3,"file":"agent-to-stream-event.mjs","names":["called"],"sources":["../../../../../../../ai/src/agent/agent-to-stream-event.ts"],"sourcesContent":["import type { AgentEventMap } from \"../contracts/events/event-map.type\";\nimport type { StreamEventBody } from \"../contracts/stream/stream-event.type\";\n\n/**\n * Map an internal `AgentEventMap` entry into the public `StreamEvent`\n * shape. Event names are the same dot-notation strings on both sides;\n * only the payload shape needs per-event translation — the notable\n * case is `agent.tool.called`, whose event-map payload is a bare\n * `ToolCall` but whose stream wrapper is `{ toolCall }`.\n *\n * Extracted from the `Execution` class in `agent.ts` because it's\n * fully stateless (pure function of event name + payload) and used\n * only from the stream-forwarding path. Keeps the class focused on\n * stateful orchestration.\n */\nexport function agentEventToStreamEvent<K extends keyof AgentEventMap>(\n  event: K,\n  payload: AgentEventMap[K],\n): StreamEventBody | undefined {\n  switch (event) {\n    case \"agent.starting\": {\n      const { input } = payload as AgentEventMap[\"agent.starting\"];\n      return { type: \"agent.starting\", input };\n    }\n\n    case \"agent.trip.started\": {\n      const { tripIndex, input } =\n        payload as AgentEventMap[\"agent.trip.started\"];\n      return { type: \"agent.trip.started\", tripIndex, input };\n    }\n\n    case \"agent.trip.streaming\": {\n      const { delta, tripIndex } =\n        payload as AgentEventMap[\"agent.trip.streaming\"];\n      return { type: \"agent.trip.streaming\", delta, tripIndex };\n    }\n\n    case \"agent.tool.calling\": {\n      const { tool, input, tripIndex } =\n        payload as AgentEventMap[\"agent.tool.calling\"];\n      return { type: \"agent.tool.calling\", tool, input, tripIndex };\n    }\n\n    case \"agent.tool.called\": {\n      const called = payload as AgentEventMap[\"agent.tool.called\"];\n      // Split off the agent's enriched ToolCall record from the tool meta\n      // so the stream event surface mirrors the bus payload shape.\n      const { tool, ...toolCall } = called;\n      return { type: \"agent.tool.called\", toolCall, tool };\n    }\n\n    case \"agent.tool.failed\": {\n      const { tool, error, tripIndex } =\n        payload as AgentEventMap[\"agent.tool.failed\"];\n      return { type: \"agent.tool.failed\", tool, error, tripIndex };\n    }\n\n    case \"agent.trip.completed\": {\n      const { trip } = payload as AgentEventMap[\"agent.trip.completed\"];\n      return { type: \"agent.trip.completed\", trip };\n    }\n\n    case \"agent.completed\": {\n      return { type: \"agent.completed\" };\n    }\n\n    case \"agent.error\": {\n      const { error } = payload as AgentEventMap[\"agent.error\"];\n      return { type: \"agent.error\", error };\n    }\n\n    default: {\n      return undefined;\n    }\n  }\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,SAAgB,wBACd,OACA,SAC6B;CAC7B,QAAQ,OAAR;EACE,KAAK,kBAAkB;GACrB,MAAM,EAAE,UAAU;GAClB,OAAO;IAAE,MAAM;IAAkB;GAAM;EACzC;EAEA,KAAK,sBAAsB;GACzB,MAAM,EAAE,WAAW,UACjB;GACF,OAAO;IAAE,MAAM;IAAsB;IAAW;GAAM;EACxD;EAEA,KAAK,wBAAwB;GAC3B,MAAM,EAAE,OAAO,cACb;GACF,OAAO;IAAE,MAAM;IAAwB;IAAO;GAAU;EAC1D;EAEA,KAAK,sBAAsB;GACzB,MAAM,EAAE,MAAM,OAAO,cACnB;GACF,OAAO;IAAE,MAAM;IAAsB;IAAM;IAAO;GAAU;EAC9D;EAEA,KAAK,qBAAqB;GAIxB,MAAM,EAAE,MAAM,GAAG,aAAaA;GAC9B,OAAO;IAAE,MAAM;IAAqB;IAAU;GAAK;EACrD;EAEA,KAAK,qBAAqB;GACxB,MAAM,EAAE,MAAM,OAAO,cACnB;GACF,OAAO;IAAE,MAAM;IAAqB;IAAM;IAAO;GAAU;EAC7D;EAEA,KAAK,wBAAwB;GAC3B,MAAM,EAAE,SAAS;GACjB,OAAO;IAAE,MAAM;IAAwB;GAAK;EAC9C;EAEA,KAAK,mBACH,OAAO,EAAE,MAAM,kBAAkB;EAGnC,KAAK,eAAe;GAClB,MAAM,EAAE,UAAU;GAClB,OAAO;IAAE,MAAM;IAAe;GAAM;EACtC;EAEA,SACE;CAEJ;AACF"}