import type { HostContext } from './types.js'; export interface AgentSearchToolDeps { /** zhWebSearch 开关(dsh-zh 命名空间,默认 true);关闭时撤壳不注册。 */ isEnabled(): boolean; /** zhPrompt 开关:描述与指引文本是否用中文(默认 false → 英文)。 */ useZh(): boolean; /** * zhSearchPerQuery:每个查询保留几条结果。 * `0` = 不装壳(保持官方 tool-web 的 8 条 + 轮询合并); * `> 0` = 装壳并按查询分组,每查询保留 N 条。 * 该值独立于 isEnabled:即使 zhWebSearch 关闭,只要设了 N 也要装壳, * 因为「后端由谁提供」与「结果怎么裁剪/合并」是两件事。 */ perQuery(): number; /** * 会话级「智能搜索」开关(输入框下方按钮)。关闭时该会话不装壳—— * 作用域自身的注册不受自己的 tools.restrict() 约束,所以全局开关之外 * 必须在这里再判一次,否则壳会绕过用户关掉的会话开关。 * 缺席时按「不限会话」处理(老宿主 / 回归夹具)。 */ isAgentEnabled?(agentLike: unknown): boolean; } export interface AgentSearchToolHandle { /** 设置/插件环境变化后的收敛入口:对每个已枚举 Agent 先撤旧再按当前状态重建。 */ refresh(): void; } export type ShellOccupancy = 'none' | 'official' | 'zhipu' | 'own' | 'unknown'; /** 按 description 特征分类 web_search 的当前占用者。 */ export declare function classifyShellOccupancy(definition: { description?: unknown; } | undefined | null): ShellOccupancy; /** * 在 agent 作用域安装 web_search 工具壳(探测让位版)。 * @returns 收敛句柄;agents 服务缺席时返回 undefined(不重试——没有 agent * 就没有注册面,agent/created 也无从发生;服务晚就绪的场景随插件重挂自愈)。 */ export declare function installAgentSearchTool(ctx: HostContext, deps: AgentSearchToolDeps): AgentSearchToolHandle | undefined; //# sourceMappingURL=agent-search-tool.d.ts.map