@gendigital/sage-openclaw 0.14.0 → 0.15.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "sage-openclaw",
3
3
  "name": "Sage",
4
- "version": "0.14.0",
4
+ "version": "0.15.0",
5
5
  "description": "Safety for Agents — ADR layer that guards commands, files, and web requests",
6
6
  "skills": [
7
7
  "resources/skills/security-awareness"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gendigital/sage-openclaw",
3
3
  "license": "Apache-2.0",
4
- "version": "0.14.0",
4
+ "version": "0.15.0",
5
5
  "type": "module",
6
6
  "description": "Safety for Agents — ADR layer for OpenClaw",
7
7
  "homepage": "https://github.com/gendigitalinc/sage",
@@ -30,8 +30,8 @@
30
30
  "esbuild": "^0.25.0",
31
31
  "typescript": "^5.9.0",
32
32
  "vitest": "^4.0.0",
33
- "@gendigital/sage-core": "0.14.0",
34
- "@gendigital/sage-mcp": "0.14.0"
33
+ "@gendigital/sage-core": "0.15.0",
34
+ "@gendigital/sage-mcp": "0.15.0"
35
35
  },
36
36
  "openclaw": {
37
37
  "extensions": [
@@ -9,7 +9,7 @@
9
9
  category: secrets
10
10
  severity: critical
11
11
  confidence: 0.80
12
- pattern: "(sk-[a-zA-Z0-9_-]{20,}|sk-proj-[a-zA-Z0-9_-]{20,}|AKIA[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{35}|ghp_[0-9a-zA-Z]{36}|gho_[0-9a-zA-Z]{36}|glpat-[0-9a-zA-Z_-]{20,}|xox[baprs]-[0-9a-zA-Z-]+)"
12
+ pattern: "\\b(sk-[a-zA-Z0-9_-]{20,}|sk-proj-[a-zA-Z0-9_-]{20,}|AKIA[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{35}|ghp_[0-9a-zA-Z]{36}|gho_[0-9a-zA-Z]{36}|glpat-[0-9a-zA-Z_-]{20,}|xox[baprs]-[0-9a-zA-Z-]+)"
13
13
  match_on: [command, content]
14
14
  title: "Known API key prefix detected"
15
15
  expires_at: null
@@ -19,6 +19,9 @@
19
19
  # WebFetch/Bash url ✓ ✓ ✓
20
20
  # WebFetch/Bash domain ✓ — —
21
21
  #
22
+ # Submit-only (flags: ["submit_only"], allow + capped non-blocking telemetry):
23
+ # Bash (command), Write/Edit/Read (file_path)
24
+ #
22
25
  # The file_path rules also cover Read, Delete, Glob, and LS tools
23
26
  # (they produce the same artifact type).
24
27
  # The url rules also cover URLs embedded in Bash commands and file content.
@@ -84,7 +87,6 @@
84
87
  title: "[TEST] Canary log-only command"
85
88
  expires_at: null
86
89
  revoked: false
87
- flags: ["report"]
88
90
 
89
91
  # ─── File-path patterns (Write / Edit / Read / Delete tools) ────────
90
92
 
@@ -123,7 +125,6 @@
123
125
  title: "[TEST] Canary log-only file path"
124
126
  expires_at: null
125
127
  revoked: false
126
- flags: ["report"]
127
128
 
128
129
  # ─── Content patterns (Write / Edit tools — file body) ──────────────
129
130
 
@@ -162,7 +163,6 @@
162
163
  title: "[TEST] Canary log-only content"
163
164
  expires_at: null
164
165
  revoked: false
165
- flags: ["report"]
166
166
 
167
167
  # ─── URL patterns (WebFetch / Bash / Write content) ─────────────────
168
168
  # Uses .test TLD (RFC 2606 reserved, never resolves) for safety.
@@ -202,7 +202,6 @@
202
202
  title: "[TEST] Canary log-only URL"
203
203
  expires_at: null
204
204
  revoked: false
205
- flags: ["report"]
206
205
 
207
206
  # ─── Domain pattern (verifies domain→url routing in heuristics) ─────
208
207
 
@@ -217,3 +216,37 @@
217
216
  title: "[TEST] Canary deny domain"
218
217
  expires_at: null
219
218
  revoked: false
219
+
220
+ # ─── Submit-only patterns (telemetry, never block) ──────────────────
221
+ #
222
+ # `flags: ["submit_only"]` removes the rule from the verdict entirely and
223
+ # instead submits a non-blocking event to /v2/heuristic, capped at one submit
224
+ # per rule per client per 24h (packages/core/src/submit-limits.ts). The
225
+ # confidence is deliberately deny-level so a regression that lets the flag
226
+ # leak into the verdict shows up as a deny.
227
+
228
+ - id: "DUMMY-CMD-SUBMIT-001"
229
+ version: 1
230
+ detection_name: "CMD:SageTestCommandSubmit-A [Tst]"
231
+ category: testing
232
+ severity: critical
233
+ confidence: 0.95
234
+ pattern: "diagmark_cmd_d7e7127e"
235
+ match_on: command
236
+ title: "[TEST] Canary submit-only command"
237
+ expires_at: null
238
+ revoked: false
239
+ flags: ["submit_only"]
240
+
241
+ - id: "DUMMY-FILE-SUBMIT-001"
242
+ version: 1
243
+ detection_name: "FN:SageTestFileSubmit-A [Tst]"
244
+ category: testing
245
+ severity: critical
246
+ confidence: 0.95
247
+ pattern: "diagmark_file_57871281"
248
+ match_on: file_path
249
+ title: "[TEST] Canary submit-only file path"
250
+ expires_at: null
251
+ revoked: false
252
+ flags: ["submit_only"]
@@ -440,3 +440,16 @@
440
440
  expires_at: null
441
441
  revoked: false
442
442
  # Source: ATR-2026-00097 (pattern unchanged from upstream). Covers zh-CN, zh-TW, ja, ko.
443
+
444
+ - id: "CLT-PI-094"
445
+ version: 1
446
+ detection_name: "Other:SagePromptInjection-CP [Heur]"
447
+ category: prompt_injection
448
+ severity: warning
449
+ confidence: 0.70
450
+ case_insensitive: true
451
+ pattern: "\\b(?:disregard|ignore|forget|override)\\s+(?:all\\s+|any\\s+)?(?:your|the|my)\\s+system\\s+(?:prompt|message|instructions?)\\b"
452
+ match_on: content
453
+ title: "Instruction override: disregard system prompt"
454
+ expires_at: null
455
+ revoked: false