sema-core 2.0.15 → 2.0.16
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 +1 -31
- package/dist/core/Conversation.d.ts.map +1 -1
- package/dist/core/Conversation.js +6 -3
- package/dist/core/Conversation.js.map +1 -1
- package/dist/core/SemaCore.d.ts +4 -2
- package/dist/core/SemaCore.d.ts.map +1 -1
- package/dist/core/SemaCore.js +4 -2
- package/dist/core/SemaCore.js.map +1 -1
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +23 -3
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/events/types.d.ts +9 -0
- package/dist/events/types.d.ts.map +1 -1
- package/dist/manager/ConfManager.d.ts.map +1 -1
- package/dist/manager/ConfManager.js +2 -16
- package/dist/manager/ConfManager.js.map +1 -1
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +55 -5
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/prompt/compact.d.ts +15 -1
- package/dist/prompt/compact.d.ts.map +1 -1
- package/dist/prompt/compact.js +59 -18
- package/dist/prompt/compact.js.map +1 -1
- package/dist/prompt/inputPredict.d.ts +2 -0
- package/dist/prompt/inputPredict.d.ts.map +1 -0
- package/dist/prompt/inputPredict.js +44 -0
- package/dist/prompt/inputPredict.js.map +1 -0
- package/dist/prompt/permission.d.ts +1 -1
- package/dist/prompt/permission.d.ts.map +1 -1
- package/dist/prompt/permission.js +38 -5
- package/dist/prompt/permission.js.map +1 -1
- package/dist/services/agents/genSystemReminder.d.ts +10 -1
- package/dist/services/agents/genSystemReminder.d.ts.map +1 -1
- package/dist/services/agents/genSystemReminder.js +48 -2
- package/dist/services/agents/genSystemReminder.js.map +1 -1
- package/dist/services/commands/runCommand.d.ts.map +1 -1
- package/dist/services/commands/runCommand.js +13 -3
- package/dist/services/commands/runCommand.js.map +1 -1
- package/dist/services/mcp/MCPManager.d.ts +19 -5
- package/dist/services/mcp/MCPManager.d.ts.map +1 -1
- package/dist/services/mcp/MCPManager.js +71 -22
- package/dist/services/mcp/MCPManager.js.map +1 -1
- package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
- package/dist/services/plugins/pluginsManager.js +12 -0
- package/dist/services/plugins/pluginsManager.js.map +1 -1
- package/dist/services/skills/skillsManager.d.ts +18 -3
- package/dist/services/skills/skillsManager.d.ts.map +1 -1
- package/dist/services/skills/skillsManager.js +49 -4
- package/dist/services/skills/skillsManager.js.map +1 -1
- package/dist/tools/Skill.d.ts.map +1 -1
- package/dist/tools/Skill.js +3 -2
- package/dist/tools/Skill.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/settings.d.ts +3 -1
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/types/skill.d.ts +2 -0
- package/dist/types/skill.d.ts.map +1 -1
- package/dist/util/autoRunContext.d.ts +2 -0
- package/dist/util/autoRunContext.d.ts.map +1 -1
- package/dist/util/autoRunContext.js +2 -0
- package/dist/util/autoRunContext.js.map +1 -1
- package/dist/util/compact.d.ts +16 -1
- package/dist/util/compact.d.ts.map +1 -1
- package/dist/util/compact.js +117 -4
- package/dist/util/compact.js.map +1 -1
- package/dist/util/history.d.ts +1 -1
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +21 -5
- package/dist/util/history.js.map +1 -1
- package/dist/util/inputPredict.d.ts +15 -0
- package/dist/util/inputPredict.d.ts.map +1 -0
- package/dist/util/inputPredict.js +135 -0
- package/dist/util/inputPredict.js.map +1 -0
- package/dist/util/message.d.ts +1 -1
- package/dist/util/message.d.ts.map +1 -1
- package/dist/util/message.js +2 -2
- package/dist/util/message.js.map +1 -1
- package/dist/util/shellSafety.d.ts +26 -2
- package/dist/util/shellSafety.d.ts.map +1 -1
- package/dist/util/shellSafety.js +245 -5
- package/dist/util/shellSafety.js.map +1 -1
- package/package.json +1 -1
|
@@ -23,8 +23,9 @@ export declare function classifyCommandSubstitutions(command: string, depth?: nu
|
|
|
23
23
|
* 命令是否含「语义危险」子命令:危险首词(rm/sudo/mv 等)或 find 危险 flag。
|
|
24
24
|
* 不含重定向——重定向是否危险取决于路径(项目内可能安全),应交给上层模型判断。
|
|
25
25
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
26
|
+
* 用于前缀授权禁令(isUnsafeForPrefixAuth):命中即不提供/不匹配前缀授权。
|
|
27
|
+
* AutoRun 权限闸门改用 classifyDangerousCommand 做进一步分级(硬危险 / 删除类灰区),
|
|
28
|
+
* 两者的「危险」集合严格一致。解析失败保守按「危险」处理(fail-closed)。
|
|
28
29
|
*/
|
|
29
30
|
export declare function hasDangerousCommand(command: string): boolean;
|
|
30
31
|
/**
|
|
@@ -35,6 +36,29 @@ export declare function hasDangerousCommand(command: string): boolean;
|
|
|
35
36
|
* 涵盖:含重定向 / 危险首词(rm、sudo、mv 等)/ find 危险 flag。
|
|
36
37
|
*/
|
|
37
38
|
export declare function isUnsafeForPrefixAuth(command: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* 危险命令分级结果:
|
|
41
|
+
* none → 不含危险子命令(与 hasDangerousCommand === false 等价)
|
|
42
|
+
* deletable → 仅含删除类子命令(rm/rmdir/mv/find -delete)且所有删除目标确定性落在
|
|
43
|
+
* 允许范围内(由调用方回调裁决,通常为项目内或系统临时目录)→ AutoRun 可交模型判断
|
|
44
|
+
* hard → 硬危险(sudo/dd/chmod 等)、删除目标无法静态确认落在允许范围、或解析失败
|
|
45
|
+
* (fail-closed)→ 确定性转人工,不给模型机会
|
|
46
|
+
*/
|
|
47
|
+
export type DangerClass = 'none' | 'deletable' | 'hard';
|
|
48
|
+
export type DeleteTargetKind = 'literal' | 'globdir';
|
|
49
|
+
export type DeleteTargetChecker = (path: string, kind: DeleteTargetKind) => boolean;
|
|
50
|
+
/**
|
|
51
|
+
* 整条命令的危险分级:逐子命令取最严(任一 hard → hard;否则任一 deletable → deletable)。
|
|
52
|
+
* 与 hasDangerousCommand 严格对齐:本函数返回 none 当且仅当 hasDangerousCommand 为 false,
|
|
53
|
+
* 即分级只在「现状确定性转人工」的集合内部细分,绝不扩大放行面。
|
|
54
|
+
*
|
|
55
|
+
* 命令里出现 cd/pushd/popd 时后续子命令的 cwd 无法静态跟踪,相对路径目标一律拒绝
|
|
56
|
+
* (绝对路径不受影响)。解析失败 fail-closed 判 hard。
|
|
57
|
+
*
|
|
58
|
+
* @param isDeletableTarget 路径策略回调:判定单个删除目标(已解析为字面路径)是否落在
|
|
59
|
+
* 允许删除的范围(由调用方定义,通常为项目内或系统临时目录,排除项目根自身与 .git)
|
|
60
|
+
*/
|
|
61
|
+
export declare function classifyDangerousCommand(command: string, isDeletableTarget: DeleteTargetChecker): DangerClass;
|
|
38
62
|
/**
|
|
39
63
|
* 整条命令是否可判定为「只读安全」,可直接放行(无需人工/模型)。
|
|
40
64
|
* 基于 splitCommand 的分词逐子命令判定,从根本上消除「整串 split(' ')[0]」带来的
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellSafety.d.ts","sourceRoot":"","sources":["../../src/util/shellSafety.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shellSafety.d.ts","sourceRoot":"","sources":["../../src/util/shellSafety.ts"],"names":[],"mappings":"AA6GA;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOvD;AAqGD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAA;AAgFjE;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,iBAAiB,CAqB1F;AAcD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ5D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AASD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;AAMvD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA;AACpD,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAA;AAmKnF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,GAAG,WAAW,CAkB7G;AAsBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAW9D"}
|
package/dist/util/shellSafety.js
CHANGED
|
@@ -4,7 +4,9 @@ exports.hasRedirection = hasRedirection;
|
|
|
4
4
|
exports.classifyCommandSubstitutions = classifyCommandSubstitutions;
|
|
5
5
|
exports.hasDangerousCommand = hasDangerousCommand;
|
|
6
6
|
exports.isUnsafeForPrefixAuth = isUnsafeForPrefixAuth;
|
|
7
|
+
exports.classifyDangerousCommand = classifyDangerousCommand;
|
|
7
8
|
exports.isReadonlySafeCommand = isReadonlySafeCommand;
|
|
9
|
+
const path_1 = require("path");
|
|
8
10
|
const commands_1 = require("./commands");
|
|
9
11
|
// 仅凭首词即可判定安全的「真只读」单命令。
|
|
10
12
|
// find 列入只读,但需额外排除危险动作 flag(见 ALWAYS_DANGEROUS_FIND_FLAGS),
|
|
@@ -125,13 +127,20 @@ function hasRedirection(command) {
|
|
|
125
127
|
}
|
|
126
128
|
// 危险首词:危险性在参数里、不该按首词前缀授权的命令。授权 rm:* / sudo:* 等会把
|
|
127
129
|
// `rm -rf /`、任意 `sudo ...` 一并放行,故这些命令不提供前缀授权、也不被已存前缀覆盖。
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
// 内部分两档(见 classifyDangerousCommand):
|
|
131
|
+
// 硬危险(sudo/dd/chmod/kill 等)→ 永远确定性转人工,不给模型裁决权;
|
|
132
|
+
// 删除类(rm/rmdir/mv,另有 find -delete)→ 目标路径确定性落在项目内/临时目录时降为
|
|
133
|
+
// 灰区,AutoRun 档位交快速模型结合上下文判断。
|
|
134
|
+
// 本集合保持两档并集不变:前缀授权禁令、find -exec 目标与 $() 替换的递归分类仍按
|
|
135
|
+
// 「一律危险」处理(-exec rm / $(rm ...) 不参与放宽)。
|
|
136
|
+
const HARD_DANGEROUS_COMMANDS = new Set([
|
|
137
|
+
'dd', 'shred', 'truncate',
|
|
130
138
|
'chmod', 'chown', 'chgrp',
|
|
131
139
|
'kill', 'killall', 'pkill',
|
|
132
140
|
'sudo', 'doas', 'su',
|
|
133
|
-
'mv',
|
|
134
141
|
]);
|
|
142
|
+
const DELETE_COMMANDS = new Set(['rm', 'rmdir', 'mv']);
|
|
143
|
+
const DANGEROUS_PREFIX_COMMANDS = new Set([...HARD_DANGEROUS_COMMANDS, ...DELETE_COMMANDS]);
|
|
135
144
|
const FIND_EXEC_TOKENS = new Set(['-exec', '-execdir']);
|
|
136
145
|
// shell 解释器:-exec sh -c '...' 是任意命令执行原语,与危险首词同级,
|
|
137
146
|
// 不给模型判断机会(isDangerousSubcommand 只查首词集合,覆盖不到这里)
|
|
@@ -377,8 +386,9 @@ function isDangerousSubcommand(seg) {
|
|
|
377
386
|
* 命令是否含「语义危险」子命令:危险首词(rm/sudo/mv 等)或 find 危险 flag。
|
|
378
387
|
* 不含重定向——重定向是否危险取决于路径(项目内可能安全),应交给上层模型判断。
|
|
379
388
|
*
|
|
380
|
-
*
|
|
381
|
-
*
|
|
389
|
+
* 用于前缀授权禁令(isUnsafeForPrefixAuth):命中即不提供/不匹配前缀授权。
|
|
390
|
+
* AutoRun 权限闸门改用 classifyDangerousCommand 做进一步分级(硬危险 / 删除类灰区),
|
|
391
|
+
* 两者的「危险」集合严格一致。解析失败保守按「危险」处理(fail-closed)。
|
|
382
392
|
*/
|
|
383
393
|
function hasDangerousCommand(command) {
|
|
384
394
|
let segs;
|
|
@@ -400,6 +410,236 @@ function hasDangerousCommand(command) {
|
|
|
400
410
|
function isUnsafeForPrefixAuth(command) {
|
|
401
411
|
return hasRedirection(command) || hasDangerousCommand(command);
|
|
402
412
|
}
|
|
413
|
+
// ==================== 危险命令分级(硬危险 / 删除类灰区) ====================
|
|
414
|
+
// find 的「非删除」硬危险 flag:写文件(-fprintf/-fprint/-fprint0/-fls)与交互确认(-ok/-okdir)。
|
|
415
|
+
// 与 ALWAYS_DANGEROUS_FIND_FLAGS 的差集是 -delete —— 后者单独识别为删除类灰区。
|
|
416
|
+
const FIND_HARD_ACTION_FLAGS = /(^|\s)-(ok(dir)?|fprint(0|f)?|fls)\b/;
|
|
417
|
+
const FIND_DELETE_FLAG = /(^|\s)-delete\b/;
|
|
418
|
+
/**
|
|
419
|
+
* 引号感知的段内分词:按空白拆 token,剥掉引号字符,标记通配符与展开特征。
|
|
420
|
+
* splitCommand 的输出段保留了原始引号(如 rm "my file.txt"),朴素 split(/\s+/)
|
|
421
|
+
* 会把带空格的引号路径拆碎,这里必须自己扫描。引号不闭合 → null(fail-closed)。
|
|
422
|
+
*/
|
|
423
|
+
function tokenizeSeg(seg) {
|
|
424
|
+
const tokens = [];
|
|
425
|
+
let cur = '';
|
|
426
|
+
let globIndex = -1;
|
|
427
|
+
let hasExpansion = false;
|
|
428
|
+
let started = false;
|
|
429
|
+
let inSingle = false;
|
|
430
|
+
let inDouble = false;
|
|
431
|
+
const push = () => {
|
|
432
|
+
if (started)
|
|
433
|
+
tokens.push({ text: cur, globIndex, hasExpansion });
|
|
434
|
+
cur = '';
|
|
435
|
+
globIndex = -1;
|
|
436
|
+
hasExpansion = false;
|
|
437
|
+
started = false;
|
|
438
|
+
};
|
|
439
|
+
for (let i = 0; i < seg.length; i++) {
|
|
440
|
+
const c = seg[i];
|
|
441
|
+
if (inSingle) {
|
|
442
|
+
if (c === "'") {
|
|
443
|
+
inSingle = false;
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
cur += c;
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
if (c === '\\') {
|
|
450
|
+
const next = seg[i + 1];
|
|
451
|
+
if (next === undefined)
|
|
452
|
+
return null;
|
|
453
|
+
cur += next;
|
|
454
|
+
i++;
|
|
455
|
+
started = true;
|
|
456
|
+
continue;
|
|
457
|
+
}
|
|
458
|
+
if (inDouble) {
|
|
459
|
+
if (c === '"') {
|
|
460
|
+
inDouble = false;
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
if (c === '$' || c === '`')
|
|
464
|
+
hasExpansion = true;
|
|
465
|
+
cur += c;
|
|
466
|
+
continue;
|
|
467
|
+
}
|
|
468
|
+
if (c === "'") {
|
|
469
|
+
inSingle = true;
|
|
470
|
+
started = true;
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
if (c === '"') {
|
|
474
|
+
inDouble = true;
|
|
475
|
+
started = true;
|
|
476
|
+
continue;
|
|
477
|
+
}
|
|
478
|
+
if (/\s/.test(c)) {
|
|
479
|
+
push();
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
if (c === '$' || c === '`')
|
|
483
|
+
hasExpansion = true;
|
|
484
|
+
if ((c === '*' || c === '?' || c === '[') && globIndex < 0)
|
|
485
|
+
globIndex = cur.length;
|
|
486
|
+
cur += c;
|
|
487
|
+
started = true;
|
|
488
|
+
}
|
|
489
|
+
if (inSingle || inDouble)
|
|
490
|
+
return null;
|
|
491
|
+
push();
|
|
492
|
+
return tokens;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* 单个删除目标 token 是否可静态确认落在允许范围。
|
|
496
|
+
* 含变量/命令替换、~ 展开 → 不可静态解析 → 拒绝;
|
|
497
|
+
* cwd 不可靠(命令里出现 cd/pushd)时相对路径拒绝;
|
|
498
|
+
* 通配符目标退化为「其字面前缀的目录部分」按 globdir 交策略回调。
|
|
499
|
+
*/
|
|
500
|
+
function checkDeleteTarget(t, isDeletableTarget, cwdUnreliable) {
|
|
501
|
+
if (t.hasExpansion)
|
|
502
|
+
return false;
|
|
503
|
+
const text = t.text;
|
|
504
|
+
if (!text || text.startsWith('~'))
|
|
505
|
+
return false;
|
|
506
|
+
if (cwdUnreliable && !(0, path_1.isAbsolute)(text))
|
|
507
|
+
return false;
|
|
508
|
+
if (t.globIndex >= 0) {
|
|
509
|
+
const prefix = text.slice(0, t.globIndex);
|
|
510
|
+
const slash = prefix.lastIndexOf('/');
|
|
511
|
+
const dir = slash >= 0 ? prefix.slice(0, slash + 1) : '';
|
|
512
|
+
return isDeletableTarget(dir || '.', 'globdir');
|
|
513
|
+
}
|
|
514
|
+
return isDeletableTarget(text, 'literal');
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* rm/rmdir/mv 段的目标提取与校验:跳过 flag,`--` 之后全按操作数;
|
|
518
|
+
* mv --target-directory=DIR 的 DIR 也计入目标(-t DIR 的 DIR 不带 - 前缀,天然计入)。
|
|
519
|
+
* 无任何操作数(如裸 `rm -rf`)→ hard。
|
|
520
|
+
*/
|
|
521
|
+
function checkDeleteOperands(seg, isDeletableTarget, cwdUnreliable) {
|
|
522
|
+
const tokens = tokenizeSeg(seg);
|
|
523
|
+
if (!tokens || tokens.length === 0)
|
|
524
|
+
return 'hard';
|
|
525
|
+
const operands = [];
|
|
526
|
+
let afterDoubleDash = false;
|
|
527
|
+
for (let i = 1; i < tokens.length; i++) {
|
|
528
|
+
const t = tokens[i];
|
|
529
|
+
if (!afterDoubleDash) {
|
|
530
|
+
if (t.text === '--') {
|
|
531
|
+
afterDoubleDash = true;
|
|
532
|
+
continue;
|
|
533
|
+
}
|
|
534
|
+
if (t.text.startsWith('--target-directory=')) {
|
|
535
|
+
const v = t.text.slice('--target-directory='.length);
|
|
536
|
+
operands.push({ text: v, globIndex: t.globIndex >= 0 ? Math.max(0, t.globIndex - '--target-directory='.length) : -1, hasExpansion: t.hasExpansion });
|
|
537
|
+
continue;
|
|
538
|
+
}
|
|
539
|
+
if (t.text.startsWith('-') && t.text !== '-')
|
|
540
|
+
continue;
|
|
541
|
+
}
|
|
542
|
+
operands.push(t);
|
|
543
|
+
}
|
|
544
|
+
if (operands.length === 0)
|
|
545
|
+
return 'hard';
|
|
546
|
+
for (const t of operands) {
|
|
547
|
+
if (!checkDeleteTarget(t, isDeletableTarget, cwdUnreliable))
|
|
548
|
+
return 'hard';
|
|
549
|
+
}
|
|
550
|
+
return 'deletable';
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* find … -delete 段的起始路径提取与校验:跳过 find 前置全局选项(-H/-L/-P/-O/-D val),
|
|
554
|
+
* 收集表达式(- 开头 / ( / !)之前的位置参数为起始路径;无起始路径按 find 默认的 `.`。
|
|
555
|
+
* 删除发生在起始路径目录树内,按 globdir 语义交策略回调。
|
|
556
|
+
*/
|
|
557
|
+
function checkFindDeleteTargets(seg, isDeletableTarget, cwdUnreliable) {
|
|
558
|
+
const tokens = tokenizeSeg(seg);
|
|
559
|
+
if (!tokens || tokens.length === 0)
|
|
560
|
+
return 'hard';
|
|
561
|
+
const paths = [];
|
|
562
|
+
let i = 1;
|
|
563
|
+
while (i < tokens.length && /^-(H|L|P|O\S*|D)$/.test(tokens[i].text)) {
|
|
564
|
+
if (tokens[i].text === '-D')
|
|
565
|
+
i++;
|
|
566
|
+
i++;
|
|
567
|
+
}
|
|
568
|
+
for (; i < tokens.length; i++) {
|
|
569
|
+
const t = tokens[i];
|
|
570
|
+
if (t.text.startsWith('-') || t.text === '(' || t.text === '!')
|
|
571
|
+
break;
|
|
572
|
+
paths.push(t);
|
|
573
|
+
}
|
|
574
|
+
if (paths.length === 0)
|
|
575
|
+
paths.push({ text: '.', globIndex: -1, hasExpansion: false });
|
|
576
|
+
for (const t of paths) {
|
|
577
|
+
// 起始路径含通配符(find dist/* -delete):shell 已展开,逐个匹配项都是目录起点,
|
|
578
|
+
// checkDeleteTarget 会按 globdir 退化到字面前缀目录,语义一致
|
|
579
|
+
const ok = t.globIndex >= 0
|
|
580
|
+
? checkDeleteTarget(t, isDeletableTarget, cwdUnreliable)
|
|
581
|
+
: (!t.hasExpansion && !!t.text && !t.text.startsWith('~') &&
|
|
582
|
+
!(cwdUnreliable && !(0, path_1.isAbsolute)(t.text)) && isDeletableTarget(t.text, 'globdir'));
|
|
583
|
+
if (!ok)
|
|
584
|
+
return 'hard';
|
|
585
|
+
}
|
|
586
|
+
return 'deletable';
|
|
587
|
+
}
|
|
588
|
+
function classifyDangerousSeg(seg, isDeletableTarget, cwdUnreliable) {
|
|
589
|
+
const s = seg.trim();
|
|
590
|
+
const first = s.split(/\s+/)[0] ?? '';
|
|
591
|
+
if (HARD_DANGEROUS_COMMANDS.has(first) || first.startsWith('mkfs'))
|
|
592
|
+
return 'hard';
|
|
593
|
+
if (first === 'find') {
|
|
594
|
+
if (FIND_HARD_ACTION_FLAGS.test(s) || classifyFindExecTargets(s) === 'dangerous')
|
|
595
|
+
return 'hard';
|
|
596
|
+
if (!FIND_DELETE_FLAG.test(s))
|
|
597
|
+
return 'none';
|
|
598
|
+
if (REDIRECTION_RE.test(s))
|
|
599
|
+
return 'hard';
|
|
600
|
+
return checkFindDeleteTargets(s, isDeletableTarget, cwdUnreliable);
|
|
601
|
+
}
|
|
602
|
+
if (DELETE_COMMANDS.has(first)) {
|
|
603
|
+
// 删除命令夹带重定向属反常组合,不细分,fail-closed
|
|
604
|
+
if (REDIRECTION_RE.test(s))
|
|
605
|
+
return 'hard';
|
|
606
|
+
return checkDeleteOperands(s, isDeletableTarget, cwdUnreliable);
|
|
607
|
+
}
|
|
608
|
+
return 'none';
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* 整条命令的危险分级:逐子命令取最严(任一 hard → hard;否则任一 deletable → deletable)。
|
|
612
|
+
* 与 hasDangerousCommand 严格对齐:本函数返回 none 当且仅当 hasDangerousCommand 为 false,
|
|
613
|
+
* 即分级只在「现状确定性转人工」的集合内部细分,绝不扩大放行面。
|
|
614
|
+
*
|
|
615
|
+
* 命令里出现 cd/pushd/popd 时后续子命令的 cwd 无法静态跟踪,相对路径目标一律拒绝
|
|
616
|
+
* (绝对路径不受影响)。解析失败 fail-closed 判 hard。
|
|
617
|
+
*
|
|
618
|
+
* @param isDeletableTarget 路径策略回调:判定单个删除目标(已解析为字面路径)是否落在
|
|
619
|
+
* 允许删除的范围(由调用方定义,通常为项目内或系统临时目录,排除项目根自身与 .git)
|
|
620
|
+
*/
|
|
621
|
+
function classifyDangerousCommand(command, isDeletableTarget) {
|
|
622
|
+
let segs;
|
|
623
|
+
try {
|
|
624
|
+
segs = (0, commands_1.splitCommand)(command);
|
|
625
|
+
}
|
|
626
|
+
catch {
|
|
627
|
+
return 'hard';
|
|
628
|
+
}
|
|
629
|
+
const cwdUnreliable = segs.some(seg => {
|
|
630
|
+
const first = seg.trim().split(/\s+/)[0];
|
|
631
|
+
return first === 'cd' || first === 'pushd' || first === 'popd';
|
|
632
|
+
});
|
|
633
|
+
let cls = 'none';
|
|
634
|
+
for (const seg of segs) {
|
|
635
|
+
const c = classifyDangerousSeg(seg, isDeletableTarget, cwdUnreliable);
|
|
636
|
+
if (c === 'hard')
|
|
637
|
+
return 'hard';
|
|
638
|
+
if (c === 'deletable')
|
|
639
|
+
cls = 'deletable';
|
|
640
|
+
}
|
|
641
|
+
return cls;
|
|
642
|
+
}
|
|
403
643
|
function isReadonlySafeSubcommand(seg) {
|
|
404
644
|
if (!seg.trim())
|
|
405
645
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellSafety.js","sourceRoot":"","sources":["../../src/util/shellSafety.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shellSafety.js","sourceRoot":"","sources":["../../src/util/shellSafety.ts"],"names":[],"mappings":"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"}
|