mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-05 22:32:12 +00:00
1.8 KiB
1.8 KiB
Plugin SDK Boundary
This directory is the public contract between plugins and core. Changes here can affect bundled plugins and third-party plugins.
Source Of Truth
- Docs:
docs/plugins/sdk-overview.mddocs/plugins/sdk-entrypoints.mddocs/plugins/sdk-runtime.mddocs/plugins/sdk-migration.mddocs/plugins/architecture.md
- Definition files:
package.jsonscripts/lib/plugin-sdk-entrypoints.jsonsrc/plugin-sdk/entrypoints.tssrc/plugin-sdk/api-baseline.tssrc/plugin-sdk/plugin-entry.tssrc/plugin-sdk/core.tssrc/plugin-sdk/provider-entry.ts
Boundary Rules
- Prefer narrow, purpose-built subpaths over broad convenience re-exports.
- Do not expose implementation convenience from
src/channels/**,src/agents/**,src/plugins/**, or other internals unless you are intentionally promoting a supported public contract. - Prefer
api.runtimeor a focused SDK facade over telling extensions to reach into host internals directly. - When core or tests need bundled plugin helpers, expose them through
the plugin package
api.tsand a matchingsrc/plugin-sdk/<id>.tsfacade instead of importing plugin-privatesrc/**files oronboard.jsdirectly.
Expanding The Boundary
- Additive, backwards-compatible changes are the default.
- When adding or changing a public subpath, keep these aligned:
- docs in
docs/plugins/* scripts/lib/plugin-sdk-entrypoints.jsonsrc/plugin-sdk/entrypoints.tspackage.jsonexports- API baseline and export checks
- docs in
- If the seam is for bundled-provider onboarding/config helpers, update the generated plugin facades instead of teaching core tests or commands to reach into private extension files.
- Breaking removals or renames are major-version work, not drive-by cleanup.