PluginContext
Defined in: packages/schema/src/plugin.ts:147
Plugin 上下文(Plugin 能访问的全部 API)
Plugin 只能看到受限的 Runtime API,看不到 React/Redux/Cloud。 通过 runtime 读写 Asset,通过 registerCapability 注册能力实现。
注意:Plugin SDK 已定位为浏览器内嵌入的兼容层(见 docs/AI生态冲击调整方案.md §4)。若目标是让 AI 客户端调用本地能力, 推荐使用 @lokvis/mcp-server(MCP 标准),而非 Plugin SDK。
Properties
Section titled “Properties”runtime
Section titled “runtime”runtime:
object
Defined in: packages/schema/src/plugin.ts:149
Runtime 受限 API
getAsset
Section titled “getAsset”getAsset: (
id) =>Promise<Asset>
获取资产元数据
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<Asset>
importAsset
Section titled “importAsset”importAsset: (
file) =>Promise<string>
导入文件为资产,返回 AssetId
Parameters
Section titled “Parameters”File | Blob
Returns
Section titled “Returns”Promise<string>
getAssetBlob
Section titled “getAssetBlob”getAssetBlob: (
asset) =>Promise<Blob>
读取资产的实际 Blob 数据(用于处理)
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Promise<Blob>
createAsset
Section titled “createAsset”createAsset: (
blob,metadata,type) =>Promise<Asset>
从 Blob 创建新资产(能力产出物)
Parameters
Section titled “Parameters”Blob
metadata
Section titled “metadata”Returns
Section titled “Returns”Promise<Asset>
listCapabilities
Section titled “listCapabilities”listCapabilities: () =>
Promise<Capability[]>
列出所有已注册能力
Returns
Section titled “Returns”Promise<Capability[]>
eventBus
Section titled “eventBus”eventBus:
EventBus
Defined in: packages/schema/src/plugin.ts:166
事件总线
sandbox
Section titled “sandbox”
readonlysandbox:PluginPermissionSandbox
Defined in: packages/schema/src/plugin.ts:201
权限沙箱(W18.6)。
Plugin 据此在调用受限 API 前主动断言: ctx.sandbox.assertNetworkAllowed(‘loading manifest’);
Runtime 在 installPlugin() 期间应用 network guard (monkey-patch fetch/XHR/WebSocket/EventSource),声明 network:none 时这些 API 调用立即抛 NetworkGuardError。 capability execute() 路径不自动应用守卫 —— plugin 应主动自检。
Methods
Section titled “Methods”registerCapability()
Section titled “registerCapability()”registerCapability(
impl):void
Defined in: packages/schema/src/plugin.ts:168
注册能力实现(变换:Asset→Asset)
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
registerMetadataReader()
Section titled “registerMetadataReader()”registerMetadataReader<
T>(name,reader):void
Defined in: packages/schema/src/plugin.ts:179
注册元数据读取函数(查询:Asset→T)。
用于非变换类能力(如 EXIF 读取)。Runtime 持有 reader 引用, UI 通过 runtime.readAssetExif(id) 间接调用,不直接依赖 Plugin / Engine。 同名 reader 重复注册时覆盖前者(支持热更新)。
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”string
读取器名称,约定与能力名对齐(如 ‘image.read-exif’)
reader
Section titled “reader”读取函数
Returns
Section titled “Returns”void
registerPanel()
Section titled “registerPanel()”registerPanel(
panel):void
Defined in: packages/schema/src/plugin.ts:189
注册 UI Panel(UI 扩展点)。
Runtime 持有 PanelDefinition 并发射 panel:registered 事件;
UI 层(ui-react)订阅事件并通过 runtime.listPanels() 消费,
按 location 挂载到 Workspace 对应区域。component 字段是渲染器
标识,由 UI 层的 panel renderer 注册表解析(runtime 不持有
React 组件,依赖反转)。同 id 重复注册覆盖前者(热更新语义)。
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
log(
level,message):void
Defined in: packages/schema/src/plugin.ts:203
日志
Parameters
Section titled “Parameters”"info" | "warn" | "error"
message
Section titled “message”string
Returns
Section titled “Returns”void