Add open provider contracts to SDK

This commit is contained in:
2026-06-19 07:52:00 +08:00
parent 24d500a7b5
commit 0a0da4c1cb
20 changed files with 1030 additions and 432 deletions
+49
View File
@@ -84,6 +84,10 @@
"vault.read",
"vault.write",
"vault.watch",
"files.read",
"files.write",
"files.delete",
"workbench.open",
"storage.namespace",
"storage.migrations",
"events.publish",
@@ -227,6 +231,12 @@
"items": {
"$ref": "#/$defs/ContributionStatusBarItem"
}
},
"openProviders": {
"type": "array",
"items": {
"$ref": "#/$defs/ContributionOpenProvider"
}
}
}
},
@@ -357,6 +367,45 @@
"handler": { "type": "string" }
},
"required": ["id", "label"]
},
"OpenProviderSupport": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["vault-file"]
},
"extensions": {
"type": "array",
"items": { "type": "string" }
},
"mime": {
"type": "array",
"items": { "type": "string" }
},
"contexts": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["kind"]
},
"ContributionOpenProvider": {
"type": "object",
"properties": {
"id": { "type": "string" },
"title": { "type": "string" },
"priority": { "type": "integer" },
"component": { "type": "string" },
"supports": {
"type": "array",
"items": {
"$ref": "#/$defs/OpenProviderSupport"
},
"minItems": 1
}
},
"required": ["id", "title", "component", "supports"]
}
}
}
+4
View File
@@ -30,12 +30,16 @@
{ "name": "vault.read", "description": "Read vault files and metadata", "dangerous": false },
{ "name": "vault.write", "description": "Write vault files and metadata", "dangerous": true },
{ "name": "vault.watch", "description": "Watch vault file changes", "dangerous": false },
{ "name": "files.read", "description": "List files and read text files through the vault Files API", "dangerous": false },
{ "name": "files.write", "description": "Create folders, write text files, and move paths through the vault Files API", "dangerous": true },
{ "name": "files.delete", "description": "Trash vault files and folders through the vault Files API", "dangerous": true },
{ "name": "storage.namespace", "description": "Read/write plugin's own storage namespace", "dangerous": false },
{ "name": "storage.migrations", "description": "Run database migrations in plugin namespace", "dangerous": false },
{ "name": "events.publish", "description": "Publish events to the event bus", "dangerous": false },
{ "name": "events.subscribe", "description": "Subscribe to events on the event bus", "dangerous": false },
{ "name": "ui.register", "description": "Register UI components and contributions", "dangerous": false },
{ "name": "commands.register", "description": "Register command palette commands", "dangerous": false },
{ "name": "workbench.open", "description": "Request Workbench open/edit routing for vault resources", "dangerous": false },
{ "name": "network.local", "description": "Connect to localhost network services", "dangerous": false },
{ "name": "network.remote", "description": "Connect to remote network services", "dangerous": true },
{ "name": "process.spawn", "description": "Spawn external processes", "dangerous": true },