@jesonliu/lark-claudecode-bridge 1.3.0 → 1.3.1

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.
@@ -85,6 +85,7 @@ export async function runTask(prompt, opts, cb) {
85
85
  ...(opts.model ? { model: opts.model } : {}),
86
86
  ...(opts.mcpServers ? { mcpServers: opts.mcpServers } : {}),
87
87
  ...(opts.plugins ? { plugins: opts.plugins.map((p) => ({ type: 'local', path: p.path })) } : {}),
88
+ ...(opts.extraArgs && Object.keys(opts.extraArgs).length ? { extraArgs: opts.extraArgs } : {}),
88
89
  },
89
90
  });
90
91
  let finalText = '';
@@ -130,9 +131,17 @@ export async function runTask(prompt, opts, cb) {
130
131
  switch (message.type) {
131
132
  case 'system': {
132
133
  if (message.subtype === 'init') {
134
+ // init 即携带 session_id:全新会话在首轮 turn 结束前被 /stop 中止时不会有 result 消息,
135
+ // 不在此捕获则 sessionId 恒为空串 → catch 挂不上 err.sessionId → 归档 no-op,
136
+ // 会话指针停留 null,用户随后「继续」会开全新会话丢失上下文(resume 场景两值等价)
137
+ if (typeof message.session_id === 'string' && message.session_id)
138
+ sessionId = message.session_id;
133
139
  inventory = {
134
140
  model: message.model,
135
141
  claudeCodeVersion: message.claude_code_version,
142
+ // 顶层已注册工具清单(dynamic tool loading 下核心工具在顶层、其余经 ToolSearch 按需加载,
143
+ // ToolSearch 索引不到顶层工具):/status 展示与「工具不存在」误判诊断的数据源
144
+ tools: message.tools ?? [],
136
145
  skills: message.skills ?? [],
137
146
  slashCommands: message.slash_commands ?? [],
138
147
  plugins: (message.plugins ?? []).map((p) => ({ name: p.name, path: p.path, version: p.version })),
@@ -1 +1 @@
1
- {"version":3,"file":"claude-executor.js","sourceRoot":"","sources":["../../src/executor/claude-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-executor.js","sourceRoot":"","sources":["../../src/executor/claude-executor.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -35,7 +35,7 @@ export declare function createBridge(config: BridgeConfig, app: FeishuAppConfig,
35
35
  deps: BridgeDeps, opts?: {
36
36
  confirmTimeoutMs?: number;
37
37
  cardSendTimeoutMs?: number;
38
- reloadConfig?: () => void;
38
+ reloadConfig?: () => string | void | null;
39
39
  }): GatewayHandlers & {
40
40
  /** 测试/诊断入口:返回通道当前挂起的内嵌 plan / question requestId */
41
41
  _pendingAsk(channelKey: string): {
@@ -51,7 +51,8 @@ deps: BridgeDeps, opts?: {
51
51
  * 原地 mutate 下一条消息即生效(env 变更不再要求重启)。
52
52
  * 不热应用(且不纳入 sameApps 比较):FeishuGateway 与 Semaphore 均为启动时构造,
53
53
  * apps 凭证 / concurrency 变更无法热生效,打警告提示重启,避免「以为已生效」的坑。
54
- * 读失败(文件被写坏的中间态等)沿用旧值不崩。
54
+ * 读失败(文件被写坏的中间态等)沿用旧值不崩,并返回用户可读的错误消息(成功返回 null)——
55
+ * 调用方(processMessage)据此在聊天里显式提示「本次沿用旧配置」,不再静默。
55
56
  */
56
- export declare function createConfigReloader(config: BridgeConfig, configPath: string): () => void;
57
+ export declare function createConfigReloader(config: BridgeConfig, configPath: string): () => string | null;
57
58
  export declare function startBridge(configPath?: string): Promise<void>;
package/dist/index.js CHANGED
@@ -21,12 +21,13 @@ import { PermissionGate, DEFAULT_ALLOW_TOOLS_LIST, DEFAULT_DANGEROUS_COMMANDS, D
21
21
  import { discoverPlugins, resolvePluginPaths } from './executor/plugin-discovery.js';
22
22
  import { createGatewaySender, createNotifyServer, NOTIFY_SERVER_NAME } from './executor/notify-server.js';
23
23
  import { BRIDGE_MCP_JSON, readMcpServersFromJsonFile } from './web/skills-mcp-api.js';
24
- import { FEISHU_NOTIFY_SOP_PROMPT } from './notify-sop.js';
24
+ import { FEISHU_NOTIFY_SOP_PROMPT, TOOL_HINT_PROMPT } from './notify-sop.js';
25
+ import { ensureProfileSettingsFile, resolveAppProfile, resolveAppProfileModel } from './app-profile.js';
25
26
  import { isImageFile } from './util/file-types.js';
26
27
  import { FileTracker } from './util/file-tracker.js';
27
28
  import { SessionStore, migrateLegacySessions } from './session/session-store.js';
28
29
  import { handleCommand, applyWorkspaceSwitch, workspaceListMarkdown } from './session/commands.js';
29
- import { rewriteByTrigger } from './session/triggers.js';
30
+ import { isLocalCommandRewrite, matchTrigger, rewriteByTrigger } from './session/triggers.js';
30
31
  import { Semaphore, channelKey } from './session/channel.js';
31
32
  import { TranscriptWriter, sweepTranscripts } from './transcript/transcript-writer.js';
32
33
  import { nowBeijingISO } from './util/beijing-time.js';
@@ -127,6 +128,16 @@ deps, opts = {}) {
127
128
  // 当前存活 query 的 MCP 状态拉取句柄(executor onQuery 注入、任务 finally 删除):
128
129
  // /mcp 命令在任务运行中经此实时拉取;句柄随 query 结束失效,调用侧须 catch
129
130
  const activeQueries = new Map();
131
+ // 触发词两段式(ask_detail)等待补充的挂起项:channelKey → 命中规则与原始消息。
132
+ // 命中「需补充」规则时先追问不入队;同用户下一条非 / 消息视作补充内容,与 rewrite 合并后入队。
133
+ // 超时(SUPPLEMENT_WAIT_MS)自动失效走原流程;任意本地命令(cmd.handled)即取消等待——
134
+ // /stop /new 天然是逃生口,与「本地命令永远优先」原则一致
135
+ const supplementPending = new Map();
136
+ /** 补充等待窗口:超时后挂起项失效,下一条消息照常走原流程(不提示、静默过期) */
137
+ const SUPPLEMENT_WAIT_MS = 10 * 60_000;
138
+ // 配置热重载失败提示的去重标记:失败状态只在「成功 → 失败」跳变时向当前聊天提示一次,
139
+ // 避免配置持续损坏期间每条消息都刷屏;恢复成功后静默复位(不发恢复消息)
140
+ let reloadFailNotified = false;
130
141
  function workspacePath(name) {
131
142
  return config.workspaces.find((w) => w.name === name)?.path ?? config.workspaces[0].path;
132
143
  }
@@ -244,8 +255,21 @@ deps, opts = {}) {
244
255
  // 每条消息先重读 access.json:lcb pair / 运行终端等独立进程批准写盘后,
245
256
  // 长存的内存实例不 reload 会查到旧白名单 → 反复发配对码且整盘覆写抹掉新用户(死循环)
246
257
  deps.access.reload();
247
- // 配置热重载:lcb ws add/remove 独立进程写盘后,本实例下一条消息即读到新工作区
248
- opts.reloadConfig?.();
258
+ // 配置热重载:lcb ws add/remove 独立进程写盘后,本实例下一条消息即读到新工作区。
259
+ // 读取失败沿用旧值继续跑(reloader 容错语义),但必须在用户侧显式提示——静默失败会让
260
+ // 「下一条消息热生效」变成「永不生效直到重启」且无从诊断。仅状态跳变时提示一次防刷屏
261
+ const reloadErr = opts.reloadConfig?.() ?? null;
262
+ if (reloadErr) {
263
+ console.warn('[配置热重载] 读取失败,沿用旧配置:', reloadErr);
264
+ if (!reloadFailNotified) {
265
+ reloadFailNotified = true;
266
+ await deps.gateway.sendTextTo(msg.chatId, `⚠️ 配置热重载失败,本次沿用上次配置(修复 config.yaml 后下一条消息自动恢复):${reloadErr}`)
267
+ .catch(() => { });
268
+ }
269
+ }
270
+ else {
271
+ reloadFailNotified = false;
272
+ }
249
273
  if (!deps.access.isAllowed(msg.userId)) {
250
274
  if (app.role === 'deputy') {
251
275
  // 分身机器人艾特即用(用户决策):不走配对——首条消息自动补录 member(access.json
@@ -286,15 +310,35 @@ deps, opts = {}) {
286
310
  const currentWorkspace = app.role === 'deputy'
287
311
  ? app.allowedWorkspaces[0]
288
312
  : (st?.workspaceName || app.defaultWorkspace || config.defaults.workspace);
289
- // 2.5 触发词映射:必须放在本地命令之前——斜杠触发词(如 /produce)会被 handleCommand
290
- // 的未知命令分支吞掉;rewriteByTrigger 对本地命令(/stop 等)直接放行,不会被劫持
291
- const triggered = rewriteByTrigger(msg.text, app.triggers);
292
- if (triggered !== null) {
293
- await deps.gateway.sendTextTo(msg.chatId, '⚡ 已按触发词转入对应技能流程');
294
- enqueue(key, msg, triggered, currentWorkspace);
313
+ // 2.4 触发词两段式补充(ask_detail):上一条消息命中「需补充」规则且正在等待时,本条
314
+ // 非 / 消息(同一用户)视作补充内容——与原始消息拼接后对该规则重新改写:补充内容即
315
+ // {args}(无占位符时按既有规则自动追加),零新合并逻辑。其他用户消息 / 斜杠消息 /
316
+ // 超时挂起均不在此列,照常走原流程(挂起过期在下方静默清除)
317
+ const pendingSup = supplementPending.get(key);
318
+ if (pendingSup && Date.now() - pendingSup.at > SUPPLEMENT_WAIT_MS)
319
+ supplementPending.delete(key);
320
+ const trimmedText = msg.text.trim();
321
+ if (pendingSup && !trimmedText.startsWith('/') && msg.userId === pendingSup.userId) {
322
+ supplementPending.delete(key);
323
+ const combined = `${pendingSup.originalText} ${trimmedText}`;
324
+ // ?? combined 兜底理论不可达:rule 本身按 combined 仍会命中(首 token/关键词都在)。
325
+ // 关键词形态的改写不含补充内容(matchTrigger 仅斜杠形态自动追加 args)——补充是本次
326
+ // 合并的核心增量,改写结果里没有就显式拼到末尾,绝不把用户刚给的链接/要求吞掉
327
+ const finalPrompt = rewriteByTrigger(combined, [pendingSup.rule]) ?? combined;
328
+ const merged = finalPrompt.includes(trimmedText) ? finalPrompt : `${finalPrompt} ${trimmedText}`;
329
+ await deps.gateway.sendTextTo(msg.chatId, '✅ 已收到补充,任务开始');
330
+ enqueue(key, msg, merged, currentWorkspace);
295
331
  return;
296
332
  }
297
- const cmd = await handleCommand(msg.text, {
333
+ // 2.5 触发词映射:改写结果统一回灌 handleCommand 走同一条优先级链——rewrite 可指向
334
+ // bridge 本地命令(飞书菜单「新会话」→ match=新会话, rewrite=/new),此时本地执行而非
335
+ // 当任务透传(Claude Code 侧没有该命令,headless 只会报未知命令错误);改写成技能/插件
336
+ // 命令或普通 prompt 时 handleCommand 不识别 → taskText 原样带出,文末照旧入队。
337
+ // 本地命令原文(/stop 等)matchTrigger 直接放行返回 null,不会被劫持
338
+ const hit = matchTrigger(msg.text, app.triggers);
339
+ const triggered = hit?.rewritten ?? null;
340
+ const effectiveText = triggered ?? msg.text;
341
+ const cmd = await handleCommand(effectiveText, {
298
342
  channelKey: key,
299
343
  store: deps.store,
300
344
  config,
@@ -333,6 +377,9 @@ deps, opts = {}) {
333
377
  },
334
378
  });
335
379
  if (cmd.handled) {
380
+ // 本地命令处理即取消两段式补充等待(/stop /new 天然逃生口,见 supplementPending 定义)——
381
+ // 不清会让等待期后的下一条普通消息被错误当成「补充」合并入队
382
+ supplementPending.delete(key);
336
383
  if (cmd.card) {
337
384
  // 交互卡片命令(裸 /ws):发卡并注册挂起项供回调切换。快照工作区清单——回调按
338
385
  // 名查找目标,配置热重载改清单不影响已发出卡片的自洽性
@@ -381,7 +428,9 @@ deps, opts = {}) {
381
428
  // 4) 通道级权限闸 reset(spec:「本次会话不再询问」的记忆跨任务生效,直至 /new)
382
429
  // 5) 汇总已取消的排队消息数(用户能看到新建会话的真实影响面)
383
430
  // ——handleCommand 无权访问 wiring 的 runtime/pending map,统一在 wiring 侧做
384
- if (/^\/new(?:\s|$)/.test(msg.text.trim())) {
431
+ // 以生效文本判定(触发词改写出的 /new 同样适用,如菜单「新会话」)——
432
+ // 否则菜单触发的新会话只清指针,排队消息/运行中任务/挂起条目全不清理,与手敲 /new 分叉
433
+ if (/^\/new(?:\s|$)/.test(effectiveText.trim())) {
385
434
  const rt = runtimes.get(key);
386
435
  const cancelled = rt?.queuedCount ?? 0;
387
436
  if (rt) {
@@ -415,7 +464,19 @@ deps, opts = {}) {
415
464
  }
416
465
  return;
417
466
  }
418
- // 3. 普通文本:通道内串行入队(每 key 一条 Promise 链),全局并发由 Semaphore 限制
467
+ // 3. 普通文本:通道内串行入队(每 key 一条 Promise 链),全局并发由 Semaphore 限制。
468
+ // cmd.taskText = handleCommand 未识别时原样带出的文本(触发词改写结果或原文)
469
+ if (triggered !== null && hit) {
470
+ // 两段式触发(ask_detail):命中「需补充」规则先挂起追问、不入队——本通道同用户的
471
+ // 下一条非 / 消息在 2.4 被视作补充合并入队(超时 / 本地命令取消,见 supplementPending)。
472
+ // rewrite 指向本地命令的规则防呆跳过:/new 这类命令无参数可补,追问只会挡住命令执行
473
+ if (hit.rule.askDetail && !isLocalCommandRewrite(hit.rule.rewrite)) {
474
+ supplementPending.set(key, { rule: hit.rule, originalText: trimmedText, userId: msg.userId, at: Date.now() });
475
+ await deps.gateway.sendTextTo(msg.chatId, `⚡ 已命中触发词「${hit.rule.match}」,请直接回复补充内容(如目标链接、具体要求),我会合并后开始任务(10 分钟内有效;发 /stop 取消)`);
476
+ return;
477
+ }
478
+ await deps.gateway.sendTextTo(msg.chatId, '⚡ 已按触发词转入对应技能流程');
479
+ }
419
480
  enqueue(key, msg, cmd.taskText ?? msg.text, currentWorkspace);
420
481
  }
421
482
  async function executeTask(key, msg, prompt, wsName, myEpoch) {
@@ -577,6 +638,8 @@ deps, opts = {}) {
577
638
  // SOP 开关:本任务级现读 config.session.notifySop(缺省 true),决定是否注入推送规范
578
639
  // 提示词(v2 为纯内容分类软约束;旧「>50 行转文件」硬兜底已移除,send_text 恒多卡)
579
640
  const sopEnabled = config.session?.notifySop !== false;
641
+ // 工具可用性说明开关(缺省 true):对抗 dynamic tool loading 下的「核心工具不存在」自查误判
642
+ const toolHintEnabled = config.session?.toolHint !== false;
580
643
  const sentPaths = new Set();
581
644
  const sink = async () => { await activeProgress.get(key)?.sinkToBottom(); };
582
645
  const notifySender = createGatewaySender({
@@ -636,28 +699,51 @@ deps, opts = {}) {
636
699
  console.warn(tag, `[env] ${k} 的值含未展开的 \${...} 引用(env 值不做变量展开),请确认是否误配`);
637
700
  }
638
701
  }
702
+ // 机器人级厂商档案(每任务现读解析,热生效):认证经惰性生成的 per-bot settings 文件以
703
+ // CLI --settings 参数注入(命令行层优先级最高,不被生效目录 settings.json 的 env 块压制);
704
+ // 模型并入 /model 优先级链走 opts.model。档案名不存在仅 warn 回退全局(档案可能后建)
705
+ const appProfile = resolveAppProfile(config, app);
706
+ if (app.profile && !appProfile) {
707
+ console.warn(tag, `[app-profile] 机器人 ${app.name || app.appId} 配置的厂商档案 "${app.profile}" 不存在,本任务跟随全局`);
708
+ }
709
+ const profileModel = resolveAppProfileModel(config, app);
710
+ let profileSettingsPath;
711
+ if (appProfile) {
712
+ try {
713
+ profileSettingsPath = ensureProfileSettingsFile(appProfile);
714
+ }
715
+ catch (e) {
716
+ console.warn(tag, `[app-profile] 档案 "${appProfile.name}" 的 settings 文件生成失败,本任务认证跟随全局:`, e instanceof Error ? e.message : e);
717
+ }
718
+ }
639
719
  const outcome = await deps.executor(prompt, {
640
720
  cwd: workspacePath(wsName),
641
721
  resumeSessionId: resumeId,
642
722
  signal: abort.signal,
643
723
  env: taskEnv,
644
- // 人设 + SOP 软约束:人设裸文本追加在 Claude Code 长系统提示末尾,对模型的约束力
645
- // 天然偏弱(resume 旧会话时历史风格会带偏)——包一层显式遵循框架语显著改善
646
- // 称谓/口吻/能力定位的遵循度(提示工程手段,非硬约束);SOP 摘要附后
724
+ // 人设 + SOP + 工具说明三段软约束(各自独立,按开关参与):人设裸文本追加在 Claude Code
725
+ // 长系统提示末尾,对模型的约束力天然偏弱(resume 旧会话时历史风格会带偏)——包一层
726
+ // 显式遵循框架语显著改善称谓/口吻/能力定位的遵循度(提示工程手段,非硬约束)
647
727
  appendSystemPrompt: (() => {
648
728
  const raw = app.appendSystemPrompt?.trim() ?? '';
649
729
  const persona = raw
650
730
  ? `【机器人人设(用户为该机器人配置,须在每一轮回复中严格遵循,优先级高于默认回复风格)】\n${raw}\n【人设结束】以上人设适用于本会话每一轮回复——包括称呼、口吻、能力定位的自我介绍;即使历史回复风格不同,也从本轮起遵循。`
651
731
  : '';
652
- if (!sopEnabled)
653
- return persona || undefined;
654
- return persona ? `${persona}\n\n${FEISHU_NOTIFY_SOP_PROMPT}` : FEISHU_NOTIFY_SOP_PROMPT;
732
+ return [
733
+ persona || undefined,
734
+ sopEnabled ? FEISHU_NOTIFY_SOP_PROMPT : undefined,
735
+ toolHintEnabled ? TOOL_HINT_PROMPT : undefined,
736
+ ].filter(Boolean).join('\n\n') || undefined;
655
737
  })(),
656
738
  // 计划模式(#6):通道级 /plan 开关——模型先出计划(ExitPlanMode → planAsk 飞书卡片),
657
739
  // 用户批准后 SDK 自动切回可编辑模式继续执行(替代旧工作区 code-dev 类型)
658
740
  ...(state?.planMode ? { permissionMode: 'plan' } : {}),
659
- // 通道级模型覆盖(/model 设置,每任务现读——改完下一条消息即生效);未设 = 跟随 ~/.claude 全局
660
- ...(state?.model ? { model: state.model } : {}),
741
+ // 模型优先级(每任务现读,改完下一条消息即生效):通道 /model 覆盖 > 机器人档案
742
+ // (profile_model > 档案默认 model,经 --model 参数路由,不受 settings.json 遮蔽)>
743
+ // 不传(跟随生效目录 settings.json 全局配置)
744
+ ...(state?.model ? { model: state.model } : profileModel ? { model: profileModel } : {}),
745
+ // 机器人档案认证 settings 文件(--settings):仅含认证键,命令行层压制生效目录 env
746
+ ...(profileSettingsPath ? { extraArgs: { settings: profileSettingsPath } } : {}),
661
747
  // 进程内通知工具(send_text/send_image/send_file):中间产物实时推给当前聊天。
662
748
  // server 实例按任务构造,chatId 在 sender 闭包内硬绑定——模型无法选择接收者。
663
749
  // 配置页 MCP(#12)一并注入:bridge 自管 servers.json 每任务现读(热生效),notify 后展开保名
@@ -1082,7 +1168,8 @@ deps, opts = {}) {
1082
1168
  * 原地 mutate 下一条消息即生效(env 变更不再要求重启)。
1083
1169
  * 不热应用(且不纳入 sameApps 比较):FeishuGateway 与 Semaphore 均为启动时构造,
1084
1170
  * apps 凭证 / concurrency 变更无法热生效,打警告提示重启,避免「以为已生效」的坑。
1085
- * 读失败(文件被写坏的中间态等)沿用旧值不崩。
1171
+ * 读失败(文件被写坏的中间态等)沿用旧值不崩,并返回用户可读的错误消息(成功返回 null)——
1172
+ * 调用方(processMessage)据此在聊天里显式提示「本次沿用旧配置」,不再静默。
1086
1173
  */
1087
1174
  export function createConfigReloader(config, configPath) {
1088
1175
  return () => {
@@ -1091,21 +1178,23 @@ export function createConfigReloader(config, configPath) {
1091
1178
  fresh = loadConfig(configPath);
1092
1179
  }
1093
1180
  catch (e) {
1094
- console.warn('[配置热重载] 读取失败,沿用旧配置:', e instanceof Error ? e.message : e);
1095
- return;
1181
+ const message = e instanceof Error ? e.message : String(e);
1182
+ console.warn('[配置热重载] 读取失败,沿用旧配置:', message);
1183
+ return message;
1096
1184
  }
1097
1185
  if (!sameApps(fresh.apps, config.apps) || fresh.concurrency !== config.concurrency) {
1098
1186
  console.warn('[配置热重载] 检测到应用列表/凭证或 concurrency 变更,需重启后生效');
1099
1187
  }
1100
- // claude 段仅 mode/profiles 变更才需重启(CLAUDE_CONFIG_DIR 在 createBridge 构造时定妆);
1188
+ // claude 段仅 mode 变更才需重启(CLAUDE_CONFIG_DIR 在 createBridge 构造时定妆);
1101
1189
  // env 变更热生效(每任务 buildTaskEnv 现读)不在此 warn;顶层四字段(auth_token/api_key/
1102
1190
  // base_url/model)变化无需重启——写入侧(配置页 PUT / use-profile / 飞书 /model-profile)
1103
1191
  // managed 模式下已即时 syncManagedClaude 重写托管 settings.json,下一条任务消息即生效,
1104
- // 此处再 warn 会误导「以为没生效」。server 段为启动时定妆照(startBridge 时监听),
1105
- // 运行中变更只能提示重启
1106
- const claudeRestartShape = (c) => JSON.stringify(c ? { mode: c.mode, profiles: c.profiles } : {});
1192
+ // 此处再 warn 会误导「以为没生效」。profiles 变更同样热生效——bot 级档案每任务现读解析
1193
+ // (app-profile.ts),全局顶层四字段亦经各写入侧即时落托管盘,此处不比较 profiles。
1194
+ // server 段为启动时定妆照(startBridge 时监听),运行中变更只能提示重启
1195
+ const claudeRestartShape = (c) => JSON.stringify(c ? { mode: c.mode } : {});
1107
1196
  if (claudeRestartShape(fresh.claude) !== claudeRestartShape(config.claude)) {
1108
- console.warn('[配置热重载] 检测到 claude 模式 / 档案列表变更,需重启后生效');
1197
+ console.warn('[配置热重载] 检测到 claude 认证模式变更,需重启后生效');
1109
1198
  }
1110
1199
  // claude.env 变更探测:托管盘重写要在 mutate config.claude 之前取旧值比较
1111
1200
  const claudeEnvChanged = JSON.stringify(fresh.claude?.env ?? {}) !== JSON.stringify(config.claude?.env ?? {});
@@ -1144,8 +1233,12 @@ export function createConfigReloader(config, configPath) {
1144
1233
  config.apps[i].triggers = fa.triggers;
1145
1234
  config.apps[i].plugins = fa.plugins;
1146
1235
  config.apps[i].env = fa.env;
1236
+ // 机器人级厂商档案热生效:executeTask 每任务经 app-profile.ts 现读解析
1237
+ config.apps[i].profile = fa.profile;
1238
+ config.apps[i].profileModel = fa.profileModel;
1147
1239
  });
1148
1240
  }
1241
+ return null;
1149
1242
  };
1150
1243
  }
1151
1244
  export async function startBridge(configPath = CONFIG_PATH) {