@kenhkl/agent-moss 0.10.0 → 0.10.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.
- package/dist/cli.js +24 -3
- package/dist/cli.js.map +1 -1
- package/dist/engine/coordinator.js +24 -3
- package/dist/engine/coordinator.js.map +1 -1
- package/dist/server.js +24 -3
- package/dist/server.js.map +1 -1
- package/dist/static/index.html +1132 -0
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -477,8 +477,10 @@ function extractFilePaths(text) {
|
|
|
477
477
|
return [...new Set(paths)];
|
|
478
478
|
}
|
|
479
479
|
function checkReadBeforeWrite(actionType, actionDetail, actionHistory, reason, cwd) {
|
|
480
|
+
if (NON_WRITE_TOOL_PREFIXES.some((p) => actionType.startsWith(p))) return null;
|
|
480
481
|
if (NON_WRITE_TOOLS.has(actionType)) return null;
|
|
481
|
-
|
|
482
|
+
const isBashLike = actionType === "bash" || actionType === "executebash" || actionType === "terminal-executebash";
|
|
483
|
+
let isWrite = isBashLike ? WRITE_KEYWORDS.some((kw) => actionType.includes(kw) || actionDetail.includes(kw)) : WRITE_KEYWORDS.some((kw) => actionType.includes(kw));
|
|
482
484
|
if (!isWrite && actionDetail.includes(">")) {
|
|
483
485
|
const detailWithoutDevnull = actionDetail.replace(/(?:2|&|1)?\s*>\s*\/dev\/null\b/g, "");
|
|
484
486
|
if (detailWithoutDevnull.includes(">")) {
|
|
@@ -644,7 +646,7 @@ function checkIndirectFileAccess(actionType, actionDetail, cwd) {
|
|
|
644
646
|
violatedLayers: ["2"]
|
|
645
647
|
};
|
|
646
648
|
}
|
|
647
|
-
var ROOT_SENSITIVE_PATHS, HOME_SENSITIVE_PATHS, CREDENTIAL_PATHS, NON_WRITE_TOOLS, READ_ONLY_REDIR_CMDS, WRITE_KEYWORDS, READ_KEYWORDS, CREATE_KEYWORDS, PASSWORD_MODIFY_PATTERNS, USER_DELETION_PATTERNS, INTENT_DEVIATION_PATTERNS, INLINE_SCRIPT_RE, DIR_TRAVERSAL_KW;
|
|
649
|
+
var ROOT_SENSITIVE_PATHS, HOME_SENSITIVE_PATHS, CREDENTIAL_PATHS, NON_WRITE_TOOLS, NON_WRITE_TOOL_PREFIXES, READ_ONLY_REDIR_CMDS, WRITE_KEYWORDS, READ_KEYWORDS, CREATE_KEYWORDS, PASSWORD_MODIFY_PATTERNS, USER_DELETION_PATTERNS, INTENT_DEVIATION_PATTERNS, INLINE_SCRIPT_RE, DIR_TRAVERSAL_KW;
|
|
648
650
|
var init_logic_rules = __esm({
|
|
649
651
|
"src/engine/logic-rules.ts"() {
|
|
650
652
|
"use strict";
|
|
@@ -696,7 +698,26 @@ var init_logic_rules = __esm({
|
|
|
696
698
|
{ path: "secrets.yaml", riskLevel: "high", desc: "\u5BC6\u94A5\u914D\u7F6E\u6587\u4EF6" },
|
|
697
699
|
{ path: ".env", riskLevel: "high", desc: "\u73AF\u5883\u53D8\u91CF/\u51ED\u636E\u914D\u7F6E\u6587\u4EF6" }
|
|
698
700
|
];
|
|
699
|
-
NON_WRITE_TOOLS = /* @__PURE__ */ new Set([
|
|
701
|
+
NON_WRITE_TOOLS = /* @__PURE__ */ new Set([
|
|
702
|
+
"ask_user_question",
|
|
703
|
+
"glob",
|
|
704
|
+
"grep",
|
|
705
|
+
"list_dir",
|
|
706
|
+
"count_text_length",
|
|
707
|
+
"search",
|
|
708
|
+
// filemgr 只读三件套(globfiles 在 coordinator FULLY_SAFE_TOOLS 提前放行,此处兜底防御非 coordinator 入口)
|
|
709
|
+
"filemgr-globfiles",
|
|
710
|
+
"filemgr-readfile",
|
|
711
|
+
"filemgr-grepfiles",
|
|
712
|
+
// 通用只读工具名
|
|
713
|
+
"read",
|
|
714
|
+
"read_file",
|
|
715
|
+
"file_read",
|
|
716
|
+
"head",
|
|
717
|
+
"tail",
|
|
718
|
+
"cat"
|
|
719
|
+
]);
|
|
720
|
+
NON_WRITE_TOOL_PREFIXES = ["memory-", "skill-manager-", "mailbox-", "app-"];
|
|
700
721
|
READ_ONLY_REDIR_CMDS = /* @__PURE__ */ new Set(["cat", "head", "tail", "less", "more", "grep", "find", "awk", "sed", "sort", "uniq", "wc", "cut", "strings", "od", "xxd", "hexdump"]);
|
|
701
722
|
WRITE_KEYWORDS = ["write", "\u5199\u5165", "save", "\u4FDD\u5B58", "modify", "\u4FEE\u6539", "update", "\u66F4\u65B0", "delete", "\u5220\u9664", "remove", "\u79FB\u9664", "create", "\u521B\u5EFA", "append", "\u8FFD\u52A0", "truncate", "\u622A\u65AD", "overwrite", "\u8986\u76D6", "replace", "\u66FF\u6362"];
|
|
702
723
|
READ_KEYWORDS = ["read", "\u8BFB\u53D6", "cat", "head", "tail", "less", "more", "view", "\u67E5\u770B", "open", "\u6253\u5F00", "load", "\u52A0\u8F7D", "grep", "search", "\u641C\u7D22", "find", "\u67E5\u627E"];
|