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_env | string | undefined | 否 | 库表 TEXT 字段中的 JSON 对象原文 |
env | Record<string, string | undefined> | 是 | 进程环境变量(如 process.env) |
shared / perTool | Record<string, unknown> | 是 | 全局与单工具内联环境对象 |
row | 工具目录行片段 | 是 | electron_enabled / tool_kind |
返回值
| 函数 | 类型 | 说明 |
|---|---|---|
inlineEnvObjectFromCatalogRowText | Record<string, unknown> | 合法 JSON 对象;否则 {} |
toolCatalogSharedInlineEnvFromEnv | Record<string, unknown> | 读 TOOL_CATALOG_SHARED_INLINE_ENV |
mergeToolCatalogInlineEnvLayers | Record<string, unknown> | 单工具键覆盖全局 |
catalogRowElectronEnabled | boolean | 是否桌面 IPC 执行 |
catalogRowVmToolKind | 'standard' | 'admin' | VM 沙箱种类 |
工作原理
- 解析:
inline_env须为 JSON 对象(非数组);解析失败返回{}。 - 全局 env:从
env[TOOL_CATALOG_SHARED_INLINE_ENV_VAR]读取并解析。 - 合并:
{ ...shared, ...perTool },同名键以后者为准。