@sofagent/rules 1.4.9 → 1.5.0
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/approval-mode.js +1 -1
- package/dist/ast/engine.js +1 -1
- package/dist/ast/index.js +1 -1
- package/dist/ast/plugin-adapter.js +1 -1
- package/dist/ast/rules/asi01-prompt-injection.js +1 -1
- package/dist/ast/rules/asi04-sbom.js +1 -1
- package/dist/ast/rules/index.js +1 -1
- package/dist/ast/rules/no-child-process-shell.js +1 -1
- package/dist/ast/rules/no-debugger.js +1 -1
- package/dist/ast/rules/no-dynamic-require.js +1 -1
- package/dist/ast/rules/no-empty-catch.js +1 -1
- package/dist/ast/rules/no-eval.js +1 -1
- package/dist/ast/rules/no-hardcoded-secret.js +1 -1
- package/dist/ast/rules/no-insecure-url.js +1 -1
- package/dist/ast/rules/no-sql-string-concat.js +1 -1
- package/dist/ast/rules/semver.js +1 -1
- package/dist/ast/walk.js +1 -1
- package/dist/engine.js +1 -1
- package/dist/index.js +3 -3
- package/dist/rules/index.js +1 -1
- package/dist/rules/tool-injection.js +1 -1
- package/dist/rules/tool-secret-leak.js +2 -2
- package/dist/rules/tool-sensitive-file.js +1 -1
- package/dist/types.js +1 -1
- package/package.json +2 -2
package/dist/approval-mode.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//(allow-all / deny-all / read-only / always-ask)。
|
|
7
7
|
//
|
|
8
8
|
// 四种模式行为:
|
|
9
|
-
// allow-with-audit 全部放行 + 写审计日志(默认模式 = v1.
|
|
9
|
+
// allow-with-audit 全部放行 + 写审计日志(默认模式 = v1.5.0 行为,不破坏既有)
|
|
10
10
|
// deny-all 全部拦截(调试/安全演练)
|
|
11
11
|
// read-only 只读工具(permission='r')自动放行,读写需人工确认(Benchmark 评测)
|
|
12
12
|
// always-ask 每次工具调用都问人(危险操作密集场景)
|
package/dist/ast/engine.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// engine.ts · AST 规则引擎核心
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):官方 AST 规则引擎参考实现(sofagent-ruleset-ast)
|
|
5
5
|
//
|
|
6
6
|
// 依赖说明(TypeScript 7 原生端 API 变迁):
|
|
7
7
|
// TypeScript 7(Go 原生移植)移除了 5.x 的 createSourceFile 同步解析 API,
|
package/dist/ast/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// ast/index.ts · AST 规则引擎 barrel export
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):官方 AST 规则引擎参考实现(sofagent-ruleset-ast)
|
|
5
5
|
// ============================================================
|
|
6
6
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// plugin-adapter.ts · v1.2.9 插件协议适配器
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):官方 AST 引擎以 `sofagent-ruleset-ast` 形态接入——
|
|
5
5
|
// 规则集 JSON 声明 type:plugin + plugin:"@sofagent/rules/ast",
|
|
6
6
|
// 与 git-diff pattern 规则同管线(ruleset-loader → plugin-runner)
|
|
7
7
|
//
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// asi01-prompt-injection.ts · OWASP ASI01 目标劫持检测
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):扫描 SKILL.md / fde.md 等 system prompt 类文件中的
|
|
5
5
|
// 对抗性注入模式——「忽略上述指令」类指令覆盖(Microsoft AGT 启发)
|
|
6
6
|
//
|
|
7
7
|
// 边界说明:markdown 没有 TS AST,语义级检测落在
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// asi04-sbom.ts · OWASP ASI04 供应链 SBOM 检测
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):扫描依赖清单(package.json / go.mod)→ 生成 SBOM →
|
|
5
5
|
// 查离线样例漏洞库(fixtures/vuln-db.json,不依赖 CI 联网)
|
|
6
6
|
//
|
|
7
7
|
// Microsoft AGT 启发:受损插件/子 agent 经由依赖清单注入恶意行为——
|
package/dist/ast/rules/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// rules/index.ts · 官方示范规则集注册表
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):10 条示范规则(8 条代码 AST + 2 条 OWASP 语义)
|
|
5
5
|
// 社区照这个结构写自己的 sofagent-ruleset-* 引擎
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-child-process-shell.ts · child_process shell 执行管控
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):exec/execSync 走 shell 解释器——参数拼接即命令注入。
|
|
5
5
|
// 语法级检测:文件里 import 了 child_process 的 exec* 绑定后又被调用
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-debugger.ts · 禁止 debugger 语句
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):debugger 语句遗留在生产代码会冻结 Node 进程
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.noDebuggerRule = void 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-dynamic-require.ts · 禁止动态 require
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):require(变量) 使依赖来源在静态分析下不可见——
|
|
5
5
|
// 供应链投毒(OWASP ASI04)的隐藏通道
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-empty-catch.ts · 禁止空 catch 块
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):空 catch 吞异常——错误静默扩散是审计盲区的经典成因
|
|
5
5
|
// (对齐 FORGE「空 catch 治理」工程纪律的语义级落地)
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-eval.ts · 禁止 eval() / new Function()
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):官方示范 AST 规则——动态代码执行是注入攻击的标准入口
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.noEvalRule = void 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-hardcoded-secret.ts · 禁止硬编码密钥(AST 语义级)
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):与 pattern 规则(正则扫行)相比,AST 级检测只命中
|
|
5
5
|
// 「赋值给密钥类变量名的字符串字面量」,误报率显著更低
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-insecure-url.ts · 禁止 http:// 明文端点
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):AST 级扫字符串字面量——只报代码里的端点 URL,
|
|
5
5
|
// 不碰注释与文档(pattern 规则会误伤)
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// no-sql-string-concat.ts · 禁止 SQL 字符串拼接
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):query 类调用的参数若为「字面量 + 变量」拼接,
|
|
5
5
|
// 即 SQL 注入入口(AST 级只报高危形态,比正则扫行准)
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/ast/rules/semver.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// semver.ts · 最小语义化版本比较(ASI04 漏洞区间匹配用)
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):只支持 MAJOR.MINOR.PATCH 数字三元组 + 简单前缀
|
|
5
5
|
// (如 1.2 / 1.x),prerelease/build 忽略——漏洞库区间足够用
|
|
6
6
|
// ============================================================
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/ast/walk.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// walk.ts · 语法树遍历工具
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0(一):深度优先遍历 + 判型/取文本工具——规则层共用
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.walk = walk;
|
package/dist/engine.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// engine.ts · RulesEngine 纯函数入口
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0:P3 编排模块内嵌——规则引擎核心
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RulesEngine = void 0;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// ── API 分级契约(v1.
|
|
2
|
+
// ── API 分级契约(v1.5.0 四)────────────────────────────
|
|
3
3
|
// `/* @public */`:公开 API——semver 锁定,变更必须 bump 版本 + CHANGELOG 记录
|
|
4
4
|
// (外部依赖方与跨平台适配器只许 import 这一层)
|
|
5
5
|
// `/* @internal */`:内部 API——不承诺稳定性,破坏性变更无需 bump
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
// ────────────────────────────────────────────────────────
|
|
8
8
|
// ============================================================
|
|
9
9
|
// index.ts · @sofagent/rules barrel export
|
|
10
|
-
// v1.
|
|
11
|
-
// Last revised: v1.
|
|
10
|
+
// v1.5.0:导出 21 个公开符号(以 `node tools/check/public-api.mjs` AST 解析为准),内部实现不外露
|
|
11
|
+
// Last revised: v1.5.0
|
|
12
12
|
// ============================================================
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.buildSbom = exports.astRuleById = exports.builtinAstRules = exports.AstRuleEngine = exports.shouldApprove = exports.shouldAllow = exports.defaultToolRules = exports.RulesEngine = void 0;
|
package/dist/rules/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// rules/index.ts · 默认规则注册表
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0:P3 编排模块内嵌——默认 tool 规则集合
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.defaultToolRules = void 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// tool-injection.ts · 移植 audit rule-a9(prompt injection 检测)
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0:tool 视角——扫 args 里的 prompt injection 模式
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.toolInjection = void 0;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// tool-secret-leak.ts · 移植 audit rule-a2(密钥泄漏检测)
|
|
4
|
-
// v1.
|
|
5
|
-
// v1.
|
|
4
|
+
// v1.5.0:tool 视角——扫 args 字面量里的密钥模式
|
|
5
|
+
// v1.5.0 SECRET_PATTERNS 抽到 @sofagent/core 共享——此前本文件用严格
|
|
6
6
|
// 48 位 sk- 模式导致 32-47 位密钥被 ToolGate 放行(与 A2 漂移互补成洞)。
|
|
7
7
|
// ============================================================
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// tool-sensitive-file.ts · 移植 audit rule-a1(敏感文件保护)
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0:tool 视角——校验 args 里的文件路径
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.toolSensitiveFile = void 0;
|
package/dist/types.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// types.ts · P3 编排模块内嵌——tool call 拦截器类型定义
|
|
4
|
-
// v1.
|
|
4
|
+
// v1.5.0:从 audit 规则抽出为纯函数,零 fs/git 依赖
|
|
5
5
|
// ============================================================
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
//# sourceMappingURL=types.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sofagent/rules",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=18"
|
|
6
6
|
},
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"README.md"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@sofagent/core": "1.
|
|
46
|
+
"@sofagent/core": "1.5.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"typescript": ">=5.0.0"
|