import type { CodeSandbox } from '../sandbox/code-sandbox.js'; import { type ScriptPackageRunner, type ScriptRunRequest, type ScriptRunResult } from './types.js'; /** 沙箱供给:同步实例或异步工厂(如按会话惰性创建沙箱) */ export type SandboxProvider = CodeSandbox | (() => Promise); export declare class SkillScriptPackageRunner implements ScriptPackageRunner { private readonly skillsRoot; private readonly sandboxProvider; private readonly fallback; /** * @param skillsRoot 运行时 skill 物化根目录(绝对路径),如 /data/skills * @param sandboxProvider 沙箱(data/sandboxes 下) * @param fallback 非整包请求时回退的 runner(默认逻辑) */ constructor(skillsRoot: string, sandboxProvider: SandboxProvider, fallback: ScriptPackageRunner); private resolveSandbox; run(req: ScriptRunRequest): Promise; /** * 解析 skill 整包源,优先级:DB bundleFiles > 磁盘 bundleDir > skillsRoot。 * - bundleFiles 非空:在 os.tmpdir() 下按 relPath 重建 bundleDir 结构(relPath * 相对 bundleDir),skillPath 相对该临时目录解析;返回 cleanup 以便执行后清理。 * - bundleDir 非空:skillPath 相对 bundleDir 解析(flow 自带 scripts 场景)。 * - 兜底:skillPath 相对 skillsRoot 解析(data/skills 全局物化)。 * 任一来源被选中但包源目录不存在时,抛出包含来源与 skillPath 的可诊断错误, * 不静默回退到其他来源(避免拼出错误路径后报裸 ENOENT)。 */ private resolvePackageSource; private runSkillPackage; } //# sourceMappingURL=skill-script-runner.d.ts.map