import { TrSender, PluginInfo } from '@opentiny/tiny-robot'; import { STATUS } from '@opentiny/tiny-robot-kit'; import { Ref, ComponentInstance, VNode } from 'vue'; import { ICustomAgentModelProviderLlmConfig } from '../types/type'; import { MenuItemConfig, McpServerConfig } from '@opentiny/next-sdk'; import { UnifiedModelConfig } from '../types/model-config'; declare function registerContentRenderer(key: string, renderer: (content: any) => VNode): void; declare function __VLS_template(): Readonly<{ welcome(): any; suggestions(): any; operations(): any; 'header-actions'(): any; }> & { welcome(): any; suggestions(): any; operations(): any; 'header-actions'(): any; }; declare const __VLS_component: import('vue').DefineComponent; show: import('vue').PropType; selectedModelId: import('vue').PropType; genUiAble: import('vue').PropType; enabledTools: import('vue').PropType; /** 后端的代理服务器地址 */ agentRoot: { type: StringConstructor; default: string; }; /** 会话 id,可选;未传时仅显示「打开对话框」,不展示扫码等菜单 */ sessionId: { type: StringConstructor; default: undefined; }; menuItems: { type: () => MenuItemConfig[]; }; remoteUrl: { type: StringConstructor; }; qrCodeUrl: { type: StringConstructor; }; /** 系统提示词 */ systemPrompt: { type: StringConstructor; default: string; }; /** 左上角的标题 */ title: { type: StringConstructor; default: string; }; /** 语言 en-US、zh-CN */ locale: { type: StringConstructor; default: string; }; /** 悬浮AI图标的地址 */ AILogoUrl: { type: StringConstructor; }; /** 角色user,assistant的头像配置, 值为 VNode, 比如: h(IconUser, { style: { fontSize: '32px' } }) */ roleAvatar: { type: () => { user: VNode; assistant: VNode; }; default: () => { user: VNode; assistant: VNode; }; }; /** 展示模式: 'remoter' | 'chat-dialog' * 遥控器模式: 自动在右下角显示一个AI图标,点击展开多个菜单项。 * 对话框模式: 直接显示一个对话框界面 * */ mode: { type: StringConstructor; default: string; }; /** 大语言模型配置对象 */ llmConfig: { type: () => ICustomAgentModelProviderLlmConfig | undefined; default: () => { baseURL: string; genuiUrl: string; }; }; /** 设置组件运行在普通页面还是浏览器的扩展中 */ inBrowserExt: { type: BooleanConstructor; default: boolean; }; /** 生成式UI 需要引入的组件。生成式UI内置了一批组件,如果需要引入新组件,需要通过这里导入。 * 参考示例: shallowReactive({TinyUser, TinyAlert }) */ genUiComponents: { type: ObjectConstructor; default: () => {}; }; /** 自定义 MCP 市场服务列表一般是后台的mcp工具常驻存在 */ customMarketMcpServers: { type: () => PluginInfo[]; default: () => never[]; }; /** MCP 服务器配置:业界格式 { "服务器名称": McpServerConfig },name 即对象的 key */ mcpServers: { type: () => Record; default: undefined; }; /** LLM 配置数组,每一项基于 llmConfig 格式,额外包含 id、label、icon、isDefault、useReActMode 字段 */ llmConfigs: { type: () => UnifiedModelConfig[]; default: undefined; }; /** * 用户层传入的 skill .md 模块(Record,如 Vite import.meta.glob 得到的结果), * 由 remoter 调用 next-sdk 的 skill 能力处理:生成 systemPrompt 技能说明、内置 get_skill_content 工具,大模型可自动识别并加载技能 */ skills: { type: () => Record Promise)>; default: undefined; }; /** 布局模式:支持所有 CSS position 属性值 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' */ layoutMode: { type: () => "static" | "relative" | "absolute" | "fixed" | "sticky"; default: string; }; debugStream: { type: BooleanConstructor; default: boolean; }; /** 自定义欢迎区建议卡片(与 tr-prompts 的 items 格式一致)。不传则使用内置默认文案 */ promptItems: { type: ArrayConstructor; default: undefined; }; /** 自定义输入框上方快捷操作按钮(与 pill 下拉菜单格式一致)。不传则使用内置默认文案 */ pillItems: { type: ArrayConstructor; default: undefined; }; /** 支持语音输入功能 */ allowSpeech: { type: BooleanConstructor; default: boolean; }; }>, { /** 大模型代理 */ agent: import('@opentiny/next-sdk').AgentModelProvider; /** 欢迎图标 */ welcomeIcon: VNode; /** 对话消息 */ messages: Ref; /** 对话消息状态 */ messageState: { status: STATUS; errorMsg: string | null; }; /** 对话卡片的角色配置 */ roles: { assistant: { type: string; placement: string; avatar: VNode; maxWidth: string; customContentField: string; slots: { footer: ({ index }: { index: number; }) => "" | VNode; }; }; user: { placement: string; avatar: VNode; maxWidth: string; customContentField: string; }; }; /** 输入框的文本 */ inputMessage: Ref; /** 输入框组件的实例 */ senderRef: Ref>; /** 取消发送 */ abortRequest: () => void; /** 发送消息 */ sendMessage: (content?: import('@opentiny/tiny-robot-kit').ChatMessage["content"], clearInput?: boolean) => Promise; /** 向插件市场添加一个server */ loadMcpServerToPlugin: (serverName: string, mcpServer: McpServerConfig) => Promise; /** 处理客户端断开连接 */ handleClientDisconnected: (serverName: string) => Promise<{ id: string; name: string; icon: string; description: string; enabled: boolean; expanded?: boolean | undefined; tools: { id: string; name: string; description: string; enabled: boolean; }[]; addState?: import('@opentiny/tiny-robot').PluginAddState | undefined; category?: string | undefined; } | null>; /** 添加消息 */ addMessage: (message: import('@opentiny/tiny-robot-kit').ChatMessage | import('@opentiny/tiny-robot-kit').ChatMessage[]) => void; /** 已安装的插件 */ installedPlugins: Ref<{ id: string; name: string; icon: string; description: string; enabled: boolean; expanded?: boolean | undefined; tools: { id: string; name: string; description: string; enabled: boolean; }[]; addState?: import('@opentiny/tiny-robot').PluginAddState | undefined; category?: string | undefined; }[], PluginInfo[] | { id: string; name: string; icon: string; description: string; enabled: boolean; expanded?: boolean | undefined; tools: { id: string; name: string; description: string; enabled: boolean; }[]; addState?: import('@opentiny/tiny-robot').PluginAddState | undefined; category?: string | undefined; }[]>; /** 添加插件核心方法 */ addPluginCore: (config: { pluginId: string; name: string; description: string; icon?: string; mcpServer: McpServerConfig; }) => Promise; /** 删除插件核心方法 */ deletePlugin: (plugin: PluginInfo) => Promise; /** 注册内容渲染器 */ registerContentRenderer: typeof registerContentRenderer; /** * 刷新已安装插件的工具列表(从 agent.mcpTools 同步到 UI) * 适用于 builtin client 工具变化后的快速刷新,避免 remove + reload 导致的 UI 闪烁 */ refreshPluginTools(): Promise; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { "before-ai-render": (currMessage: { role: string; content: string; uiContent: any[]; }) => void; "chat-stream-finish": () => void; }, string, import('vue').PublicProps, Readonly; show: import('vue').PropType; selectedModelId: import('vue').PropType; genUiAble: import('vue').PropType; enabledTools: import('vue').PropType; /** 后端的代理服务器地址 */ agentRoot: { type: StringConstructor; default: string; }; /** 会话 id,可选;未传时仅显示「打开对话框」,不展示扫码等菜单 */ sessionId: { type: StringConstructor; default: undefined; }; menuItems: { type: () => MenuItemConfig[]; }; remoteUrl: { type: StringConstructor; }; qrCodeUrl: { type: StringConstructor; }; /** 系统提示词 */ systemPrompt: { type: StringConstructor; default: string; }; /** 左上角的标题 */ title: { type: StringConstructor; default: string; }; /** 语言 en-US、zh-CN */ locale: { type: StringConstructor; default: string; }; /** 悬浮AI图标的地址 */ AILogoUrl: { type: StringConstructor; }; /** 角色user,assistant的头像配置, 值为 VNode, 比如: h(IconUser, { style: { fontSize: '32px' } }) */ roleAvatar: { type: () => { user: VNode; assistant: VNode; }; default: () => { user: VNode; assistant: VNode; }; }; /** 展示模式: 'remoter' | 'chat-dialog' * 遥控器模式: 自动在右下角显示一个AI图标,点击展开多个菜单项。 * 对话框模式: 直接显示一个对话框界面 * */ mode: { type: StringConstructor; default: string; }; /** 大语言模型配置对象 */ llmConfig: { type: () => ICustomAgentModelProviderLlmConfig | undefined; default: () => { baseURL: string; genuiUrl: string; }; }; /** 设置组件运行在普通页面还是浏览器的扩展中 */ inBrowserExt: { type: BooleanConstructor; default: boolean; }; /** 生成式UI 需要引入的组件。生成式UI内置了一批组件,如果需要引入新组件,需要通过这里导入。 * 参考示例: shallowReactive({TinyUser, TinyAlert }) */ genUiComponents: { type: ObjectConstructor; default: () => {}; }; /** 自定义 MCP 市场服务列表一般是后台的mcp工具常驻存在 */ customMarketMcpServers: { type: () => PluginInfo[]; default: () => never[]; }; /** MCP 服务器配置:业界格式 { "服务器名称": McpServerConfig },name 即对象的 key */ mcpServers: { type: () => Record; default: undefined; }; /** LLM 配置数组,每一项基于 llmConfig 格式,额外包含 id、label、icon、isDefault、useReActMode 字段 */ llmConfigs: { type: () => UnifiedModelConfig[]; default: undefined; }; /** * 用户层传入的 skill .md 模块(Record,如 Vite import.meta.glob 得到的结果), * 由 remoter 调用 next-sdk 的 skill 能力处理:生成 systemPrompt 技能说明、内置 get_skill_content 工具,大模型可自动识别并加载技能 */ skills: { type: () => Record Promise)>; default: undefined; }; /** 布局模式:支持所有 CSS position 属性值 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' */ layoutMode: { type: () => "static" | "relative" | "absolute" | "fixed" | "sticky"; default: string; }; debugStream: { type: BooleanConstructor; default: boolean; }; /** 自定义欢迎区建议卡片(与 tr-prompts 的 items 格式一致)。不传则使用内置默认文案 */ promptItems: { type: ArrayConstructor; default: undefined; }; /** 自定义输入框上方快捷操作按钮(与 pill 下拉菜单格式一致)。不传则使用内置默认文案 */ pillItems: { type: ArrayConstructor; default: undefined; }; /** 支持语音输入功能 */ allowSpeech: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ "onChat-stream-finish"?: (() => any) | undefined; "onBefore-ai-render"?: ((currMessage: { role: string; content: string; uiContent: any[]; }) => any) | undefined; }>, { title: string; systemPrompt: string; mode: string; sessionId: string; llmConfig: ICustomAgentModelProviderLlmConfig | undefined; mcpServers: Record; agentRoot: string; locale: string; roleAvatar: { user: VNode; assistant: VNode; }; inBrowserExt: boolean; genUiComponents: Record; customMarketMcpServers: PluginInfo[]; llmConfigs: UnifiedModelConfig[]; skills: Record Promise)>; layoutMode: "absolute" | "fixed" | "static" | "relative" | "sticky"; debugStream: boolean; promptItems: unknown[]; pillItems: unknown[]; allowSpeech: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };