OpenSite/Reference/Features/Plugins: Difference between revisions
BathAfrica (talk | contribs) Publish Cursor documentation reconciled with OpenSite source 77c3fee; tests not rerun |
BathAfrica (talk | contribs) Link adjacent OpenSite reference pages in reading order |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__ | |||
{{OpenSite scope}} | |||
{{BathAfrica Feature | {{BathAfrica Feature | ||
|id=extensions.host | |id=extensions.host | ||
|summary=Discover a native, Python, or mixed provider and run its command through the installed SDK. | |summary=Discover a native, Python, or mixed provider and run its command through the installed SDK. | ||
| Line 13: | Line 14: | ||
}} | }} | ||
== Try this workflow == | |||
[[OpenSite/Guides/Build a native plugin|Build a native plugin]] — a worked lesson with expected results. | |||
== Documentation basis == | == Documentation basis == | ||
| Line 23: | Line 27: | ||
[[OpenSite|OpenSite overview]] · [[OpenSite/Reference|Reference]] · [[OpenSite/Guides|Guides]] | [[OpenSite|OpenSite overview]] · [[OpenSite/Reference|Reference]] · [[OpenSite/Guides|Guides]] | ||
[[Category:OpenSite documentation]] | [[Category:OpenSite documentation]] | ||
<div class="os-page-nav">{{Docnav|OpenSite/Reference/Features/Message catalog|OpenSite/Reference/Features/Python workbench|OpenSite/Guides|All guides}}</div> | |||
Latest revision as of 14:15, 29 October 2026
Discover a native, Python, or mixed provider and run its command through the installed SDK.
- Stable identifier
extensions.host
Status reported by source
Implemented in the reviewed development source. Historical test evidence is recorded by the repository; no test rerun or product release is claimed by this publication.
Units
A contributed calculation stores canonical SI quantities. The sample span doubles a 2 m length to 4 m.
Behavior
Discovery reads opensite-plugin.json in each child directory and does not load the implementation. The first command loads that provider and its required dependencies. Several providers stay loaded. A workbench stores command ids. A workspace stores commands from more than one provider and does not load those providers until a command runs. Recompute does not consult either id. Python providers load from their declared path under a unique module name. opensite-python --plugins and --command provider/name print the result value.
Errors
A missing required id returns command_unavailable. A cycle or a repeated plugin id leaves the previous catalog in place. An incompatible sdk_api returns unsupported_version before the library is mapped. An unterminated negotiate result returns unsupported_version after mapping and does not start the provider. A failed start removes that provider's commands, settings, and catalog keys. Production denies document.edit with account_unavailable. Calls after shutdown return command_unavailable. Another thread returns reentrant_call.
Limitations
A headless workbench descriptor is a command collection, not a graphical working environment. Object types, groups, templates and services are supplied by the extension-platform layer. Desktop GUI extensions use a separate in-tree GUI contract. Native libraries remain mapped until process exit; providers are trusted code. SDK/toolchain identity must match; the C++ API is not universally ABI-stable. Independent GUI SDK distribution remains pending.
Available hosts
Headless Windows console/Python SDK host, and desktop workflows using the common plugin platform. Graphical extensions additionally require the GUI SDK contract.
Licensing and access
In-process plugins are trusted. An entitlement check is not a sandbox. tool.span needs document.edit. The production host returns account_unavailable for that capability. The development host installs an allow-all policy, which is not production enforcement.
Verification evidence
Repository evidence references (not rerun for this publication): CTest sdk.relocated on Windows Debug and Release. ADR-0004, ADR-0022, and ADR-0027. docs/verification/Phase-7-Acceptance.md.
Try this workflow
Build a native plugin — a worked lesson with expected results.
Documentation basis
Source-reviewed against development commit 77c3fee13944bcc4b5d487c77eb1f82fbe4c6ea7, branch feature/phase-13c-properties-python-expressions. This review inspected the implementation and repository evidence; it did not run the Windows application or repeat CTest.
src/plugins/plugin_host.cppsrc/application/extension.cppdocs/development/Plugin-SDK.md