Skip to content

PluginPermissionSandbox

Defined in: packages/schema/src/plugin.ts:61

Plugin 权限沙箱契约(由 runtime 实现)。

Plugin 通过 ctx.sandbox 访问自身权限声明,在调用受限 API 前主动断言: ctx.sandbox.assertNetworkAllowed(‘loading model manifest’); 若声明 network:none,断言立即抛 PluginPermissionError;否则 no-op。

实现见 @lokvis/runtime 的 PluginPermissionSandbox 类。schema 仅定义契约 (依赖反转:runtime 依赖 schema,而非反之)。

readonly pluginName: string

Defined in: packages/schema/src/plugin.ts:63

插件名(便于错误信息定位)


readonly declared: ReadonlySet<PluginPermission>

Defined in: packages/schema/src/plugin.ts:65

声明的权限集合(只读)

has(perm): boolean

Defined in: packages/schema/src/plugin.ts:67

是否声明了指定权限

PluginPermission

boolean


assertNetworkAllowed(reason): void

Defined in: packages/schema/src/plugin.ts:72

断言网络调用允许(声明 network:none 时抛错)。 Plugin 在调用 fetch / XHR 等前可主动调用。

string

void


assertFilesystemAllowed(scope, reason): void

Defined in: packages/schema/src/plugin.ts:77

断言文件系统访问允许(声明未含对应 filesystem:* 时抛错)。

"opfs" | "local"

‘opfs’(OPFS 根目录)或 ‘local’(任意本地文件系统)

string

void