{"version":3,"file":"hoc.mjs","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/hoc.ts"],"sourcesContent":["import { defineComponent, h, computed, type DefineComponent } from 'vue';\nimport { useAgentStateDataByKey } from '../../hooks/useAgentState';\n\n/**\n * HOC（高阶组件）：将 AgentState 注入到组件的 props 中\n */\n\n// 定义增强后的 Props 类型\nexport type WithAgentStateProps<P extends object = any> = P & { agentState?: Record<string, any> };\n\n/**\n * 简单的状态注入 HOC（高阶组件）\n * 将 AgentState 注入到组件的 props 中\n */\nexport const withAgentStateToolcall1 = <P extends object = any>(\n  Component: DefineComponent<WithAgentStateProps<P>>,\n): DefineComponent<P> => {\n  //@ts-ignore\n  // eslint-disable-next-line vue/one-component-per-file\n  return defineComponent({\n    name: `withAgentState(${Component.name || 'Component'})`,\n    props: Component.props,\n    setup(props: any) {\n      // 使用 Vue 的 inject 获取 AgentState（如果有提供者的话）\n      // 这里简化处理，直接获取所有状态\n      const agentState = useAgentStateDataByKey();\n\n      return () => {\n        return h(Component as any, {\n          ...props,\n          agentState: agentState.value,\n        });\n      };\n    },\n  });\n};\n\n/**\n * 高级的状态注入 HOC（高阶组件）\n * 支持通过 subscribeKeyExtractor 获取特定的状态 key\n */\nexport const withAgentStateToolcall = <P extends object = any>(\n  Component: DefineComponent<WithAgentStateProps<P>>,\n  subscribeKeyExtractor?: (props: P) => string | undefined,\n): DefineComponent<P> => {\n  // @ts-ignore\n  // eslint-disable-next-line vue/one-component-per-file\n  return defineComponent({\n    name: `withAgentState(${Component.name || 'Component'})`,\n    props: Component.props,\n    setup(props: any) {\n      // 计算需要订阅的 stateKey\n      const targetStateKey = computed(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined));\n\n      // 使用精确的 stateKey 获取状态\n      const agentState = useAgentStateDataByKey(targetStateKey.value);\n\n      return () => {\n        return h(Component as any, {\n          ...props,\n          agentState: agentState.value,\n        });\n      };\n    },\n  });\n};\n"],"names":["withAgentStateToolcall1","Component","defineComponent","name","concat","props","setup","agentState","useAgentStateDataByKey","h","_objectSpread","value","withAgentStateToolcall","subscribeKeyExtractor","targetStateKey","computed"],"mappings":";;;;;;;;;;;;;IAcaA,uBAAA,GAA0B,SAA1BA,uBAAAA,CACXC,SACuB,EAAA;AAGvB,EAAA,OAAOC,eAAgB,CAAA;IACrBC,IAAA,EAAA,iBAAA,CAAAC,MAAA,CAAwBH,SAAA,CAAUE,IAAQ,IAAA,WAAA,EAAA,GAAA,CAAA;IAC1CE,OAAOJ,SAAU,CAAAI,KAAA;AACjBC,IAAAA,OAAAA,SAAAA,MAAMD,KAAY,EAAA;AAGhB,MAAA,IAAME,aAAaC,sBAAuB,EAAA,CAAA;AAE1C,MAAA,OAAO,YAAM;QACX,OAAOC,EAAER,SAAkB,EAAAS,aAAA,CAAAA,aAAA,KACtBL,KAAA,CAAA,EAAA,EAAA,EAAA;UACHE,YAAYA,UAAW,CAAAI,KAAAA;AAAA,SAAA,CACxB,CAAA,CAAA;OACH,CAAA;AACF,KAAA;AACF,GAAC,CAAA,CAAA;AACH,EAAA;AAMa,IAAAC,sBAAA,GAAyB,SAAzBA,sBAAAA,CACXX,SAAA,EACAY,qBACuB,EAAA;AAGvB,EAAA,OAAOX,eAAgB,CAAA;IACrBC,IAAA,EAAA,iBAAA,CAAAC,MAAA,CAAwBH,SAAA,CAAUE,IAAQ,IAAA,WAAA,EAAA,GAAA,CAAA;IAC1CE,OAAOJ,SAAU,CAAAI,KAAA;AACjBC,IAAAA,OAAAA,SAAAA,MAAMD,KAAY,EAAA;MAEhB,IAAMS,iBAAiBC,QAAS,CAAA,YAAA;QAAA,OAAOF,wBAAwBA,qBAAsB,CAAAR,KAAK,IAAI,KAAU,CAAA,CAAA;OAAA,CAAA,CAAA;AAGlG,MAAA,IAAAE,UAAA,GAAaC,sBAAuB,CAAAM,cAAA,CAAeH,KAAK,CAAA,CAAA;AAE9D,MAAA,OAAO,YAAM;QACX,OAAOF,EAAER,SAAkB,EAAAS,aAAA,CAAAA,aAAA,KACtBL,KAAA,CAAA,EAAA,EAAA,EAAA;UACHE,YAAYA,UAAW,CAAAI,KAAAA;AAAA,SAAA,CACxB,CAAA,CAAA;OACH,CAAA;AACF,KAAA;AACF,GAAC,CAAA,CAAA;AACH;;;;"}