@wu529778790/open-im 1.7.1-beta.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config-web.js +2 -2
- package/dist/config.d.ts +7 -1
- package/dist/config.js +16 -7
- package/dist/shared/ai-task.js +2 -2
- package/package.json +1 -1
package/dist/config-web.js
CHANGED
|
@@ -241,7 +241,7 @@ function buildInitialPayload(file) {
|
|
|
241
241
|
: getClaudeConfigHome() + "/.claude/settings.json",
|
|
242
242
|
claudeAuthToken: claudeEnv.ANTHROPIC_AUTH_TOKEN ?? "",
|
|
243
243
|
claudeBaseUrl: claudeEnv.ANTHROPIC_BASE_URL ?? "",
|
|
244
|
-
claudeModel:
|
|
244
|
+
claudeModel: claudeEnv.ANTHROPIC_MODEL ?? "",
|
|
245
245
|
claudeProxy: file.tools?.claude?.proxy ?? "",
|
|
246
246
|
codexTimeoutMs: file.tools?.codex?.timeoutMs ?? 600000,
|
|
247
247
|
codebuddyTimeoutMs: file.tools?.codebuddy?.timeoutMs ?? 600000,
|
|
@@ -498,7 +498,7 @@ function toFileConfig(payload, existing) {
|
|
|
498
498
|
workDir: clean(payload.ai.claudeWorkDir) ?? process.cwd(),
|
|
499
499
|
timeoutMs: payload.ai.claudeTimeoutMs,
|
|
500
500
|
proxy: clean(payload.ai.claudeProxy),
|
|
501
|
-
// model is now saved to ~/.claude/settings.json as
|
|
501
|
+
// model is now saved to ~/.claude/settings.json as env var
|
|
502
502
|
},
|
|
503
503
|
codex: {
|
|
504
504
|
...existing.tools?.codex,
|
package/dist/config.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ export interface Config {
|
|
|
32
32
|
aiCommand: AiCommand;
|
|
33
33
|
codexCliPath: string;
|
|
34
34
|
codebuddyCliPath: string;
|
|
35
|
+
/** Claude 访问 API 的代理(如 http://127.0.0.1:7890) */
|
|
36
|
+
claudeProxy?: string;
|
|
35
37
|
/** Codex 访问 chatgpt.com 的代理(如 http://127.0.0.1:7890) */
|
|
36
38
|
codexProxy?: string;
|
|
37
39
|
claudeTimeoutMs: number;
|
|
@@ -133,10 +135,14 @@ export interface FilePlatformDingtalk {
|
|
|
133
135
|
cardTemplateId?: string;
|
|
134
136
|
}
|
|
135
137
|
export interface FileToolClaude {
|
|
138
|
+
cliPath?: string;
|
|
136
139
|
workDir?: string;
|
|
137
140
|
timeoutMs?: number;
|
|
138
|
-
|
|
141
|
+
skipPermissions?: boolean;
|
|
142
|
+
/** HTTP/HTTPS 代理,用于访问 Claude API(如 http://127.0.0.1:7890) */
|
|
139
143
|
proxy?: string;
|
|
144
|
+
/** Claude API 配置(优先级:环境变量 > tools.claude.env > ~/.claude/settings.json) */
|
|
145
|
+
env?: Record<string, string>;
|
|
140
146
|
}
|
|
141
147
|
export interface FileToolCodex {
|
|
142
148
|
cliPath?: string;
|
package/dist/config.js
CHANGED
|
@@ -55,7 +55,8 @@ function migrateToNewConfigFormat(raw) {
|
|
|
55
55
|
...tc,
|
|
56
56
|
workDir: tc.workDir ?? raw.claudeWorkDir ?? process.cwd(),
|
|
57
57
|
timeoutMs: tc.timeoutMs ?? raw.claudeTimeoutMs ?? 600000,
|
|
58
|
-
|
|
58
|
+
proxy: tc.proxy,
|
|
59
|
+
// model 现在通过 env 配置,不再在这里处理
|
|
59
60
|
},
|
|
60
61
|
codex: {
|
|
61
62
|
...tcod,
|
|
@@ -216,11 +217,16 @@ export function loadConfig() {
|
|
|
216
217
|
}
|
|
217
218
|
}
|
|
218
219
|
};
|
|
220
|
+
// 1. 全局 env(最低优先级之一)
|
|
219
221
|
if (file.env)
|
|
220
222
|
mergeEnv(file.env);
|
|
221
|
-
//
|
|
222
|
-
const
|
|
223
|
-
|
|
223
|
+
// 2. tools.claude.env(优先级高于 Claude settings)
|
|
224
|
+
const claudeToolEnv = file.tools?.claude?.env;
|
|
225
|
+
if (claudeToolEnv)
|
|
226
|
+
mergeEnv(claudeToolEnv);
|
|
227
|
+
// 3. 从 Claude Code 配置合并(最低优先级)
|
|
228
|
+
const claudeSettingsEnv = loadClaudeSettingsEnv();
|
|
229
|
+
mergeEnv(claudeSettingsEnv);
|
|
224
230
|
const fileTelegram = file.platforms?.telegram;
|
|
225
231
|
const fileFeishu = file.platforms?.feishu;
|
|
226
232
|
const fileQQ = file.platforms?.qq;
|
|
@@ -331,6 +337,7 @@ export function loadConfig() {
|
|
|
331
337
|
const tc = file.tools?.claude ?? {};
|
|
332
338
|
const tcod = file.tools?.codex ?? {};
|
|
333
339
|
const tcb = file.tools?.codebuddy ?? {};
|
|
340
|
+
const claudeProxy = process.env.CLAUDE_PROXY ?? tc.proxy;
|
|
334
341
|
const codexProxy = process.env.CODEX_PROXY ?? tcod.proxy;
|
|
335
342
|
let codexCliPath = process.env.CODEX_CLI_PATH ?? tcod.cliPath ?? 'codex';
|
|
336
343
|
if (process.platform === 'win32' && codexCliPath === 'codex') {
|
|
@@ -400,8 +407,9 @@ export function loadConfig() {
|
|
|
400
407
|
'方式 2:运行配置向导',
|
|
401
408
|
' open-im init',
|
|
402
409
|
'',
|
|
403
|
-
'方式 3
|
|
404
|
-
'
|
|
410
|
+
'方式 3:编辑配置文件',
|
|
411
|
+
' ~/.open-im/config.json: tools.claude.env.ANTHROPIC_MODEL = "..."',
|
|
412
|
+
' ~/.claude/settings.json: env.ANTHROPIC_MODEL = "..."(与 Claude Code 共用)',
|
|
405
413
|
'',
|
|
406
414
|
].join('\n');
|
|
407
415
|
throw new Error(errorMsg);
|
|
@@ -603,12 +611,13 @@ export function loadConfig() {
|
|
|
603
611
|
aiCommand,
|
|
604
612
|
codexCliPath,
|
|
605
613
|
codebuddyCliPath,
|
|
614
|
+
claudeProxy,
|
|
606
615
|
codexProxy,
|
|
607
616
|
claudeWorkDir,
|
|
608
617
|
claudeTimeoutMs,
|
|
609
618
|
codexTimeoutMs,
|
|
610
619
|
codebuddyTimeoutMs,
|
|
611
|
-
claudeModel: process.env.
|
|
620
|
+
claudeModel: process.env.ANTHROPIC_MODEL,
|
|
612
621
|
logDir,
|
|
613
622
|
logLevel,
|
|
614
623
|
platforms,
|
package/dist/shared/ai-task.js
CHANGED
|
@@ -228,8 +228,8 @@ export function runAITask(deps, ctx, prompt, toolAdapter, platformAdapter) {
|
|
|
228
228
|
timeoutMs,
|
|
229
229
|
model: sessionManager.getModel(ctx.userId, ctx.threadId) ?? config.claudeModel,
|
|
230
230
|
chatId: ctx.chatId,
|
|
231
|
-
//
|
|
232
|
-
|
|
231
|
+
// 默认跳过权限确认,保持全自动执行
|
|
232
|
+
skipPermissions: true,
|
|
233
233
|
...(aiCommand === 'codex' && config.codexProxy ? { proxy: config.codexProxy } : {}),
|
|
234
234
|
});
|
|
235
235
|
return activeHandle;
|