@clawdstrike/openclaw 0.1.3 → 0.2.1

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.
Files changed (136) hide show
  1. package/README.md +11 -0
  2. package/dist/audit/adapter-logger.d.ts +3 -3
  3. package/dist/audit/adapter-logger.d.ts.map +1 -1
  4. package/dist/audit/adapter-logger.js +3 -3
  5. package/dist/audit/adapter-logger.js.map +1 -1
  6. package/dist/audit/store.d.ts +2 -2
  7. package/dist/audit/store.d.ts.map +1 -1
  8. package/dist/audit/store.js +13 -13
  9. package/dist/audit/store.js.map +1 -1
  10. package/dist/classification.d.ts +2 -2
  11. package/dist/classification.d.ts.map +1 -1
  12. package/dist/classification.js +96 -28
  13. package/dist/classification.js.map +1 -1
  14. package/dist/cli/bin.js +1 -1
  15. package/dist/cli/commands/audit.d.ts.map +1 -1
  16. package/dist/cli/commands/audit.js +29 -29
  17. package/dist/cli/commands/audit.js.map +1 -1
  18. package/dist/cli/commands/policy.d.ts.map +1 -1
  19. package/dist/cli/commands/policy.js +33 -33
  20. package/dist/cli/commands/policy.js.map +1 -1
  21. package/dist/cli/index.d.ts +1 -1
  22. package/dist/cli/index.d.ts.map +1 -1
  23. package/dist/cli/index.js +45 -56
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/config.d.ts +1 -1
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +9 -9
  28. package/dist/config.js.map +1 -1
  29. package/dist/e2e/openclaw-e2e.js +58 -49
  30. package/dist/e2e/openclaw-e2e.js.map +1 -1
  31. package/dist/engine-holder.d.ts +2 -2
  32. package/dist/engine-holder.js +1 -1
  33. package/dist/guards/egress.d.ts +2 -2
  34. package/dist/guards/egress.d.ts.map +1 -1
  35. package/dist/guards/egress.js +71 -73
  36. package/dist/guards/egress.js.map +1 -1
  37. package/dist/guards/forbidden-path.d.ts +2 -2
  38. package/dist/guards/forbidden-path.d.ts.map +1 -1
  39. package/dist/guards/forbidden-path.js +41 -43
  40. package/dist/guards/forbidden-path.js.map +1 -1
  41. package/dist/guards/index.d.ts +6 -6
  42. package/dist/guards/index.d.ts.map +1 -1
  43. package/dist/guards/index.js +5 -5
  44. package/dist/guards/index.js.map +1 -1
  45. package/dist/guards/patch-integrity.d.ts +2 -2
  46. package/dist/guards/patch-integrity.d.ts.map +1 -1
  47. package/dist/guards/patch-integrity.js +69 -70
  48. package/dist/guards/patch-integrity.js.map +1 -1
  49. package/dist/guards/secret-leak.d.ts +2 -2
  50. package/dist/guards/secret-leak.d.ts.map +1 -1
  51. package/dist/guards/secret-leak.js +81 -82
  52. package/dist/guards/secret-leak.js.map +1 -1
  53. package/dist/guards/types.d.ts +2 -2
  54. package/dist/guards/types.d.ts.map +1 -1
  55. package/dist/guards/types.js +4 -4
  56. package/dist/guards/types.js.map +1 -1
  57. package/dist/hooks/agent-bootstrap/handler.d.ts +1 -1
  58. package/dist/hooks/agent-bootstrap/handler.d.ts.map +1 -1
  59. package/dist/hooks/agent-bootstrap/handler.js +5 -5
  60. package/dist/hooks/agent-bootstrap/handler.js.map +1 -1
  61. package/dist/hooks/approval-state.d.ts +1 -1
  62. package/dist/hooks/approval-state.d.ts.map +1 -1
  63. package/dist/hooks/approval-state.js +15 -15
  64. package/dist/hooks/approval-state.js.map +1 -1
  65. package/dist/hooks/approval-utils.d.ts +1 -1
  66. package/dist/hooks/approval-utils.d.ts.map +1 -1
  67. package/dist/hooks/approval-utils.js +41 -20
  68. package/dist/hooks/approval-utils.js.map +1 -1
  69. package/dist/hooks/audit-logger/handler.d.ts +1 -1
  70. package/dist/hooks/audit-logger/handler.d.ts.map +1 -1
  71. package/dist/hooks/audit-logger/handler.js +9 -9
  72. package/dist/hooks/audit-logger/handler.js.map +1 -1
  73. package/dist/hooks/cua-bridge/handler.d.ts +4 -4
  74. package/dist/hooks/cua-bridge/handler.d.ts.map +1 -1
  75. package/dist/hooks/cua-bridge/handler.js +85 -70
  76. package/dist/hooks/cua-bridge/handler.js.map +1 -1
  77. package/dist/hooks/tool-guard/handler.d.ts +1 -1
  78. package/dist/hooks/tool-guard/handler.d.ts.map +1 -1
  79. package/dist/hooks/tool-guard/handler.js +112 -101
  80. package/dist/hooks/tool-guard/handler.js.map +1 -1
  81. package/dist/hooks/tool-preflight/handler.d.ts +2 -2
  82. package/dist/hooks/tool-preflight/handler.d.ts.map +1 -1
  83. package/dist/hooks/tool-preflight/handler.js +115 -91
  84. package/dist/hooks/tool-preflight/handler.js.map +1 -1
  85. package/dist/index.d.ts +16 -16
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +18 -18
  88. package/dist/index.js.map +1 -1
  89. package/dist/openclaw-adapter.d.ts +2 -2
  90. package/dist/openclaw-adapter.d.ts.map +1 -1
  91. package/dist/openclaw-adapter.js +4 -4
  92. package/dist/openclaw-adapter.js.map +1 -1
  93. package/dist/plugin.d.ts.map +1 -1
  94. package/dist/plugin.js +39 -40
  95. package/dist/plugin.js.map +1 -1
  96. package/dist/policy/engine.d.ts +1 -1
  97. package/dist/policy/engine.d.ts.map +1 -1
  98. package/dist/policy/engine.js +237 -221
  99. package/dist/policy/engine.js.map +1 -1
  100. package/dist/policy/index.d.ts +3 -3
  101. package/dist/policy/index.d.ts.map +1 -1
  102. package/dist/policy/index.js +3 -3
  103. package/dist/policy/index.js.map +1 -1
  104. package/dist/policy/loader.d.ts +1 -1
  105. package/dist/policy/loader.d.ts.map +1 -1
  106. package/dist/policy/loader.js +76 -63
  107. package/dist/policy/loader.js.map +1 -1
  108. package/dist/policy/validator.d.ts +1 -1
  109. package/dist/policy/validator.d.ts.map +1 -1
  110. package/dist/policy/validator.js +158 -151
  111. package/dist/policy/validator.js.map +1 -1
  112. package/dist/receipt/signer.d.ts +2 -2
  113. package/dist/receipt/signer.d.ts.map +1 -1
  114. package/dist/receipt/signer.js +12 -12
  115. package/dist/receipt/signer.js.map +1 -1
  116. package/dist/receipt/types.d.ts +2 -2
  117. package/dist/receipt/types.d.ts.map +1 -1
  118. package/dist/sanitizer/output-sanitizer.d.ts +1 -1
  119. package/dist/sanitizer/output-sanitizer.d.ts.map +1 -1
  120. package/dist/sanitizer/output-sanitizer.js +8 -8
  121. package/dist/sanitizer/output-sanitizer.js.map +1 -1
  122. package/dist/security-prompt.d.ts +1 -1
  123. package/dist/security-prompt.d.ts.map +1 -1
  124. package/dist/security-prompt.js +16 -12
  125. package/dist/security-prompt.js.map +1 -1
  126. package/dist/tools/policy-check.d.ts +3 -3
  127. package/dist/tools/policy-check.d.ts.map +1 -1
  128. package/dist/tools/policy-check.js +60 -52
  129. package/dist/tools/policy-check.js.map +1 -1
  130. package/dist/translator/openclaw-translator.d.ts +1 -1
  131. package/dist/translator/openclaw-translator.d.ts.map +1 -1
  132. package/dist/translator/openclaw-translator.js +100 -80
  133. package/dist/translator/openclaw-translator.js.map +1 -1
  134. package/dist/types.d.ts +11 -13
  135. package/dist/types.d.ts.map +1 -1
  136. package/package.json +9 -4
@@ -3,133 +3,133 @@
3
3
  *
4
4
  * Detects dangerous code patterns in patches and file writes.
5
5
  */
6
- import { BaseGuard } from './types.js';
6
+ import { BaseGuard } from "./types.js";
7
7
  /**
8
8
  * Built-in dangerous pattern detection
9
9
  */
10
10
  const DANGEROUS_PATTERNS = [
11
11
  // Shell injection patterns
12
12
  {
13
- name: 'curl_pipe_bash',
13
+ name: "curl_pipe_bash",
14
14
  pattern: /curl\s+[^|]*\|\s*(bash|sh|zsh)/gi,
15
- severity: 'critical',
16
- description: 'Curl piped to shell execution',
15
+ severity: "critical",
16
+ description: "Curl piped to shell execution",
17
17
  },
18
18
  {
19
- name: 'wget_pipe_bash',
19
+ name: "wget_pipe_bash",
20
20
  pattern: /wget\s+[^|]*\|\s*(bash|sh|zsh)/gi,
21
- severity: 'critical',
22
- description: 'Wget piped to shell execution',
21
+ severity: "critical",
22
+ description: "Wget piped to shell execution",
23
23
  },
24
24
  // Dangerous command patterns
25
25
  {
26
- name: 'rm_rf_root',
26
+ name: "rm_rf_root",
27
27
  pattern: /rm\s+(-rf?|--recursive)\s+[/\\]/gi,
28
- severity: 'critical',
29
- description: 'Recursive removal from root',
28
+ severity: "critical",
29
+ description: "Recursive removal from root",
30
30
  },
31
31
  {
32
- name: 'fork_bomb',
32
+ name: "fork_bomb",
33
33
  pattern: /:\(\)\{\s*:\|:&\s*\};:/g,
34
- severity: 'critical',
35
- description: 'Fork bomb',
34
+ severity: "critical",
35
+ description: "Fork bomb",
36
36
  },
37
37
  {
38
- name: 'dd_disk_wipe',
38
+ name: "dd_disk_wipe",
39
39
  pattern: /dd\s+if=\/dev\/(zero|random|urandom)\s+of=\/dev\//gi,
40
- severity: 'critical',
41
- description: 'DD disk wipe command',
40
+ severity: "critical",
41
+ description: "DD disk wipe command",
42
42
  },
43
43
  // Dangerous JavaScript patterns
44
44
  {
45
- name: 'eval_usage',
45
+ name: "eval_usage",
46
46
  pattern: /\beval\s*\([^)]*\)/gi,
47
- severity: 'high',
48
- description: 'Eval function usage',
47
+ severity: "high",
48
+ description: "Eval function usage",
49
49
  },
50
50
  {
51
- name: 'new_function',
51
+ name: "new_function",
52
52
  pattern: /new\s+Function\s*\([^)]*\)/gi,
53
- severity: 'high',
54
- description: 'new Function constructor',
53
+ severity: "high",
54
+ description: "new Function constructor",
55
55
  },
56
56
  {
57
- name: 'document_write',
57
+ name: "document_write",
58
58
  pattern: /document\.write\s*\([^)]*\)/gi,
59
- severity: 'medium',
60
- description: 'document.write usage',
59
+ severity: "medium",
60
+ description: "document.write usage",
61
61
  },
62
62
  {
63
- name: 'inner_html_assignment',
63
+ name: "inner_html_assignment",
64
64
  pattern: /\.innerHTML\s*=/gi,
65
- severity: 'medium',
66
- description: 'innerHTML assignment (XSS risk)',
65
+ severity: "medium",
66
+ description: "innerHTML assignment (XSS risk)",
67
67
  },
68
68
  // Dangerous Python patterns
69
69
  {
70
- name: 'python_exec',
70
+ name: "python_exec",
71
71
  pattern: /\bexec\s*\([^)]*\)/gi,
72
- severity: 'high',
73
- description: 'Python exec usage',
72
+ severity: "high",
73
+ description: "Python exec usage",
74
74
  },
75
75
  {
76
- name: 'python_compile',
76
+ name: "python_compile",
77
77
  pattern: /\bcompile\s*\([^)]*,\s*[^)]*,\s*['"]exec['"]\)/gi,
78
- severity: 'high',
79
- description: 'Python compile with exec mode',
78
+ severity: "high",
79
+ description: "Python compile with exec mode",
80
80
  },
81
81
  {
82
- name: 'python_subprocess_shell',
82
+ name: "python_subprocess_shell",
83
83
  pattern: /subprocess\.(call|run|Popen)\s*\([^)]*shell\s*=\s*True/gi,
84
- severity: 'high',
85
- description: 'Subprocess with shell=True',
84
+ severity: "high",
85
+ description: "Subprocess with shell=True",
86
86
  },
87
87
  {
88
- name: 'python_os_system',
88
+ name: "python_os_system",
89
89
  pattern: /os\.system\s*\([^)]*\)/gi,
90
- severity: 'high',
91
- description: 'os.system usage',
90
+ severity: "high",
91
+ description: "os.system usage",
92
92
  },
93
93
  // Environment manipulation
94
94
  {
95
- name: 'env_manipulation',
95
+ name: "env_manipulation",
96
96
  pattern: /process\.env\.[A-Z_]+\s*=\s*['"][^'"]+['"]/gi,
97
- severity: 'medium',
98
- description: 'Environment variable manipulation',
97
+ severity: "medium",
98
+ description: "Environment variable manipulation",
99
99
  },
100
100
  // Credential patterns in code
101
101
  {
102
- name: 'hardcoded_password',
102
+ name: "hardcoded_password",
103
103
  pattern: /(?:password|passwd|pwd)\s*[:=]\s*['"][^'"]{4,}['"]/gi,
104
- severity: 'high',
105
- description: 'Hardcoded password',
104
+ severity: "high",
105
+ description: "Hardcoded password",
106
106
  },
107
107
  {
108
- name: 'hardcoded_secret',
108
+ name: "hardcoded_secret",
109
109
  pattern: /(?:secret|api[_-]?key|auth[_-]?token)\s*[:=]\s*['"][^'"]{8,}['"]/gi,
110
- severity: 'high',
111
- description: 'Hardcoded secret/API key',
110
+ severity: "high",
111
+ description: "Hardcoded secret/API key",
112
112
  },
113
113
  // File permission changes
114
114
  {
115
- name: 'chmod_777',
115
+ name: "chmod_777",
116
116
  pattern: /chmod\s+(?:777|a\+rwx)/gi,
117
- severity: 'medium',
118
- description: 'Overly permissive chmod',
117
+ severity: "medium",
118
+ description: "Overly permissive chmod",
119
119
  },
120
120
  // Network exfiltration patterns
121
121
  {
122
- name: 'base64_encode_pipe',
122
+ name: "base64_encode_pipe",
123
123
  pattern: /base64\s*[^|]*\|\s*(?:curl|wget|nc)/gi,
124
- severity: 'high',
125
- description: 'Base64 encoded data exfiltration',
124
+ severity: "high",
125
+ description: "Base64 encoded data exfiltration",
126
126
  },
127
127
  // SQL injection patterns
128
128
  {
129
- name: 'sql_concat',
129
+ name: "sql_concat",
130
130
  pattern: /(?:SELECT|INSERT|UPDATE|DELETE|DROP)\s+[^;]*\+\s*[a-zA-Z_]+/gi,
131
- severity: 'medium',
132
- description: 'Potential SQL injection (string concatenation)',
131
+ severity: "medium",
132
+ description: "Potential SQL injection (string concatenation)",
133
133
  },
134
134
  ];
135
135
  /**
@@ -142,10 +142,10 @@ export class PatchIntegrityGuard extends BaseGuard {
142
142
  this.patterns = [...DANGEROUS_PATTERNS, ...additionalPatterns];
143
143
  }
144
144
  name() {
145
- return 'patch_integrity';
145
+ return "patch_integrity";
146
146
  }
147
147
  handles() {
148
- return ['patch_apply', 'file_write', 'command_exec'];
148
+ return ["patch_apply", "file_write", "command_exec"];
149
149
  }
150
150
  async check(event, policy) {
151
151
  return this.checkSync(event, policy);
@@ -154,18 +154,18 @@ export class PatchIntegrityGuard extends BaseGuard {
154
154
  const data = event.data;
155
155
  let contentToCheck;
156
156
  // Get content to check based on event type
157
- if (data.type === 'patch') {
157
+ if (data.type === "patch") {
158
158
  contentToCheck = data.patchContent;
159
159
  }
160
- else if (data.type === 'command') {
161
- contentToCheck = `${data.command} ${data.args.join(' ')}`;
160
+ else if (data.type === "command") {
161
+ contentToCheck = `${data.command} ${data.args.join(" ")}`;
162
162
  // Also check against denied patterns from policy
163
163
  const deniedPatterns = policy.execution?.denied_patterns ?? [];
164
164
  for (const pattern of deniedPatterns) {
165
165
  try {
166
- const regex = new RegExp(pattern, 'gi');
166
+ const regex = new RegExp(pattern, "gi");
167
167
  if (regex.test(contentToCheck)) {
168
- return this.deny(`Command matches denied pattern: ${pattern}`, 'high');
168
+ return this.deny(`Command matches denied pattern: ${pattern}`, "high");
169
169
  }
170
170
  }
171
171
  catch {
@@ -180,7 +180,7 @@ export class PatchIntegrityGuard extends BaseGuard {
180
180
  const detected = this.detectDangerousPatterns(contentToCheck);
181
181
  if (detected.length > 0) {
182
182
  const highestSeverity = this.getHighestSeverity(detected);
183
- const patternNames = detected.map((p) => p.name).join(', ');
183
+ const patternNames = detected.map((p) => p.name).join(", ");
184
184
  return this.deny(`Detected dangerous patterns: ${patternNames}`, highestSeverity);
185
185
  }
186
186
  return this.allow();
@@ -205,11 +205,10 @@ export class PatchIntegrityGuard extends BaseGuard {
205
205
  * Get the highest severity from detected patterns
206
206
  */
207
207
  getHighestSeverity(patterns) {
208
- const severityOrder = ['low', 'medium', 'high', 'critical'];
209
- let highest = 'low';
208
+ const severityOrder = ["low", "medium", "high", "critical"];
209
+ let highest = "low";
210
210
  for (const pattern of patterns) {
211
- if (severityOrder.indexOf(pattern.severity) >
212
- severityOrder.indexOf(highest)) {
211
+ if (severityOrder.indexOf(pattern.severity) > severityOrder.indexOf(highest)) {
213
212
  highest = pattern.severity;
214
213
  }
215
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"patch-integrity.js","sourceRoot":"","sources":["../../src/guards/patch-integrity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch-integrity.js","sourceRoot":"","sources":["../../src/guards/patch-integrity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,MAAM,kBAAkB,GAAuB;IAC7C,2BAA2B;IAC3B;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,kCAAkC;QAC3C,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,+BAA+B;KAC7C;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,kCAAkC;QAC3C,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,+BAA+B;KAC7C;IAED,6BAA6B;IAC7B;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,mCAAmC;QAC5C,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,yBAAyB;QAClC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,WAAW;KACzB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,sBAAsB;KACpC;IAED,gCAAgC;IAChC;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,qBAAqB;KACnC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,8BAA8B;QACvC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0BAA0B;KACxC;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,+BAA+B;QACxC,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,iCAAiC;KAC/C;IAED,4BAA4B;IAC5B;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,kDAAkD;QAC3D,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,+BAA+B;KAC7C;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,0DAA0D;QACnE,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,4BAA4B;KAC1C;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,iBAAiB;KAC/B;IAED,2BAA2B;IAC3B;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,8CAA8C;QACvD,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,mCAAmC;KACjD;IAED,8BAA8B;IAC9B;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,sDAAsD;QAC/D,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,oEAAoE;QAC7E,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0BAA0B;KACxC;IAED,0BAA0B;IAC1B;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,yBAAyB;KACvC;IAED,gCAAgC;IAChC;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,uCAAuC;QAChD,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,kCAAkC;KAChD;IAED,yBAAyB;IACzB;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,+DAA+D;QACxE,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACxC,QAAQ,CAAqB;IAErC,YAAY,qBAAyC,EAAE;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,IAAI;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAkB,EAAE,MAAc;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,KAAkB,EAAE,MAAc;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,cAAkC,CAAC;QAEvC,2CAA2C;QAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnC,cAAc,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAE1D,iDAAiD;YACjD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;YAC/D,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACxC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;wBAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,mCAAmC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAED,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,gCAAgC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,OAAe;QACrC,MAAM,QAAQ,GAAuB,EAAE,CAAC;QAExC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,oBAAoB;YACpB,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAE9B,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YAED,yBAAyB;YACzB,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,QAA4B;QACrD,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;QAErE,IAAI,OAAO,GAAmC,KAAK,CAAC;QAEpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7E,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Detects and blocks exposure of secrets in tool outputs and patches.
5
5
  */
6
- import type { PolicyEvent, Policy, GuardResult, EventType, SecretPattern } from '../types.js';
7
- import { BaseGuard } from './types.js';
6
+ import type { EventType, GuardResult, Policy, PolicyEvent, SecretPattern } from "../types.js";
7
+ import { BaseGuard } from "./types.js";
8
8
  /**
9
9
  * SecretLeakGuard - detects and blocks secret exposure
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"secret-leak.d.ts","sourceRoot":"","sources":["../../src/guards/secret-leak.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,WAAW,EACX,SAAS,EACT,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA2KvC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,kBAAkB,GAAE,aAAa,EAAO;IAKpD,IAAI,IAAI,MAAM;IAId,OAAO,IAAI,SAAS,EAAE;IAIhB,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW;IAiC3D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAkB/C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAsB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAkB3B"}
1
+ {"version":3,"file":"secret-leak.d.ts","sourceRoot":"","sources":["../../src/guards/secret-leak.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA4KvC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,kBAAkB,GAAE,aAAa,EAAO;IAKpD,IAAI,IAAI,MAAM;IAId,OAAO,IAAI,SAAS,EAAE;IAIhB,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW;IA8B3D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAkB/C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAsB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -3,161 +3,161 @@
3
3
  *
4
4
  * Detects and blocks exposure of secrets in tool outputs and patches.
5
5
  */
6
- import { BaseGuard } from './types.js';
6
+ import { BaseGuard } from "./types.js";
7
7
  /**
8
8
  * Built-in secret detection patterns
9
9
  */
10
10
  const SECRET_PATTERNS = [
11
11
  // AWS Keys
12
12
  {
13
- name: 'aws_access_key',
13
+ name: "aws_access_key",
14
14
  pattern: /AKIA[0-9A-Z]{16}/g,
15
- severity: 'critical',
16
- description: 'AWS Access Key ID',
15
+ severity: "critical",
16
+ description: "AWS Access Key ID",
17
17
  },
18
18
  {
19
- name: 'aws_secret_key',
19
+ name: "aws_secret_key",
20
20
  pattern: /[A-Za-z0-9/+=]{40}/g,
21
- severity: 'critical',
22
- description: 'AWS Secret Access Key',
21
+ severity: "critical",
22
+ description: "AWS Secret Access Key",
23
23
  },
24
24
  // GitHub Tokens
25
25
  {
26
- name: 'github_pat',
26
+ name: "github_pat",
27
27
  pattern: /ghp_[A-Za-z0-9]{36}/g,
28
- severity: 'critical',
29
- description: 'GitHub Personal Access Token',
28
+ severity: "critical",
29
+ description: "GitHub Personal Access Token",
30
30
  },
31
31
  {
32
- name: 'github_oauth',
32
+ name: "github_oauth",
33
33
  pattern: /gho_[A-Za-z0-9]{36}/g,
34
- severity: 'critical',
35
- description: 'GitHub OAuth Token',
34
+ severity: "critical",
35
+ description: "GitHub OAuth Token",
36
36
  },
37
37
  {
38
- name: 'github_app_token',
38
+ name: "github_app_token",
39
39
  pattern: /ghu_[A-Za-z0-9]{36}/g,
40
- severity: 'critical',
41
- description: 'GitHub App User Token',
40
+ severity: "critical",
41
+ description: "GitHub App User Token",
42
42
  },
43
43
  {
44
- name: 'github_fine_grained',
44
+ name: "github_fine_grained",
45
45
  pattern: /github_pat_[A-Za-z0-9]{22}_[A-Za-z0-9]{59}/g,
46
- severity: 'critical',
47
- description: 'GitHub Fine-grained PAT',
46
+ severity: "critical",
47
+ description: "GitHub Fine-grained PAT",
48
48
  },
49
49
  // OpenAI Keys
50
50
  {
51
- name: 'openai_api_key',
51
+ name: "openai_api_key",
52
52
  pattern: /sk-[A-Za-z0-9]{48}/g,
53
- severity: 'critical',
54
- description: 'OpenAI API Key',
53
+ severity: "critical",
54
+ description: "OpenAI API Key",
55
55
  },
56
56
  {
57
- name: 'openai_project_key',
57
+ name: "openai_project_key",
58
58
  pattern: /sk-proj-[A-Za-z0-9]{48}/g,
59
- severity: 'critical',
60
- description: 'OpenAI Project API Key',
59
+ severity: "critical",
60
+ description: "OpenAI Project API Key",
61
61
  },
62
62
  // Anthropic Keys
63
63
  {
64
- name: 'anthropic_api_key',
64
+ name: "anthropic_api_key",
65
65
  pattern: /sk-ant-[A-Za-z0-9]{32,}/g,
66
- severity: 'critical',
67
- description: 'Anthropic API Key',
66
+ severity: "critical",
67
+ description: "Anthropic API Key",
68
68
  },
69
69
  // Google Cloud
70
70
  {
71
- name: 'google_api_key',
71
+ name: "google_api_key",
72
72
  pattern: /AIza[0-9A-Za-z\-_]{35}/g,
73
- severity: 'critical',
74
- description: 'Google API Key',
73
+ severity: "critical",
74
+ description: "Google API Key",
75
75
  },
76
76
  {
77
- name: 'gcp_service_account',
77
+ name: "gcp_service_account",
78
78
  pattern: /"type":\s*"service_account"/g,
79
- severity: 'high',
80
- description: 'GCP Service Account JSON',
79
+ severity: "high",
80
+ description: "GCP Service Account JSON",
81
81
  },
82
82
  // Private Keys
83
83
  {
84
- name: 'private_key_rsa',
84
+ name: "private_key_rsa",
85
85
  pattern: /-----BEGIN RSA PRIVATE KEY-----/g,
86
- severity: 'critical',
87
- description: 'RSA Private Key',
86
+ severity: "critical",
87
+ description: "RSA Private Key",
88
88
  },
89
89
  {
90
- name: 'private_key_openssh',
90
+ name: "private_key_openssh",
91
91
  pattern: /-----BEGIN OPENSSH PRIVATE KEY-----/g,
92
- severity: 'critical',
93
- description: 'OpenSSH Private Key',
92
+ severity: "critical",
93
+ description: "OpenSSH Private Key",
94
94
  },
95
95
  {
96
- name: 'private_key_ec',
96
+ name: "private_key_ec",
97
97
  pattern: /-----BEGIN EC PRIVATE KEY-----/g,
98
- severity: 'critical',
99
- description: 'EC Private Key',
98
+ severity: "critical",
99
+ description: "EC Private Key",
100
100
  },
101
101
  {
102
- name: 'private_key_generic',
102
+ name: "private_key_generic",
103
103
  pattern: /-----BEGIN PRIVATE KEY-----/g,
104
- severity: 'critical',
105
- description: 'Private Key',
104
+ severity: "critical",
105
+ description: "Private Key",
106
106
  },
107
107
  // Stripe
108
108
  {
109
- name: 'stripe_secret_key',
109
+ name: "stripe_secret_key",
110
110
  pattern: /sk_live_[A-Za-z0-9]{24,}/g,
111
- severity: 'critical',
112
- description: 'Stripe Live Secret Key',
111
+ severity: "critical",
112
+ description: "Stripe Live Secret Key",
113
113
  },
114
114
  {
115
- name: 'stripe_test_key',
115
+ name: "stripe_test_key",
116
116
  pattern: /sk_test_[A-Za-z0-9]{24,}/g,
117
- severity: 'medium',
118
- description: 'Stripe Test Secret Key',
117
+ severity: "medium",
118
+ description: "Stripe Test Secret Key",
119
119
  },
120
120
  // Stripe Restricted Key
121
121
  {
122
- name: 'stripe_restricted_key',
122
+ name: "stripe_restricted_key",
123
123
  pattern: /rk_live_[A-Za-z0-9]{24,}/g,
124
- severity: 'critical',
125
- description: 'Stripe Live Restricted Key',
124
+ severity: "critical",
125
+ description: "Stripe Live Restricted Key",
126
126
  },
127
127
  // Slack
128
128
  {
129
- name: 'slack_token',
129
+ name: "slack_token",
130
130
  pattern: /xox[baprs]-[A-Za-z0-9-]{10,}/g,
131
- severity: 'high',
132
- description: 'Slack Token',
131
+ severity: "high",
132
+ description: "Slack Token",
133
133
  },
134
134
  // Azure Key Vault
135
135
  {
136
- name: 'azure_key_vault_token',
136
+ name: "azure_key_vault_token",
137
137
  pattern: /azure[_-]?(?:key[_-]?vault|kv)[_-]?(?:secret|token|key)(?:'|")?\s*[:=]\s*(?:'|")?[A-Za-z0-9+/=_-]{32,}/gi,
138
- severity: 'critical',
139
- description: 'Azure Key Vault Secret',
138
+ severity: "critical",
139
+ description: "Azure Key Vault Secret",
140
140
  },
141
141
  // GitLab Personal Access Token
142
142
  {
143
- name: 'gitlab_pat',
143
+ name: "gitlab_pat",
144
144
  pattern: /glpat-[A-Za-z0-9_-]{20,}/g,
145
- severity: 'critical',
146
- description: 'GitLab Personal Access Token',
145
+ severity: "critical",
146
+ description: "GitLab Personal Access Token",
147
147
  },
148
148
  // Generic high-entropy (likely secrets)
149
149
  {
150
- name: 'jwt_token',
150
+ name: "jwt_token",
151
151
  pattern: /eyJ[A-Za-z0-9_-]*\.eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*/g,
152
- severity: 'high',
153
- description: 'JWT Token',
152
+ severity: "high",
153
+ description: "JWT Token",
154
154
  },
155
155
  // Database URLs with credentials
156
156
  {
157
- name: 'database_url',
157
+ name: "database_url",
158
158
  pattern: /(?:postgres|mysql|mongodb|redis):\/\/[^:]+:[^@]+@/g,
159
- severity: 'critical',
160
- description: 'Database URL with credentials',
159
+ severity: "critical",
160
+ description: "Database URL with credentials",
161
161
  },
162
162
  ];
163
163
  /**
@@ -170,10 +170,10 @@ export class SecretLeakGuard extends BaseGuard {
170
170
  this.patterns = [...SECRET_PATTERNS, ...additionalPatterns];
171
171
  }
172
172
  name() {
173
- return 'secret_leak';
173
+ return "secret_leak";
174
174
  }
175
175
  handles() {
176
- return ['patch_apply', 'tool_call'];
176
+ return ["patch_apply", "tool_call"];
177
177
  }
178
178
  async check(event, policy) {
179
179
  return this.checkSync(event, policy);
@@ -182,13 +182,13 @@ export class SecretLeakGuard extends BaseGuard {
182
182
  const data = event.data;
183
183
  let contentToCheck;
184
184
  // Get content to check based on event type
185
- if (data.type === 'patch') {
185
+ if (data.type === "patch") {
186
186
  contentToCheck = data.patchContent;
187
187
  }
188
- else if (data.type === 'tool') {
188
+ else if (data.type === "tool") {
189
189
  // Check tool result for secrets
190
190
  contentToCheck =
191
- typeof data.result === 'string' ? data.result : JSON.stringify(data.result ?? '');
191
+ typeof data.result === "string" ? data.result : JSON.stringify(data.result ?? "");
192
192
  }
193
193
  if (!contentToCheck) {
194
194
  return this.allow();
@@ -197,7 +197,7 @@ export class SecretLeakGuard extends BaseGuard {
197
197
  const detected = this.detectSecrets(contentToCheck);
198
198
  if (detected.length > 0) {
199
199
  const highestSeverity = this.getHighestSeverity(detected);
200
- const secretNames = detected.map((s) => s.name).join(', ');
200
+ const secretNames = detected.map((s) => s.name).join(", ");
201
201
  return this.deny(`Detected potential secrets in output: ${secretNames}`, highestSeverity);
202
202
  }
203
203
  return this.allow();
@@ -229,9 +229,9 @@ export class SecretLeakGuard extends BaseGuard {
229
229
  redacted = redacted.replace(pattern.pattern, (match) => {
230
230
  // Show first 4 chars and last 4 chars, redact the middle
231
231
  if (match.length > 12) {
232
- return match.slice(0, 4) + '[REDACTED]' + match.slice(-4);
232
+ return match.slice(0, 4) + "[REDACTED]" + match.slice(-4);
233
233
  }
234
- return '[REDACTED]';
234
+ return "[REDACTED]";
235
235
  });
236
236
  // Reset again after replace
237
237
  pattern.pattern.lastIndex = 0;
@@ -242,11 +242,10 @@ export class SecretLeakGuard extends BaseGuard {
242
242
  * Get the highest severity from detected patterns
243
243
  */
244
244
  getHighestSeverity(patterns) {
245
- const severityOrder = ['low', 'medium', 'high', 'critical'];
246
- let highest = 'low';
245
+ const severityOrder = ["low", "medium", "high", "critical"];
246
+ let highest = "low";
247
247
  for (const pattern of patterns) {
248
- if (severityOrder.indexOf(pattern.severity) >
249
- severityOrder.indexOf(highest)) {
248
+ if (severityOrder.indexOf(pattern.severity) > severityOrder.indexOf(highest)) {
250
249
  highest = pattern.severity;
251
250
  }
252
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"secret-leak.js","sourceRoot":"","sources":["../../src/guards/secret-leak.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-leak.js","sourceRoot":"","sources":["../../src/guards/secret-leak.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Type definitions for the guard system.
5
5
  */
6
- import type { PolicyEvent, Policy, GuardResult, EventType } from '../types.js';
6
+ import type { EventType, GuardResult, Policy, PolicyEvent } from "../types.js";
7
7
  /**
8
8
  * Guard interface - modular policy enforcement
9
9
  */
@@ -37,7 +37,7 @@ export declare abstract class BaseGuard implements Guard {
37
37
  /**
38
38
  * Helper to create a deny result
39
39
  */
40
- protected deny(reason: string, severity?: GuardResult['severity']): GuardResult;
40
+ protected deny(reason: string, severity?: GuardResult["severity"]): GuardResult;
41
41
  /**
42
42
  * Helper to create a warn result
43
43
  */