Skip to content

toolCatalogInlineEnv

AI 工具目录 inline_env 解析、全局环境变量合并与行级标志。

函数签名

typescript
const TOOL_CATALOG_SHARED_INLINE_ENV_VAR = 'TOOL_CATALOG_SHARED_INLINE_ENV'

function inlineEnvObjectFromCatalogRowText(
  inline_env: string | undefined,
): Record<string, unknown>

function toolCatalogSharedInlineEnvFromEnv(
  env: Record<string, string | undefined>,
): Record<string, unknown>

function mergeToolCatalogInlineEnvLayers(
  shared: Record<string, unknown>,
  perTool: Record<string, unknown>,
): Record<string, unknown>

function catalogRowElectronEnabled(row: { electron_enabled?: boolean }): boolean

function catalogRowVmToolKind(row: { tool_kind?: string }): 'standard' | 'admin'

参数

参数名类型必填说明
inline_envstring | undefined库表 TEXT 字段中的 JSON 对象原文
envRecord<string, string | undefined>进程环境变量(如 process.env
shared / perToolRecord<string, unknown>全局与单工具内联环境对象
row工具目录行片段electron_enabled / tool_kind

返回值

函数类型说明
inlineEnvObjectFromCatalogRowTextRecord<string, unknown>合法 JSON 对象;否则 {}
toolCatalogSharedInlineEnvFromEnvRecord<string, unknown>TOOL_CATALOG_SHARED_INLINE_ENV
mergeToolCatalogInlineEnvLayersRecord<string, unknown>单工具键覆盖全局
catalogRowElectronEnabledboolean是否桌面 IPC 执行
catalogRowVmToolKind'standard' | 'admin'VM 沙箱种类

工作原理

  1. 解析inline_env 须为 JSON 对象(非数组);解析失败返回 {}
  2. 全局 env:从 env[TOOL_CATALOG_SHARED_INLINE_ENV_VAR] 读取并解析。
  3. 合并{ ...shared, ...perTool },同名键以后者为准。