sema-core 2.1.0 → 2.1.2

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 (152) hide show
  1. package/dist/conf/config.d.ts +2 -0
  2. package/dist/conf/config.d.ts.map +1 -1
  3. package/dist/conf/config.js +4 -1
  4. package/dist/conf/config.js.map +1 -1
  5. package/dist/core/Conversation.d.ts.map +1 -1
  6. package/dist/core/Conversation.js +9 -3
  7. package/dist/core/Conversation.js.map +1 -1
  8. package/dist/core/SemaCore.d.ts +5 -0
  9. package/dist/core/SemaCore.d.ts.map +1 -1
  10. package/dist/core/SemaCore.js +8 -0
  11. package/dist/core/SemaCore.js.map +1 -1
  12. package/dist/core/SemaEngine.d.ts +0 -5
  13. package/dist/core/SemaEngine.d.ts.map +1 -1
  14. package/dist/core/SemaEngine.js +19 -50
  15. package/dist/core/SemaEngine.js.map +1 -1
  16. package/dist/events/types.d.ts +4 -1
  17. package/dist/events/types.d.ts.map +1 -1
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/manager/ConfManager.d.ts.map +1 -1
  22. package/dist/manager/ConfManager.js +3 -0
  23. package/dist/manager/ConfManager.js.map +1 -1
  24. package/dist/manager/PermissionManager.d.ts.map +1 -1
  25. package/dist/manager/PermissionManager.js +124 -216
  26. package/dist/manager/PermissionManager.js.map +1 -1
  27. package/dist/manager/UsageStatsManager.d.ts +79 -0
  28. package/dist/manager/UsageStatsManager.d.ts.map +1 -0
  29. package/dist/manager/UsageStatsManager.js +402 -0
  30. package/dist/manager/UsageStatsManager.js.map +1 -0
  31. package/dist/manager/runShellGate.d.ts +25 -0
  32. package/dist/manager/runShellGate.d.ts.map +1 -0
  33. package/dist/manager/runShellGate.js +154 -0
  34. package/dist/manager/runShellGate.js.map +1 -0
  35. package/dist/prompt/inputPredict.d.ts +1 -1
  36. package/dist/prompt/inputPredict.d.ts.map +1 -1
  37. package/dist/prompt/inputPredict.js +3 -1
  38. package/dist/prompt/inputPredict.js.map +1 -1
  39. package/dist/prompt/permission.d.ts.map +1 -1
  40. package/dist/prompt/permission.js +91 -36
  41. package/dist/prompt/permission.js.map +1 -1
  42. package/dist/prompt/skills.d.ts +18 -0
  43. package/dist/prompt/skills.d.ts.map +1 -0
  44. package/dist/prompt/skills.js +151 -0
  45. package/dist/prompt/skills.js.map +1 -0
  46. package/dist/prompt/toolAliases.d.ts +12 -1
  47. package/dist/prompt/toolAliases.d.ts.map +1 -1
  48. package/dist/prompt/toolAliases.js +28 -1
  49. package/dist/prompt/toolAliases.js.map +1 -1
  50. package/dist/prompt/tools/runShell.js +1 -1
  51. package/dist/prompt/tools/skill.d.ts.map +1 -1
  52. package/dist/prompt/tools/skill.js +2 -1
  53. package/dist/prompt/tools/skill.js.map +1 -1
  54. package/dist/services/agents/agentsManager.d.ts +5 -2
  55. package/dist/services/agents/agentsManager.d.ts.map +1 -1
  56. package/dist/services/agents/agentsManager.js +33 -21
  57. package/dist/services/agents/agentsManager.js.map +1 -1
  58. package/dist/services/api/queryLLM.d.ts.map +1 -1
  59. package/dist/services/api/queryLLM.js +13 -0
  60. package/dist/services/api/queryLLM.js.map +1 -1
  61. package/dist/services/commands/commandsManager.d.ts +5 -6
  62. package/dist/services/commands/commandsManager.d.ts.map +1 -1
  63. package/dist/services/commands/commandsManager.js +28 -23
  64. package/dist/services/commands/commandsManager.js.map +1 -1
  65. package/dist/services/hooks/hookTriggers.d.ts.map +1 -1
  66. package/dist/services/hooks/hookTriggers.js +4 -1
  67. package/dist/services/hooks/hookTriggers.js.map +1 -1
  68. package/dist/services/hooks/hooksManager.d.ts +8 -2
  69. package/dist/services/hooks/hooksManager.d.ts.map +1 -1
  70. package/dist/services/hooks/hooksManager.js +70 -28
  71. package/dist/services/hooks/hooksManager.js.map +1 -1
  72. package/dist/services/mcp/MCPManager.d.ts +2 -1
  73. package/dist/services/mcp/MCPManager.d.ts.map +1 -1
  74. package/dist/services/mcp/MCPManager.js +4 -2
  75. package/dist/services/mcp/MCPManager.js.map +1 -1
  76. package/dist/services/memory/memManager.d.ts +8 -1
  77. package/dist/services/memory/memManager.d.ts.map +1 -1
  78. package/dist/services/memory/memManager.js +16 -2
  79. package/dist/services/memory/memManager.js.map +1 -1
  80. package/dist/services/plugins/pluginsManager.d.ts +1 -1
  81. package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
  82. package/dist/services/plugins/pluginsManager.js +13 -4
  83. package/dist/services/plugins/pluginsManager.js.map +1 -1
  84. package/dist/services/rules/rulesManager.d.ts +2 -1
  85. package/dist/services/rules/rulesManager.d.ts.map +1 -1
  86. package/dist/services/rules/rulesManager.js +2 -2
  87. package/dist/services/rules/rulesManager.js.map +1 -1
  88. package/dist/services/skills/skillsManager.d.ts +13 -8
  89. package/dist/services/skills/skillsManager.d.ts.map +1 -1
  90. package/dist/services/skills/skillsManager.js +68 -30
  91. package/dist/services/skills/skillsManager.js.map +1 -1
  92. package/dist/tools/EditNotebook.d.ts +1 -1
  93. package/dist/tools/PatchFile.d.ts.map +1 -1
  94. package/dist/tools/PatchFile.js +22 -18
  95. package/dist/tools/PatchFile.js.map +1 -1
  96. package/dist/tools/RunShell.d.ts +9 -9
  97. package/dist/tools/RunShell.d.ts.map +1 -1
  98. package/dist/tools/RunShell.js +11 -14
  99. package/dist/tools/RunShell.js.map +1 -1
  100. package/dist/tools/Skill.d.ts.map +1 -1
  101. package/dist/tools/Skill.js +40 -2
  102. package/dist/tools/Skill.js.map +1 -1
  103. package/dist/tools/ViewFile.d.ts.map +1 -1
  104. package/dist/tools/ViewFile.js +3 -19
  105. package/dist/tools/ViewFile.js.map +1 -1
  106. package/dist/tools/WriteFile.d.ts.map +1 -1
  107. package/dist/tools/WriteFile.js +4 -2
  108. package/dist/tools/WriteFile.js.map +1 -1
  109. package/dist/tools/base/tools.d.ts.map +1 -1
  110. package/dist/tools/base/tools.js +7 -1
  111. package/dist/tools/base/tools.js.map +1 -1
  112. package/dist/types/hook.d.ts +8 -3
  113. package/dist/types/hook.d.ts.map +1 -1
  114. package/dist/types/index.d.ts +3 -1
  115. package/dist/types/index.d.ts.map +1 -1
  116. package/dist/types/index.js.map +1 -1
  117. package/dist/types/plugin.d.ts +2 -0
  118. package/dist/types/plugin.d.ts.map +1 -1
  119. package/dist/types/skill.d.ts +1 -1
  120. package/dist/types/skill.d.ts.map +1 -1
  121. package/dist/util/autoRunContext.d.ts +3 -2
  122. package/dist/util/autoRunContext.d.ts.map +1 -1
  123. package/dist/util/autoRunContext.js +45 -11
  124. package/dist/util/autoRunContext.js.map +1 -1
  125. package/dist/util/commands.d.ts.map +1 -1
  126. package/dist/util/commands.js +6 -1
  127. package/dist/util/commands.js.map +1 -1
  128. package/dist/util/fetchSafety.d.ts +10 -3
  129. package/dist/util/fetchSafety.d.ts.map +1 -1
  130. package/dist/util/fetchSafety.js +22 -29
  131. package/dist/util/fetchSafety.js.map +1 -1
  132. package/dist/util/imageCompress.d.ts +16 -0
  133. package/dist/util/imageCompress.d.ts.map +1 -1
  134. package/dist/util/imageCompress.js +53 -0
  135. package/dist/util/imageCompress.js.map +1 -1
  136. package/dist/util/readPathClass.d.ts +16 -0
  137. package/dist/util/readPathClass.d.ts.map +1 -0
  138. package/dist/util/readPathClass.js +121 -0
  139. package/dist/util/readPathClass.js.map +1 -0
  140. package/dist/util/secureFile.d.ts +4 -0
  141. package/dist/util/secureFile.d.ts.map +1 -1
  142. package/dist/util/secureFile.js +8 -60
  143. package/dist/util/secureFile.js.map +1 -1
  144. package/dist/util/shell.d.ts +1 -0
  145. package/dist/util/shell.d.ts.map +1 -1
  146. package/dist/util/shell.js +36 -0
  147. package/dist/util/shell.js.map +1 -1
  148. package/dist/util/shellSafety.d.ts +26 -15
  149. package/dist/util/shellSafety.d.ts.map +1 -1
  150. package/dist/util/shellSafety.js +277 -60
  151. package/dist/util/shellSafety.js.map +1 -1
  152. package/package.json +1 -1
@@ -15,71 +15,17 @@ const file_1 = require("../util/file");
15
15
  const agentStats_1 = require("../util/agentStats");
16
16
  const path_1 = require("path");
17
17
  const savePath_1 = require("../util/savePath");
18
- const os_1 = require("os");
19
- const platform_1 = require("../util/platform");
18
+ const readPathClass_1 = require("../util/readPathClass");
20
19
  const StateManager_1 = require("./StateManager");
21
20
  const queryLLM_1 = require("../services/api/queryLLM");
22
21
  const permission_1 = require("../prompt/permission");
23
22
  const shellSafety_1 = require("../util/shellSafety");
23
+ const runShellGate_1 = require("./runShellGate");
24
24
  const autoRunContext_1 = require("../util/autoRunContext");
25
25
  const fetchSafety_1 = require("../util/fetchSafety");
26
26
  const hookTriggers_1 = require("../services/hooks/hookTriggers");
27
+ const skillsManager_1 = require("../services/skills/skillsManager");
27
28
  const i18n_1 = require("../util/i18n");
28
- // ==================== 辅助函数 ====================
29
- function isPathInsideRoot(filePath, root) {
30
- const abs = (0, path_1.isAbsolute)(filePath) ? filePath : (0, path_1.resolve)(root, filePath);
31
- const rel = (0, path_1.relative)((0, platform_1.normalizeCmpPath)(root), (0, platform_1.normalizeCmpPath)(abs));
32
- if (!rel || rel === '')
33
- return true;
34
- return !rel.startsWith('..') && !(0, path_1.isAbsolute)(rel);
35
- }
36
- // 系统临时目录:这些目录树下的文件视为临时文件,AutoEdit/AutoRun 下即便在项目外也自动放行
37
- // tmpdir() 已涵盖 $TMPDIR/$TEMP/$TMP;/var/folders 覆盖 macOS 临时/缓存区
38
- const TEMP_BASE_PATHS = [(0, os_1.tmpdir)(), '/tmp', '/var/tmp', '/var/folders'];
39
- // SEMA_ROOT 下的受信内容子目录:全局 skill/命令/agent/插件/hooks 均为用户自行安装的内容,读取静默放行。
40
- // 仅限这几个内容型目录;SEMA_ROOT 根下的 model.conf、history/ 等敏感文件仍需权限申请。
41
- // 注意:豁免仅覆盖读取(view_file),hooks 脚本会被执行,写入仍走文件编辑权限转人工。
42
- const TRUSTED_SEMA_SUBDIRS = ['skills', 'commands', 'agents', 'plugins', 'hooks'];
43
- function isTrustedSemaFile(filePath) {
44
- const abs = (0, path_1.isAbsolute)(filePath) ? filePath : (0, path_1.resolve)((0, cwd_1.readInitialCwd)(), filePath);
45
- const semaRoot = (0, savePath_1.getSemaRootDir)();
46
- return TRUSTED_SEMA_SUBDIRS.some(sub => isPathInsideRoot(abs, (0, path_1.join)(semaRoot, sub)));
47
- }
48
- /**
49
- * 删除类命令(rm/rmdir/mv/find -delete)单个目标路径的允许范围裁决,
50
- * 供 classifyDangerousCommand 回调。目标满足其一才允许交模型判断:
51
- * - 落在系统临时目录树内(含临时目录自身)
52
- * - 落在项目根内,且:literal 目标不得是项目根自身(rm -rf . 级联全删仍转人工),
53
- * globdir 目标(rm dist/*、find . -delete 的所在目录)允许是项目根;
54
- * 两种形态都排除 .git(删掉版本库即失去「项目内可恢复」的兜底)
55
- * 其余(项目外、~、无法解析)一律不允许 → 确定性转人工。
56
- */
57
- function isDeletableShellTarget(target, kind) {
58
- const root = (0, cwd_1.readInitialCwd)();
59
- const abs = (0, path_1.isAbsolute)(target) ? target : (0, path_1.resolve)(root, target);
60
- if (isTempFile(abs))
61
- return true;
62
- const rel = (0, path_1.relative)((0, platform_1.normalizeCmpPath)(root), (0, platform_1.normalizeCmpPath)(abs));
63
- if (rel.startsWith('..') || (0, path_1.isAbsolute)(rel))
64
- return false;
65
- if (!rel || rel === '')
66
- return kind === 'globdir';
67
- const first = rel.split(/[\\/]/)[0];
68
- if (first === '.git')
69
- return false;
70
- return true;
71
- }
72
- function isTempFile(filePath) {
73
- // 相对路径按项目根解析(解析后必落在项目内,由 isPathInsideRoot 处理);临时文件均为绝对路径
74
- const abs = (0, path_1.isAbsolute)(filePath) ? filePath : (0, path_1.resolve)((0, cwd_1.readInitialCwd)(), filePath);
75
- const absNorm = (0, platform_1.normalizeCmpPath)(abs);
76
- return TEMP_BASE_PATHS.some(base => {
77
- const rel = (0, path_1.relative)((0, platform_1.normalizeCmpPath)(base), absNorm);
78
- if (!rel || rel === '')
79
- return true;
80
- return !rel.startsWith('..') && !(0, path_1.isAbsolute)(rel);
81
- });
82
- }
83
29
  // ==================== 常量定义 ====================
84
30
  // 子命令字符长度上限:超过则跳过前缀提取(如内联脚本 python -c "...大段...",提取前缀无意义),
85
31
  // 同时不提供「按前缀授权」,只允许单次确认。
@@ -142,9 +88,9 @@ const checkToolPermission = async (tool, input, abortController, _assistantMessa
142
88
  const runtime = (0, StateManager_1.getStateManager)().session(sessionId);
143
89
  if (runtime.hasGlobalEditPermission()) {
144
90
  (0, log_1.logDebug)(`[Permission]${tool.name} hasGlobalEditPermission: True`);
145
- // 项目内或临时文件直接放行,其余项目外文件需要请求权限
91
+ // 项目内、临时文件、SEMA_ROOT/attachments 直接放行,其余项目外文件需要请求权限
146
92
  const filePath = (0, file_1.getFilePath)(input);
147
- if (!filePath || isPathInsideRoot(filePath, (0, cwd_1.readInitialCwd)()) || isTempFile(filePath)) {
93
+ if (!filePath || (0, runShellGate_1.isPathInsideRoot)(filePath, (0, cwd_1.readInitialCwd)()) || (0, runShellGate_1.isTempFile)(filePath) || (0, readPathClass_1.isAttachmentPath)(filePath)) {
148
94
  (0, log_1.logDebug)(`[Permission]${filePath} 会话级允许`);
149
95
  return { result: true };
150
96
  }
@@ -155,26 +101,35 @@ const checkToolPermission = async (tool, input, abortController, _assistantMessa
155
101
  (0, log_1.logDebug)(`[Permission]${tool.name} hasGlobalEditPermission: False`);
156
102
  return requestPermissionViaEvent(tool, input, null, abortController, agentId, sessionId, toolId);
157
103
  }
158
- // 文件读取工具权限检查:仅项目外文件需要权限
104
+ // view_file 权限检查:读取位置的全部裁决都在这里完成,工具执行阶段不再因位置报错
159
105
  if (tool.name === tool_1.TOOL_NAME_VIEW_FILE) {
160
106
  if (coreConfig?.skipExternalFileReadPermission) {
161
- (0, log_1.logDebug)(`[Permission]${tool.name} 跳过项目外读取检查`);
107
+ (0, log_1.logDebug)(`[Permission]${tool.name} 跳过读取位置检查`);
162
108
  return { result: true };
163
109
  }
164
110
  const filePath = (0, file_1.getFilePath)(input);
111
+ if (!filePath)
112
+ return { result: true };
113
+ const pathClass = (0, readPathClass_1.classifyReadPath)(filePath);
165
114
  // 项目内、临时文件或 SEMA_ROOT 受信内容目录:直接放行,保持静默
166
- if (!filePath || isPathInsideRoot(filePath, (0, cwd_1.readInitialCwd)()) || isTempFile(filePath) || isTrustedSemaFile(filePath)) {
115
+ if (pathClass === 'trusted') {
167
116
  return { result: true };
168
117
  }
169
- // 项目外文件:auto 模式(非 Ask)自动放行
118
+ // 敏感凭据、其他用户目录、系统目录等:各档位均确定性转人工,不交快速模型(skipAutoRun),
119
+ // 也不提供按目录授权(prefix 为 null),只许单次同意
120
+ if (pathClass === 'restricted') {
121
+ logHumanFallback(tool.name, 'hard-rule', `受限位置读取 ${filePath}`);
122
+ return requestPermissionViaEvent(tool, input, null, abortController, agentId, sessionId, toolId, true, true);
123
+ }
124
+ // 项目外的用户文件 / 公共系统目录:auto 模式(非 Ask)自动放行
170
125
  const runtime = (0, StateManager_1.getStateManager)().session(sessionId);
171
126
  if (runtime.hasGlobalEditPermission()) {
172
127
  (0, log_1.logDebug)(`[Permission]${filePath} 项目外读取,auto 模式自动放行`);
173
128
  return { result: true };
174
129
  }
175
- // 命中本会话已授权的父目录则放行
176
- const absPath = (0, path_1.isAbsolute)(filePath) ? filePath : (0, path_1.resolve)((0, cwd_1.readInitialCwd)(), filePath);
177
- if (runtime.getAllowedExternalReadDirs().some(dir => isPathInsideRoot(absPath, dir))) {
130
+ // 命中本会话已授权的父目录则放行(敏感/受限位置已在上面先行拦下,不会被目录授权带过)
131
+ const absPath = (0, file_1.canonicalizeFilePath)(filePath);
132
+ if (runtime.getAllowedExternalReadDirs().some(dir => (0, runShellGate_1.isPathInsideRoot)(absPath, dir))) {
178
133
  (0, log_1.logDebug)(`[Permission]${filePath} 项目外读取,命中会话级已授权目录`);
179
134
  return { result: true };
180
135
  }
@@ -197,6 +152,11 @@ const checkToolPermission = async (tool, input, abortController, _assistantMessa
197
152
  }
198
153
  const allowedTools = projectConfig?.allowedTools || [];
199
154
  const skillName = input.skill || '';
155
+ // 内置 skill 的正文随 core 提供、非第三方内容,加载说明本身无副作用,直接放行;
156
+ // 其指导下的写文件/执行命令仍各自过权限闸门。按 locate 判断:用户同名 skill 覆盖内置后仍需询问
157
+ if (skillName && (0, skillsManager_1.getSkillsManager)().getSkillConfig(skillName)?.locate === 'builtin') {
158
+ return { result: true };
159
+ }
200
160
  const permissionKey = skillName ? `${tool.name}(${skillName})` : tool.name;
201
161
  if (allowedTools.includes(permissionKey)) {
202
162
  return { result: true };
@@ -221,16 +181,18 @@ const checkToolPermission = async (tool, input, abortController, _assistantMessa
221
181
  }
222
182
  const allowedTools = projectConfig?.allowedTools || [];
223
183
  const url = input.url;
224
- // 内网/链路本地/元数据等 SSRF 兜底命中的主机:即便已保存域名授权也不放行(纵深防御,
225
- // 治存量配置),且转人工时不提供「永久允许该域名」选项,避免一键给内网地址开永久通行证。
226
- const blocked = url ? (0, fetchSafety_1.isBlockedFetchHost)(url) : false;
227
- if (url && !blocked) {
184
+ const hostClass = url ? (0, fetchSafety_1.classifyFetchHost)(url) : 'public';
185
+ // blocked(链路本地/元数据/未指定):即便已保存域名授权也不放行(纵深防御,治存量配置),
186
+ // 转人工时不提供「永久允许该域名」。loopback:不提供永久授权(「记住 localhost」范围过宽),
187
+ // AutoRun 交模型。private / public:可命中已保存域名授权,转人工时可永久允许。
188
+ if (url && hostClass !== 'blocked' && hostClass !== 'loopback') {
228
189
  const domain = extractDomain(url);
229
190
  if (domain && allowedTools.includes(`${FETCH_URL_TOOL_NAME}(${domain})`)) {
230
191
  return { result: true };
231
192
  }
232
193
  }
233
- return requestPermissionViaEvent(tool, input, null, abortController, agentId, sessionId, toolId, !blocked);
194
+ const showAllow = hostClass === 'public' || hostClass === 'private';
195
+ return requestPermissionViaEvent(tool, input, null, abortController, agentId, sessionId, toolId, showAllow);
234
196
  }
235
197
  (0, log_1.logDebug)(`[Permission]${tool.name} 非编辑、run_shell、skill、mcp或webfetch工具默认允许`);
236
198
  // 其他工具默认允许
@@ -238,143 +200,34 @@ const checkToolPermission = async (tool, input, abortController, _assistantMessa
238
200
  };
239
201
  exports.checkToolPermission = checkToolPermission;
240
202
  // ==================== run_shell 工具权限检查 ====================
241
- function runShellToolHasExactMatch(tool, command, allowedTools) {
242
- // 只读安全命令快速通道:基于 splitCommand 分词逐子命令判定,
243
- // 杜绝「整串 split(' ')[0]」导致的重定向 / 不带空格管道 / find 危险 flag 绕过
244
- if ((0, shellSafety_1.isReadonlySafeCommand)(command))
245
- return true;
246
- const key = getPermissionKey(tool, { command }, null);
247
- if (allowedTools.includes(key))
248
- return true;
249
- const keyWithPrefix = getPermissionKey(tool, { command }, command);
250
- return allowedTools.includes(keyWithPrefix);
251
- }
252
- // 已保存的前缀授权 run_shell(P:*) 用字符串前缀匹配判定覆盖,无需模型提取前缀
253
- function matchesSavedPrefix(command, allowedTools) {
254
- // 前缀匹配只看首词,无法识别参数/重定向带来的危险。危险命令(含重定向、rm/sudo/mv
255
- // 等危险首词、find 危险 flag)即便首词被前缀授权也不放行,避免 `rm:*`/`echo:*` 退化为
256
- // 任意删除/写文件原语。
257
- if ((0, shellSafety_1.isUnsafeForPrefixAuth)(command))
258
- return false;
259
- const open = `${RunShell_1.RunShell.name}(`;
260
- for (const entry of allowedTools) {
261
- if (!entry.startsWith(open) || !entry.endsWith(':*)'))
262
- continue;
263
- const prefix = entry.slice(open.length, -':*)'.length);
264
- if (prefix && (command === prefix || command.startsWith(`${prefix} `)))
265
- return true;
266
- }
267
- return false;
268
- }
269
- function isRunShellCommandPermitted(tool, command, allowedTools) {
270
- return runShellToolHasExactMatch(tool, command, allowedTools) ||
271
- matchesSavedPrefix(command, allowedTools);
272
- }
273
- async function checkRunShellPermission(tool, command, abortController, allowedTools, agentId, sessionId, toolId, description) {
274
- // 归一化首尾空白:命令常带尾随换行(如 heredoc 结束符后的 \n)。不 trim 会让 stripHeredocBody
275
- // 剥离正文后骨架残留一个空行 → 误判「结束符后藏了第二条命令」→ 合法 heredoc 脚本被当成注入。
276
- // trim 只去首尾空白,不影响 ; / $() / 第二条命令等真注入向量的检出。
277
- command = command.trim();
278
- // 移除当前工作目录前缀
279
- command = command.replace(`cd ${(0, cwd_1.readInitialCwd)()} && `, '');
280
- // 先拆分子命令并做注入检测——必须先于白名单/AutoRun 放行,否则白名单主命令词(echo/cat/grep 等)
281
- // 夹带 $()、`` 命令替换或换行即可绕过检测(如 echo $(id))。检出注入 → 转人工且不提供"永久允许"
282
- const subCommands = (0, commands_1.splitCommand)(command);
283
- // heredoc 正文是喂给程序的数据而非 shell 命令,但底层 shell-quote 不理解 heredoc,会把正文打散、
284
- // 换行有时残留,导致合法的多行内联脚本(python3 << 'EOF' ...)被误判注入、跳过 AutoRun 模型判断。
285
- // 注入检测改在「剥离 heredoc 正文后的骨架」上进行:成功剥离后骨架若仍残留换行,只能是结束符之后
286
- // 藏了第二条命令 → 判注入;否则按子命令逐段检测。无法安全剥离(多 heredoc 同行/缺结束符/不带引号
287
- // 且正文含命令替换)时 stripHeredocBody 原样返回,退回逐段检测,绝不因剥离而放过真注入。
288
- const injectionSkeleton = (0, commands_1.stripHeredocBody)(command);
289
- const injectionDetected = injectionSkeleton !== command
290
- ? injectionSkeleton.includes('\n') || (0, commands_1.splitCommand)(injectionSkeleton).some(commands_1.hasCommandInjection)
291
- : subCommands.some(commands_1.hasCommandInjection);
292
- if (injectionDetected) {
293
- // $() 命令替换细分(heredoc 骨架检出的注入维持确定性转人工,不参与放宽):
294
- // dangerous(内层危险首词/解释器、反引号、解析失败)→ 确定性转人工,不给模型机会;
295
- // readonly/gray(唯一注入特征是可解析的 $() 替换)→ AutoRun 档位交模型判断。
296
- // 刻意不走白名单/前缀/覆盖等确定性放行——那些检查不理解替换语义(echo:* 前缀
297
- // 会把 echo $(任意命令) 一并放行),放行只能由模型或人工裁决。
298
- const substClass = injectionSkeleton !== command ? 'dangerous' : (0, shellSafety_1.classifyCommandSubstitutions)(command);
299
- if (substClass !== 'dangerous' && (0, StateManager_1.getStateManager)().session(sessionId).isAutoRun()) {
300
- let safe = false;
301
- try {
302
- safe = (await classifyActionSafety(tool, { command }, abortController.signal, sessionId, agentId)) === 'safe';
303
- }
304
- catch (error) {
305
- (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断失败,转人工: ${error}`);
306
- }
307
- (0, errors_1.checkAbortSignal)(abortController);
308
- if (safe) {
309
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 含 ${substClass} $() 替换,模型判定 safe,自动放行`);
310
- emitAutoApproved(tool, agentId, sessionId, toolId);
311
- return { result: true };
312
- }
313
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 含 $() 替换,模型判定有风险,转人工申请`);
314
- }
315
- return requestPermissionViaEvent(tool, { command, description }, null, abortController, agentId, sessionId, toolId, false, true);
316
- }
317
- // 命中白名单或项目配置已允许
318
- if (runShellToolHasExactMatch(tool, command, allowedTools)) {
203
+ async function checkRunShellPermission(tool, rawCommand, abortController, allowedTools, agentId, sessionId, toolId, description) {
204
+ // 确定性裁决(注入形态 / 白名单 / 危险分级 / 覆盖)全部在 classifyRunShellGate(纯函数,与
205
+ // tests/manager/runShellGate.* 同源);这里只负责接模型判断、事件与人工申请。
206
+ const gate = (0, runShellGate_1.classifyRunShellGate)(rawCommand, allowedTools);
207
+ const command = gate.command;
208
+ if (gate.verdict === 'allow') {
319
209
  return { result: true };
320
210
  }
321
- // 危险命令分级:
322
- // hard(sudo/dd/chmod/kill 等硬危险、删除目标出项目/无法静态解析)→ 确定性转人工,
323
- // 不调模型——语义本身危险,不该给模型机会判 safe 放行;
324
- // deletable(rm/rmdir/mv/find -delete 且所有目标确定性落在项目内或临时目录)→ AutoRun
325
- // 档位交快速模型结合上下文判断(用户明确要求删除/清理、agent 自建文件、可再生中间
326
- // 产物 → safe 一次性放行),判 risky 或非 AutoRun 仍转人工。
327
- // 两类都不提供前缀/精确授权(showAllow=false),模型放行绝不持久化;
328
- // skipAutoRun=true 跳过 requestPermissionViaEvent 内的 AutoRun 自动放行,避免重复调模型。
329
- const dangerClass = (0, shellSafety_1.classifyDangerousCommand)(command, isDeletableShellTarget);
330
- if (dangerClass !== 'none') {
331
- if (dangerClass === 'deletable' && (0, StateManager_1.getStateManager)().session(sessionId).isAutoRun()) {
332
- let safe = false;
333
- try {
334
- safe = (await classifyActionSafety(tool, { command }, abortController.signal, sessionId, agentId)) === 'safe';
335
- }
336
- catch (error) {
337
- (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断失败,转人工: ${error}`);
338
- }
339
- (0, errors_1.checkAbortSignal)(abortController);
340
- if (safe) {
341
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 项目内删除类命令,模型判定 safe,自动放行`);
342
- emitAutoApproved(tool, agentId, sessionId, toolId);
343
- return { result: true };
344
- }
345
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 删除类命令,模型判定有风险,转人工申请`);
346
- }
211
+ // 确定性转人工:不调模型、不提供前缀/精确授权(showAllow=false);
212
+ // skipAutoRun=true 跳过 requestPermissionViaEvent 内的 AutoRun 自动放行,避免重复调模型
213
+ if (gate.verdict === 'human') {
214
+ logHumanFallback(tool.name, 'hard-rule', gate.detail);
347
215
  return requestPermissionViaEvent(tool, { command, description }, null, abortController, agentId, sessionId, toolId, false, true);
348
216
  }
349
- // 每个子命令都被 SAFE_COMMANDS / 精确授权 / 已保存前缀覆盖 → 放行(注入已在函数开头排除)。
350
- // 必须先于下面的 AutoRun 模型判断:已被「确定性覆盖」的命令无需再调用快速模型——既省一次模型
351
- // 调用,也更准确(确定性放行不应触发「模型自动放行」事件 tool:permission:auto)。
352
- if (subCommands.length > 0 && subCommands.every(subCmd => isRunShellCommandPermitted(tool, subCmd, allowedTools))) {
217
+ // 交模型:AutoRun 档位判定 safe 直接放行;判 risky / 失败 / 非 AutoRun 则转人工。
218
+ // 模型放行绝不持久化。
219
+ if (await autoRunModelAllows(tool, { command }, abortController, sessionId, agentId, toolId, gate.detail)) {
353
220
  return { result: true };
354
221
  }
355
- // AutoRun 档位:子命令未被确定性覆盖时,对整条命令做一次安全判断,判定 safe 直接放行;
356
- // 判定有风险(或非 AutoRun)则继续转人工申请。
357
- const runtime = (0, StateManager_1.getStateManager)().session(sessionId);
358
- if (runtime.isAutoRun()) {
359
- let safe = false;
360
- try {
361
- safe = (await classifyActionSafety(tool, { command }, abortController.signal, sessionId, agentId)) === 'safe';
362
- }
363
- catch (error) {
364
- (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断失败,转人工: ${error}`);
365
- }
366
- (0, errors_1.checkAbortSignal)(abortController);
367
- if (safe) {
368
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 自动放行`);
369
- emitAutoApproved(tool, agentId, sessionId, toolId);
370
- return { result: true };
371
- }
372
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 判定有风险,转人工申请`);
222
+ // 注入形态 / 灰区危险命令转人工时不提供前缀/精确授权,只许单次确认
223
+ if (gate.stage !== 'uncovered') {
224
+ return requestPermissionViaEvent(tool, { command, description }, null, abortController, agentId, sessionId, toolId, false, true);
373
225
  }
374
226
  // 未完全覆盖 → 转人工。对「首个未被覆盖的子命令」调一次快速模型提取前缀,给出"按前缀授权"选项。
375
227
  // 必须用子命令而非整条命令——整条复合命令含 && / || / ; 会被前缀提取提示词判为注入,提取不到前缀。
376
228
  // 首个未覆盖子命令过长(如内联脚本 python -c "...大段...")时跳过前缀提取:提取无意义
377
- const firstUncovered = subCommands.find(subCmd => !isRunShellCommandPermitted(tool, subCmd, allowedTools)) ?? command;
229
+ const subCommands = (0, commands_1.splitCommand)(command);
230
+ const firstUncovered = subCommands.find(subCmd => !(0, runShellGate_1.isRunShellCommandPermitted)(subCmd, allowedTools)) ?? command;
378
231
  let prefix = null;
379
232
  let allowExact = false;
380
233
  // 危险命令(含重定向、rm/sudo/mv 等危险首词、find 危险 flag、curl/wget 等网络命令)不提供
@@ -453,12 +306,57 @@ function getPermissionKey(tool, input, prefix) {
453
306
  }
454
307
  return tool.name;
455
308
  }
456
- // ==================== AutoRun 自动判断 ====================
309
+ function logHumanFallback(toolName, reason, detail) {
310
+ (0, log_1.logInfo)(`[Permission][AutoRun]${toolName} 转人工 reason=${reason} (${detail})`);
311
+ }
312
+ /**
313
+ * AutoRun 档位下对单个动作做一次快速模型安全判断:判 safe → 发「模型自动放行」事件并返回 true;
314
+ * 判 risky / 调用失败 / 非 AutoRun → 返回 false,由调用方转人工。
315
+ * run_shell 的三处灰区($() 替换、灰区危险命令、未覆盖命令)共用,避免重复展开。
316
+ */
317
+ async function autoRunModelAllows(tool, input, abortController, sessionId, agentId, toolId, detail) {
318
+ if (!(0, StateManager_1.getStateManager)().session(sessionId).isAutoRun())
319
+ return false;
320
+ let verdict = null;
321
+ try {
322
+ verdict = await classifyActionSafety(tool, input, abortController.signal, sessionId, agentId);
323
+ }
324
+ catch (error) {
325
+ (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断失败: ${error}`);
326
+ }
327
+ (0, errors_1.checkAbortSignal)(abortController);
328
+ if (verdict === 'safe') {
329
+ (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} ${detail},模型判定 safe,自动放行`);
330
+ emitAutoApproved(tool, agentId, sessionId, toolId);
331
+ return true;
332
+ }
333
+ logHumanFallback(tool.name, verdict === 'risky' ? 'model-risky' : 'model-failed', detail);
334
+ return false;
335
+ }
457
336
  /**
458
337
  * 调用快速模型判断动作是否安全。
459
- * API 错误或返回为空时抛出异常,交由调用方做失败关闭处理。
338
+ * API 错误、返回为空或输出无法解析时重试一次;仍失败抛出异常,交由调用方做失败关闭处理
339
+ * (记为 model-failed,与模型判 risky 区分——「默认 safe」是模型的决策倾向,不是接口失败就放行)。
460
340
  */
461
341
  async function classifyActionSafety(tool, input, signal, sessionId, agentId = StateManager_1.MAIN_AGENT_ID) {
342
+ let lastError;
343
+ for (let attempt = 0; attempt < 2; attempt++) {
344
+ try {
345
+ const verdict = await queryActionSafety(tool, input, signal, sessionId, agentId);
346
+ if (verdict)
347
+ return verdict;
348
+ lastError = new Error('AutoRun safety verdict unparseable');
349
+ }
350
+ catch (error) {
351
+ if (signal.aborted)
352
+ throw error;
353
+ lastError = error;
354
+ }
355
+ (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断第 ${attempt + 1} 次失败: ${lastError}`);
356
+ }
357
+ throw lastError;
358
+ }
359
+ async function queryActionSafety(tool, input, signal, sessionId, agentId) {
462
360
  // 旁路:只读「当前执行代理」自身历史作为上下文(子代理用自己的上下文,而非主代理),
463
361
  // 叠加安全判断指令,绝不写回会话
464
362
  const history = sessionId
@@ -492,7 +390,10 @@ async function classifyActionSafety(tool, input, signal, sessionId, agentId = St
492
390
  if (!raw || raw.startsWith(message_1.API_ERR_PREFIX)) {
493
391
  throw new Error('AutoRun safety classification failed');
494
392
  }
495
- return parseSafetyVerdict(raw);
393
+ const verdict = parseSafetyVerdict(raw);
394
+ // 动作行与模型原始输出一起进日志:判错时能对照「模型看到了什么、答了什么」,不用盲调提示词
395
+ (0, log_1.logInfo)(`[Permission][AutoRun] verdict=${verdict ?? 'unparseable'} action=${(0, autoRunContext_1.summarizeActionLine)(tool.name, input).slice(0, 200)} raw=${raw.slice(0, 200).replace(/\s+/g, ' ')}`);
396
+ return verdict;
496
397
  }
497
398
  /**
498
399
  * 从安全模型的原始输出中稳健地解析出 safe / risky。
@@ -501,7 +402,7 @@ async function classifyActionSafety(tool, input, signal, sessionId, agentId = St
501
402
  * 1) 优先取【第一个】<verdict> 标签为准——结论放最前,即便后面又啰嗦也不影响;
502
403
  * 2) 没有标签时兜底:快速模型偶发不带标签、夹带思考,取【最后出现】的 safe/risky
503
404
  * 关键词(推理结论通常落末尾),并排除 "not safe" 这类紧邻否定;
504
- * 3) 都匹配不到 → fail-closed 判 risky。
405
+ * 3) 都匹配不到 → null(输出无法解析,由调用方重试/记为 model-failed)。
505
406
  */
506
407
  function parseSafetyVerdict(raw) {
507
408
  const text = raw.toLowerCase();
@@ -512,7 +413,7 @@ function parseSafetyVerdict(raw) {
512
413
  // 2) 兜底:最后一个 safe/risky 关键词
513
414
  const matches = [...text.matchAll(/\b(safe|risky)\b/g)];
514
415
  if (matches.length === 0)
515
- return 'risky';
416
+ return null;
516
417
  const last = matches[matches.length - 1];
517
418
  if (last[1] === 'risky')
518
419
  return 'risky';
@@ -525,15 +426,17 @@ function parseSafetyVerdict(raw) {
525
426
  /**
526
427
  * AutoRun 档位下尝试自动放行:
527
428
  * 1) 确定性:文件编辑只看路径(项目内放行/项目外转人工);Skill 放行;MCP 只看 destructiveHint 注解——均不走 LLM
528
- * 2) fetch_url:先做确定性 SSRF 兜底(命中内网/元数据等直接转人工),未命中再交给快速模型判断
429
+ * 2) fetch_url:先做确定性主机分级(链路本地/元数据 blocked、内网 private 直接转人工),环回/公网再交快速模型判断
529
430
  * 3) 其余动作交给快速模型做安全判断;失败/超时/异常一律失败关闭(转人工)
530
431
  */
531
432
  async function autoApproveInAutoRun(tool, input, signal, sessionId, agentId) {
532
433
  // 文件编辑:确定性判断,不走 LLM
533
- // 项目内或临时文件放行;其余项目外文件一律转人工,避免模型误判为 safe
434
+ // 项目内、临时文件、SEMA_ROOT/attachments 放行;其余项目外文件一律转人工,避免模型误判为 safe
534
435
  if (isFileEditTool(tool)) {
535
436
  const filePath = (0, file_1.getFilePath)(input);
536
- const approved = !filePath || isPathInsideRoot(filePath, (0, cwd_1.readInitialCwd)()) || isTempFile(filePath);
437
+ const approved = !filePath || (0, runShellGate_1.isPathInsideRoot)(filePath, (0, cwd_1.readInitialCwd)()) || (0, runShellGate_1.isTempFile)(filePath) || (0, readPathClass_1.isAttachmentPath)(filePath);
438
+ if (!approved)
439
+ logHumanFallback(tool.name, 'hard-rule', '项目外文件编辑');
537
440
  return { approved, byModel: false };
538
441
  }
539
442
  // Skill:本身无副作用(仅注入提示词),技能内的真实动作会作为下游工具再次过权限闸门,直接放行
@@ -545,24 +448,29 @@ async function autoApproveInAutoRun(tool, input, signal, sessionId, agentId) {
545
448
  if (isMCPTool(tool)) {
546
449
  const destructive = tool.isDestructive?.() === true;
547
450
  if (destructive)
548
- (0, log_1.logDebug)(`[Permission][AutoRun]${tool.name} 标注 destructiveHint,转人工申请`);
451
+ logHumanFallback(tool.name, 'hard-rule', '标注 destructiveHint');
549
452
  return { approved: !destructive, byModel: false };
550
453
  }
551
- // fetch_url:先做确定性 SSRF 兜底,命中内网/链路本地/元数据等直接转人工,不交给模型
454
+ // fetch_url:先做确定性主机分级。blocked(链路本地/元数据/未指定)与 private(内网)直接转人工,
455
+ // 不交模型——前者是 SSRF 边界,后者语义对模型不透明但用户可永久允许域名;环回与公网交模型
552
456
  if (isFetchUrlTool(tool)) {
553
457
  const url = (input.url || '').toString();
554
- if ((0, fetchSafety_1.isBlockedFetchHost)(url)) {
555
- (0, log_1.logDebug)(`[Permission][AutoRun] fetch_url 命中内网/元数据 denylist,转人工: ${url}`);
458
+ const hostClass = (0, fetchSafety_1.classifyFetchHost)(url);
459
+ if (hostClass === 'blocked' || hostClass === 'private') {
460
+ logHumanFallback(tool.name, 'hard-rule', `${hostClass} 主机 ${url}`);
556
461
  return { approved: false, byModel: false };
557
462
  }
558
463
  }
559
- // 其余(fetch_url 通过兜底后等):交给快速模型判断(run_shell 已在 checkRunShellPermission 中提前判断)
464
+ // 其余(fetch_url 通过分级后等):交给快速模型判断(run_shell 已在 checkRunShellPermission 中提前判断)
560
465
  try {
561
- const safe = (await classifyActionSafety(tool, input, signal, sessionId, agentId)) === 'safe';
562
- return { approved: safe, byModel: safe };
466
+ const verdict = await classifyActionSafety(tool, input, signal, sessionId, agentId);
467
+ if (verdict === 'risky')
468
+ logHumanFallback(tool.name, 'model-risky', '');
469
+ return { approved: verdict === 'safe', byModel: verdict === 'safe' };
563
470
  }
564
471
  catch (error) {
565
- (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断失败,转人工: ${error}`);
472
+ (0, log_1.logDebug)(`[Permission][AutoRun] 安全判断失败: ${error}`);
473
+ logHumanFallback(tool.name, 'model-failed', '');
566
474
  return { approved: false, byModel: false };
567
475
  }
568
476
  }
@@ -713,7 +621,7 @@ function buildPermissionOptions(tool, input, prefix, showAllow = true) {
713
621
  refuse
714
622
  };
715
623
  }
716
- // 文件读取工具:按父目录会话级授权;无父目录则不提供「允许」
624
+ // 文件读取工具:按父目录会话级授权;无父目录(受限位置)则不提供「允许」
717
625
  if (tool.name === tool_1.TOOL_NAME_VIEW_FILE) {
718
626
  if (!prefix) {
719
627
  return { agree, refuse };
@@ -745,7 +653,7 @@ function buildPermissionOptions(tool, input, prefix, showAllow = true) {
745
653
  }
746
654
  // fetch_url 工具
747
655
  if (isFetchUrlTool(tool)) {
748
- // SSRF 兜底命中(内网/元数据等)时 showAllow=false:不提供「永久允许域名」,只许单次确认
656
+ // blocked(链路本地/元数据)/ loopback 主机 showAllow=false:不提供「永久允许域名」,只许单次确认
749
657
  if (!showAllow) {
750
658
  return { agree, refuse };
751
659
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../src/manager/PermissionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../src/manager/PermissionManager.ts"],"names":[],"mappings":"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"}