bla-agents 1.1.0 → 1.6.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 (279) hide show
  1. package/.agents/skills/blind-llm-agents/SKILL.md +20 -14
  2. package/DISCLAIMER.md +15 -7
  3. package/README.md +153 -198
  4. package/dist/bundler/index.d.ts +19 -2
  5. package/dist/bundler/index.d.ts.map +1 -1
  6. package/dist/bundler/index.js +47 -4
  7. package/dist/bundler/index.js.map +1 -1
  8. package/dist/cli.d.ts +5 -0
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +123 -18
  11. package/dist/cli.js.map +1 -1
  12. package/dist/core/config.d.ts +54 -0
  13. package/dist/core/config.d.ts.map +1 -0
  14. package/dist/core/config.js +160 -0
  15. package/dist/core/config.js.map +1 -0
  16. package/dist/core/coverage-contract.d.ts +97 -0
  17. package/dist/core/coverage-contract.d.ts.map +1 -0
  18. package/dist/core/coverage-contract.js +164 -0
  19. package/dist/core/coverage-contract.js.map +1 -0
  20. package/dist/core/debug-posture.d.ts +40 -0
  21. package/dist/core/debug-posture.d.ts.map +1 -0
  22. package/dist/core/debug-posture.js +197 -0
  23. package/dist/core/debug-posture.js.map +1 -0
  24. package/dist/core/detector.d.ts.map +1 -1
  25. package/dist/core/detector.js +58 -6
  26. package/dist/core/detector.js.map +1 -1
  27. package/dist/core/identifiers.d.ts +32 -0
  28. package/dist/core/identifiers.d.ts.map +1 -0
  29. package/dist/core/identifiers.js +263 -0
  30. package/dist/core/identifiers.js.map +1 -0
  31. package/dist/core/llm-directives.d.ts +12 -0
  32. package/dist/core/llm-directives.d.ts.map +1 -0
  33. package/dist/core/llm-directives.js +23 -0
  34. package/dist/core/llm-directives.js.map +1 -0
  35. package/dist/core/prng.d.ts +10 -1
  36. package/dist/core/prng.d.ts.map +1 -1
  37. package/dist/core/prng.js +27 -2
  38. package/dist/core/prng.js.map +1 -1
  39. package/dist/core/release-exposure.d.ts.map +1 -1
  40. package/dist/core/release-exposure.js +13 -2
  41. package/dist/core/release-exposure.js.map +1 -1
  42. package/dist/core/release-plan.d.ts +68 -0
  43. package/dist/core/release-plan.d.ts.map +1 -0
  44. package/dist/core/release-plan.js +244 -0
  45. package/dist/core/release-plan.js.map +1 -0
  46. package/dist/core/sarif.d.ts +53 -0
  47. package/dist/core/sarif.d.ts.map +1 -0
  48. package/dist/core/sarif.js +95 -0
  49. package/dist/core/sarif.js.map +1 -0
  50. package/dist/core/sqlite-runtime.d.ts +13 -0
  51. package/dist/core/sqlite-runtime.d.ts.map +1 -1
  52. package/dist/core/sqlite-runtime.js +38 -8
  53. package/dist/core/sqlite-runtime.js.map +1 -1
  54. package/dist/core/types.d.ts +7 -2
  55. package/dist/core/types.d.ts.map +1 -1
  56. package/dist/engine/auditor.d.ts.map +1 -1
  57. package/dist/engine/auditor.js +380 -19
  58. package/dist/engine/auditor.js.map +1 -1
  59. package/dist/engine/benchmark.d.ts +1 -1
  60. package/dist/engine/benchmark.d.ts.map +1 -1
  61. package/dist/engine/benchmark.js +121 -41
  62. package/dist/engine/benchmark.js.map +1 -1
  63. package/dist/engine/defender.d.ts +1 -0
  64. package/dist/engine/defender.d.ts.map +1 -1
  65. package/dist/engine/defender.js +7 -1
  66. package/dist/engine/defender.js.map +1 -1
  67. package/dist/engine/harden.d.ts +61 -0
  68. package/dist/engine/harden.d.ts.map +1 -0
  69. package/dist/engine/harden.js +294 -0
  70. package/dist/engine/harden.js.map +1 -0
  71. package/dist/engine/protector.d.ts.map +1 -1
  72. package/dist/engine/protector.js +242 -26
  73. package/dist/engine/protector.js.map +1 -1
  74. package/dist/identity.d.ts +112 -2
  75. package/dist/identity.d.ts.map +1 -1
  76. package/dist/identity.js +112 -2
  77. package/dist/identity.js.map +1 -1
  78. package/dist/index.d.ts +26 -9
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +26 -9
  81. package/dist/index.js.map +1 -1
  82. package/dist/mcp/server.d.ts +59 -152
  83. package/dist/mcp/server.d.ts.map +1 -1
  84. package/dist/mcp/server.js +466 -50
  85. package/dist/mcp/server.js.map +1 -1
  86. package/dist/setup/clients.d.ts +49 -1
  87. package/dist/setup/clients.d.ts.map +1 -1
  88. package/dist/setup/clients.js +1193 -20
  89. package/dist/setup/clients.js.map +1 -1
  90. package/dist/setup/doctor.d.ts +58 -14
  91. package/dist/setup/doctor.d.ts.map +1 -1
  92. package/dist/setup/doctor.js +316 -22
  93. package/dist/setup/doctor.js.map +1 -1
  94. package/dist/setup/setup.d.ts +77 -7
  95. package/dist/setup/setup.d.ts.map +1 -1
  96. package/dist/setup/setup.js +591 -62
  97. package/dist/setup/setup.js.map +1 -1
  98. package/dist/shields/chaff/chaff-generator.d.ts.map +1 -1
  99. package/dist/shields/chaff/chaff-generator.js +12 -3
  100. package/dist/shields/chaff/chaff-generator.js.map +1 -1
  101. package/dist/shields/deception/architecture-mirage.js +1 -1
  102. package/dist/shields/deception/architecture-mirage.js.map +1 -1
  103. package/dist/shields/deception/canary-honeypot.d.ts +33 -0
  104. package/dist/shields/deception/canary-honeypot.d.ts.map +1 -0
  105. package/dist/shields/deception/canary-honeypot.js +95 -0
  106. package/dist/shields/deception/canary-honeypot.js.map +1 -0
  107. package/dist/shields/deception/cognitive-armor-trigger.d.ts +43 -0
  108. package/dist/shields/deception/cognitive-armor-trigger.d.ts.map +1 -0
  109. package/dist/shields/deception/cognitive-armor-trigger.js +204 -0
  110. package/dist/shields/deception/cognitive-armor-trigger.js.map +1 -0
  111. package/dist/shields/deception/crash-trace-decoy.js +1 -1
  112. package/dist/shields/deception/crash-trace-decoy.js.map +1 -1
  113. package/dist/shields/deception/decompiler-illusion.js +1 -1
  114. package/dist/shields/deception/decompiler-illusion.js.map +1 -1
  115. package/dist/shields/deception/diff-noise-injector.js +1 -1
  116. package/dist/shields/deception/diff-noise-injector.js.map +1 -1
  117. package/dist/shields/deception/evidence-contract-poison.js +5 -5
  118. package/dist/shields/deception/evidence-contract-poison.js.map +1 -1
  119. package/dist/shields/deception/format-payloads.d.ts +21 -0
  120. package/dist/shields/deception/format-payloads.d.ts.map +1 -0
  121. package/dist/shields/deception/format-payloads.js +24 -0
  122. package/dist/shields/deception/format-payloads.js.map +1 -0
  123. package/dist/shields/deception/index.d.ts +10 -2
  124. package/dist/shields/deception/index.d.ts.map +1 -1
  125. package/dist/shields/deception/index.js +20 -3
  126. package/dist/shields/deception/index.js.map +1 -1
  127. package/dist/shields/deception/prompt-completion-poison.d.ts +3 -2
  128. package/dist/shields/deception/prompt-completion-poison.d.ts.map +1 -1
  129. package/dist/shields/deception/prompt-completion-poison.js +6 -3
  130. package/dist/shields/deception/prompt-completion-poison.js.map +1 -1
  131. package/dist/shields/deception/shadow-business-logic.js +4 -4
  132. package/dist/shields/deception/shadow-business-logic.js.map +1 -1
  133. package/dist/shields/deception/system-diagnostic-decoy.d.ts +36 -0
  134. package/dist/shields/deception/system-diagnostic-decoy.d.ts.map +1 -0
  135. package/dist/shields/deception/system-diagnostic-decoy.js +101 -0
  136. package/dist/shields/deception/system-diagnostic-decoy.js.map +1 -0
  137. package/dist/shields/exhaustion/asar-header-amplifier.d.ts +12 -3
  138. package/dist/shields/exhaustion/asar-header-amplifier.d.ts.map +1 -1
  139. package/dist/shields/exhaustion/asar-header-amplifier.js +30 -8
  140. package/dist/shields/exhaustion/asar-header-amplifier.js.map +1 -1
  141. package/dist/shields/exhaustion/bpe-token-amplifier.js +2 -2
  142. package/dist/shields/exhaustion/bpe-token-amplifier.js.map +1 -1
  143. package/dist/shields/exhaustion/callgraph-labyrinth.js +2 -2
  144. package/dist/shields/exhaustion/callgraph-labyrinth.js.map +1 -1
  145. package/dist/shields/exhaustion/cdp-shape-budget-breaker.js +1 -1
  146. package/dist/shields/exhaustion/cdp-shape-budget-breaker.js.map +1 -1
  147. package/dist/shields/exhaustion/frida-capture-saturation.d.ts +10 -5
  148. package/dist/shields/exhaustion/frida-capture-saturation.d.ts.map +1 -1
  149. package/dist/shields/exhaustion/frida-capture-saturation.js +21 -8
  150. package/dist/shields/exhaustion/frida-capture-saturation.js.map +1 -1
  151. package/dist/shields/exhaustion/index.d.ts +2 -2
  152. package/dist/shields/exhaustion/index.d.ts.map +1 -1
  153. package/dist/shields/exhaustion/index.js +2 -2
  154. package/dist/shields/exhaustion/index.js.map +1 -1
  155. package/dist/shields/exhaustion/obligation-flooder.d.ts +23 -6
  156. package/dist/shields/exhaustion/obligation-flooder.d.ts.map +1 -1
  157. package/dist/shields/exhaustion/obligation-flooder.js +29 -12
  158. package/dist/shields/exhaustion/obligation-flooder.js.map +1 -1
  159. package/dist/shields/exhaustion/rea-budget-matrix.d.ts +8 -2
  160. package/dist/shields/exhaustion/rea-budget-matrix.d.ts.map +1 -1
  161. package/dist/shields/exhaustion/rea-budget-matrix.js +139 -16
  162. package/dist/shields/exhaustion/rea-budget-matrix.js.map +1 -1
  163. package/dist/shields/exhaustion/regex-worker-tarpit.d.ts.map +1 -1
  164. package/dist/shields/exhaustion/regex-worker-tarpit.js +2 -1
  165. package/dist/shields/exhaustion/regex-worker-tarpit.js.map +1 -1
  166. package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts +7 -4
  167. package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts.map +1 -1
  168. package/dist/shields/exhaustion/wasm-interface-exhaustion.js +16 -7
  169. package/dist/shields/exhaustion/wasm-interface-exhaustion.js.map +1 -1
  170. package/dist/shields/formats/android-dex-xref.d.ts +19 -0
  171. package/dist/shields/formats/android-dex-xref.d.ts.map +1 -0
  172. package/dist/shields/formats/android-dex-xref.js +427 -0
  173. package/dist/shields/formats/android-dex-xref.js.map +1 -0
  174. package/dist/shields/formats/android-manifest.d.ts +44 -0
  175. package/dist/shields/formats/android-manifest.d.ts.map +1 -0
  176. package/dist/shields/formats/android-manifest.js +240 -0
  177. package/dist/shields/formats/android-manifest.js.map +1 -0
  178. package/dist/shields/formats/android-r8.d.ts +44 -0
  179. package/dist/shields/formats/android-r8.d.ts.map +1 -0
  180. package/dist/shields/formats/android-r8.js +246 -0
  181. package/dist/shields/formats/android-r8.js.map +1 -0
  182. package/dist/shields/formats/apple-plist.d.ts +15 -0
  183. package/dist/shields/formats/apple-plist.d.ts.map +1 -1
  184. package/dist/shields/formats/apple-plist.js +59 -1
  185. package/dist/shields/formats/apple-plist.js.map +1 -1
  186. package/dist/shields/formats/archive.d.ts +27 -6
  187. package/dist/shields/formats/archive.d.ts.map +1 -1
  188. package/dist/shields/formats/archive.js +247 -45
  189. package/dist/shields/formats/archive.js.map +1 -1
  190. package/dist/shields/formats/asar.d.ts +50 -10
  191. package/dist/shields/formats/asar.d.ts.map +1 -1
  192. package/dist/shields/formats/asar.js +265 -39
  193. package/dist/shields/formats/asar.js.map +1 -1
  194. package/dist/shields/formats/bun-standalone.d.ts +78 -0
  195. package/dist/shields/formats/bun-standalone.d.ts.map +1 -0
  196. package/dist/shields/formats/bun-standalone.js +272 -0
  197. package/dist/shields/formats/bun-standalone.js.map +1 -0
  198. package/dist/shields/formats/dotnet-managed.d.ts +9 -0
  199. package/dist/shields/formats/dotnet-managed.d.ts.map +1 -1
  200. package/dist/shields/formats/dotnet-managed.js +26 -1
  201. package/dist/shields/formats/dotnet-managed.js.map +1 -1
  202. package/dist/shields/formats/electron-fuses.d.ts +63 -8
  203. package/dist/shields/formats/electron-fuses.d.ts.map +1 -1
  204. package/dist/shields/formats/electron-fuses.js +297 -65
  205. package/dist/shields/formats/electron-fuses.js.map +1 -1
  206. package/dist/shields/formats/erlang-beam.d.ts +34 -0
  207. package/dist/shields/formats/erlang-beam.d.ts.map +1 -0
  208. package/dist/shields/formats/erlang-beam.js +319 -0
  209. package/dist/shields/formats/erlang-beam.js.map +1 -0
  210. package/dist/shields/formats/evm-bytecode.d.ts +28 -0
  211. package/dist/shields/formats/evm-bytecode.d.ts.map +1 -0
  212. package/dist/shields/formats/evm-bytecode.js +124 -0
  213. package/dist/shields/formats/evm-bytecode.js.map +1 -0
  214. package/dist/shields/formats/go-flutter-exhaustion.d.ts +55 -0
  215. package/dist/shields/formats/go-flutter-exhaustion.d.ts.map +1 -0
  216. package/dist/shields/formats/go-flutter-exhaustion.js +346 -0
  217. package/dist/shields/formats/go-flutter-exhaustion.js.map +1 -0
  218. package/dist/shields/formats/gpu-ptx.d.ts +40 -0
  219. package/dist/shields/formats/gpu-ptx.d.ts.map +1 -0
  220. package/dist/shields/formats/gpu-ptx.js +62 -0
  221. package/dist/shields/formats/gpu-ptx.js.map +1 -0
  222. package/dist/shields/formats/headers.d.ts.map +1 -1
  223. package/dist/shields/formats/headers.js +54 -14
  224. package/dist/shields/formats/headers.js.map +1 -1
  225. package/dist/shields/formats/jvm-bytecode.d.ts +20 -0
  226. package/dist/shields/formats/jvm-bytecode.d.ts.map +1 -0
  227. package/dist/shields/formats/jvm-bytecode.js +134 -0
  228. package/dist/shields/formats/jvm-bytecode.js.map +1 -0
  229. package/dist/shields/formats/mobile-game.d.ts +4 -0
  230. package/dist/shields/formats/mobile-game.d.ts.map +1 -1
  231. package/dist/shields/formats/mobile-game.js +16 -0
  232. package/dist/shields/formats/mobile-game.js.map +1 -1
  233. package/dist/shields/formats/model.d.ts +22 -8
  234. package/dist/shields/formats/model.d.ts.map +1 -1
  235. package/dist/shields/formats/model.js +231 -59
  236. package/dist/shields/formats/model.js.map +1 -1
  237. package/dist/shields/formats/native.d.ts +74 -11
  238. package/dist/shields/formats/native.d.ts.map +1 -1
  239. package/dist/shields/formats/native.js +557 -109
  240. package/dist/shields/formats/native.js.map +1 -1
  241. package/dist/shields/formats/pcap-capture.d.ts +27 -0
  242. package/dist/shields/formats/pcap-capture.d.ts.map +1 -0
  243. package/dist/shields/formats/pcap-capture.js +201 -0
  244. package/dist/shields/formats/pcap-capture.js.map +1 -0
  245. package/dist/shields/formats/python.d.ts +22 -1
  246. package/dist/shields/formats/python.d.ts.map +1 -1
  247. package/dist/shields/formats/python.js +568 -27
  248. package/dist/shields/formats/python.js.map +1 -1
  249. package/dist/shields/formats/sourcemap.d.ts.map +1 -1
  250. package/dist/shields/formats/sourcemap.js +2 -0
  251. package/dist/shields/formats/sourcemap.js.map +1 -1
  252. package/dist/shields/formats/sqlite.d.ts +87 -15
  253. package/dist/shields/formats/sqlite.d.ts.map +1 -1
  254. package/dist/shields/formats/sqlite.js +377 -42
  255. package/dist/shields/formats/sqlite.js.map +1 -1
  256. package/dist/shields/formats/wasm.d.ts +6 -0
  257. package/dist/shields/formats/wasm.d.ts.map +1 -1
  258. package/dist/shields/formats/wasm.js +118 -3
  259. package/dist/shields/formats/wasm.js.map +1 -1
  260. package/dist/shields/javascript/ast-shield.d.ts +26 -5
  261. package/dist/shields/javascript/ast-shield.d.ts.map +1 -1
  262. package/dist/shields/javascript/ast-shield.js +748 -104
  263. package/dist/shields/javascript/ast-shield.js.map +1 -1
  264. package/dist/shields/runtime/memory-diff-shield.d.ts +56 -0
  265. package/dist/shields/runtime/memory-diff-shield.d.ts.map +1 -0
  266. package/dist/shields/runtime/memory-diff-shield.js +170 -0
  267. package/dist/shields/runtime/memory-diff-shield.js.map +1 -0
  268. package/dist/shields/runtime/runtime-shield.d.ts +12 -16
  269. package/dist/shields/runtime/runtime-shield.d.ts.map +1 -1
  270. package/dist/shields/runtime/runtime-shield.js +30 -24
  271. package/dist/shields/runtime/runtime-shield.js.map +1 -1
  272. package/dist/shields/tarpit/opaque-predicates.d.ts.map +1 -1
  273. package/dist/shields/tarpit/opaque-predicates.js +3 -3
  274. package/dist/shields/tarpit/opaque-predicates.js.map +1 -1
  275. package/dist/shields/tarpit/tarpit-generator.d.ts +9 -4
  276. package/dist/shields/tarpit/tarpit-generator.d.ts.map +1 -1
  277. package/dist/shields/tarpit/tarpit-generator.js +30 -23
  278. package/dist/shields/tarpit/tarpit-generator.js.map +1 -1
  279. package/package.json +13 -6
@@ -1,11 +1,129 @@
1
1
  import { REA_INTERNAL_LIMITS } from "../../identity.js";
2
2
  import { SeededPrng } from "../../core/prng.js";
3
3
  import { generateChaffPayloads } from "../chaff/chaff-generator.js";
4
+ import { buildCanaryAndDiagnosticPayloads } from "../deception/format-payloads.js";
5
+ function isRecord(value) {
6
+ return typeof value === "object" && value !== null && !Array.isArray(value);
7
+ }
8
+ /** Invalid or unsupported input is never replaced with synthetic weights. */
9
+ export class InvalidSafetensorsError extends Error {
10
+ constructor(reason) {
11
+ super(`Invalid or unsupported Safetensors input: ${reason}`);
12
+ this.name = "InvalidSafetensorsError";
13
+ }
14
+ }
15
+ // Conservative supported dtype subset. Unknown/new dtypes fail closed.
16
+ const DTYPE_BYTES = Object.freeze({
17
+ BOOL: 1, U8: 1, I8: 1, I16: 2, U16: 2, F16: 2, BF16: 2,
18
+ I32: 4, U32: 4, F32: 4, I64: 8, U64: 8, F64: 8,
19
+ });
20
+ /** Structural validation only: this does not run model inference. */
21
+ export function validateSafetensorsBuffer(bytes) {
22
+ const fail = (reason) => { throw new InvalidSafetensorsError(reason); };
23
+ if (bytes.length < 10)
24
+ fail("truncated header");
25
+ const length = bytes.readBigUInt64LE(0);
26
+ if (length > 100000000n || length > BigInt(bytes.length - 8) || length < 2n) {
27
+ fail("invalid header length");
28
+ }
29
+ const end = 8 + Number(length);
30
+ let text;
31
+ let header;
32
+ try {
33
+ text = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes.subarray(8, end));
34
+ if (!text.startsWith("{"))
35
+ fail("header must start with an object");
36
+ header = JSON.parse(text);
37
+ // JSON.parse otherwise silently loses duplicate fields, including tensor names.
38
+ const stack = [];
39
+ const tokens = /"(?:[^"\\]|\\.)*"|[{}\[\]]|-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g;
40
+ for (const token of text.matchAll(tokens)) {
41
+ const value = token[0];
42
+ if (value === "{")
43
+ stack.push(new Set());
44
+ else if (value === "[")
45
+ stack.push(null);
46
+ else if (value === "}" || value === "]")
47
+ stack.pop();
48
+ else if (!value.startsWith('"')) {
49
+ // JSON.parse rounds before Number.isSafeInteger can inspect the value.
50
+ // The supported header subset requires integer lexical tokens, not
51
+ // fractions/exponents even when they would round to an integer.
52
+ if (value.length > 16 || !/^\d+$/.test(value) || BigInt(value) > BigInt(Number.MAX_SAFE_INTEGER)) {
53
+ fail("unsupported numeric token: require nonnegative safe integer notation");
54
+ }
55
+ }
56
+ else {
57
+ const decoded = JSON.parse(value);
58
+ if (/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u.test(decoded)) {
59
+ fail("invalid Unicode string");
60
+ }
61
+ if (text.slice(token.index + value.length).trimStart().startsWith(":")) {
62
+ const keys = stack.at(-1);
63
+ if (keys?.has(decoded))
64
+ fail("duplicate JSON field");
65
+ keys?.add(decoded);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ catch (error) {
71
+ if (error instanceof InvalidSafetensorsError)
72
+ throw error;
73
+ return fail("invalid UTF-8 or JSON header");
74
+ }
75
+ if (!isRecord(header))
76
+ return fail("header must be an object");
77
+ if (Object.hasOwn(header, "__metadata__") &&
78
+ (!isRecord(header.__metadata__) || Object.values(header.__metadata__).some(v => typeof v !== "string"))) {
79
+ fail("metadata must be a string-to-string object");
80
+ }
81
+ const ranges = [];
82
+ for (const [name, descriptor] of Object.entries(header)) {
83
+ if (name === "__metadata__")
84
+ continue;
85
+ if (!isRecord(descriptor))
86
+ return fail("invalid tensor descriptor");
87
+ const { dtype, shape, data_offsets: offsets } = descriptor;
88
+ if (typeof dtype !== "string" || !Object.hasOwn(DTYPE_BYTES, dtype))
89
+ fail("unsupported tensor dtype");
90
+ if (!Array.isArray(shape) || !shape.every(n => Number.isSafeInteger(n) && n >= 0)) {
91
+ return fail("invalid tensor shape");
92
+ }
93
+ if (!Array.isArray(offsets) || offsets.length !== 2 || !offsets.every(n => Number.isSafeInteger(n) && n >= 0)) {
94
+ return fail("invalid tensor offsets");
95
+ }
96
+ const [start, stop] = offsets;
97
+ let size = shape.includes(0) ? 0n : BigInt(DTYPE_BYTES[dtype]);
98
+ if (size !== 0n) {
99
+ for (const dimension of shape) {
100
+ size *= BigInt(dimension);
101
+ if (size > BigInt(Number.MAX_SAFE_INTEGER))
102
+ fail("unsupported tensor size beyond safe range");
103
+ }
104
+ }
105
+ if (stop < start || stop > bytes.length - end || size !== BigInt(stop - start))
106
+ fail("tensor byte size mismatch");
107
+ ranges.push([start, stop]);
108
+ }
109
+ ranges.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
110
+ let cursor = 0;
111
+ for (const [start, stop] of ranges) {
112
+ if (start !== cursor)
113
+ fail("overlapping or incomplete tensor data");
114
+ cursor = stop;
115
+ }
116
+ if (cursor !== bytes.length - end)
117
+ fail("unreferenced tensor data");
118
+ return { header, tensorData: bytes.subarray(end) };
119
+ }
4
120
  /**
5
- * Builds avalid Safetensors model buffer (`.safetensors`) from a header object and raw data bytes.
121
+ * Serializes a Safetensors header and data buffer (does not validate caller input) (`.safetensors`) from a header object and raw data bytes.
6
122
  */
7
123
  export function buildSafetensorsBuffer(headerObj, tensorData = Buffer.alloc(16, 0)) {
8
- const jsonBytes = Buffer.from(JSON.stringify(headerObj), "utf8");
124
+ const rawJson = Buffer.from(JSON.stringify(headerObj), "utf8");
125
+ const jsonBytes = Buffer.alloc(Math.ceil(rawJson.length / 8) * 8, 0x20);
126
+ rawJson.copy(jsonBytes);
9
127
  const lenPrefix = Buffer.alloc(8);
10
128
  lenPrefix.writeBigUInt64LE(BigInt(jsonBytes.length), 0);
11
129
  return Buffer.concat([lenPrefix, jsonBytes, tensorData]);
@@ -37,27 +155,22 @@ export function inspectModelBuffer(bytes) {
37
155
  // Check Safetensors (8-byte LE uint64 header size + JSON starting with '{')
38
156
  if (bytes.length >= 10 && bytes[8] === 0x7b) {
39
157
  try {
40
- const headerSize = Number(bytes.readBigUInt64LE(0));
41
- if (headerSize > 0 && 8 + headerSize <= bytes.length) {
42
- const jsonText = bytes.subarray(8, 8 + headerSize).toString("utf8");
43
- const parsed = JSON.parse(jsonText);
44
- const keys = Object.keys(parsed);
45
- const tensorCount = keys.filter((k) => k !== "__metadata__").length;
46
- const meta = typeof parsed.__metadata__ === "object" && parsed.__metadata__ !== null
47
- ? Object.keys(parsed.__metadata__)
48
- : [];
49
- const exceedsReaNestingLimit = jsonText.includes('"_bla_nesting_breaker"');
50
- const blaProtected = exceedsReaNestingLimit ||
51
- meta.some((k) => k.startsWith("bla.") || k.startsWith("enclave."));
52
- return {
53
- validModel: true,
54
- format: "safetensors",
55
- tensorCount,
56
- metadataCount: meta.length,
57
- exceedsReaNestingLimit,
58
- blaProtected,
59
- };
60
- }
158
+ const { header: parsed } = validateSafetensorsBuffer(bytes);
159
+ const meta = Object.keys((parsed.__metadata__ ?? {}));
160
+ const exceedsReaNestingLimit = Object.entries(parsed).some(([name, desc]) => {
161
+ if (name === "__metadata__" || !isRecord(desc))
162
+ return false;
163
+ return Object.hasOwn(desc, "enclave_topology_seal");
164
+ });
165
+ return {
166
+ validModel: true,
167
+ format: "safetensors",
168
+ tensorCount: Object.keys(parsed).filter(k => k !== "__metadata__").length,
169
+ metadataCount: meta.length,
170
+ exceedsReaNestingLimit,
171
+ blaProtected: exceedsReaNestingLimit ||
172
+ meta.some(k => k.startsWith("bla.") || k.startsWith("enclave.")),
173
+ };
61
174
  }
62
175
  catch {
63
176
  // Fallthrough
@@ -73,58 +186,85 @@ export function inspectModelBuffer(bytes) {
73
186
  };
74
187
  }
75
188
  /**
76
- * Protects a `.safetensors` AI model artifact against REA's `inspect-model-artifact`
77
- * (`src/model/SafetensorsHeader.ts` & `src/model/ModelFormat.ts`):
189
+ * Protect a Safetensors artifact without changing tensor bytes or required
190
+ * descriptor fields (`dtype` / `shape` / `data_offsets`).
78
191
  *
79
- * 1. Embeds enclave weight-partition and TEE delegation manifests into `__metadata__`.
80
- * 2. When `intensity === "bankrupt"` or `"maximum"`, embeds a 35-level nested JSON structure
81
- * under `_bla_nesting_breaker` (`> MODEL_JSON_NESTING = 32` in `SafetensorsHeader.ts:74`),
82
- * causing REA's `HeaderJson` parser to immediately throw:
83
- * `ModelFormatFailure("capacity", "Safetensors JSON nesting exceeds 32 levels", "json-nesting")`!
192
+ * Counter-REA: attaches a deep nested `enclave_topology_seal` object as an
193
+ * *extra* key on the first tensor descriptor. HuggingFace safetensors ignores
194
+ * unknown descriptor fields (verified loadable), while REA's JSON walker hits
195
+ * `MODEL_JSON_NESTING = 32` (`json-nesting` / ModelFormatFailure capacity).
196
+ * Invalid top-level nesting payloads (e.g. deep `nesting_breaker` arrays) remain
197
+ * rejected by validateSafetensorsBuffer.
84
198
  */
85
199
  export function protectSafetensorsBuffer(bytes, options = {}) {
200
+ const { header: headerObj, tensorData } = validateSafetensorsBuffer(bytes);
86
201
  const intensity = options.intensity ?? "balanced";
87
202
  const prng = new SeededPrng(options.seed ?? "bla-safetensors-shield-v1");
88
203
  const chaffPayloads = generateChaffPayloads(prng, intensity);
89
- let headerObj = {
90
- weight_projection: {
91
- dtype: "F32",
92
- shape: [2, 2],
93
- data_offsets: [0, 16],
94
- },
95
- };
96
- let tensorData = Buffer.alloc(16, 0);
97
- if (bytes.length >= 10 && bytes[8] === 0x7b) {
98
- const headerSize = Number(bytes.readBigUInt64LE(0));
99
- if (headerSize > 0 && 8 + headerSize <= bytes.length) {
100
- headerObj = JSON.parse(bytes.subarray(8, 8 + headerSize).toString("utf8"));
101
- tensorData = bytes.subarray(8 + headerSize);
102
- }
103
- }
204
+ const deception = buildCanaryAndDiagnosticPayloads(prng, intensity);
104
205
  const existingMeta = typeof headerObj.__metadata__ === "object" && headerObj.__metadata__ !== null
105
206
  ? { ...headerObj.__metadata__ }
106
207
  : {};
107
- existingMeta["enclave.delegation.status"] = "HARDWARE_TEE_SPLIT_WEIGHTS";
108
- existingMeta["enclave.delegation.notice"] = chaffPayloads[0].rawText;
109
- existingMeta["bla.shield.signature"] = `BLA-MODEL-SHIELD-${prng.hex(8)}`;
208
+ existingMeta["enclave.delegation.status"] ??= "HARDWARE_TEE_SPLIT_WEIGHTS";
209
+ existingMeta["enclave.delegation.notice"] ??= chaffPayloads[0].rawText;
210
+ existingMeta["bla.shield.signature"] ??= `BLA-MODEL-SHIELD-${prng.hex(8)}`;
211
+ let chaffPayloadsEmbedded = 0;
110
212
  chaffPayloads.forEach((p, idx) => {
111
- existingMeta[`enclave.manifest.${idx}`] = p.rawText;
213
+ const key = `enclave.manifest.${idx}`;
214
+ if (!Object.hasOwn(existingMeta, key)) {
215
+ existingMeta[key] = p.rawText;
216
+ chaffPayloadsEmbedded++;
217
+ }
218
+ });
219
+ // Canary + diagnostic metadata (string values only — Safetensors __metadata__ contract).
220
+ deception.canary.syntheticCanaryTokens.forEach((tok, idx) => {
221
+ existingMeta[`enclave.canary.token.${idx}`] ??= tok;
222
+ });
223
+ deception.canary.ambiguousCredentialUrls.forEach((url, idx) => {
224
+ existingMeta[`enclave.canary.transport.${idx}`] ??= url;
225
+ });
226
+ deception.diagnostics.diagnosticsInjected.forEach((d, idx) => {
227
+ existingMeta[`enclave.diagnostic.${idx}`] ??= JSON.stringify({
228
+ subsystem: d.subsystem,
229
+ errorClass: d.errorClass,
230
+ systemCode: d.systemCode,
231
+ diagnosticMessage: d.diagnosticMessage,
232
+ remediationRabbitHole: d.remediationRabbitHole,
233
+ });
112
234
  });
113
235
  headerObj.__metadata__ = existingMeta;
236
+ // JSON nesting breaker on the first tensor descriptor (extra key; HF-ignored).
237
+ // Depth: root(0) → tensor(1) → topology(2) → … → nest layers trip depth > 32.
238
+ const nestingDepth = REA_INTERNAL_LIMITS.MODEL_MAX_JSON_NESTING + 1;
114
239
  let triggeredJsonNestingBreaker = false;
115
- if (intensity === "bankrupt" || intensity === "maximum") {
116
- // Build a 35-level nested JSON array (> REA's `MODEL_JSON_NESTING = 32` in `SafetensorsHeader.ts:74`)
117
- let nested = "enclave_sealed_leaf";
118
- for (let d = 0; d < REA_INTERNAL_LIMITS.MODEL_MAX_JSON_NESTING + 3; d++) {
119
- nested = [nested];
240
+ const firstTensorName = Object.keys(headerObj).find((k) => k !== "__metadata__");
241
+ if (firstTensorName !== undefined && isRecord(headerObj[firstTensorName])) {
242
+ const tensor = { ...headerObj[firstTensorName] };
243
+ if (!Object.hasOwn(tensor, "enclave_topology_seal")) {
244
+ let node = {
245
+ kind: "enclave_topology",
246
+ seed: prng.hex(8),
247
+ notice: "BLA Counter-REA JSON nesting breaker",
248
+ };
249
+ for (let d = 0; d < nestingDepth; d++) {
250
+ node = { layer: d, next: node };
251
+ }
252
+ tensor.enclave_topology_seal = node;
253
+ headerObj[firstTensorName] = tensor;
254
+ triggeredJsonNestingBreaker = true;
255
+ }
256
+ else {
257
+ triggeredJsonNestingBreaker = true;
120
258
  }
121
- headerObj._bla_nesting_breaker = nested;
122
- triggeredJsonNestingBreaker = true;
123
259
  }
260
+ const buffer = buildSafetensorsBuffer(headerObj, tensorData);
261
+ validateSafetensorsBuffer(buffer);
124
262
  return {
125
- buffer: buildSafetensorsBuffer(headerObj, tensorData),
126
- chaffPayloadsEmbedded: chaffPayloads.length,
263
+ buffer,
264
+ chaffPayloadsEmbedded,
127
265
  triggeredJsonNestingBreaker,
266
+ canaryTokensEmbedded: deception.canary.syntheticCanaryTokens.length,
267
+ diagnosticsEmbedded: deception.diagnostics.diagnosticsInjected.length,
128
268
  };
129
269
  }
130
270
  function encodeGgufString(str) {
@@ -228,6 +368,7 @@ export function protectGgufBuffer(bytes, options = {}) {
228
368
  const intensity = options.intensity ?? "balanced";
229
369
  const prng = new SeededPrng(options.seed ?? "bla-gguf-shield-v1");
230
370
  const chaffPayloads = generateChaffPayloads(prng, intensity);
371
+ const deception = buildCanaryAndDiagnosticPayloads(prng, intensity);
231
372
  const parsed = parseExistingGgufHeader(bytes);
232
373
  const existingKvSlice = parsed ? bytes.subarray(24, parsed.kvEndOffset) : Buffer.alloc(0);
233
374
  const trailingTensorSlice = parsed ? bytes.subarray(parsed.kvEndOffset) : Buffer.alloc(0);
@@ -248,7 +389,36 @@ export function protectGgufBuffer(bytes, options = {}) {
248
389
  const val = encodeGgufString(chaffPayloads.map((p) => p.rawText).join(" | "));
249
390
  kvEntries.push(Buffer.concat([key, type, val]));
250
391
  }
251
- // KV 3: enclave.nesting.breaker — 35 nested ARRAY frames (> MODEL_METADATA_NESTING = 32)
392
+ // KV canary / diagnostic STRING metadata (under enclave.* hierarchy)
393
+ deception.canary.syntheticCanaryTokens.forEach((tok, idx) => {
394
+ const keyName = `enclave.canary.token.${idx}`;
395
+ if (!parsed || !parsed.existingKeys.has(keyName)) {
396
+ const key = encodeGgufString(keyName);
397
+ const type = Buffer.alloc(4);
398
+ type.writeUInt32LE(8, 0);
399
+ kvEntries.push(Buffer.concat([key, type, encodeGgufString(tok)]));
400
+ }
401
+ });
402
+ deception.canary.ambiguousCredentialUrls.forEach((url, idx) => {
403
+ const keyName = `enclave.canary.transport.${idx}`;
404
+ if (!parsed || !parsed.existingKeys.has(keyName)) {
405
+ const key = encodeGgufString(keyName);
406
+ const type = Buffer.alloc(4);
407
+ type.writeUInt32LE(8, 0);
408
+ kvEntries.push(Buffer.concat([key, type, encodeGgufString(url)]));
409
+ }
410
+ });
411
+ deception.diagnostics.diagnosticsInjected.forEach((d, idx) => {
412
+ const keyName = `enclave.diagnostic.${idx}`;
413
+ if (!parsed || !parsed.existingKeys.has(keyName)) {
414
+ const key = encodeGgufString(keyName);
415
+ const type = Buffer.alloc(4);
416
+ type.writeUInt32LE(8, 0);
417
+ const val = encodeGgufString(`[${d.errorClass}] (${d.systemCode}) ${d.diagnosticMessage}`);
418
+ kvEntries.push(Buffer.concat([key, type, val]));
419
+ }
420
+ });
421
+ // KV nesting: enclave.nesting.breaker — 35 nested ARRAY frames (> MODEL_METADATA_NESTING = 32)
252
422
  const nestingDepth = REA_INTERNAL_LIMITS.MODEL_MAX_METADATA_NESTING + 3;
253
423
  if (!parsed || !parsed.existingKeys.has("enclave.nesting.breaker")) {
254
424
  const key = encodeGgufString("enclave.nesting.breaker");
@@ -284,6 +454,8 @@ export function protectGgufBuffer(bytes, options = {}) {
284
454
  buffer: Buffer.concat([combined, alignedPad]),
285
455
  chaffPayloadsEmbedded: chaffPayloads.length,
286
456
  triggeredMetadataNestingBreaker: true,
457
+ canaryTokensEmbedded: deception.canary.syntheticCanaryTokens.length,
458
+ diagnosticsEmbedded: deception.diagnostics.diagnosticsInjected.length,
287
459
  };
288
460
  }
289
461
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/shields/formats/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/shields/formats/model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,41 @@
1
+ import { type BunCarrierDetection } from "./bun-standalone.js";
1
2
  import { SeededPrng } from "../../core/prng.js";
2
3
  import type { ArtifactFormat, ProtectionIntensity } from "../../core/types.js";
4
+ import { type ElectronHardeningContext, type ElectronHardeningReport } from "./electron-fuses.js";
5
+ export declare class InvalidNativeBinaryError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ export interface Elf64ProgramHeaderSummary {
9
+ readonly index: number;
10
+ readonly type: number;
11
+ readonly flags: number;
12
+ readonly offset: number;
13
+ readonly vaddr: bigint;
14
+ readonly paddr: bigint;
15
+ readonly filesz: number;
16
+ readonly memsz: bigint;
17
+ readonly align: bigint;
18
+ }
19
+ export interface Elf64SectionHeaderSummary {
20
+ readonly index: number;
21
+ readonly nameOffset: number;
22
+ readonly type: number;
23
+ readonly flags: bigint;
24
+ readonly addr: bigint;
25
+ readonly offset: number;
26
+ readonly size: number;
27
+ }
28
+ export interface Elf64LayoutSummary {
29
+ readonly phoff: number;
30
+ readonly phentsize: number;
31
+ readonly phnum: number;
32
+ readonly shoff: number;
33
+ readonly shentsize: number;
34
+ readonly shnum: number;
35
+ readonly shstrndx: number;
36
+ readonly programHeaders: readonly Elf64ProgramHeaderSummary[];
37
+ readonly sectionHeaders: readonly Elf64SectionHeaderSummary[];
38
+ }
3
39
  export interface NativeBinaryInspection {
4
40
  readonly format: "native-elf" | "native-macho" | "native-pe" | "unknown";
5
41
  readonly architecture: string;
@@ -7,11 +43,20 @@ export interface NativeBinaryInspection {
7
43
  readonly rustcCommitHashesCount: number;
8
44
  readonly electronFuseSentinelsCount: number;
9
45
  readonly dartSnapshotHashesCount: number;
46
+ readonly dartPoolPackageUriCount: number;
47
+ readonly dartPoolTokenCount: number;
10
48
  readonly hasRustDepV0: boolean;
11
49
  readonly hasGoBuildInfo: boolean;
50
+ readonly goBuildInfoFramed: boolean;
12
51
  readonly extractedStringsCount: number;
13
52
  readonly blaProtected: boolean;
14
53
  }
54
+ /**
55
+ * Validates ELF64 little-endian header, program headers (`PT_LOAD`, `p_filesz <= p_memsz`,
56
+ * non-overlapping virtual address ranges, in-bounds file ranges), and section headers
57
+ * (in-bounds file ranges, valid `e_shstrndx`, non-overlapping file-backed sections).
58
+ */
59
+ export declare function validateElf64Layout(bytes: Buffer): Elf64LayoutSummary;
15
60
  export declare function inspectNativeBinary(bytes: Buffer): NativeBinaryInspection;
16
61
  /**
17
62
  * Generates a zlib-compressed `cargo-auditable` `.dep-v0` decoy dependency graph
@@ -19,29 +64,47 @@ export declare function inspectNativeBinary(bytes: Buffer): NativeBinaryInspecti
19
64
  * see an enterprise enclave architecture.
20
65
  */
21
66
  export declare function buildDecoyRustAuditablePayload(prng: SeededPrng): Buffer;
67
+ /** Resolve ELF64 section names from the section-header string table. */
68
+ export declare function resolveElf64SectionNames(bytes: Buffer, layout: Elf64LayoutSummary): Map<string, Elf64SectionHeaderSummary>;
69
+ export type NativeEofAppendHazard = "none" | "macho-code-signature" | "pe-authenticode-signature" | "pyinstaller-archive" | "deno-standalone" | "zip-sfx-trailer";
70
+ /**
71
+ * Detects native executable formats where appending a raw EOF trailer would
72
+ * invalidate OS code-signing (`codesign --strict` / `WinVerifyTrust`) or break
73
+ * EOF-relative standalone runtime archives (PyInstaller, `deno compile`, ZIP-SFX).
74
+ */
75
+ export declare function detectNativeEofAppendHazard(bytes: Buffer): NativeEofAppendHazard;
22
76
  /**
23
- * Protects a Native Binary (ELF / Mach-O / PE) against ALL of REA's native & desktop analyzers:
24
- * 1. **Rust (`RustBinaryImage.ts`)**: Injects 68 distinct `/rustc/<40-hex>/` commit paths into read-only data,
25
- * exceeding REA's `MAX_RUSTC_HASHES = 64` capacity limit!
26
- * 2. **Rust Auditable (`RustAuditableReader.ts`)**: Embeds a decoy `.dep-v0` compressed crate graph.
27
- * 3. **Go (`GoBuildInfoSearch.ts` / `GoModuleText.ts`)**: Embeds decoy Go module table entries (`mod\t`, `dep\t`).
28
- * 4. **Electron Fuses (`ElectronFuseReader.ts`)**: Hardens any real Electron Fuse V1 wire in-place AND injects
29
- * 34 decoy `dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX` sentinels (`> maximumSentinelsPerSlice = 32`)!
30
- * 5. **Flutter / Dart AOT (`FlutterPayloadScan.ts`)**: Injects 66 Dart snapshot magic records (`> 64` cap) and
31
- * 6 LLVM toolchain lines (`> 4` cap).
32
- * 6. **ELF64 `.rodata` Extension**: Extends the read-only `.rodata` section and `PT_LOAD` segment so
33
- * REA's `mergedReadOnlyFileRanges` and slice scanners read the entire defensive trailer.
77
+ * Protects a Native Binary (ELF / Mach-O / PE) against REA's native & desktop analyzers
78
+ * while strictly preserving ELF64 `PT_LOAD` (`p_offset`, `p_filesz`, `p_memsz` / BSS) and
79
+ * section header boundaries. Real Electron fuses are only mutated when an explicit
80
+ * verified `electronHardeningContext` is provided.
34
81
  */
35
82
  export declare function protectNativeBinary(bytes: Buffer, options?: {
36
83
  readonly intensity?: ProtectionIntensity;
37
84
  readonly seed?: string | number;
85
+ readonly electronHardeningContext?: ElectronHardeningContext;
38
86
  }): {
39
87
  readonly buffer: Buffer;
40
88
  readonly rustcHashesInjected: number;
41
89
  readonly electronFuseSentinelsInjected: number;
42
90
  readonly dartSnapshotHashesInjected: number;
91
+ readonly dartPoolUrisInjected: number;
92
+ readonly dartPoolTokensInjected: number;
93
+ readonly goBuildInfoExceedsLimit: boolean;
94
+ readonly mappedGoBuildInfoPlanted: boolean;
95
+ readonly mappedFlutterPoolPlanted: boolean;
43
96
  readonly chaffPayloadsEmbedded: number;
44
97
  readonly binarySectionsPatched: number;
98
+ readonly electronHardeningReport?: ElectronHardeningReport;
99
+ /**
100
+ * Bun standalone carrier observed in the input (REA #6998). When the graph
101
+ * rides an EOF trailer, nothing is appended or patched: Bun resolves that
102
+ * graph from EOF at runtime, so the binary is passed through byte-exact.
103
+ */
104
+ readonly bunStandaloneCarrier: BunCarrierDetection["kind"];
105
+ readonly bunStandaloneGraphPreserved: boolean;
106
+ readonly nativeAppendHazard: NativeEofAppendHazard;
107
+ readonly nativeBinaryPreserved: boolean;
45
108
  };
46
109
  export declare function detectNativeFormatName(format: ArtifactFormat): string;
47
110
  //# sourceMappingURL=native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/shields/formats/native.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO/E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAyFzE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA+BvE;AAwCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,GACL;IACD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC,CA0GA;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAWrE"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/shields/formats/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK/E,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAQ7B,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAqPrE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAgHzE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAiCvE;AAGD,wEAAwE;AACxE,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,kBAAkB,GACzB,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAuBxC;AAyFD,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,sBAAsB,GACtB,2BAA2B,GAC3B,qBAAqB,GACrB,iBAAiB,GACjB,iBAAiB,CAAC;AA0CtB;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAsFhF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACzD,GACL;IACD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;CACzC,CA0MA;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAWrE"}