核心概念
ReliaForge 将一组精简的契约明确表达出来,让插件工作区即使持续增长也依然便于检查。
导入前先验证清单
每个插件都从 manifest.json 开始。在导入任何插件入口点之前,ReliaForge 会验证所有身份、 API 版本、依赖、版本范围、循环依赖和能力所有者。一个无效分支可以被隔离,同时不隐藏其他 相互独立的有效插件。
生命周期状态与健康状态不同
生命周期状态说明运行时已经执行了什么:
text
discover -> validate -> initialize -> start -> stop健康状态说明已加载插件当前是健康、降级、出错还是已停止。插件不会把生命周期状态改成 degraded;这种状况属于它无副作用的健康快照。
依赖能力,而非导入实现
提供者注册诸如 demo.greeting 的点分能力名。消费者声明对提供者的依赖,并通过消费者自己 拥有的运行时协议解析服务。插件不会导入其他插件的内部模块。
这样可以保留三个重要性质:
- 清单依赖图始终是权威来源;
- 消费者依赖的是行为,而非具体类;
- 提供者清理资源时,只会移除它自己拥有的资源。
设置只有一个来源
每个插件都可以声明一个 Python PluginSettings 子类。运行时验证环境输入,注入唯一的设置 实例,并生成控制台所展示的公开 JSON Schema。插件目录响应和错误消息都不会包含敏感值。
操作由服务端决定
插件目录记录包含 available_actions。运行时依据真实实例、状态、依赖和活跃依赖者生成该列表。 客户端只负责渲染,既不推断生命周期转换,也不把它当作授权依据。
在线演示为每个插件提供空列表,因此无需维护第二套界面策略,也不会出现启动、停止或重启控件。
进程内扩展,而非沙箱
插件是同一进程内受信任的 Python 扩展。ReliaForge 提供所有权、验证、超时和清理边界, 但它不是用于运行不受信任代码的安全沙箱。
