1use serde::{Deserialize, Serialize};
2use zerolaunch_plugin_api::config::ComponentType;
3use zerolaunch_plugin_api::host::PluginSdkConfig;
4use zerolaunch_plugin_api::services::focus_monitor::FocusEvent;
5use zerolaunch_plugin_api::services::hotkey::types::{HotkeyEvent, HotkeyEventFilter};
6use zerolaunch_plugin_api::services::installation_monitor::types::InstallationEvent;
7use zerolaunch_plugin_api::services::shell::CommandRunMode;
8use zerolaunch_plugin_api::services::IconRequest;
9use zerolaunch_plugin_api::{
10 CandidateCacheSnapshot, CandidateId, ExecutionContext, KeywordInputSource, PluginContext,
11 Query, ScoredCandidate, SearchCandidate, TargetType,
12};
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct InitializeParams {
18 #[serde(rename = "hostVersion")]
19 pub host_version: String,
20 #[serde(rename = "protocolVersion")]
21 pub protocol_version: String,
22 #[serde(rename = "dataDir")]
23 pub data_dir: String,
24 #[serde(rename = "logDir")]
25 pub log_dir: String,
26 #[serde(rename = "pluginId")]
27 pub plugin_id: String,
28 #[serde(rename = "locale")]
29 pub locale: String,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct InitializeResult {
34 #[serde(rename = "protocolVersion")]
35 pub protocol_version: String,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct ComponentDescriptor {
42 #[serde(rename = "componentId")]
43 pub component_id: String,
44 #[serde(rename = "componentName")]
45 pub component_name: String,
46 #[serde(rename = "componentDescription", default)]
47 pub component_description: String,
48 #[serde(rename = "componentType")]
49 pub component_type: ComponentType,
50 #[serde(rename = "kind")]
51 pub kind: ComponentKind,
52 #[serde(rename = "priority", default = "default_component_priority")]
53 pub priority: u32,
54}
55
56fn default_component_priority() -> u32 {
58 50
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
65#[serde(tag = "type")]
66pub enum ComponentKind {
67 #[serde(rename = "plugin")]
69 Plugin,
70 #[serde(rename = "data_source")]
71 DataSource,
72 #[serde(rename = "action_executor")]
73 ActionExecutor {
74 #[serde(rename = "targetTypes")]
75 target_types: Vec<TargetType>,
76 },
77 #[serde(rename = "search_engine")]
79 SearchEngine,
80 #[serde(rename = "score_booster")]
82 ScoreBooster,
83 #[serde(rename = "keyword_optimizer")]
86 KeywordOptimizer,
87 #[serde(rename = "keyword_injector")]
89 KeywordInjector,
90}
91
92#[derive(Debug, Clone, Serialize, Deserialize)]
95pub struct GetSettingsSchemaParams {
96 #[serde(rename = "componentId")]
97 pub component_id: String,
98}
99
100#[derive(Debug, Clone, Serialize, Deserialize)]
103pub struct GetSettingsParams {
104 #[serde(rename = "componentId")]
105 pub component_id: String,
106}
107
108#[derive(Debug, Clone, Serialize, Deserialize)]
111pub struct ApplySettingsParams {
112 #[serde(rename = "componentId")]
113 pub component_id: String,
114 #[serde(rename = "settings")]
115 pub settings: serde_json::Value,
116}
117
118#[derive(Debug, Clone, Serialize, Deserialize)]
121pub struct ValidateSettingsParams {
122 #[serde(rename = "componentId")]
123 pub component_id: String,
124 #[serde(rename = "settings")]
125 pub settings: serde_json::Value,
126}
127
128#[derive(Debug, Clone, Serialize, Deserialize)]
129pub struct ValidateSettingsResult {
130 #[serde(default)]
131 pub error: Option<String>,
132}
133
134#[derive(Debug, Clone, Serialize, Deserialize)]
140pub struct ConfigActionsParams {
141 #[serde(rename = "componentId")]
142 pub component_id: String,
143}
144
145#[derive(Debug, Clone, Serialize, Deserialize)]
148pub struct ExecuteConfigActionParams {
149 #[serde(rename = "componentId")]
150 pub component_id: String,
151 #[serde(rename = "action")]
152 pub action: String,
153 #[serde(rename = "params")]
154 pub params: serde_json::Value,
155}
156
157#[derive(Debug, Clone, Serialize, Deserialize)]
160pub struct QueryParams {
161 #[serde(rename = "pluginId")]
162 pub plugin_id: String,
163 #[serde(rename = "ctx")]
164 pub ctx: PluginContext,
165 #[serde(rename = "query")]
166 pub query: Query,
167}
168
169#[derive(Debug, Clone, Serialize, Deserialize)]
176pub struct MatchQueryParams {
177 #[serde(rename = "rawQuery")]
179 pub raw_query: String,
180 #[serde(rename = "triggerKeywords")]
183 pub trigger_keywords: Vec<String>,
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize)]
189pub struct ExecuteActionParams {
190 #[serde(rename = "pluginId")]
191 pub plugin_id: String,
192 #[serde(rename = "ctx")]
193 pub ctx: PluginContext,
194 #[serde(rename = "actionId")]
195 pub action_id: String,
196 #[serde(rename = "payload")]
197 pub payload: serde_json::Value,
198}
199
200#[derive(Debug, Clone, Serialize, Deserialize)]
203pub struct FetchCandidatesParams {
204 #[serde(rename = "componentId")]
205 pub component_id: String,
206}
207
208#[derive(Debug, Clone, Serialize, Deserialize)]
211pub struct FetchCandidatesResult {
212 #[serde(rename = "candidates")]
213 pub candidates: Vec<SearchCandidate>,
214}
215
216#[derive(Debug, Clone, Serialize, Deserialize)]
219pub struct SupportedTargetTypesParams {
220 #[serde(rename = "componentId")]
221 pub component_id: String,
222}
223
224#[derive(Debug, Clone, Serialize, Deserialize)]
227pub struct SupportedActionsParams {
228 #[serde(rename = "componentId")]
229 pub component_id: String,
230 #[serde(rename = "targetType")]
231 pub target_type: TargetType,
232}
233
234#[derive(Debug, Clone, Serialize, Deserialize)]
237pub struct ExecutorExecuteParams {
238 #[serde(rename = "componentId")]
239 pub component_id: String,
240 #[serde(rename = "executionCtx")]
243 pub execution_ctx: ExecutionContext,
244 #[serde(rename = "actionId")]
245 pub action_id: String,
246}
247
248#[derive(Debug, Clone, Serialize, Deserialize)]
249pub struct ExecutorExecuteResult {
250 #[serde(default)]
251 pub error: Option<String>,
252}
253
254#[derive(Debug, Clone, Serialize, Deserialize)]
261pub struct CalculateScoresParams {
262 #[serde(rename = "componentId")]
264 pub component_id: String,
265 #[serde(rename = "candidates")]
267 pub candidates: CandidateCacheSnapshot,
268 #[serde(rename = "query")]
270 pub query: String,
271}
272
273#[derive(Debug, Clone, Serialize, Deserialize)]
279pub struct BoosterBoostParams {
280 #[serde(rename = "componentId")]
282 pub component_id: String,
283 #[serde(rename = "candidates")]
285 pub candidates: CandidateCacheSnapshot,
286 #[serde(rename = "scored")]
288 pub scored: Vec<ScoredCandidate>,
289 #[serde(rename = "query")]
291 pub query: String,
292}
293
294#[derive(Debug, Clone, Serialize, Deserialize)]
300pub struct BoosterRecordParams {
301 #[serde(rename = "componentId")]
303 pub component_id: String,
304 #[serde(rename = "candidateId")]
306 pub candidate_id: CandidateId,
307 #[serde(rename = "candidates")]
309 pub candidates: CandidateCacheSnapshot,
310 #[serde(rename = "query")]
312 pub query: String,
313}
314
315#[derive(Debug, Clone, Serialize, Deserialize)]
327pub struct KeywordOptimizerInfo {
328 #[serde(rename = "inputSource")]
330 pub input_source: KeywordInputSource,
331 #[serde(rename = "priority")]
333 pub priority: u32,
334}
335
336#[derive(Debug, Clone, Serialize, Deserialize)]
338pub struct KeywordOptimizerInfoParams {
339 #[serde(rename = "componentId")]
341 pub component_id: String,
342}
343
344#[derive(Debug, Clone, Serialize, Deserialize)]
352pub struct KeywordOptimizeParams {
353 #[serde(rename = "componentId")]
355 pub component_id: String,
356 #[serde(rename = "keyword")]
358 pub keyword: String,
359 #[serde(rename = "inputSource", default)]
363 pub input_source: KeywordInputSource,
364}
365
366#[derive(Debug, Clone, Serialize, Deserialize)]
372pub struct KeywordInjectParams {
373 #[serde(rename = "componentId")]
375 pub component_id: String,
376 #[serde(rename = "candidate")]
378 pub candidate: SearchCandidate,
379}
380
381#[derive(Debug, Clone, Serialize, Deserialize)]
389pub struct InitParams {
390 #[serde(rename = "pluginId")]
392 pub plugin_id: String,
393 #[serde(rename = "ctx")]
395 pub ctx: PluginContext,
396}
397
398#[derive(Debug, Clone, Serialize, Deserialize)]
405pub struct InteractionPolicyParams {
406 #[serde(rename = "componentId")]
408 pub component_id: String,
409}
410
411#[derive(Debug, Clone, Serialize, Deserialize)]
417pub struct GetDefaultEnabledParams {
418 #[serde(rename = "componentId")]
420 pub component_id: String,
421}
422
423#[derive(Debug, Clone, Serialize, Deserialize)]
426pub struct LogParams {
427 #[serde(rename = "level")]
428 pub level: String,
429 #[serde(rename = "message")]
430 pub message: String,
431}
432
433#[derive(Debug, Clone, Serialize, Deserialize)]
436pub struct NotifyParams {
437 #[serde(rename = "title")]
438 pub title: String,
439 #[serde(rename = "message")]
440 pub message: String,
441}
442
443#[derive(Debug, Clone, Serialize, Deserialize)]
446pub struct ShellOpenParams {
447 #[serde(rename = "target")]
448 pub target: String,
449}
450
451#[derive(Debug, Clone, Serialize, Deserialize)]
454pub struct ShellOpenFolderParams {
455 #[serde(rename = "path")]
456 pub path: String,
457}
458
459#[derive(Debug, Clone, Serialize, Deserialize)]
462pub struct ShellExecuteElevationParams {
463 #[serde(rename = "path")]
464 pub path: String,
465}
466
467#[derive(Debug, Clone, Serialize, Deserialize)]
472pub struct ShellExecuteCommandParams {
473 #[serde(rename = "cmd")]
475 pub cmd: String,
476 #[serde(rename = "mode", default)]
478 pub mode: CommandRunMode,
479}
480
481#[derive(Debug, Clone, Serialize, Deserialize)]
484pub struct WindowActivateParams {
485 #[serde(rename = "pid")]
486 pub pid: u32,
487}
488
489#[derive(Debug, Clone, Serialize, Deserialize)]
496pub struct IconRequestParams {
497 #[serde(rename = "request")]
499 pub request: IconRequest,
500}
501
502#[derive(Debug, Clone, Serialize, Deserialize)]
505pub struct PathResolveParams {
506 #[serde(rename = "kind")]
507 pub kind: String,
508}
509
510#[derive(Debug, Clone, Serialize, Deserialize)]
513pub struct ResourceUploadParams {
514 #[serde(rename = "resourceId")]
515 pub resource_id: String,
516 #[serde(rename = "filePath")]
517 pub file_path: String,
518 #[serde(rename = "maxSize")]
519 #[serde(default)]
520 pub max_size: Option<usize>,
521}
522
523#[derive(Debug, Clone, Serialize, Deserialize)]
526pub struct ResourcePutParams {
527 #[serde(rename = "resourceId")]
528 pub resource_id: String,
529 #[serde(rename = "bytesB64")]
530 pub bytes_b64: String,
531}
532
533#[derive(Debug, Clone, Serialize, Deserialize)]
536pub struct ResourceGetParams {
537 #[serde(rename = "resourceId")]
538 pub resource_id: String,
539}
540
541#[derive(Debug, Clone, Serialize, Deserialize)]
544pub struct ResourceDeleteParams {
545 #[serde(rename = "resourceId")]
546 pub resource_id: String,
547}
548
549#[derive(Debug, Clone, Serialize, Deserialize)]
552pub struct ResourceListParams {}
553
554#[derive(Debug, Clone, Serialize, Deserialize)]
557pub struct ParameterResolveParams {
558 #[serde(rename = "userArgs")]
559 pub user_args: Vec<String>,
560 #[serde(rename = "template")]
563 pub template: String,
564}
565
566#[derive(Debug, Clone, Serialize, Deserialize)]
573pub struct SdkConfigUpdateParams {
574 #[serde(rename = "config")]
576 pub config: PluginSdkConfig,
577}
578
579#[derive(Debug, Clone, Serialize, Deserialize)]
583pub struct IconOverrideCacheParams {
584 #[serde(rename = "request")]
586 pub request: IconRequest,
587 #[serde(rename = "customIconPath")]
589 pub custom_icon_path: String,
590}
591
592#[derive(Debug, Clone, Serialize, Deserialize)]
596pub struct WindowActivateByProcessParams {
597 #[serde(rename = "processName")]
599 pub process_name: String,
600}
601
602#[derive(Debug, Clone, Serialize, Deserialize)]
606pub struct WindowActivateByTitleParams {
607 #[serde(rename = "title")]
609 pub title: String,
610}
611
612#[derive(Debug, Clone, Serialize, Deserialize)]
616pub struct ClipboardSetTextParams {
617 #[serde(rename = "text")]
619 pub text: String,
620}
621
622#[derive(Debug, Clone, Serialize, Deserialize)]
627pub struct AppLaunchParams {
628 #[serde(rename = "appId")]
630 pub app_id: String,
631 #[serde(rename = "args")]
633 #[serde(default)]
634 pub args: Option<Vec<String>>,
635}
636
637#[derive(Debug, Clone, Serialize, Deserialize)]
641pub struct AppIconPathParams {
642 #[serde(rename = "name")]
644 pub name: String,
645}
646
647#[derive(Debug, Clone, Serialize, Deserialize)]
651pub struct PathResolveLnkParams {
652 #[serde(rename = "lnkPath")]
654 pub lnk_path: String,
655}
656
657#[derive(Debug, Clone, Serialize, Deserialize)]
661pub struct PathLocalizedNamesParams {
662 #[serde(rename = "dirPath")]
664 pub dir_path: String,
665}
666
667#[derive(Debug, Clone, Serialize, Deserialize)]
671pub struct ParameterTemplateParams {
672 #[serde(rename = "template")]
674 pub template: String,
675}
676
677#[derive(Debug, Clone, Serialize, Deserialize)]
681pub struct CachePutParams {
682 #[serde(rename = "domain")]
684 pub domain: String,
685 #[serde(rename = "key")]
687 pub key: String,
688 #[serde(rename = "bytesB64")]
690 pub bytes_b64: String,
691}
692
693#[derive(Debug, Clone, Serialize, Deserialize)]
697pub struct CacheGetParams {
698 #[serde(rename = "domain")]
700 pub domain: String,
701 #[serde(rename = "key")]
703 pub key: String,
704}
705
706#[derive(Debug, Clone, Serialize, Deserialize)]
710pub struct CacheDeleteParams {
711 #[serde(rename = "domain")]
713 pub domain: String,
714 #[serde(rename = "key")]
716 pub key: String,
717}
718
719#[derive(Debug, Clone, Serialize, Deserialize)]
723pub struct CacheCleanupParams {
724 #[serde(rename = "domain")]
726 pub domain: String,
727 #[serde(rename = "maxEntries")]
729 pub max_entries: usize,
730}
731
732#[derive(Debug, Clone, Serialize, Deserialize)]
737pub struct TimerSetTimeoutParams {
738 #[serde(rename = "delayMs")]
740 pub delay_ms: u64,
741}
742
743#[derive(Debug, Clone, Serialize, Deserialize)]
747pub struct TimerSetIntervalParams {
748 #[serde(rename = "intervalMs")]
750 pub interval_ms: u64,
751}
752
753#[derive(Debug, Clone, Serialize, Deserialize)]
757pub struct TimerCancelParams {
758 #[serde(rename = "id")]
760 pub id: u64,
761}
762
763#[derive(Debug, Clone, Serialize, Deserialize)]
767pub struct TimerCancelAllParams {}
768
769#[derive(Debug, Clone, Serialize, Deserialize)]
773pub struct TimerFiredParams {
774 #[serde(rename = "id")]
776 pub id: u64,
777}
778
779#[derive(Debug, Clone, Serialize, Deserialize)]
783pub struct HotkeySubscribeParams {
784 #[serde(rename = "id")]
786 pub id: String,
787 #[serde(rename = "filter")]
789 pub filter: HotkeyEventFilter,
790}
791
792#[derive(Debug, Clone, Serialize, Deserialize)]
796pub struct HotkeyUnsubscribeParams {
797 #[serde(rename = "id")]
799 pub id: String,
800}
801
802#[derive(Debug, Clone, Serialize, Deserialize)]
806pub struct InstallationSubscribeParams {
807 #[serde(rename = "id")]
809 pub id: String,
810}
811
812#[derive(Debug, Clone, Serialize, Deserialize)]
814pub struct InstallationUnsubscribeParams {
815 #[serde(rename = "id")]
817 pub id: String,
818}
819
820#[derive(Debug, Clone, Serialize, Deserialize)]
824pub struct FocusSubscribeParams {
825 #[serde(rename = "id")]
827 pub id: String,
828}
829
830#[derive(Debug, Clone, Serialize, Deserialize)]
832pub struct FocusUnsubscribeParams {
833 #[serde(rename = "id")]
835 pub id: String,
836}
837
838#[derive(Debug, Clone, Serialize, Deserialize)]
843pub struct HotkeyEventParams {
844 #[serde(rename = "id")]
846 pub id: String,
847 #[serde(rename = "event")]
849 pub event: HotkeyEvent,
850}
851
852#[derive(Debug, Clone, Serialize, Deserialize)]
854pub struct InstallationEventParams {
855 #[serde(rename = "id")]
857 pub id: String,
858 #[serde(rename = "event")]
860 pub event: InstallationEvent,
861}
862
863#[derive(Debug, Clone, Serialize, Deserialize)]
865pub struct FocusEventParams {
866 #[serde(rename = "id")]
868 pub id: String,
869 #[serde(rename = "event")]
871 pub event: FocusEvent,
872}