Plugin development
Plugins are local, owner-reviewed extensions built against a versioned wire contract. They cannot inject arbitrary browser code; UI contributions are portable declarations rendered by Jiandu.
The canonical Plugin API v1 schemas, restricted runtime declarations, TypeScript authoring SDK, validators, harness, and examples live in plugin-contract/.
Before authoring:
- Read the versioned contract and capability model.
- Start from an included example instead of inventing wire fields.
- Declare the smallest required capabilities.
- Validate with the authoring harness.
- Exercise timeouts, malformed input, and unavailable dependencies.
- Document the operator-visible behavior and safe disable path.
The runtime is disabled by default in the household profile. A plugin package is not trusted merely because it passes schema validation; operators still need reviewable provenance and an explicit enablement decision.