{"version":3,"file":"useAgentActivity.mjs","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentActivity.ts"],"sourcesContent":["import { ref, onMounted, onUnmounted, watch } from 'vue';\nimport type { ActivityConfig } from '../components/activity/types';\nimport { activityRegistry } from '../components/activity/registry';\n\nexport interface UseAgentActivityReturn {\n  register: (config: ActivityConfig | ActivityConfig[]) => void;\n  unregister: (activityTypes: string | string[]) => void;\n  isRegistered: (activityType: string) => boolean;\n  getRegistered: () => string[];\n}\n\n/**\n * Activity 注册管理 Hook，专门用于 Activity 组件的注册管理\n *\n * 支持两种使用模式：\n * 1. 自动注册模式：传入配置，自动注册和清理\n * 2. 手动注册模式：不传配置，返回注册方法由业务控制\n */\nexport function useAgentActivity<TContent = any>(\n  config?: ActivityConfig<TContent> | ActivityConfig<TContent>[] | null | undefined,\n): UseAgentActivityReturn {\n  const registeredTypesRef = ref<Set<string>>(new Set());\n  const autoRegisteredTypesRef = ref<Set<string>>(new Set());\n\n  // 手动注册方法\n  const register = (newConfig: ActivityConfig | ActivityConfig[]) => {\n    if (!newConfig) {\n      console.warn('[useAgentActivity] 配置为空，跳过注册');\n      return;\n    }\n\n    const configs = Array.isArray(newConfig) ? newConfig : [newConfig];\n\n    configs.forEach((cfg) => {\n      if (activityRegistry.has(cfg.activityType)) {\n        console.warn(`[useAgentActivity] Activity 类型 \"${cfg.activityType}\" 已存在于注册表中，将被覆盖`);\n      }\n\n      activityRegistry.register(cfg);\n      registeredTypesRef.value.add(cfg.activityType);\n    });\n  };\n\n  // 手动取消注册方法\n  const unregister = (activityTypes: string | string[]) => {\n    const typeArray = Array.isArray(activityTypes) ? activityTypes : [activityTypes];\n\n    typeArray.forEach((activityType) => {\n      activityRegistry.unregister(activityType);\n      registeredTypesRef.value.delete(activityType);\n      autoRegisteredTypesRef.value.delete(activityType);\n    });\n  };\n\n  // 检查是否已注册\n  const isRegistered = (activityType: string) =>\n    registeredTypesRef.value.has(activityType) || autoRegisteredTypesRef.value.has(activityType);\n\n  // 获取所有已注册的 Activity 类型\n  const getRegistered = () => Array.from(new Set([...registeredTypesRef.value, ...autoRegisteredTypesRef.value]));\n\n  // 自动注册逻辑（当传入配置时）\n  onMounted(() => {\n    if (!config) {\n      return;\n    }\n\n    const configs = Array.isArray(config) ? config : [config];\n\n    configs.forEach((cfg) => {\n      if (activityRegistry.has(cfg.activityType)) {\n        console.warn(`[useAgentActivity] Activity 类型 \"${cfg.activityType}\" 已存在于注册表中，将被覆盖`);\n      }\n\n      activityRegistry.register(cfg);\n      autoRegisteredTypesRef.value.add(cfg.activityType);\n    });\n  });\n\n  onUnmounted(() => {\n    if (!config) {\n      return;\n    }\n\n    const configs = Array.isArray(config) ? config : [config];\n    // 清理函数：取消注册自动注册的配置\n    configs.forEach((cfg) => {\n      activityRegistry.unregister(cfg.activityType);\n      autoRegisteredTypesRef.value.delete(cfg.activityType);\n    });\n  });\n\n  // 监听配置变化\n  watch(\n    () => config,\n    (newConfig) => {\n      // 如果配置发生变化，重新注册\n      if (newConfig) {\n        const configs = Array.isArray(newConfig) ? newConfig : [newConfig];\n\n        // 先清理旧的自动注册\n        autoRegisteredTypesRef.value.forEach((type) => {\n          activityRegistry.unregister(type);\n        });\n        autoRegisteredTypesRef.value.clear();\n\n        // 重新注册新的配置\n        configs.forEach((cfg) => {\n          activityRegistry.register(cfg);\n          autoRegisteredTypesRef.value.add(cfg.activityType);\n        });\n      }\n    },\n    { deep: true },\n  );\n\n  return {\n    register,\n    unregister,\n    isRegistered,\n    getRegistered,\n  };\n}\n"],"names":["useAgentActivity","config","registeredTypesRef","ref","Set","autoRegisteredTypesRef","register","newConfig","console","warn","configs","Array","isArray","forEach","cfg","activityRegistry","has","activityType","concat","value","add","unregister","activityTypes","typeArray","isRegistered","getRegistered","from","_toConsumableArray","onMounted","onUnmounted","watch","type","clear","deep"],"mappings":"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"}