mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 17:37:40 +00:00
1670 lines
56 KiB
JSON
1670 lines
56 KiB
JSON
{
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"$id": "https://raw.githubusercontent.com/stablyai/orca/main/docs/schemas/plugins/orca-plugin.v2.schema.json",
|
||
"title": "Orca plugin manifest",
|
||
"description": "The orca-plugin.json file at the root of an Orca plugin (manifest format 2).",
|
||
"type": "object",
|
||
"properties": {
|
||
"$schema": {
|
||
"description": "JSON Schema URL for editor completion. Ignored by Orca.",
|
||
"x-orca-since": "1.4.245",
|
||
"type": "string",
|
||
"maxLength": 2048
|
||
},
|
||
"manifestVersion": {
|
||
"type": "number",
|
||
"const": 2,
|
||
"description": "Manifest format. Use 2 for new plugins.",
|
||
"x-orca-since": "1.4.245"
|
||
},
|
||
"execution": {
|
||
"type": "string",
|
||
"enum": [
|
||
"data",
|
||
"declarative",
|
||
"sandboxed-ui",
|
||
"trusted-worker"
|
||
],
|
||
"description": "Most authority the plugin needs, least first: `data` (themes, syntaxes, translations), `declarative` (commands, shortcuts, recipes), `sandboxed-ui` (panels), `trusted-worker` (`main`, events and hooks). Contributions beyond it fail validation.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"data"
|
||
]
|
||
},
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "Plugin id, kebab-case. The install identity is `<publisher>.<id>`, where Orca derives the publisher from the repository owner. The reserved names `constructor` and `prototype` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"gleam-syntax"
|
||
]
|
||
},
|
||
"publisher": {
|
||
"deprecated": true,
|
||
"description": "Deprecated: leave it out. Orca derives the publisher from where the plugin comes from, the way a Go module is named by its repository path: the repository owner for the official and community catalogs and for Git URL installs (`acme` for `github.com/acme/gleam-syntax`), and `local` for a folder. A value here is ignored for catalog and Git installs. Leaving it out needs `engines.orca` of at least `>=1.4.246`, because older Orca requires it; if you keep it for older Orca, it must equal the repository owner. Reserved owners (`stablyai`, `official`, `anthropic`, `openai`, `github` and any starting `orca`) and ids starting `orca-` install only from Orca's official catalog.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"acme"
|
||
],
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"description": "Display name.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"Gleam"
|
||
]
|
||
},
|
||
"version": {
|
||
"type": "string",
|
||
"pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$",
|
||
"description": "Plugin version, semver.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"1.2.0"
|
||
]
|
||
},
|
||
"description": {
|
||
"description": "One or two sentences shown in the plugin list.",
|
||
"x-orca-since": "1.4.160",
|
||
"type": "string",
|
||
"maxLength": 4096
|
||
},
|
||
"author": {
|
||
"description": "Who maintains the plugin.",
|
||
"x-orca-since": "1.4.160",
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"description": "Author or organization name.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"Acme"
|
||
]
|
||
},
|
||
"url": {
|
||
"description": "Author homepage.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"https://example.com"
|
||
],
|
||
"type": "string",
|
||
"maxLength": 2048
|
||
}
|
||
},
|
||
"required": [
|
||
"name"
|
||
],
|
||
"additionalProperties": false
|
||
},
|
||
"repository": {
|
||
"description": "Source repository URL.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"https://github.com/acme/orca-gleam-syntax"
|
||
],
|
||
"type": "string",
|
||
"maxLength": 2048
|
||
},
|
||
"license": {
|
||
"description": "SPDX license expression.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"MIT",
|
||
"Apache-2.0 OR MIT"
|
||
],
|
||
"type": "string",
|
||
"maxLength": 128,
|
||
"pattern": "^\\(?[A-Za-z0-9][A-Za-z0-9.+-]*(?: (?:AND|OR|WITH) \\(?[A-Za-z0-9][A-Za-z0-9.+-]*\\)?)*\\)?$"
|
||
},
|
||
"homepage": {
|
||
"description": "Project homepage, https only.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"https://example.com/gleam"
|
||
],
|
||
"type": "string",
|
||
"maxLength": 2048,
|
||
"pattern": "^https:\\/\\/\\S+$"
|
||
},
|
||
"icon": {
|
||
"description": "Square image shown beside the plugin name. PNG, WEBP, static, at least 128×128, square, at most 256 KB. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"assets/icon.png"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
},
|
||
"engines": {
|
||
"type": "object",
|
||
"properties": {
|
||
"orca": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^>=\\d+\\.\\d+\\.\\d+$",
|
||
"description": "Oldest Orca release this plugin runs on, as `>=x.y.z`. Raise it to the newest \"Since\" of any field you use; a format 2 manifest needs at least `>=1.4.245`, because older Orca cannot read format 2.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
">=1.4.245"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"orca"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "Host versions this plugin supports. Older hosts refuse to load it.",
|
||
"x-orca-since": "1.4.160"
|
||
},
|
||
"main": {
|
||
"description": "Node entry run in an out-of-process plugin worker: a `.js`/`.mjs` module, or a `.ts`/`.mts` module that Orca transpiles when it loads (needs `engines.orca` `>=1.4.246`). Requires the `trusted-worker` execution profile, and is required by it, by `contributes.events`, by `contributes.hooks` and by any command without an `action`. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"dist/main.mjs"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
},
|
||
"contributes": {
|
||
"description": "What the plugin adds to Orca. Every point defaults to empty.",
|
||
"x-orca-since": "1.4.160",
|
||
"default": {},
|
||
"type": "object",
|
||
"properties": {
|
||
"panels": {
|
||
"default": [],
|
||
"description": "Sidebar panels. At most 64.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/PanelContribution"
|
||
}
|
||
},
|
||
"commands": {
|
||
"default": [],
|
||
"description": "Command palette entries. At most 256.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 256,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/CommandContribution"
|
||
}
|
||
},
|
||
"events": {
|
||
"default": [],
|
||
"description": "Events delivered to the plugin worker. At most 5.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 5,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/EventContribution"
|
||
}
|
||
},
|
||
"hooks": {
|
||
"default": [],
|
||
"description": "Hooks the worker runs before or after Orca acts; Orca waits only on plugins that list one. At most 8.",
|
||
"x-orca-since": "1.4.248",
|
||
"maxItems": 8,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/HookContribution"
|
||
}
|
||
},
|
||
"languagePacks": {
|
||
"default": [],
|
||
"description": "Interface translations. At most 16.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 16,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/LanguagePackContribution"
|
||
}
|
||
},
|
||
"keybindings": {
|
||
"description": "Keyboard shortcuts for contributed commands. At most 256.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 256,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/KeybindingContribution"
|
||
}
|
||
},
|
||
"vmRecipes": {
|
||
"default": [],
|
||
"description": "Virtual machine environment recipes. At most 64.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/VmRecipeContribution"
|
||
}
|
||
},
|
||
"themes": {
|
||
"default": [],
|
||
"description": "App color themes. At most 64.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/ThemeContribution"
|
||
}
|
||
},
|
||
"terminalThemes": {
|
||
"default": [],
|
||
"description": "Terminal ANSI palettes. At most 64.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/ThemeContribution"
|
||
}
|
||
},
|
||
"iconThemes": {
|
||
"default": [],
|
||
"description": "File icon themes. At most 32.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 32,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/ThemeContribution"
|
||
}
|
||
},
|
||
"fonts": {
|
||
"default": [],
|
||
"description": "Font families for the terminal, editor and interface font pickers. At most 8.",
|
||
"x-orca-since": "1.4.253",
|
||
"maxItems": 8,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/FontContribution"
|
||
}
|
||
},
|
||
"syntaxes": {
|
||
"default": [],
|
||
"description": "Syntax highlighting for editor languages. At most 16.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 16,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/SyntaxContribution"
|
||
}
|
||
},
|
||
"customEditors": {
|
||
"default": [],
|
||
"description": "Editors that open files of given types in the editor tab. At most 16.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 16,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/CustomEditorContribution"
|
||
}
|
||
},
|
||
"newFiles": {
|
||
"default": [],
|
||
"description": "Untitled files the user can create from the + menu and the command palette. At most 16.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 16,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/NewFileContribution"
|
||
}
|
||
},
|
||
"settings": {
|
||
"default": [],
|
||
"description": "Settings Orca shows under the plugin in Settings; code reads them with `settings.get` (`settings:own`). At most 64.",
|
||
"x-orca-since": "1.4.246",
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/SettingContribution"
|
||
}
|
||
},
|
||
"statusBarItems": {
|
||
"default": [],
|
||
"description": "Items in the status bar; pressing one runs its `command`, and a worker changes them with `statusBar.update`. With `main`, the worker runs for as long as the plugin is enabled. At most 8.",
|
||
"x-orca-since": "1.4.248",
|
||
"maxItems": 8,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/StatusBarItemContribution"
|
||
}
|
||
},
|
||
"agentHarnesses": {
|
||
"description": "Reserved for coding-agent harness definitions; must be empty until their format is defined.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 0,
|
||
"type": "array",
|
||
"items": {}
|
||
},
|
||
"skills": {
|
||
"description": "Reserved for agent skills; must be empty until their format is defined.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 0,
|
||
"type": "array",
|
||
"items": {}
|
||
},
|
||
"mcpServers": {
|
||
"description": "Reserved for MCP server definitions; must be empty until their format is defined.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 0,
|
||
"type": "array",
|
||
"items": {}
|
||
},
|
||
"taskSources": {
|
||
"description": "Reserved for task sources; must be empty until their format is defined.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 0,
|
||
"type": "array",
|
||
"items": {}
|
||
},
|
||
"connections": {
|
||
"description": "Reserved for account connections; must be empty until their format is defined.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 0,
|
||
"type": "array",
|
||
"items": {}
|
||
},
|
||
"sidebarCards": {
|
||
"description": "Reserved for sidebar cards; must be empty until their format is defined.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 0,
|
||
"type": "array",
|
||
"items": {}
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"capabilities": {
|
||
"default": [],
|
||
"description": "Host APIs the plugin asks the user to grant. At most 32.",
|
||
"x-orca-since": "1.4.160",
|
||
"maxItems": 32,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/Capability"
|
||
}
|
||
},
|
||
"cover": {
|
||
"description": "Wide image at the top of the plugin page.",
|
||
"x-orca-since": "1.4.245",
|
||
"type": "object",
|
||
"properties": {
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "Cover image shown on the plugin page, 16:10 recommended (1600×1000). PNG, JPEG, WEBP, static, at least 800×500, at most 1024 KB. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"images/cover.png"
|
||
]
|
||
},
|
||
"alt": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 160,
|
||
"description": "What the image shows, for screen readers. Required.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"The Dusk theme on a terminal"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"path",
|
||
"alt"
|
||
],
|
||
"additionalProperties": false
|
||
},
|
||
"screenshots": {
|
||
"description": "Screenshots for the plugin page, at most 6. All images together may be at most 8 MB.",
|
||
"x-orca-since": "1.4.245",
|
||
"maxItems": 6,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/Screenshot"
|
||
}
|
||
},
|
||
"pluginApi": {
|
||
"description": "Major version of the plugin host API this plugin targets. Optional (defaults to 1), and refused on `data` and `declarative` plugins, which never call it.",
|
||
"x-orca-since": "1.4.160",
|
||
"type": "number",
|
||
"const": 1
|
||
}
|
||
},
|
||
"required": [
|
||
"manifestVersion",
|
||
"execution",
|
||
"id",
|
||
"name",
|
||
"version",
|
||
"engines"
|
||
],
|
||
"additionalProperties": false,
|
||
"$defs": {
|
||
"PanelContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "Panel id, unique among this plugin's panels. The reserved names `constructor` and `prototype` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"dashboard"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"description": "Title shown on the panel tab and its tooltip.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"Dashboard"
|
||
]
|
||
},
|
||
"icon": {
|
||
"description": "Icon shown in the right-sidebar activity bar. Defaults to `plug`.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"database"
|
||
],
|
||
"x-orca-enum-since": {
|
||
"add": "1.4.246",
|
||
"remove": "1.4.246",
|
||
"delete": "1.4.246",
|
||
"edit": "1.4.246",
|
||
"refresh": "1.4.246",
|
||
"search": "1.4.246",
|
||
"settings": "1.4.246",
|
||
"check": "1.4.246",
|
||
"close": "1.4.246",
|
||
"info": "1.4.246",
|
||
"warning": "1.4.246",
|
||
"error": "1.4.246",
|
||
"open-external": "1.4.246",
|
||
"copy": "1.4.246",
|
||
"download": "1.4.246",
|
||
"upload": "1.4.246",
|
||
"play": "1.4.246",
|
||
"pause": "1.4.246",
|
||
"stop": "1.4.246",
|
||
"more": "1.4.246",
|
||
"expand": "1.4.246",
|
||
"collapse": "1.4.246",
|
||
"next": "1.4.246",
|
||
"filter": "1.4.246",
|
||
"branch": "1.4.246",
|
||
"file": "1.4.246",
|
||
"agent": "1.4.246",
|
||
"link": "1.4.246"
|
||
},
|
||
"type": "string",
|
||
"enum": [
|
||
"activity",
|
||
"bar-chart-3",
|
||
"bell",
|
||
"blocks",
|
||
"book",
|
||
"bot",
|
||
"bug",
|
||
"calendar",
|
||
"cloud",
|
||
"code",
|
||
"database",
|
||
"file-text",
|
||
"flag",
|
||
"folder",
|
||
"gauge",
|
||
"globe",
|
||
"hammer",
|
||
"layers",
|
||
"lightbulb",
|
||
"package",
|
||
"plug",
|
||
"puzzle",
|
||
"rocket",
|
||
"star",
|
||
"terminal",
|
||
"wrench",
|
||
"zap",
|
||
"add",
|
||
"remove",
|
||
"delete",
|
||
"edit",
|
||
"refresh",
|
||
"search",
|
||
"settings",
|
||
"check",
|
||
"close",
|
||
"info",
|
||
"warning",
|
||
"error",
|
||
"open-external",
|
||
"copy",
|
||
"download",
|
||
"upload",
|
||
"play",
|
||
"pause",
|
||
"stop",
|
||
"more",
|
||
"expand",
|
||
"collapse",
|
||
"next",
|
||
"filter",
|
||
"branch",
|
||
"file",
|
||
"agent",
|
||
"link"
|
||
]
|
||
},
|
||
"entry": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "What the panel runs: an HTML page for `ui: \"html\"`, a `.js`/`.mjs` module for `ui: \"components\"`. Either may instead be a `.ts`/`.tsx`/`.mts`/`.jsx` file, which Orca transpiles when it loads (needs `engines.orca` `>=1.4.246`; an `html` panel then gets a generated page around it). It is trusted code: install panels you trust. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"dist/panel.html"
|
||
]
|
||
},
|
||
"ui": {
|
||
"description": "How the panel draws its UI. `html` (default) shows `entry` as a web page in an isolated frame; `components` runs `entry` as a hidden module and Orca draws the component tree it returns with its own controls.",
|
||
"x-orca-since": "1.4.246",
|
||
"examples": [
|
||
"components"
|
||
],
|
||
"type": "string",
|
||
"enum": [
|
||
"html",
|
||
"components"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"title",
|
||
"entry"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A sidebar panel. Requires the `sandboxed-ui` execution profile or higher."
|
||
},
|
||
"CommandContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"pattern": "^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$",
|
||
"description": "Command id, unique among this plugin's commands. Dotted namespaces are allowed.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"jupyter.restartKernel"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"description": "Title shown in the command palette.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"Restart kernel"
|
||
]
|
||
},
|
||
"when": {
|
||
"description": "Where the command is available. `workspace` hides it when no workspace is active. Defaults to `global`.",
|
||
"x-orca-since": "1.4.160",
|
||
"x-orca-enum-since": {
|
||
"global": "1.4.160",
|
||
"workspace": "1.4.245"
|
||
},
|
||
"type": "string",
|
||
"enum": [
|
||
"global",
|
||
"workspace"
|
||
]
|
||
},
|
||
"action": {
|
||
"description": "Built-in Orca action this command runs. A command with an action is declarative and never starts the plugin worker; one without needs `main`.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"view.tasks"
|
||
],
|
||
"enum": [
|
||
"worktree.history.back",
|
||
"worktree.history.forward",
|
||
"sidebar.left.toggle",
|
||
"sidebar.sleepingWorkspaces.toggle",
|
||
"floatingWorkspace.maximize",
|
||
"tab.rename",
|
||
"workspace.rename",
|
||
"workspace.openBoard",
|
||
"view.tasks",
|
||
"sidebar.right.toggle",
|
||
"sidebar.explorer.toggle",
|
||
"sidebar.search.toggle",
|
||
"sidebar.sourceControl.toggle",
|
||
"sidebar.checks.toggle",
|
||
"sidebar.ports.toggle"
|
||
],
|
||
"x-orca-enum-since": {
|
||
"worktree.history.back": "1.4.160",
|
||
"worktree.history.forward": "1.4.160",
|
||
"sidebar.left.toggle": "1.4.160",
|
||
"sidebar.sleepingWorkspaces.toggle": "1.4.160",
|
||
"floatingWorkspace.maximize": "1.4.160",
|
||
"tab.rename": "1.4.160",
|
||
"workspace.rename": "1.4.160",
|
||
"workspace.openBoard": "1.4.160",
|
||
"view.tasks": "1.4.160",
|
||
"sidebar.right.toggle": "1.4.160",
|
||
"sidebar.explorer.toggle": "1.4.160",
|
||
"sidebar.search.toggle": "1.4.160",
|
||
"sidebar.sourceControl.toggle": "1.4.160",
|
||
"sidebar.checks.toggle": "1.4.160",
|
||
"sidebar.ports.toggle": "1.4.160"
|
||
},
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"pattern": "^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$"
|
||
},
|
||
"replaces": {
|
||
"description": "Built-in Orca action this worker command runs in place of, from its shortcut, the palette or a menu. To also run Orca’s own, the command calls `commands.run` with the action (`workspace:write`); that never reaches a replacement. If the worker fails or takes over 2 s, Orca runs its own. The person sees it before approving and can turn it off in Settings; when two plugins replace one action, the one installed first does.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"view.tasks"
|
||
],
|
||
"enum": [
|
||
"worktree.history.back",
|
||
"worktree.history.forward",
|
||
"sidebar.left.toggle",
|
||
"sidebar.sleepingWorkspaces.toggle",
|
||
"floatingWorkspace.maximize",
|
||
"tab.rename",
|
||
"workspace.rename",
|
||
"workspace.openBoard",
|
||
"view.tasks",
|
||
"sidebar.right.toggle",
|
||
"sidebar.explorer.toggle",
|
||
"sidebar.search.toggle",
|
||
"sidebar.sourceControl.toggle",
|
||
"sidebar.checks.toggle",
|
||
"sidebar.ports.toggle"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"pattern": "^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$"
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"title"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A command palette entry. Requires the `declarative` execution profile or higher."
|
||
},
|
||
"EventContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"on": {
|
||
"type": "string",
|
||
"enum": [
|
||
"workspace.created",
|
||
"workspace.removed",
|
||
"agent.status.changed",
|
||
"workspace.changed",
|
||
"editor.typography.changed"
|
||
],
|
||
"description": "Event delivered to the plugin worker.",
|
||
"x-orca-since": "1.4.160",
|
||
"x-orca-enum-since": {
|
||
"workspace.created": "1.4.245",
|
||
"workspace.removed": "1.4.245",
|
||
"agent.status.changed": "1.4.160",
|
||
"workspace.changed": "1.4.246",
|
||
"editor.typography.changed": "1.4.256"
|
||
}
|
||
}
|
||
},
|
||
"required": [
|
||
"on"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "An event subscription. Requires `main`, the `trusted-worker` execution profile and the capability of the event's domain: `workspace:read` for workspace events, `agent:read` for agent events. Editor events need no capability."
|
||
},
|
||
"HookContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"event": {
|
||
"type": "string",
|
||
"enum": [
|
||
"terminal.send",
|
||
"workspace.create.before",
|
||
"workspace.create.after",
|
||
"agent.launch.before",
|
||
"agent.prompt.before",
|
||
"agent.tool.before",
|
||
"agent.tool.after",
|
||
"editor.save.before"
|
||
],
|
||
"description": "Hook the worker handles with `orca.hooks.on`.",
|
||
"x-orca-since": "1.4.248",
|
||
"x-orca-enum-since": {
|
||
"terminal.send": "1.4.248",
|
||
"workspace.create.before": "1.4.248",
|
||
"workspace.create.after": "1.4.248",
|
||
"agent.launch.before": "1.4.248",
|
||
"agent.prompt.before": "1.4.248",
|
||
"agent.tool.before": "1.4.248",
|
||
"agent.tool.after": "1.4.248",
|
||
"editor.save.before": "1.4.248"
|
||
}
|
||
},
|
||
"onError": {
|
||
"description": "What Orca does when this plugin's hook throws, times out, crashes or does not start: `pass` (the default) carries on as if it passed; `deny` refuses the action, naming the plugin, so a guard fails closed. Ignored for hooks that only observe.",
|
||
"x-orca-since": "1.4.248",
|
||
"type": "string",
|
||
"enum": [
|
||
"pass",
|
||
"deny"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"event"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A hook Orca runs through the worker before (or after) it acts. Requires `main` and the `trusted-worker` execution profile."
|
||
},
|
||
"LanguagePackContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"locale": {
|
||
"type": "string",
|
||
"minLength": 2,
|
||
"maxLength": 35,
|
||
"pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
|
||
"description": "BCP 47 locale the pack translates Orca into. Each locale appears once, ignoring case.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"pt-BR"
|
||
]
|
||
},
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "JSON file of translated interface strings. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"locales/pt-BR.json"
|
||
]
|
||
},
|
||
"displayName": {
|
||
"description": "Native-language name for the Settings picker. Omitted packs show `{locale} — {pluginKey}`.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"Português (Brasil)"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 80
|
||
}
|
||
},
|
||
"required": [
|
||
"locale",
|
||
"path"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "An interface translation."
|
||
},
|
||
"KeybindingContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"command": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"pattern": "^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$",
|
||
"description": "Id of a command this plugin contributes in `contributes.commands`.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"jupyter.restartKernel"
|
||
]
|
||
},
|
||
"key": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 128,
|
||
"description": "Key chord Orca recognizes, such as `Mod+Shift+K`. `Mod` is Cmd on macOS and Ctrl elsewhere. Each chord may be bound once on every platform.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"Mod+Shift+K"
|
||
]
|
||
},
|
||
"when": {
|
||
"description": "Where the shortcut is active; must match its command's `when`.",
|
||
"x-orca-since": "1.4.160",
|
||
"x-orca-enum-since": {
|
||
"global": "1.4.160",
|
||
"workspace": "1.4.245"
|
||
},
|
||
"type": "string",
|
||
"enum": [
|
||
"global",
|
||
"workspace"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"command",
|
||
"key"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A keyboard shortcut for a command."
|
||
},
|
||
"VmRecipeContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "JSON environment recipe file, listed once. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.160",
|
||
"examples": [
|
||
"recipes/ubuntu.json"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"path"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A virtual machine environment recipe."
|
||
},
|
||
"ThemeContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "Theme id, unique within its family in this plugin. The reserved names `constructor` and `prototype` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"dusk"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 128,
|
||
"description": "Name shown in the theme picker.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"Dusk"
|
||
]
|
||
},
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "JSON theme file, at most 16 KiB. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"themes/dusk.json"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"title",
|
||
"path"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A titled theme file."
|
||
},
|
||
"FontContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"family": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9 _.-]{0,46}[A-Za-z0-9])?$",
|
||
"description": "Family name shown in the font pickers. Orca adds the plugin id, so a plugin font never replaces an installed or built-in font of the same name.",
|
||
"x-orca-since": "1.4.253",
|
||
"examples": [
|
||
"Geist"
|
||
]
|
||
},
|
||
"faces": {
|
||
"minItems": 1,
|
||
"maxItems": 8,
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/$defs/FontFaceContribution"
|
||
},
|
||
"description": "The family's files, at most 8. All of a plugin's font files together may be at most 8 MB.",
|
||
"x-orca-since": "1.4.253"
|
||
}
|
||
},
|
||
"required": [
|
||
"family",
|
||
"faces"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A font family the user can pick for the terminal, editor or interface. It applies only once picked."
|
||
},
|
||
"FontFaceContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"allOf": [
|
||
{
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
},
|
||
{
|
||
"pattern": "\\.woff2?$"
|
||
}
|
||
],
|
||
"description": "WOFF or WOFF2 file, at most 2 MB; its first bytes must match its extension. TTF, OTF and font collections are refused. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.253",
|
||
"examples": [
|
||
"fonts/Geist-Variable.woff2"
|
||
]
|
||
},
|
||
"weight": {
|
||
"description": "CSS weight this file draws, or a range for a variable font. Defaults to `400`.",
|
||
"x-orca-since": "1.4.253",
|
||
"examples": [
|
||
"400",
|
||
"100 900"
|
||
],
|
||
"type": "string",
|
||
"pattern": "^(?:[1-9]\\d{0,2}|1000)(?: (?:[1-9]\\d{0,2}|1000))?$"
|
||
},
|
||
"style": {
|
||
"description": "Whether this file is the italic face. Defaults to `normal`.",
|
||
"x-orca-since": "1.4.253",
|
||
"type": "string",
|
||
"enum": [
|
||
"normal",
|
||
"italic"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"path"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "One file of a font family."
|
||
},
|
||
"SyntaxContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "Language id, unique among this plugin's syntaxes. The reserved names `constructor` and `prototype` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"gleam"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 128,
|
||
"description": "Language name shown in the editor.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"Gleam"
|
||
]
|
||
},
|
||
"scopeName": {
|
||
"type": "string",
|
||
"maxLength": 128,
|
||
"pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)+$",
|
||
"description": "The grammar's root TextMate scope, unique among this plugin's syntaxes.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"source.gleam"
|
||
]
|
||
},
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "TextMate grammar JSON file. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"syntaxes/gleam.tmLanguage.json"
|
||
]
|
||
},
|
||
"configuration": {
|
||
"description": "Language configuration JSON file: comments, brackets and auto-closing pairs. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"syntaxes/language-configuration.json"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
},
|
||
"extensions": {
|
||
"default": [],
|
||
"description": "File-name suffixes, with the dot, this language opens, ignoring case. A longer suffix such as `.excalidraw.json` wins over a shorter one, and a file named only the suffix never matches. At most 32.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
[
|
||
".gleam"
|
||
]
|
||
],
|
||
"maxItems": 32,
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^\\.[A-Za-z0-9_+-]+(?:\\.[A-Za-z0-9_+-]+)*$"
|
||
}
|
||
},
|
||
"filenames": {
|
||
"default": [],
|
||
"description": "Exact file names this language opens, ignoring case; a name beats any extension. Names must be portable: no path separators, `.`, `..` or characters Windows forbids. At most 32.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
[
|
||
"gleam.toml"
|
||
]
|
||
],
|
||
"maxItems": 32,
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 128
|
||
}
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"title",
|
||
"scopeName",
|
||
"path"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "Syntax highlighting for one language."
|
||
},
|
||
"CustomEditorContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "Editor id, unique among this plugin's custom editors. The reserved names `constructor` and `prototype` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"excalidraw"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 64,
|
||
"description": "Name shown in the editor's view toggle beside Source, and on the tab of a file it opens.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"Excalidraw"
|
||
]
|
||
},
|
||
"icon": {
|
||
"description": "Square image shown on the tab of a file this editor opens. Defaults to the plugin icon. PNG, WEBP, static, at least 128×128, square, at most 256 KB. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"images/editor-icon.png"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
},
|
||
"extensions": {
|
||
"default": [],
|
||
"description": "File-name suffixes, with the dot, this editor opens, ignoring case. A longer suffix such as `.excalidraw.json` wins over a shorter one, and a file named only the suffix never matches. At most 32.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
[
|
||
".excalidraw",
|
||
".excalidraw.json"
|
||
]
|
||
],
|
||
"maxItems": 32,
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^\\.[A-Za-z0-9_+-]+(?:\\.[A-Za-z0-9_+-]+)*$"
|
||
}
|
||
},
|
||
"filenames": {
|
||
"default": [],
|
||
"description": "Exact file names this editor opens, ignoring case; a name beats any extension. Names must be portable: no path separators, `.`, `..` or characters Windows forbids. At most 32.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
[]
|
||
],
|
||
"maxItems": 32,
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 128
|
||
}
|
||
},
|
||
"entry": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "HTML file rendered inside an editor frame, like a panel, or a `.ts`/`.tsx` module that Orca transpiles and loads in a generated page (needs `engines.orca` `>=1.4.246`). It receives the open document and posts edits back; it never gets a file path or file system. It is trusted code: install editors you trust. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"editor/index.html"
|
||
]
|
||
},
|
||
"priority": {
|
||
"description": "`default` (the default) opens matching files in this editor; `option` only offers it in the view toggle, so files open in Source. Files Orca opens itself (such as `.json`, `.ts`, `.md`, `.csv`, `.yaml`, lockfiles and `.env` files) always behave as `option`; a longer suffix such as `.sketch.json` is not one of them and opens by default.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"default"
|
||
],
|
||
"type": "string",
|
||
"enum": [
|
||
"default",
|
||
"option"
|
||
]
|
||
},
|
||
"contentKind": {
|
||
"description": "`text` (the default) sends the file as text and accepts full-text edits. `bytes` sends the file's raw bytes, for binary formats such as spreadsheets, and accepts full-byte edits.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"bytes"
|
||
],
|
||
"type": "string",
|
||
"enum": [
|
||
"text",
|
||
"bytes"
|
||
]
|
||
},
|
||
"frame": {
|
||
"description": "`any` (the default) runs in whatever frame the client gives. `isolated` runs only in the desktop app's isolated frame, never the browser-client fallback: browser clients, and desktop with isolated frames switched off, open the file in Source with a notice that the editor needs the Orca desktop app.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"isolated"
|
||
],
|
||
"type": "string",
|
||
"enum": [
|
||
"any",
|
||
"isolated"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"title",
|
||
"entry"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "An editor for the listed files, shown in the editor tab beside Source. It must list at least one extension or file name. Requires the `sandboxed-ui` execution profile or higher."
|
||
},
|
||
"NewFileContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "New-file id, unique among this plugin's new files. The reserved names `constructor` and `prototype` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"drawing"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 64,
|
||
"description": "Menu item shown in the tab bar + menu and the command palette.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"New Excalidraw drawing"
|
||
]
|
||
},
|
||
"extension": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^\\.[A-Za-z0-9_+-]+(?:\\.[A-Za-z0-9_+-]+)*$",
|
||
"description": "Suffix, with the dot, of the untitled file it creates. The file opens in whatever editor takes that suffix, such as a custom editor from this plugin.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
".excalidraw"
|
||
]
|
||
},
|
||
"template": {
|
||
"description": "UTF-8 file copied into the new file, at most 256 KB. Without one the file starts empty. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"templates/empty.excalidraw"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
},
|
||
"icon": {
|
||
"description": "Square image shown beside the menu item. Defaults to the plugin icon. PNG, WEBP, static, at least 128×128, square, at most 256 KB. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"images/editor-icon.png"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$"
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"title",
|
||
"extension"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A kind of untitled file the user can create from the tab bar + menu or the command palette, in the active workspace."
|
||
},
|
||
"SettingContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"key": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,63}$",
|
||
"description": "Key code reads and writes, unique in this plugin.",
|
||
"x-orca-since": "1.4.246",
|
||
"examples": [
|
||
"apiUrl"
|
||
]
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 120,
|
||
"description": "Label shown in Settings.",
|
||
"x-orca-since": "1.4.246",
|
||
"examples": [
|
||
"Server URL"
|
||
]
|
||
},
|
||
"description": {
|
||
"description": "Help text shown under the label.",
|
||
"x-orca-since": "1.4.246",
|
||
"type": "string",
|
||
"maxLength": 1000
|
||
},
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"string",
|
||
"number",
|
||
"integer",
|
||
"boolean"
|
||
],
|
||
"description": "JSON Schema type of the value.",
|
||
"x-orca-since": "1.4.246",
|
||
"examples": [
|
||
"string"
|
||
]
|
||
},
|
||
"default": {
|
||
"description": "Value read while the person has not set one.",
|
||
"x-orca-since": "1.4.246",
|
||
"anyOf": [
|
||
{
|
||
"type": "string",
|
||
"maxLength": 10000
|
||
},
|
||
{
|
||
"type": "number"
|
||
},
|
||
{
|
||
"type": "boolean"
|
||
}
|
||
]
|
||
},
|
||
"enum": {
|
||
"description": "Allowed values; Settings shows a picker.",
|
||
"x-orca-since": "1.4.246",
|
||
"minItems": 1,
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string",
|
||
"maxLength": 256
|
||
},
|
||
{
|
||
"type": "number"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"enumLabels": {
|
||
"description": "Picker labels, one per `enum` value.",
|
||
"x-orca-since": "1.4.246",
|
||
"maxItems": 64,
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 120
|
||
}
|
||
},
|
||
"minimum": {
|
||
"description": "Numbers: smallest value.",
|
||
"x-orca-since": "1.4.246",
|
||
"type": "number"
|
||
},
|
||
"maximum": {
|
||
"description": "Numbers: largest value.",
|
||
"x-orca-since": "1.4.246",
|
||
"type": "number"
|
||
},
|
||
"maxLength": {
|
||
"description": "Strings: most characters.",
|
||
"x-orca-since": "1.4.246",
|
||
"type": "integer",
|
||
"minimum": 1,
|
||
"maximum": 10000
|
||
},
|
||
"multiline": {
|
||
"description": "Strings: a multi-line text box.",
|
||
"x-orca-since": "1.4.246",
|
||
"type": "boolean"
|
||
},
|
||
"placeholder": {
|
||
"description": "Strings and numbers: hint shown while empty.",
|
||
"x-orca-since": "1.4.246",
|
||
"type": "string",
|
||
"maxLength": 120
|
||
}
|
||
},
|
||
"required": [
|
||
"key",
|
||
"title",
|
||
"type"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A setting shown under the plugin in Settings. Requires the `settings:own` capability, which is also how code reads it."
|
||
},
|
||
"StatusBarItemContribution": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 64,
|
||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
||
"description": "Item id, unique among this plugin's status bar items; `statusBar.update` names it.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"blocked-count"
|
||
]
|
||
},
|
||
"text": {
|
||
"description": "Short label shown in the status bar.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"3 blocked"
|
||
],
|
||
"type": "string",
|
||
"maxLength": 64
|
||
},
|
||
"icon": {
|
||
"description": "Icon shown before the text, from the panel icon set.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"bell"
|
||
],
|
||
"type": "string",
|
||
"enum": [
|
||
"activity",
|
||
"bar-chart-3",
|
||
"bell",
|
||
"blocks",
|
||
"book",
|
||
"bot",
|
||
"bug",
|
||
"calendar",
|
||
"cloud",
|
||
"code",
|
||
"database",
|
||
"file-text",
|
||
"flag",
|
||
"folder",
|
||
"gauge",
|
||
"globe",
|
||
"hammer",
|
||
"layers",
|
||
"lightbulb",
|
||
"package",
|
||
"plug",
|
||
"puzzle",
|
||
"rocket",
|
||
"star",
|
||
"terminal",
|
||
"wrench",
|
||
"zap",
|
||
"add",
|
||
"remove",
|
||
"delete",
|
||
"edit",
|
||
"refresh",
|
||
"search",
|
||
"settings",
|
||
"check",
|
||
"close",
|
||
"info",
|
||
"warning",
|
||
"error",
|
||
"open-external",
|
||
"copy",
|
||
"download",
|
||
"upload",
|
||
"play",
|
||
"pause",
|
||
"stop",
|
||
"more",
|
||
"expand",
|
||
"collapse",
|
||
"next",
|
||
"filter",
|
||
"branch",
|
||
"file",
|
||
"agent",
|
||
"link"
|
||
]
|
||
},
|
||
"tone": {
|
||
"description": "Colour of the item. Defaults to `neutral`.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"warning"
|
||
],
|
||
"type": "string",
|
||
"enum": [
|
||
"neutral",
|
||
"accent",
|
||
"success",
|
||
"warning",
|
||
"danger"
|
||
]
|
||
},
|
||
"tooltip": {
|
||
"description": "Shown on hover. Defaults to the plugin name.",
|
||
"x-orca-since": "1.4.248",
|
||
"type": "string",
|
||
"maxLength": 256
|
||
},
|
||
"command": {
|
||
"description": "Id of a command this plugin contributes in `contributes.commands`, run when the item is pressed.",
|
||
"x-orca-since": "1.4.248",
|
||
"examples": [
|
||
"guard.showLog"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 256,
|
||
"pattern": "^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$"
|
||
}
|
||
},
|
||
"required": [
|
||
"id"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "An item in the status bar. Requires the `declarative` profile; a `trusted-worker` can change it with `statusBar.update`."
|
||
},
|
||
"Capability": {
|
||
"type": "object",
|
||
"properties": {
|
||
"kind": {
|
||
"type": "string",
|
||
"enum": [
|
||
"workspace:read",
|
||
"workspace:write",
|
||
"agent:read",
|
||
"agent:launch",
|
||
"terminal:send",
|
||
"terminal:read",
|
||
"notifications:show",
|
||
"storage:own",
|
||
"secrets:own",
|
||
"settings:own",
|
||
"appearance:write",
|
||
"workspace:create",
|
||
"automation:read",
|
||
"automation:write",
|
||
"history:read"
|
||
],
|
||
"description": "Capability granted on user consent.",
|
||
"x-orca-since": "1.4.160",
|
||
"x-orca-enum-since": {
|
||
"workspace:read": "1.4.160",
|
||
"workspace:write": "1.4.248",
|
||
"agent:read": "1.4.245",
|
||
"agent:launch": "1.4.248",
|
||
"terminal:send": "1.4.160",
|
||
"terminal:read": "1.4.248",
|
||
"notifications:show": "1.4.160",
|
||
"storage:own": "1.4.245",
|
||
"secrets:own": "1.4.245",
|
||
"settings:own": "1.4.160",
|
||
"appearance:write": "1.4.249",
|
||
"workspace:create": "1.4.258",
|
||
"automation:read": "1.4.258",
|
||
"automation:write": "1.4.258",
|
||
"history:read": "1.4.258"
|
||
}
|
||
}
|
||
},
|
||
"required": [
|
||
"kind"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "A host API the plugin may call once the user consents."
|
||
},
|
||
"Screenshot": {
|
||
"type": "object",
|
||
"properties": {
|
||
"path": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^[^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ](?:[\\\\/][^<>:\"|?*\\x00-\\x1f\\\\/]*[^<>:\"|?*\\x00-\\x1f\\\\/. ])*$",
|
||
"description": "Screenshot, 16:10 recommended (up to 2560×1600). PNG, JPEG, WEBP, static, at least 1280×800, at most 1536 KB. Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"images/editor.png"
|
||
]
|
||
},
|
||
"alt": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 160,
|
||
"description": "What the image shows, for screen readers. Required.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"The Dusk theme on a terminal"
|
||
]
|
||
},
|
||
"caption": {
|
||
"description": "Short caption under the screenshot.",
|
||
"x-orca-since": "1.4.245",
|
||
"examples": [
|
||
"Gleam in the editor"
|
||
],
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 120
|
||
},
|
||
"theme": {
|
||
"description": "Show this screenshot only with a light or dark Orca theme.",
|
||
"x-orca-since": "1.4.245",
|
||
"type": "string",
|
||
"enum": [
|
||
"light",
|
||
"dark"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"path",
|
||
"alt"
|
||
],
|
||
"additionalProperties": false,
|
||
"description": "One screenshot of the plugin in use."
|
||
}
|
||
}
|
||
}
|