@tx5dr/contracts 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/schema/__tests__/radio-power-support.test.d.ts +2 -0
  2. package/dist/schema/__tests__/radio-power-support.test.d.ts.map +1 -0
  3. package/dist/schema/__tests__/radio-power-support.test.js +19 -0
  4. package/dist/schema/__tests__/radio-power-support.test.js.map +1 -0
  5. package/dist/schema/__tests__/realtime-settings.schema.test.d.ts +2 -0
  6. package/dist/schema/__tests__/realtime-settings.schema.test.d.ts.map +1 -0
  7. package/dist/schema/__tests__/realtime-settings.schema.test.js +122 -0
  8. package/dist/schema/__tests__/realtime-settings.schema.test.js.map +1 -0
  9. package/dist/schema/cpu-profile.schema.d.ts +4 -4
  10. package/dist/schema/desktop-https.schema.d.ts +9 -0
  11. package/dist/schema/desktop-https.schema.d.ts.map +1 -1
  12. package/dist/schema/desktop-https.schema.js +3 -0
  13. package/dist/schema/desktop-https.schema.js.map +1 -1
  14. package/dist/schema/openwebrx.schema.d.ts +1 -1
  15. package/dist/schema/openwebrx.schema.d.ts.map +1 -1
  16. package/dist/schema/openwebrx.schema.js +1 -1
  17. package/dist/schema/openwebrx.schema.js.map +1 -1
  18. package/dist/schema/operator.schema.d.ts +32 -32
  19. package/dist/schema/plugin.schema.d.ts +702 -168
  20. package/dist/schema/plugin.schema.d.ts.map +1 -1
  21. package/dist/schema/plugin.schema.js +38 -3
  22. package/dist/schema/plugin.schema.js.map +1 -1
  23. package/dist/schema/radio-capability.schema.d.ts +42 -2
  24. package/dist/schema/radio-capability.schema.d.ts.map +1 -1
  25. package/dist/schema/radio-capability.schema.js +18 -1
  26. package/dist/schema/radio-capability.schema.js.map +1 -1
  27. package/dist/schema/radio-power-support.d.ts +8 -0
  28. package/dist/schema/radio-power-support.d.ts.map +1 -1
  29. package/dist/schema/radio-power-support.js +38 -26
  30. package/dist/schema/radio-power-support.js.map +1 -1
  31. package/dist/schema/radio-power.schema.d.ts +10 -6
  32. package/dist/schema/radio-power.schema.d.ts.map +1 -1
  33. package/dist/schema/radio-power.schema.js +8 -6
  34. package/dist/schema/radio-power.schema.js.map +1 -1
  35. package/dist/schema/realtime.schema.d.ts +797 -417
  36. package/dist/schema/realtime.schema.d.ts.map +1 -1
  37. package/dist/schema/realtime.schema.js +205 -51
  38. package/dist/schema/realtime.schema.js.map +1 -1
  39. package/dist/schema/server-message-keys.d.ts +2 -2
  40. package/dist/schema/server-message-keys.d.ts.map +1 -1
  41. package/dist/schema/server-message-keys.js +2 -2
  42. package/dist/schema/server-message-keys.js.map +1 -1
  43. package/dist/schema/slot-info.schema.d.ts +6 -0
  44. package/dist/schema/slot-info.schema.d.ts.map +1 -1
  45. package/dist/schema/slot-info.schema.js +3 -1
  46. package/dist/schema/slot-info.schema.js.map +1 -1
  47. package/dist/schema/websocket.schema.d.ts +1436 -640
  48. package/dist/schema/websocket.schema.d.ts.map +1 -1
  49. package/dist/schema/websocket.schema.js +2 -1
  50. package/dist/schema/websocket.schema.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/schema/__tests__/radio-power-support.test.ts +26 -0
  53. package/src/schema/__tests__/realtime-settings.schema.test.ts +142 -0
  54. package/src/schema/desktop-https.schema.ts +3 -1
  55. package/src/schema/openwebrx.schema.ts +1 -1
  56. package/src/schema/plugin.schema.ts +44 -3
  57. package/src/schema/radio-capability.schema.ts +25 -1
  58. package/src/schema/radio-power-support.ts +49 -26
  59. package/src/schema/radio-power.schema.ts +8 -6
  60. package/src/schema/realtime.schema.ts +247 -65
  61. package/src/schema/server-message-keys.ts +2 -2
  62. package/src/schema/slot-info.schema.ts +3 -1
  63. package/src/schema/websocket.schema.ts +3 -1
@@ -29,7 +29,7 @@ export type PluginInstanceScope = z.infer<typeof PluginInstanceScopeSchema>;
29
29
  * Permissions let the host gate sensitive capabilities behind manifest-level
30
30
  * intent. Plugins should request the smallest possible set.
31
31
  */
32
- export declare const PluginPermissionSchema: z.ZodEnum<["network"]>;
32
+ export declare const PluginPermissionSchema: z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>;
33
33
  /**
34
34
  * Explicit permission declarations requested by a plugin.
35
35
  */
@@ -48,7 +48,7 @@ export type PluginPanelComponent = z.infer<typeof PluginPanelComponentSchema>;
48
48
  * These values control both validation expectations and default frontend
49
49
  * rendering in plugin settings UIs.
50
50
  */
51
- export declare const PluginSettingTypeSchema: z.ZodEnum<["boolean", "number", "string", "string[]", "info"]>;
51
+ export declare const PluginSettingTypeSchema: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
52
52
  /**
53
53
  * Supported generated-form field types for plugin settings.
54
54
  */
@@ -70,6 +70,29 @@ export declare const PluginSettingOptionSchema: z.ZodObject<{
70
70
  * Label/value pair used by select-like plugin settings.
71
71
  */
72
72
  export type PluginSettingOption = z.infer<typeof PluginSettingOptionSchema>;
73
+ export declare const PluginObjectArrayFieldSchema: z.ZodObject<{
74
+ key: z.ZodString;
75
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["string", "number", "boolean"]>>>;
76
+ label: z.ZodString;
77
+ description: z.ZodOptional<z.ZodString>;
78
+ placeholder: z.ZodOptional<z.ZodString>;
79
+ required: z.ZodOptional<z.ZodBoolean>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ type: "string" | "number" | "boolean";
82
+ label: string;
83
+ key: string;
84
+ description?: string | undefined;
85
+ placeholder?: string | undefined;
86
+ required?: boolean | undefined;
87
+ }, {
88
+ label: string;
89
+ key: string;
90
+ type?: "string" | "number" | "boolean" | undefined;
91
+ description?: string | undefined;
92
+ placeholder?: string | undefined;
93
+ required?: boolean | undefined;
94
+ }>;
95
+ export type PluginObjectArrayField = z.infer<typeof PluginObjectArrayFieldSchema>;
73
96
  /**
74
97
  * Persistence and UI scope for a plugin setting.
75
98
  *
@@ -90,7 +113,7 @@ export type PluginSettingScope = z.infer<typeof PluginSettingScopeSchema>;
90
113
  * and resolve default values before injecting them into `ctx.config`.
91
114
  */
92
115
  export declare const PluginSettingDescriptorSchema: z.ZodObject<{
93
- type: z.ZodEnum<["boolean", "number", "string", "string[]", "info"]>;
116
+ type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
94
117
  default: z.ZodUnknown;
95
118
  label: z.ZodString;
96
119
  description: z.ZodOptional<z.ZodString>;
@@ -106,10 +129,35 @@ export declare const PluginSettingDescriptorSchema: z.ZodObject<{
106
129
  value: string;
107
130
  label: string;
108
131
  }>, "many">>;
132
+ /** Field schema used by generated editors for `object[]` settings. */
133
+ itemFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
134
+ key: z.ZodString;
135
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["string", "number", "boolean"]>>>;
136
+ label: z.ZodString;
137
+ description: z.ZodOptional<z.ZodString>;
138
+ placeholder: z.ZodOptional<z.ZodString>;
139
+ required: z.ZodOptional<z.ZodBoolean>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ type: "string" | "number" | "boolean";
142
+ label: string;
143
+ key: string;
144
+ description?: string | undefined;
145
+ placeholder?: string | undefined;
146
+ required?: boolean | undefined;
147
+ }, {
148
+ label: string;
149
+ key: string;
150
+ type?: "string" | "number" | "boolean" | undefined;
151
+ description?: string | undefined;
152
+ placeholder?: string | undefined;
153
+ required?: boolean | undefined;
154
+ }>, "many">>;
155
+ /** Internal settings are persisted/injected but hidden from generated UIs. */
156
+ hidden: z.ZodOptional<z.ZodBoolean>;
109
157
  /** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
110
158
  scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
111
159
  }, "strip", z.ZodTypeAny, {
112
- type: "string" | "number" | "boolean" | "string[]" | "info";
160
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
113
161
  label: string;
114
162
  scope: "operator" | "global";
115
163
  options?: {
@@ -120,8 +168,17 @@ export declare const PluginSettingDescriptorSchema: z.ZodObject<{
120
168
  max?: number | undefined;
121
169
  description?: string | undefined;
122
170
  default?: unknown;
171
+ itemFields?: {
172
+ type: "string" | "number" | "boolean";
173
+ label: string;
174
+ key: string;
175
+ description?: string | undefined;
176
+ placeholder?: string | undefined;
177
+ required?: boolean | undefined;
178
+ }[] | undefined;
179
+ hidden?: boolean | undefined;
123
180
  }, {
124
- type: "string" | "number" | "boolean" | "string[]" | "info";
181
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
125
182
  label: string;
126
183
  options?: {
127
184
  value: string;
@@ -131,6 +188,15 @@ export declare const PluginSettingDescriptorSchema: z.ZodObject<{
131
188
  max?: number | undefined;
132
189
  description?: string | undefined;
133
190
  default?: unknown;
191
+ itemFields?: {
192
+ label: string;
193
+ key: string;
194
+ type?: "string" | "number" | "boolean" | undefined;
195
+ description?: string | undefined;
196
+ placeholder?: string | undefined;
197
+ required?: boolean | undefined;
198
+ }[] | undefined;
199
+ hidden?: boolean | undefined;
134
200
  scope?: "operator" | "global" | undefined;
135
201
  }>;
136
202
  /**
@@ -223,7 +289,8 @@ export type PluginPanelWidth = z.infer<typeof PluginPanelWidthSchema>;
223
289
  *
224
290
  * Panels are passive containers rendered by the host. A plugin sends data into
225
291
  * them through `ctx.ui.send(panelId, data)`. When `component` is `'iframe'`,
226
- * the panel renders a custom UI page inside a sandboxed iframe instead.
292
+ * the panel renders a custom UI page inside a sandboxed iframe instead. Static
293
+ * manifest panels and runtime UI contributions use this same descriptor.
227
294
  */
228
295
  export declare const PluginPanelDescriptorSchema: z.ZodObject<{
229
296
  id: z.ZodString;
@@ -231,6 +298,8 @@ export declare const PluginPanelDescriptorSchema: z.ZodObject<{
231
298
  component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
232
299
  /** Required when `component` is `'iframe'`. References a page id from `ui.pages`. */
233
300
  pageId: z.ZodOptional<z.ZodString>;
301
+ /** Optional string params forwarded to iframe panels as URL/init params. */
302
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
234
303
  /** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
235
304
  slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
236
305
  /** Preferred width hint. Defaults to `'half'`. */
@@ -239,6 +308,7 @@ export declare const PluginPanelDescriptorSchema: z.ZodObject<{
239
308
  id: string;
240
309
  title: string;
241
310
  component: "table" | "key-value" | "chart" | "log" | "iframe";
311
+ params?: Record<string, string> | undefined;
242
312
  pageId?: string | undefined;
243
313
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
244
314
  width?: "full" | "half" | undefined;
@@ -246,6 +316,7 @@ export declare const PluginPanelDescriptorSchema: z.ZodObject<{
246
316
  id: string;
247
317
  title: string;
248
318
  component: "table" | "key-value" | "chart" | "log" | "iframe";
319
+ params?: Record<string, string> | undefined;
249
320
  pageId?: string | undefined;
250
321
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
251
322
  width?: "full" | "half" | undefined;
@@ -254,6 +325,120 @@ export declare const PluginPanelDescriptorSchema: z.ZodObject<{
254
325
  * Declarative definition of a plugin-owned panel in the frontend.
255
326
  */
256
327
  export type PluginPanelDescriptor = z.infer<typeof PluginPanelDescriptorSchema>;
328
+ export declare const PluginUIPanelContributionTargetSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
329
+ kind: z.ZodLiteral<"global">;
330
+ }, "strip", z.ZodTypeAny, {
331
+ kind: "global";
332
+ }, {
333
+ kind: "global";
334
+ }>, z.ZodObject<{
335
+ kind: z.ZodLiteral<"operator">;
336
+ operatorId: z.ZodString;
337
+ }, "strip", z.ZodTypeAny, {
338
+ operatorId: string;
339
+ kind: "operator";
340
+ }, {
341
+ operatorId: string;
342
+ kind: "operator";
343
+ }>]>;
344
+ export type PluginUIPanelContributionTarget = z.infer<typeof PluginUIPanelContributionTargetSchema>;
345
+ /**
346
+ * A normalized group of plugin UI panels.
347
+ *
348
+ * Static `PluginDefinition.panels` are emitted by the host as the reserved
349
+ * `manifest` group. Runtime groups are replaced by
350
+ * `ctx.ui.setPanelContributions(groupId, panels)` and cleared by publishing an
351
+ * empty panel list for the same group.
352
+ */
353
+ export declare const PluginUIPanelContributionGroupSchema: z.ZodObject<{
354
+ pluginName: z.ZodString;
355
+ groupId: z.ZodString;
356
+ source: z.ZodEnum<["manifest", "runtime"]>;
357
+ instanceTarget: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
358
+ kind: z.ZodLiteral<"global">;
359
+ }, "strip", z.ZodTypeAny, {
360
+ kind: "global";
361
+ }, {
362
+ kind: "global";
363
+ }>, z.ZodObject<{
364
+ kind: z.ZodLiteral<"operator">;
365
+ operatorId: z.ZodString;
366
+ }, "strip", z.ZodTypeAny, {
367
+ operatorId: string;
368
+ kind: "operator";
369
+ }, {
370
+ operatorId: string;
371
+ kind: "operator";
372
+ }>]>>;
373
+ panels: z.ZodArray<z.ZodObject<{
374
+ id: z.ZodString;
375
+ title: z.ZodString;
376
+ component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
377
+ /** Required when `component` is `'iframe'`. References a page id from `ui.pages`. */
378
+ pageId: z.ZodOptional<z.ZodString>;
379
+ /** Optional string params forwarded to iframe panels as URL/init params. */
380
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
381
+ /** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
382
+ slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
383
+ /** Preferred width hint. Defaults to `'half'`. */
384
+ width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
385
+ }, "strip", z.ZodTypeAny, {
386
+ id: string;
387
+ title: string;
388
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
389
+ params?: Record<string, string> | undefined;
390
+ pageId?: string | undefined;
391
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
392
+ width?: "full" | "half" | undefined;
393
+ }, {
394
+ id: string;
395
+ title: string;
396
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
397
+ params?: Record<string, string> | undefined;
398
+ pageId?: string | undefined;
399
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
400
+ width?: "full" | "half" | undefined;
401
+ }>, "many">;
402
+ }, "strip", z.ZodTypeAny, {
403
+ pluginName: string;
404
+ groupId: string;
405
+ source: "manifest" | "runtime";
406
+ panels: {
407
+ id: string;
408
+ title: string;
409
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
410
+ params?: Record<string, string> | undefined;
411
+ pageId?: string | undefined;
412
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
413
+ width?: "full" | "half" | undefined;
414
+ }[];
415
+ instanceTarget?: {
416
+ kind: "global";
417
+ } | {
418
+ operatorId: string;
419
+ kind: "operator";
420
+ } | undefined;
421
+ }, {
422
+ pluginName: string;
423
+ groupId: string;
424
+ source: "manifest" | "runtime";
425
+ panels: {
426
+ id: string;
427
+ title: string;
428
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
429
+ params?: Record<string, string> | undefined;
430
+ pageId?: string | undefined;
431
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
432
+ width?: "full" | "half" | undefined;
433
+ }[];
434
+ instanceTarget?: {
435
+ kind: "global";
436
+ } | {
437
+ operatorId: string;
438
+ kind: "operator";
439
+ } | undefined;
440
+ }>;
441
+ export type PluginUIPanelContributionGroup = z.infer<typeof PluginUIPanelContributionGroupSchema>;
257
442
  /**
258
443
  * Declarative descriptor for a custom UI page served from a plugin's static
259
444
  * file directory and rendered inside an iframe by the host.
@@ -388,9 +573,9 @@ export declare const PluginManifestSchema: z.ZodObject<{
388
573
  type: z.ZodEnum<["strategy", "utility"]>;
389
574
  instanceScope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["operator", "global"]>>>;
390
575
  description: z.ZodOptional<z.ZodString>;
391
- permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>;
576
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>;
392
577
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
393
- type: z.ZodEnum<["boolean", "number", "string", "string[]", "info"]>;
578
+ type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
394
579
  default: z.ZodUnknown;
395
580
  label: z.ZodString;
396
581
  description: z.ZodOptional<z.ZodString>;
@@ -406,10 +591,35 @@ export declare const PluginManifestSchema: z.ZodObject<{
406
591
  value: string;
407
592
  label: string;
408
593
  }>, "many">>;
594
+ /** Field schema used by generated editors for `object[]` settings. */
595
+ itemFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
596
+ key: z.ZodString;
597
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["string", "number", "boolean"]>>>;
598
+ label: z.ZodString;
599
+ description: z.ZodOptional<z.ZodString>;
600
+ placeholder: z.ZodOptional<z.ZodString>;
601
+ required: z.ZodOptional<z.ZodBoolean>;
602
+ }, "strip", z.ZodTypeAny, {
603
+ type: "string" | "number" | "boolean";
604
+ label: string;
605
+ key: string;
606
+ description?: string | undefined;
607
+ placeholder?: string | undefined;
608
+ required?: boolean | undefined;
609
+ }, {
610
+ label: string;
611
+ key: string;
612
+ type?: "string" | "number" | "boolean" | undefined;
613
+ description?: string | undefined;
614
+ placeholder?: string | undefined;
615
+ required?: boolean | undefined;
616
+ }>, "many">>;
617
+ /** Internal settings are persisted/injected but hidden from generated UIs. */
618
+ hidden: z.ZodOptional<z.ZodBoolean>;
409
619
  /** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
410
620
  scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
411
621
  }, "strip", z.ZodTypeAny, {
412
- type: "string" | "number" | "boolean" | "string[]" | "info";
622
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
413
623
  label: string;
414
624
  scope: "operator" | "global";
415
625
  options?: {
@@ -420,8 +630,17 @@ export declare const PluginManifestSchema: z.ZodObject<{
420
630
  max?: number | undefined;
421
631
  description?: string | undefined;
422
632
  default?: unknown;
633
+ itemFields?: {
634
+ type: "string" | "number" | "boolean";
635
+ label: string;
636
+ key: string;
637
+ description?: string | undefined;
638
+ placeholder?: string | undefined;
639
+ required?: boolean | undefined;
640
+ }[] | undefined;
641
+ hidden?: boolean | undefined;
423
642
  }, {
424
- type: "string" | "number" | "boolean" | "string[]" | "info";
643
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
425
644
  label: string;
426
645
  options?: {
427
646
  value: string;
@@ -431,6 +650,15 @@ export declare const PluginManifestSchema: z.ZodObject<{
431
650
  max?: number | undefined;
432
651
  description?: string | undefined;
433
652
  default?: unknown;
653
+ itemFields?: {
654
+ label: string;
655
+ key: string;
656
+ type?: "string" | "number" | "boolean" | undefined;
657
+ description?: string | undefined;
658
+ placeholder?: string | undefined;
659
+ required?: boolean | undefined;
660
+ }[] | undefined;
661
+ hidden?: boolean | undefined;
434
662
  scope?: "operator" | "global" | undefined;
435
663
  }>>>;
436
664
  quickActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -459,6 +687,8 @@ export declare const PluginManifestSchema: z.ZodObject<{
459
687
  component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
460
688
  /** Required when `component` is `'iframe'`. References a page id from `ui.pages`. */
461
689
  pageId: z.ZodOptional<z.ZodString>;
690
+ /** Optional string params forwarded to iframe panels as URL/init params. */
691
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
462
692
  /** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
463
693
  slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
464
694
  /** Preferred width hint. Defaults to `'half'`. */
@@ -467,6 +697,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
467
697
  id: string;
468
698
  title: string;
469
699
  component: "table" | "key-value" | "chart" | "log" | "iframe";
700
+ params?: Record<string, string> | undefined;
470
701
  pageId?: string | undefined;
471
702
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
472
703
  width?: "full" | "half" | undefined;
@@ -474,6 +705,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
474
705
  id: string;
475
706
  title: string;
476
707
  component: "table" | "key-value" | "chart" | "log" | "iframe";
708
+ params?: Record<string, string> | undefined;
477
709
  pageId?: string | undefined;
478
710
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
479
711
  width?: "full" | "half" | undefined;
@@ -544,6 +776,15 @@ export declare const PluginManifestSchema: z.ZodObject<{
544
776
  version: string;
545
777
  instanceScope: "operator" | "global";
546
778
  description?: string | undefined;
779
+ panels?: {
780
+ id: string;
781
+ title: string;
782
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
783
+ params?: Record<string, string> | undefined;
784
+ pageId?: string | undefined;
785
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
786
+ width?: "full" | "half" | undefined;
787
+ }[] | undefined;
547
788
  ui?: {
548
789
  dir: string;
549
790
  pages: {
@@ -555,9 +796,9 @@ export declare const PluginManifestSchema: z.ZodObject<{
555
796
  icon?: string | undefined;
556
797
  }[];
557
798
  } | undefined;
558
- permissions?: "network"[] | undefined;
799
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
559
800
  settings?: Record<string, {
560
- type: "string" | "number" | "boolean" | "string[]" | "info";
801
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
561
802
  label: string;
562
803
  scope: "operator" | "global";
563
804
  options?: {
@@ -568,6 +809,15 @@ export declare const PluginManifestSchema: z.ZodObject<{
568
809
  max?: number | undefined;
569
810
  description?: string | undefined;
570
811
  default?: unknown;
812
+ itemFields?: {
813
+ type: "string" | "number" | "boolean";
814
+ label: string;
815
+ key: string;
816
+ description?: string | undefined;
817
+ placeholder?: string | undefined;
818
+ required?: boolean | undefined;
819
+ }[] | undefined;
820
+ hidden?: boolean | undefined;
571
821
  }> | undefined;
572
822
  quickActions?: {
573
823
  id: string;
@@ -577,14 +827,6 @@ export declare const PluginManifestSchema: z.ZodObject<{
577
827
  quickSettings?: {
578
828
  settingKey: string;
579
829
  }[] | undefined;
580
- panels?: {
581
- id: string;
582
- title: string;
583
- component: "table" | "key-value" | "chart" | "log" | "iframe";
584
- pageId?: string | undefined;
585
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
586
- width?: "full" | "half" | undefined;
587
- }[] | undefined;
588
830
  storage?: {
589
831
  scopes: ("operator" | "global")[];
590
832
  } | undefined;
@@ -593,6 +835,15 @@ export declare const PluginManifestSchema: z.ZodObject<{
593
835
  name: string;
594
836
  version: string;
595
837
  description?: string | undefined;
838
+ panels?: {
839
+ id: string;
840
+ title: string;
841
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
842
+ params?: Record<string, string> | undefined;
843
+ pageId?: string | undefined;
844
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
845
+ width?: "full" | "half" | undefined;
846
+ }[] | undefined;
596
847
  ui?: {
597
848
  dir?: string | undefined;
598
849
  pages?: {
@@ -605,9 +856,9 @@ export declare const PluginManifestSchema: z.ZodObject<{
605
856
  }[] | undefined;
606
857
  } | undefined;
607
858
  instanceScope?: "operator" | "global" | undefined;
608
- permissions?: "network"[] | undefined;
859
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
609
860
  settings?: Record<string, {
610
- type: "string" | "number" | "boolean" | "string[]" | "info";
861
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
611
862
  label: string;
612
863
  options?: {
613
864
  value: string;
@@ -617,6 +868,15 @@ export declare const PluginManifestSchema: z.ZodObject<{
617
868
  max?: number | undefined;
618
869
  description?: string | undefined;
619
870
  default?: unknown;
871
+ itemFields?: {
872
+ label: string;
873
+ key: string;
874
+ type?: "string" | "number" | "boolean" | undefined;
875
+ description?: string | undefined;
876
+ placeholder?: string | undefined;
877
+ required?: boolean | undefined;
878
+ }[] | undefined;
879
+ hidden?: boolean | undefined;
620
880
  scope?: "operator" | "global" | undefined;
621
881
  }> | undefined;
622
882
  quickActions?: {
@@ -627,14 +887,6 @@ export declare const PluginManifestSchema: z.ZodObject<{
627
887
  quickSettings?: {
628
888
  settingKey: string;
629
889
  }[] | undefined;
630
- panels?: {
631
- id: string;
632
- title: string;
633
- component: "table" | "key-value" | "chart" | "log" | "iframe";
634
- pageId?: string | undefined;
635
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
636
- width?: "full" | "half" | undefined;
637
- }[] | undefined;
638
890
  storage?: {
639
891
  scopes: ("operator" | "global")[];
640
892
  } | undefined;
@@ -692,7 +944,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
692
944
  /** 仅对 strategy 插件有意义:当前被哪些 operator 选中 */
693
945
  assignedOperatorIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
694
946
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
695
- type: z.ZodEnum<["boolean", "number", "string", "string[]", "info"]>;
947
+ type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
696
948
  default: z.ZodUnknown;
697
949
  label: z.ZodString;
698
950
  description: z.ZodOptional<z.ZodString>;
@@ -708,10 +960,35 @@ export declare const PluginStatusSchema: z.ZodObject<{
708
960
  value: string;
709
961
  label: string;
710
962
  }>, "many">>;
963
+ /** Field schema used by generated editors for `object[]` settings. */
964
+ itemFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
965
+ key: z.ZodString;
966
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["string", "number", "boolean"]>>>;
967
+ label: z.ZodString;
968
+ description: z.ZodOptional<z.ZodString>;
969
+ placeholder: z.ZodOptional<z.ZodString>;
970
+ required: z.ZodOptional<z.ZodBoolean>;
971
+ }, "strip", z.ZodTypeAny, {
972
+ type: "string" | "number" | "boolean";
973
+ label: string;
974
+ key: string;
975
+ description?: string | undefined;
976
+ placeholder?: string | undefined;
977
+ required?: boolean | undefined;
978
+ }, {
979
+ label: string;
980
+ key: string;
981
+ type?: "string" | "number" | "boolean" | undefined;
982
+ description?: string | undefined;
983
+ placeholder?: string | undefined;
984
+ required?: boolean | undefined;
985
+ }>, "many">>;
986
+ /** Internal settings are persisted/injected but hidden from generated UIs. */
987
+ hidden: z.ZodOptional<z.ZodBoolean>;
711
988
  /** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
712
989
  scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
713
990
  }, "strip", z.ZodTypeAny, {
714
- type: "string" | "number" | "boolean" | "string[]" | "info";
991
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
715
992
  label: string;
716
993
  scope: "operator" | "global";
717
994
  options?: {
@@ -722,8 +999,17 @@ export declare const PluginStatusSchema: z.ZodObject<{
722
999
  max?: number | undefined;
723
1000
  description?: string | undefined;
724
1001
  default?: unknown;
1002
+ itemFields?: {
1003
+ type: "string" | "number" | "boolean";
1004
+ label: string;
1005
+ key: string;
1006
+ description?: string | undefined;
1007
+ placeholder?: string | undefined;
1008
+ required?: boolean | undefined;
1009
+ }[] | undefined;
1010
+ hidden?: boolean | undefined;
725
1011
  }, {
726
- type: "string" | "number" | "boolean" | "string[]" | "info";
1012
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
727
1013
  label: string;
728
1014
  options?: {
729
1015
  value: string;
@@ -733,6 +1019,15 @@ export declare const PluginStatusSchema: z.ZodObject<{
733
1019
  max?: number | undefined;
734
1020
  description?: string | undefined;
735
1021
  default?: unknown;
1022
+ itemFields?: {
1023
+ label: string;
1024
+ key: string;
1025
+ type?: "string" | "number" | "boolean" | undefined;
1026
+ description?: string | undefined;
1027
+ placeholder?: string | undefined;
1028
+ required?: boolean | undefined;
1029
+ }[] | undefined;
1030
+ hidden?: boolean | undefined;
736
1031
  scope?: "operator" | "global" | undefined;
737
1032
  }>>>;
738
1033
  quickActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -761,6 +1056,8 @@ export declare const PluginStatusSchema: z.ZodObject<{
761
1056
  component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
762
1057
  /** Required when `component` is `'iframe'`. References a page id from `ui.pages`. */
763
1058
  pageId: z.ZodOptional<z.ZodString>;
1059
+ /** Optional string params forwarded to iframe panels as URL/init params. */
1060
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
764
1061
  /** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
765
1062
  slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
766
1063
  /** Preferred width hint. Defaults to `'half'`. */
@@ -769,6 +1066,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
769
1066
  id: string;
770
1067
  title: string;
771
1068
  component: "table" | "key-value" | "chart" | "log" | "iframe";
1069
+ params?: Record<string, string> | undefined;
772
1070
  pageId?: string | undefined;
773
1071
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
774
1072
  width?: "full" | "half" | undefined;
@@ -776,11 +1074,12 @@ export declare const PluginStatusSchema: z.ZodObject<{
776
1074
  id: string;
777
1075
  title: string;
778
1076
  component: "table" | "key-value" | "chart" | "log" | "iframe";
1077
+ params?: Record<string, string> | undefined;
779
1078
  pageId?: string | undefined;
780
1079
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
781
1080
  width?: "full" | "half" | undefined;
782
1081
  }>, "many">>;
783
- permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>;
1082
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>;
784
1083
  capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["auto_call_candidate", "auto_call_execution"]>, "many">>;
785
1084
  ui: z.ZodOptional<z.ZodObject<{
786
1085
  /** Static file directory relative to the plugin root (default: 'ui'). */
@@ -869,6 +1168,23 @@ export declare const PluginStatusSchema: z.ZodObject<{
869
1168
  autoDisabled: boolean;
870
1169
  errorCount: number;
871
1170
  description?: string | undefined;
1171
+ source?: {
1172
+ kind: "marketplace";
1173
+ version: string;
1174
+ channel: "stable" | "nightly";
1175
+ artifactUrl: string;
1176
+ sha256: string;
1177
+ installedAt: number;
1178
+ } | undefined;
1179
+ panels?: {
1180
+ id: string;
1181
+ title: string;
1182
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1183
+ params?: Record<string, string> | undefined;
1184
+ pageId?: string | undefined;
1185
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1186
+ width?: "full" | "half" | undefined;
1187
+ }[] | undefined;
872
1188
  ui?: {
873
1189
  dir: string;
874
1190
  pages: {
@@ -880,9 +1196,9 @@ export declare const PluginStatusSchema: z.ZodObject<{
880
1196
  icon?: string | undefined;
881
1197
  }[];
882
1198
  } | undefined;
883
- permissions?: "network"[] | undefined;
1199
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
884
1200
  settings?: Record<string, {
885
- type: "string" | "number" | "boolean" | "string[]" | "info";
1201
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
886
1202
  label: string;
887
1203
  scope: "operator" | "global";
888
1204
  options?: {
@@ -893,6 +1209,15 @@ export declare const PluginStatusSchema: z.ZodObject<{
893
1209
  max?: number | undefined;
894
1210
  description?: string | undefined;
895
1211
  default?: unknown;
1212
+ itemFields?: {
1213
+ type: "string" | "number" | "boolean";
1214
+ label: string;
1215
+ key: string;
1216
+ description?: string | undefined;
1217
+ placeholder?: string | undefined;
1218
+ required?: boolean | undefined;
1219
+ }[] | undefined;
1220
+ hidden?: boolean | undefined;
896
1221
  }> | undefined;
897
1222
  quickActions?: {
898
1223
  id: string;
@@ -902,26 +1227,10 @@ export declare const PluginStatusSchema: z.ZodObject<{
902
1227
  quickSettings?: {
903
1228
  settingKey: string;
904
1229
  }[] | undefined;
905
- panels?: {
906
- id: string;
907
- title: string;
908
- component: "table" | "key-value" | "chart" | "log" | "iframe";
909
- pageId?: string | undefined;
910
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
911
- width?: "full" | "half" | undefined;
912
- }[] | undefined;
913
1230
  lastError?: string | undefined;
914
1231
  assignedOperatorIds?: string[] | undefined;
915
1232
  capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined;
916
1233
  locales?: Record<string, Record<string, string>> | undefined;
917
- source?: {
918
- kind: "marketplace";
919
- version: string;
920
- channel: "stable" | "nightly";
921
- artifactUrl: string;
922
- sha256: string;
923
- installedAt: number;
924
- } | undefined;
925
1234
  }, {
926
1235
  type: "strategy" | "utility";
927
1236
  name: string;
@@ -930,6 +1239,23 @@ export declare const PluginStatusSchema: z.ZodObject<{
930
1239
  isBuiltIn: boolean;
931
1240
  errorCount: number;
932
1241
  description?: string | undefined;
1242
+ source?: {
1243
+ kind: "marketplace";
1244
+ version: string;
1245
+ channel: "stable" | "nightly";
1246
+ artifactUrl: string;
1247
+ sha256: string;
1248
+ installedAt: number;
1249
+ } | undefined;
1250
+ panels?: {
1251
+ id: string;
1252
+ title: string;
1253
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1254
+ params?: Record<string, string> | undefined;
1255
+ pageId?: string | undefined;
1256
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1257
+ width?: "full" | "half" | undefined;
1258
+ }[] | undefined;
933
1259
  ui?: {
934
1260
  dir?: string | undefined;
935
1261
  pages?: {
@@ -942,9 +1268,9 @@ export declare const PluginStatusSchema: z.ZodObject<{
942
1268
  }[] | undefined;
943
1269
  } | undefined;
944
1270
  instanceScope?: "operator" | "global" | undefined;
945
- permissions?: "network"[] | undefined;
1271
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
946
1272
  settings?: Record<string, {
947
- type: "string" | "number" | "boolean" | "string[]" | "info";
1273
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
948
1274
  label: string;
949
1275
  options?: {
950
1276
  value: string;
@@ -954,6 +1280,15 @@ export declare const PluginStatusSchema: z.ZodObject<{
954
1280
  max?: number | undefined;
955
1281
  description?: string | undefined;
956
1282
  default?: unknown;
1283
+ itemFields?: {
1284
+ label: string;
1285
+ key: string;
1286
+ type?: "string" | "number" | "boolean" | undefined;
1287
+ description?: string | undefined;
1288
+ placeholder?: string | undefined;
1289
+ required?: boolean | undefined;
1290
+ }[] | undefined;
1291
+ hidden?: boolean | undefined;
957
1292
  scope?: "operator" | "global" | undefined;
958
1293
  }> | undefined;
959
1294
  quickActions?: {
@@ -964,28 +1299,12 @@ export declare const PluginStatusSchema: z.ZodObject<{
964
1299
  quickSettings?: {
965
1300
  settingKey: string;
966
1301
  }[] | undefined;
967
- panels?: {
968
- id: string;
969
- title: string;
970
- component: "table" | "key-value" | "chart" | "log" | "iframe";
971
- pageId?: string | undefined;
972
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
973
- width?: "full" | "half" | undefined;
974
- }[] | undefined;
975
1302
  loaded?: boolean | undefined;
976
1303
  autoDisabled?: boolean | undefined;
977
1304
  lastError?: string | undefined;
978
1305
  assignedOperatorIds?: string[] | undefined;
979
1306
  capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined;
980
1307
  locales?: Record<string, Record<string, string>> | undefined;
981
- source?: {
982
- kind: "marketplace";
983
- version: string;
984
- channel: "stable" | "nightly";
985
- artifactUrl: string;
986
- sha256: string;
987
- installedAt: number;
988
- } | undefined;
989
1308
  }>;
990
1309
  /**
991
1310
  * Runtime-facing plugin status snapshot exposed to the frontend.
@@ -1069,7 +1388,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1069
1388
  /** 仅对 strategy 插件有意义:当前被哪些 operator 选中 */
1070
1389
  assignedOperatorIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1071
1390
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1072
- type: z.ZodEnum<["boolean", "number", "string", "string[]", "info"]>;
1391
+ type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
1073
1392
  default: z.ZodUnknown;
1074
1393
  label: z.ZodString;
1075
1394
  description: z.ZodOptional<z.ZodString>;
@@ -1085,10 +1404,35 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1085
1404
  value: string;
1086
1405
  label: string;
1087
1406
  }>, "many">>;
1407
+ /** Field schema used by generated editors for `object[]` settings. */
1408
+ itemFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
1409
+ key: z.ZodString;
1410
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["string", "number", "boolean"]>>>;
1411
+ label: z.ZodString;
1412
+ description: z.ZodOptional<z.ZodString>;
1413
+ placeholder: z.ZodOptional<z.ZodString>;
1414
+ required: z.ZodOptional<z.ZodBoolean>;
1415
+ }, "strip", z.ZodTypeAny, {
1416
+ type: "string" | "number" | "boolean";
1417
+ label: string;
1418
+ key: string;
1419
+ description?: string | undefined;
1420
+ placeholder?: string | undefined;
1421
+ required?: boolean | undefined;
1422
+ }, {
1423
+ label: string;
1424
+ key: string;
1425
+ type?: "string" | "number" | "boolean" | undefined;
1426
+ description?: string | undefined;
1427
+ placeholder?: string | undefined;
1428
+ required?: boolean | undefined;
1429
+ }>, "many">>;
1430
+ /** Internal settings are persisted/injected but hidden from generated UIs. */
1431
+ hidden: z.ZodOptional<z.ZodBoolean>;
1088
1432
  /** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
1089
1433
  scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
1090
1434
  }, "strip", z.ZodTypeAny, {
1091
- type: "string" | "number" | "boolean" | "string[]" | "info";
1435
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
1092
1436
  label: string;
1093
1437
  scope: "operator" | "global";
1094
1438
  options?: {
@@ -1099,8 +1443,17 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1099
1443
  max?: number | undefined;
1100
1444
  description?: string | undefined;
1101
1445
  default?: unknown;
1446
+ itemFields?: {
1447
+ type: "string" | "number" | "boolean";
1448
+ label: string;
1449
+ key: string;
1450
+ description?: string | undefined;
1451
+ placeholder?: string | undefined;
1452
+ required?: boolean | undefined;
1453
+ }[] | undefined;
1454
+ hidden?: boolean | undefined;
1102
1455
  }, {
1103
- type: "string" | "number" | "boolean" | "string[]" | "info";
1456
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
1104
1457
  label: string;
1105
1458
  options?: {
1106
1459
  value: string;
@@ -1110,6 +1463,15 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1110
1463
  max?: number | undefined;
1111
1464
  description?: string | undefined;
1112
1465
  default?: unknown;
1466
+ itemFields?: {
1467
+ label: string;
1468
+ key: string;
1469
+ type?: "string" | "number" | "boolean" | undefined;
1470
+ description?: string | undefined;
1471
+ placeholder?: string | undefined;
1472
+ required?: boolean | undefined;
1473
+ }[] | undefined;
1474
+ hidden?: boolean | undefined;
1113
1475
  scope?: "operator" | "global" | undefined;
1114
1476
  }>>>;
1115
1477
  quickActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -1138,6 +1500,8 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1138
1500
  component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
1139
1501
  /** Required when `component` is `'iframe'`. References a page id from `ui.pages`. */
1140
1502
  pageId: z.ZodOptional<z.ZodString>;
1503
+ /** Optional string params forwarded to iframe panels as URL/init params. */
1504
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1141
1505
  /** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
1142
1506
  slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
1143
1507
  /** Preferred width hint. Defaults to `'half'`. */
@@ -1146,6 +1510,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1146
1510
  id: string;
1147
1511
  title: string;
1148
1512
  component: "table" | "key-value" | "chart" | "log" | "iframe";
1513
+ params?: Record<string, string> | undefined;
1149
1514
  pageId?: string | undefined;
1150
1515
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1151
1516
  width?: "full" | "half" | undefined;
@@ -1153,11 +1518,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1153
1518
  id: string;
1154
1519
  title: string;
1155
1520
  component: "table" | "key-value" | "chart" | "log" | "iframe";
1521
+ params?: Record<string, string> | undefined;
1156
1522
  pageId?: string | undefined;
1157
1523
  slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1158
1524
  width?: "full" | "half" | undefined;
1159
1525
  }>, "many">>;
1160
- permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>;
1526
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>;
1161
1527
  capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["auto_call_candidate", "auto_call_execution"]>, "many">>;
1162
1528
  ui: z.ZodOptional<z.ZodObject<{
1163
1529
  /** Static file directory relative to the plugin root (default: 'ui'). */
@@ -1246,6 +1612,23 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1246
1612
  autoDisabled: boolean;
1247
1613
  errorCount: number;
1248
1614
  description?: string | undefined;
1615
+ source?: {
1616
+ kind: "marketplace";
1617
+ version: string;
1618
+ channel: "stable" | "nightly";
1619
+ artifactUrl: string;
1620
+ sha256: string;
1621
+ installedAt: number;
1622
+ } | undefined;
1623
+ panels?: {
1624
+ id: string;
1625
+ title: string;
1626
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1627
+ params?: Record<string, string> | undefined;
1628
+ pageId?: string | undefined;
1629
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1630
+ width?: "full" | "half" | undefined;
1631
+ }[] | undefined;
1249
1632
  ui?: {
1250
1633
  dir: string;
1251
1634
  pages: {
@@ -1257,9 +1640,9 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1257
1640
  icon?: string | undefined;
1258
1641
  }[];
1259
1642
  } | undefined;
1260
- permissions?: "network"[] | undefined;
1643
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1261
1644
  settings?: Record<string, {
1262
- type: "string" | "number" | "boolean" | "string[]" | "info";
1645
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
1263
1646
  label: string;
1264
1647
  scope: "operator" | "global";
1265
1648
  options?: {
@@ -1270,6 +1653,15 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1270
1653
  max?: number | undefined;
1271
1654
  description?: string | undefined;
1272
1655
  default?: unknown;
1656
+ itemFields?: {
1657
+ type: "string" | "number" | "boolean";
1658
+ label: string;
1659
+ key: string;
1660
+ description?: string | undefined;
1661
+ placeholder?: string | undefined;
1662
+ required?: boolean | undefined;
1663
+ }[] | undefined;
1664
+ hidden?: boolean | undefined;
1273
1665
  }> | undefined;
1274
1666
  quickActions?: {
1275
1667
  id: string;
@@ -1279,26 +1671,10 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1279
1671
  quickSettings?: {
1280
1672
  settingKey: string;
1281
1673
  }[] | undefined;
1282
- panels?: {
1283
- id: string;
1284
- title: string;
1285
- component: "table" | "key-value" | "chart" | "log" | "iframe";
1286
- pageId?: string | undefined;
1287
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1288
- width?: "full" | "half" | undefined;
1289
- }[] | undefined;
1290
1674
  lastError?: string | undefined;
1291
1675
  assignedOperatorIds?: string[] | undefined;
1292
1676
  capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined;
1293
1677
  locales?: Record<string, Record<string, string>> | undefined;
1294
- source?: {
1295
- kind: "marketplace";
1296
- version: string;
1297
- channel: "stable" | "nightly";
1298
- artifactUrl: string;
1299
- sha256: string;
1300
- installedAt: number;
1301
- } | undefined;
1302
1678
  }, {
1303
1679
  type: "strategy" | "utility";
1304
1680
  name: string;
@@ -1307,6 +1683,23 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1307
1683
  isBuiltIn: boolean;
1308
1684
  errorCount: number;
1309
1685
  description?: string | undefined;
1686
+ source?: {
1687
+ kind: "marketplace";
1688
+ version: string;
1689
+ channel: "stable" | "nightly";
1690
+ artifactUrl: string;
1691
+ sha256: string;
1692
+ installedAt: number;
1693
+ } | undefined;
1694
+ panels?: {
1695
+ id: string;
1696
+ title: string;
1697
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1698
+ params?: Record<string, string> | undefined;
1699
+ pageId?: string | undefined;
1700
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1701
+ width?: "full" | "half" | undefined;
1702
+ }[] | undefined;
1310
1703
  ui?: {
1311
1704
  dir?: string | undefined;
1312
1705
  pages?: {
@@ -1319,9 +1712,9 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1319
1712
  }[] | undefined;
1320
1713
  } | undefined;
1321
1714
  instanceScope?: "operator" | "global" | undefined;
1322
- permissions?: "network"[] | undefined;
1715
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1323
1716
  settings?: Record<string, {
1324
- type: "string" | "number" | "boolean" | "string[]" | "info";
1717
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
1325
1718
  label: string;
1326
1719
  options?: {
1327
1720
  value: string;
@@ -1331,6 +1724,15 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1331
1724
  max?: number | undefined;
1332
1725
  description?: string | undefined;
1333
1726
  default?: unknown;
1727
+ itemFields?: {
1728
+ label: string;
1729
+ key: string;
1730
+ type?: "string" | "number" | "boolean" | undefined;
1731
+ description?: string | undefined;
1732
+ placeholder?: string | undefined;
1733
+ required?: boolean | undefined;
1734
+ }[] | undefined;
1735
+ hidden?: boolean | undefined;
1334
1736
  scope?: "operator" | "global" | undefined;
1335
1737
  }> | undefined;
1336
1738
  quickActions?: {
@@ -1341,28 +1743,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1341
1743
  quickSettings?: {
1342
1744
  settingKey: string;
1343
1745
  }[] | undefined;
1344
- panels?: {
1345
- id: string;
1346
- title: string;
1347
- component: "table" | "key-value" | "chart" | "log" | "iframe";
1348
- pageId?: string | undefined;
1349
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1350
- width?: "full" | "half" | undefined;
1351
- }[] | undefined;
1352
1746
  loaded?: boolean | undefined;
1353
1747
  autoDisabled?: boolean | undefined;
1354
1748
  lastError?: string | undefined;
1355
1749
  assignedOperatorIds?: string[] | undefined;
1356
1750
  capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined;
1357
1751
  locales?: Record<string, Record<string, string>> | undefined;
1358
- source?: {
1359
- kind: "marketplace";
1360
- version: string;
1361
- channel: "stable" | "nightly";
1362
- artifactUrl: string;
1363
- sha256: string;
1364
- installedAt: number;
1365
- } | undefined;
1366
1752
  }>, "many">;
1367
1753
  panelMeta: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1368
1754
  pluginName: z.ZodString;
@@ -1400,6 +1786,94 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1400
1786
  pluginName: string;
1401
1787
  panelId: string;
1402
1788
  }>, "many">>>;
1789
+ panelContributions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1790
+ pluginName: z.ZodString;
1791
+ groupId: z.ZodString;
1792
+ source: z.ZodEnum<["manifest", "runtime"]>;
1793
+ instanceTarget: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1794
+ kind: z.ZodLiteral<"global">;
1795
+ }, "strip", z.ZodTypeAny, {
1796
+ kind: "global";
1797
+ }, {
1798
+ kind: "global";
1799
+ }>, z.ZodObject<{
1800
+ kind: z.ZodLiteral<"operator">;
1801
+ operatorId: z.ZodString;
1802
+ }, "strip", z.ZodTypeAny, {
1803
+ operatorId: string;
1804
+ kind: "operator";
1805
+ }, {
1806
+ operatorId: string;
1807
+ kind: "operator";
1808
+ }>]>>;
1809
+ panels: z.ZodArray<z.ZodObject<{
1810
+ id: z.ZodString;
1811
+ title: z.ZodString;
1812
+ component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
1813
+ /** Required when `component` is `'iframe'`. References a page id from `ui.pages`. */
1814
+ pageId: z.ZodOptional<z.ZodString>;
1815
+ /** Optional string params forwarded to iframe panels as URL/init params. */
1816
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1817
+ /** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
1818
+ slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
1819
+ /** Preferred width hint. Defaults to `'half'`. */
1820
+ width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
1821
+ }, "strip", z.ZodTypeAny, {
1822
+ id: string;
1823
+ title: string;
1824
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1825
+ params?: Record<string, string> | undefined;
1826
+ pageId?: string | undefined;
1827
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1828
+ width?: "full" | "half" | undefined;
1829
+ }, {
1830
+ id: string;
1831
+ title: string;
1832
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1833
+ params?: Record<string, string> | undefined;
1834
+ pageId?: string | undefined;
1835
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1836
+ width?: "full" | "half" | undefined;
1837
+ }>, "many">;
1838
+ }, "strip", z.ZodTypeAny, {
1839
+ pluginName: string;
1840
+ groupId: string;
1841
+ source: "manifest" | "runtime";
1842
+ panels: {
1843
+ id: string;
1844
+ title: string;
1845
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1846
+ params?: Record<string, string> | undefined;
1847
+ pageId?: string | undefined;
1848
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1849
+ width?: "full" | "half" | undefined;
1850
+ }[];
1851
+ instanceTarget?: {
1852
+ kind: "global";
1853
+ } | {
1854
+ operatorId: string;
1855
+ kind: "operator";
1856
+ } | undefined;
1857
+ }, {
1858
+ pluginName: string;
1859
+ groupId: string;
1860
+ source: "manifest" | "runtime";
1861
+ panels: {
1862
+ id: string;
1863
+ title: string;
1864
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1865
+ params?: Record<string, string> | undefined;
1866
+ pageId?: string | undefined;
1867
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1868
+ width?: "full" | "half" | undefined;
1869
+ }[];
1870
+ instanceTarget?: {
1871
+ kind: "global";
1872
+ } | {
1873
+ operatorId: string;
1874
+ kind: "operator";
1875
+ } | undefined;
1876
+ }>, "many">>>;
1403
1877
  lastError: z.ZodOptional<z.ZodString>;
1404
1878
  }, "strip", z.ZodTypeAny, {
1405
1879
  state: "error" | "ready" | "reloading";
@@ -1415,6 +1889,23 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1415
1889
  autoDisabled: boolean;
1416
1890
  errorCount: number;
1417
1891
  description?: string | undefined;
1892
+ source?: {
1893
+ kind: "marketplace";
1894
+ version: string;
1895
+ channel: "stable" | "nightly";
1896
+ artifactUrl: string;
1897
+ sha256: string;
1898
+ installedAt: number;
1899
+ } | undefined;
1900
+ panels?: {
1901
+ id: string;
1902
+ title: string;
1903
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1904
+ params?: Record<string, string> | undefined;
1905
+ pageId?: string | undefined;
1906
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1907
+ width?: "full" | "half" | undefined;
1908
+ }[] | undefined;
1418
1909
  ui?: {
1419
1910
  dir: string;
1420
1911
  pages: {
@@ -1426,9 +1917,9 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1426
1917
  icon?: string | undefined;
1427
1918
  }[];
1428
1919
  } | undefined;
1429
- permissions?: "network"[] | undefined;
1920
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1430
1921
  settings?: Record<string, {
1431
- type: "string" | "number" | "boolean" | "string[]" | "info";
1922
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
1432
1923
  label: string;
1433
1924
  scope: "operator" | "global";
1434
1925
  options?: {
@@ -1439,6 +1930,15 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1439
1930
  max?: number | undefined;
1440
1931
  description?: string | undefined;
1441
1932
  default?: unknown;
1933
+ itemFields?: {
1934
+ type: "string" | "number" | "boolean";
1935
+ label: string;
1936
+ key: string;
1937
+ description?: string | undefined;
1938
+ placeholder?: string | undefined;
1939
+ required?: boolean | undefined;
1940
+ }[] | undefined;
1941
+ hidden?: boolean | undefined;
1442
1942
  }> | undefined;
1443
1943
  quickActions?: {
1444
1944
  id: string;
@@ -1448,26 +1948,10 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1448
1948
  quickSettings?: {
1449
1949
  settingKey: string;
1450
1950
  }[] | undefined;
1451
- panels?: {
1452
- id: string;
1453
- title: string;
1454
- component: "table" | "key-value" | "chart" | "log" | "iframe";
1455
- pageId?: string | undefined;
1456
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1457
- width?: "full" | "half" | undefined;
1458
- }[] | undefined;
1459
1951
  lastError?: string | undefined;
1460
1952
  assignedOperatorIds?: string[] | undefined;
1461
1953
  capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined;
1462
1954
  locales?: Record<string, Record<string, string>> | undefined;
1463
- source?: {
1464
- kind: "marketplace";
1465
- version: string;
1466
- channel: "stable" | "nightly";
1467
- artifactUrl: string;
1468
- sha256: string;
1469
- installedAt: number;
1470
- } | undefined;
1471
1955
  }[];
1472
1956
  panelMeta: {
1473
1957
  operatorId: string;
@@ -1479,6 +1963,26 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1479
1963
  pluginName: string;
1480
1964
  panelId: string;
1481
1965
  }[];
1966
+ panelContributions: {
1967
+ pluginName: string;
1968
+ groupId: string;
1969
+ source: "manifest" | "runtime";
1970
+ panels: {
1971
+ id: string;
1972
+ title: string;
1973
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
1974
+ params?: Record<string, string> | undefined;
1975
+ pageId?: string | undefined;
1976
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1977
+ width?: "full" | "half" | undefined;
1978
+ }[];
1979
+ instanceTarget?: {
1980
+ kind: "global";
1981
+ } | {
1982
+ operatorId: string;
1983
+ kind: "operator";
1984
+ } | undefined;
1985
+ }[];
1482
1986
  lastError?: string | undefined;
1483
1987
  }, {
1484
1988
  state: "error" | "ready" | "reloading";
@@ -1491,6 +1995,23 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1491
1995
  isBuiltIn: boolean;
1492
1996
  errorCount: number;
1493
1997
  description?: string | undefined;
1998
+ source?: {
1999
+ kind: "marketplace";
2000
+ version: string;
2001
+ channel: "stable" | "nightly";
2002
+ artifactUrl: string;
2003
+ sha256: string;
2004
+ installedAt: number;
2005
+ } | undefined;
2006
+ panels?: {
2007
+ id: string;
2008
+ title: string;
2009
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
2010
+ params?: Record<string, string> | undefined;
2011
+ pageId?: string | undefined;
2012
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
2013
+ width?: "full" | "half" | undefined;
2014
+ }[] | undefined;
1494
2015
  ui?: {
1495
2016
  dir?: string | undefined;
1496
2017
  pages?: {
@@ -1503,9 +2024,9 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1503
2024
  }[] | undefined;
1504
2025
  } | undefined;
1505
2026
  instanceScope?: "operator" | "global" | undefined;
1506
- permissions?: "network"[] | undefined;
2027
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1507
2028
  settings?: Record<string, {
1508
- type: "string" | "number" | "boolean" | "string[]" | "info";
2029
+ type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
1509
2030
  label: string;
1510
2031
  options?: {
1511
2032
  value: string;
@@ -1515,6 +2036,15 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1515
2036
  max?: number | undefined;
1516
2037
  description?: string | undefined;
1517
2038
  default?: unknown;
2039
+ itemFields?: {
2040
+ label: string;
2041
+ key: string;
2042
+ type?: "string" | "number" | "boolean" | undefined;
2043
+ description?: string | undefined;
2044
+ placeholder?: string | undefined;
2045
+ required?: boolean | undefined;
2046
+ }[] | undefined;
2047
+ hidden?: boolean | undefined;
1518
2048
  scope?: "operator" | "global" | undefined;
1519
2049
  }> | undefined;
1520
2050
  quickActions?: {
@@ -1525,28 +2055,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1525
2055
  quickSettings?: {
1526
2056
  settingKey: string;
1527
2057
  }[] | undefined;
1528
- panels?: {
1529
- id: string;
1530
- title: string;
1531
- component: "table" | "key-value" | "chart" | "log" | "iframe";
1532
- pageId?: string | undefined;
1533
- slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
1534
- width?: "full" | "half" | undefined;
1535
- }[] | undefined;
1536
2058
  loaded?: boolean | undefined;
1537
2059
  autoDisabled?: boolean | undefined;
1538
2060
  lastError?: string | undefined;
1539
2061
  assignedOperatorIds?: string[] | undefined;
1540
2062
  capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined;
1541
2063
  locales?: Record<string, Record<string, string>> | undefined;
1542
- source?: {
1543
- kind: "marketplace";
1544
- version: string;
1545
- channel: "stable" | "nightly";
1546
- artifactUrl: string;
1547
- sha256: string;
1548
- installedAt: number;
1549
- } | undefined;
1550
2064
  }[];
1551
2065
  lastError?: string | undefined;
1552
2066
  panelMeta?: {
@@ -1559,6 +2073,26 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1559
2073
  pluginName: string;
1560
2074
  panelId: string;
1561
2075
  }[] | undefined;
2076
+ panelContributions?: {
2077
+ pluginName: string;
2078
+ groupId: string;
2079
+ source: "manifest" | "runtime";
2080
+ panels: {
2081
+ id: string;
2082
+ title: string;
2083
+ component: "table" | "key-value" | "chart" | "log" | "iframe";
2084
+ params?: Record<string, string> | undefined;
2085
+ pageId?: string | undefined;
2086
+ slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
2087
+ width?: "full" | "half" | undefined;
2088
+ }[];
2089
+ instanceTarget?: {
2090
+ kind: "global";
2091
+ } | {
2092
+ operatorId: string;
2093
+ kind: "operator";
2094
+ } | undefined;
2095
+ }[] | undefined;
1562
2096
  }>;
1563
2097
  export type PluginSystemSnapshot = z.infer<typeof PluginSystemSnapshotSchema>;
1564
2098
  export declare const PluginDistributionSchema: z.ZodEnum<["electron", "docker", "linux-service", "generic-server", "web-dev"]>;
@@ -1630,7 +2164,7 @@ export declare const PluginMarketCatalogEntrySchema: z.ZodObject<{
1630
2164
  homepage: z.ZodOptional<z.ZodString>;
1631
2165
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1632
2166
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1633
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>>;
2167
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>>;
1634
2168
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1635
2169
  src: z.ZodString;
1636
2170
  alt: z.ZodOptional<z.ZodString>;
@@ -1649,7 +2183,7 @@ export declare const PluginMarketCatalogEntrySchema: z.ZodObject<{
1649
2183
  name: string;
1650
2184
  description: string;
1651
2185
  title: string;
1652
- permissions: "network"[];
2186
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
1653
2187
  artifactUrl: string;
1654
2188
  sha256: string;
1655
2189
  latestVersion: string;
@@ -1677,7 +2211,7 @@ export declare const PluginMarketCatalogEntrySchema: z.ZodObject<{
1677
2211
  minHostVersion: string;
1678
2212
  size: number;
1679
2213
  publishedAt: string;
1680
- permissions?: "network"[] | undefined;
2214
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1681
2215
  locales?: Record<string, Record<string, string>> | undefined;
1682
2216
  author?: string | undefined;
1683
2217
  license?: string | undefined;
@@ -1708,7 +2242,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
1708
2242
  homepage: z.ZodOptional<z.ZodString>;
1709
2243
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1710
2244
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1711
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>>;
2245
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>>;
1712
2246
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1713
2247
  src: z.ZodString;
1714
2248
  alt: z.ZodOptional<z.ZodString>;
@@ -1727,7 +2261,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
1727
2261
  name: string;
1728
2262
  description: string;
1729
2263
  title: string;
1730
- permissions: "network"[];
2264
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
1731
2265
  artifactUrl: string;
1732
2266
  sha256: string;
1733
2267
  latestVersion: string;
@@ -1755,7 +2289,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
1755
2289
  minHostVersion: string;
1756
2290
  size: number;
1757
2291
  publishedAt: string;
1758
- permissions?: "network"[] | undefined;
2292
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1759
2293
  locales?: Record<string, Record<string, string>> | undefined;
1760
2294
  author?: string | undefined;
1761
2295
  license?: string | undefined;
@@ -1774,7 +2308,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
1774
2308
  name: string;
1775
2309
  description: string;
1776
2310
  title: string;
1777
- permissions: "network"[];
2311
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
1778
2312
  artifactUrl: string;
1779
2313
  sha256: string;
1780
2314
  latestVersion: string;
@@ -1807,7 +2341,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
1807
2341
  minHostVersion: string;
1808
2342
  size: number;
1809
2343
  publishedAt: string;
1810
- permissions?: "network"[] | undefined;
2344
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1811
2345
  locales?: Record<string, Record<string, string>> | undefined;
1812
2346
  author?: string | undefined;
1813
2347
  license?: string | undefined;
@@ -1842,7 +2376,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
1842
2376
  homepage: z.ZodOptional<z.ZodString>;
1843
2377
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1844
2378
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1845
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>>;
2379
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>>;
1846
2380
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1847
2381
  src: z.ZodString;
1848
2382
  alt: z.ZodOptional<z.ZodString>;
@@ -1861,7 +2395,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
1861
2395
  name: string;
1862
2396
  description: string;
1863
2397
  title: string;
1864
- permissions: "network"[];
2398
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
1865
2399
  artifactUrl: string;
1866
2400
  sha256: string;
1867
2401
  latestVersion: string;
@@ -1889,7 +2423,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
1889
2423
  minHostVersion: string;
1890
2424
  size: number;
1891
2425
  publishedAt: string;
1892
- permissions?: "network"[] | undefined;
2426
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1893
2427
  locales?: Record<string, Record<string, string>> | undefined;
1894
2428
  author?: string | undefined;
1895
2429
  license?: string | undefined;
@@ -1908,7 +2442,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
1908
2442
  name: string;
1909
2443
  description: string;
1910
2444
  title: string;
1911
- permissions: "network"[];
2445
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
1912
2446
  artifactUrl: string;
1913
2447
  sha256: string;
1914
2448
  latestVersion: string;
@@ -1941,7 +2475,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
1941
2475
  minHostVersion: string;
1942
2476
  size: number;
1943
2477
  publishedAt: string;
1944
- permissions?: "network"[] | undefined;
2478
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
1945
2479
  locales?: Record<string, Record<string, string>> | undefined;
1946
2480
  author?: string | undefined;
1947
2481
  license?: string | undefined;
@@ -1965,7 +2499,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
1965
2499
  name: string;
1966
2500
  description: string;
1967
2501
  title: string;
1968
- permissions: "network"[];
2502
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
1969
2503
  artifactUrl: string;
1970
2504
  sha256: string;
1971
2505
  latestVersion: string;
@@ -2001,7 +2535,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
2001
2535
  minHostVersion: string;
2002
2536
  size: number;
2003
2537
  publishedAt: string;
2004
- permissions?: "network"[] | undefined;
2538
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
2005
2539
  locales?: Record<string, Record<string, string>> | undefined;
2006
2540
  author?: string | undefined;
2007
2541
  license?: string | undefined;
@@ -2034,7 +2568,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
2034
2568
  homepage: z.ZodOptional<z.ZodString>;
2035
2569
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2036
2570
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2037
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network"]>, "many">>>;
2571
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power"]>, "many">>>;
2038
2572
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
2039
2573
  src: z.ZodString;
2040
2574
  alt: z.ZodOptional<z.ZodString>;
@@ -2053,7 +2587,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
2053
2587
  name: string;
2054
2588
  description: string;
2055
2589
  title: string;
2056
- permissions: "network"[];
2590
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
2057
2591
  artifactUrl: string;
2058
2592
  sha256: string;
2059
2593
  latestVersion: string;
@@ -2081,7 +2615,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
2081
2615
  minHostVersion: string;
2082
2616
  size: number;
2083
2617
  publishedAt: string;
2084
- permissions?: "network"[] | undefined;
2618
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
2085
2619
  locales?: Record<string, Record<string, string>> | undefined;
2086
2620
  author?: string | undefined;
2087
2621
  license?: string | undefined;
@@ -2103,7 +2637,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
2103
2637
  name: string;
2104
2638
  description: string;
2105
2639
  title: string;
2106
- permissions: "network"[];
2640
+ permissions: ("network" | "radio:read" | "radio:control" | "radio:power")[];
2107
2641
  artifactUrl: string;
2108
2642
  sha256: string;
2109
2643
  latestVersion: string;
@@ -2135,7 +2669,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
2135
2669
  minHostVersion: string;
2136
2670
  size: number;
2137
2671
  publishedAt: string;
2138
- permissions?: "network"[] | undefined;
2672
+ permissions?: ("network" | "radio:read" | "radio:control" | "radio:power")[] | undefined;
2139
2673
  locales?: Record<string, Record<string, string>> | undefined;
2140
2674
  author?: string | undefined;
2141
2675
  license?: string | undefined;
@@ -2416,12 +2950,12 @@ export declare const PluginOperatorSettingsPayloadSchema: z.ZodObject<{
2416
2950
  settings: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2417
2951
  }, "strip", z.ZodTypeAny, {
2418
2952
  operatorId: string;
2419
- settings: Record<string, unknown>;
2420
2953
  pluginName: string;
2954
+ settings: Record<string, unknown>;
2421
2955
  }, {
2422
2956
  operatorId: string;
2423
- settings: Record<string, unknown>;
2424
2957
  pluginName: string;
2958
+ settings: Record<string, unknown>;
2425
2959
  }>;
2426
2960
  export type PluginOperatorSettingsPayload = z.infer<typeof PluginOperatorSettingsPayloadSchema>;
2427
2961
  //# sourceMappingURL=plugin.schema.d.ts.map