sessix-server 0.2.3 → 0.2.4

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.
Files changed (34) hide show
  1. package/dist/approval/ApprovalProxy.d.ts +10 -0
  2. package/dist/approval/ApprovalProxy.d.ts.map +1 -1
  3. package/dist/approval/ApprovalProxy.js +44 -6
  4. package/dist/approval/ApprovalProxy.js.map +1 -1
  5. package/dist/hooks/HookInstaller.d.ts +11 -7
  6. package/dist/hooks/HookInstaller.d.ts.map +1 -1
  7. package/dist/hooks/HookInstaller.js +96 -49
  8. package/dist/hooks/HookInstaller.js.map +1 -1
  9. package/dist/index.js +29 -5
  10. package/dist/notification/ExpoNotificationChannel.d.ts.map +1 -1
  11. package/dist/notification/ExpoNotificationChannel.js +9 -1
  12. package/dist/notification/ExpoNotificationChannel.js.map +1 -1
  13. package/dist/notification/NotificationService.d.ts +1 -1
  14. package/dist/notification/NotificationService.d.ts.map +1 -1
  15. package/dist/notification/NotificationService.js +13 -5
  16. package/dist/notification/NotificationService.js.map +1 -1
  17. package/dist/providers/ExecutionProvider.d.ts +8 -2
  18. package/dist/providers/ExecutionProvider.d.ts.map +1 -1
  19. package/dist/providers/ProcessProvider.d.ts +2 -2
  20. package/dist/providers/ProcessProvider.d.ts.map +1 -1
  21. package/dist/providers/ProcessProvider.js +49 -15
  22. package/dist/providers/ProcessProvider.js.map +1 -1
  23. package/dist/server.d.ts.map +1 -1
  24. package/dist/server.js +29 -5
  25. package/dist/server.js.map +1 -1
  26. package/dist/session/ProjectReader.js +1 -1
  27. package/dist/session/ProjectReader.js.map +1 -1
  28. package/dist/session/SessionManager.d.ts +7 -3
  29. package/dist/session/SessionManager.d.ts.map +1 -1
  30. package/dist/session/SessionManager.js +45 -5
  31. package/dist/session/SessionManager.js.map +1 -1
  32. package/dist/ws/WsBridge.js +4 -4
  33. package/dist/ws/WsBridge.js.map +1 -1
  34. package/package.json +1 -1
@@ -24,6 +24,10 @@ export declare class ApprovalProxy {
24
24
  private pendingApprovals;
25
25
  /** 审批请求回调(通知外部推送到手机) */
26
26
  private approvalRequestCallbacks;
27
+ /** YOLO 模式状态:sessionId -> enabled */
28
+ private yoloSessions;
29
+ /** 内存缓存:已被"始终允许"的工具名(避免每次读 settings.json) */
30
+ private alwaysAllowedTools;
27
31
  /** 获取状态信息的回调(由外部注入) */
28
32
  private statusInfoProvider;
29
33
  constructor(options: ApprovalProxyOptions);
@@ -35,6 +39,10 @@ export declare class ApprovalProxy {
35
39
  onApprovalRequest(callback: (request: ApprovalRequest) => void): void;
36
40
  /** 设置状态信息提供者(用于 /health 端点) */
37
41
  setStatusInfoProvider(provider: () => StatusInfo): void;
42
+ /** 设置会话的 YOLO 模式(服务端拦截,即使手机断连也生效) */
43
+ setYoloMode(sessionId: string, enabled: boolean): void;
44
+ /** 检查会话是否处于 YOLO 模式 */
45
+ isYoloMode(sessionId: string): boolean;
38
46
  /**
39
47
  * 注入审批结果
40
48
  *
@@ -46,6 +54,8 @@ export declare class ApprovalProxy {
46
54
  getPendingCount(): number;
47
55
  /** 检查指定审批请求是否仍在等待用户决策 */
48
56
  isPending(requestId: string): boolean;
57
+ /** 检查工具是否已被"始终允许"(内存缓存 + settings.json 双重检查) */
58
+ private isToolAlwaysAllowed;
49
59
  /** 检查工具是否已在 settings.json permissions.allow 中(检查项目级和全局) */
50
60
  private isToolInClaudeSettings;
51
61
  /** 将工具写入 settings.json permissions.allow(项目级或全局) */
@@ -1 +1 @@
1
- {"version":3,"file":"ApprovalProxy.d.ts","sourceRoot":"","sources":["../../src/approval/ApprovalProxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEvE,uBAAuB;AACvB,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,iCAAiC;AACjC,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAsD;IAE1E,wDAAwD;IACxD,OAAO,CAAC,gBAAgB,CAIpB;IAEJ,wBAAwB;IACxB,OAAO,CAAC,wBAAwB,CAAgD;IAEhF,uBAAuB;IACvB,OAAO,CAAC,kBAAkB,CAAkC;gBAEhD,OAAO,EAAE,oBAAoB;IAazC;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAe1E,4BAA4B;IAC5B,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIrE,+BAA+B;IAC/B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,UAAU,GAAG,IAAI;IAIvD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO;IAkBvE,mBAAmB;IACnB,eAAe,IAAI,MAAM;IAIzB,yBAAyB;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIrC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAsB9B,oDAAoD;IACpD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwC5E,2DAA2D;IAC3D,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;IAUlE;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAUjC,mBAAmB;IACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BtB,WAAW;IACX,OAAO,CAAC,aAAa;IA2BrB;;;;;;;;;OASG;YACW,kBAAkB;IAyDhC,aAAa;IACb,OAAO,CAAC,YAAY;IASpB,wBAAwB;IACxB,OAAO,CAAC,WAAW;IAenB,oBAAoB;IACpB,OAAO,CAAC,qBAAqB;IAU7B,uCAAuC;IACvC,OAAO,CAAC,aAAa;IAgCrB,sBAAsB;IACtB,OAAO,CAAC,QAAQ;CAQjB"}
1
+ {"version":3,"file":"ApprovalProxy.d.ts","sourceRoot":"","sources":["../../src/approval/ApprovalProxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEvE,uBAAuB;AACvB,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,iCAAiC;AACjC,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAsD;IAE1E,wDAAwD;IACxD,OAAO,CAAC,gBAAgB,CAIpB;IAEJ,wBAAwB;IACxB,OAAO,CAAC,wBAAwB,CAAgD;IAEhF,qCAAqC;IACrC,OAAO,CAAC,YAAY,CAA6B;IAEjD,6CAA6C;IAC7C,OAAO,CAAC,kBAAkB,CAAoB;IAE9C,uBAAuB;IACvB,OAAO,CAAC,kBAAkB,CAAkC;gBAEhD,OAAO,EAAE,oBAAoB;IAazC;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAe1E,4BAA4B;IAC5B,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIrE,+BAA+B;IAC/B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,UAAU,GAAG,IAAI;IAIvD,qCAAqC;IACrC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKtD,uBAAuB;IACvB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO;IAkBvE,mBAAmB;IACnB,eAAe,IAAI,MAAM;IAIzB,yBAAyB;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIrC,gDAAgD;IAChD,OAAO,CAAC,mBAAmB;IAQ3B,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IA6B9B,oDAAoD;IACpD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA0C5E,2DAA2D;IAC3D,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;IAUlE;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAUjC,mBAAmB;IACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BtB,WAAW;IACX,OAAO,CAAC,aAAa;IA2BrB;;;;;;;;;OASG;YACW,kBAAkB;IA+DhC,aAAa;IACb,OAAO,CAAC,YAAY;IASpB,wBAAwB;IACxB,OAAO,CAAC,WAAW;IAenB,oBAAoB;IACpB,OAAO,CAAC,qBAAqB;IAU7B,uCAAuC;IACvC,OAAO,CAAC,aAAa;IAgCrB,sBAAsB;IACtB,OAAO,CAAC,QAAQ;CAQjB"}
@@ -24,6 +24,10 @@ class ApprovalProxy {
24
24
  pendingApprovals = new Map();
25
25
  /** 审批请求回调(通知外部推送到手机) */
26
26
  approvalRequestCallbacks = [];
27
+ /** YOLO 模式状态:sessionId -> enabled */
28
+ yoloSessions = new Map();
29
+ /** 内存缓存:已被"始终允许"的工具名(避免每次读 settings.json) */
30
+ alwaysAllowedTools = new Set();
27
31
  /** 获取状态信息的回调(由外部注入) */
28
32
  statusInfoProvider = null;
29
33
  constructor(options) {
@@ -60,6 +64,15 @@ class ApprovalProxy {
60
64
  setStatusInfoProvider(provider) {
61
65
  this.statusInfoProvider = provider;
62
66
  }
67
+ /** 设置会话的 YOLO 模式(服务端拦截,即使手机断连也生效) */
68
+ setYoloMode(sessionId, enabled) {
69
+ this.yoloSessions.set(sessionId, enabled);
70
+ console.log(`[ApprovalProxy] YOLO 模式 ${enabled ? '已启用' : '已关闭'}: ${sessionId}`);
71
+ }
72
+ /** 检查会话是否处于 YOLO 模式 */
73
+ isYoloMode(sessionId) {
74
+ return this.yoloSessions.get(sessionId) ?? false;
75
+ }
63
76
  /**
64
77
  * 注入审批结果
65
78
  *
@@ -89,6 +102,14 @@ class ApprovalProxy {
89
102
  isPending(requestId) {
90
103
  return this.pendingApprovals.has(requestId);
91
104
  }
105
+ /** 检查工具是否已被"始终允许"(内存缓存 + settings.json 双重检查) */
106
+ isToolAlwaysAllowed(toolName, projectPath) {
107
+ // 1. 内存缓存(最快路径)
108
+ if (this.alwaysAllowedTools.has(toolName))
109
+ return true;
110
+ // 2. settings.json 检查
111
+ return this.isToolInClaudeSettings(toolName, projectPath);
112
+ }
92
113
  /** 检查工具是否已在 settings.json permissions.allow 中(检查项目级和全局) */
93
114
  isToolInClaudeSettings(toolName, projectPath) {
94
115
  const checkPath = (filepath) => {
@@ -96,8 +117,18 @@ class ApprovalProxy {
96
117
  const raw = node_fs_1.default.readFileSync(filepath, 'utf-8');
97
118
  const settings = JSON.parse(raw);
98
119
  const allow = settings?.permissions?.allow ?? [];
99
- // 匹配 "Edit(*)" "Edit" 开头的任何条目
100
- return allow.some(entry => entry === `${toolName}(*)` || entry === toolName);
120
+ return allow.some(entry => {
121
+ // 精确匹配: "Edit" === "Edit"
122
+ if (entry === toolName)
123
+ return true;
124
+ // 通配符匹配: "Edit(*)" 表示允许该工具的所有调用
125
+ if (entry === `${toolName}(*)`)
126
+ return true;
127
+ // MCP 服务器级匹配: 条目 "mcp__pencil" 覆盖 "mcp__pencil__batch_design"
128
+ if (toolName.startsWith(`${entry}__`))
129
+ return true;
130
+ return false;
131
+ });
101
132
  }
102
133
  catch {
103
134
  return false;
@@ -147,6 +178,8 @@ class ApprovalProxy {
147
178
  const label = projectPath ? `${projectPath}/.claude/settings.json` : '~/.claude/settings.json';
148
179
  console.log(`[ApprovalProxy] 已将 ${entry} 写入 ${label}`);
149
180
  }
181
+ // 同步更新内存缓存
182
+ this.alwaysAllowedTools.add(toolName);
150
183
  }
151
184
  catch (err) {
152
185
  console.error('[ApprovalProxy] 写入 settings.json 失败:', err);
@@ -257,10 +290,15 @@ class ApprovalProxy {
257
290
  createdAt: Date.now(),
258
291
  };
259
292
  console.log(`[ApprovalProxy] 收到审批请求: ${requestId} (${approvalRequest.toolName})`);
260
- // 检查工具是否已在 Claude Code settings 中被允许,如果是直接放行(不需要手机审批)
261
- // 优先检查项目级,再检查全局
262
- if (this.isToolInClaudeSettings(approvalRequest.toolName, projectPath !== 'unknown' ? projectPath : undefined)) {
263
- console.log(`[ApprovalProxy] ${approvalRequest.toolName} 已在 settings.json 中被允许,直接放行`);
293
+ // 检查工具是否已被"始终允许"(内存缓存 + settings.json),直接放行不发通知
294
+ if (this.isToolAlwaysAllowed(approvalRequest.toolName, projectPath !== 'unknown' ? projectPath : undefined)) {
295
+ console.log(`[ApprovalProxy] ${approvalRequest.toolName} 已被始终允许,直接放行(不通知)`);
296
+ this.sendJson(res, 200, { decision: 'allow' });
297
+ return;
298
+ }
299
+ // YOLO 模式:服务端直接放行(即使手机断连也生效)
300
+ if (this.yoloSessions.get(approvalRequest.sessionId)) {
301
+ console.log(`[ApprovalProxy] YOLO 模式,自动放行: ${approvalRequest.toolName}`);
264
302
  this.sendJson(res, 200, { decision: 'allow' });
265
303
  return;
266
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApprovalProxy.js","sourceRoot":"","sources":["../../src/approval/ApprovalProxy.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,sDAAwB;AACxB,0DAA4B;AAC5B,sDAAwB;AACxB,+BAAmC;AAenC;;;;;GAKG;AACH,MAAa,aAAa;IAChB,MAAM,CAAa;IACnB,KAAK,CAAQ;IACb,IAAI,CAAQ;IACZ,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;IAE1E,wDAAwD;IAChD,gBAAgB,GAAG,IAAI,GAAG,EAI9B,CAAA;IAEJ,wBAAwB;IAChB,wBAAwB,GAA8C,EAAE,CAAA;IAEhF,uBAAuB;IACf,kBAAkB,GAA8B,IAAI,CAAA;IAE5D,YAAY,OAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAExB,IAAI,CAAC,MAAM,GAAG,mBAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;YACpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAA6B;QAC/C,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;YACxC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAClC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,CAAA;gBAChF,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;YACF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+CAA+C;IAC/C,SAAS;IACT,+CAA+C;IAE/C,4BAA4B;IAC5B,iBAAiB,CAAC,QAA4C;QAC5D,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,+BAA+B;IAC/B,qBAAqB,CAAC,QAA0B;QAC9C,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,SAAiB,EAAE,QAA0B;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,wBAAwB,SAAS,UAAU,CAAC,CAAA;YACzD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,UAAU;QACV,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,2BAA2B;QAC3B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACzB,YAAY;QACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAEvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,SAAS,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,mBAAmB;IACnB,eAAe;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA;IACnC,CAAC;IAED,yBAAyB;IACzB,SAAS,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC;IAED,2DAA2D;IACnD,sBAAsB,CAAC,QAAgB,EAAE,WAAoB;QACnE,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAW,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;gBAC3D,MAAM,KAAK,GAAI,QAAQ,EAAE,WAAuC,EAAE,KAA6B,IAAI,EAAE,CAAA;gBACrG,gCAAgC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,QAAQ,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAA;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAA;QAED,eAAe;QACf,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,mBAAmB,GAAG,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;YAC9E,IAAI,SAAS,CAAC,mBAAmB,CAAC;gBAAE,OAAO,IAAI,CAAA;QACjD,CAAC;QACD,QAAQ;QACR,OAAO,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACrC,CAAC;IAED,oDAAoD;IACpD,mBAAmB,CAAC,WAA+B,EAAE,QAAgB;QACnE,MAAM,UAAU,GAAG,WAAW;YAC5B,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;QAErB,IAAI,CAAC;YACH,SAAS;YACT,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBACpC,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,iBAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,GAA4B,EAAE,CAAA;YAC1C,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1B,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAsC,CAAA;YAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;YAClB,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAiB,CAAA;YACrC,MAAM,KAAK,GAAG,GAAG,QAAQ,KAAK,CAAA;YAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACjB,iBAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;gBACxE,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAA;gBAC9F,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,OAAO,KAAK,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,4BAA4B,CAAC,SAAiB;QAC5C,MAAM,MAAM,GAAsB,EAAE,CAAA;QACpC,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACzD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAe;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3C,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC3B,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;YACtC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACtF,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,KAAK;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,mBAAmB;YACnB,iBAAiB;YACjB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAA;YAClE,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;gBACzC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC3B,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YACzD,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;YAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;oBAC3C,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+CAA+C;IAC/C,OAAO;IACP,+CAA+C;IAE/C,WAAW;IACH,aAAa,CAAC,GAAyB,EAAE,GAAwB;QACvE,iBAAiB;QACjB,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACjD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAA;QACnE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAA;QAE5E,WAAW;QACX,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;QAE7B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAC3D,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACnC,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,kBAAkB,CAAC,GAAyB,EAAE,GAAwB;QAClF,IAAI,CAAC;YACH,iBAAiB;YACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YAE1C,wBAAwB;YACxB,mFAAmF;YACnF,MAAM,OAAO,GAAI,IAAI,CAAC,OAAmC,IAAI,IAAI,CAAA;YACjE,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAA;YAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAA;YACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAA;YACzE,MAAM,SAAS,GAAI,OAAO,CAAC,UAAsC,IAAK,IAAI,CAAC,UAAsC,IAAI,EAAE,CAAA;YACvH,MAAM,eAAe,GAAoB;gBACvC,EAAE,EAAE,SAAS;gBACb,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;gBAC9C,WAAW;gBACX,QAAQ;gBACR,SAAS;gBACT,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,QAAQ,SAAS,CAAC;gBACpF,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAA;YAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,KAAK,eAAe,CAAC,QAAQ,GAAG,CAAC,CAAA;YAEjF,sDAAsD;YACtD,gBAAgB;YAChB,IAAI,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/G,OAAO,CAAC,GAAG,CAAC,mBAAmB,eAAe,CAAC,QAAQ,6BAA6B,CAAC,CAAA;gBACrF,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC9C,OAAM;YACR,CAAC;YAED,iBAAiB;YACjB,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;YAE3C,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,EAAE;gBAC/D,+BAA+B;gBAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,WAAW,CAAC,CAAA;oBACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBACvC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;gBAChC,CAAC,EAAE,OAAO,CAAC,CAAA;gBAEX,6CAA6C;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YACpF,CAAC,CAAC,CAAA;YAEF,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAC/C,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED,aAAa;IACL,YAAY,CAAC,IAA0B,EAAE,GAAwB;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAA;QACjF,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACtB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,wBAAwB;IAChB,WAAW,CAAC,GAAyB,EAAE,GAAwB;QACrE,YAAY;QACZ,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAA;QAC9C,MAAM,OAAO,GAAG,aAAa,KAAK,WAAW;eACxC,aAAa,KAAK,KAAK;eACvB,aAAa,KAAK,kBAAkB,CAAA;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAA;YACxD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,oBAAoB;IACZ,qBAAqB,CAAC,OAAwB;QACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC;IAC/B,aAAa,CAAC,GAAyB;QAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,MAAM;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,IAAI,SAAS,GAAG,CAAC,CAAA;YAEjB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,SAAS,IAAI,KAAK,CAAC,MAAM,CAAA;gBACzB,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;oBAC9B,GAAG,CAAC,OAAO,EAAE,CAAA;oBACb,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;oBACvC,OAAM;gBACR,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;oBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;oBACzD,OAAO,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sBAAsB;IACd,QAAQ,CAAC,GAAwB,EAAE,UAAkB,EAAE,IAAa;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACjC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE;YACxB,cAAc,EAAE,iCAAiC;YACjD,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC1C,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;CACF;AA/XD,sCA+XC"}
1
+ {"version":3,"file":"ApprovalProxy.js","sourceRoot":"","sources":["../../src/approval/ApprovalProxy.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  * Hook 安装器
3
3
  *
4
4
  * 负责将 Sessix 的审批 hook 脚本安装到 Claude Code 中:
5
- * 1. 创建 ~/.sessix/hooks/ 目录并写入 approval-hook.sh
6
- * 2. 在 ~/.claude/settings.json 中注册 PreToolUse hook
5
+ * 1. 创建 ~/.sessix/hooks/ 目录并写入 approval-hook.sh 和 permission-accept.sh
6
+ * 2. 在 ~/.claude/settings.json 中注册 PreToolUse 和 PermissionRequest hook
7
7
  */
8
8
  export declare class HookInstaller {
9
9
  /**
@@ -35,6 +35,8 @@ export declare class HookInstaller {
35
35
  * 从 Claude Code settings.json 移除 Sessix hook 配置
36
36
  */
37
37
  private removeHookFromSettings;
38
+ /** 从指定 hook 事件数组中移除包含指定命令的条目 */
39
+ private removeHookCommand;
38
40
  /**
39
41
  * 读取 Claude Code settings.json
40
42
  */
@@ -44,12 +46,14 @@ export declare class HookInstaller {
44
46
  */
45
47
  private writeClaudeSettings;
46
48
  /**
47
- * 检查 settings 中是否已包含 Sessix hook 配置
49
+ * 检查 settings 中是否已包含所有 Sessix hook 配置
48
50
  */
49
51
  private hasHookConfig;
50
- /**
51
- * 判断一个 hook 条目是否是 Sessix 的
52
- */
53
- private isSessionHookEntry;
52
+ /** 检查 PreToolUse 中是否有 approval-hook.sh */
53
+ private hasPreToolUseConfig;
54
+ /** 检查 PermissionRequest 中是否有 permission-accept.sh */
55
+ private hasPermissionRequestConfig;
56
+ /** 检查 hook 数组中是否包含指定命令 */
57
+ private hasHookEntry;
54
58
  }
55
59
  //# sourceMappingURL=HookInstaller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HookInstaller.d.ts","sourceRoot":"","sources":["../../src/hooks/HookInstaller.ts"],"names":[],"mappings":"AAkEA;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBrC;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;YACW,sBAAsB;IAyBpC;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,mBAAmB;IAMjC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"HookInstaller.d.ts","sourceRoot":"","sources":["../../src/hooks/HookInstaller.ts"],"names":[],"mappings":"AA6FA;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAyBrC;;OAEG;YACW,iBAAiB;IAwC/B;;OAEG;YACW,sBAAsB;IAiBpC,gCAAgC;IAChC,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,mBAAmB;IAMjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB,0CAA0C;IAC1C,OAAO,CAAC,mBAAmB;IAI3B,qDAAqD;IACrD,OAAO,CAAC,0BAA0B;IAIlC,0BAA0B;IAC1B,OAAO,CAAC,YAAY;CAMrB"}
@@ -8,10 +8,14 @@ const node_os_1 = require("node:os");
8
8
  const SESSIX_HOOKS_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.sessix', 'hooks');
9
9
  /** Hook 脚本文件路径 */
10
10
  const HOOK_SCRIPT_PATH = (0, node_path_1.join)(SESSIX_HOOKS_DIR, 'approval-hook.sh');
11
+ /** PermissionRequest 兜底脚本路径 */
12
+ const PERMISSION_ACCEPT_PATH = (0, node_path_1.join)(SESSIX_HOOKS_DIR, 'permission-accept.sh');
11
13
  /** Claude Code settings.json 路径 */
12
14
  const CLAUDE_SETTINGS_PATH = (0, node_path_1.join)((0, node_os_1.homedir)(), '.claude', 'settings.json');
13
15
  /** hook 脚本命令(使用 ~ 前缀,Claude Code 会展开) */
14
16
  const HOOK_COMMAND = '~/.sessix/hooks/approval-hook.sh';
17
+ /** PermissionRequest 兜底脚本命令 */
18
+ const PERMISSION_ACCEPT_COMMAND = '~/.sessix/hooks/permission-accept.sh';
15
19
  /**
16
20
  * approval-hook.sh 脚本模板
17
21
  *
@@ -61,12 +65,32 @@ else
61
65
  exit 0
62
66
  fi
63
67
  `;
68
+ /**
69
+ * permission-accept.sh 脚本模板
70
+ *
71
+ * 仅在 Sessix 管理的会话中激活。
72
+ * 当 Claude Code 弹出内置权限对话框(PermissionRequest)时,
73
+ * 自动接受权限请求,避免 Sessix 会话因缺少终端 UI 而永久阻塞。
74
+ * 不做任何 HTTP 调用,即时返回。
75
+ */
76
+ const PERMISSION_ACCEPT_TEMPLATE = `#!/bin/bash
77
+ # Sessix PermissionRequest 兜底
78
+ # 自动接受权限请求,避免 Sessix 会话阻塞
79
+
80
+ if [ -z "$SESSIX_SESSION_ID" ]; then
81
+ exit 0
82
+ fi
83
+
84
+ # 输出 JSON 决策,自动接受权限请求
85
+ echo '{"decision":"allow"}'
86
+ exit 0
87
+ `;
64
88
  /**
65
89
  * Hook 安装器
66
90
  *
67
91
  * 负责将 Sessix 的审批 hook 脚本安装到 Claude Code 中:
68
- * 1. 创建 ~/.sessix/hooks/ 目录并写入 approval-hook.sh
69
- * 2. 在 ~/.claude/settings.json 中注册 PreToolUse hook
92
+ * 1. 创建 ~/.sessix/hooks/ 目录并写入 approval-hook.sh 和 permission-accept.sh
93
+ * 2. 在 ~/.claude/settings.json 中注册 PreToolUse 和 PermissionRequest hook
70
94
  */
71
95
  class HookInstaller {
72
96
  /**
@@ -82,8 +106,10 @@ class HookInstaller {
82
106
  await (0, promises_1.mkdir)(SESSIX_HOOKS_DIR, { recursive: true });
83
107
  // 2. 写入 hook 脚本
84
108
  await (0, promises_1.writeFile)(HOOK_SCRIPT_PATH, HOOK_SCRIPT_TEMPLATE, 'utf-8');
109
+ await (0, promises_1.writeFile)(PERMISSION_ACCEPT_PATH, PERMISSION_ACCEPT_TEMPLATE, 'utf-8');
85
110
  // 3. 添加执行权限
86
111
  await (0, promises_1.chmod)(HOOK_SCRIPT_PATH, 0o755);
112
+ await (0, promises_1.chmod)(PERMISSION_ACCEPT_PATH, 0o755);
87
113
  // 4. 更新 Claude Code settings.json
88
114
  await this.addHookToSettings();
89
115
  console.log('[HookInstaller] Hook 安装完成');
@@ -103,20 +129,24 @@ class HookInstaller {
103
129
  * 脚本文件和 settings.json 配置必须同时存在才算已安装
104
130
  */
105
131
  async isInstalled() {
106
- // 检查脚本文件是否存在
107
- let scriptExists = false;
132
+ // 检查两个脚本文件是否都存在
133
+ let approvalScriptExists = false;
134
+ let permissionScriptExists = false;
108
135
  try {
109
136
  await (0, promises_1.access)(HOOK_SCRIPT_PATH);
110
- scriptExists = true;
137
+ approvalScriptExists = true;
111
138
  }
112
- catch {
113
- // 脚本不存在
139
+ catch { /* 不存在 */ }
140
+ try {
141
+ await (0, promises_1.access)(PERMISSION_ACCEPT_PATH);
142
+ permissionScriptExists = true;
114
143
  }
144
+ catch { /* 不存在 */ }
115
145
  // 检查 settings.json 中是否有 Sessix hook 配置
116
146
  const settings = await this.readClaudeSettings();
117
147
  const configExists = this.hasHookConfig(settings);
118
- // 两者都存在才算已安装
119
- return scriptExists && configExists;
148
+ // 所有组件都存在才算已安装
149
+ return approvalScriptExists && permissionScriptExists && configExists;
120
150
  }
121
151
  // ============================================
122
152
  // 内部方法
@@ -126,50 +156,66 @@ class HookInstaller {
126
156
  */
127
157
  async addHookToSettings() {
128
158
  let settings = await this.readClaudeSettings();
129
- // 如果已经存在,跳过
130
- if (this.hasHookConfig(settings)) {
131
- console.log('[HookInstaller] Hook 配置已存在,跳过');
132
- return;
133
- }
134
- // 确保 hooks 和 PreToolUse 结构存在
159
+ let changed = false;
160
+ // 确保 hooks 结构存在
135
161
  if (!settings.hooks) {
136
162
  settings.hooks = {};
137
163
  }
138
- if (!settings.hooks.PreToolUse) {
139
- settings.hooks.PreToolUse = [];
164
+ // PreToolUse: approval-hook.sh
165
+ if (!this.hasPreToolUseConfig(settings)) {
166
+ if (!settings.hooks.PreToolUse) {
167
+ settings.hooks.PreToolUse = [];
168
+ }
169
+ settings.hooks.PreToolUse.push({
170
+ matcher: '',
171
+ hooks: [{ type: 'command', command: HOOK_COMMAND }],
172
+ });
173
+ changed = true;
174
+ }
175
+ // PermissionRequest: permission-accept.sh(兜底未知工具)
176
+ if (!this.hasPermissionRequestConfig(settings)) {
177
+ if (!settings.hooks.PermissionRequest) {
178
+ settings.hooks.PermissionRequest = [];
179
+ }
180
+ settings.hooks.PermissionRequest.push({
181
+ matcher: '',
182
+ hooks: [{ type: 'command', command: PERMISSION_ACCEPT_COMMAND }],
183
+ });
184
+ changed = true;
185
+ }
186
+ if (changed) {
187
+ await this.writeClaudeSettings(settings);
188
+ }
189
+ else {
190
+ console.log('[HookInstaller] Hook 配置已存在,跳过');
140
191
  }
141
- // 添加 Sessix hook 配置
142
- settings.hooks.PreToolUse.push({
143
- matcher: '',
144
- hooks: [
145
- {
146
- type: 'command',
147
- command: HOOK_COMMAND,
148
- },
149
- ],
150
- });
151
- await this.writeClaudeSettings(settings);
152
192
  }
153
193
  /**
154
194
  * 从 Claude Code settings.json 移除 Sessix hook 配置
155
195
  */
156
196
  async removeHookFromSettings() {
157
197
  let settings = await this.readClaudeSettings();
158
- if (!settings.hooks?.PreToolUse) {
198
+ if (!settings.hooks)
159
199
  return;
160
- }
161
- // 过滤掉包含 Sessix hook 命令的条目
162
- settings.hooks.PreToolUse = settings.hooks.PreToolUse.filter((entry) => !this.isSessionHookEntry(entry));
163
- // 如果 PreToolUse 为空,删除它
164
- if (settings.hooks.PreToolUse.length === 0) {
165
- delete settings.hooks.PreToolUse;
166
- }
200
+ // 移除 PreToolUse 中的 approval-hook.sh
201
+ this.removeHookCommand(settings, 'PreToolUse', HOOK_COMMAND);
202
+ // 移除 PermissionRequest 中的 permission-accept.sh
203
+ this.removeHookCommand(settings, 'PermissionRequest', PERMISSION_ACCEPT_COMMAND);
167
204
  // 如果 hooks 为空,删除它
168
205
  if (Object.keys(settings.hooks).length === 0) {
169
206
  delete settings.hooks;
170
207
  }
171
208
  await this.writeClaudeSettings(settings);
172
209
  }
210
+ /** 从指定 hook 事件数组中移除包含指定命令的条目 */
211
+ removeHookCommand(settings, event, command) {
212
+ if (!Array.isArray(settings.hooks?.[event]))
213
+ return;
214
+ settings.hooks[event] = settings.hooks[event].filter((entry) => !entry?.hooks?.some?.((h) => h.type === 'command' && h.command === command));
215
+ if (settings.hooks[event].length === 0) {
216
+ delete settings.hooks[event];
217
+ }
218
+ }
173
219
  /**
174
220
  * 读取 Claude Code settings.json
175
221
  */
@@ -192,23 +238,24 @@ class HookInstaller {
192
238
  await (0, promises_1.writeFile)(CLAUDE_SETTINGS_PATH, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
193
239
  }
194
240
  /**
195
- * 检查 settings 中是否已包含 Sessix hook 配置
241
+ * 检查 settings 中是否已包含所有 Sessix hook 配置
196
242
  */
197
243
  hasHookConfig(settings) {
198
- const preToolUse = settings?.hooks?.PreToolUse;
199
- if (!Array.isArray(preToolUse)) {
200
- return false;
201
- }
202
- return preToolUse.some((entry) => this.isSessionHookEntry(entry));
244
+ return this.hasPreToolUseConfig(settings) && this.hasPermissionRequestConfig(settings);
203
245
  }
204
- /**
205
- * 判断一个 hook 条目是否是 Sessix 的
206
- */
207
- isSessionHookEntry(entry) {
208
- if (!entry?.hooks || !Array.isArray(entry.hooks)) {
246
+ /** 检查 PreToolUse 中是否有 approval-hook.sh */
247
+ hasPreToolUseConfig(settings) {
248
+ return this.hasHookEntry(settings?.hooks?.PreToolUse, HOOK_COMMAND);
249
+ }
250
+ /** 检查 PermissionRequest 中是否有 permission-accept.sh */
251
+ hasPermissionRequestConfig(settings) {
252
+ return this.hasHookEntry(settings?.hooks?.PermissionRequest, PERMISSION_ACCEPT_COMMAND);
253
+ }
254
+ /** 检查 hook 数组中是否包含指定命令 */
255
+ hasHookEntry(hookArray, command) {
256
+ if (!Array.isArray(hookArray))
209
257
  return false;
210
- }
211
- return entry.hooks.some((hook) => hook.type === 'command' && hook.command === HOOK_COMMAND);
258
+ return hookArray.some((entry) => entry?.hooks?.some?.((hook) => hook.type === 'command' && hook.command === command));
212
259
  }
213
260
  }
214
261
  exports.HookInstaller = HookInstaller;
@@ -1 +1 @@
1
- {"version":3,"file":"HookInstaller.js","sourceRoot":"","sources":["../../src/hooks/HookInstaller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HookInstaller.js","sourceRoot":"","sources":["../../src/hooks/HookInstaller.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1113,6 +1113,7 @@ var SessionManager = class {
1113
1113
  }
1114
1114
  /**
1115
1115
  * 刷新缓冲的 assistant 事件,批量发送
1116
+ * Public:subscribe 时需要在读取缓冲区前先刷出,避免事件同时出现在 session_history 和广播中
1116
1117
  */
1117
1118
  flushPendingAssistant(sessionId) {
1118
1119
  const pending = this.pendingAssistantEvents.get(sessionId);
@@ -2386,7 +2387,7 @@ var NotificationService = class {
2386
2387
  const title = pendingCount > 1 ? t("notification.pendingApprovals", { title: sessionTitle, count: pendingCount }) : sessionTitle;
2387
2388
  const body = pendingCount > 1 ? `\u{1F527} \u6700\u65B0: ${request.toolName}: ${request.description}` : `\u{1F527} ${request.toolName}: ${request.description}`;
2388
2389
  if (this.activityPushChannel?.hasToken(request.sessionId)) {
2389
- const dangerLevel = this.getDangerLevel(request.toolName);
2390
+ const dangerLevel2 = this.getDangerLevel(request.toolName);
2390
2391
  const isYoloMode = this.getYoloMode(request.sessionId);
2391
2392
  this.activityPushChannel.updateActivityWithAlert(
2392
2393
  request.sessionId,
@@ -2398,7 +2399,7 @@ var NotificationService = class {
2398
2399
  requestId: request.id,
2399
2400
  toolName: request.toolName,
2400
2401
  description: request.description.slice(0, 80),
2401
- dangerLevel,
2402
+ dangerLevel: dangerLevel2,
2402
2403
  pendingCount
2403
2404
  },
2404
2405
  isYoloMode,
@@ -2408,15 +2409,28 @@ var NotificationService = class {
2408
2409
  );
2409
2410
  return;
2410
2411
  }
2412
+ const dangerLevel = this.getDangerLevel(request.toolName);
2413
+ const isDangerous = dangerLevel === "danger" || dangerLevel === "write";
2414
+ const categoryId = isDangerous ? "APPROVAL_DANGEROUS" : "APPROVAL_NORMAL";
2415
+ const projectName = (0, import_node_path3.basename)(
2416
+ this.sessionManager.getActiveSessions().find((s) => s.id === request.sessionId)?.projectPath ?? ""
2417
+ );
2418
+ const pushTitle = isDangerous ? `\u26A0\uFE0F ${title}` : title;
2419
+ const subtitle = `\u{1F527} ${request.toolName}: ${this.extractTarget(request)}`;
2411
2420
  this.notify({
2412
- title,
2421
+ title: pushTitle,
2422
+ subtitle,
2413
2423
  body,
2414
2424
  sound: "default",
2415
2425
  badge: this.getGlobalPendingCount(),
2426
+ categoryId,
2416
2427
  data: {
2417
2428
  type: "approval_request",
2418
2429
  sessionId: request.sessionId,
2419
- requestId: request.id
2430
+ requestId: request.id,
2431
+ toolName: request.toolName,
2432
+ projectName,
2433
+ dangerLevel
2420
2434
  }
2421
2435
  });
2422
2436
  }
@@ -2451,6 +2465,13 @@ var NotificationService = class {
2451
2465
  }
2452
2466
  });
2453
2467
  }
2468
+ /** 从审批请求中提取操作目标的简短描述 */
2469
+ extractTarget(request) {
2470
+ const input = request.toolInput;
2471
+ if (input.file_path) return (0, import_node_path3.basename)(String(input.file_path));
2472
+ if (input.command) return String(input.command).slice(0, 40);
2473
+ return request.description.slice(0, 40);
2474
+ }
2454
2475
  /** 简单的工具危险等级判断 */
2455
2476
  getDangerLevel(toolName) {
2456
2477
  if (toolName === "Bash") return "danger";
@@ -2630,9 +2651,11 @@ var ExpoNotificationChannel = class {
2630
2651
  return {
2631
2652
  to,
2632
2653
  title: payload.title,
2654
+ subtitle: payload.subtitle,
2633
2655
  body: payload.body,
2634
2656
  badge: payload.badge,
2635
2657
  sound: pushSound,
2658
+ categoryId: payload.categoryId,
2636
2659
  data: payload.data ?? {}
2637
2660
  };
2638
2661
  });
@@ -3495,7 +3518,8 @@ async function start(opts = {}) {
3495
3518
  type: "session_list",
3496
3519
  sessions: sessionManager.getActiveSessions()
3497
3520
  });
3498
- const bufferedEvents = sessionManager.getSessionEvents(event.sessionId);
3521
+ sessionManager.flushPendingAssistant(event.sessionId);
3522
+ const bufferedEvents = [...sessionManager.getSessionEvents(event.sessionId)];
3499
3523
  if (sessionManager.isBufferTruncated(event.sessionId)) {
3500
3524
  const projectPath = sessionManager.getSessionProjectPath(event.sessionId);
3501
3525
  if (projectPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoNotificationChannel.d.ts","sourceRoot":"","sources":["../../src/notification/ExpoNotificationChannel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAI3F;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IACjE,OAAO,CAAC,MAAM,CAAyB;IAEvC,WAAW,IAAI,OAAO;IAItB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BxD"}
1
+ {"version":3,"file":"ExpoNotificationChannel.d.ts","sourceRoot":"","sources":["../../src/notification/ExpoNotificationChannel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAI3F;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IACjE,OAAO,CAAC,MAAM,CAAyB;IAEvC,WAAW,IAAI,OAAO;IAItB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqCxD"}
@@ -45,7 +45,15 @@ class ExpoNotificationChannel {
45
45
  console.warn('[ExpoNotificationChannel] Expo Push API 返回错误:', res.status, JSON.stringify(body));
46
46
  }
47
47
  else {
48
- console.log('[ExpoNotificationChannel] Expo Push API 响应:', JSON.stringify(body));
48
+ // 检查每个 ticket 的状态,记录失败的推送
49
+ const data = body.data;
50
+ if (Array.isArray(data)) {
51
+ for (const ticket of data) {
52
+ if (ticket.status === 'error') {
53
+ console.error(`[ExpoNotificationChannel] 推送失败: ${ticket.message} (${ticket.details?.error ?? 'unknown'})`);
54
+ }
55
+ }
56
+ }
49
57
  }
50
58
  }
51
59
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoNotificationChannel.js","sourceRoot":"","sources":["../../src/notification/ExpoNotificationChannel.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,sCAAsC,CAAA;AAE5D;;;;;;;GAOG;AACH,MAAa,uBAAuB;IAC1B,MAAM,GAAgB,IAAI,GAAG,EAAE,CAAA;IAEvC,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA4B;QACrC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QAElC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,EAAE;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;SACzB,CAAC,CAAC,CAAA;QAEH,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;gBACrC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC/B,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YACjG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAClF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;CACF;AA9CD,0DA8CC"}
1
+ {"version":3,"file":"ExpoNotificationChannel.js","sourceRoot":"","sources":["../../src/notification/ExpoNotificationChannel.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,sCAAsC,CAAA;AAE5D;;;;;;;GAOG;AACH,MAAa,uBAAuB;IAC1B,MAAM,GAAgB,IAAI,GAAG,EAAE,CAAA;IAEvC,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA4B;QACrC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QAElC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,EAAE;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;SACzB,CAAC,CAAC,CAAA;QAEH,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;gBACrC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC/B,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YACjG,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,MAAM,IAAI,GAAI,IAA0G,CAAC,IAAI,CAAA;gBAC7H,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;wBAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;4BAC9B,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS,GAAG,CAAC,CAAA;wBAC5G,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;CACF;AAtDD,0DAsDC"}
@@ -36,7 +36,7 @@ export declare class NotificationService {
36
36
  /** 更新会话的 YOLO 模式状态 */
37
37
  setYoloMode(sessionId: string, enabled: boolean): void;
38
38
  /** 直接触发审批通知(由 ApprovalProxy 回调调用) */
39
- notifyApproval(request: ApprovalRequest): void;
39
+ notifyApproval(request: ApprovalRequest, pendingCount: number): void;
40
40
  /** 简单的工具危险等级判断 */
41
41
  private getDangerLevel;
42
42
  /** 清理资源 */
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationService.d.ts","sourceRoot":"","sources":["../../src/notification/NotificationService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,6BAA6B,CAAA;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IARrB,OAAO,CAAC,UAAU,CAAwE;IAC1F,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,0CAA0C;IAC1C,OAAO,CAAC,aAAa,CAA6B;gBAGxC,cAAc,EAAE,cAAc,EAC9B,WAAW,GAAE,uBAAuB,GAAG,IAAW;IAQ5D,8BAA8B;IAC9B,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,UAAO,GAAG,IAAI;IAI1E,qBAAqB;IACrB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrD,0CAA0C;IAC1C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,qCAAqC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,8CAA8C;IAC9C,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI1D,0DAA0D;IAC1D,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5D,gCAAgC;IAChC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhD,sBAAsB;IACtB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAItD,qCAAqC;IACrC,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IA0C9C,kBAAkB;IAClB,OAAO,CAAC,cAAc;IAMtB,WAAW;IACX,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,cAAc;IAKtB,sBAAsB;IACtB,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"NotificationService.d.ts","sourceRoot":"","sources":["../../src/notification/NotificationService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,6BAA6B,CAAA;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IARrB,OAAO,CAAC,UAAU,CAAwE;IAC1F,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,0CAA0C;IAC1C,OAAO,CAAC,aAAa,CAA6B;gBAGxC,cAAc,EAAE,cAAc,EAC9B,WAAW,GAAE,uBAAuB,GAAG,IAAW;IAQ5D,8BAA8B;IAC9B,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,UAAO,GAAG,IAAI;IAI1E,qBAAqB;IACrB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrD,0CAA0C;IAC1C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,qCAAqC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,8CAA8C;IAC9C,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI1D,0DAA0D;IAC1D,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5D,gCAAgC;IAChC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhD,sBAAsB;IACtB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAItD,qCAAqC;IACrC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAoDpE,kBAAkB;IAClB,OAAO,CAAC,cAAc;IAMtB,WAAW;IACX,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,cAAc;IAKtB,sBAAsB;IACtB,OAAO,CAAC,WAAW;CAGpB"}