@medeo-plugin/sdk 0.0.0-stage → 0.7.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.
@@ -0,0 +1,172 @@
1
+ // Generated by platform-core from the capability registry; do not edit.
2
+ export const METHODS = {
3
+ "capabilities.list": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
4
+ "capabilities.labels": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
5
+ "providers.list": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
6
+ "permissions.request": { permission: null, provider: null, ui: true, confirm: true, adapter: "host" },
7
+ "i18n.state": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
8
+ "i18n.setLocale": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
9
+ "i18n.t": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
10
+ "i18n.catalog": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
11
+ "operations.state": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
12
+ "operations.list": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
13
+ "operations.cancel": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
14
+ "operations.release": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
15
+ "config.get": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
16
+ "config.set": { permission: null, provider: null, ui: false, confirm: false, adapter: "host" },
17
+ "storage.get": { permission: "storage", provider: "medeo.storage", ui: false, confirm: false, adapter: "host" },
18
+ "storage.set": { permission: "storage", provider: "medeo.storage", ui: false, confirm: false, adapter: "host" },
19
+ "storage.remove": { permission: "storage", provider: "medeo.storage", ui: false, confirm: false, adapter: "host" },
20
+ "creation.open": { permission: "creation_open", provider: "medeo.creation", ui: false, confirm: false, adapter: "host" },
21
+ "resources.choose_directories": { permission: "file_access", provider: "medeo.workspace", ui: true, confirm: false, adapter: "host" },
22
+ "resources.request_directory": { permission: "file_access", provider: "medeo.workspace", ui: true, confirm: true, adapter: "host" },
23
+ "resources.list": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
24
+ "resources.revoke": { permission: "file_access", provider: "medeo.workspace", ui: true, confirm: false, adapter: "host" },
25
+ "files.roots": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
26
+ "files.mkdir": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
27
+ "files.history": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
28
+ "files.history_page": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
29
+ "files.backup_preview": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
30
+ "files.archive_backup": { permission: "file_access", provider: "medeo.workspace", ui: true, confirm: true, adapter: "host" },
31
+ "files.forget_preview": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
32
+ "files.forget_record": { permission: "file_access", provider: "medeo.workspace", ui: true, confirm: true, adapter: "host" },
33
+ "files.restore": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
34
+ "files.list": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
35
+ "files.stat": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
36
+ "files.read_text": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
37
+ "files.write_text": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
38
+ "files.move": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
39
+ "files.trash": { permission: "file_access", provider: "medeo.workspace", ui: true, confirm: true, adapter: "host" },
40
+ "files.trash_preview": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
41
+ "files.discard_preview": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
42
+ "files.watch": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
43
+ "files.events": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
44
+ "files.watches": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
45
+ "files.unwatch": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
46
+ "files.read_link": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
47
+ "files.measure": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
48
+ "files.list_tree": { permission: "file_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
49
+ "files.trash_direct": { permission: "file_full_access", provider: "medeo.workspace", ui: false, confirm: false, adapter: "host" },
50
+ "network.request": { permission: "network", provider: "medeo.network", ui: false, confirm: false, adapter: "host" },
51
+ "network.read": { permission: "network", provider: "medeo.network", ui: false, confirm: false, adapter: "host" },
52
+ "network.origins": { permission: "network", provider: "medeo.network", ui: false, confirm: false, adapter: "host" },
53
+ "network.request_origin": { permission: "network", provider: "medeo.network", ui: true, confirm: true, adapter: "host" },
54
+ "network.revoke_origin": { permission: "network", provider: "medeo.network", ui: true, confirm: false, adapter: "host" },
55
+ "agent.models": { permission: "agent_api", provider: "medeo.agent", ui: false, confirm: false, adapter: "host" },
56
+ "agent.start": { permission: "agent_api", provider: "medeo.agent", ui: false, confirm: false, adapter: "host" },
57
+ "clipboard.read": { permission: "clipboard_read", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
58
+ "clipboard.write": { permission: "clipboard_write", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
59
+ "capture.status": { permission: "screen_capture", provider: "medeo.capture", ui: false, confirm: false, adapter: "host" },
60
+ "capture.sources": { permission: "screen_capture", provider: "medeo.capture", ui: true, confirm: false, adapter: "host" },
61
+ "capture.start": { permission: "screen_capture", provider: "medeo.capture", ui: true, confirm: true, adapter: "host" },
62
+ "capture.state": { permission: "screen_capture", provider: "medeo.capture", ui: false, confirm: false, adapter: "host" },
63
+ "capture.stop": { permission: "screen_capture", provider: "medeo.capture", ui: false, confirm: false, adapter: "host" },
64
+ "capture.cancel": { permission: "screen_capture", provider: "medeo.capture", ui: false, confirm: false, adapter: "host" },
65
+ "capture.open": { permission: "screen_capture", provider: "medeo.capture", ui: true, confirm: false, adapter: "electron" },
66
+ "capture.recover": { permission: "screen_capture", provider: "medeo.capture", ui: true, confirm: false, adapter: "host" },
67
+ "camera.status": { permission: "camera", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
68
+ "camera.start": { permission: "camera", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
69
+ "camera.stop": { permission: "camera", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
70
+ "camera.state": { permission: "camera", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
71
+ "camera.read": { permission: "camera", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
72
+ "microphone.status": { permission: "microphone", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
73
+ "microphone.start": { permission: "microphone", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
74
+ "microphone.stop": { permission: "microphone", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
75
+ "microphone.state": { permission: "microphone", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
76
+ "microphone.read": { permission: "microphone", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
77
+ "system_audio.status": { permission: "system_audio", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
78
+ "system_audio.start": { permission: "system_audio", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
79
+ "system_audio.stop": { permission: "system_audio", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
80
+ "system_audio.state": { permission: "system_audio", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
81
+ "system_audio.read": { permission: "system_audio", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
82
+ "applications.list": { permission: "applications", provider: "medeo.applications", ui: false, confirm: false, adapter: "host" },
83
+ "applications.launch": { permission: "applications", provider: "medeo.applications", ui: false, confirm: false, adapter: "host" },
84
+ "applications.state": { permission: "applications", provider: "medeo.applications", ui: false, confirm: false, adapter: "host" },
85
+ "shortcuts.register": { permission: "global_shortcuts", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
86
+ "shortcuts.unregister": { permission: "global_shortcuts", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
87
+ "shortcuts.events": { permission: "global_shortcuts", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
88
+ "shortcuts.list": { permission: "global_shortcuts", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
89
+ "notifications.show": { permission: "notifications", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
90
+ "notifications.close": { permission: "notifications", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
91
+ "tray.set": { permission: "tray", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
92
+ "tray.remove": { permission: "tray", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
93
+ "tray.events": { permission: "tray", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
94
+ "windows.open": { permission: "app_windows", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
95
+ "windows.close": { permission: "app_windows", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
96
+ "windows.focus": { permission: "app_windows", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
97
+ "windows.hide": { permission: "app_windows", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
98
+ "windows.list": { permission: "app_windows", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
99
+ "accessibility.status": { permission: "accessibility", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
100
+ "accessibility.request": { permission: "accessibility", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
101
+ "accessibility.windows": { permission: "accessibility", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
102
+ "accessibility.focus": { permission: "accessibility", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
103
+ "accessibility.selected_text": { permission: "accessibility", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
104
+ "accessibility.insert_text": { permission: "accessibility", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
105
+ "input_method.status": { permission: "input_method", provider: "medeo.input-method", ui: false, confirm: false, adapter: "host" },
106
+ "input_method.configure": { permission: "input_method", provider: "medeo.input-method", ui: false, confirm: false, adapter: "host" },
107
+ "input_method.enable": { permission: "input_method", provider: "medeo.input-method", ui: true, confirm: false, adapter: "host" },
108
+ "input_method.disable": { permission: "input_method", provider: "medeo.input-method", ui: false, confirm: false, adapter: "host" },
109
+ "input_method.events": { permission: "input_method", provider: "medeo.input-method", ui: false, confirm: false, adapter: "host" },
110
+ "input_method.respond": { permission: "input_method", provider: "medeo.input-method", ui: false, confirm: false, adapter: "host" },
111
+ "input_method.system": { permission: "input_method", provider: "medeo.input-method", ui: false, confirm: false, adapter: "host" },
112
+ "input_method.setup": { permission: "input_method", provider: "medeo.input-method", ui: true, confirm: true, adapter: "host" },
113
+ "input_method.remove": { permission: "input_method", provider: "medeo.input-method", ui: true, confirm: true, adapter: "host" },
114
+ "input_method.settings": { permission: "input_method", provider: "medeo.input-method", ui: true, confirm: false, adapter: "host" },
115
+ "external.open": { permission: "external_open", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
116
+ "browser.open": { permission: "browser_view", provider: "medeo.desktop", ui: true, confirm: false, adapter: "electron" },
117
+ "browser.close": { permission: "browser_view", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
118
+ "browser.state": { permission: "browser_view", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
119
+ "system.info": { permission: "system_info", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
120
+ "system.running": { permission: "system_info", provider: "medeo.desktop", ui: false, confirm: false, adapter: "host" },
121
+ "secrets.get": { permission: "secrets", provider: "medeo.secrets", ui: false, confirm: false, adapter: "host" },
122
+ "secrets.set": { permission: "secrets", provider: "medeo.secrets", ui: false, confirm: false, adapter: "host" },
123
+ "secrets.remove": { permission: "secrets", provider: "medeo.secrets", ui: false, confirm: false, adapter: "host" },
124
+ "secrets.result": { permission: "secrets", provider: "medeo.secrets", ui: false, confirm: false, adapter: "host" },
125
+ "background.schedule": { permission: "background_tasks", provider: "medeo.background", ui: false, confirm: false, adapter: "host" },
126
+ "background.list": { permission: "background_tasks", provider: "medeo.background", ui: false, confirm: false, adapter: "host" },
127
+ "background.cancel": { permission: "background_tasks", provider: "medeo.background", ui: false, confirm: false, adapter: "host" },
128
+ "background.events": { permission: "background_tasks", provider: "medeo.background", ui: false, confirm: false, adapter: "host" },
129
+ "power.start": { permission: "power", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
130
+ "power.stop": { permission: "power", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
131
+ "power.state": { permission: "power", provider: "medeo.desktop", ui: false, confirm: false, adapter: "electron" },
132
+ "process.start": { permission: "process_spawn", provider: "medeo.process", ui: false, confirm: false, adapter: "host" },
133
+ "process.state": { permission: "process_spawn", provider: "medeo.process", ui: false, confirm: false, adapter: "host" },
134
+ "process.write": { permission: "process_spawn", provider: "medeo.process", ui: false, confirm: false, adapter: "host" },
135
+ "process.stop": { permission: "process_spawn", provider: "medeo.process", ui: false, confirm: false, adapter: "host" },
136
+ "system.trash": { permission: "node", provider: "medeo.node", ui: false, confirm: false, adapter: "electron" },
137
+ "approvals.request": { permission: "approvals", provider: "medeo.approvals", ui: true, confirm: true, adapter: "host" },
138
+ "approvals.rules": { permission: "approvals", provider: "medeo.approvals", ui: false, confirm: false, adapter: "host" },
139
+ "approvals.forget": { permission: "approvals", provider: "medeo.approvals", ui: false, confirm: false, adapter: "host" },
140
+ "server.start": { permission: "local_server", provider: "medeo.local-server", ui: false, confirm: false, adapter: "host" },
141
+ "server.state": { permission: "local_server", provider: "medeo.local-server", ui: false, confirm: false, adapter: "host" },
142
+ "server.stop": { permission: "local_server", provider: "medeo.local-server", ui: false, confirm: false, adapter: "host" },
143
+ "server.events": { permission: "local_server", provider: "medeo.local-server", ui: false, confirm: false, adapter: "host" },
144
+ "server.respond": { permission: "local_server", provider: "medeo.local-server", ui: false, confirm: false, adapter: "host" },
145
+ "printing.print": { permission: "printing", provider: "medeo.desktop", ui: true, confirm: false, adapter: "electron" },
146
+ "contacts.status": { permission: "contacts", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
147
+ "contacts.request": { permission: "contacts", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
148
+ "contacts.list": { permission: "contacts", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
149
+ "contacts.save": { permission: "contacts", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
150
+ "calendar.status": { permission: "calendar", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
151
+ "calendar.request": { permission: "calendar", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
152
+ "calendar.list": { permission: "calendar", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
153
+ "calendar.save": { permission: "calendar", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
154
+ "location.status": { permission: "location", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
155
+ "location.request": { permission: "location", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
156
+ "location.current": { permission: "location", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
157
+ "devices.choose": { permission: "device_access", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
158
+ "devices.open": { permission: "device_access", provider: "medeo.system-services", ui: true, confirm: false, adapter: "host" },
159
+ "devices.read": { permission: "device_access", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
160
+ "devices.write": { permission: "device_access", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
161
+ "devices.close": { permission: "device_access", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
162
+ "devices.list": { permission: "device_access", provider: "medeo.system-services", ui: false, confirm: false, adapter: "host" },
163
+ };
164
+ export const LIMITS = {
165
+ notifications: 16,
166
+ power: 8,
167
+ shortcuts: 16,
168
+ windows: 8,
169
+ browser_windows: 4,
170
+ media_streams: 4,
171
+ queued_events: 64,
172
+ };
package/package.json CHANGED
@@ -1,6 +1,40 @@
1
1
  {
2
2
  "name": "@medeo-plugin/sdk",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.7.0",
4
+ "description": "TypeScript SDK for Medeo desktop plugins: one import for the sandboxed worker, its windows and Node plugins.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/one2x-ai/medeo-desktop-plugin-sdk.git",
9
+ "directory": "packages/plugin-sdk"
10
+ },
11
+ "homepage": "https://github.com/one2x-ai/medeo-desktop-plugin-sdk#readme",
12
+ "keywords": [
13
+ "medeo",
14
+ "plugin",
15
+ "sdk"
16
+ ],
17
+ "type": "module",
18
+ "sideEffects": false,
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js",
23
+ "default": "./dist/index.js"
24
+ },
25
+ "./package.json": "./package.json"
26
+ },
27
+ "types": "./dist/index.d.ts",
28
+ "files": [
29
+ "dist",
30
+ "src",
31
+ "README.md"
32
+ ],
33
+ "scripts": {
34
+ "build": "tsc -p tsconfig.build.json",
35
+ "prepack": "npm run build"
36
+ },
37
+ "engines": {
38
+ "node": ">=22"
39
+ }
40
+ }
@@ -0,0 +1,158 @@
1
+ // Generated by platform-contract; do not edit.
2
+ export type JsonValue = number | string | boolean | Array<JsonValue> | { [key in string]?: JsonValue } | null;
3
+ export type Permission = "storage" | "creation_open" | { "file_access": Array<string> } | { "file_full_access": Array<string> } | { "network": Array<string> } | "agent_api" | "clipboard_read" | "clipboard_write" | "screen_capture" | "camera" | "microphone" | "system_audio" | "applications" | "global_shortcuts" | "notifications" | "tray" | "app_windows" | "accessibility" | "input_method" | { "external_open": Array<string> } | { "browser_view": Array<string> } | "system_info" | "secrets" | "background_tasks" | "power" | { "process_spawn": Array<string> } | "local_server" | "printing" | "contacts" | "calendar" | "location" | "device_access" | { "approvals": Array<string> } | "node";
4
+ export type PluginCommand = { id: string, title: string, };
5
+ export type PluginLocalization = { default_locale: string, catalogs: { [key in string]?: string }, };
6
+ export type Runtime = "sandbox" | "node";
7
+ export type GrantScope = "once" | "run" | "always";
8
+ export type ApprovalRule = { action: string,
9
+ /**
10
+ * The rule key, or a prefix ending in `*`.
11
+ */
12
+ pattern: string, allow: boolean,
13
+ /**
14
+ * `run` rules belong to the running instance; `always` rules are stored.
15
+ */
16
+ scope: GrantScope, };
17
+ export type ApprovalRecord = { action: string, rule_key: string,
18
+ /**
19
+ * `allow` or `deny`.
20
+ */
21
+ decision: string,
22
+ /**
23
+ * `once`, `run`, `always`, or `rule` when a remembered rule decided.
24
+ */
25
+ scope: string, time_ms: number, };
26
+ export type TargetPlatform = "macos" | "windows";
27
+ export type Engines = { medeo?: string, };
28
+ export type InstallSourceKind = "file" | "folder" | "github" | "npm" | "dev";
29
+ export type InstallSource = { kind: InstallSourceKind,
30
+ /**
31
+ * A file path, folder path, `owner/repo[#tag-prefix]` or npm package name.
32
+ */
33
+ locator: string,
34
+ /**
35
+ * The release tag or npm version the package was taken from.
36
+ */
37
+ version?: string, };
38
+ export type ConfigType = "string" | "number" | "boolean";
39
+ export type ConfigProperty = { type: ConfigType, default: JsonValue, title: string, description?: string,
40
+ /**
41
+ * Allowed values; the plugin center shows a choice.
42
+ */
43
+ enum?: Array<JsonValue>, };
44
+ export type Configuration = { properties: { [key in string]?: ConfigProperty }, };
45
+ export type Keybinding = { command: string, key: string, };
46
+ export type Menus = {
47
+ /**
48
+ * Command ids shown in the main window's Plugins menu.
49
+ */
50
+ app?: Array<string>, };
51
+ export type Contributes = { configuration?: Configuration, keybindings?: Array<Keybinding>, menus?: Menus, };
52
+ export type Manifest = { localization?: PluginLocalization, id: string, name: string,
53
+ /**
54
+ * One sentence the plugin center shows under the name; translated as
55
+ * `plugin.description` in the plugin's catalogs.
56
+ */
57
+ description?: string,
58
+ /**
59
+ * The plugin's icon, at the package root: `icon.svg` or `icon.png`.
60
+ */
61
+ icon?: string, version: string, api_version: number, worker: string, ui: string | null, permissions: Array<Permission>, commands: Array<PluginCommand>, runtime?: Runtime,
62
+ /**
63
+ * When Medeo starts the plugin: `onStartup`, `onCommand:<id>`,
64
+ * `onSchedule`, `onShortcut`. Without any, it starts when used.
65
+ */
66
+ activation_events?: Array<string>, contributes?: Contributes,
67
+ /**
68
+ * Operating systems the plugin runs on; empty means all.
69
+ */
70
+ platforms?: Array<TargetPlatform>,
71
+ /**
72
+ * The Medeo versions the plugin needs; absent means any that loads format 2.
73
+ */
74
+ engines?: Engines, };
75
+ export type PackageFile = { size: number, sha256: string, };
76
+ export type PackageIndex = { manifest: Manifest, files: { [key in string]?: PackageFile }, };
77
+ export type Asset = { mime: string, path: string, size: number, sha256: string, };
78
+ export type PackageSignature = { format: number, public_key: string, signature: string, index: string, };
79
+ export type PackageInfo = { manifest: Manifest, digest: string, publisher: string,
80
+ /**
81
+ * Bytes of all signed files, i.e. the installed size. Records written
82
+ * before this field existed are backfilled at start.
83
+ */
84
+ size: number,
85
+ /**
86
+ * What this build accepted but does not understand (`unknown_contribution:<key>`);
87
+ * shown at install and in the developer log, never a reason to refuse.
88
+ */
89
+ warnings?: Array<string>, };
90
+ export type CapabilityDescriptor = { permission: string, group: string, version: number, scoped: boolean, methods: Array<string>, available_methods: Array<string>, granted: boolean, declared: boolean, os_authorization: string, };
91
+ export type DirectoryGrant = { id: string, name: string, available: boolean,
92
+ /**
93
+ * Full access: view and move to the Trash without a Host confirmation.
94
+ */
95
+ full: boolean, };
96
+ export type NetworkOrigin = { origin: string, declared: boolean, allowed: boolean, };
97
+ export type InstalledPlugin = { localization: JsonValue, id: string, active: string | null, versions: Array<PackageInfo>, grants: Array<Permission>, directories: Array<DirectoryGrant>, network_origins: Array<NetworkOrigin>,
98
+ /**
99
+ * For resident (`onStartup`) plugins: whether the user lets it run in
100
+ * the background. Other plugins run only while in use and ignore it.
101
+ */
102
+ enabled: boolean, resident: boolean,
103
+ /**
104
+ * User-owned macOS Dock launcher preference; plugins cannot modify it.
105
+ */
106
+ dock: boolean,
107
+ /**
108
+ * User-owned: whether the plugin's menu-bar icon (`tray`) is shown; plugins cannot modify it.
109
+ */
110
+ menu_bar: boolean, instance: string | null,
111
+ /**
112
+ * Permission ids granted to the running instance only (`run` scope).
113
+ */
114
+ session_grants: Array<string>,
115
+ /**
116
+ * Permission ids the user refused with "don't ask again".
117
+ */
118
+ denied: Array<string>,
119
+ /**
120
+ * Remembered `approvals.request` answers.
121
+ */
122
+ approval_rules: Array<ApprovalRule>,
123
+ /**
124
+ * The active version's icon as a `data:` URL, when the package has one.
125
+ */
126
+ icon?: string,
127
+ /**
128
+ * Where the plugin was installed from, when Main recorded it.
129
+ */
130
+ source?: InstallSource, };
131
+ export type Instance = { id: string, plugin_id: string, digest: string, manifest: Manifest, };
132
+ export type Task = { id: string, plugin_id: string, instance: string, command: string, status: string, result: JsonValue | null,
133
+ /**
134
+ * Unix milliseconds; absent for rows written before times were recorded.
135
+ */
136
+ created_ms: number | null, finished_ms: number | null, };
137
+ export type Snapshot = { protocol: number, plugins: Array<InstalledPlugin>, tasks: Array<Task>, };
138
+ export type HostEvent = { "type": "operation", instance: string, id: string, method: string, status: string, revision?: number, } | { "type": "signal", instance: string, channel: string, } | { "type": "wake", plugin_id: string, };
139
+ export type Command = { "op": "ping" } | { "op": "shortcuts_list" } | { "op": "shortcut_validate", target: string, accelerator: string, } | { "op": "shortcut_save", target: string, accelerator: string, } | { "op": "shortcut_remove", target: string, } | { "op": "system_locale", locale: string, } | { "op": "plugin_locale", plugin_id: string, locale: string, } | { "op": "approve", instance: string, ticket: string, approved: boolean,
140
+ /**
141
+ * Without it an approval is stored (`always`) and a refusal asks again next time.
142
+ */
143
+ scope?: GrantScope, } | { "op": "capture_stop", id: string, } | { "op": "capture_asset", instance: string, id: string, } | { "op": "media_asset", instance: string, id: string, } | { "op": "agent_settings" } | { "op": "agent_configure", endpoint: string, model: string, encrypted_key: string | null, key: string, persist: boolean, } | { "op": "agent_remove" } | { "op": "agent_test", action: string, id: string | null, } | { "op": "snapshot" } | { "op": "capability_catalog" } | { "op": "grant_permission", plugin_id: string, digest: string, permission: string, } | { "op": "forget_approval_rule", plugin_id: string, action: string, pattern: string, } | { "op": "approval_log", plugin_id: string, } | { "op": "revoke_permission", plugin_id: string, permission: string, } | { "op": "network_origin_revoke", plugin_id: string, origin: string, } | { "op": "configure_capabilities", methods: Array<string>, } | { "op": "capability_result", instance: string, ticket: string, result: JsonValue | null, error: string | null, } | { "op": "quiesce", plugin_id: string, } | { "op": "resource_grant", instance: string, directories: Array<string>, full: boolean, } | { "op": "resource_revoke", plugin_id: string, grant_id: string, } | { "op": "inspect", package_file: string, } | { "op": "install", package_file: string, digest: string, grants: Array<Permission>,
144
+ /**
145
+ * Recorded with the plugin (plugin center "Source"); absent for older callers.
146
+ */
147
+ source?: InstallSource, } | { "op": "pack_dir", directory: string, key_file: string, output: string,
148
+ /**
149
+ * Stamp a content-derived `-dev.h<hash>` version like the toolchain's `dev` does.
150
+ */
151
+ development: boolean, } | { "op": "prepare", plugin_id: string, digest: string, } | { "op": "commit", instance: string, } | { "op": "abort", instance: string, } | { "op": "stop", plugin_id: string, } | { "op": "busy", plugin_id: string, } | { "op": "deactivate", plugin_id: string, } | { "op": "dock_set", plugin_id: string, enabled: boolean, } | { "op": "menu_bar_set", plugin_id: string, enabled: boolean, } | { "op": "keep_running", plugin_id: string, enabled: boolean, } | { "op": "uninstall", plugin_id: string, } | { "op": "config_state", plugin_id: string, } | { "op": "config_set", plugin_id: string, key: string, value: JsonValue, } | { "op": "package_dir", instance: string, } | { "op": "remove_version", plugin_id: string, digest: string, } | { "op": "grants", plugin_id: string, grants: Array<Permission>, } | { "op": "asset", instance: string, path: string, } | { "op": "invoke", instance: string, method: string, args: JsonValue,
152
+ /**
153
+ * Main sets this when the caller is one of the plugin's windows rather
154
+ * than its background worker; `ui` methods require it.
155
+ */
156
+ ui?: boolean, } | { "op": "task_start", instance: string, command: string, } | { "op": "task_finish", instance: string, task: string, result: JsonValue | null, failed: boolean, } | { "op": "labels", locale: string, };
157
+ export type Request = { version: number, id: number, command: Command, };
158
+ export type Response = { id: number, result: JsonValue | null, error: string | null, };