codemode

oc-codemode · package · G12-沙箱 · Layer 1

① 作用

Code Mode 沙箱:基于 schema 描述的受限代码执行(package.json:5 描述)。src/interpreter/runtime.ts:1-3 用 acorn 解析 + typescript transpileModule 在受限解释器中执行 JS 子集,工具调用经 src/tool-runtime.ts 注入 host tools 并受 ExecutionLimits(超时/最大工具调用数/输出字节,src/codemode.ts:10-17)约束。src/openapi/ 提供从 OpenAPI spec 生成工具的运行时(src/openapi/index.ts),src/stdlib/ 提供 JS 子集标准库(string/number/date/collections 等 14 模块)。

② 提供能力

· 受限 JS 解释器与 AST 执行(packages/codemode/src/interpreter/runtime.ts:1)
· 工具调用沙箱运行时(packages/codemode/src/tool-runtime.ts)
· 执行资源限制:timeout/maxToolCalls/maxOutputBytes(packages/codemode/src/codemode.ts:10-17)
· OpenAPI 工具生成器(packages/codemode/src/openapi/index.ts、spec.ts)
· JS 子集标准库(packages/codemode/src/stdlib/*)
· 工具 schema 编解码(packages/codemode/src/tool-schema.ts)

③ 依赖(上游)

无内部依赖(或为叶子/外部)

④ 被依赖(下游)

节点机制证据
opencodesemantic-depstage-01 opencode

⑤ 为什么存在(why)

设计意图(官方)

为 LLM 提供可审计、受限、确定性的代码执行环境(Effect-native),并支持基于 schema 描述的工具集,避免开放 shell 的安全风险(被 opencode 的 tool/code-mode.ts 桥接使用)。

改造关联

官方底座,未被本机装配层直接引用

⑥ 怎么用(how)

怎么用

典型场景与协作

模块内部结构 DAG(25 模块 · 63 边) 内部结构基线 v1.18.29,v1.18.35 包级结构未变(36 包集合逐一致)