@wu529778790/open-im 1.7.1-beta.9 → 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 +14 -6
- 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') {
|
|
@@ -401,7 +408,7 @@ export function loadConfig() {
|
|
|
401
408
|
' open-im init',
|
|
402
409
|
'',
|
|
403
410
|
'方式 3:编辑配置文件',
|
|
404
|
-
' ~/.open-im/config.json: tools.claude.
|
|
411
|
+
' ~/.open-im/config.json: tools.claude.env.ANTHROPIC_MODEL = "..."',
|
|
405
412
|
' ~/.claude/settings.json: env.ANTHROPIC_MODEL = "..."(与 Claude Code 共用)',
|
|
406
413
|
'',
|
|
407
414
|
].join('\n');
|
|
@@ -604,12 +611,13 @@ export function loadConfig() {
|
|
|
604
611
|
aiCommand,
|
|
605
612
|
codexCliPath,
|
|
606
613
|
codebuddyCliPath,
|
|
614
|
+
claudeProxy,
|
|
607
615
|
codexProxy,
|
|
608
616
|
claudeWorkDir,
|
|
609
617
|
claudeTimeoutMs,
|
|
610
618
|
codexTimeoutMs,
|
|
611
619
|
codebuddyTimeoutMs,
|
|
612
|
-
claudeModel: process.env.ANTHROPIC_MODEL
|
|
620
|
+
claudeModel: process.env.ANTHROPIC_MODEL,
|
|
613
621
|
logDir,
|
|
614
622
|
logLevel,
|
|
615
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;
|