fix: register desktop core capabilities
This commit is contained in:
parent
43ac963923
commit
35b62da2c7
10
AGENTS.md
10
AGENTS.md
|
|
@ -41,6 +41,16 @@ verstak-sdk/
|
||||||
## Capability Registry (известные)
|
## Capability Registry (известные)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
verstak/core/plugin-manager/v1
|
||||||
|
verstak/core/capability-registry/v1
|
||||||
|
verstak/core/contribution-registry/v1
|
||||||
|
verstak/core/permissions/v1
|
||||||
|
verstak/core/events/v1
|
||||||
|
verstak/core/files/v1
|
||||||
|
verstak/core/workbench/v1
|
||||||
|
verstak/core/notifications/v1
|
||||||
|
verstak/core/vault/v1
|
||||||
|
verstak/core/workspace/v1
|
||||||
editor.text
|
editor.text
|
||||||
editor.text.markdown
|
editor.text.markdown
|
||||||
editor.note.markdown
|
editor.note.markdown
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
|
{ "name": "verstak/core/plugin-manager/v1", "description": "Core plugin discovery and lifecycle management", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/capability-registry/v1", "description": "Core capability registry access", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/contribution-registry/v1", "description": "Core plugin contribution registry", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/permissions/v1", "description": "Core plugin permission enforcement", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/events/v1", "description": "Core plugin event bus", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/files/v1", "description": "Core vault files API", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/workbench/v1", "description": "Core Workbench resource routing", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/notifications/v1", "description": "Core native notification scheduling", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/vault/v1", "description": "Core vault lifecycle", "status": "draft" },
|
||||||
|
{ "name": "verstak/core/workspace/v1", "description": "Core case lifecycle", "status": "draft" },
|
||||||
{ "name": "editor.text", "description": "Text editing capability (any format)", "status": "draft" },
|
{ "name": "editor.text", "description": "Text editing capability (any format)", "status": "draft" },
|
||||||
{ "name": "editor.text.markdown", "description": "Markdown text editing", "status": "draft" },
|
{ "name": "editor.text.markdown", "description": "Markdown text editing", "status": "draft" },
|
||||||
{ "name": "editor.note.markdown", "description": "Markdown note editing (extends editor.text.markdown with note metadata)", "status": "draft" },
|
{ "name": "editor.note.markdown", "description": "Markdown note editing (extends editor.text.markdown with note metadata)", "status": "draft" },
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,25 @@ describe('VerstakPluginAPI contract', () => {
|
||||||
expect(permissionEnum).toContain('notifications.schedule');
|
expect(permissionEnum).toContain('notifications.schedule');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('desktop core capabilities used by bundled plugins are declared', () => {
|
||||||
|
const capabilities = ((capabilitiesSchema as any).capabilities || []) as Array<{ name: string; status: string }>;
|
||||||
|
|
||||||
|
for (const name of [
|
||||||
|
'verstak/core/plugin-manager/v1',
|
||||||
|
'verstak/core/capability-registry/v1',
|
||||||
|
'verstak/core/contribution-registry/v1',
|
||||||
|
'verstak/core/permissions/v1',
|
||||||
|
'verstak/core/events/v1',
|
||||||
|
'verstak/core/files/v1',
|
||||||
|
'verstak/core/workbench/v1',
|
||||||
|
'verstak/core/notifications/v1',
|
||||||
|
'verstak/core/vault/v1',
|
||||||
|
'verstak/core/workspace/v1',
|
||||||
|
]) {
|
||||||
|
expect(capabilities).toContainEqual(expect.objectContaining({ name, status: 'draft' }));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test('file.changed schema documents watcher refresh payload', () => {
|
test('file.changed schema documents watcher refresh payload', () => {
|
||||||
const fileChanged = (vaultEventsSchema as any).events.find((event: any) => event.name === 'file.changed');
|
const fileChanged = (vaultEventsSchema as any).events.find((event: any) => event.name === 'file.changed');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue