Skip to main content

zerolaunch_plugin_protocol/
methods.rs

1/// Host-to-plugin method names (plugin/* namespace).
2pub mod plugin {
3    /// 进程级握手:插件初始化(版本协商、目录、locale 下发)。
4    pub const INITIALIZE: &str = "plugin/initialize";
5    /// 拉取插件实现的全部组件清单(ComponentDescriptor 列表)。
6    pub const GET_COMPONENTS: &str = "plugin/get_components";
7    /// 拉取指定组件的设置 schema。
8    pub const GET_SETTINGS_SCHEMA: &str = "plugin/get_settings_schema";
9    /// 拉取指定组件当前的设置值。
10    pub const GET_SETTINGS: &str = "plugin/get_settings";
11    /// 指定组件应用新的设置值。
12    pub const APPLY_SETTINGS: &str = "plugin/apply_settings";
13    /// 校验一组设置值是否合法(不实际应用)。
14    pub const VALIDATE_SETTINGS: &str = "plugin/validate_settings";
15    /// 拉取指定组件的配置动作列表。
16    pub const CONFIG_ACTIONS: &str = "plugin/config_actions";
17    /// 执行指定组件的配置动作。
18    pub const EXECUTE_CONFIG_ACTION: &str = "plugin/execute_config_action";
19    /// 插件查询(Plugin 组件)。
20    pub const QUERY: &str = "plugin/query";
21    /// 查询匹配裁决(Plugin 组件,插件级语义):宿主在路由阶段询问插件是否接管当前输入。
22    /// 响应为布尔值(true = 接管);旧插件未实现时宿主按 METHOD_NOT_FOUND 容错,
23    /// 用同一份框架关键词判定兜底。
24    pub const MATCH_QUERY: &str = "plugin/match_query";
25    /// 执行插件动作(Plugin 组件)。
26    pub const EXECUTE_ACTION: &str = "plugin/execute_action";
27    /// 插件初始化钩子(注册完成后通知,携带真实查询上下文)。
28    pub const INIT: &str = "plugin/init";
29    /// 插件退出钩子(宿主关闭子进程前调用,有限超时;响应为空对象)。
30    /// 与 `INIT` 成对;旧插件未实现时宿主按 METHOD_NOT_FOUND 视为无收尾逻辑。
31    pub const SHUTDOWN: &str = "plugin/shutdown";
32    /// 拉取面板交互策略(PanelInteraction,插件级语义)。
33    /// 插件级语义:宿主仅对 Plugin 种类组件调用;SDK 恒返回主插件策略。
34    pub const INTERACTION_POLICY: &str = "plugin/interaction_policy";
35    /// 拉取指定组件的默认启用状态。
36    pub const GET_DEFAULT_ENABLED: &str = "plugin/get_default_enabled";
37    /// DataSource 组件:采集候选项。
38    pub const FETCH_CANDIDATES: &str = "plugin/fetch_candidates";
39    /// ActionExecutor 组件:支持的目标类型列表。
40    pub const SUPPORTED_TARGET_TYPES: &str = "plugin/supported_target_types";
41    /// ActionExecutor 组件:支持的动作列表。
42    pub const SUPPORTED_ACTIONS: &str = "plugin/supported_actions";
43    /// ActionExecutor 组件:执行动作。
44    pub const EXECUTOR_EXECUTE: &str = "plugin/executor_execute";
45    /// SearchEngine 组件:对缓存候选计算分数。
46    pub const CALCULATE_SCORES: &str = "plugin/calculate_scores";
47    /// ScoreBooster 组件:对已计算分数做增强。
48    pub const BOOSTER_BOOST: &str = "plugin/booster_boost";
49    /// ScoreBooster 组件:记录用户确认(学习用户习惯)。
50    pub const BOOSTER_RECORD: &str = "plugin/booster_record";
51    /// KeywordOptimizer 组件:拉取声明属性(input_source / priority)。
52    pub const KEYWORD_OPTIMIZER_INFO: &str = "plugin/keyword_optimizer_info";
53    /// KeywordOptimizer 组件:优化单个关键词。
54    pub const KEYWORD_OPTIMIZE: &str = "plugin/keyword_optimize";
55    /// KeywordInjector 组件:对单个候选注入关键词。
56    pub const KEYWORD_INJECT: &str = "plugin/keyword_inject";
57}
58
59/// Plugin-to-host method names (host/* namespace).
60pub mod host {
61    /// 插件侧日志写入(转发到宿主日志系统)。
62    pub const LOG: &str = "host/log";
63    /// 插件侧通知弹窗(宿主桌面通知)。
64    pub const NOTIFY: &str = "host/notify";
65    /// 打开指定路径/URL(系统关联)。
66    pub const SHELL_OPEN: &str = "host/shell.open";
67    /// 打开资源管理器文件夹。
68    pub const SHELL_OPEN_FOLDER: &str = "host/shell.open_folder";
69    /// 以提权方式执行命令。
70    pub const SHELL_EXECUTE_ELEVATION: &str = "host/shell.execute_elevation";
71    /// 执行命令(普通权限;呈现方式由载荷的 mode 决定)。
72    pub const SHELL_EXECUTE_COMMAND: &str = "host/shell.execute_command";
73    /// 激活指定进程对应的窗口。
74    pub const WINDOW_ACTIVATE_BY_PROCESS: &str = "host/window.activate_by_process";
75    /// 获取图标(返回 WebP/PNG base64 字节)。
76    pub const ICON_GET: &str = "host/icon.get";
77    /// 枚举已安装应用。
78    pub const APP_ENUMERATE: &str = "host/app.enumerate";
79    /// 解析路径(环境变量展开等)。
80    pub const PATH_RESOLVE: &str = "host/path.resolve";
81    /// 上传资源文件到插件目录。
82    pub const RESOURCE_UPLOAD: &str = "host/resource.upload";
83    /// 写入资源文件。
84    pub const RESOURCE_PUT: &str = "host/resource.put";
85    /// 读取资源文件。
86    pub const RESOURCE_GET: &str = "host/resource.get";
87    /// 删除资源文件。
88    pub const RESOURCE_DELETE: &str = "host/resource.delete";
89    /// 列出插件目录资源。
90    pub const RESOURCE_LIST: &str = "host/resource.list";
91    /// 解析参数模板。
92    pub const PARAMETER_RESOLVE: &str = "host/parameter.resolve";
93    /// 拉取宿主当前 locale。
94    pub const GET_LOCALE: &str = "host/i18n.get_locale";
95    /// 拉取宿主当前主题。
96    pub const GET_THEME: &str = "host/theme.get";
97    /// 拉取全网模型清单(聚合所有提供方)。
98    pub const MODEL_LIST: &str = "host/model.list";
99    /// 按 model_id 调用文本生成。
100    pub const MODEL_CHAT: &str = "host/model.chat";
101    /// 按 model_id 调用文本向量化。
102    pub const MODEL_EMBEDDING: &str = "host/model.embedding";
103    /// 按 model_id 计算查询向量与多个目标向量的相似度。
104    pub const MODEL_SIMILARITY: &str = "host/model.similarity";
105    /// 查询宿主平台能力集(插件据此决定是否降级)。
106    pub const PLATFORM_CAPABILITIES: &str = "host/platform.capabilities";
107    /// 更新本插件的 SDK 配置(如图标缓存等级),立即生效。
108    pub const SDK_CONFIG_UPDATE: &str = "host/sdk_config.update";
109    /// 提取图标;提取失败返回错误(与 host/icon.get 的默认图标回退不同)。
110    pub const ICON_EXTRACT: &str = "host/icon.extract";
111    /// 强制从磁盘提取图标并写回缓存(跳过缓存读取)。
112    pub const ICON_REFRESH: &str = "host/icon.refresh";
113    /// 用自定义图标文件覆盖指定图标请求的缓存条目。
114    pub const ICON_OVERRIDE_CACHE: &str = "host/icon.override_cache";
115    /// 按进程 PID 激活已存在的窗口。
116    pub const WINDOW_ACTIVATE_BY_PID: &str = "host/window.activate_by_pid";
117    /// 按窗口标题片段激活已存在的窗口。
118    pub const WINDOW_ACTIVATE_BY_TITLE: &str = "host/window.activate_by_title";
119    /// 将文本写入系统剪贴板。
120    pub const CLIPBOARD_SET_TEXT: &str = "host/clipboard.set_text";
121    /// 启动已安装应用,返回进程 PID。
122    pub const APP_LAUNCH: &str = "host/app.launch";
123    /// 查询内置应用图标资源的文件系统路径。
124    pub const APP_ICON_PATH: &str = "host/app.icon_path";
125    /// 解析 .lnk 快捷方式文件的目标路径。
126    pub const PATH_RESOLVE_LNK: &str = "host/path.resolve_lnk";
127    /// 解析目录下 desktop.ini 的本地化文件名。
128    pub const PATH_LOCALIZED_NAMES: &str = "host/path.localized_names";
129    /// 查询系统主题(未经宿主显式 light/dark 配置解析)。
130    pub const THEME_GET_SYSTEM: &str = "host/theme.get_system";
131    /// 统计参数模板中需要用户输入的参数数量。
132    pub const PARAMETER_COUNT_USER: &str = "host/parameter.count_user";
133    /// 判断参数模板是否包含系统参数。
134    pub const PARAMETER_HAS_SYSTEM: &str = "host/parameter.has_system";
135    /// 写入插件本地缓存(可再生的本地数据,不经存储后端)。
136    pub const CACHE_PUT: &str = "host/cache.put";
137    /// 读取插件本地缓存;不存在时返回 null。
138    pub const CACHE_GET: &str = "host/cache.get";
139    /// 删除插件本地缓存条目。
140    pub const CACHE_DELETE: &str = "host/cache.delete";
141    /// 按容量上限清理插件本地缓存域。
142    pub const CACHE_CLEANUP: &str = "host/cache.cleanup";
143    /// 创建一次性定时器,到期由宿主推送 `plugin/timer.fired`。
144    pub const TIMER_SET_TIMEOUT: &str = "host/timer.set_timeout";
145    /// 创建重复定时器,每次到期由宿主推送 `plugin/timer.fired`。
146    pub const TIMER_SET_INTERVAL: &str = "host/timer.set_interval";
147    /// 取消指定的本插件定时器。
148    pub const TIMER_CANCEL: &str = "host/timer.cancel";
149    /// 取消本插件的全部定时器。
150    pub const TIMER_CANCEL_ALL: &str = "host/timer.cancel_all";
151    /// 订阅按键事件,宿主推送 `plugin/hotkey.event`。
152    pub const HOTKEY_SUBSCRIBE: &str = "host/hotkey.subscribe";
153    /// 退订按键事件。
154    pub const HOTKEY_UNSUBSCRIBE: &str = "host/hotkey.unsubscribe";
155    /// 订阅安装监控事件,宿主推送 `plugin/installation.event`。
156    pub const INSTALLATION_SUBSCRIBE: &str = "host/installation.subscribe";
157    /// 退订安装监控事件。
158    pub const INSTALLATION_UNSUBSCRIBE: &str = "host/installation.unsubscribe";
159    /// 订阅窗口焦点事件,宿主推送 `plugin/focus.event`。
160    pub const FOCUS_SUBSCRIBE: &str = "host/focus.subscribe";
161    /// 退订窗口焦点事件。
162    pub const FOCUS_UNSUBSCRIBE: &str = "host/focus.unsubscribe";
163}
164
165/// Host-to-plugin push methods (fire-and-forget, no response expected).
166///
167/// 与 `plugin/*` 请求的区别:这些方法由宿主单向推送给插件进程,用于把
168/// `host/timer.*` / `host/*.subscribe` 注册的事件送达插件;插件不应答。
169pub mod event {
170    /// 定时器到期(参数:`{ id }`,id 为 host/timer.set_* 返回的定时器 ID)。
171    pub const TIMER_FIRED: &str = "plugin/timer.fired";
172    /// 按键事件(参数:`{ event }`,HotkeyEvent 序列化形态)。
173    pub const HOTKEY_EVENT: &str = "plugin/hotkey.event";
174    /// 安装监控事件(参数:`{ event }`,InstallationEvent 序列化形态)。
175    pub const INSTALLATION_EVENT: &str = "plugin/installation.event";
176    /// 窗口焦点事件(参数:`{ event }`,FocusEvent 序列化形态)。
177    pub const FOCUS_EVENT: &str = "plugin/focus.event";
178}