@kenhkl/agent-moss 0.10.1 → 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/cli.js
CHANGED
|
@@ -478,8 +478,10 @@ function extractFilePaths(text) {
|
|
|
478
478
|
return [...new Set(paths)];
|
|
479
479
|
}
|
|
480
480
|
function checkReadBeforeWrite(actionType, actionDetail, actionHistory, reason, cwd) {
|
|
481
|
+
if (NON_WRITE_TOOL_PREFIXES.some((p) => actionType.startsWith(p))) return null;
|
|
481
482
|
if (NON_WRITE_TOOLS.has(actionType)) return null;
|
|
482
|
-
|
|
483
|
+
const isBashLike = actionType === "bash" || actionType === "executebash" || actionType === "terminal-executebash";
|
|
484
|
+
let isWrite = isBashLike ? WRITE_KEYWORDS.some((kw) => actionType.includes(kw) || actionDetail.includes(kw)) : WRITE_KEYWORDS.some((kw) => actionType.includes(kw));
|
|
483
485
|
if (!isWrite && actionDetail.includes(">")) {
|
|
484
486
|
const detailWithoutDevnull = actionDetail.replace(/(?:2|&|1)?\s*>\s*\/dev\/null\b/g, "");
|
|
485
487
|
if (detailWithoutDevnull.includes(">")) {
|
|
@@ -645,7 +647,7 @@ function checkIndirectFileAccess(actionType, actionDetail, cwd) {
|
|
|
645
647
|
violatedLayers: ["2"]
|
|
646
648
|
};
|
|
647
649
|
}
|
|
648
|
-
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;
|
|
650
|
+
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;
|
|
649
651
|
var init_logic_rules = __esm({
|
|
650
652
|
"src/engine/logic-rules.ts"() {
|
|
651
653
|
"use strict";
|
|
@@ -697,7 +699,26 @@ var init_logic_rules = __esm({
|
|
|
697
699
|
{ path: "secrets.yaml", riskLevel: "high", desc: "\u5BC6\u94A5\u914D\u7F6E\u6587\u4EF6" },
|
|
698
700
|
{ path: ".env", riskLevel: "high", desc: "\u73AF\u5883\u53D8\u91CF/\u51ED\u636E\u914D\u7F6E\u6587\u4EF6" }
|
|
699
701
|
];
|
|
700
|
-
NON_WRITE_TOOLS = /* @__PURE__ */ new Set([
|
|
702
|
+
NON_WRITE_TOOLS = /* @__PURE__ */ new Set([
|
|
703
|
+
"ask_user_question",
|
|
704
|
+
"glob",
|
|
705
|
+
"grep",
|
|
706
|
+
"list_dir",
|
|
707
|
+
"count_text_length",
|
|
708
|
+
"search",
|
|
709
|
+
// filemgr 只读三件套(globfiles 在 coordinator FULLY_SAFE_TOOLS 提前放行,此处兜底防御非 coordinator 入口)
|
|
710
|
+
"filemgr-globfiles",
|
|
711
|
+
"filemgr-readfile",
|
|
712
|
+
"filemgr-grepfiles",
|
|
713
|
+
// 通用只读工具名
|
|
714
|
+
"read",
|
|
715
|
+
"read_file",
|
|
716
|
+
"file_read",
|
|
717
|
+
"head",
|
|
718
|
+
"tail",
|
|
719
|
+
"cat"
|
|
720
|
+
]);
|
|
721
|
+
NON_WRITE_TOOL_PREFIXES = ["memory-", "skill-manager-", "mailbox-", "app-"];
|
|
701
722
|
READ_ONLY_REDIR_CMDS = /* @__PURE__ */ new Set(["cat", "head", "tail", "less", "more", "grep", "find", "awk", "sed", "sort", "uniq", "wc", "cut", "strings", "od", "xxd", "hexdump"]);
|
|
702
723
|
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"];
|
|
703
724
|
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"];
|