sema-core 2.0.14 → 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 +81 -6
- 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/PickOption.d.ts.map +1 -1
- package/dist/tools/PickOption.js +6 -0
- package/dist/tools/PickOption.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/tools/SubAgent.js +7 -7
- package/dist/tools/SubAgent.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/agentStats.d.ts +3 -1
- package/dist/util/agentStats.d.ts.map +1 -1
- package/dist/util/agentStats.js +17 -3
- package/dist/util/agentStats.js.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 +38 -2
- package/dist/util/shellSafety.d.ts.map +1 -1
- package/dist/util/shellSafety.js +495 -12
- package/dist/util/shellSafety.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractPredictionContext = extractPredictionContext;
|
|
4
|
+
exports.predictNextInputInBackground = predictNextInputInBackground;
|
|
5
|
+
const queryLLM_1 = require("../services/api/queryLLM");
|
|
6
|
+
const message_1 = require("./message");
|
|
7
|
+
const StateManager_1 = require("../manager/StateManager");
|
|
8
|
+
const EventSystem_1 = require("../events/EventSystem");
|
|
9
|
+
const autoRunContext_1 = require("./autoRunContext");
|
|
10
|
+
const inputPredict_1 = require("../prompt/inputPredict");
|
|
11
|
+
const errors_1 = require("../types/errors");
|
|
12
|
+
const log_1 = require("./log");
|
|
13
|
+
// assistant 文本截断上限:预测只需要结论/提问,长篇正文是噪声
|
|
14
|
+
const MAX_ASSISTANT_TEXT_LEN = 500;
|
|
15
|
+
// 历史窗口:只取最近 N 条真实用户输入起的切片,控制 token
|
|
16
|
+
const RECENT_USER_TURNS = 4;
|
|
17
|
+
// 真实用户输入消息:user 类型且不含 tool_result(含 tool_result 的是工具结果载体/合成消息)
|
|
18
|
+
function isRealUserMsg(msg) {
|
|
19
|
+
if (msg.type !== 'user')
|
|
20
|
+
return false;
|
|
21
|
+
const content = msg.message.content;
|
|
22
|
+
if (typeof content === 'string')
|
|
23
|
+
return true;
|
|
24
|
+
return !content.some(b => b.type === 'tool_result');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 将会话历史压缩成一串纯 text 块,供输入预测作为上下文。
|
|
28
|
+
* 与 extractAutoRunContext 的差异:保留 assistant 文本摘要(用户往往在回应
|
|
29
|
+
* assistant 的提问/结论,丢掉它预测信号不足),并只取最近 RECENT_USER_TURNS 轮。
|
|
30
|
+
*/
|
|
31
|
+
function extractPredictionContext(messages) {
|
|
32
|
+
let start = 0;
|
|
33
|
+
let seen = 0;
|
|
34
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
35
|
+
if (isRealUserMsg(messages[i])) {
|
|
36
|
+
seen++;
|
|
37
|
+
if (seen >= RECENT_USER_TURNS) {
|
|
38
|
+
start = i;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const blocks = [];
|
|
44
|
+
const pushUserText = (raw) => {
|
|
45
|
+
const text = (0, autoRunContext_1.stripReminderSys)(raw).trim();
|
|
46
|
+
if (text)
|
|
47
|
+
blocks.push({ type: 'text', text: `User: ${text}` });
|
|
48
|
+
};
|
|
49
|
+
// 截断保尾:提问/待决事项通常在文本末尾
|
|
50
|
+
const pushAssistantText = (raw) => {
|
|
51
|
+
const text = raw.trim();
|
|
52
|
+
if (!text)
|
|
53
|
+
return;
|
|
54
|
+
const t = text.length > MAX_ASSISTANT_TEXT_LEN ? `…${text.slice(-MAX_ASSISTANT_TEXT_LEN)}` : text;
|
|
55
|
+
blocks.push({ type: 'text', text: `Assistant: ${t}` });
|
|
56
|
+
};
|
|
57
|
+
for (const msg of messages.slice(start)) {
|
|
58
|
+
const content = msg.message.content;
|
|
59
|
+
if (msg.type === 'user') {
|
|
60
|
+
if (typeof content === 'string') {
|
|
61
|
+
pushUserText(content);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (content.some(b => b.type === 'tool_result'))
|
|
65
|
+
continue;
|
|
66
|
+
for (const b of content) {
|
|
67
|
+
if (b.type === 'text')
|
|
68
|
+
pushUserText(b.text);
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// assistant 消息:文本摘要 + 副作用工具紧凑行,丢弃 thinking / 只读工具
|
|
73
|
+
if (typeof content === 'string') {
|
|
74
|
+
pushAssistantText(content);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
for (const b of content) {
|
|
78
|
+
if (b.type === 'text') {
|
|
79
|
+
pushAssistantText(b.text);
|
|
80
|
+
}
|
|
81
|
+
else if (b.type === 'tool_use') {
|
|
82
|
+
const line = (0, autoRunContext_1.summarizeToolUse)(b);
|
|
83
|
+
if (line)
|
|
84
|
+
blocks.push({ type: 'text', text: line });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return blocks;
|
|
89
|
+
}
|
|
90
|
+
// 解析输出契约:<predict>…</predict> 取内容;<none/> 或任何不合规输出均视为"不回复"
|
|
91
|
+
function parsePrediction(content) {
|
|
92
|
+
const m = content.match(/<predict>([\s\S]*?)<\/predict>/);
|
|
93
|
+
return m ? m[1].trim() : '';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 后台异步预测用户下一句输入,不阻塞主流程。
|
|
97
|
+
* 一轮回复自然结束后调用;结果以 input:predict 事件发出,
|
|
98
|
+
* prediction 为空串表示"预计不回复"(UI 据此清空提示)。
|
|
99
|
+
*/
|
|
100
|
+
async function predictNextInputInBackground(sessionId) {
|
|
101
|
+
try {
|
|
102
|
+
const runtime = (0, StateManager_1.getStateManager)().session(sessionId);
|
|
103
|
+
const history = runtime.forAgent(StateManager_1.MAIN_AGENT_ID).getMessageHistory();
|
|
104
|
+
const context = extractPredictionContext(history);
|
|
105
|
+
if (context.length === 0)
|
|
106
|
+
return;
|
|
107
|
+
// 与 AutoRun 裁决同构:历史压缩进单条 user 消息的多个 text 块(无 tool 块),tools 传 []
|
|
108
|
+
const response = await (0, queryLLM_1.queryLLM)([(0, message_1.buildUserMsg)(context)], [{ type: 'text', text: inputPredict_1.INPUT_PREDICT_SYSTEM_PROMPT }], new AbortController().signal, [], {
|
|
109
|
+
modelPointer: 'quick',
|
|
110
|
+
disableChunkEvents: true,
|
|
111
|
+
disableErrorEvents: true,
|
|
112
|
+
disableThinking: true,
|
|
113
|
+
sessionId,
|
|
114
|
+
});
|
|
115
|
+
const content = response.message.content
|
|
116
|
+
.filter(b => b.type === 'text')
|
|
117
|
+
.map(b => b.text)
|
|
118
|
+
.join('\n');
|
|
119
|
+
if (content.startsWith(message_1.API_ERR_PREFIX))
|
|
120
|
+
return;
|
|
121
|
+
// 迟到校验:会话已进入新一轮则丢弃(新一轮结束时会重新预测)
|
|
122
|
+
if (runtime.getCurrentState() !== 'idle')
|
|
123
|
+
return;
|
|
124
|
+
const prediction = parsePrediction(content);
|
|
125
|
+
(0, log_1.logDebug)(`[inputPredict] 预测结果: ${prediction || '<none>'}`);
|
|
126
|
+
(0, EventSystem_1.getEventBus)().emit('input:predict', { prediction }, sessionId);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
// 预测失败不影响主流程,只记录调试日志
|
|
130
|
+
if (!(0, errors_1.isInterruptedException)(error)) {
|
|
131
|
+
(0, log_1.logDebug)(`[inputPredict] 预测失败: ${error}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=inputPredict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputPredict.js","sourceRoot":"","sources":["../../src/util/inputPredict.ts"],"names":[],"mappings":"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"}
|
package/dist/util/message.d.ts
CHANGED
|
@@ -12,6 +12,6 @@ export declare function buildUserMsg(content: string | Anthropic.ContentBlockPar
|
|
|
12
12
|
/**
|
|
13
13
|
* 构建 additionalReminders:文件引用、首次查询、Plan 模式信息、skill信息
|
|
14
14
|
*/
|
|
15
|
-
export declare function buildAdditionalReminders(systemReminders: Anthropic.ContentBlockParam[], messageHistory: Message[], agentMode: AgentMode, sessionId: string, hasSkillTool?: boolean): Anthropic.ContentBlockParam[]
|
|
15
|
+
export declare function buildAdditionalReminders(systemReminders: Anthropic.ContentBlockParam[], messageHistory: Message[], agentMode: AgentMode, sessionId: string, hasSkillTool?: boolean): Promise<Anthropic.ContentBlockParam[]>;
|
|
16
16
|
export declare function prepareMessagesForApi(messages: Message[]): (UserMsg | AiMessage)[];
|
|
17
17
|
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMzC,eAAO,MAAM,iBAAiB,kCAAkC,CAAA;AAChE,eAAO,MAAM,kBAAkB,mCACG,CAAA;AAClC,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAClG,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAGlG,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,cAAc,cAAc,CAAA;AAKzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAC/C,aAAa,CAAC,EAAE,iBAAiB,EACjC,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAQT;AAGD;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMzC,eAAO,MAAM,iBAAiB,kCAAkC,CAAA;AAChE,eAAO,MAAM,kBAAkB,mCACG,CAAA;AAClC,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAClG,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAGlG,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,cAAc,cAAc,CAAA;AAKzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAC/C,aAAa,CAAC,EAAE,iBAAiB,EACjC,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAQT;AAGD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAC9C,cAAc,EAAE,OAAO,EAAE,EACzB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CA6BxC;AAuBD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAkHzB"}
|
package/dist/util/message.js
CHANGED
|
@@ -39,14 +39,14 @@ function buildUserMsg(content, toolUseResult, controlSignal) {
|
|
|
39
39
|
/**
|
|
40
40
|
* 构建 additionalReminders:文件引用、首次查询、Plan 模式信息、skill信息
|
|
41
41
|
*/
|
|
42
|
-
function buildAdditionalReminders(systemReminders, messageHistory, agentMode, sessionId, hasSkillTool = false) {
|
|
42
|
+
async function buildAdditionalReminders(systemReminders, messageHistory, agentMode, sessionId, hasSkillTool = false) {
|
|
43
43
|
// 文件引用 每次输入均添加
|
|
44
44
|
const reminders = [...systemReminders];
|
|
45
45
|
// 判断是否为首次查询(消息历史为空),添加首次查询的额外信息 skills\rules
|
|
46
46
|
if (messageHistory.length === 0) {
|
|
47
47
|
// 添加 skills 信息(仅当工具集中包含 Skill 工具时)
|
|
48
48
|
if (hasSkillTool) {
|
|
49
|
-
reminders.push(...(0, genSystemReminder_1.generateSkillsReminder)());
|
|
49
|
+
reminders.push(...await (0, genSystemReminder_1.generateSkillsReminder)());
|
|
50
50
|
}
|
|
51
51
|
// 添加 rules 信息
|
|
52
52
|
reminders.push(...(0, genSystemReminder_1.generateRulesReminders)());
|
package/dist/util/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":";;;AAiBA,4DAEC;AAOD,oDAEC;AAGD,oCAYC;AAMD,4DAmCC;AAuBD,sDAoHC;AA9ND,mCAAmC;AACnC,yCAAgC;AAGhC,4EAA4H;AAC5H,wFAAoF;AACpF,0DAAyD;AAEzD,WAAW;AACE,QAAA,iBAAiB,GAAG,+BAA+B,CAAA;AACnD,QAAA,kBAAkB,GAC7B,gCAAgC,CAAA;AACrB,QAAA,UAAU,GAAG,wEAAwE,CAAA;AACrF,QAAA,UAAU,GAAG,wEAAwE,CAAA;AAElG,sBAAsB;AACtB,SAAgB,wBAAwB,CAAC,YAAoB;IAC3D,OAAO,6EAA6E,YAAY,EAAE,CAAA;AACpG,CAAC;AAEY,QAAA,cAAc,GAAG,WAAW,CAAA;AAEzC,MAAM,iBAAiB,GAAG,CAAC,yBAAiB,EAAE,0BAAkB,EAAE,kBAAU,EAAE,kBAAU,CAAU,CAAA;AAElG,cAAc;AACd,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAwC,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS;AACT,SAAgB,YAAY,CAC1B,OAA+C,EAC/C,aAAiC,EACjC,aAAiC;IAEjC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAClC,IAAI,EAAE,IAAA,mBAAU,GAAE;QAClB,aAAa;QACb,aAAa;KACd,CAAA;AACH,CAAC;AAGD;;GAEG;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,25 @@
|
|
|
7
7
|
* 并正确处理引号),再用 REDIRECTION_RE 检测;解析失败时保守按「含重定向」处理。
|
|
8
8
|
*/
|
|
9
9
|
export declare function hasRedirection(command: string): boolean;
|
|
10
|
+
export type SubstitutionClass = 'readonly' | 'gray' | 'dangerous';
|
|
11
|
+
/**
|
|
12
|
+
* 对「注入特征仅可能来自 $() 命令替换」的整条命令做递归分类。
|
|
13
|
+
* 内层命令先递归分类(内层自身可含 && / | / 嵌套 $() 等);随后骨架经 splitCommand
|
|
14
|
+
* 分段,逐段按顶层三层规则判定:危险首词/解释器/嵌套危险 find → dangerous;
|
|
15
|
+
* 只读安全 → readonly;其余 → gray。骨架残留任何注入特征(换行等)→ dangerous。
|
|
16
|
+
*
|
|
17
|
+
* 供权限闸门使用:dangerous → 确定性转人工(不给模型机会);readonly/gray → 交
|
|
18
|
+
* AutoRun 模型判断。刻意不提供确定性放行——放行与否只由模型或人工裁决,解析器
|
|
19
|
+
* 误差最多把命令送去模型,绝不静默放过。
|
|
20
|
+
*/
|
|
21
|
+
export declare function classifyCommandSubstitutions(command: string, depth?: number): SubstitutionClass;
|
|
10
22
|
/**
|
|
11
23
|
* 命令是否含「语义危险」子命令:危险首词(rm/sudo/mv 等)或 find 危险 flag。
|
|
12
24
|
* 不含重定向——重定向是否危险取决于路径(项目内可能安全),应交给上层模型判断。
|
|
13
25
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
26
|
+
* 用于前缀授权禁令(isUnsafeForPrefixAuth):命中即不提供/不匹配前缀授权。
|
|
27
|
+
* AutoRun 权限闸门改用 classifyDangerousCommand 做进一步分级(硬危险 / 删除类灰区),
|
|
28
|
+
* 两者的「危险」集合严格一致。解析失败保守按「危险」处理(fail-closed)。
|
|
16
29
|
*/
|
|
17
30
|
export declare function hasDangerousCommand(command: string): boolean;
|
|
18
31
|
/**
|
|
@@ -23,6 +36,29 @@ export declare function hasDangerousCommand(command: string): boolean;
|
|
|
23
36
|
* 涵盖:含重定向 / 危险首词(rm、sudo、mv 等)/ find 危险 flag。
|
|
24
37
|
*/
|
|
25
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;
|
|
26
62
|
/**
|
|
27
63
|
* 整条命令是否可判定为「只读安全」,可直接放行(无需人工/模型)。
|
|
28
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"}
|