agentlock-shared 0.1.0 → 0.3.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.
Files changed (171) hide show
  1. package/dist/__tests__/billing.test.d.ts +2 -0
  2. package/dist/__tests__/billing.test.d.ts.map +1 -0
  3. package/dist/__tests__/billing.test.js +31 -0
  4. package/dist/__tests__/billing.test.js.map +1 -0
  5. package/dist/__tests__/crypto.test.js +137 -47
  6. package/dist/__tests__/crypto.test.js.map +1 -1
  7. package/dist/__tests__/dns-pinning.test.d.ts +2 -0
  8. package/dist/__tests__/dns-pinning.test.d.ts.map +1 -0
  9. package/dist/__tests__/dns-pinning.test.js +33 -0
  10. package/dist/__tests__/dns-pinning.test.js.map +1 -0
  11. package/dist/__tests__/llm-classifier-cache-store.test.d.ts +2 -0
  12. package/dist/__tests__/llm-classifier-cache-store.test.d.ts.map +1 -0
  13. package/dist/__tests__/llm-classifier-cache-store.test.js +65 -0
  14. package/dist/__tests__/llm-classifier-cache-store.test.js.map +1 -0
  15. package/dist/__tests__/llm-classifier-cache.test.d.ts +2 -0
  16. package/dist/__tests__/llm-classifier-cache.test.d.ts.map +1 -0
  17. package/dist/__tests__/llm-classifier-cache.test.js +44 -0
  18. package/dist/__tests__/llm-classifier-cache.test.js.map +1 -0
  19. package/dist/__tests__/llm-classifier.test.d.ts +2 -0
  20. package/dist/__tests__/llm-classifier.test.d.ts.map +1 -0
  21. package/dist/__tests__/llm-classifier.test.js +167 -0
  22. package/dist/__tests__/llm-classifier.test.js.map +1 -0
  23. package/dist/__tests__/messaging.test.d.ts +2 -0
  24. package/dist/__tests__/messaging.test.d.ts.map +1 -0
  25. package/dist/__tests__/messaging.test.js +75 -0
  26. package/dist/__tests__/messaging.test.js.map +1 -0
  27. package/dist/__tests__/plans-classifier-limits.test.d.ts +2 -0
  28. package/dist/__tests__/plans-classifier-limits.test.d.ts.map +1 -0
  29. package/dist/__tests__/plans-classifier-limits.test.js +22 -0
  30. package/dist/__tests__/plans-classifier-limits.test.js.map +1 -0
  31. package/dist/__tests__/policy-category-floor.test.d.ts +2 -0
  32. package/dist/__tests__/policy-category-floor.test.d.ts.map +1 -0
  33. package/dist/__tests__/policy-category-floor.test.js +46 -0
  34. package/dist/__tests__/policy-category-floor.test.js.map +1 -0
  35. package/dist/__tests__/policy-claude-bash.test.d.ts +2 -0
  36. package/dist/__tests__/policy-claude-bash.test.d.ts.map +1 -0
  37. package/dist/__tests__/policy-claude-bash.test.js +401 -0
  38. package/dist/__tests__/policy-claude-bash.test.js.map +1 -0
  39. package/dist/__tests__/policy-llm-floor.test.d.ts +2 -0
  40. package/dist/__tests__/policy-llm-floor.test.d.ts.map +1 -0
  41. package/dist/__tests__/policy-llm-floor.test.js +107 -0
  42. package/dist/__tests__/policy-llm-floor.test.js.map +1 -0
  43. package/dist/__tests__/policy-ssh-e2e.test.d.ts +2 -0
  44. package/dist/__tests__/policy-ssh-e2e.test.d.ts.map +1 -0
  45. package/dist/__tests__/policy-ssh-e2e.test.js +89 -0
  46. package/dist/__tests__/policy-ssh-e2e.test.js.map +1 -0
  47. package/dist/__tests__/policy-ssh-sessions.test.d.ts +2 -0
  48. package/dist/__tests__/policy-ssh-sessions.test.d.ts.map +1 -0
  49. package/dist/__tests__/policy-ssh-sessions.test.js +139 -0
  50. package/dist/__tests__/policy-ssh-sessions.test.js.map +1 -0
  51. package/dist/__tests__/policy-ssh.test.d.ts +2 -0
  52. package/dist/__tests__/policy-ssh.test.d.ts.map +1 -0
  53. package/dist/__tests__/policy-ssh.test.js +180 -0
  54. package/dist/__tests__/policy-ssh.test.js.map +1 -0
  55. package/dist/__tests__/policy.test.js +522 -7
  56. package/dist/__tests__/policy.test.js.map +1 -1
  57. package/dist/__tests__/redact.test.js +76 -0
  58. package/dist/__tests__/redact.test.js.map +1 -1
  59. package/dist/__tests__/signing.test.js +89 -0
  60. package/dist/__tests__/signing.test.js.map +1 -1
  61. package/dist/__tests__/ssh-fingerprint.test.d.ts +2 -0
  62. package/dist/__tests__/ssh-fingerprint.test.d.ts.map +1 -0
  63. package/dist/__tests__/ssh-fingerprint.test.js +19 -0
  64. package/dist/__tests__/ssh-fingerprint.test.js.map +1 -0
  65. package/dist/__tests__/vpn-route.test.d.ts +2 -0
  66. package/dist/__tests__/vpn-route.test.d.ts.map +1 -0
  67. package/dist/__tests__/vpn-route.test.js +72 -0
  68. package/dist/__tests__/vpn-route.test.js.map +1 -0
  69. package/dist/__tests__/wireguard.test.d.ts +2 -0
  70. package/dist/__tests__/wireguard.test.d.ts.map +1 -0
  71. package/dist/__tests__/wireguard.test.js +114 -0
  72. package/dist/__tests__/wireguard.test.js.map +1 -0
  73. package/dist/billing.d.ts +12 -0
  74. package/dist/billing.d.ts.map +1 -0
  75. package/dist/billing.js +41 -0
  76. package/dist/billing.js.map +1 -0
  77. package/dist/crypto.d.ts +41 -0
  78. package/dist/crypto.d.ts.map +1 -1
  79. package/dist/crypto.js +208 -6
  80. package/dist/crypto.js.map +1 -1
  81. package/dist/dns-pinning.d.ts +28 -0
  82. package/dist/dns-pinning.d.ts.map +1 -0
  83. package/dist/dns-pinning.js +113 -0
  84. package/dist/dns-pinning.js.map +1 -0
  85. package/dist/index.d.ts +6 -0
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +9 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/llm-classifier-cache-store.d.ts +49 -0
  90. package/dist/llm-classifier-cache-store.d.ts.map +1 -0
  91. package/dist/llm-classifier-cache-store.js +63 -0
  92. package/dist/llm-classifier-cache-store.js.map +1 -0
  93. package/dist/llm-classifier-cache.d.ts +6 -0
  94. package/dist/llm-classifier-cache.d.ts.map +1 -0
  95. package/dist/llm-classifier-cache.js +52 -0
  96. package/dist/llm-classifier-cache.js.map +1 -0
  97. package/dist/llm-classifier.d.ts +29 -0
  98. package/dist/llm-classifier.d.ts.map +1 -0
  99. package/dist/llm-classifier.js +191 -0
  100. package/dist/llm-classifier.js.map +1 -0
  101. package/dist/observability.d.ts +36 -0
  102. package/dist/observability.d.ts.map +1 -0
  103. package/dist/observability.js +75 -0
  104. package/dist/observability.js.map +1 -0
  105. package/dist/plans.d.ts +21 -0
  106. package/dist/plans.d.ts.map +1 -1
  107. package/dist/plans.js +52 -14
  108. package/dist/plans.js.map +1 -1
  109. package/dist/policy.d.ts +173 -3
  110. package/dist/policy.d.ts.map +1 -1
  111. package/dist/policy.js +951 -58
  112. package/dist/policy.js.map +1 -1
  113. package/dist/redact.d.ts.map +1 -1
  114. package/dist/redact.js +104 -7
  115. package/dist/redact.js.map +1 -1
  116. package/dist/regex-safety.d.ts +21 -0
  117. package/dist/regex-safety.d.ts.map +1 -0
  118. package/dist/regex-safety.js +49 -0
  119. package/dist/regex-safety.js.map +1 -0
  120. package/dist/sanitize.d.ts +31 -0
  121. package/dist/sanitize.d.ts.map +1 -0
  122. package/dist/sanitize.js +54 -0
  123. package/dist/sanitize.js.map +1 -0
  124. package/dist/schemas.d.ts +267 -14
  125. package/dist/schemas.d.ts.map +1 -1
  126. package/dist/schemas.js +152 -10
  127. package/dist/schemas.js.map +1 -1
  128. package/dist/signing.d.ts +15 -0
  129. package/dist/signing.d.ts.map +1 -1
  130. package/dist/signing.js +53 -4
  131. package/dist/signing.js.map +1 -1
  132. package/dist/ssh-fingerprint.d.ts +10 -0
  133. package/dist/ssh-fingerprint.d.ts.map +1 -0
  134. package/dist/ssh-fingerprint.js +52 -0
  135. package/dist/ssh-fingerprint.js.map +1 -0
  136. package/dist/ssrf.d.ts +36 -0
  137. package/dist/ssrf.d.ts.map +1 -0
  138. package/dist/ssrf.js +140 -0
  139. package/dist/ssrf.js.map +1 -0
  140. package/dist/types.d.ts +131 -0
  141. package/dist/types.d.ts.map +1 -1
  142. package/dist/wireguard.d.ts +63 -0
  143. package/dist/wireguard.d.ts.map +1 -0
  144. package/dist/wireguard.js +226 -0
  145. package/dist/wireguard.js.map +1 -0
  146. package/package.json +42 -29
  147. package/.turbo/turbo-build.log +0 -4
  148. package/.turbo/turbo-test.log +0 -34
  149. package/dist/__tests__/content-crypto.test.d.ts +0 -2
  150. package/dist/__tests__/content-crypto.test.d.ts.map +0 -1
  151. package/dist/__tests__/content-crypto.test.js +0 -117
  152. package/dist/__tests__/content-crypto.test.js.map +0 -1
  153. package/dist/content-crypto.d.ts +0 -24
  154. package/dist/content-crypto.d.ts.map +0 -1
  155. package/dist/content-crypto.js +0 -58
  156. package/dist/content-crypto.js.map +0 -1
  157. package/src/__tests__/policy.test.ts +0 -88
  158. package/src/__tests__/redact.test.ts +0 -41
  159. package/src/__tests__/signing.test.ts +0 -55
  160. package/src/crypto.ts +0 -87
  161. package/src/index.ts +0 -8
  162. package/src/mcp-catalog.ts +0 -181
  163. package/src/plans.ts +0 -96
  164. package/src/policy.ts +0 -186
  165. package/src/redact.ts +0 -114
  166. package/src/schemas.ts +0 -53
  167. package/src/signing.ts +0 -120
  168. package/src/types.ts +0 -212
  169. package/test-gateway.mjs +0 -47
  170. package/tsconfig.json +0 -10
  171. package/vitest.config.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAuFA,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,CAYvD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAiLA,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,CAoBvD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
package/dist/redact.js CHANGED
@@ -36,6 +36,13 @@ const SECRET_FIELDS = new Set([
36
36
  'signing_key',
37
37
  'service_role_key',
38
38
  'supabase_service_role_key',
39
+ // Runner-internal transient fields — plaintext decrypted payloads
40
+ // attached to action objects just-in-time for connector execution.
41
+ // Leaking them via crash logs or serialized error rows would expose
42
+ // SSH private keys, WireGuard keys, API credentials.
43
+ '_credential',
44
+ '_credentials',
45
+ '_vpnconfig',
39
46
  ]);
40
47
  // Substring patterns: if the lowercased key contains any of these, redact
41
48
  const SECRET_SUBSTRINGS = [
@@ -56,10 +63,21 @@ const SECRET_SUBSTRINGS = [
56
63
  'connection_string',
57
64
  'database_url',
58
65
  'access_key',
59
- 'session_id',
66
+ 'auth_token',
67
+ 'refresh_key',
68
+ 'session_secret',
69
+ 'webhook_secret',
70
+ 'jwt',
71
+ 'oauth',
72
+ 'ssn',
73
+ 'credit_card',
74
+ 'routing_number',
60
75
  ];
61
76
  const REDACTED = '[REDACTED]';
62
- // Value-based patterns to detect secrets regardless of field name
77
+ // Value-based patterns to detect secrets regardless of field name.
78
+ // Used by isSecretValue() to decide whether a WHOLE string is a secret —
79
+ // if any pattern matches, the entire string is replaced with [REDACTED].
80
+ // (For partial / embedded matches in free-form text, see INLINE_SECRET_PATTERNS.)
63
81
  const SECRET_VALUE_PATTERNS = [
64
82
  /^(sk|pk|rk)_(live|test)_[a-zA-Z0-9]{10,}$/, // Stripe keys
65
83
  /^r[us]_[a-zA-Z0-9]{20,}$/, // Stripe restricted keys
@@ -75,23 +93,102 @@ const SECRET_VALUE_PATTERNS = [
75
93
  /^sk-ant-[a-zA-Z0-9_-]{20,}$/, // Anthropic API keys
76
94
  /^SG\.[a-zA-Z0-9_-]{20,}$/, // SendGrid API keys
77
95
  /^SK[a-f0-9]{32}$/, // Twilio API keys
96
+ /-----BEGIN\s+(RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----/, // PEM private keys
97
+ /ssh-(rsa|ed25519|ecdsa|dss) [A-Za-z0-9+/=]{20,}/g, // SSH host + authorized public keys
98
+ /\[[^\]]+\]:\d+ ssh-[a-z0-9-]+ [A-Za-z0-9+/=]{20,}/g, // known_hosts entries with port spec
99
+ /PrivateKey\s*=\s*[A-Za-z0-9+\/=]+/gi, // WireGuard interface private key
100
+ /PresharedKey\s*=\s*[A-Za-z0-9+\/=]+/gi, // WireGuard preshared key
101
+ /(?<![A-Za-z0-9+\/=])[A-Za-z0-9+\/]{43}=(?![A-Za-z0-9+\/=])/g, // Bare base64 32-byte WG key
102
+ /\$[0-9a-z]\$[A-Za-z0-9./$]{8,}/g, // shadow-style hashes in command output
103
+ /^DefaultEndpointsProtocol=/, // Azure connection strings
104
+ /^[A-Za-z0-9+\/]{43,}={0,2}$/, // Base64-encoded symmetric keys (32+ bytes)
105
+ /^[A-Za-z0-9_-]{43,}={0,2}$/, // URL-safe base64 encoded keys
106
+ /^whsec_[a-zA-Z0-9]{20,}$/, // Stripe webhook secrets
107
+ /^npm_[a-zA-Z0-9]{20,}$/, // npm tokens
108
+ /^vercel_[a-zA-Z0-9]{20,}$/, // Vercel tokens
109
+ ];
110
+ // Inline patterns — for secrets embedded inside larger text (e.g. command
111
+ // output: `API_KEY=sk-abc...`, `export GITHUB_TOKEN=ghp_...`). We replace
112
+ // only the matched substring, preserving surrounding context so the user
113
+ // still gets useful log/timeline output. Anchored SECRET_VALUE_PATTERNS
114
+ // above only catch whole-string matches, which misses this common case.
115
+ //
116
+ // Each pattern uses negative look-behind/look-ahead to require a
117
+ // non-identifier boundary on both sides (prevents partial matches inside
118
+ // unrelated base64 blobs or random identifiers).
119
+ const INLINE_SECRET_PATTERNS = [
120
+ // Stripe
121
+ /(?<![A-Za-z0-9_-])(?:sk|pk|rk)_(?:live|test)_[a-zA-Z0-9]{20,}(?![A-Za-z0-9_-])/g,
122
+ /(?<![A-Za-z0-9_-])r[us]_[a-zA-Z0-9]{20,}(?![A-Za-z0-9_-])/g,
123
+ /(?<![A-Za-z0-9_-])whsec_[a-zA-Z0-9]{20,}(?![A-Za-z0-9_-])/g,
124
+ // GitHub
125
+ /(?<![A-Za-z0-9_-])ghp_[a-zA-Z0-9]{36}(?![A-Za-z0-9_-])/g,
126
+ /(?<![A-Za-z0-9_-])gho_[a-zA-Z0-9]{36}(?![A-Za-z0-9_-])/g,
127
+ /(?<![A-Za-z0-9_-])github_pat_[a-zA-Z0-9_]{20,}(?![A-Za-z0-9_-])/g,
128
+ // AWS
129
+ /(?<![A-Za-z0-9])AKIA[A-Z0-9]{16}(?![A-Za-z0-9])/g,
130
+ // Anthropic must precede OpenAI (sk-ant- is a subset of sk-)
131
+ /(?<![A-Za-z0-9_-])sk-ant-[a-zA-Z0-9_-]{20,}(?![A-Za-z0-9_-])/g,
132
+ /(?<![A-Za-z0-9_-])sk-(?!ant-)[a-zA-Z0-9]{20,}(?![A-Za-z0-9_-])/g,
133
+ // Google
134
+ /(?<![A-Za-z0-9_-])AIza[a-zA-Z0-9_-]{35}(?![A-Za-z0-9_-])/g,
135
+ // Slack
136
+ /(?<![A-Za-z0-9_-])xox[bpras]-[a-zA-Z0-9-]{10,}(?![A-Za-z0-9_-])/g,
137
+ // SendGrid (three segments separated by dots)
138
+ /(?<![A-Za-z0-9_-])SG\.[a-zA-Z0-9_-]{20,}\.[a-zA-Z0-9_-]{20,}(?![A-Za-z0-9_-])/g,
139
+ // Twilio
140
+ /(?<![A-Za-z0-9])SK[a-f0-9]{32}(?![A-Za-z0-9])/g,
141
+ // npm + Vercel
142
+ /(?<![A-Za-z0-9_-])npm_[a-zA-Z0-9]{20,}(?![A-Za-z0-9_-])/g,
143
+ /(?<![A-Za-z0-9_-])vercel_[a-zA-Z0-9]{20,}(?![A-Za-z0-9_-])/g,
144
+ // JWT (eyJ prefix, three segments or two)
145
+ /(?<![A-Za-z0-9_-])eyJ[a-zA-Z0-9_-]{20,}\.[a-zA-Z0-9_-]{20,}(?:\.[a-zA-Z0-9_-]+)?(?![A-Za-z0-9_-])/g,
146
+ // Free-form `password=…` / `passwd: …` / `passphrase=…` (e.g. in command output)
147
+ /(?<![A-Za-z0-9_-])(?:password|passwd|passphrase)["']?\s*[=:]\s*["']?[^\s"',;]{3,}/gi,
78
148
  ];
79
149
  function isSecretField(key) {
80
150
  const lower = key.toLowerCase();
81
151
  if (SECRET_FIELDS.has(lower))
82
152
  return true;
153
+ // IDs that *reference* a secret (credential_id, token_id, private_key_id)
154
+ // are not themselves secrets — they're UUIDs stored in the DB. Skipping
155
+ // them unblocks legitimate downstream lookups that need the reference.
156
+ if (lower.endsWith('_id') || lower === 'id')
157
+ return false;
83
158
  return SECRET_SUBSTRINGS.some((sub) => lower.includes(sub));
84
159
  }
85
160
  function isSecretValue(value) {
86
161
  return SECRET_VALUE_PATTERNS.some((pattern) => pattern.test(value));
87
162
  }
163
+ /**
164
+ * Replace inline secrets inside a larger string with [REDACTED], leaving
165
+ * surrounding context intact. Used for free-form strings that are not
166
+ * themselves a bare secret (those hit isSecretValue + full-string redaction).
167
+ *
168
+ * Example: `API_KEY=sk-abc...xyz123` → `API_KEY=[REDACTED]`
169
+ */
170
+ function redactInlineSecrets(value) {
171
+ let result = value;
172
+ for (const pattern of INLINE_SECRET_PATTERNS) {
173
+ result = result.replace(pattern, REDACTED);
174
+ }
175
+ return result;
176
+ }
88
177
  function redact(obj, depth = 0) {
89
- if (depth > 10)
90
- return obj;
178
+ // SECURITY: At max depth, redact entirely rather than passing data through.
179
+ // Prevents secrets in deeply nested objects from bypassing redaction.
180
+ if (depth > 20)
181
+ return REDACTED;
91
182
  if (obj === null || obj === undefined)
92
183
  return obj;
93
- if (typeof obj === 'string')
94
- return isSecretValue(obj) ? REDACTED : obj;
184
+ if (typeof obj === 'string') {
185
+ // Whole-string match → full redaction (anchored patterns, PEM blocks, etc.)
186
+ if (isSecretValue(obj))
187
+ return REDACTED;
188
+ // Otherwise try substring-level redaction so inline API keys in command
189
+ // output / logs don't pass through unredacted.
190
+ return redactInlineSecrets(obj);
191
+ }
95
192
  if (typeof obj !== 'object')
96
193
  return obj;
97
194
  if (Array.isArray(obj))
@@ -105,7 +202,7 @@ function redact(obj, depth = 0) {
105
202
  function redactHeaders(headers) {
106
203
  const result = {};
107
204
  for (const [key, value] of Object.entries(headers)) {
108
- result[key] = isSecretField(key) ? REDACTED : value;
205
+ result[key] = (isSecretField(key) || isSecretValue(value)) ? REDACTED : value;
109
206
  }
110
207
  return result;
111
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":";;AAiLA,wBAoBC;AAED,sCAMC;AAED,sDAIC;AAnND,sDAAsD;AACtD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,eAAe;IACf,SAAS;IACT,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,cAAc;IACd,eAAe;IACf,eAAe;IACf,WAAW;IACX,cAAc;IACd,aAAa;IACb,QAAQ;IACR,eAAe;IACf,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,2BAA2B;IAC3B,kEAAkE;IAClE,mEAAmE;IACnE,oEAAoE;IACpE,qDAAqD;IACrD,aAAa;IACb,cAAc;IACd,YAAY;CACb,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG;IACxB,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,KAAK;IACL,OAAO;IACP,KAAK;IACL,aAAa;IACb,gBAAgB;CACjB,CAAC;AAEF,MAAM,QAAQ,GAAG,YAAY,CAAC;AAE9B,mEAAmE;AACnE,yEAAyE;AACzE,yEAAyE;AACzE,kFAAkF;AAClF,MAAM,qBAAqB,GAAG;IAC5B,2CAA2C,EAAG,cAAc;IAC5D,0BAA0B,EAAuB,yBAAyB;IAC1E,uBAAuB,EAA0B,cAAc;IAC/D,gCAAgC,EAAiB,2BAA2B;IAC5E,uBAAuB,EAA0B,sBAAsB;IACvE,oBAAoB,EAA6B,qBAAqB;IACtE,4CAA4C,EAAI,oBAAoB;IACpE,gCAAgC,EAAgB,eAAe;IAC/D,iCAAiC,EAAe,gBAAgB;IAChE,yBAAyB,EAAwB,kBAAkB;IACnE,uBAAuB,EAA0B,kBAAkB;IACnE,6BAA6B,EAAoB,qBAAqB;IACtE,0BAA0B,EAAuB,oBAAoB;IACrE,kBAAkB,EAA+B,kBAAkB;IACnE,wDAAwD,EAAG,mBAAmB;IAC9E,kDAAkD,EAAG,oCAAoC;IACzF,oDAAoD,EAAG,qCAAqC;IAC5F,qCAAqC,EAAQ,kCAAkC;IAC/E,uCAAuC,EAAM,0BAA0B;IACvE,6DAA6D,EAAE,6BAA6B;IAC5F,iCAAiC,EAAG,wCAAwC;IAC5E,4BAA4B,EAAwB,2BAA2B;IAC/E,6BAA6B,EAAsB,4CAA4C;IAC/F,4BAA4B,EAAuB,+BAA+B;IAClF,0BAA0B,EAA0B,yBAAyB;IAC7E,wBAAwB,EAA4B,aAAa;IACjE,2BAA2B,EAAyB,gBAAgB;CACrE,CAAC;AAEF,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,wEAAwE;AACxE,EAAE;AACF,iEAAiE;AACjE,yEAAyE;AACzE,iDAAiD;AACjD,MAAM,sBAAsB,GAAa;IACvC,SAAS;IACT,iFAAiF;IACjF,4DAA4D;IAC5D,4DAA4D;IAC5D,SAAS;IACT,yDAAyD;IACzD,yDAAyD;IACzD,kEAAkE;IAClE,MAAM;IACN,kDAAkD;IAClD,6DAA6D;IAC7D,+DAA+D;IAC/D,iEAAiE;IACjE,SAAS;IACT,2DAA2D;IAC3D,QAAQ;IACR,kEAAkE;IAClE,8CAA8C;IAC9C,gFAAgF;IAChF,SAAS;IACT,gDAAgD;IAChD,eAAe;IACf,0DAA0D;IAC1D,6DAA6D;IAC7D,0CAA0C;IAC1C,oGAAoG;IACpG,iFAAiF;IACjF,qFAAqF;CACtF,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC7C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,MAAM,CAAC,GAAY,EAAE,KAAK,GAAG,CAAC;IAC5C,4EAA4E;IAC5E,sEAAsE;IACtE,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,4EAA4E;QAC5E,IAAI,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QACxC,wEAAwE;QACxE,+CAA+C;QAC/C,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAE1E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,aAAa,CAAC,OAA+B;IAC3D,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAChF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAgC;IAEhC,OAAO,MAAM,CAAC,OAAO,CAA4B,CAAC;AACpD,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Heuristic ReDoS (catastrophic-backtracking) detector.
3
+ *
4
+ * Used to reject user-supplied regex patterns at save time (SSH commandRules)
5
+ * and as a defense-in-depth check at evaluation time. Not perfect — a true
6
+ * linear-time engine like re2 would be the right long-term answer — but
7
+ * catches the classic traps without adding a native dependency:
8
+ *
9
+ * - `(a+)+$` — nested quantifier on a group
10
+ * - `(a|a)+` — alternation with overlap
11
+ * - `(.*|.*)+` — same, more realistic form
12
+ * - `.*.*.*` — excessive sequential wildcards
13
+ *
14
+ * Feeding any of these 40 characters of `a` freezes v8 for seconds.
15
+ *
16
+ * The check is deliberately conservative: we'd rather refuse a legitimate
17
+ * but suspicious pattern than accept one that can wedge the gateway. Users
18
+ * can always simplify their regex.
19
+ */
20
+ export declare function isLikelyRedos(pattern: string): boolean;
21
+ //# sourceMappingURL=regex-safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-safety.d.ts","sourceRoot":"","sources":["../src/regex-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAyBtD"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLikelyRedos = isLikelyRedos;
4
+ /**
5
+ * Heuristic ReDoS (catastrophic-backtracking) detector.
6
+ *
7
+ * Used to reject user-supplied regex patterns at save time (SSH commandRules)
8
+ * and as a defense-in-depth check at evaluation time. Not perfect — a true
9
+ * linear-time engine like re2 would be the right long-term answer — but
10
+ * catches the classic traps without adding a native dependency:
11
+ *
12
+ * - `(a+)+$` — nested quantifier on a group
13
+ * - `(a|a)+` — alternation with overlap
14
+ * - `(.*|.*)+` — same, more realistic form
15
+ * - `.*.*.*` — excessive sequential wildcards
16
+ *
17
+ * Feeding any of these 40 characters of `a` freezes v8 for seconds.
18
+ *
19
+ * The check is deliberately conservative: we'd rather refuse a legitimate
20
+ * but suspicious pattern than accept one that can wedge the gateway. Users
21
+ * can always simplify their regex.
22
+ */
23
+ function isLikelyRedos(pattern) {
24
+ // Length bound — anything this long is suspicious on its own and the
25
+ // schema should have caught it, but defense in depth.
26
+ if (pattern.length > 500)
27
+ return true;
28
+ // Nested quantifier on a group: `(...+)+`, `(...*)*`, `(...?)+`, `(...){n,m}`.
29
+ // Match: open-paren, any non-paren chars, inner quantifier, any non-paren
30
+ // chars, close-paren, then an outer quantifier.
31
+ if (/\([^()]*[+*?}][^()]*\)[+*?{]/.test(pattern))
32
+ return true;
33
+ // Alternation inside a quantified group where both branches can match the
34
+ // same text — classic `(a|a)+` / `(.*|.*)+` pattern.
35
+ if (/\([^()]*\|[^()]*\)[+*{]/.test(pattern))
36
+ return true;
37
+ // Three or more sequential greedy wildcards — catastrophic when the input
38
+ // contains a mismatch near the end.
39
+ if (/\.\*[^.]*\.\*[^.]*\.\*/.test(pattern))
40
+ return true;
41
+ // Sequential quantified atoms — `a+a+a+a+…b`, `\d+\d+\d+…`, `[a-z]+[a-z]+…`
42
+ // — explode the same way nested quantifiers do once the input forces
43
+ // backtracking, but have no group nesting for the checks above to catch.
44
+ // Flag 4+ adjacent quantified single-char atoms (literal, escape or class).
45
+ if (/(?:(?:\\.|\[[^\]]*\]|[^\\[\](){}|^$.])[+*]){4,}/.test(pattern))
46
+ return true;
47
+ return false;
48
+ }
49
+ //# sourceMappingURL=regex-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-safety.js","sourceRoot":"","sources":["../src/regex-safety.ts"],"names":[],"mappings":";;AAmBA,sCAyBC;AA5CD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,qEAAqE;IACrE,sDAAsD;IACtD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtC,+EAA+E;IAC/E,0EAA0E;IAC1E,gDAAgD;IAChD,IAAI,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9D,0EAA0E;IAC1E,qDAAqD;IACrD,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,0EAA0E;IAC1E,oCAAoC;IACpC,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,4EAA4E;IAC5E,qEAAqE;IACrE,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,iDAAiD,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Error-message sanitizers used both server-side and for outbound delivery.
3
+ *
4
+ * Why duplicate patterns vs. the redact.ts library? redact.ts targets
5
+ * structured JSON payloads (recursive traversal of keys/values). These
6
+ * helpers target free-form Error.message strings that may have already
7
+ * been concatenated with paths/URLs/env vars by a lower-level library
8
+ * (e.g. `Cannot connect to postgres://user:pwd@host`).
9
+ *
10
+ * Both variants cap at a fixed length so a pathological stack or error
11
+ * string can't fill logs or amplify a malformed-payload attack into
12
+ * amplified storage.
13
+ */
14
+ /**
15
+ * Strip internal infrastructure details (file paths, URLs/URIs, env-var
16
+ * assignments, stack-frame lines) from an error before logging or storing.
17
+ * Safe to call on `unknown` — stringifies defensively.
18
+ *
19
+ * Use this anywhere a raw Error.message might hit `console.*`, a DB column
20
+ * (e.g. `jobs.error`), or a response body. Prefer it over `err.message`
21
+ * even when the error feels "safe" — it's cheap and future-proof.
22
+ */
23
+ export declare function sanitizeError(err: unknown): string;
24
+ /**
25
+ * More aggressive variant for content that leaves the trust boundary
26
+ * (webhooks, external callbacks). Additionally redacts quoted names that
27
+ * could be user-chosen identifiers (credential names, server names),
28
+ * and caps shorter.
29
+ */
30
+ export declare function sanitizeErrorForWebhook(err: unknown): string;
31
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAYlD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAM5D"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeError = sanitizeError;
4
+ exports.sanitizeErrorForWebhook = sanitizeErrorForWebhook;
5
+ const redact_js_1 = require("./redact.js");
6
+ /**
7
+ * Error-message sanitizers used both server-side and for outbound delivery.
8
+ *
9
+ * Why duplicate patterns vs. the redact.ts library? redact.ts targets
10
+ * structured JSON payloads (recursive traversal of keys/values). These
11
+ * helpers target free-form Error.message strings that may have already
12
+ * been concatenated with paths/URLs/env vars by a lower-level library
13
+ * (e.g. `Cannot connect to postgres://user:pwd@host`).
14
+ *
15
+ * Both variants cap at a fixed length so a pathological stack or error
16
+ * string can't fill logs or amplify a malformed-payload attack into
17
+ * amplified storage.
18
+ */
19
+ /**
20
+ * Strip internal infrastructure details (file paths, URLs/URIs, env-var
21
+ * assignments, stack-frame lines) from an error before logging or storing.
22
+ * Safe to call on `unknown` — stringifies defensively.
23
+ *
24
+ * Use this anywhere a raw Error.message might hit `console.*`, a DB column
25
+ * (e.g. `jobs.error`), or a response body. Prefer it over `err.message`
26
+ * even when the error feels "safe" — it's cheap and future-proof.
27
+ */
28
+ function sanitizeError(err) {
29
+ const msg = err instanceof Error ? err.message : String(err);
30
+ const stripped = msg
31
+ .replace(/\/[^\s:]+\.(ts|js|mjs|json)/g, '[path]')
32
+ .replace(/https?:\/\/[^\s]+/gi, '[url]')
33
+ .replace(/\w+:\/\/[^\s]+/gi, '[uri]')
34
+ .replace(/\b[A-Z_]{2,}=[^\s]+/g, '[env]')
35
+ .replace(/at\s+\S+\s+\([^)]+\)/g, '[stack]');
36
+ // Also run the structured secret redactor so credential VALUES (PEM keys,
37
+ // Bearer tokens, API keys, password=…) that a lower layer may have
38
+ // concatenated into the message don't leak to the agent/logs.
39
+ return String((0, redact_js_1.redact)(stripped)).slice(0, 500);
40
+ }
41
+ /**
42
+ * More aggressive variant for content that leaves the trust boundary
43
+ * (webhooks, external callbacks). Additionally redacts quoted names that
44
+ * could be user-chosen identifiers (credential names, server names),
45
+ * and caps shorter.
46
+ */
47
+ function sanitizeErrorForWebhook(err) {
48
+ const base = sanitizeError(err);
49
+ return base
50
+ .replace(/"[^"]{1,100}"/g, '"[redacted]"')
51
+ .replace(/Workspace \S+/g, 'Workspace [id]')
52
+ .slice(0, 300);
53
+ }
54
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":";;AAyBA,sCAYC;AAQD,0DAMC;AAnDD,2CAAqC;AAErC;;;;;;;;;;;;GAYG;AAEH;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,GAAY;IACxC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,GAAG;SACjB,OAAO,CAAC,8BAA8B,EAAE,QAAQ,CAAC;SACjD,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC;SACvC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC;SACpC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC;SACxC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;IAC/C,0EAA0E;IAC1E,mEAAmE;IACnE,8DAA8D;IAC9D,OAAO,MAAM,CAAC,IAAA,kBAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,GAAY;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,IAAI;SACR,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC;SACzC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;SAC3C,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC"}