@cello-protocol/gateway 0.0.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 (105) hide show
  1. package/dist/bin/cello-gateway.d.ts +3 -0
  2. package/dist/bin/cello-gateway.d.ts.map +1 -0
  3. package/dist/bin/cello-gateway.js +174 -0
  4. package/dist/bin/cello-gateway.js.map +1 -0
  5. package/dist/client.d.ts +16 -0
  6. package/dist/client.d.ts.map +1 -0
  7. package/dist/client.js +182 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/config/config-store.d.ts +42 -0
  10. package/dist/config/config-store.d.ts.map +1 -0
  11. package/dist/config/config-store.js +198 -0
  12. package/dist/config/config-store.js.map +1 -0
  13. package/dist/detect/deberta-model-manifest.d.ts +54 -0
  14. package/dist/detect/deberta-model-manifest.d.ts.map +1 -0
  15. package/dist/detect/deberta-model-manifest.js +17 -0
  16. package/dist/detect/deberta-model-manifest.js.map +1 -0
  17. package/dist/detect/exfil.d.ts +14 -0
  18. package/dist/detect/exfil.d.ts.map +1 -0
  19. package/dist/detect/exfil.js +69 -0
  20. package/dist/detect/exfil.js.map +1 -0
  21. package/dist/detect/gitleaks-rules.d.ts +18 -0
  22. package/dist/detect/gitleaks-rules.d.ts.map +1 -0
  23. package/dist/detect/gitleaks-rules.js +229 -0
  24. package/dist/detect/gitleaks-rules.js.map +1 -0
  25. package/dist/detect/injection-patterns.d.ts +10 -0
  26. package/dist/detect/injection-patterns.d.ts.map +1 -0
  27. package/dist/detect/injection-patterns.js +53 -0
  28. package/dist/detect/injection-patterns.js.map +1 -0
  29. package/dist/detect/injection-scanner.d.ts +44 -0
  30. package/dist/detect/injection-scanner.d.ts.map +1 -0
  31. package/dist/detect/injection-scanner.js +45 -0
  32. package/dist/detect/injection-scanner.js.map +1 -0
  33. package/dist/detect/language.d.ts +37 -0
  34. package/dist/detect/language.d.ts.map +1 -0
  35. package/dist/detect/language.js +85 -0
  36. package/dist/detect/language.js.map +1 -0
  37. package/dist/detect/linear-regex.d.ts +20 -0
  38. package/dist/detect/linear-regex.d.ts.map +1 -0
  39. package/dist/detect/linear-regex.js +70 -0
  40. package/dist/detect/linear-regex.js.map +1 -0
  41. package/dist/detect/model-installer.d.ts +32 -0
  42. package/dist/detect/model-installer.d.ts.map +1 -0
  43. package/dist/detect/model-installer.js +94 -0
  44. package/dist/detect/model-installer.js.map +1 -0
  45. package/dist/detect/pii.d.ts +27 -0
  46. package/dist/detect/pii.d.ts.map +1 -0
  47. package/dist/detect/pii.js +119 -0
  48. package/dist/detect/pii.js.map +1 -0
  49. package/dist/detect/rate-limit.d.ts +44 -0
  50. package/dist/detect/rate-limit.d.ts.map +1 -0
  51. package/dist/detect/rate-limit.js +56 -0
  52. package/dist/detect/rate-limit.js.map +1 -0
  53. package/dist/detect/sanitize.d.ts +50 -0
  54. package/dist/detect/sanitize.d.ts.map +1 -0
  55. package/dist/detect/sanitize.js +211 -0
  56. package/dist/detect/sanitize.js.map +1 -0
  57. package/dist/detect/secrets.d.ts +20 -0
  58. package/dist/detect/secrets.d.ts.map +1 -0
  59. package/dist/detect/secrets.js +104 -0
  60. package/dist/detect/secrets.js.map +1 -0
  61. package/dist/index.d.ts +38 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +25 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/passthrough.d.ts +18 -0
  66. package/dist/passthrough.d.ts.map +1 -0
  67. package/dist/passthrough.js +21 -0
  68. package/dist/passthrough.js.map +1 -0
  69. package/dist/protocol.d.ts +53 -0
  70. package/dist/protocol.d.ts.map +1 -0
  71. package/dist/protocol.js +52 -0
  72. package/dist/protocol.js.map +1 -0
  73. package/dist/records/record-store.d.ts +28 -0
  74. package/dist/records/record-store.d.ts.map +1 -0
  75. package/dist/records/record-store.js +134 -0
  76. package/dist/records/record-store.js.map +1 -0
  77. package/dist/screen/inbound.d.ts +29 -0
  78. package/dist/screen/inbound.d.ts.map +1 -0
  79. package/dist/screen/inbound.js +127 -0
  80. package/dist/screen/inbound.js.map +1 -0
  81. package/dist/screen/inbound.test.d.ts +2 -0
  82. package/dist/screen/inbound.test.d.ts.map +1 -0
  83. package/dist/screen/inbound.test.js +49 -0
  84. package/dist/screen/inbound.test.js.map +1 -0
  85. package/dist/screen/outbound.d.ts +57 -0
  86. package/dist/screen/outbound.d.ts.map +1 -0
  87. package/dist/screen/outbound.js +183 -0
  88. package/dist/screen/outbound.js.map +1 -0
  89. package/dist/screen/outbound.test.d.ts +2 -0
  90. package/dist/screen/outbound.test.d.ts.map +1 -0
  91. package/dist/screen/outbound.test.js +62 -0
  92. package/dist/screen/outbound.test.js.map +1 -0
  93. package/dist/server.d.ts +34 -0
  94. package/dist/server.d.ts.map +1 -0
  95. package/dist/server.js +129 -0
  96. package/dist/server.js.map +1 -0
  97. package/dist/spawn.d.ts +32 -0
  98. package/dist/spawn.d.ts.map +1 -0
  99. package/dist/spawn.js +84 -0
  100. package/dist/spawn.js.map +1 -0
  101. package/dist/types.d.ts +121 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/types.js +39 -0
  104. package/dist/types.js.map +1 -0
  105. package/package.json +42 -0
@@ -0,0 +1,229 @@
1
+ export const GITLEAKS_RULES = [
2
+ { id: "1password-secret-key", regex: "\\bA3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\\b", keywords: ["a3-"], entropy: 3.8 },
3
+ { id: "1password-service-account-token", regex: "ops_eyJ[a-zA-Z0-9+/]{250,}={0,3}", keywords: ["ops_"], entropy: 4 },
4
+ { id: "adafruit-api-key", regex: "(?i)[\\w.-]{0,50}?(?:adafruit)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["adafruit"], entropy: 0 },
5
+ { id: "adobe-client-id", regex: "(?i)[\\w.-]{0,50}?(?:adobe)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["adobe"], entropy: 2 },
6
+ { id: "adobe-client-secret", regex: "\\b(p8e-(?i)[a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["p8e-"], entropy: 2 },
7
+ { id: "age-secret-key", regex: "AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}", keywords: ["age-secret-key-1"], entropy: 0 },
8
+ { id: "airtable-api-key", regex: "(?i)[\\w.-]{0,50}?(?:airtable)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{17})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["airtable"], entropy: 0 },
9
+ { id: "airtable-personnal-access-token", regex: "\\b(pat[[:alnum:]]{14}\\.[a-f0-9]{64})\\b", keywords: ["airtable"], entropy: 0 },
10
+ { id: "algolia-api-key", regex: "(?i)[\\w.-]{0,50}?(?:algolia)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["algolia"], entropy: 0 },
11
+ { id: "alibaba-access-key-id", regex: "\\b(LTAI(?i)[a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["ltai"], entropy: 2 },
12
+ { id: "alibaba-secret-key", regex: "(?i)[\\w.-]{0,50}?(?:alibaba)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["alibaba"], entropy: 2 },
13
+ { id: "anthropic-admin-api-key", regex: "\\b(sk-ant-admin01-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sk-ant-admin01"], entropy: 0 },
14
+ { id: "anthropic-api-key", regex: "\\b(sk-ant-api03-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sk-ant-api03"], entropy: 0 },
15
+ { id: "artifactory-api-key", regex: "\\bAKCp[A-Za-z0-9]{69}\\b", keywords: ["akcp"], entropy: 4.5 },
16
+ { id: "artifactory-reference-token", regex: "\\bcmVmd[A-Za-z0-9]{59}\\b", keywords: ["cmvmd"], entropy: 4.5 },
17
+ { id: "asana-client-id", regex: "(?i)[\\w.-]{0,50}?(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["asana"], entropy: 0 },
18
+ { id: "asana-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["asana"], entropy: 0 },
19
+ { id: "atlassian-api-token", regex: "(?i)[\\w.-]{0,50}?(?:(?-i:ATLASSIAN|[Aa]tlassian)|(?-i:CONFLUENCE|[Cc]onfluence)|(?-i:JIRA|[Jj]ira))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20}[a-f0-9]{4})(?:[\\x60'\"\\s;]|\\\\[nr]|$)|\\b(ATATT3[A-Za-z0-9_\\-=]{186})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["atlassian", "confluence", "jira", "atatt3"], entropy: 3.5 },
20
+ { id: "authress-service-client-access-key", regex: "\\b((?:sc|ext|scauth|authress)_(?i)[a-z0-9]{5,30}\\.[a-z0-9]{4,6}\\.(?-i:acc)[_-][a-z0-9-]{10,32}\\.[a-z0-9+/_=-]{30,120})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sc_", "ext_", "scauth_", "authress_"], entropy: 2 },
21
+ { id: "aws-access-token", regex: "\\b((?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})\\b", keywords: ["a3t", "akia", "asia", "abia", "acca"], entropy: 3 },
22
+ { id: "aws-amazon-bedrock-api-key-long-lived", regex: "\\b(ABSK[A-Za-z0-9+/]{109,269}={0,2})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["absk"], entropy: 3 },
23
+ { id: "aws-amazon-bedrock-api-key-short-lived", regex: "bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t", keywords: ["bedrock-api-key-"], entropy: 3 },
24
+ { id: "azure-ad-client-secret", regex: "(?:^|[\\\\'\"\\x60\\s>=:(,)])([a-zA-Z0-9_~.]{3}\\dQ~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\'\"\\x60\\s<),])", keywords: ["q~"], entropy: 3 },
25
+ { id: "beamer-api-token", regex: "(?i)[\\w.-]{0,50}?(?:beamer)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(b_[a-z0-9=_\\-]{44})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["beamer"], entropy: 0 },
26
+ { id: "bitbucket-client-id", regex: "(?i)[\\w.-]{0,50}?(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["bitbucket"], entropy: 0 },
27
+ { id: "bitbucket-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["bitbucket"], entropy: 0 },
28
+ { id: "bittrex-access-key", regex: "(?i)[\\w.-]{0,50}?(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["bittrex"], entropy: 0 },
29
+ { id: "bittrex-secret-key", regex: "(?i)[\\w.-]{0,50}?(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["bittrex"], entropy: 0 },
30
+ { id: "cisco-meraki-api-key", regex: "[\\w.-]{0,50}?(?i:[\\w.-]{0,50}?(?:(?-i:[Mm]eraki|MERAKI))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["meraki"], entropy: 3 },
31
+ { id: "clickhouse-cloud-api-secret-key", regex: "\\b(4b1d[A-Za-z0-9]{38})\\b", keywords: ["4b1d"], entropy: 3 },
32
+ { id: "clojars-api-token", regex: "(?i)CLOJARS_[a-z0-9]{60}", keywords: ["clojars_"], entropy: 2 },
33
+ { id: "cloudflare-api-key", regex: "(?i)[\\w.-]{0,50}?(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["cloudflare"], entropy: 2 },
34
+ { id: "cloudflare-global-api-key", regex: "(?i)[\\w.-]{0,50}?(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{37})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["cloudflare"], entropy: 2 },
35
+ { id: "cloudflare-origin-ca-key", regex: "\\b(v1\\.0-[a-f0-9]{24}-[a-f0-9]{146})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["cloudflare", "v1.0-"], entropy: 2 },
36
+ { id: "codecov-access-token", regex: "(?i)[\\w.-]{0,50}?(?:codecov)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["codecov"], entropy: 0 },
37
+ { id: "cohere-api-token", regex: "[\\w.-]{0,50}?(?i:[\\w.-]{0,50}?(?:cohere|CO_API_KEY)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-zA-Z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["cohere", "co_api_key"], entropy: 4 },
38
+ { id: "coinbase-access-token", regex: "(?i)[\\w.-]{0,50}?(?:coinbase)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["coinbase"], entropy: 0 },
39
+ { id: "confluent-access-token", regex: "(?i)[\\w.-]{0,50}?(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["confluent"], entropy: 0 },
40
+ { id: "confluent-secret-key", regex: "(?i)[\\w.-]{0,50}?(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["confluent"], entropy: 0 },
41
+ { id: "contentful-delivery-api-token", regex: "(?i)[\\w.-]{0,50}?(?:contentful)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{43})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["contentful"], entropy: 0 },
42
+ { id: "curl-auth-header", regex: "\\bcurl\\b(?:.*?|.*?(?:[\\r\\n]{1,2}.*?){1,5})[ \\t\\n\\r](?:-H|--header)(?:=|[ \\t]{0,5})(?:\"(?i)(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t]([\\w=~@.+/-]{8,})|([\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}([\\w=~@.+/-]{8,}))\"|'(?i)(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t]([\\w=~@.+/-]{8,})|([\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}([\\w=~@.+/-]{8,}))')(?:\\B|\\s|\\z)", keywords: ["curl"], entropy: 2.75 },
43
+ { id: "curl-auth-user", regex: "\\bcurl\\b(?:.*|.*(?:[\\r\\n]{1,2}.*){1,5})[ \\t\\n\\r](?:-u|--user)(?:=|[ \\t]{0,5})(\"(:[^\"]{3,}|[^:\"]{3,}:|[^:\"]{3,}:[^\"]{3,})\"|'([^:']{3,}:[^']{3,})'|((?:\"[^\"]{3,}\"|'[^']{3,}'|[\\w$@.-]+):(?:\"[^\"]{3,}\"|'[^']{3,}'|[\\w${}@.-]+)))(?:\\s|\\z)", keywords: ["curl"], entropy: 2 },
44
+ { id: "databricks-api-token", regex: "\\b(dapi[a-f0-9]{32}(?:-\\d)?)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dapi"], entropy: 3 },
45
+ { id: "datadog-access-token", regex: "(?i)[\\w.-]{0,50}?(?:datadog)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["datadog"], entropy: 0 },
46
+ { id: "defined-networking-api-token", regex: "(?i)[\\w.-]{0,50}?(?:dnkey)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(dnkey-[a-z0-9=_\\-]{26}-[a-z0-9=_\\-]{52})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dnkey"], entropy: 0 },
47
+ { id: "digitalocean-access-token", regex: "\\b(doo_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["doo_v1_"], entropy: 3 },
48
+ { id: "digitalocean-pat", regex: "\\b(dop_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dop_v1_"], entropy: 3 },
49
+ { id: "digitalocean-refresh-token", regex: "(?i)\\b(dor_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dor_v1_"], entropy: 0 },
50
+ { id: "discord-api-token", regex: "(?i)[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["discord"], entropy: 0 },
51
+ { id: "discord-client-id", regex: "(?i)[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{18})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["discord"], entropy: 2 },
52
+ { id: "discord-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["discord"], entropy: 2 },
53
+ { id: "doppler-api-token", regex: "dp\\.pt\\.(?i)[a-z0-9]{43}", keywords: ["dp.pt."], entropy: 2 },
54
+ { id: "droneci-access-token", regex: "(?i)[\\w.-]{0,50}?(?:droneci)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["droneci"], entropy: 0 },
55
+ { id: "dropbox-api-token", regex: "(?i)[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{15})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dropbox"], entropy: 0 },
56
+ { id: "dropbox-long-lived-api-token", regex: "(?i)[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\-_=]{43})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dropbox"], entropy: 0 },
57
+ { id: "dropbox-short-lived-api-token", regex: "(?i)[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(sl\\.[a-z0-9\\-=_]{135})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["dropbox"], entropy: 0 },
58
+ { id: "duffel-api-token", regex: "duffel_(?:test|live)_(?i)[a-z0-9_\\-=]{43}", keywords: ["duffel_"], entropy: 2 },
59
+ { id: "dynatrace-api-token", regex: "dt0c01\\.(?i)[a-z0-9]{24}\\.[a-z0-9]{64}", keywords: ["dt0c01."], entropy: 4 },
60
+ { id: "easypost-api-token", regex: "\\bEZAK(?i)[a-z0-9]{54}\\b", keywords: ["ezak"], entropy: 2 },
61
+ { id: "easypost-test-api-token", regex: "\\bEZTK(?i)[a-z0-9]{54}\\b", keywords: ["eztk"], entropy: 2 },
62
+ { id: "etsy-access-token", regex: "(?i)[\\w.-]{0,50}?(?:(?-i:ETSY|[Ee]tsy))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["etsy"], entropy: 3 },
63
+ { id: "facebook-access-token", regex: "(?i)\\b(\\d{15,16}(\\||%)[0-9a-z\\-_]{27,40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["facebook"], entropy: 3 },
64
+ { id: "facebook-page-access-token", regex: "\\b(EAA[MC](?i)[a-z0-9]{100,})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["eaam", "eaac"], entropy: 4 },
65
+ { id: "facebook-secret", regex: "(?i)[\\w.-]{0,50}?(?:facebook)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["facebook"], entropy: 3 },
66
+ { id: "fastly-api-token", regex: "(?i)[\\w.-]{0,50}?(?:fastly)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["fastly"], entropy: 0 },
67
+ { id: "finicity-api-token", regex: "(?i)[\\w.-]{0,50}?(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["finicity"], entropy: 0 },
68
+ { id: "finicity-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["finicity"], entropy: 0 },
69
+ { id: "finnhub-access-token", regex: "(?i)[\\w.-]{0,50}?(?:finnhub)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["finnhub"], entropy: 0 },
70
+ { id: "flickr-access-token", regex: "(?i)[\\w.-]{0,50}?(?:flickr)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["flickr"], entropy: 0 },
71
+ { id: "flutterwave-encryption-key", regex: "FLWSECK_TEST-(?i)[a-h0-9]{12}", keywords: ["flwseck_test"], entropy: 2 },
72
+ { id: "flutterwave-public-key", regex: "FLWPUBK_TEST-(?i)[a-h0-9]{32}-X", keywords: ["flwpubk_test"], entropy: 2 },
73
+ { id: "flutterwave-secret-key", regex: "FLWSECK_TEST-(?i)[a-h0-9]{32}-X", keywords: ["flwseck_test"], entropy: 2 },
74
+ { id: "flyio-access-token", regex: "\\b((?:fo1_[\\w-]{43}|fm1[ar]_[a-zA-Z0-9+\\/]{100,}={0,3}|fm2_[a-zA-Z0-9+\\/]{100,}={0,3}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["fo1_", "fm1", "fm2_"], entropy: 4 },
75
+ { id: "frameio-api-token", regex: "fio-u-(?i)[a-z0-9\\-_=]{64}", keywords: ["fio-u-"], entropy: 0 },
76
+ { id: "freemius-secret-key", regex: "(?i)[\"']secret_key[\"']\\s*=>\\s*[\"'](sk_[\\S]{29})[\"']", keywords: ["secret_key"], entropy: 0 },
77
+ { id: "freshbooks-access-token", regex: "(?i)[\\w.-]{0,50}?(?:freshbooks)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["freshbooks"], entropy: 0 },
78
+ { id: "gcp-api-key", regex: "\\b(AIza[\\w-]{35})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["aiza"], entropy: 4 },
79
+ { id: "generic-api-key", regex: "(?i)[\\w.-]{0,50}?(?:access|auth|(?-i:[Aa]pi|API)|credential|creds|key|passw(?:or)?d|secret|token)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([\\w.=-]{10,150}|[a-z0-9][a-z0-9+/]{11,}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["access", "api", "auth", "key", "credential", "creds", "passwd", "password", "secret", "token"], entropy: 3.5 },
80
+ { id: "github-app-token", regex: "(?:ghu|ghs)_[0-9a-zA-Z]{36}", keywords: ["ghu_", "ghs_"], entropy: 3 },
81
+ { id: "github-fine-grained-pat", regex: "github_pat_\\w{82}", keywords: ["github_pat_"], entropy: 3 },
82
+ { id: "github-oauth", regex: "gho_[0-9a-zA-Z]{36}", keywords: ["gho_"], entropy: 3 },
83
+ { id: "github-pat", regex: "ghp_[0-9a-zA-Z]{36}", keywords: ["ghp_"], entropy: 3 },
84
+ { id: "github-refresh-token", regex: "ghr_[0-9a-zA-Z]{36}", keywords: ["ghr_"], entropy: 3 },
85
+ { id: "gitlab-cicd-job-token", regex: "glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}", keywords: ["glcbt-"], entropy: 3 },
86
+ { id: "gitlab-deploy-token", regex: "gldt-[0-9a-zA-Z_\\-]{20}", keywords: ["gldt-"], entropy: 3 },
87
+ { id: "gitlab-feature-flag-client-token", regex: "glffct-[0-9a-zA-Z_\\-]{20}", keywords: ["glffct-"], entropy: 3 },
88
+ { id: "gitlab-feed-token", regex: "glft-[0-9a-zA-Z_\\-]{20}", keywords: ["glft-"], entropy: 3 },
89
+ { id: "gitlab-incoming-mail-token", regex: "glimt-[0-9a-zA-Z_\\-]{25}", keywords: ["glimt-"], entropy: 3 },
90
+ { id: "gitlab-kubernetes-agent-token", regex: "glagent-[0-9a-zA-Z_\\-]{50}", keywords: ["glagent-"], entropy: 3 },
91
+ { id: "gitlab-oauth-app-secret", regex: "gloas-[0-9a-zA-Z_\\-]{64}", keywords: ["gloas-"], entropy: 3 },
92
+ { id: "gitlab-pat", regex: "glpat-[\\w-]{20}", keywords: ["glpat-"], entropy: 3 },
93
+ { id: "gitlab-pat-routable", regex: "\\bglpat-[0-9a-zA-Z_-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b", keywords: ["glpat-"], entropy: 4 },
94
+ { id: "gitlab-ptt", regex: "glptt-[0-9a-f]{40}", keywords: ["glptt-"], entropy: 3 },
95
+ { id: "gitlab-rrt", regex: "GR1348941[\\w-]{20}", keywords: ["gr1348941"], entropy: 3 },
96
+ { id: "gitlab-runner-authentication-token", regex: "glrt-[0-9a-zA-Z_\\-]{20}", keywords: ["glrt-"], entropy: 3 },
97
+ { id: "gitlab-runner-authentication-token-routable", regex: "\\bglrt-t\\d_[0-9a-zA-Z_\\-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b", keywords: ["glrt-"], entropy: 4 },
98
+ { id: "gitlab-scim-token", regex: "glsoat-[0-9a-zA-Z_\\-]{20}", keywords: ["glsoat-"], entropy: 3 },
99
+ { id: "gitlab-session-cookie", regex: "_gitlab_session=[0-9a-z]{32}", keywords: ["_gitlab_session="], entropy: 3 },
100
+ { id: "gitter-access-token", regex: "(?i)[\\w.-]{0,50}?(?:gitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["gitter"], entropy: 0 },
101
+ { id: "gocardless-api-token", regex: "(?i)[\\w.-]{0,50}?(?:gocardless)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(live_(?i)[a-z0-9\\-_=]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["live_", "gocardless"], entropy: 0 },
102
+ { id: "grafana-api-key", regex: "(?i)\\b(eyJrIjoi[A-Za-z0-9]{70,400}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["eyjrijoi"], entropy: 3 },
103
+ { id: "grafana-cloud-api-token", regex: "(?i)\\b(glc_[A-Za-z0-9+/]{32,400}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["glc_"], entropy: 3 },
104
+ { id: "grafana-service-account-token", regex: "(?i)\\b(glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["glsa_"], entropy: 3 },
105
+ { id: "harness-api-key", regex: "(?:pat|sat)\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9]{24}\\.[a-zA-Z0-9]{20}", keywords: ["pat.", "sat."], entropy: 0 },
106
+ { id: "hashicorp-tf-api-token", regex: "(?i)[a-z0-9]{14}\\.(?-i:atlasv1)\\.[a-z0-9\\-_=]{60,70}", keywords: ["atlasv1"], entropy: 3.5 },
107
+ { id: "hashicorp-tf-password", regex: "(?i)[\\w.-]{0,50}?(?:administrator_login_password|password)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(\"[a-z0-9=_\\-]{8,20}\")(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["administrator_login_password", "password"], entropy: 2 },
108
+ { id: "heroku-api-key", regex: "(?i)[\\w.-]{0,50}?(?:heroku)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["heroku"], entropy: 0 },
109
+ { id: "heroku-api-key-v2", regex: "\\b((HRKU-AA[0-9a-zA-Z_-]{58}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["hrku-aa"], entropy: 4 },
110
+ { id: "hubspot-api-key", regex: "(?i)[\\w.-]{0,50}?(?:hubspot)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["hubspot"], entropy: 0 },
111
+ { id: "huggingface-access-token", regex: "\\b(hf_(?i:[a-z]{34}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["hf_"], entropy: 2 },
112
+ { id: "huggingface-organization-api-token", regex: "\\b(api_org_(?i:[a-z]{34}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["api_org_"], entropy: 2 },
113
+ { id: "infracost-api-token", regex: "\\b(ico-[a-zA-Z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["ico-"], entropy: 3 },
114
+ { id: "intercom-api-key", regex: "(?i)[\\w.-]{0,50}?(?:intercom)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{60})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["intercom"], entropy: 0 },
115
+ { id: "intra42-client-secret", regex: "\\b(s-s4t2(?:ud|af)-(?i)[abcdef0123456789]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["intra", "s-s4t2ud-", "s-s4t2af-"], entropy: 3 },
116
+ { id: "jfrog-api-key", regex: "(?i)[\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{73})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["jfrog", "artifactory", "bintray", "xray"], entropy: 0 },
117
+ { id: "jfrog-identity-token", regex: "(?i)[\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["jfrog", "artifactory", "bintray", "xray"], entropy: 0 },
118
+ { id: "jwt", regex: "\\b(ey[a-zA-Z0-9]{17,}\\.ey[a-zA-Z0-9\\/\\\\_-]{17,}\\.(?:[a-zA-Z0-9\\/\\\\_-]{10,}={0,2})?)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["ey"], entropy: 3 },
119
+ { id: "jwt-base64", regex: "\\bZXlK(?:(?P<alg>aGJHY2lPaU)|(?P<apu>aGNIVWlPaU)|(?P<apv>aGNIWWlPaU)|(?P<aud>aGRXUWlPaU)|(?P<b64>aU5qUWlP)|(?P<crit>amNtbDBJanBi)|(?P<cty>amRIa2lPaU)|(?P<epk>bGNHc2lPbn)|(?P<enc>bGJtTWlPaU)|(?P<jku>cWEzVWlPaU)|(?P<jwk>cWQyc2lPb)|(?P<iss>cGMzTWlPaU)|(?P<iv>cGRpSTZJ)|(?P<kid>cmFXUWlP)|(?P<key_ops>clpYbGZiM0J6SWpwY)|(?P<kty>cmRIa2lPaUp)|(?P<nonce>dWIyNWpaU0k2)|(?P<p2c>d01tTWlP)|(?P<p2s>d01uTWlPaU)|(?P<ppt>d2NIUWlPaU)|(?P<sub>emRXSWlPaU)|(?P<svt>emRuUWlP)|(?P<tag>MFlXY2lPaU)|(?P<typ>MGVYQWlPaUp)|(?P<url>MWNtd2l)|(?P<use>MWMyVWlPaUp)|(?P<ver>MlpYSWlPaU)|(?P<version>MlpYSnphVzl1SWpv)|(?P<x>NElqb2)|(?P<x5c>NE5XTWlP)|(?P<x5t>NE5YUWlPaU)|(?P<x5ts256>NE5YUWpVekkxTmlJNkl)|(?P<x5u>NE5YVWlPaU)|(?P<zip>NmFYQWlPaU))[a-zA-Z0-9\\/\\\\_+\\-\\r\\n]{40,}={0,2}", keywords: ["zxlk"], entropy: 2 },
120
+ { id: "kraken-access-token", regex: "(?i)[\\w.-]{0,50}?(?:kraken)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9\\/=_\\+\\-]{80,90})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["kraken"], entropy: 0 },
121
+ { id: "kubernetes-secret-yaml", regex: "(?i)(?:\\bkind:[ \\t]*[\"']?\\bsecret\\b[\"']?(?s:.){0,200}?\\bdata:(?s:.){0,100}?\\s+([\\w.-]+:(?:[ \\t]*(?:\\||>[-+]?)\\s+)?[ \\t]*(?:[\"']?[a-z0-9+/]{10,}={0,3}[\"']?|\\{\\{[ \\t\\w\"|$:=,.-]+}}|\"\"|''))|\\bdata:(?s:.){0,100}?\\s+([\\w.-]+:(?:[ \\t]*(?:\\||>[-+]?)\\s+)?[ \\t]*(?:[\"']?[a-z0-9+/]{10,}={0,3}[\"']?|\\{\\{[ \\t\\w\"|$:=,.-]+}}|\"\"|''))(?s:.){0,200}?\\bkind:[ \\t]*[\"']?\\bsecret\\b[\"']?)", keywords: ["secret"], entropy: 0 },
122
+ { id: "kucoin-access-token", regex: "(?i)[\\w.-]{0,50}?(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["kucoin"], entropy: 0 },
123
+ { id: "kucoin-secret-key", regex: "(?i)[\\w.-]{0,50}?(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["kucoin"], entropy: 0 },
124
+ { id: "launchdarkly-access-token", regex: "(?i)[\\w.-]{0,50}?(?:launchdarkly)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["launchdarkly"], entropy: 0 },
125
+ { id: "linear-api-key", regex: "lin_api_(?i)[a-z0-9]{40}", keywords: ["lin_api_"], entropy: 2 },
126
+ { id: "linear-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:linear)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["linear"], entropy: 2 },
127
+ { id: "linkedin-client-id", regex: "(?i)[\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{14})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["linkedin", "linked_in", "linked-in"], entropy: 2 },
128
+ { id: "linkedin-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["linkedin", "linked_in", "linked-in"], entropy: 2 },
129
+ { id: "lob-api-key", regex: "(?i)[\\w.-]{0,50}?(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((live|test)_[a-f0-9]{35})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["test_", "live_"], entropy: 0 },
130
+ { id: "lob-pub-api-key", regex: "(?i)[\\w.-]{0,50}?(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((test|live)_pub_[a-f0-9]{31})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["test_pub", "live_pub", "_pub"], entropy: 0 },
131
+ { id: "looker-client-id", regex: "(?i)[\\w.-]{0,50}?(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["looker"], entropy: 0 },
132
+ { id: "looker-client-secret", regex: "(?i)[\\w.-]{0,50}?(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["looker"], entropy: 0 },
133
+ { id: "mailchimp-api-key", regex: "(?i)[\\w.-]{0,50}?(?:MailchimpSDK.initialize|mailchimp)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32}-us\\d\\d)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["mailchimp"], entropy: 0 },
134
+ { id: "mailgun-private-api-token", regex: "(?i)[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(key-[a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["mailgun"], entropy: 0 },
135
+ { id: "mailgun-pub-key", regex: "(?i)[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(pubkey-[a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["mailgun"], entropy: 0 },
136
+ { id: "mailgun-signing-key", regex: "(?i)[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["mailgun"], entropy: 0 },
137
+ { id: "mapbox-api-token", regex: "(?i)[\\w.-]{0,50}?(?:mapbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(pk\\.[a-z0-9]{60}\\.[a-z0-9]{22})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["mapbox"], entropy: 0 },
138
+ { id: "mattermost-access-token", regex: "(?i)[\\w.-]{0,50}?(?:mattermost)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{26})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["mattermost"], entropy: 0 },
139
+ { id: "maxmind-license-key", regex: "\\b([A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["_mmk"], entropy: 4 },
140
+ { id: "messagebird-api-token", regex: "(?i)[\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["messagebird", "message-bird", "message_bird"], entropy: 0 },
141
+ { id: "messagebird-client-id", regex: "(?i)[\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["messagebird", "message-bird", "message_bird"], entropy: 0 },
142
+ { id: "microsoft-teams-webhook", regex: "https://[a-z0-9]+\\.webhook\\.office\\.com/webhookb2/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", keywords: ["webhook.office.com", "webhookb2", "incomingwebhook"], entropy: 0 },
143
+ { id: "netlify-access-token", regex: "(?i)[\\w.-]{0,50}?(?:netlify)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{40,46})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["netlify"], entropy: 0 },
144
+ { id: "new-relic-browser-api-token", regex: "(?i)[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRJS-[a-f0-9]{19})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["nrjs-"], entropy: 0 },
145
+ { id: "new-relic-insert-key", regex: "(?i)[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRII-[a-z0-9-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["nrii-"], entropy: 0 },
146
+ { id: "new-relic-user-api-id", regex: "(?i)[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["new-relic", "newrelic", "new_relic"], entropy: 0 },
147
+ { id: "new-relic-user-api-key", regex: "(?i)[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRAK-[a-z0-9]{27})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["nrak"], entropy: 0 },
148
+ { id: "notion-api-token", regex: "\\b(ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["ntn_"], entropy: 4 },
149
+ { id: "npm-access-token", regex: "(?i)\\b(npm_[a-z0-9]{36})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["npm_"], entropy: 2 },
150
+ { id: "nuget-config-password", regex: "(?i)<add key=\\\"(?:(?:ClearText)?Password)\\\"\\s*value=\\\"(.{8,})\\\"\\s*/>", keywords: ["<add key="], entropy: 1 },
151
+ { id: "nytimes-access-token", regex: "(?i)[\\w.-]{0,50}?(?:nytimes|new-york-times,|newyorktimes)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["nytimes", "new-york-times", "newyorktimes"], entropy: 0 },
152
+ { id: "octopus-deploy-api-key", regex: "\\b(API-[A-Z0-9]{26})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["api-"], entropy: 3 },
153
+ { id: "okta-access-token", regex: "[\\w.-]{0,50}?(?i:[\\w.-]{0,50}?(?:(?-i:[Oo]kta|OKTA))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(00[\\w=\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["okta"], entropy: 4 },
154
+ { id: "openai-api-key", regex: "\\b(sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})\\b|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["t3blbkfj"], entropy: 3 },
155
+ { id: "openshift-user-token", regex: "\\b(sha256~[\\w-]{43})(?:[^\\w-]|\\z)", keywords: ["sha256~"], entropy: 3.5 },
156
+ { id: "perplexity-api-key", regex: "\\b(pplx-[a-zA-Z0-9]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$|\\b)", keywords: ["pplx-"], entropy: 4 },
157
+ { id: "pkcs12-file", regex: "", keywords: [], entropy: 0 },
158
+ { id: "plaid-api-token", regex: "(?i)[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["plaid"], entropy: 0 },
159
+ { id: "plaid-client-id", regex: "(?i)[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["plaid"], entropy: 3.5 },
160
+ { id: "plaid-secret-key", regex: "(?i)[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["plaid"], entropy: 3.5 },
161
+ { id: "planetscale-api-token", regex: "\\b(pscale_tkn_(?i)[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["pscale_tkn_"], entropy: 3 },
162
+ { id: "planetscale-oauth-token", regex: "\\b(pscale_oauth_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["pscale_oauth_"], entropy: 3 },
163
+ { id: "planetscale-password", regex: "(?i)\\b(pscale_pw_(?i)[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["pscale_pw_"], entropy: 3 },
164
+ { id: "postman-api-token", regex: "\\b(PMAK-(?i)[a-f0-9]{24}\\-[a-f0-9]{34})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["pmak-"], entropy: 3 },
165
+ { id: "prefect-api-token", regex: "\\b(pnu_[a-zA-Z0-9]{36})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["pnu_"], entropy: 2 },
166
+ { id: "private-key", regex: "(?i)-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[\\s\\S-]{64,}?KEY(?: BLOCK)?-----", keywords: ["-----begin"], entropy: 0 },
167
+ { id: "privateai-api-token", regex: "[\\w.-]{0,50}?(?i:[\\w.-]{0,50}?(?:private[_-]?ai)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["privateai", "private_ai", "private-ai"], entropy: 3 },
168
+ { id: "pulumi-api-token", regex: "\\b(pul-[a-f0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["pul-"], entropy: 2 },
169
+ { id: "pypi-upload-token", regex: "pypi-AgEIcHlwaS5vcmc[\\w-]{50,1000}", keywords: ["pypi-ageichlwas5vcmc"], entropy: 3 },
170
+ { id: "rapidapi-access-token", regex: "(?i)[\\w.-]{0,50}?(?:rapidapi)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{50})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["rapidapi"], entropy: 0 },
171
+ { id: "readme-api-token", regex: "\\b(rdme_[a-z0-9]{70})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["rdme_"], entropy: 2 },
172
+ { id: "rubygems-api-token", regex: "\\b(rubygems_[a-f0-9]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["rubygems_"], entropy: 2 },
173
+ { id: "scalingo-api-token", regex: "\\b(tk-us-[\\w-]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["tk-us-"], entropy: 2 },
174
+ { id: "sendbird-access-id", regex: "(?i)[\\w.-]{0,50}?(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sendbird"], entropy: 0 },
175
+ { id: "sendbird-access-token", regex: "(?i)[\\w.-]{0,50}?(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sendbird"], entropy: 0 },
176
+ { id: "sendgrid-api-token", regex: "\\b(SG\\.(?i)[a-z0-9=_\\-\\.]{66})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sg."], entropy: 2 },
177
+ { id: "sendinblue-api-token", regex: "\\b(xkeysib-[a-f0-9]{64}\\-(?i)[a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["xkeysib-"], entropy: 2 },
178
+ { id: "sentry-access-token", regex: "(?i)[\\w.-]{0,50}?(?:sentry)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sentry"], entropy: 3 },
179
+ { id: "sentry-org-token", regex: "\\bsntrys_eyJpYXQiO[a-zA-Z0-9+/]{10,200}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10,200}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|\\z)", keywords: ["sntrys_eyjpyxqio"], entropy: 4.5 },
180
+ { id: "sentry-user-token", regex: "\\b(sntryu_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sntryu_"], entropy: 3.5 },
181
+ { id: "settlemint-application-access-token", regex: "\\b(sm_aat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sm_aat"], entropy: 3 },
182
+ { id: "settlemint-personal-access-token", regex: "\\b(sm_pat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sm_pat"], entropy: 3 },
183
+ { id: "settlemint-service-access-token", regex: "\\b(sm_sat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sm_sat"], entropy: 3 },
184
+ { id: "shippo-api-token", regex: "\\b(shippo_(?:live|test)_[a-fA-F0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["shippo_"], entropy: 2 },
185
+ { id: "shopify-access-token", regex: "shpat_[a-fA-F0-9]{32}", keywords: ["shpat_"], entropy: 2 },
186
+ { id: "shopify-custom-access-token", regex: "shpca_[a-fA-F0-9]{32}", keywords: ["shpca_"], entropy: 2 },
187
+ { id: "shopify-private-app-access-token", regex: "shppa_[a-fA-F0-9]{32}", keywords: ["shppa_"], entropy: 2 },
188
+ { id: "shopify-shared-secret", regex: "shpss_[a-fA-F0-9]{32}", keywords: ["shpss_"], entropy: 2 },
189
+ { id: "sidekiq-secret", regex: "(?i)[\\w.-]{0,50}?(?:BUNDLE_ENTERPRISE__CONTRIBSYS__COM|BUNDLE_GEMS__CONTRIBSYS__COM)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{8}:[a-f0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["bundle_enterprise__contribsys__com", "bundle_gems__contribsys__com"], entropy: 0 },
190
+ { id: "sidekiq-sensitive-url", regex: "(?i)\\bhttps?://([a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\/|\\#|\\?|:]|$)", keywords: ["gems.contribsys.com", "enterprise.contribsys.com"], entropy: 0 },
191
+ { id: "slack-app-token", regex: "(?i)xapp-\\d-[A-Z0-9]+-\\d+-[a-z0-9]+", keywords: ["xapp"], entropy: 2 },
192
+ { id: "slack-bot-token", regex: "xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*", keywords: ["xoxb"], entropy: 3 },
193
+ { id: "slack-config-access-token", regex: "(?i)xoxe.xox[bp]-\\d-[A-Z0-9]{163,166}", keywords: ["xoxe.xoxb-", "xoxe.xoxp-"], entropy: 2 },
194
+ { id: "slack-config-refresh-token", regex: "(?i)xoxe-\\d-[A-Z0-9]{146}", keywords: ["xoxe-"], entropy: 2 },
195
+ { id: "slack-legacy-bot-token", regex: "xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}", keywords: ["xoxb"], entropy: 2 },
196
+ { id: "slack-legacy-token", regex: "xox[os]-\\d+-\\d+-\\d+-[a-fA-F\\d]+", keywords: ["xoxo", "xoxs"], entropy: 2 },
197
+ { id: "slack-legacy-workspace-token", regex: "xox[ar]-(?:\\d-)?[0-9a-zA-Z]{8,48}", keywords: ["xoxa", "xoxr"], entropy: 2 },
198
+ { id: "slack-user-token", regex: "xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}", keywords: ["xoxp-", "xoxe-"], entropy: 2 },
199
+ { id: "slack-webhook-url", regex: "(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}", keywords: ["hooks.slack.com"], entropy: 0 },
200
+ { id: "snyk-api-token", regex: "(?i)[\\w.-]{0,50}?(?:snyk[_.-]?(?:(?:api|oauth)[_.-]?)?(?:key|token))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["snyk"], entropy: 0 },
201
+ { id: "sonar-api-token", regex: "(?i)[\\w.-]{0,50}?(?:sonar[_.-]?(login|token))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((?:squ_|sqp_|sqa_)?[a-z0-9=_\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sonar"], entropy: 0 },
202
+ { id: "sourcegraph-access-token", regex: "(?i)\\b(\\b(sgp_(?:[a-fA-F0-9]{16}|local)_[a-fA-F0-9]{40}|sgp_[a-fA-F0-9]{40}|[a-fA-F0-9]{40})\\b)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sgp_", "sourcegraph"], entropy: 3 },
203
+ { id: "square-access-token", regex: "\\b((?:EAAA|sq0atp-)[\\w-]{22,60})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sq0atp-", "eaaa"], entropy: 2 },
204
+ { id: "squarespace-access-token", regex: "(?i)[\\w.-]{0,50}?(?:squarespace)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["squarespace"], entropy: 0 },
205
+ { id: "stripe-access-token", regex: "\\b((?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sk_test", "sk_live", "sk_prod", "rk_test", "rk_live", "rk_prod"], entropy: 2 },
206
+ { id: "sumologic-access-id", regex: "[\\w.-]{0,50}?(?i:[\\w.-]{0,50}?(?:(?-i:[Ss]umo|SUMO))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(su[a-zA-Z0-9]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sumo"], entropy: 3 },
207
+ { id: "sumologic-access-token", regex: "(?i)[\\w.-]{0,50}?(?:(?-i:[Ss]umo|SUMO))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["sumo"], entropy: 3 },
208
+ { id: "telegram-bot-api-token", regex: "(?i)[\\w.-]{0,50}?(?:telegr)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{5,16}:(?-i:A)[a-z0-9_\\-]{34})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["telegr"], entropy: 0 },
209
+ { id: "travisci-access-token", regex: "(?i)[\\w.-]{0,50}?(?:travis)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{22})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["travis"], entropy: 0 },
210
+ { id: "twilio-api-key", regex: "SK[0-9a-fA-F]{32}", keywords: ["sk"], entropy: 3 },
211
+ { id: "twitch-api-token", regex: "(?i)[\\w.-]{0,50}?(?:twitch)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["twitch"], entropy: 0 },
212
+ { id: "twitter-access-secret", regex: "(?i)[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{45})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["twitter"], entropy: 0 },
213
+ { id: "twitter-access-token", regex: "(?i)[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{15,25}-[a-zA-Z0-9]{20,40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["twitter"], entropy: 0 },
214
+ { id: "twitter-api-key", regex: "(?i)[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["twitter"], entropy: 0 },
215
+ { id: "twitter-api-secret", regex: "(?i)[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{50})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["twitter"], entropy: 0 },
216
+ { id: "twitter-bearer-token", regex: "(?i)[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(A{22}[a-zA-Z0-9%]{80,100})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["twitter"], entropy: 0 },
217
+ { id: "typeform-api-token", regex: "(?i)[\\w.-]{0,50}?(?:typeform)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(tfp_[a-z0-9\\-_\\.=]{59})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["tfp_"], entropy: 0 },
218
+ { id: "vault-batch-token", regex: "\\b(hvb\\.[\\w-]{138,300})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["hvb."], entropy: 4 },
219
+ { id: "vault-service-token", regex: "\\b((?:hvs\\.[\\w-]{90,120}|s\\.(?i:[a-z0-9]{24})))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["hvs.", "s."], entropy: 3.5 },
220
+ { id: "yandex-access-token", regex: "(?i)[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(t1\\.[A-Z0-9a-z_-]+[=]{0,2}\\.[A-Z0-9a-z_-]{86}[=]{0,2})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["yandex"], entropy: 0 },
221
+ { id: "yandex-api-key", regex: "(?i)[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(AQVN[A-Za-z0-9_\\-]{35,38})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["yandex"], entropy: 0 },
222
+ { id: "yandex-aws-access-token", regex: "(?i)[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(YC[a-zA-Z0-9_\\-]{38})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["yandex"], entropy: 0 },
223
+ { id: "zendesk-secret-key", regex: "(?i)[\\w.-]{0,50}?(?:zendesk)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", keywords: ["zendesk"], entropy: 0 },
224
+ ];
225
+ /** Value-level stopwords: if a candidate secret contains one of these, it is a false positive. */
226
+ export const GITLEAKS_STOPWORDS = ["014df517-39d1-4453-b7b3-9930c563627c", "abcdefghijklmnopqrstuvwxyz"];
227
+ /** Value-level allow regexes: a candidate matching one of these is NOT a secret. */
228
+ export const GITLEAKS_ALLOW_REGEXES = ["(?i)^true|false|null$", "^(?i:a+|b+|c+|d+|e+|f+|g+|h+|i+|j+|k+|l+|m+|n+|o+|p+|q+|r+|s+|t+|u+|v+|w+|x+|y+|z+|\\*+|\\.+)$", "^\\$(?:\\d+|{\\d+})$", "^\\$(?:[A-Z_]+|[a-z_]+)$", "^\\${(?:[A-Z_]+|[a-z_]+)}$", "^\\{\\{[ \\t]*[\\w ().|]+[ \\t]*}}$", "^\\$\\{\\{[ \\t]*(?:(?:env|github|secrets|vars)(?:\\.[A-Za-z]\\w+)+[\\w \"'&./=|]*)[ \\t]*}}$", "^%(?:[A-Z_]+|[a-z_]+)%$", "^%[+\\-# 0]?[bcdeEfFgGoOpqstTUvxX]$", "^\\{\\d{0,2}}$", "^@(?:[A-Z_]+|[a-z_]+)@$", "^/Users/(?i)[a-z0-9]+/[\\w .-/]+$", "^/(?:bin|etc|home|opt|tmp|usr|var)/[\\w ./-]+$"];
229
+ //# sourceMappingURL=gitleaks-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitleaks-rules.js","sourceRoot":"","sources":["../../src/detect/gitleaks-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** Compile the pattern set. Call once at gateway startup, after `initLinearRegex()` resolves. */
2
+ export declare function compileInjectionPatterns(): void;
3
+ /** Whether the patterns are compiled (the RE2 engine was initialized). */
4
+ export declare function injectionPatternsReady(): boolean;
5
+ /**
6
+ * The ids of the injection patterns that match `text`. Empty when nothing matches OR when the engine
7
+ * was never initialized (Step-9 is then skipped — the deterministic Layer-1 steps still ran).
8
+ */
9
+ export declare function scanInjectionPatterns(text: string): string[];
10
+ //# sourceMappingURL=injection-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-patterns.d.ts","sourceRoot":"","sources":["../../src/detect/injection-patterns.ts"],"names":[],"mappings":"AAmCA,iGAAiG;AACjG,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO5D"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * M9-IN-001 Step-9 — deterministic injection-pattern matching (attack-corpus §1.6).
3
+ *
4
+ * Runs the known role-marker / override / jailbreak / boundary patterns against the DECODED form of
5
+ * an inbound message (decode-then-rescan), via the RE2 engine so a crafted message can never cause
6
+ * catastrophic backtracking (AC-002). These are HIGH-SIGNAL but deterministic, so Step-9 reports the
7
+ * matches as a signal in the inbound security context (the agent + the Layer-2 semantic scanner /
8
+ * the operator's policy decide what to do) — it is not, by itself, an auto-block. CELLO is not a
9
+ * moderation tool; this surfaces evidence, it does not police content.
10
+ *
11
+ * Patterns are RE2 syntax (no backreferences / lookaround — RE2 has none, and they are what make
12
+ * backtracking possible). Compile once at gateway startup, after initLinearRegex().
13
+ */
14
+ import { LinearRegex } from "./linear-regex.js";
15
+ let compiled = null;
16
+ const PATTERN_SOURCES = [
17
+ // Role-hijacking / chat-template markers (the delimiter tokens from instruction-tuned training).
18
+ { id: "role_marker", src: "\\[/?(?:system|inst|sys)\\]|<\\|im_(?:start|end)\\|>|<\\|(?:system|user|assistant)\\|>|<</?sys>>|\\bsystem prompt:" },
19
+ // Override commands.
20
+ { id: "override", src: "(?:ignore|disregard|forget)\\s+(?:all\\s+|your\\s+|the\\s+|any\\s+|previously\\s+)*(?:previous|prior|above|earlier|the)\\s+(?:instructions|prompts?|context|messages?|rules?|directions?)" },
21
+ { id: "override_explicit", src: "forget everything (?:above|before)|your new instructions are|new[_ ]paradigm" },
22
+ // Persona replacement / mode unlocks.
23
+ { id: "persona", src: "\\byou are now\\b|\\bdeveloper mode\\b|\\bdo anything now\\b|\\bDAN mode\\b" },
24
+ // Jailbreak structural markers (L1B3RT4S).
25
+ { id: "jailbreak", src: "jailbreak\\s*[:>]|<jailbreak>|\\[liberated\\]|<new_paradigm>" },
26
+ // Fake turn-boundary injection.
27
+ { id: "boundary", src: "-{3,}\\s*end of (?:user|system) (?:message|prompt)|={3,}\\s*end system prompt" },
28
+ // Leetspeak variants (1337.mkd).
29
+ { id: "leetspeak", src: "1gn0r3\\s+pr3v10u5|\\bsy5t3m\\s*:" },
30
+ ];
31
+ /** Compile the pattern set. Call once at gateway startup, after `initLinearRegex()` resolves. */
32
+ export function compileInjectionPatterns() {
33
+ compiled = PATTERN_SOURCES.map(({ id, src }) => ({ id, re: new LinearRegex(src, "i") }));
34
+ }
35
+ /** Whether the patterns are compiled (the RE2 engine was initialized). */
36
+ export function injectionPatternsReady() {
37
+ return compiled !== null;
38
+ }
39
+ /**
40
+ * The ids of the injection patterns that match `text`. Empty when nothing matches OR when the engine
41
+ * was never initialized (Step-9 is then skipped — the deterministic Layer-1 steps still ran).
42
+ */
43
+ export function scanInjectionPatterns(text) {
44
+ if (!compiled)
45
+ return [];
46
+ const hits = [];
47
+ for (const { id, re } of compiled) {
48
+ if (re.test(text))
49
+ hits.push(id);
50
+ }
51
+ return hits;
52
+ }
53
+ //# sourceMappingURL=injection-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-patterns.js","sourceRoot":"","sources":["../../src/detect/injection-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,IAAI,QAAQ,GAA6B,IAAI,CAAC;AAE9C,MAAM,eAAe,GAAuC;IAC1D,iGAAiG;IACjG,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,oHAAoH,EAAE;IAChJ,qBAAqB;IACrB,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,2LAA2L,EAAE;IACpN,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,8EAA8E,EAAE;IAChH,sCAAsC;IACtC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,6EAA6E,EAAE;IACrG,2CAA2C;IAC3C,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,8DAA8D,EAAE;IACxF,gCAAgC;IAChC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,+EAA+E,EAAE;IACxG,iCAAiC;IACjC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,mCAAmC,EAAE;CAC9D,CAAC;AAEF,iGAAiG;AACjG,MAAM,UAAU,wBAAwB;IACtC,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB;IACpC,OAAO,QAAQ,KAAK,IAAI,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,QAAQ,EAAE,CAAC;QAClC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * M9-IN-002 — inbound Layer-2 semantic injection scanner.
3
+ *
4
+ * Classifies the SANITIZED inbound text (from M9-IN-001) with an in-process DeBERTa-v3-small model
5
+ * (protectai/deberta-v3-small-prompt-injection-v2, fp32 ONNX — Andre 2026-06-23), catching prompt
6
+ * injections that survive deterministic Layer-1 sanitization. No network call during inference: the
7
+ * model is pre-downloaded weights loaded into process memory (SI-001 / INV-1).
8
+ *
9
+ * The model is NOT bundled (it is large): it is downloaded once with explicit operator consent +
10
+ * a pinned SHA-256 (see model-installer.ts). When it is absent, Layer-2 is OFF and Layer-1 still
11
+ * runs — the gateway degrades gracefully, it never fails closed on a missing optional model.
12
+ *
13
+ * The classifier is injected behind `InjectionClassifier` so the verdict logic here is pure and
14
+ * unit-tested without the model; the real classifier (transformers.js over the local ONNX) is the
15
+ * production implementation and is exercised by a gated real-inference test.
16
+ */
17
+ export type InjectionVerdict = "block" | "flag" | "pass";
18
+ /** Score thresholds (0–100). Score GOVERNS the verdict — a label that disagrees never overrides it. */
19
+ export declare const BLOCK_THRESHOLD = 70;
20
+ export declare const FLAG_THRESHOLD = 35;
21
+ export declare function scoreToVerdict(score: number): InjectionVerdict;
22
+ /** The pluggable model. `injectionProbability` is the model's P(injection) in [0,1]. */
23
+ export interface InjectionClassifier {
24
+ classify(text: string): Promise<{
25
+ injectionProbability: number;
26
+ label?: string;
27
+ }>;
28
+ }
29
+ export interface ScanResult {
30
+ /** false when Layer-2 is off (no model/runtime) — Layer-1 still ran; the message is not blocked here. */
31
+ available: boolean;
32
+ score?: number;
33
+ verdict?: InjectionVerdict;
34
+ /** The model's raw label (informational only — the SCORE governs the verdict, AC-003). */
35
+ label?: string;
36
+ }
37
+ export declare class InjectionScanner {
38
+ #private;
39
+ /** @param classifier the in-process model, or null when Layer-2 is unavailable (graceful degrade). */
40
+ constructor(classifier: InjectionClassifier | null);
41
+ available(): boolean;
42
+ scan(text: string): Promise<ScanResult>;
43
+ }
44
+ //# sourceMappingURL=injection-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-scanner.d.ts","sourceRoot":"","sources":["../../src/detect/injection-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,uGAAuG;AACvG,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAI9D;AAED,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,oBAAoB,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,UAAU;IACzB,yGAAyG;IACzG,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;;IAG3B,sGAAsG;gBAC1F,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAIlD,SAAS,IAAI,OAAO;IAId,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAO9C"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * M9-IN-002 — inbound Layer-2 semantic injection scanner.
3
+ *
4
+ * Classifies the SANITIZED inbound text (from M9-IN-001) with an in-process DeBERTa-v3-small model
5
+ * (protectai/deberta-v3-small-prompt-injection-v2, fp32 ONNX — Andre 2026-06-23), catching prompt
6
+ * injections that survive deterministic Layer-1 sanitization. No network call during inference: the
7
+ * model is pre-downloaded weights loaded into process memory (SI-001 / INV-1).
8
+ *
9
+ * The model is NOT bundled (it is large): it is downloaded once with explicit operator consent +
10
+ * a pinned SHA-256 (see model-installer.ts). When it is absent, Layer-2 is OFF and Layer-1 still
11
+ * runs — the gateway degrades gracefully, it never fails closed on a missing optional model.
12
+ *
13
+ * The classifier is injected behind `InjectionClassifier` so the verdict logic here is pure and
14
+ * unit-tested without the model; the real classifier (transformers.js over the local ONNX) is the
15
+ * production implementation and is exercised by a gated real-inference test.
16
+ */
17
+ /** Score thresholds (0–100). Score GOVERNS the verdict — a label that disagrees never overrides it. */
18
+ export const BLOCK_THRESHOLD = 70;
19
+ export const FLAG_THRESHOLD = 35;
20
+ export function scoreToVerdict(score) {
21
+ if (score >= BLOCK_THRESHOLD)
22
+ return "block";
23
+ if (score >= FLAG_THRESHOLD)
24
+ return "flag";
25
+ return "pass";
26
+ }
27
+ export class InjectionScanner {
28
+ #classifier;
29
+ /** @param classifier the in-process model, or null when Layer-2 is unavailable (graceful degrade). */
30
+ constructor(classifier) {
31
+ this.#classifier = classifier;
32
+ }
33
+ available() {
34
+ return this.#classifier !== null;
35
+ }
36
+ async scan(text) {
37
+ if (!this.#classifier)
38
+ return { available: false };
39
+ const { injectionProbability, label } = await this.#classifier.classify(text);
40
+ const score = Math.round(Math.max(0, Math.min(1, injectionProbability)) * 100);
41
+ // The score governs the verdict (AC-003): a model `label` of SAFE with a high score still blocks.
42
+ return { available: true, score, verdict: scoreToVerdict(score), label };
43
+ }
44
+ }
45
+ //# sourceMappingURL=injection-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-scanner.js","sourceRoot":"","sources":["../../src/detect/injection-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,uGAAuG;AACvG,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,IAAI,eAAe;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,KAAK,IAAI,cAAc;QAAE,OAAO,MAAM,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD,MAAM,OAAO,gBAAgB;IAClB,WAAW,CAA6B;IAEjD,sGAAsG;IACtG,YAAY,UAAsC;QAChD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnD,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC/E,kGAAkG;QAClG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;CACF"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * M9-IN-003 — inbound language allowlist (default: English).
3
+ *
4
+ * Holds inbound content confidently in a non-allowlisted language, so a jailbreak phrased in a
5
+ * low-resource language can't dodge English-trained screening — WITHOUT blocking legitimate short
6
+ * messages on a guess (AC-002), and with no model and no network call (INV-1).
7
+ *
8
+ * v1 uses dominant Unicode SCRIPT (the story's "script inspection covers most of it"): a message
9
+ * confidently dominated by a non-Latin script (Cyrillic, Greek, Arabic, Hebrew, CJK, Devanagari,
10
+ * Thai, …) is outside the {English=Latin} allowlist and is held. Latin-script text is allowed —
11
+ * distinguishing Latin-script LANGUAGES (English vs French/Spanish) needs a trained classifier and
12
+ * is a separate design session (Andre, 2026-06-23). Short / low-letter-count messages are allowed.
13
+ *
14
+ * This is the DETECTOR. Delivering the held note to the operator + the terminal-block inbound
15
+ * handling (ack-and-record without delivering, distinct from the transient fail-closed hold) is the
16
+ * integration step (M9-FEED-001 / the gate / the L4 terminal-vs-transient split).
17
+ */
18
+ /** A coarse script bucket. `latin` is the default allowlist; everything else is a non-Latin script. */
19
+ export type Script = "latin" | "cyrillic" | "greek" | "arabic" | "hebrew" | "han" | "kana" | "hangul" | "devanagari" | "thai" | "other";
20
+ export interface LanguageVerdict {
21
+ /** false → held (confident non-allowlisted language). */
22
+ allowed: boolean;
23
+ /** The dominant non-allowlisted script, when held. */
24
+ script?: Script;
25
+ /** A legible note naming the script + how to allow it (held messages only). */
26
+ reason?: string;
27
+ }
28
+ export interface LanguageOptions {
29
+ /** Allowed scripts. Default ["latin"] (English). */
30
+ allow?: Script[];
31
+ /** Minimum letter count to make a confident call. Below this, always allow (AC-002). Default 12. */
32
+ minLetters?: number;
33
+ /** Minimum dominant-script share to hold. Default 0.5. */
34
+ minShare?: number;
35
+ }
36
+ export declare function screenInboundLanguage(text: string, opts?: LanguageOptions): LanguageVerdict;
37
+ //# sourceMappingURL=language.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/detect/language.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,uGAAuG;AACvG,MAAM,MAAM,MAAM,GACd,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAChF,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,eAAe,CAgC/F"}