{"version":3,"file":"handlers.mjs","sources":["../../../src/utils/handlers.ts"],"sourcesContent":["/**\n * Multi-Agent Handler Utilities\n *\n * Provides a simple helper to create handlers with content aggregation for multi-agent scripts.\n *\n * Usage:\n * ```typescript\n * const { contentParts, aggregateContent, handlers } = createHandlers();\n *\n * // With callbacks\n * const { contentParts, aggregateContent, handlers } = createHandlers({\n *   onRunStep: (event, data) => console.log('Step:', data),\n *   onRunStepCompleted: (event, data) => console.log('Completed:', data)\n * });\n * ```\n */\n\nimport { GraphEvents } from '@/common';\nimport { ChatModelStreamHandler, createContentAggregator } from '@/stream';\nimport { ToolEndHandler, ModelEndHandler } from '@/events';\nimport type * as t from '@/types';\n\ninterface HandlerCallbacks {\n  onRunStep?: (event: GraphEvents.ON_RUN_STEP, data: t.StreamEventData) => void;\n  onRunStepCompleted?: (\n    event: GraphEvents.ON_RUN_STEP_COMPLETED,\n    data: t.StreamEventData\n  ) => void;\n  onRunStepDelta?: (\n    event: GraphEvents.ON_RUN_STEP_DELTA,\n    data: t.StreamEventData\n  ) => void;\n  onMessageDelta?: (\n    event: GraphEvents.ON_MESSAGE_DELTA,\n    data: t.StreamEventData\n  ) => void;\n}\n\n/**\n * Creates handlers with content aggregation for multi-agent scripts\n */\nexport function createHandlers(callbacks?: HandlerCallbacks): {\n  contentParts: Array<t.MessageContentComplex | undefined>;\n  aggregateContent: ReturnType<\n    typeof createContentAggregator\n  >['aggregateContent'];\n  handlers: Record<string, t.EventHandler>;\n} {\n  // Set up content aggregator\n  const { contentParts, aggregateContent } = createContentAggregator();\n\n  // Create the handlers object\n  const handlers = {\n    [GraphEvents.TOOL_END]: new ToolEndHandler(),\n    [GraphEvents.CHAT_MODEL_END]: new ModelEndHandler(),\n    [GraphEvents.CHAT_MODEL_STREAM]: new ChatModelStreamHandler(),\n\n    [GraphEvents.ON_RUN_STEP]: {\n      handle: (\n        event: GraphEvents.ON_RUN_STEP,\n        data: t.StreamEventData\n      ): void => {\n        aggregateContent({ event, data: data as t.RunStep });\n        callbacks?.onRunStep?.(event, data);\n      },\n    },\n\n    [GraphEvents.ON_RUN_STEP_COMPLETED]: {\n      handle: (\n        event: GraphEvents.ON_RUN_STEP_COMPLETED,\n        data: t.StreamEventData\n      ): void => {\n        aggregateContent({\n          event,\n          data: data as unknown as { result: t.ToolEndEvent },\n        });\n        callbacks?.onRunStepCompleted?.(event, data);\n      },\n    },\n\n    [GraphEvents.ON_RUN_STEP_DELTA]: {\n      handle: (\n        event: GraphEvents.ON_RUN_STEP_DELTA,\n        data: t.StreamEventData\n      ): void => {\n        aggregateContent({ event, data: data as t.RunStepDeltaEvent });\n        callbacks?.onRunStepDelta?.(event, data);\n      },\n    },\n\n    [GraphEvents.ON_MESSAGE_DELTA]: {\n      handle: (\n        event: GraphEvents.ON_MESSAGE_DELTA,\n        data: t.StreamEventData\n      ): void => {\n        aggregateContent({ event, data: data as t.MessageDeltaEvent });\n        callbacks?.onMessageDelta?.(event, data);\n      },\n    },\n  };\n\n  return {\n    contentParts,\n    aggregateContent,\n    handlers,\n  };\n}\n"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;;;;;AAeG;AAuBH;;AAEG;AACG,SAAU,cAAc,CAAC,SAA4B,EAAA;;IAQzD,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,uBAAuB,EAAE;;AAGpE,IAAA,MAAM,QAAQ,GAAG;AACf,QAAA,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE;AAC5C,QAAA,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,eAAe,EAAE;AACnD,QAAA,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,sBAAsB,EAAE;AAE7D,QAAA,CAAC,WAAW,CAAC,WAAW,GAAG;AACzB,YAAA,MAAM,EAAE,CACN,KAA8B,EAC9B,IAAuB,KACf;gBACR,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAiB,EAAE,CAAC;gBACpD,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,CAAC;AACF,SAAA;AAED,QAAA,CAAC,WAAW,CAAC,qBAAqB,GAAG;AACnC,YAAA,MAAM,EAAE,CACN,KAAwC,EACxC,IAAuB,KACf;AACR,gBAAA,gBAAgB,CAAC;oBACf,KAAK;AACL,oBAAA,IAAI,EAAE,IAA6C;AACpD,iBAAA,CAAC;gBACF,SAAS,EAAE,kBAAkB,GAAG,KAAK,EAAE,IAAI,CAAC;YAC9C,CAAC;AACF,SAAA;AAED,QAAA,CAAC,WAAW,CAAC,iBAAiB,GAAG;AAC/B,YAAA,MAAM,EAAE,CACN,KAAoC,EACpC,IAAuB,KACf;gBACR,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAA2B,EAAE,CAAC;gBAC9D,SAAS,EAAE,cAAc,GAAG,KAAK,EAAE,IAAI,CAAC;YAC1C,CAAC;AACF,SAAA;AAED,QAAA,CAAC,WAAW,CAAC,gBAAgB,GAAG;AAC9B,YAAA,MAAM,EAAE,CACN,KAAmC,EACnC,IAAuB,KACf;gBACR,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAA2B,EAAE,CAAC;gBAC9D,SAAS,EAAE,cAAc,GAAG,KAAK,EAAE,IAAI,CAAC;YAC1C,CAAC;AACF,SAAA;KACF;IAED,OAAO;QACL,YAAY;QACZ,gBAAgB;QAChB,QAAQ;KACT;AACH;;;;"}