|
@@ -29,7 +29,8 @@ var acpManager *services.ACPManager
|
|
|
// runAsUser 指定拉起 kiro-cli 子进程时降权到的系统用户名,为空则不降权。
|
|
// runAsUser 指定拉起 kiro-cli 子进程时降权到的系统用户名,为空则不降权。
|
|
|
// home 指定 kiro-cli 子进程的 HOME 目录;为空时回退到降权用户的家目录,
|
|
// home 指定 kiro-cli 子进程的 HOME 目录;为空时回退到降权用户的家目录,
|
|
|
// 若仍无法推导则使用默认值。
|
|
// 若仍无法推导则使用默认值。
|
|
|
-func InitAIChat(serviceDir string, runAsUser string, home string) {
|
|
|
|
|
|
|
+// debugLog 为调试日志宏开关,开启时向 kiro-cli 子进程注入 KIRO_LOG_LEVEL=debug。
|
|
|
|
|
+func InitAIChat(serviceDir string, runAsUser string, home string, debugLog bool) {
|
|
|
home = strings.TrimSpace(home)
|
|
home = strings.TrimSpace(home)
|
|
|
|
|
|
|
|
// 未显式配置 HOME 时的回退:优先推导降权用户的家目录,否则用默认值。
|
|
// 未显式配置 HOME 时的回退:优先推导降权用户的家目录,否则用默认值。
|
|
@@ -45,10 +46,19 @@ func InitAIChat(serviceDir string, runAsUser string, home string) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 组装传给 kiro-cli 子进程的环境变量。
|
|
|
|
|
+ childEnv := []string{"HOME=" + home}
|
|
|
|
|
+ if debugLog {
|
|
|
|
|
+ // 宏开关:开启 kiro-cli debug 级日志。
|
|
|
|
|
+ // 日志输出路径(Linux,kiro-cli acp 默认):/tmp/kiro-log/logs/kiro-chat.log
|
|
|
|
|
+ childEnv = append(childEnv, "KIRO_LOG_LEVEL=debug")
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
zap.L().Info("[AIChat] 初始化 ACP",
|
|
zap.L().Info("[AIChat] 初始化 ACP",
|
|
|
- zap.String("runAsUser", runAsUser), zap.String("home", home))
|
|
|
|
|
|
|
+ zap.String("runAsUser", runAsUser), zap.String("home", home),
|
|
|
|
|
+ zap.Bool("debugLog", debugLog))
|
|
|
|
|
|
|
|
- acpManager = services.NewACPManager(serviceDir, []string{"HOME=" + home}, runAsUser)
|
|
|
|
|
|
|
+ acpManager = services.NewACPManager(serviceDir, childEnv, runAsUser)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// AiChat 发送消息(SSE 流式响应)
|
|
// AiChat 发送消息(SSE 流式响应)
|