用途:iii-exec 用于在 iii 引擎启动阶段运行一串顺序 shell 命令,并让最后一条命令作为长驻进程与引擎同生命周期。适合由引擎统一管理某个独立长驻应用或守护进程的启动、监督与关闭,也适合在启动长驻服务前执行必须按序成功的准备步骤(如安装、构建、再启动服务)。
主要能力:配置 exec: 数组,每个条目作为独立子进程启动,必须退出码为 0 才会执行下一条;最后一条被保持运行。可选 watch: glob 列表,在匹配文件变化时重启整条流水线。该 worker 不暴露任何可调用函数或触发器类型,接口完全是声明式的,运行时没有可供智能体调用的入口。
使用方式:在 worker 配置中声明 exec:(必填)与 watch:(可选)。示例:exec 依次为 cd frontend && npm install、cd frontend && npm run build、bun run --enable-source-maps index-production.js;前两条按序执行且必须退出 0,第三条在 worker 生命周期内持续运行。若准备步骤失败,流水线停止,引擎会暴露该失败。
限制:它不是运行时命令执行器,流水线仅在引擎启动时运行,没有“立即运行某命令”的函数;也不是调度器,周期性任务应使用 iii-cron 触发器。条目按顺序而非并行执行,且不共享工作目录或环境,依赖步骤需在同一 entry 内用 && 串联。任一中间命令非零退出会终止流水线,长驻命令不会启动。watch 的匹配仅依据根目录加文件扩展名,忽略文件名部分,例如 src//*.test.ts 会匹配 src/ 下所有 .ts 文件而非仅测试文件;无扩展名文件永不匹配; 表示递归深度,config/.json 只监听顶层,config/**/.json 监听任意深度。