Lenso

编写本地 Engine 扩展

从合仓后的 Rust 源码出发,选择、锁定、检查并运行一个进程式 Engine 扩展。

开发预览 · 尚未对应已发布框架版本

此页不会替代缺失的已发布版本。 查询确切版本

语言
zh-CN
内容修订
sha256:3b5d1b8830bb008bb86493c2d1c262018cf141299db64c4a853d96d2badc113b
English

这个源码本地练习给 Engine 增加一个文档处理器,不修改 Kernel,也不创建业务 Plugin。对应 Rust 源码在 LioRael/lenso 的 crates/lenso-engine 与 crates/lenso-cli;可运行样例在本站源码仓库的 examples/engine-extension/。旧的 Engine/CLI 拆分仓库不是新改动的起点。

这不是已安装包教程。请从所检查的同一 lenso 源码修订构建 CLI。系统中已有 的 lenso 可能提供不同命令;Engine 库已有发布版本,也不能证明此 CLI 与样例 已经以同一组合在 Registry 可用。

1. 构建匹配的 CLI

确保 Rust/Cargo 与 Node 在 PATH 中,然后在 LioRael/lenso 源码根目录运行:

cargo build --locked -p lenso-cli --bin lenso
LENSO_CLI_BIN="$(pwd)/target/debug/lenso"
"$LENSO_CLI_BIN" engine --help

保留绝对路径 LENSO_CLI_BIN。若没有 engine lock、inspect 或 run,记录 当前 CLI 修订并停止,不要换用别的发布版本掩盖差异。

2. 将样例复制到两个源码树之外

在另一个 LioRael/lenso-site 源码 Checkout 中,沿用同一个 Shell:

cd /path/to/lenso-site
ENGINE_PARENT="$(mktemp -d)"
cp -R examples/engine-extension "$ENGINE_PARENT/work"
cd "$ENGINE_PARENT/work"

样例包含 content/intro.md、engine.json、 tools/summary/engine-plugin.json 与 summary.mjs。工作流把输入文件和处理器 发现分开,并显式选择 example.summary.v1。Manifest 声明 node 可执行文件, 将脚本列为锁定制品。这个进程是具有普通本地进程权限的可信代码,不是运行 不可信第三方 Plugin 的沙箱。

3. 执行前检查计划

"$LENSO_CLI_BIN" engine lock --workflow engine.json
"$LENSO_CLI_BIN" engine inspect --workflow engine.json

锁定文件记录已选中的 Manifest、Node 可执行文件及脚本字节。检查结果只有一步 example.summary.v1/intro.md,此时脚本不会执行。tools/ 中存在但未被选择 的处理器不会自动启用。

4. 运行并检查结果

"$LENSO_CLI_BIN" engine run --workflow engine.json --output dist

JSON 结果中, outputs["example.summary.v1/intro.md"].summary.value.title 应为 "First document"。dist/current.json 指向已发布的 Generation。修改输入 文档后可再运行;输入内容不是被锁定的工具制品。

在复制出的工作目录中编辑 tools/summary/summary.mjs,只加注释也可以,再运行 一次 engine run。预期以 locked input changed 拒绝。检查新的处理器代码后 才重新运行 engine lock。锁定能发现已选中字节变化,但不能代替代码审查、 签名验证或授权。

若要自动复验成功与拒绝两条路径,在 Site 源码根目录运行下面的命令。脚本只会 操作并清理自己的临时副本:

LENSO_CLI_BIN=/absolute/path/to/lenso/target/debug/lenso \
  node scripts/smoke-engine-extension.mjs

下一层边界

真实 Engine 扩展的行为或未声明的工具链输入变化时,应更新处理器 Identity, 在负责的 Crate 添加聚焦测试,并运行相关 Engine 与 Runtime Conformance。 运行时生命周期和 Driver/Adapter 指南说明更底层的 Host 工作。 文档处理器的成功不等于新 Runtime Target 或 Adapter 已通过认证。

On this page