# script_engine 脚本引擎模块(W-06) 脚本引擎:脚本表 CRUD + `execute_script` / `validate_script` 接口。独立模块,无业务依赖,可与 world / scene / entity 链路并行开发。 ## 功能 - **script 表 CRUD**:新增 / 编辑 / 删除 / 详情 / 分页列表 - **execute_script**:按脚本 id 取库内脚本(或直传 content),校验通过后执行 - **validate_script**:校验脚本内容(语法 + 受限语法 + 调用白名单),不落库不执行 - **编码字典**:`script_type`(0=Python / 1=JavaScript / 2=规则表达式)、`script_status`(0=停用 / 1=启用)经 init/data.json(Format B appcodes)幂等落库 ## 数据表 - `script`:id / script_name / script_type / content / description / status / created_at / updated_at ## 接口约定 - REST 统一前缀:`/api/*`(宿主自动路由 `/script_engine/api/xxx.dspy`) - 错误结构:`{code, message, field, detail}`(code=0 成功,400 参数错误,404 不存在,500 内部错误,501 类型暂不支持) - 分页:`{list, total}` - 非法输入 100% 拦截,不落库、不执行 ## 集成 1. `pip install .` 2. 宿主应用 `from script_engine.init import load_script_engine` → `init()` 内调用 `load_script_engine()` 3. `scripts/load_path.py` 登记 RBAC 路径;宿主 `load_path.py` 兜底 4. `build.sh` 生成 DDL / CRUD UI / 链接 wwwroot ## 接口清单(wwwroot/api/) | 路径 | 说明 | |---|---| | `/script_engine/api/script_create.dspy` | 新增脚本 | | `/script_engine/api/script_update.dspy` | 编辑脚本 | | `/script_engine/api/script_delete.dspy` | 删除脚本 | | `/script_engine/api/script_get.dspy` | 脚本详情 | | `/script_engine/api/script_list.dspy` | 分页列表({list,total}) | | `/script_engine/api/script_execute.dspy` | 执行脚本 | | `/script_engine/api/script_validate.dspy` | 校验脚本 |