rdesign/frontend/node_modules/@copilotkitnext/react/dist/hooks/use-render-activity-message...

1 line
3.1 KiB
Plaintext

{"version":3,"file":"use-render-activity-message.mjs","names":[],"sources":["../../src/hooks/use-render-activity-message.tsx"],"sourcesContent":["import { ActivityMessage } from \"@ag-ui/core\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\nimport { useCopilotKit, useCopilotChatConfiguration } from \"@/providers\";\nimport { useCallback, useMemo } from \"react\";\nimport { ReactActivityMessageRenderer } from \"@/types\";\n\nexport function useRenderActivityMessage() {\n const { copilotkit } = useCopilotKit();\n const config = useCopilotChatConfiguration();\n const agentId = config?.agentId ?? DEFAULT_AGENT_ID;\n\n const renderers = copilotkit.renderActivityMessages;\n\n // Find the renderer for a given activity type\n const findRenderer = useCallback(\n (activityType: string): ReactActivityMessageRenderer<unknown> | null => {\n if (!renderers.length) {\n return null;\n }\n\n const matches = renderers.filter(\n (renderer) => renderer.activityType === activityType,\n );\n\n return (\n matches.find((candidate) => candidate.agentId === agentId) ??\n matches.find((candidate) => candidate.agentId === undefined) ??\n renderers.find((candidate) => candidate.activityType === \"*\") ??\n null\n );\n },\n [agentId, renderers],\n );\n\n const renderActivityMessage = useCallback(\n (message: ActivityMessage): React.ReactElement | null => {\n const renderer = findRenderer(message.activityType);\n\n if (!renderer) {\n return null;\n }\n\n const parseResult = renderer.content.safeParse(message.content);\n\n if (!parseResult.success) {\n console.warn(\n `Failed to parse content for activity message '${message.activityType}':`,\n parseResult.error,\n );\n return null;\n }\n\n const Component = renderer.render;\n const agent = copilotkit.getAgent(agentId);\n\n return (\n <Component\n key={message.id}\n activityType={message.activityType}\n content={parseResult.data}\n message={message}\n agent={agent}\n />\n );\n },\n [agentId, copilotkit, findRenderer],\n );\n\n return useMemo(\n () => ({ renderActivityMessage, findRenderer }),\n [renderActivityMessage, findRenderer],\n );\n}\n"],"mappings":";;;;;;;;AAMA,SAAgB,2BAA2B;CACzC,MAAM,EAAE,eAAe,eAAe;CAEtC,MAAM,UADS,6BAA6B,EACpB,WAAW;CAEnC,MAAM,YAAY,WAAW;CAG7B,MAAM,eAAe,aAClB,iBAAuE;AACtE,MAAI,CAAC,UAAU,OACb,QAAO;EAGT,MAAM,UAAU,UAAU,QACvB,aAAa,SAAS,iBAAiB,aACzC;AAED,SACE,QAAQ,MAAM,cAAc,UAAU,YAAY,QAAQ,IAC1D,QAAQ,MAAM,cAAc,UAAU,YAAY,OAAU,IAC5D,UAAU,MAAM,cAAc,UAAU,iBAAiB,IAAI,IAC7D;IAGJ,CAAC,SAAS,UAAU,CACrB;CAED,MAAM,wBAAwB,aAC3B,YAAwD;EACvD,MAAM,WAAW,aAAa,QAAQ,aAAa;AAEnD,MAAI,CAAC,SACH,QAAO;EAGT,MAAM,cAAc,SAAS,QAAQ,UAAU,QAAQ,QAAQ;AAE/D,MAAI,CAAC,YAAY,SAAS;AACxB,WAAQ,KACN,iDAAiD,QAAQ,aAAa,KACtE,YAAY,MACb;AACD,UAAO;;EAGT,MAAM,YAAY,SAAS;EAC3B,MAAM,QAAQ,WAAW,SAAS,QAAQ;AAE1C,SACE,oBAAC;GAEC,cAAc,QAAQ;GACtB,SAAS,YAAY;GACZ;GACF;KAJF,QAAQ,GAKb;IAGN;EAAC;EAAS;EAAY;EAAa,CACpC;AAED,QAAO,eACE;EAAE;EAAuB;EAAc,GAC9C,CAAC,uBAAuB,aAAa,CACtC"}