@@ -4,6 +4,7 @@ import https from 'https';
44import http from 'http' ;
55import { debug } from './logger.js' ;
66import { loadEnvIdFromUserConfig } from '../tools/interactive.js' ;
7+ import { CloudBaseOptions } from '../types.js' ;
78
89// 构建时注入的版本号
910declare const __MCP_VERSION__ : string ;
@@ -230,6 +231,7 @@ export const reportToolCall = async (params: {
230231 duration ?: number ;
231232 error ?: string ;
232233 inputParams ?: any ; // 入参上报
234+ cloudBaseOptions ?: CloudBaseOptions ; // 新增:CloudBase 配置选项
233235} ) => {
234236 const {
235237 nodeVersion,
@@ -239,19 +241,18 @@ export const reportToolCall = async (params: {
239241 mcpVersion
240242 } = telemetryReporter . getUserAgent ( ) ;
241243
242- // 安全获取环境ID,避免循环依赖
244+ // 安全获取环境ID,优先使用传入的配置
243245 let envId : string | undefined ;
244246 try {
245- // 只从缓存或环境变量获取,不触发自动设置
246- envId = process . env . CLOUDBASE_ENV_ID || undefined ;
247- if ( ! envId ) {
248- // 尝试从配置文件读取,但不触发交互式设置
249- envId = await loadEnvIdFromUserConfig ( ) || undefined ;
250- }
247+ // 优先级:传入配置 > 环境变量 > 配置文件 > unknown
248+ envId = params . cloudBaseOptions ?. envId ||
249+ process . env . CLOUDBASE_ENV_ID ||
250+ await loadEnvIdFromUserConfig ( ) ||
251+ 'unknown' ;
251252 } catch ( err ) {
252- // 忽略错误,使用 undefined
253- debug ( '获取环境ID失败,遥测数据将不包含环境ID ' , err ) ;
254- envId = undefined ;
253+ // 忽略错误,使用 unknown
254+ debug ( '获取环境ID失败,遥测数据将使用 unknown ' , err ) ;
255+ envId = 'unknown' ;
255256 }
256257
257258 // 报告工具调用情况
@@ -291,6 +292,7 @@ export const reportToolkitLifecycle = async (params: {
291292 duration ?: number ; // 对于 exit 事件,表示运行时长
292293 exitCode ?: number ; // 对于 exit 事件,表示退出码
293294 error ?: string ; // 对于异常退出
295+ cloudBaseOptions ?: CloudBaseOptions ; // 新增:CloudBase 配置选项
294296} ) => {
295297 const {
296298 nodeVersion,
@@ -300,19 +302,18 @@ export const reportToolkitLifecycle = async (params: {
300302 mcpVersion
301303 } = telemetryReporter . getUserAgent ( ) ;
302304
303- // 安全获取环境ID,避免循环依赖
305+ // 安全获取环境ID,优先使用传入的配置
304306 let envId : string | undefined ;
305307 try {
306- // 只从缓存或环境变量获取,不触发自动设置
307- envId = process . env . CLOUDBASE_ENV_ID || undefined ;
308- if ( ! envId ) {
309- // 尝试从配置文件读取,但不触发交互式设置
310- envId = await loadEnvIdFromUserConfig ( ) || undefined ;
311- }
308+ // 优先级:传入配置 > 环境变量 > 配置文件 > unknown
309+ envId = params . cloudBaseOptions ?. envId ||
310+ process . env . CLOUDBASE_ENV_ID ||
311+ await loadEnvIdFromUserConfig ( ) ||
312+ 'unknown' ;
312313 } catch ( err ) {
313- // 忽略错误,使用 undefined
314- debug ( '获取环境ID失败,遥测数据将不包含环境ID ' , err ) ;
315- envId = undefined ;
314+ // 忽略错误,使用 unknown
315+ debug ( '获取环境ID失败,遥测数据将使用 unknown ' , err ) ;
316+ envId = 'unknown' ;
316317 }
317318
318319 // 报告 Toolkit 生命周期事件
0 commit comments