@jesonliu/lark-claudecode-bridge 1.3.6 → 1.3.7
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/README.md +14 -1
- package/config.example.yaml +36 -11
- package/dist/config.js +80 -13
- package/dist/config.js.map +1 -1
- package/dist/executor/claude-executor.d.ts +8 -1
- package/dist/executor/claude-executor.js +15 -4
- package/dist/executor/claude-executor.js.map +1 -1
- package/dist/executor/permission-gate.d.ts +31 -0
- package/dist/executor/permission-gate.js +49 -0
- package/dist/executor/permission-gate.js.map +1 -1
- package/dist/gateway/feishu-gateway.d.ts +23 -2
- package/dist/gateway/feishu-gateway.js +71 -6
- package/dist/gateway/feishu-gateway.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +74 -13
- package/dist/index.js.map +1 -1
- package/dist/security/audit.d.ts +43 -0
- package/dist/security/audit.js +46 -0
- package/dist/security/audit.js.map +1 -0
- package/dist/security/paths.d.ts +39 -0
- package/dist/security/paths.js +216 -0
- package/dist/security/paths.js.map +1 -0
- package/dist/security/redact.d.ts +59 -0
- package/dist/security/redact.js +151 -0
- package/dist/security/redact.js.map +1 -0
- package/dist/types.d.ts +26 -5
- package/dist/web/server.js +1 -1
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../../src/executor/permission-gate.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,sDAAsD;AACtD,2CAA2C;AAC3C,6EAA6E;AAC7E,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../../src/executor/permission-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { FeishuAppConfig, GatewayHandlers, IncomingMessage, RejectedMessage } from '../types.js';
|
|
2
|
+
import type { Redactor } from '../security/redact.js';
|
|
3
|
+
import { type SecurityEvent } from '../security/audit.js';
|
|
2
4
|
/** SDK 形状:仅用到 WSClient/EventDispatcher/Client/Domain 四个导出,测试注入假对象时按此约束 */
|
|
3
5
|
export interface FeishuSdk {
|
|
4
6
|
WSClient: new (params: {
|
|
@@ -158,6 +160,12 @@ export declare class FeishuGateway {
|
|
|
158
160
|
* 对象,getter 每次发卡现读 → 热生效)。sendText/sendImage 的文本卡与图片卡都消费它,
|
|
159
161
|
* 进度卡/长回复卡由 wiring 直接传参(同一 config 源)。缺省 default 与旧行为一致 */
|
|
160
162
|
private cardWidth;
|
|
163
|
+
/** R3 出站脱敏器(wiring 注入,按 config.security 现取 getter 形态 → 热生效);缺省不脱敏(测试/旧 mock) */
|
|
164
|
+
private redactor?;
|
|
165
|
+
/** 安全事件回调(脱敏/金丝雀/文件拦截 → 审计落盘) */
|
|
166
|
+
private onSecurityEvent?;
|
|
167
|
+
private canaryAlertAt;
|
|
168
|
+
private static readonly CANARY_ALERT_INTERVAL_MS;
|
|
161
169
|
private seenMessageIds;
|
|
162
170
|
private static readonly SEEN_MAX;
|
|
163
171
|
constructor(cfg: FeishuAppConfig, deps?: {
|
|
@@ -173,7 +181,17 @@ export declare class FeishuGateway {
|
|
|
173
181
|
inboxDir?: string;
|
|
174
182
|
/** 卡片宽度 getter(config.card.width),缺省恒 default */
|
|
175
183
|
cardWidth?: () => 'default' | 'fill';
|
|
184
|
+
/** R3 出站脱敏器 getter(每张卡现取 → config.security 热生效),缺省不脱敏 */
|
|
185
|
+
redactor?: () => Redactor;
|
|
186
|
+
/** 安全事件回调(审计落盘),缺省仅日志 */
|
|
187
|
+
onSecurityEvent?: (ev: SecurityEvent) => void;
|
|
176
188
|
});
|
|
189
|
+
/** 出站卡片深度脱敏(R3 单点):审计事件在此统一上报;金丝雀走 chatId 可得的告警通道 */
|
|
190
|
+
private sanitizeCard;
|
|
191
|
+
/** 无 chatId 出口的脱敏(cardkit 实体全量替换):事件照常审计,告警退化为日志 */
|
|
192
|
+
private sanitizeValue;
|
|
193
|
+
/** 金丝雀命中:审计 + 控制台 + 向当前聊天发固定告警模板(节流;告警文本无敏感内容,无递归风险) */
|
|
194
|
+
private alertCanary;
|
|
177
195
|
/**
|
|
178
196
|
* 拉取机器人 open_id:群聊 @检测的精确匹配依据。
|
|
179
197
|
* SDK 1.73.0 未封装「获取机器人信息」接口(bot 命名空间仅 v4.bot.search),
|
|
@@ -208,11 +226,14 @@ export declare class FeishuGateway {
|
|
|
208
226
|
start(handlers: GatewayHandlers): Promise<void>;
|
|
209
227
|
/** 优雅关闭长连接(SIGINT/SIGTERM 时逐个 app 调用);未 start 时为 no-op */
|
|
210
228
|
close(): void;
|
|
211
|
-
/** 发送卡片消息,返回 message_id(消息卡通道:入口剥离 cardkit 专属属性,见 strip
|
|
229
|
+
/** 发送卡片消息,返回 message_id(消息卡通道:入口剥离 cardkit 专属属性,见 strip 函数注释)。
|
|
230
|
+
* R3:先经出站深度脱敏——文本卡/进度卡/结果卡/diff 卡/notify 卡全部走此口 */
|
|
212
231
|
sendCard(chatId: string, card: unknown): Promise<string>;
|
|
213
232
|
/** 以卡片形态发送 markdown 文本(宽度跟随 cardWidth getter) */
|
|
214
233
|
sendText(chatId: string, markdown: string): Promise<string>;
|
|
215
|
-
/** 更新已发送卡片(流式进度刷新;消息卡通道:入口剥离 cardkit
|
|
234
|
+
/** 更新已发送卡片(流式进度刷新;消息卡通道:入口剥离 cardkit 专属属性)。
|
|
235
|
+
* R3:流式正文同样出站,先深度脱敏(chatId 不可得 → 告警通道退化为仅审计+日志,
|
|
236
|
+
* 流式块的金丝雀告警由 wiring 在 finalText/流文本层覆盖) */
|
|
216
237
|
updateCard(messageId: string, card: unknown): Promise<void>;
|
|
217
238
|
/**
|
|
218
239
|
* 创建卡片实体并发送(cardkit 实体模式):实体卡片支持 batch_update 局部更新——
|
|
@@ -4,6 +4,14 @@ import { basename, join } from 'node:path';
|
|
|
4
4
|
import { CONFIG_DIR } from '../config.js';
|
|
5
5
|
import { buildImageCard, buildTextCard } from './card-builder.js';
|
|
6
6
|
import { isImageFile } from '../util/file-types.js';
|
|
7
|
+
import { CANARY_ALERT_TEXT } from '../security/audit.js';
|
|
8
|
+
/**
|
|
9
|
+
* 文件外发黑名单(R3 出口红线的一部分):凭证/密钥类文件不问来源一律不进飞书消息——
|
|
10
|
+
* 正常协作永远不会把 .pem/.key/credentials/.env 发到聊天里,命中即拦截 + 审计。
|
|
11
|
+
* 二进制与图片内容无法正则脱敏,这里是文件通道唯一的硬拦截点(OS 沙箱落地前的已知边界)。
|
|
12
|
+
*/
|
|
13
|
+
const DENIED_FILE_NAME_RE = /(^|[/\\])(credentials[^/\\]*|\.env(\.|$)|id_rsa[^/\\]*$)/i;
|
|
14
|
+
const DENIED_FILE_EXT = new Set(['.pem', '.key', '.enc', '.p12', '.pfx', '.keystore']);
|
|
7
15
|
/**
|
|
8
16
|
* 消息卡通道不支持的 cardkit 专属属性:im.message.create / im.message.patch 的卡片 JSON
|
|
9
17
|
* 校验对它们报 230099/200621 "unknown property"(2026-09-19 真机实锤 multiline 与
|
|
@@ -243,6 +251,13 @@ export class FeishuGateway {
|
|
|
243
251
|
* 对象,getter 每次发卡现读 → 热生效)。sendText/sendImage 的文本卡与图片卡都消费它,
|
|
244
252
|
* 进度卡/长回复卡由 wiring 直接传参(同一 config 源)。缺省 default 与旧行为一致 */
|
|
245
253
|
cardWidth;
|
|
254
|
+
/** R3 出站脱敏器(wiring 注入,按 config.security 现取 getter 形态 → 热生效);缺省不脱敏(测试/旧 mock) */
|
|
255
|
+
redactor;
|
|
256
|
+
/** 安全事件回调(脱敏/金丝雀/文件拦截 → 审计落盘) */
|
|
257
|
+
onSecurityEvent;
|
|
258
|
+
// 金丝雀告警节流:同一聊天 5 分钟最多告警一次(持续穿透时不刷屏,审计全量可查)
|
|
259
|
+
canaryAlertAt = new Map();
|
|
260
|
+
static CANARY_ALERT_INTERVAL_MS = 5 * 60_000;
|
|
246
261
|
// 入站消息去重:飞书 WS 长连接 at-least-once 投递,重连窗口内同一消息可能重投——
|
|
247
262
|
// 不去重会导致整个任务跑两遍(两张进度卡 + 两条结果)。Map 迭代序即插入序,容量超限删最旧。
|
|
248
263
|
seenMessageIds = new Map();
|
|
@@ -258,9 +273,43 @@ export class FeishuGateway {
|
|
|
258
273
|
this.strictGroupMention = deps.strictGroupMention ?? false;
|
|
259
274
|
this.inboxDir = deps.inboxDir ?? join(CONFIG_DIR, 'inbox');
|
|
260
275
|
this.cardWidth = deps.cardWidth ?? (() => 'default');
|
|
276
|
+
this.redactor = deps.redactor;
|
|
277
|
+
this.onSecurityEvent = deps.onSecurityEvent;
|
|
261
278
|
const domain = cfg.domain === 'lark' ? this.sdk.Domain.Lark : this.sdk.Domain.Feishu;
|
|
262
279
|
this.client = new this.sdk.Client({ appId: cfg.appId, appSecret: cfg.appSecret, domain });
|
|
263
280
|
}
|
|
281
|
+
/** 出站卡片深度脱敏(R3 单点):审计事件在此统一上报;金丝雀走 chatId 可得的告警通道 */
|
|
282
|
+
sanitizeCard(chatId, card) {
|
|
283
|
+
const r = this.sanitizeValue(card);
|
|
284
|
+
if (r.canary)
|
|
285
|
+
this.alertCanary(chatId);
|
|
286
|
+
return r.value;
|
|
287
|
+
}
|
|
288
|
+
/** 无 chatId 出口的脱敏(cardkit 实体全量替换):事件照常审计,告警退化为日志 */
|
|
289
|
+
sanitizeValue(card) {
|
|
290
|
+
const redactor = this.redactor?.();
|
|
291
|
+
if (!redactor)
|
|
292
|
+
return { value: card, canary: false };
|
|
293
|
+
const r = redactor.deep(card);
|
|
294
|
+
if (r.hits.length)
|
|
295
|
+
this.onSecurityEvent?.({ kind: 'redact', ruleIds: [...new Set(r.hits)], source: 'card' });
|
|
296
|
+
if (r.canary) {
|
|
297
|
+
this.onSecurityEvent?.({ kind: 'canary', source: 'card' });
|
|
298
|
+
this.log.error('[security] 🚨 金丝雀命中:敏感标记出现在对外卡片中,已脱敏并告警(无 chatId,仅审计+日志)');
|
|
299
|
+
}
|
|
300
|
+
return { value: r.value, canary: r.canary };
|
|
301
|
+
}
|
|
302
|
+
/** 金丝雀命中:审计 + 控制台 + 向当前聊天发固定告警模板(节流;告警文本无敏感内容,无递归风险) */
|
|
303
|
+
alertCanary(chatId) {
|
|
304
|
+
this.onSecurityEvent?.({ kind: 'canary', source: 'card' });
|
|
305
|
+
this.log.error('[security] 🚨 金丝雀命中:敏感标记出现在对外卡片中,已脱敏并告警');
|
|
306
|
+
const now = Date.now();
|
|
307
|
+
const last = this.canaryAlertAt.get(chatId) ?? 0;
|
|
308
|
+
if (now - last < FeishuGateway.CANARY_ALERT_INTERVAL_MS)
|
|
309
|
+
return;
|
|
310
|
+
this.canaryAlertAt.set(chatId, now);
|
|
311
|
+
void this.sendText(chatId, CANARY_ALERT_TEXT).catch(() => { });
|
|
312
|
+
}
|
|
264
313
|
/**
|
|
265
314
|
* 拉取机器人 open_id:群聊 @检测的精确匹配依据。
|
|
266
315
|
* SDK 1.73.0 未封装「获取机器人信息」接口(bot 命名空间仅 v4.bot.search),
|
|
@@ -480,11 +529,13 @@ export class FeishuGateway {
|
|
|
480
529
|
// best effort:关闭失败不阻断其余连接的关闭
|
|
481
530
|
}
|
|
482
531
|
}
|
|
483
|
-
/** 发送卡片消息,返回 message_id(消息卡通道:入口剥离 cardkit 专属属性,见 strip
|
|
532
|
+
/** 发送卡片消息,返回 message_id(消息卡通道:入口剥离 cardkit 专属属性,见 strip 函数注释)。
|
|
533
|
+
* R3:先经出站深度脱敏——文本卡/进度卡/结果卡/diff 卡/notify 卡全部走此口 */
|
|
484
534
|
async sendCard(chatId, card) {
|
|
535
|
+
const safe = this.sanitizeCard(chatId, card);
|
|
485
536
|
const res = await this.client.im.message.create({
|
|
486
537
|
params: { receive_id_type: 'chat_id' },
|
|
487
|
-
data: { receive_id: chatId, msg_type: 'interactive', content: JSON.stringify(stripMessageChannelUnsupportedProps(
|
|
538
|
+
data: { receive_id: chatId, msg_type: 'interactive', content: JSON.stringify(stripMessageChannelUnsupportedProps(safe)) },
|
|
488
539
|
});
|
|
489
540
|
if (!res.data?.message_id)
|
|
490
541
|
throw new Error(`发送卡片失败: ${JSON.stringify(res)}`);
|
|
@@ -494,9 +545,12 @@ export class FeishuGateway {
|
|
|
494
545
|
async sendText(chatId, markdown) {
|
|
495
546
|
return this.sendCard(chatId, buildTextCard(markdown, this.cardWidth()));
|
|
496
547
|
}
|
|
497
|
-
/** 更新已发送卡片(流式进度刷新;消息卡通道:入口剥离 cardkit
|
|
548
|
+
/** 更新已发送卡片(流式进度刷新;消息卡通道:入口剥离 cardkit 专属属性)。
|
|
549
|
+
* R3:流式正文同样出站,先深度脱敏(chatId 不可得 → 告警通道退化为仅审计+日志,
|
|
550
|
+
* 流式块的金丝雀告警由 wiring 在 finalText/流文本层覆盖) */
|
|
498
551
|
async updateCard(messageId, card) {
|
|
499
|
-
|
|
552
|
+
const safe = this.sanitizeValue(card);
|
|
553
|
+
await this.client.im.message.patch({ path: { message_id: messageId }, data: { content: JSON.stringify(stripMessageChannelUnsupportedProps(safe.value)) } });
|
|
500
554
|
}
|
|
501
555
|
/**
|
|
502
556
|
* 创建卡片实体并发送(cardkit 实体模式):实体卡片支持 batch_update 局部更新——
|
|
@@ -505,9 +559,10 @@ export class FeishuGateway {
|
|
|
505
559
|
* 调用方(ProgressCard.start)捕获失败后自动降级普通卡片 + 整卡 PATCH。
|
|
506
560
|
*/
|
|
507
561
|
async sendCardEntity(chatId, card) {
|
|
562
|
+
const safe = this.sanitizeCard(chatId, card);
|
|
508
563
|
const create = await this.client.request({
|
|
509
564
|
method: 'POST', url: '/open-apis/cardkit/v1/cards',
|
|
510
|
-
data: { type: 'card_json', data: JSON.stringify(
|
|
565
|
+
data: { type: 'card_json', data: JSON.stringify(safe) },
|
|
511
566
|
});
|
|
512
567
|
const cardId = create.data?.card_id;
|
|
513
568
|
if (create.code !== 0 || !cardId)
|
|
@@ -535,9 +590,10 @@ export class FeishuGateway {
|
|
|
535
590
|
* 发创建式字段会被飞书直接 400(card is required),所有结构变化(confirm/plan/
|
|
536
591
|
* question 区、终态)都渲染不上屏,且结构签名不变回来前连计时局部更新也一并停摆 */
|
|
537
592
|
async replaceCardEntity(cardId, sequence, card) {
|
|
593
|
+
const safe = this.sanitizeValue(card);
|
|
538
594
|
const res = await this.client.request({
|
|
539
595
|
method: 'PUT', url: `/open-apis/cardkit/v1/cards/${cardId}`,
|
|
540
|
-
data: { card: { type: 'card_json', data: JSON.stringify(
|
|
596
|
+
data: { card: { type: 'card_json', data: JSON.stringify(safe.value) }, sequence },
|
|
541
597
|
});
|
|
542
598
|
if (res.code !== 0)
|
|
543
599
|
throw new Error(`卡片全量更新失败: ${JSON.stringify(res)}`);
|
|
@@ -583,6 +639,15 @@ export class FeishuGateway {
|
|
|
583
639
|
* 不校验会静默 resolve,用户收不到文件且无任何报错。
|
|
584
640
|
*/
|
|
585
641
|
async uploadAndSendFile(chatId, filePath) {
|
|
642
|
+
// R3 文件出口红线:凭证/密钥类文件名一律不进飞书(模型 send_file、用户点名取文件、
|
|
643
|
+
// 计划文件发送全部经此口)。命中即抛错 + 审计——调用方(notify 工具/取文件通道)会把
|
|
644
|
+
// 错误消息回给模型或用户,文件本体不出进程
|
|
645
|
+
const name = basename(filePath);
|
|
646
|
+
if (DENIED_FILE_NAME_RE.test(name) || DENIED_FILE_EXT.has(name.slice(name.lastIndexOf('.')).toLowerCase())) {
|
|
647
|
+
this.onSecurityEvent?.({ kind: 'file-deny', path: filePath });
|
|
648
|
+
this.log.error(`[security] 已拦截凭证类文件外发:${name}`);
|
|
649
|
+
throw new Error('⛔ 没有权限发送该文件(安全红线)');
|
|
650
|
+
}
|
|
586
651
|
if (isImageFile(filePath)) {
|
|
587
652
|
const up = await this.client.im.image.create({
|
|
588
653
|
data: { image_type: 'message', image: createReadStream(filePath) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu-gateway.js","sourceRoot":"","sources":["../../src/gateway/feishu-gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feishu-gateway.js","sourceRoot":"","sources":["../../src/gateway/feishu-gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { AccessControl } from './access/access-control.js';
|
|
|
3
3
|
import { runTask } from './executor/claude-executor.js';
|
|
4
4
|
import { SessionStore } from './session/session-store.js';
|
|
5
5
|
import { type TranscriptRecorder } from './transcript/transcript-writer.js';
|
|
6
|
+
import { type SecurityAuditWriter } from './security/audit.js';
|
|
6
7
|
export { VERSION } from './version.js';
|
|
7
8
|
export interface BridgeDeps {
|
|
8
9
|
gateway: {
|
|
@@ -30,6 +31,8 @@ export interface BridgeDeps {
|
|
|
30
31
|
executor: typeof runTask;
|
|
31
32
|
/** 对话落盘记录器(可选依赖:缺失即不落盘,写失败自身消化不抛出) */
|
|
32
33
|
transcript?: TranscriptRecorder;
|
|
34
|
+
/** 安全面审计(可选依赖:deny/脱敏/金丝雀事件落盘;缺失时仅控制台日志) */
|
|
35
|
+
audit?: SecurityAuditWriter;
|
|
33
36
|
}
|
|
34
37
|
export declare function createBridge(config: BridgeConfig, app: FeishuAppConfig, // 本 bridge 绑定的飞书应用:并发/默认工作区/Claude Code 环境/人格均 per-app
|
|
35
38
|
deps: BridgeDeps, opts?: {
|
package/dist/index.js
CHANGED
|
@@ -31,6 +31,9 @@ import { isLocalCommandRewrite, matchTrigger, rewriteByTrigger } from './session
|
|
|
31
31
|
import { Semaphore, channelKey } from './session/channel.js';
|
|
32
32
|
import { TranscriptWriter, sweepTranscripts } from './transcript/transcript-writer.js';
|
|
33
33
|
import { nowBeijingISO } from './util/beijing-time.js';
|
|
34
|
+
import { getRedactor } from './security/redact.js';
|
|
35
|
+
import { DEFAULT_REDZONE_READ_SOURCES } from './security/paths.js';
|
|
36
|
+
import { CANARY_ALERT_TEXT, SecurityAudit } from './security/audit.js';
|
|
34
37
|
// 版本号收敛到 version.ts 单一来源(bin/lcb.ts 与 smoke 测试均引用)
|
|
35
38
|
export { VERSION } from './version.js';
|
|
36
39
|
// 任务总超时 4 小时(防挂死;确认等待、长编译均在正常范围)
|
|
@@ -322,9 +325,10 @@ deps, opts = {}) {
|
|
|
322
325
|
// currentWorkspace 语义:store 中已设置的工作区优先,否则 app 默认,最后全局默认——
|
|
323
326
|
// 保证 /new、/status 回复与实际一致。用 || 而非 ??:archiveSession 为新通道建档时
|
|
324
327
|
// workspaceName 存 ''(归档时不知工作区),空串必须回退默认,否则 inventory 键错位。
|
|
325
|
-
//
|
|
326
|
-
// wsName 同源锁定,通道 state 旧存的 workspaceName
|
|
327
|
-
|
|
328
|
+
// 分身角色配置了工作区白名单时恒锁首个允许的工作区:命令上下文、inventory 键与任务
|
|
329
|
+
// wsName 同源锁定,通道 state 旧存的 workspaceName 一律不采信;未配置白名单 =
|
|
330
|
+
// 权限轴「全给」,与主机器人同规则(state 优先 → app 默认 → 全局默认)
|
|
331
|
+
const currentWorkspace = app.role === 'deputy' && app.allowedWorkspaces?.length
|
|
328
332
|
? app.allowedWorkspaces[0]
|
|
329
333
|
: (st?.workspaceName || app.defaultWorkspace || config.defaults.workspace);
|
|
330
334
|
// 2.4 触发词两段式补充(ask_detail):上一条消息命中「需补充」规则且正在等待时,本条
|
|
@@ -534,6 +538,27 @@ deps, opts = {}) {
|
|
|
534
538
|
// 白名单/黑名单经 getter 传入:gate 虽按通道永久复用,decide 时才经 getter 现读
|
|
535
539
|
// config.permissions——热重载原地 mutate 同一 config 对象后,已有通道的下一个工具
|
|
536
540
|
// 调用即生效(不再需要新通道/重启;0.17.0 静态快照导致改配置后旧通道不生效)
|
|
541
|
+
// 分身安全闸(R1/R2/Bash 三态):仅 deputy 注入,主机器人行为零变化
|
|
542
|
+
const securityGuard = app.role === 'deputy'
|
|
543
|
+
? {
|
|
544
|
+
cwd: workspacePath(wsName),
|
|
545
|
+
redzone: () => config.security?.redzone?.read ?? DEFAULT_REDZONE_READ_SOURCES,
|
|
546
|
+
// 未配置工作区白名单 = 权限轴全给:写根 = 全部已配置工作区(R2 红线仍在:工作区外只读)
|
|
547
|
+
writeRoots: () => (app.allowedWorkspaces?.length ? app.allowedWorkspaces : config.workspaces.map((w) => w.name))
|
|
548
|
+
.map((n) => workspacePath(n)),
|
|
549
|
+
bashMode: () => app.bashMode ?? 'confirm',
|
|
550
|
+
}
|
|
551
|
+
: undefined;
|
|
552
|
+
// 安全事件分流:审计落盘(always)+ 金丝雀向当前聊天告警(固定模板,节流在 gateway 侧)
|
|
553
|
+
const onSecurityEvent = (ev) => {
|
|
554
|
+
deps.audit?.write(app.appId, ev);
|
|
555
|
+
if (ev.kind !== 'canary') {
|
|
556
|
+
console.warn(tag, '[安全拦截]', JSON.stringify(ev));
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
console.error(tag, '[安全告警] 🚨 金丝雀命中(防线疑似被穿透),已脱敏并告警');
|
|
560
|
+
void deps.gateway.sendTextTo(msg.chatId, CANARY_ALERT_TEXT).catch(() => { });
|
|
561
|
+
};
|
|
537
562
|
let gate = gates.get(key);
|
|
538
563
|
if (!gate) {
|
|
539
564
|
gate = new PermissionGate({
|
|
@@ -541,6 +566,8 @@ deps, opts = {}) {
|
|
|
541
566
|
// ?? 而非 ||:显式 false(用户主动关闭全部免确认)不能被回落到缺省的 true
|
|
542
567
|
allowAllTools: () => config.permissions?.allowAllTools ?? DEFAULT_ALLOW_ALL_TOOLS,
|
|
543
568
|
dangerousCommands: () => config.permissions?.dangerousCommands ?? DEFAULT_DANGEROUS_COMMANDS,
|
|
569
|
+
...(securityGuard ? { security: securityGuard } : {}),
|
|
570
|
+
onSecurityEvent,
|
|
544
571
|
ask: async (req) => {
|
|
545
572
|
// 工具确认嵌入当前任务的进度卡(按钮在计时行上方、正文收敛)——不再单独发确认卡:
|
|
546
573
|
// 独立确认卡与进度卡正文内容大量重复,且追加在进度卡下方会把进度卡顶出会话底部。
|
|
@@ -774,20 +801,22 @@ deps, opts = {}) {
|
|
|
774
801
|
// managed 模式合并发现两处目录(自管 + 本机 ~/.claude):按绝对 installPath 传 SDK,
|
|
775
802
|
// 用户本机已装插件无须重装;resolvePluginPaths 按 name 去重,当前生效目录优先。
|
|
776
803
|
// 分身角色按 allowed_plugins 白名单过滤(显式 app.plugins 始终保留——写在分身配置里
|
|
777
|
-
// 的就是要给的);未配 allowed_plugins
|
|
804
|
+
// 的就是要给的);未配 allowed_plugins = 权限轴「全给」,自动发现插件全部加载
|
|
778
805
|
...(() => {
|
|
779
806
|
const discovered = claudeDir === DEFAULT_CLAUDE_DIR
|
|
780
807
|
? discoverPlugins(claudeDir)
|
|
781
808
|
: [...discoverPlugins(claudeDir), ...discoverPlugins(DEFAULT_CLAUDE_DIR)];
|
|
782
809
|
let merged = resolvePluginPaths(app.plugins, discovered);
|
|
783
|
-
if (app.role === 'deputy') {
|
|
784
|
-
merged = merged.filter((p) => app.plugins?.some((e) => e.name === p.name) || app.allowedPlugins
|
|
810
|
+
if (app.role === 'deputy' && app.allowedPlugins !== undefined) {
|
|
811
|
+
merged = merged.filter((p) => app.plugins?.some((e) => e.name === p.name) || app.allowedPlugins.includes(p.name));
|
|
785
812
|
}
|
|
786
813
|
return merged.length ? { plugins: merged.map((p) => ({ path: p.path })) } : {};
|
|
787
814
|
})(),
|
|
788
815
|
// 分身技能白名单:透传 SDK Options.skills(官方上下文过滤器——未列出技能对模型不可见
|
|
789
816
|
// 且被 Skill 工具拒绝;非沙箱:技能文件仍在磁盘可被 Read/Bash 读到,用户已知悉此边界)
|
|
790
817
|
...(app.role === 'deputy' && app.allowedSkills?.length ? { allowedSkills: app.allowedSkills } : {}),
|
|
818
|
+
// 分身计划批准不升级 acceptEdits:该模式会绕过 canUseTool,宿主安全闸(R1/R2)随之失效
|
|
819
|
+
...(app.role === 'deputy' ? { planApproveEscalates: false } : {}),
|
|
791
820
|
canUseTool: (toolName, input, ctx) => gate.decide(toolName, input, wsName, ctx),
|
|
792
821
|
onQuery: (handle) => { activeQueries.set(key, { wsName, handle }); },
|
|
793
822
|
}, {
|
|
@@ -818,20 +847,30 @@ deps, opts = {}) {
|
|
|
818
847
|
}
|
|
819
848
|
else if (e.kind === 'text') {
|
|
820
849
|
progress.markStarted();
|
|
821
|
-
|
|
850
|
+
// R3:流式正文块脱敏后再渲染/落盘(进度卡展示 + transcript 双消费点;
|
|
851
|
+
// gateway 深度脱敏仍在其后兜底,双保险覆盖 transcript 这一本地落盘面)
|
|
852
|
+
const streamRedaction = getRedactor(config.security).text(e.content);
|
|
853
|
+
if (streamRedaction.hits.length) {
|
|
854
|
+
deps.audit?.write(app.appId, { kind: 'redact', ruleIds: [...new Set(streamRedaction.hits)], source: 'stream' });
|
|
855
|
+
}
|
|
856
|
+
if (streamRedaction.canary)
|
|
857
|
+
onSecurityEvent({ kind: 'canary', source: 'stream' });
|
|
858
|
+
progress.appendText(streamRedaction.text);
|
|
822
859
|
// 落盘 · assistant:流式文本块全文(每块一行,天然增量)
|
|
823
860
|
deps.transcript?.assistant({
|
|
824
861
|
v: 1, ts: now(), kind: 'assistant', app: app.appId,
|
|
825
|
-
chatId: msg.chatId, userId: msg.userId, text:
|
|
862
|
+
chatId: msg.chatId, userId: msg.userId, text: streamRedaction.text,
|
|
826
863
|
});
|
|
827
864
|
}
|
|
828
865
|
else if (e.kind === 'tool-start') {
|
|
829
866
|
const [n, ...rest] = e.content.split(': ');
|
|
830
867
|
progress.markStarted();
|
|
831
|
-
|
|
868
|
+
// 摘要(命令串/路径)同样过脱敏再落盘——命令回显可能带出先前输出中的秘密
|
|
869
|
+
const summaryRedaction = getRedactor(config.security).text(rest.join(': '));
|
|
870
|
+
progress.toolStart(n, summaryRedaction.text);
|
|
832
871
|
deps.transcript?.tool({
|
|
833
872
|
v: 1, ts: now(), kind: 'tool', app: app.appId,
|
|
834
|
-
chatId: msg.chatId, userId: msg.userId, phase: 'start', tool: n, summary:
|
|
873
|
+
chatId: msg.chatId, userId: msg.userId, phase: 'start', tool: n, summary: summaryRedaction.text, ok: true,
|
|
835
874
|
});
|
|
836
875
|
}
|
|
837
876
|
else if (e.kind === 'tool-result') {
|
|
@@ -861,8 +900,16 @@ deps, opts = {}) {
|
|
|
861
900
|
});
|
|
862
901
|
return;
|
|
863
902
|
}
|
|
864
|
-
// finalText 提前算好:finish
|
|
865
|
-
|
|
903
|
+
// finalText 提前算好:finish 携带字数,终态进度卡据此显示「完整回复已单独发送」提示行。
|
|
904
|
+
// R3:先脱敏再落盘/发送——transcript 写入(下方 result 事件)与结果卡都消费脱敏后文本,
|
|
905
|
+
// bridge 自己的落盘不再残留明文(方案 v3 §八.4:脱敏点在 transcript 之前,非发送点)
|
|
906
|
+
const finalRedaction = getRedactor(config.security).text(outcome.finalText?.trim() ?? '');
|
|
907
|
+
if (finalRedaction.hits.length) {
|
|
908
|
+
deps.audit?.write(app.appId, { kind: 'redact', ruleIds: [...new Set(finalRedaction.hits)], source: 'final' });
|
|
909
|
+
}
|
|
910
|
+
if (finalRedaction.canary)
|
|
911
|
+
onSecurityEvent({ kind: 'canary', source: 'final' });
|
|
912
|
+
const finalText = finalRedaction.text;
|
|
866
913
|
await progress.finish('✅ 完成', finalText.length || undefined);
|
|
867
914
|
archive(outcome.sessionId);
|
|
868
915
|
deps.transcript?.result({
|
|
@@ -1232,8 +1279,10 @@ export function createConfigReloader(config, configPath) {
|
|
|
1232
1279
|
config.workspaces = fresh.workspaces;
|
|
1233
1280
|
config.defaults = fresh.defaults;
|
|
1234
1281
|
// 权限白名单/黑名单热应用:通道级 gate 复用,但经 getter 在 decide 时现读 config.permissions,
|
|
1235
|
-
//
|
|
1282
|
+
// 此处原地替换后已有通道的下一个工具调用即用新名单。安保段(红区/脱敏/金丝雀)同款 getter
|
|
1283
|
+
// 现读 → 热生效;脱敏器按配置键 memo,键变化自动重编译
|
|
1236
1284
|
config.permissions = fresh.permissions;
|
|
1285
|
+
config.security = fresh.security;
|
|
1237
1286
|
config.claude = fresh.claude;
|
|
1238
1287
|
config.server = fresh.server;
|
|
1239
1288
|
config.slashCommands = fresh.slashCommands;
|
|
@@ -1264,6 +1313,8 @@ export function createConfigReloader(config, configPath) {
|
|
|
1264
1313
|
// 机器人级厂商档案热生效:executeTask 每任务经 app-profile.ts 现读解析
|
|
1265
1314
|
config.apps[i].profile = fa.profile;
|
|
1266
1315
|
config.apps[i].profileModel = fa.profileModel;
|
|
1316
|
+
// 分身 Bash 三态热生效:gate 在 decide 时经 getter 现读 app.bashMode
|
|
1317
|
+
config.apps[i].bashMode = fa.bashMode;
|
|
1267
1318
|
});
|
|
1268
1319
|
}
|
|
1269
1320
|
return null;
|
|
@@ -1299,6 +1350,8 @@ export async function startBridge(configPath = CONFIG_PATH) {
|
|
|
1299
1350
|
}
|
|
1300
1351
|
}
|
|
1301
1352
|
// 每 app 一对 gateway+bridge:长连接/会话池/并发闸/Claude Code 环境/落盘目录全部 per-app 隔离
|
|
1353
|
+
// 安全面审计:单实例按 appId 分文件落盘(CONFIG_DIR/security/audit-<appId>.jsonl)
|
|
1354
|
+
const securityAudit = new SecurityAudit(join(CONFIG_DIR, 'security'));
|
|
1302
1355
|
const runners = config.apps.map((app) => {
|
|
1303
1356
|
const tag = `[app:${app.name}]`;
|
|
1304
1357
|
const gateway = new FeishuGateway(app, {
|
|
@@ -1307,6 +1360,13 @@ export async function startBridge(configPath = CONFIG_PATH) {
|
|
|
1307
1360
|
strictGroupMention: config.apps.length > 1,
|
|
1308
1361
|
// 卡片宽度热生效:getter 现读 config.card(reloader 原地 mutate 同一对象)
|
|
1309
1362
|
cardWidth: () => config.card?.width ?? 'default',
|
|
1363
|
+
// R3 出站脱敏(恒开,全部机器人):getter 现读 config.security → 热重载即生效
|
|
1364
|
+
redactor: () => getRedactor(config.security),
|
|
1365
|
+
onSecurityEvent: (ev) => {
|
|
1366
|
+
securityAudit.write(app.appId, ev);
|
|
1367
|
+
if (ev.kind !== 'redact')
|
|
1368
|
+
console.warn(tag, '[安全事件]', ev.kind);
|
|
1369
|
+
},
|
|
1310
1370
|
});
|
|
1311
1371
|
const deps = {
|
|
1312
1372
|
gateway: {
|
|
@@ -1327,6 +1387,7 @@ export async function startBridge(configPath = CONFIG_PATH) {
|
|
|
1327
1387
|
store: SessionStore.load(join(CONFIG_DIR, `sessions.${app.appId}.json`)),
|
|
1328
1388
|
executor: runTask,
|
|
1329
1389
|
transcript: new TranscriptWriter(join(CONFIG_DIR, 'transcripts', app.appId)),
|
|
1390
|
+
audit: securityAudit,
|
|
1330
1391
|
};
|
|
1331
1392
|
return { app, gateway, bridge: createBridge(config, app, deps, { reloadConfig }) };
|
|
1332
1393
|
});
|