bla-agents 0.0.0-stage → 1.5.3

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 (330) hide show
  1. package/.agents/skills/blind-llm-agents/SKILL.md +56 -0
  2. package/.agents/skills/blind-llm-agents/references/counter-rea-matrix.md +28 -0
  3. package/DISCLAIMER.md +28 -0
  4. package/LICENSE +21 -0
  5. package/README.md +246 -2
  6. package/dist/bundler/index.d.ts +117 -0
  7. package/dist/bundler/index.d.ts.map +1 -0
  8. package/dist/bundler/index.js +167 -0
  9. package/dist/bundler/index.js.map +1 -0
  10. package/dist/cli.d.ts +30 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +447 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/core/config.d.ts +54 -0
  15. package/dist/core/config.d.ts.map +1 -0
  16. package/dist/core/config.js +160 -0
  17. package/dist/core/config.js.map +1 -0
  18. package/dist/core/coverage-contract.d.ts +97 -0
  19. package/dist/core/coverage-contract.d.ts.map +1 -0
  20. package/dist/core/coverage-contract.js +164 -0
  21. package/dist/core/coverage-contract.js.map +1 -0
  22. package/dist/core/debug-posture.d.ts +40 -0
  23. package/dist/core/debug-posture.d.ts.map +1 -0
  24. package/dist/core/debug-posture.js +197 -0
  25. package/dist/core/debug-posture.js.map +1 -0
  26. package/dist/core/detector.d.ts +7 -0
  27. package/dist/core/detector.d.ts.map +1 -0
  28. package/dist/core/detector.js +190 -0
  29. package/dist/core/detector.js.map +1 -0
  30. package/dist/core/identifiers.d.ts +32 -0
  31. package/dist/core/identifiers.d.ts.map +1 -0
  32. package/dist/core/identifiers.js +263 -0
  33. package/dist/core/identifiers.js.map +1 -0
  34. package/dist/core/llm-directives.d.ts +12 -0
  35. package/dist/core/llm-directives.d.ts.map +1 -0
  36. package/dist/core/llm-directives.js +23 -0
  37. package/dist/core/llm-directives.js.map +1 -0
  38. package/dist/core/output-path.d.ts +3 -0
  39. package/dist/core/output-path.d.ts.map +1 -0
  40. package/dist/core/output-path.js +51 -0
  41. package/dist/core/output-path.js.map +1 -0
  42. package/dist/core/prng.d.ts +27 -0
  43. package/dist/core/prng.d.ts.map +1 -0
  44. package/dist/core/prng.js +85 -0
  45. package/dist/core/prng.js.map +1 -0
  46. package/dist/core/release-exposure.d.ts +26 -0
  47. package/dist/core/release-exposure.d.ts.map +1 -0
  48. package/dist/core/release-exposure.js +213 -0
  49. package/dist/core/release-exposure.js.map +1 -0
  50. package/dist/core/release-plan.d.ts +68 -0
  51. package/dist/core/release-plan.d.ts.map +1 -0
  52. package/dist/core/release-plan.js +235 -0
  53. package/dist/core/release-plan.js.map +1 -0
  54. package/dist/core/sarif.d.ts +53 -0
  55. package/dist/core/sarif.d.ts.map +1 -0
  56. package/dist/core/sarif.js +91 -0
  57. package/dist/core/sarif.js.map +1 -0
  58. package/dist/core/sqlite-runtime.d.ts +17 -0
  59. package/dist/core/sqlite-runtime.d.ts.map +1 -0
  60. package/dist/core/sqlite-runtime.js +49 -0
  61. package/dist/core/sqlite-runtime.js.map +1 -0
  62. package/dist/core/token-estimator.d.ts +11 -0
  63. package/dist/core/token-estimator.d.ts.map +1 -0
  64. package/dist/core/token-estimator.js +87 -0
  65. package/dist/core/token-estimator.js.map +1 -0
  66. package/dist/core/types.d.ts +159 -0
  67. package/dist/core/types.d.ts.map +1 -0
  68. package/dist/core/types.js +2 -0
  69. package/dist/core/types.js.map +1 -0
  70. package/dist/engine/auditor.d.ts +6 -0
  71. package/dist/engine/auditor.d.ts.map +1 -0
  72. package/dist/engine/auditor.js +977 -0
  73. package/dist/engine/auditor.js.map +1 -0
  74. package/dist/engine/benchmark.d.ts +6 -0
  75. package/dist/engine/benchmark.d.ts.map +1 -0
  76. package/dist/engine/benchmark.js +425 -0
  77. package/dist/engine/benchmark.js.map +1 -0
  78. package/dist/engine/defender.d.ts +57 -0
  79. package/dist/engine/defender.d.ts.map +1 -0
  80. package/dist/engine/defender.js +130 -0
  81. package/dist/engine/defender.js.map +1 -0
  82. package/dist/engine/harden.d.ts +61 -0
  83. package/dist/engine/harden.d.ts.map +1 -0
  84. package/dist/engine/harden.js +292 -0
  85. package/dist/engine/harden.js.map +1 -0
  86. package/dist/engine/protector.d.ts +8 -0
  87. package/dist/engine/protector.d.ts.map +1 -0
  88. package/dist/engine/protector.js +500 -0
  89. package/dist/engine/protector.js.map +1 -0
  90. package/dist/engine/verifier.d.ts +6 -0
  91. package/dist/engine/verifier.d.ts.map +1 -0
  92. package/dist/engine/verifier.js +91 -0
  93. package/dist/engine/verifier.js.map +1 -0
  94. package/dist/identity.d.ts +180 -0
  95. package/dist/identity.d.ts.map +1 -0
  96. package/dist/identity.js +180 -0
  97. package/dist/identity.js.map +1 -0
  98. package/dist/index.d.ts +53 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +53 -0
  101. package/dist/index.js.map +1 -0
  102. package/dist/mcp/server.d.ts +81 -0
  103. package/dist/mcp/server.d.ts.map +1 -0
  104. package/dist/mcp/server.js +730 -0
  105. package/dist/mcp/server.js.map +1 -0
  106. package/dist/setup/clients.d.ts +58 -0
  107. package/dist/setup/clients.d.ts.map +1 -0
  108. package/dist/setup/clients.js +1268 -0
  109. package/dist/setup/clients.js.map +1 -0
  110. package/dist/setup/doctor.d.ts +69 -0
  111. package/dist/setup/doctor.d.ts.map +1 -0
  112. package/dist/setup/doctor.js +339 -0
  113. package/dist/setup/doctor.js.map +1 -0
  114. package/dist/setup/setup.d.ts +99 -0
  115. package/dist/setup/setup.d.ts.map +1 -0
  116. package/dist/setup/setup.js +652 -0
  117. package/dist/setup/setup.js.map +1 -0
  118. package/dist/shields/chaff/chaff-generator.d.ts +17 -0
  119. package/dist/shields/chaff/chaff-generator.d.ts.map +1 -0
  120. package/dist/shields/chaff/chaff-generator.js +80 -0
  121. package/dist/shields/chaff/chaff-generator.js.map +1 -0
  122. package/dist/shields/deception/architecture-mirage.d.ts +16 -0
  123. package/dist/shields/deception/architecture-mirage.d.ts.map +1 -0
  124. package/dist/shields/deception/architecture-mirage.js +46 -0
  125. package/dist/shields/deception/architecture-mirage.js.map +1 -0
  126. package/dist/shields/deception/canary-honeypot.d.ts +33 -0
  127. package/dist/shields/deception/canary-honeypot.d.ts.map +1 -0
  128. package/dist/shields/deception/canary-honeypot.js +95 -0
  129. package/dist/shields/deception/canary-honeypot.js.map +1 -0
  130. package/dist/shields/deception/cognitive-armor-trigger.d.ts +43 -0
  131. package/dist/shields/deception/cognitive-armor-trigger.d.ts.map +1 -0
  132. package/dist/shields/deception/cognitive-armor-trigger.js +204 -0
  133. package/dist/shields/deception/cognitive-armor-trigger.js.map +1 -0
  134. package/dist/shields/deception/crash-trace-decoy.d.ts +16 -0
  135. package/dist/shields/deception/crash-trace-decoy.d.ts.map +1 -0
  136. package/dist/shields/deception/crash-trace-decoy.js +36 -0
  137. package/dist/shields/deception/crash-trace-decoy.js.map +1 -0
  138. package/dist/shields/deception/decompiler-illusion.d.ts +15 -0
  139. package/dist/shields/deception/decompiler-illusion.d.ts.map +1 -0
  140. package/dist/shields/deception/decompiler-illusion.js +29 -0
  141. package/dist/shields/deception/decompiler-illusion.js.map +1 -0
  142. package/dist/shields/deception/diff-noise-injector.d.ts +17 -0
  143. package/dist/shields/deception/diff-noise-injector.d.ts.map +1 -0
  144. package/dist/shields/deception/diff-noise-injector.js +29 -0
  145. package/dist/shields/deception/diff-noise-injector.js.map +1 -0
  146. package/dist/shields/deception/evidence-contract-poison.d.ts +25 -0
  147. package/dist/shields/deception/evidence-contract-poison.d.ts.map +1 -0
  148. package/dist/shields/deception/evidence-contract-poison.js +66 -0
  149. package/dist/shields/deception/evidence-contract-poison.js.map +1 -0
  150. package/dist/shields/deception/format-payloads.d.ts +21 -0
  151. package/dist/shields/deception/format-payloads.d.ts.map +1 -0
  152. package/dist/shields/deception/format-payloads.js +24 -0
  153. package/dist/shields/deception/format-payloads.js.map +1 -0
  154. package/dist/shields/deception/index.d.ts +35 -0
  155. package/dist/shields/deception/index.d.ts.map +1 -0
  156. package/dist/shields/deception/index.js +69 -0
  157. package/dist/shields/deception/index.js.map +1 -0
  158. package/dist/shields/deception/prompt-completion-poison.d.ts +19 -0
  159. package/dist/shields/deception/prompt-completion-poison.d.ts.map +1 -0
  160. package/dist/shields/deception/prompt-completion-poison.js +45 -0
  161. package/dist/shields/deception/prompt-completion-poison.js.map +1 -0
  162. package/dist/shields/deception/semantic-honeypot.d.ts +17 -0
  163. package/dist/shields/deception/semantic-honeypot.d.ts.map +1 -0
  164. package/dist/shields/deception/semantic-honeypot.js +45 -0
  165. package/dist/shields/deception/semantic-honeypot.js.map +1 -0
  166. package/dist/shields/deception/shadow-business-logic.d.ts +24 -0
  167. package/dist/shields/deception/shadow-business-logic.d.ts.map +1 -0
  168. package/dist/shields/deception/shadow-business-logic.js +66 -0
  169. package/dist/shields/deception/shadow-business-logic.js.map +1 -0
  170. package/dist/shields/deception/system-diagnostic-decoy.d.ts +36 -0
  171. package/dist/shields/deception/system-diagnostic-decoy.d.ts.map +1 -0
  172. package/dist/shields/deception/system-diagnostic-decoy.js +101 -0
  173. package/dist/shields/deception/system-diagnostic-decoy.js.map +1 -0
  174. package/dist/shields/exhaustion/asar-header-amplifier.d.ts +25 -0
  175. package/dist/shields/exhaustion/asar-header-amplifier.d.ts.map +1 -0
  176. package/dist/shields/exhaustion/asar-header-amplifier.js +59 -0
  177. package/dist/shields/exhaustion/asar-header-amplifier.js.map +1 -0
  178. package/dist/shields/exhaustion/bpe-token-amplifier.d.ts +21 -0
  179. package/dist/shields/exhaustion/bpe-token-amplifier.d.ts.map +1 -0
  180. package/dist/shields/exhaustion/bpe-token-amplifier.js +68 -0
  181. package/dist/shields/exhaustion/bpe-token-amplifier.js.map +1 -0
  182. package/dist/shields/exhaustion/callgraph-labyrinth.d.ts +20 -0
  183. package/dist/shields/exhaustion/callgraph-labyrinth.d.ts.map +1 -0
  184. package/dist/shields/exhaustion/callgraph-labyrinth.js +62 -0
  185. package/dist/shields/exhaustion/callgraph-labyrinth.js.map +1 -0
  186. package/dist/shields/exhaustion/cdp-shape-budget-breaker.d.ts +20 -0
  187. package/dist/shields/exhaustion/cdp-shape-budget-breaker.d.ts.map +1 -0
  188. package/dist/shields/exhaustion/cdp-shape-budget-breaker.js +40 -0
  189. package/dist/shields/exhaustion/cdp-shape-budget-breaker.js.map +1 -0
  190. package/dist/shields/exhaustion/frida-capture-saturation.d.ts +33 -0
  191. package/dist/shields/exhaustion/frida-capture-saturation.d.ts.map +1 -0
  192. package/dist/shields/exhaustion/frida-capture-saturation.js +58 -0
  193. package/dist/shields/exhaustion/frida-capture-saturation.js.map +1 -0
  194. package/dist/shields/exhaustion/index.d.ts +30 -0
  195. package/dist/shields/exhaustion/index.d.ts.map +1 -0
  196. package/dist/shields/exhaustion/index.js +43 -0
  197. package/dist/shields/exhaustion/index.js.map +1 -0
  198. package/dist/shields/exhaustion/obligation-flooder.d.ts +128 -0
  199. package/dist/shields/exhaustion/obligation-flooder.d.ts.map +1 -0
  200. package/dist/shields/exhaustion/obligation-flooder.js +145 -0
  201. package/dist/shields/exhaustion/obligation-flooder.js.map +1 -0
  202. package/dist/shields/exhaustion/rea-budget-matrix.d.ts +54 -0
  203. package/dist/shields/exhaustion/rea-budget-matrix.d.ts.map +1 -0
  204. package/dist/shields/exhaustion/rea-budget-matrix.js +300 -0
  205. package/dist/shields/exhaustion/rea-budget-matrix.js.map +1 -0
  206. package/dist/shields/exhaustion/regex-worker-tarpit.d.ts +23 -0
  207. package/dist/shields/exhaustion/regex-worker-tarpit.d.ts.map +1 -0
  208. package/dist/shields/exhaustion/regex-worker-tarpit.js +43 -0
  209. package/dist/shields/exhaustion/regex-worker-tarpit.js.map +1 -0
  210. package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts +26 -0
  211. package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts.map +1 -0
  212. package/dist/shields/exhaustion/wasm-interface-exhaustion.js +59 -0
  213. package/dist/shields/exhaustion/wasm-interface-exhaustion.js.map +1 -0
  214. package/dist/shields/formats/android-dex-xref.d.ts +19 -0
  215. package/dist/shields/formats/android-dex-xref.d.ts.map +1 -0
  216. package/dist/shields/formats/android-dex-xref.js +427 -0
  217. package/dist/shields/formats/android-dex-xref.js.map +1 -0
  218. package/dist/shields/formats/android-manifest.d.ts +44 -0
  219. package/dist/shields/formats/android-manifest.d.ts.map +1 -0
  220. package/dist/shields/formats/android-manifest.js +240 -0
  221. package/dist/shields/formats/android-manifest.js.map +1 -0
  222. package/dist/shields/formats/android-r8.d.ts +44 -0
  223. package/dist/shields/formats/android-r8.d.ts.map +1 -0
  224. package/dist/shields/formats/android-r8.js +246 -0
  225. package/dist/shields/formats/android-r8.js.map +1 -0
  226. package/dist/shields/formats/apple-plist.d.ts +46 -0
  227. package/dist/shields/formats/apple-plist.d.ts.map +1 -0
  228. package/dist/shields/formats/apple-plist.js +119 -0
  229. package/dist/shields/formats/apple-plist.js.map +1 -0
  230. package/dist/shields/formats/archive.d.ts +55 -0
  231. package/dist/shields/formats/archive.d.ts.map +1 -0
  232. package/dist/shields/formats/archive.js +369 -0
  233. package/dist/shields/formats/archive.js.map +1 -0
  234. package/dist/shields/formats/asar.d.ts +72 -0
  235. package/dist/shields/formats/asar.d.ts.map +1 -0
  236. package/dist/shields/formats/asar.js +343 -0
  237. package/dist/shields/formats/asar.js.map +1 -0
  238. package/dist/shields/formats/bun-standalone.d.ts +78 -0
  239. package/dist/shields/formats/bun-standalone.d.ts.map +1 -0
  240. package/dist/shields/formats/bun-standalone.js +272 -0
  241. package/dist/shields/formats/bun-standalone.js.map +1 -0
  242. package/dist/shields/formats/dotnet-managed.d.ts +30 -0
  243. package/dist/shields/formats/dotnet-managed.d.ts.map +1 -0
  244. package/dist/shields/formats/dotnet-managed.js +66 -0
  245. package/dist/shields/formats/dotnet-managed.js.map +1 -0
  246. package/dist/shields/formats/electron-fuses.d.ts +93 -0
  247. package/dist/shields/formats/electron-fuses.d.ts.map +1 -0
  248. package/dist/shields/formats/electron-fuses.js +349 -0
  249. package/dist/shields/formats/electron-fuses.js.map +1 -0
  250. package/dist/shields/formats/erlang-beam.d.ts +34 -0
  251. package/dist/shields/formats/erlang-beam.d.ts.map +1 -0
  252. package/dist/shields/formats/erlang-beam.js +319 -0
  253. package/dist/shields/formats/erlang-beam.js.map +1 -0
  254. package/dist/shields/formats/evm-bytecode.d.ts +28 -0
  255. package/dist/shields/formats/evm-bytecode.d.ts.map +1 -0
  256. package/dist/shields/formats/evm-bytecode.js +124 -0
  257. package/dist/shields/formats/evm-bytecode.js.map +1 -0
  258. package/dist/shields/formats/go-flutter-exhaustion.d.ts +55 -0
  259. package/dist/shields/formats/go-flutter-exhaustion.d.ts.map +1 -0
  260. package/dist/shields/formats/go-flutter-exhaustion.js +346 -0
  261. package/dist/shields/formats/go-flutter-exhaustion.js.map +1 -0
  262. package/dist/shields/formats/gpu-ptx.d.ts +40 -0
  263. package/dist/shields/formats/gpu-ptx.d.ts.map +1 -0
  264. package/dist/shields/formats/gpu-ptx.js +62 -0
  265. package/dist/shields/formats/gpu-ptx.js.map +1 -0
  266. package/dist/shields/formats/headers.d.ts +22 -0
  267. package/dist/shields/formats/headers.d.ts.map +1 -0
  268. package/dist/shields/formats/headers.js +193 -0
  269. package/dist/shields/formats/headers.js.map +1 -0
  270. package/dist/shields/formats/jvm-bytecode.d.ts +20 -0
  271. package/dist/shields/formats/jvm-bytecode.d.ts.map +1 -0
  272. package/dist/shields/formats/jvm-bytecode.js +134 -0
  273. package/dist/shields/formats/jvm-bytecode.js.map +1 -0
  274. package/dist/shields/formats/mobile-game.d.ts +42 -0
  275. package/dist/shields/formats/mobile-game.d.ts.map +1 -0
  276. package/dist/shields/formats/mobile-game.js +131 -0
  277. package/dist/shields/formats/mobile-game.js.map +1 -0
  278. package/dist/shields/formats/model.d.ts +66 -0
  279. package/dist/shields/formats/model.d.ts.map +1 -0
  280. package/dist/shields/formats/model.js +461 -0
  281. package/dist/shields/formats/model.js.map +1 -0
  282. package/dist/shields/formats/native.d.ts +101 -0
  283. package/dist/shields/formats/native.d.ts.map +1 -0
  284. package/dist/shields/formats/native.js +585 -0
  285. package/dist/shields/formats/native.js.map +1 -0
  286. package/dist/shields/formats/pcap-capture.d.ts +27 -0
  287. package/dist/shields/formats/pcap-capture.d.ts.map +1 -0
  288. package/dist/shields/formats/pcap-capture.js +201 -0
  289. package/dist/shields/formats/pcap-capture.js.map +1 -0
  290. package/dist/shields/formats/python.d.ts +62 -0
  291. package/dist/shields/formats/python.d.ts.map +1 -0
  292. package/dist/shields/formats/python.js +637 -0
  293. package/dist/shields/formats/python.js.map +1 -0
  294. package/dist/shields/formats/sourcemap.d.ts +22 -0
  295. package/dist/shields/formats/sourcemap.d.ts.map +1 -0
  296. package/dist/shields/formats/sourcemap.js +66 -0
  297. package/dist/shields/formats/sourcemap.js.map +1 -0
  298. package/dist/shields/formats/sqlite.d.ts +115 -0
  299. package/dist/shields/formats/sqlite.d.ts.map +1 -0
  300. package/dist/shields/formats/sqlite.js +528 -0
  301. package/dist/shields/formats/sqlite.js.map +1 -0
  302. package/dist/shields/formats/wasm.d.ts +38 -0
  303. package/dist/shields/formats/wasm.d.ts.map +1 -0
  304. package/dist/shields/formats/wasm.js +314 -0
  305. package/dist/shields/formats/wasm.js.map +1 -0
  306. package/dist/shields/javascript/ast-shield.d.ts +37 -0
  307. package/dist/shields/javascript/ast-shield.d.ts.map +1 -0
  308. package/dist/shields/javascript/ast-shield.js +645 -0
  309. package/dist/shields/javascript/ast-shield.js.map +1 -0
  310. package/dist/shields/runtime/memory-diff-shield.d.ts +56 -0
  311. package/dist/shields/runtime/memory-diff-shield.d.ts.map +1 -0
  312. package/dist/shields/runtime/memory-diff-shield.js +170 -0
  313. package/dist/shields/runtime/memory-diff-shield.js.map +1 -0
  314. package/dist/shields/runtime/runtime-shield.d.ts +24 -0
  315. package/dist/shields/runtime/runtime-shield.d.ts.map +1 -0
  316. package/dist/shields/runtime/runtime-shield.js +84 -0
  317. package/dist/shields/runtime/runtime-shield.js.map +1 -0
  318. package/dist/shields/tarpit/opaque-predicates.d.ts +10 -0
  319. package/dist/shields/tarpit/opaque-predicates.d.ts.map +1 -0
  320. package/dist/shields/tarpit/opaque-predicates.js +40 -0
  321. package/dist/shields/tarpit/opaque-predicates.js.map +1 -0
  322. package/dist/shields/tarpit/tarpit-generator.d.ts +31 -0
  323. package/dist/shields/tarpit/tarpit-generator.d.ts.map +1 -0
  324. package/dist/shields/tarpit/tarpit-generator.js +194 -0
  325. package/dist/shields/tarpit/tarpit-generator.js.map +1 -0
  326. package/dist/ui/reporter.d.ts +13 -0
  327. package/dist/ui/reporter.d.ts.map +1 -0
  328. package/dist/ui/reporter.js +197 -0
  329. package/dist/ui/reporter.js.map +1 -0
  330. package/package.json +89 -4
@@ -0,0 +1,461 @@
1
+ import { REA_INTERNAL_LIMITS } from "../../identity.js";
2
+ import { SeededPrng } from "../../core/prng.js";
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
+ }
120
+ /**
121
+ * Serializes a Safetensors header and data buffer (does not validate caller input) (`.safetensors`) from a header object and raw data bytes.
122
+ */
123
+ export function buildSafetensorsBuffer(headerObj, tensorData = Buffer.alloc(16, 0)) {
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);
127
+ const lenPrefix = Buffer.alloc(8);
128
+ lenPrefix.writeBigUInt64LE(BigInt(jsonBytes.length), 0);
129
+ return Buffer.concat([lenPrefix, jsonBytes, tensorData]);
130
+ }
131
+ /**
132
+ * Inspects a `.safetensors` or `.gguf` AI model artifact buffer.
133
+ */
134
+ export function inspectModelBuffer(bytes) {
135
+ // Check GGUF magic (`GGUF`)
136
+ if (bytes.length >= 24 &&
137
+ bytes[0] === 0x47 &&
138
+ bytes[1] === 0x47 &&
139
+ bytes[2] === 0x55 &&
140
+ bytes[3] === 0x46) {
141
+ const tensorCount = Number(bytes.readBigUInt64LE(8));
142
+ const metadataCount = Number(bytes.readBigUInt64LE(16));
143
+ const textLatin1 = bytes.toString("latin1");
144
+ const blaProtected = textLatin1.includes("enclave.delegation") ||
145
+ textLatin1.includes("BLA-MODEL-SHIELD");
146
+ return {
147
+ validModel: true,
148
+ format: "gguf",
149
+ tensorCount,
150
+ metadataCount,
151
+ exceedsReaNestingLimit: textLatin1.includes("enclave.nesting.breaker"),
152
+ blaProtected,
153
+ };
154
+ }
155
+ // Check Safetensors (8-byte LE uint64 header size + JSON starting with '{')
156
+ if (bytes.length >= 10 && bytes[8] === 0x7b) {
157
+ try {
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
+ };
174
+ }
175
+ catch {
176
+ // Fallthrough
177
+ }
178
+ }
179
+ return {
180
+ validModel: false,
181
+ format: "unknown",
182
+ tensorCount: 0,
183
+ metadataCount: 0,
184
+ exceedsReaNestingLimit: false,
185
+ blaProtected: false,
186
+ };
187
+ }
188
+ /**
189
+ * Protect a Safetensors artifact without changing tensor bytes or required
190
+ * descriptor fields (`dtype` / `shape` / `data_offsets`).
191
+ *
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.
198
+ */
199
+ export function protectSafetensorsBuffer(bytes, options = {}) {
200
+ const { header: headerObj, tensorData } = validateSafetensorsBuffer(bytes);
201
+ const intensity = options.intensity ?? "balanced";
202
+ const prng = new SeededPrng(options.seed ?? "bla-safetensors-shield-v1");
203
+ const chaffPayloads = generateChaffPayloads(prng, intensity);
204
+ const deception = buildCanaryAndDiagnosticPayloads(prng, intensity);
205
+ const existingMeta = typeof headerObj.__metadata__ === "object" && headerObj.__metadata__ !== null
206
+ ? { ...headerObj.__metadata__ }
207
+ : {};
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;
212
+ chaffPayloads.forEach((p, idx) => {
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
+ });
234
+ });
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;
239
+ let triggeredJsonNestingBreaker = false;
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;
258
+ }
259
+ }
260
+ const buffer = buildSafetensorsBuffer(headerObj, tensorData);
261
+ validateSafetensorsBuffer(buffer);
262
+ return {
263
+ buffer,
264
+ chaffPayloadsEmbedded,
265
+ triggeredJsonNestingBreaker,
266
+ canaryTokensEmbedded: deception.canary.syntheticCanaryTokens.length,
267
+ diagnosticsEmbedded: deception.diagnostics.diagnosticsInjected.length,
268
+ };
269
+ }
270
+ function encodeGgufString(str) {
271
+ const utf8 = Buffer.from(str, "utf8");
272
+ const len = Buffer.alloc(8);
273
+ len.writeBigUInt64LE(BigInt(utf8.length), 0);
274
+ return Buffer.concat([len, utf8]);
275
+ }
276
+ function skipGgufValue(bytes, offset, valType, depth = 0) {
277
+ if (depth > 64 || offset > bytes.length)
278
+ return null;
279
+ switch (valType) {
280
+ case 0:
281
+ case 1:
282
+ case 7:
283
+ return offset + 1 <= bytes.length ? offset + 1 : null;
284
+ case 2:
285
+ case 3:
286
+ return offset + 2 <= bytes.length ? offset + 2 : null;
287
+ case 4:
288
+ case 5:
289
+ case 6:
290
+ return offset + 4 <= bytes.length ? offset + 4 : null;
291
+ case 10:
292
+ case 11:
293
+ case 12:
294
+ return offset + 8 <= bytes.length ? offset + 8 : null;
295
+ case 8: {
296
+ if (offset + 8 > bytes.length)
297
+ return null;
298
+ const len = Number(bytes.readBigUInt64LE(offset));
299
+ const end = offset + 8 + len;
300
+ return end <= bytes.length ? end : null;
301
+ }
302
+ case 9: {
303
+ if (offset + 12 > bytes.length)
304
+ return null;
305
+ const elemType = bytes.readUInt32LE(offset);
306
+ const count = Number(bytes.readBigUInt64LE(offset + 4));
307
+ let cur = offset + 12;
308
+ for (let i = 0; i < count; i++) {
309
+ const next = skipGgufValue(bytes, cur, elemType, depth + 1);
310
+ if (next === null)
311
+ return null;
312
+ cur = next;
313
+ }
314
+ return cur;
315
+ }
316
+ default:
317
+ return null;
318
+ }
319
+ }
320
+ function parseExistingGgufHeader(bytes) {
321
+ if (bytes.length < 24 ||
322
+ bytes[0] !== 0x47 ||
323
+ bytes[1] !== 0x47 ||
324
+ bytes[2] !== 0x55 ||
325
+ bytes[3] !== 0x46) {
326
+ return null;
327
+ }
328
+ const version = bytes.readUInt32LE(4);
329
+ if (version !== 2 && version !== 3)
330
+ return null;
331
+ const tensorCount = bytes.readBigUInt64LE(8);
332
+ const kvCount = bytes.readBigUInt64LE(16);
333
+ if (kvCount > 100000n)
334
+ return null;
335
+ let offset = 24;
336
+ const existingKeys = new Set();
337
+ for (let i = 0n; i < kvCount; i++) {
338
+ if (offset + 12 > bytes.length)
339
+ return null;
340
+ const keyLen = Number(bytes.readBigUInt64LE(offset));
341
+ if (offset + 8 + keyLen + 4 > bytes.length)
342
+ return null;
343
+ const key = bytes.subarray(offset + 8, offset + 8 + keyLen).toString("utf8");
344
+ existingKeys.add(key);
345
+ const valType = bytes.readUInt32LE(offset + 8 + keyLen);
346
+ const nextOffset = skipGgufValue(bytes, offset + 8 + keyLen + 4, valType, 0);
347
+ if (nextOffset === null)
348
+ return null;
349
+ offset = nextOffset;
350
+ }
351
+ return {
352
+ version,
353
+ tensorCount,
354
+ kvCount,
355
+ kvEndOffset: offset,
356
+ existingKeys,
357
+ };
358
+ }
359
+ /**
360
+ * Builds or protects a GGUF v2/v3 (`.gguf`) model binary against REA's `GgufHeader.ts`:
361
+ * 1. Preserves all existing GGUF metadata KV entries and trailing tensor records.
362
+ * 2. Injects valid lowercase hierarchy metadata keys (`enclave.delegation.manifest`, `general.description`).
363
+ * 3. Injects a 35-frame nested GGUF `ARRAY` (type `9`) metadata entry (`enclave.nesting.breaker`)
364
+ * exceeding REA's `MODEL_METADATA_NESTING = 32` (`GgufHeader.ts:121`), which forces
365
+ * `rea inspect-model-artifact` to abort with `ModelFormatFailure("capacity", ..., "metadata-nesting")`!
366
+ */
367
+ export function protectGgufBuffer(bytes, options = {}) {
368
+ const intensity = options.intensity ?? "balanced";
369
+ const prng = new SeededPrng(options.seed ?? "bla-gguf-shield-v1");
370
+ const chaffPayloads = generateChaffPayloads(prng, intensity);
371
+ const deception = buildCanaryAndDiagnosticPayloads(prng, intensity);
372
+ const parsed = parseExistingGgufHeader(bytes);
373
+ const existingKvSlice = parsed ? bytes.subarray(24, parsed.kvEndOffset) : Buffer.alloc(0);
374
+ const trailingTensorSlice = parsed ? bytes.subarray(parsed.kvEndOffset) : Buffer.alloc(0);
375
+ const kvEntries = [];
376
+ // KV 1: general.description (STRING = 8) — only add if not already present in input
377
+ if (!parsed || !parsed.existingKeys.has("general.description")) {
378
+ const key = encodeGgufString("general.description");
379
+ const type = Buffer.alloc(4);
380
+ type.writeUInt32LE(8, 0);
381
+ const val = encodeGgufString(`[BLA-MODEL-SHIELD] ${chaffPayloads[0].rawText}`);
382
+ kvEntries.push(Buffer.concat([key, type, val]));
383
+ }
384
+ // KV 2: enclave.delegation.manifest (STRING = 8)
385
+ if (!parsed || !parsed.existingKeys.has("enclave.delegation.manifest")) {
386
+ const key = encodeGgufString("enclave.delegation.manifest");
387
+ const type = Buffer.alloc(4);
388
+ type.writeUInt32LE(8, 0);
389
+ const val = encodeGgufString(chaffPayloads.map((p) => p.rawText).join(" | "));
390
+ kvEntries.push(Buffer.concat([key, type, val]));
391
+ }
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)
422
+ const nestingDepth = REA_INTERNAL_LIMITS.MODEL_MAX_METADATA_NESTING + 3;
423
+ if (!parsed || !parsed.existingKeys.has("enclave.nesting.breaker")) {
424
+ const key = encodeGgufString("enclave.nesting.breaker");
425
+ const outerType = Buffer.alloc(4);
426
+ outerType.writeUInt32LE(9, 0); // KV value type = 9 (ARRAY)
427
+ const frames = [key, outerType];
428
+ for (let d = 0; d < nestingDepth; d++) {
429
+ const arrHeader = Buffer.alloc(12);
430
+ arrHeader.writeUInt32LE(d === nestingDepth - 1 ? 4 : 9, 0); // element_type: innermost = UINT32 (4), outer = ARRAY (9)
431
+ arrHeader.writeBigUInt64LE(1n, 4); // count = 1
432
+ frames.push(arrHeader);
433
+ }
434
+ const leafUint32 = Buffer.alloc(4);
435
+ leafUint32.writeUInt32LE(0xdeadbeef, 0);
436
+ frames.push(leafUint32);
437
+ kvEntries.push(Buffer.concat(frames));
438
+ }
439
+ const header = Buffer.alloc(24);
440
+ header.write("GGUF", 0, "ascii");
441
+ header.writeUInt32LE(parsed ? parsed.version : 3, 4);
442
+ header.writeBigUInt64LE(parsed ? parsed.tensorCount : 0n, 8);
443
+ header.writeBigUInt64LE((parsed ? parsed.kvCount : 0n) + BigInt(kvEntries.length), 16);
444
+ const combined = Buffer.concat([
445
+ header,
446
+ existingKvSlice,
447
+ ...kvEntries,
448
+ trailingTensorSlice,
449
+ ]);
450
+ const alignedPad = trailingTensorSlice.length > 0
451
+ ? Buffer.alloc(0)
452
+ : Buffer.alloc((32 - (combined.length % 32)) % 32, 0);
453
+ return {
454
+ buffer: Buffer.concat([combined, alignedPad]),
455
+ chaffPayloadsEmbedded: chaffPayloads.length,
456
+ triggeredMetadataNestingBreaker: true,
457
+ canaryTokensEmbedded: deception.canary.syntheticCanaryTokens.length,
458
+ diagnosticsEmbedded: deception.diagnostics.diagnosticsInjected.length,
459
+ };
460
+ }
461
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/shields/formats/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { type BunCarrierDetection } from "./bun-standalone.js";
2
+ import { SeededPrng } from "../../core/prng.js";
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
+ }
39
+ export interface NativeBinaryInspection {
40
+ readonly format: "native-elf" | "native-macho" | "native-pe" | "unknown";
41
+ readonly architecture: string;
42
+ readonly bits: 32 | 64;
43
+ readonly rustcCommitHashesCount: number;
44
+ readonly electronFuseSentinelsCount: number;
45
+ readonly dartSnapshotHashesCount: number;
46
+ readonly dartPoolPackageUriCount: number;
47
+ readonly dartPoolTokenCount: number;
48
+ readonly hasRustDepV0: boolean;
49
+ readonly hasGoBuildInfo: boolean;
50
+ readonly goBuildInfoFramed: boolean;
51
+ readonly extractedStringsCount: number;
52
+ readonly blaProtected: boolean;
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;
60
+ export declare function inspectNativeBinary(bytes: Buffer): NativeBinaryInspection;
61
+ /**
62
+ * Generates a zlib-compressed `cargo-auditable` `.dep-v0` decoy dependency graph
63
+ * containing hardware enclave & TEE crates so static Rust dependency scanners
64
+ * see an enterprise enclave architecture.
65
+ */
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
+ /**
70
+ * Protects a Native Binary (ELF / Mach-O / PE) against REA's native & desktop analyzers
71
+ * while strictly preserving ELF64 `PT_LOAD` (`p_offset`, `p_filesz`, `p_memsz` / BSS) and
72
+ * section header boundaries. Real Electron fuses are only mutated when an explicit
73
+ * verified `electronHardeningContext` is provided.
74
+ */
75
+ export declare function protectNativeBinary(bytes: Buffer, options?: {
76
+ readonly intensity?: ProtectionIntensity;
77
+ readonly seed?: string | number;
78
+ readonly electronHardeningContext?: ElectronHardeningContext;
79
+ }): {
80
+ readonly buffer: Buffer;
81
+ readonly rustcHashesInjected: number;
82
+ readonly electronFuseSentinelsInjected: number;
83
+ readonly dartSnapshotHashesInjected: number;
84
+ readonly dartPoolUrisInjected: number;
85
+ readonly dartPoolTokensInjected: number;
86
+ readonly goBuildInfoExceedsLimit: boolean;
87
+ readonly mappedGoBuildInfoPlanted: boolean;
88
+ readonly mappedFlutterPoolPlanted: boolean;
89
+ readonly chaffPayloadsEmbedded: number;
90
+ readonly binarySectionsPatched: number;
91
+ readonly electronHardeningReport?: ElectronHardeningReport;
92
+ /**
93
+ * Bun standalone carrier observed in the input (REA #6998). When the graph
94
+ * rides an EOF trailer, nothing is appended or patched: Bun resolves that
95
+ * graph from EOF at runtime, so the binary is passed through byte-exact.
96
+ */
97
+ readonly bunStandaloneCarrier: BunCarrierDetection["kind"];
98
+ readonly bunStandaloneGraphPreserved: boolean;
99
+ };
100
+ export declare function detectNativeFormatName(format: ArtifactFormat): string;
101
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/shields/formats/native.ts"],"names":[],"mappings":"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"}