@vorionsys/atsf-core 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +1 -1
  3. package/README.md +82 -29
  4. package/dist/adapters/base-adapter.d.ts +94 -0
  5. package/dist/adapters/base-adapter.d.ts.map +1 -0
  6. package/dist/adapters/base-adapter.js +233 -0
  7. package/dist/adapters/base-adapter.js.map +1 -0
  8. package/dist/adapters/index.d.ts +9 -0
  9. package/dist/adapters/index.d.ts.map +1 -0
  10. package/dist/adapters/index.js +5 -0
  11. package/dist/adapters/index.js.map +1 -0
  12. package/dist/adapters/types.d.ts +83 -0
  13. package/dist/adapters/types.d.ts.map +1 -0
  14. package/dist/adapters/types.js +4 -0
  15. package/dist/adapters/types.js.map +1 -0
  16. package/dist/adapters/webhook-handler.d.ts +64 -0
  17. package/dist/adapters/webhook-handler.d.ts.map +1 -0
  18. package/dist/adapters/webhook-handler.js +170 -0
  19. package/dist/adapters/webhook-handler.js.map +1 -0
  20. package/dist/api/index.d.ts +1 -1
  21. package/dist/api/index.d.ts.map +1 -1
  22. package/dist/api/index.js +3 -1
  23. package/dist/api/index.js.map +1 -1
  24. package/dist/api/server.d.ts +2 -2
  25. package/dist/api/server.d.ts.map +1 -1
  26. package/dist/api/server.js +149 -184
  27. package/dist/api/server.js.map +1 -1
  28. package/dist/arbitration/index.d.ts +4 -12
  29. package/dist/arbitration/index.d.ts.map +1 -1
  30. package/dist/arbitration/index.js +43 -46
  31. package/dist/arbitration/index.js.map +1 -1
  32. package/dist/arbitration/types.d.ts +10 -10
  33. package/dist/arbitration/types.d.ts.map +1 -1
  34. package/dist/arbitration/types.js +2 -8
  35. package/dist/arbitration/types.js.map +1 -1
  36. package/dist/basis/evaluator.d.ts +1 -6
  37. package/dist/basis/evaluator.d.ts.map +1 -1
  38. package/dist/basis/evaluator.js +56 -56
  39. package/dist/basis/evaluator.js.map +1 -1
  40. package/dist/basis/index.d.ts +3 -3
  41. package/dist/basis/index.d.ts.map +1 -1
  42. package/dist/basis/index.js +5 -3
  43. package/dist/basis/index.js.map +1 -1
  44. package/dist/basis/parser.d.ts +30 -30
  45. package/dist/basis/parser.d.ts.map +1 -1
  46. package/dist/basis/parser.js +27 -32
  47. package/dist/basis/parser.js.map +1 -1
  48. package/dist/basis/types.d.ts +2 -2
  49. package/dist/basis/types.d.ts.map +1 -1
  50. package/dist/basis/types.js +2 -3
  51. package/dist/basis/types.js.map +1 -1
  52. package/dist/chain/index.d.ts +0 -8
  53. package/dist/chain/index.d.ts.map +1 -1
  54. package/dist/chain/index.js +18 -16
  55. package/dist/chain/index.js.map +1 -1
  56. package/dist/cognigate/index.d.ts +1 -9
  57. package/dist/cognigate/index.d.ts.map +1 -1
  58. package/dist/cognigate/index.js +35 -44
  59. package/dist/cognigate/index.js.map +1 -1
  60. package/dist/common/adapters.d.ts +4 -4
  61. package/dist/common/adapters.d.ts.map +1 -1
  62. package/dist/common/adapters.js +54 -70
  63. package/dist/common/adapters.js.map +1 -1
  64. package/dist/common/config.d.ts +69 -68
  65. package/dist/common/config.d.ts.map +1 -1
  66. package/dist/common/config.js +52 -50
  67. package/dist/common/config.js.map +1 -1
  68. package/dist/common/index.d.ts +4 -4
  69. package/dist/common/index.d.ts.map +1 -1
  70. package/dist/common/index.js +6 -4
  71. package/dist/common/index.js.map +1 -1
  72. package/dist/common/logger.d.ts +1 -1
  73. package/dist/common/logger.d.ts.map +1 -1
  74. package/dist/common/logger.js +10 -8
  75. package/dist/common/logger.js.map +1 -1
  76. package/dist/common/types.d.ts +12 -12
  77. package/dist/common/types.d.ts.map +1 -1
  78. package/dist/common/types.js +7 -14
  79. package/dist/common/types.js.map +1 -1
  80. package/dist/containment/index.d.ts +3 -11
  81. package/dist/containment/index.d.ts.map +1 -1
  82. package/dist/containment/index.js +107 -119
  83. package/dist/containment/index.js.map +1 -1
  84. package/dist/containment/types.d.ts +11 -11
  85. package/dist/containment/types.d.ts.map +1 -1
  86. package/dist/containment/types.js +2 -8
  87. package/dist/containment/types.js.map +1 -1
  88. package/dist/contracts/index.d.ts +9 -17
  89. package/dist/contracts/index.d.ts.map +1 -1
  90. package/dist/contracts/index.js +56 -59
  91. package/dist/contracts/index.js.map +1 -1
  92. package/dist/contracts/types.d.ts +12 -12
  93. package/dist/contracts/types.d.ts.map +1 -1
  94. package/dist/contracts/types.js +2 -8
  95. package/dist/contracts/types.js.map +1 -1
  96. package/dist/crewai/callback.d.ts +2 -9
  97. package/dist/crewai/callback.d.ts.map +1 -1
  98. package/dist/crewai/callback.js +29 -27
  99. package/dist/crewai/callback.js.map +1 -1
  100. package/dist/crewai/executor.d.ts +95 -11
  101. package/dist/crewai/executor.d.ts.map +1 -1
  102. package/dist/crewai/executor.js +459 -16
  103. package/dist/crewai/executor.js.map +1 -1
  104. package/dist/crewai/index.d.ts +4 -4
  105. package/dist/crewai/index.d.ts.map +1 -1
  106. package/dist/crewai/index.js +6 -4
  107. package/dist/crewai/index.js.map +1 -1
  108. package/dist/crewai/tools.d.ts +1 -1
  109. package/dist/crewai/tools.d.ts.map +1 -1
  110. package/dist/crewai/tools.js +40 -46
  111. package/dist/crewai/tools.js.map +1 -1
  112. package/dist/crewai/types.d.ts +66 -3
  113. package/dist/crewai/types.d.ts.map +1 -1
  114. package/dist/crewai/types.js +2 -7
  115. package/dist/crewai/types.js.map +1 -1
  116. package/dist/enforce/index.d.ts +226 -19
  117. package/dist/enforce/index.d.ts.map +1 -1
  118. package/dist/enforce/index.js +55 -81
  119. package/dist/enforce/index.js.map +1 -1
  120. package/dist/enforce/trust-aware-enforcement-service.d.ts +8 -23
  121. package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
  122. package/dist/enforce/trust-aware-enforcement-service.js +109 -125
  123. package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
  124. package/dist/governance/fluid-workflow.d.ts +8 -16
  125. package/dist/governance/fluid-workflow.d.ts.map +1 -1
  126. package/dist/governance/fluid-workflow.js +88 -114
  127. package/dist/governance/fluid-workflow.js.map +1 -1
  128. package/dist/governance/index.d.ts +7 -15
  129. package/dist/governance/index.d.ts.map +1 -1
  130. package/dist/governance/index.js +76 -81
  131. package/dist/governance/index.js.map +1 -1
  132. package/dist/governance/proof-bridge.d.ts +6 -6
  133. package/dist/governance/proof-bridge.d.ts.map +1 -1
  134. package/dist/governance/proof-bridge.js +6 -16
  135. package/dist/governance/proof-bridge.js.map +1 -1
  136. package/dist/governance/types.d.ts +9 -16
  137. package/dist/governance/types.d.ts.map +1 -1
  138. package/dist/governance/types.js +2 -8
  139. package/dist/governance/types.js.map +1 -1
  140. package/dist/index.d.ts +30 -29
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +33 -31
  143. package/dist/index.js.map +1 -1
  144. package/dist/intent/index.d.ts +55 -18
  145. package/dist/intent/index.d.ts.map +1 -1
  146. package/dist/intent/index.js +25 -26
  147. package/dist/intent/index.js.map +1 -1
  148. package/dist/intent/persistent-intent-service.d.ts +2 -17
  149. package/dist/intent/persistent-intent-service.d.ts.map +1 -1
  150. package/dist/intent/persistent-intent-service.js +33 -43
  151. package/dist/intent/persistent-intent-service.js.map +1 -1
  152. package/dist/intent/supabase-intent-repository.d.ts +107 -0
  153. package/dist/intent/supabase-intent-repository.d.ts.map +1 -0
  154. package/dist/intent/supabase-intent-repository.js +406 -0
  155. package/dist/intent/supabase-intent-repository.js.map +1 -0
  156. package/dist/intent-gateway/index.d.ts +5 -28
  157. package/dist/intent-gateway/index.d.ts.map +1 -1
  158. package/dist/intent-gateway/index.js +341 -508
  159. package/dist/intent-gateway/index.js.map +1 -1
  160. package/dist/langchain/callback.d.ts +2 -9
  161. package/dist/langchain/callback.d.ts.map +1 -1
  162. package/dist/langchain/callback.js +32 -30
  163. package/dist/langchain/callback.js.map +1 -1
  164. package/dist/langchain/executor.d.ts +4 -11
  165. package/dist/langchain/executor.d.ts.map +1 -1
  166. package/dist/langchain/executor.js +82 -82
  167. package/dist/langchain/executor.js.map +1 -1
  168. package/dist/langchain/index.d.ts +5 -5
  169. package/dist/langchain/index.d.ts.map +1 -1
  170. package/dist/langchain/index.js +7 -5
  171. package/dist/langchain/index.js.map +1 -1
  172. package/dist/langchain/tools.d.ts +1 -1
  173. package/dist/langchain/tools.d.ts.map +1 -1
  174. package/dist/langchain/tools.js +36 -43
  175. package/dist/langchain/tools.js.map +1 -1
  176. package/dist/langchain/types.d.ts +3 -3
  177. package/dist/langchain/types.d.ts.map +1 -1
  178. package/dist/langchain/types.js +2 -7
  179. package/dist/langchain/types.js.map +1 -1
  180. package/dist/layers/implementations/L0-request-format.d.ts +2 -2
  181. package/dist/layers/implementations/L0-request-format.d.ts.map +1 -1
  182. package/dist/layers/implementations/L0-request-format.js +54 -54
  183. package/dist/layers/implementations/L0-request-format.js.map +1 -1
  184. package/dist/layers/implementations/L1-input-size.d.ts +2 -2
  185. package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
  186. package/dist/layers/implementations/L1-input-size.js +41 -49
  187. package/dist/layers/implementations/L1-input-size.js.map +1 -1
  188. package/dist/layers/implementations/L2-charset-sanitizer.d.ts +2 -2
  189. package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
  190. package/dist/layers/implementations/L2-charset-sanitizer.js +73 -81
  191. package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
  192. package/dist/layers/implementations/L3-schema-conformance.d.ts +3 -3
  193. package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
  194. package/dist/layers/implementations/L3-schema-conformance.js +75 -82
  195. package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
  196. package/dist/layers/implementations/L4-injection-detector.d.ts +4 -4
  197. package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
  198. package/dist/layers/implementations/L4-injection-detector.js +83 -85
  199. package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
  200. package/dist/layers/implementations/L5-rate-limiter.d.ts +2 -2
  201. package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
  202. package/dist/layers/implementations/L5-rate-limiter.js +22 -20
  203. package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
  204. package/dist/layers/implementations/index.d.ts +6 -6
  205. package/dist/layers/implementations/index.d.ts.map +1 -1
  206. package/dist/layers/implementations/index.js +8 -6
  207. package/dist/layers/implementations/index.js.map +1 -1
  208. package/dist/layers/index.d.ts +3 -11
  209. package/dist/layers/index.d.ts.map +1 -1
  210. package/dist/layers/index.js +73 -99
  211. package/dist/layers/index.js.map +1 -1
  212. package/dist/layers/types.d.ts +16 -16
  213. package/dist/layers/types.d.ts.map +1 -1
  214. package/dist/layers/types.js +2 -8
  215. package/dist/layers/types.js.map +1 -1
  216. package/dist/paramesphere/activation-collector.d.ts +128 -0
  217. package/dist/paramesphere/activation-collector.d.ts.map +1 -0
  218. package/dist/paramesphere/activation-collector.js +260 -0
  219. package/dist/paramesphere/activation-collector.js.map +1 -0
  220. package/dist/paramesphere/cognitive-envelope.d.ts +73 -0
  221. package/dist/paramesphere/cognitive-envelope.d.ts.map +1 -0
  222. package/dist/paramesphere/cognitive-envelope.js +209 -0
  223. package/dist/paramesphere/cognitive-envelope.js.map +1 -0
  224. package/dist/paramesphere/envelope-integration.d.ts +60 -0
  225. package/dist/paramesphere/envelope-integration.d.ts.map +1 -0
  226. package/dist/paramesphere/envelope-integration.js +93 -0
  227. package/dist/paramesphere/envelope-integration.js.map +1 -0
  228. package/dist/paramesphere/fingerprint-monitor.d.ts +136 -0
  229. package/dist/paramesphere/fingerprint-monitor.d.ts.map +1 -0
  230. package/dist/paramesphere/fingerprint-monitor.js +212 -0
  231. package/dist/paramesphere/fingerprint-monitor.js.map +1 -0
  232. package/dist/paramesphere/fingerprint-store.d.ts +85 -0
  233. package/dist/paramesphere/fingerprint-store.d.ts.map +1 -0
  234. package/dist/paramesphere/fingerprint-store.js +68 -0
  235. package/dist/paramesphere/fingerprint-store.js.map +1 -0
  236. package/dist/paramesphere/index.d.ts +21 -0
  237. package/dist/paramesphere/index.d.ts.map +1 -0
  238. package/dist/paramesphere/index.js +18 -0
  239. package/dist/paramesphere/index.js.map +1 -0
  240. package/dist/paramesphere/monitor-integration.d.ts +37 -0
  241. package/dist/paramesphere/monitor-integration.d.ts.map +1 -0
  242. package/dist/paramesphere/monitor-integration.js +81 -0
  243. package/dist/paramesphere/monitor-integration.js.map +1 -0
  244. package/dist/paramesphere/paramesphere-engine.d.ts +111 -0
  245. package/dist/paramesphere/paramesphere-engine.d.ts.map +1 -0
  246. package/dist/paramesphere/paramesphere-engine.js +542 -0
  247. package/dist/paramesphere/paramesphere-engine.js.map +1 -0
  248. package/dist/paramesphere/types.d.ts +142 -0
  249. package/dist/paramesphere/types.d.ts.map +1 -0
  250. package/dist/paramesphere/types.js +4 -0
  251. package/dist/paramesphere/types.js.map +1 -0
  252. package/dist/persistence/file.d.ts +3 -10
  253. package/dist/persistence/file.d.ts.map +1 -1
  254. package/dist/persistence/file.js +30 -32
  255. package/dist/persistence/file.js.map +1 -1
  256. package/dist/persistence/index.d.ts +7 -7
  257. package/dist/persistence/index.d.ts.map +1 -1
  258. package/dist/persistence/index.js +20 -18
  259. package/dist/persistence/index.js.map +1 -1
  260. package/dist/persistence/memory.d.ts +3 -3
  261. package/dist/persistence/memory.d.ts.map +1 -1
  262. package/dist/persistence/memory.js +10 -17
  263. package/dist/persistence/memory.js.map +1 -1
  264. package/dist/persistence/sqlite.d.ts +3 -11
  265. package/dist/persistence/sqlite.d.ts.map +1 -1
  266. package/dist/persistence/sqlite.js +42 -39
  267. package/dist/persistence/sqlite.js.map +1 -1
  268. package/dist/persistence/supabase.d.ts +3 -3
  269. package/dist/persistence/supabase.d.ts.map +1 -1
  270. package/dist/persistence/supabase.js +46 -49
  271. package/dist/persistence/supabase.js.map +1 -1
  272. package/dist/persistence/types.d.ts +5 -5
  273. package/dist/persistence/types.d.ts.map +1 -1
  274. package/dist/persistence/types.js +2 -7
  275. package/dist/persistence/types.js.map +1 -1
  276. package/dist/phase6/ceiling.d.ts +5 -21
  277. package/dist/phase6/ceiling.d.ts.map +1 -1
  278. package/dist/phase6/ceiling.js +38 -69
  279. package/dist/phase6/ceiling.js.map +1 -1
  280. package/dist/phase6/context.d.ts +3 -20
  281. package/dist/phase6/context.d.ts.map +1 -1
  282. package/dist/phase6/context.js +49 -93
  283. package/dist/phase6/context.js.map +1 -1
  284. package/dist/phase6/index.d.ts +12 -12
  285. package/dist/phase6/index.d.ts.map +1 -1
  286. package/dist/phase6/index.js +17 -15
  287. package/dist/phase6/index.js.map +1 -1
  288. package/dist/phase6/presets.d.ts +2 -18
  289. package/dist/phase6/presets.d.ts.map +1 -1
  290. package/dist/phase6/presets.js +35 -39
  291. package/dist/phase6/presets.js.map +1 -1
  292. package/dist/phase6/provenance.d.ts +4 -19
  293. package/dist/phase6/provenance.d.ts.map +1 -1
  294. package/dist/phase6/provenance.js +37 -42
  295. package/dist/phase6/provenance.js.map +1 -1
  296. package/dist/phase6/role-gates/index.d.ts +2 -2
  297. package/dist/phase6/role-gates/index.d.ts.map +1 -1
  298. package/dist/phase6/role-gates/index.js +4 -2
  299. package/dist/phase6/role-gates/index.js.map +1 -1
  300. package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
  301. package/dist/phase6/role-gates/kernel.js +18 -16
  302. package/dist/phase6/role-gates/kernel.js.map +1 -1
  303. package/dist/phase6/role-gates/policy.d.ts +2 -2
  304. package/dist/phase6/role-gates/policy.d.ts.map +1 -1
  305. package/dist/phase6/role-gates/policy.js +8 -17
  306. package/dist/phase6/role-gates/policy.js.map +1 -1
  307. package/dist/phase6/role-gates.d.ts +4 -20
  308. package/dist/phase6/role-gates.d.ts.map +1 -1
  309. package/dist/phase6/role-gates.js +60 -80
  310. package/dist/phase6/role-gates.js.map +1 -1
  311. package/dist/phase6/types.d.ts +53 -23
  312. package/dist/phase6/types.d.ts.map +1 -1
  313. package/dist/phase6/types.js +131 -177
  314. package/dist/phase6/types.js.map +1 -1
  315. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
  316. package/dist/phase6/weight-presets/canonical.js +12 -10
  317. package/dist/phase6/weight-presets/canonical.js.map +1 -1
  318. package/dist/phase6/weight-presets/deltas.d.ts +2 -2
  319. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
  320. package/dist/phase6/weight-presets/deltas.js +29 -37
  321. package/dist/phase6/weight-presets/deltas.js.map +1 -1
  322. package/dist/phase6/weight-presets/index.d.ts +3 -3
  323. package/dist/phase6/weight-presets/index.d.ts.map +1 -1
  324. package/dist/phase6/weight-presets/index.js +5 -3
  325. package/dist/phase6/weight-presets/index.js.map +1 -1
  326. package/dist/phase6/weight-presets/merger.d.ts +2 -12
  327. package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
  328. package/dist/phase6/weight-presets/merger.js +45 -39
  329. package/dist/phase6/weight-presets/merger.js.map +1 -1
  330. package/dist/proof/index.d.ts +6 -13
  331. package/dist/proof/index.d.ts.map +1 -1
  332. package/dist/proof/index.js +63 -51
  333. package/dist/proof/index.js.map +1 -1
  334. package/dist/proof/merkle.d.ts +24 -19
  335. package/dist/proof/merkle.d.ts.map +1 -1
  336. package/dist/proof/merkle.js +118 -32
  337. package/dist/proof/merkle.js.map +1 -1
  338. package/dist/proof/zk-proofs.d.ts +6 -24
  339. package/dist/proof/zk-proofs.d.ts.map +1 -1
  340. package/dist/proof/zk-proofs.js +45 -42
  341. package/dist/proof/zk-proofs.js.map +1 -1
  342. package/dist/provenance/index.d.ts +3 -11
  343. package/dist/provenance/index.d.ts.map +1 -1
  344. package/dist/provenance/index.js +19 -19
  345. package/dist/provenance/index.js.map +1 -1
  346. package/dist/provenance/types.d.ts +4 -4
  347. package/dist/provenance/types.d.ts.map +1 -1
  348. package/dist/provenance/types.js +2 -8
  349. package/dist/provenance/types.js.map +1 -1
  350. package/dist/sandbox-training/challenges.d.ts +1 -1
  351. package/dist/sandbox-training/challenges.d.ts.map +1 -1
  352. package/dist/sandbox-training/challenges.js +230 -236
  353. package/dist/sandbox-training/challenges.js.map +1 -1
  354. package/dist/sandbox-training/graduation.d.ts +1 -1
  355. package/dist/sandbox-training/graduation.d.ts.map +1 -1
  356. package/dist/sandbox-training/graduation.js +17 -22
  357. package/dist/sandbox-training/graduation.js.map +1 -1
  358. package/dist/sandbox-training/index.d.ts +9 -9
  359. package/dist/sandbox-training/index.d.ts.map +1 -1
  360. package/dist/sandbox-training/index.js +8 -6
  361. package/dist/sandbox-training/index.js.map +1 -1
  362. package/dist/sandbox-training/promotion-service.d.ts +4 -4
  363. package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
  364. package/dist/sandbox-training/promotion-service.js +7 -16
  365. package/dist/sandbox-training/promotion-service.js.map +1 -1
  366. package/dist/sandbox-training/runner.d.ts +1 -1
  367. package/dist/sandbox-training/runner.d.ts.map +1 -1
  368. package/dist/sandbox-training/runner.js +75 -82
  369. package/dist/sandbox-training/runner.js.map +1 -1
  370. package/dist/sandbox-training/scorer.d.ts +4 -4
  371. package/dist/sandbox-training/scorer.d.ts.map +1 -1
  372. package/dist/sandbox-training/scorer.js +7 -13
  373. package/dist/sandbox-training/scorer.js.map +1 -1
  374. package/dist/sandbox-training/types.d.ts +4 -4
  375. package/dist/sandbox-training/types.d.ts.map +1 -1
  376. package/dist/sandbox-training/types.js +9 -19
  377. package/dist/sandbox-training/types.js.map +1 -1
  378. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -9
  379. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
  380. package/dist/trust-engine/ceiling-enforcement/audit.js +6 -11
  381. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
  382. package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
  383. package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -1
  384. package/dist/trust-engine/ceiling-enforcement/index.js +4 -2
  385. package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -1
  386. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +12 -10
  387. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
  388. package/dist/trust-engine/ceiling-enforcement/kernel.js +28 -20
  389. package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -1
  390. package/dist/trust-engine/context-policy/enforcement.d.ts +0 -9
  391. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
  392. package/dist/trust-engine/context-policy/enforcement.js +2 -9
  393. package/dist/trust-engine/context-policy/enforcement.js.map +1 -1
  394. package/dist/trust-engine/context-policy/factory.d.ts +1 -1
  395. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
  396. package/dist/trust-engine/context-policy/factory.js +3 -1
  397. package/dist/trust-engine/context-policy/factory.js.map +1 -1
  398. package/dist/trust-engine/context-policy/index.d.ts +2 -2
  399. package/dist/trust-engine/context-policy/index.d.ts.map +1 -1
  400. package/dist/trust-engine/context-policy/index.js +4 -2
  401. package/dist/trust-engine/context-policy/index.js.map +1 -1
  402. package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
  403. package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -1
  404. package/dist/trust-engine/creation-modifiers/index.js +3 -1
  405. package/dist/trust-engine/creation-modifiers/index.js.map +1 -1
  406. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
  407. package/dist/trust-engine/creation-modifiers/types.js +5 -2
  408. package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
  409. package/dist/trust-engine/decay-profiles.d.ts +37 -136
  410. package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
  411. package/dist/trust-engine/decay-profiles.js +61 -183
  412. package/dist/trust-engine/decay-profiles.js.map +1 -1
  413. package/dist/trust-engine/index.d.ts +327 -22
  414. package/dist/trust-engine/index.d.ts.map +1 -1
  415. package/dist/trust-engine/index.js +706 -130
  416. package/dist/trust-engine/index.js.map +1 -1
  417. package/dist/trust-engine/phase6-types.d.ts +15 -18
  418. package/dist/trust-engine/phase6-types.d.ts.map +1 -1
  419. package/dist/trust-engine/phase6-types.js +32 -36
  420. package/dist/trust-engine/phase6-types.js.map +1 -1
  421. package/dist/trust-engine/trust-verifier.d.ts +121 -0
  422. package/dist/trust-engine/trust-verifier.d.ts.map +1 -0
  423. package/dist/trust-engine/trust-verifier.js +226 -0
  424. package/dist/trust-engine/trust-verifier.js.map +1 -0
  425. package/package.json +140 -135
  426. package/dist/enforce/types.d.ts +0 -234
  427. package/dist/enforce/types.d.ts.map +0 -1
  428. package/dist/enforce/types.js +0 -10
  429. package/dist/enforce/types.js.map +0 -1
  430. package/dist/intent/types.d.ts +0 -69
  431. package/dist/intent/types.d.ts.map +0 -1
  432. package/dist/intent/types.js +0 -10
  433. package/dist/intent/types.js.map +0 -1
  434. package/dist/trust-engine/types.d.ts +0 -77
  435. package/dist/trust-engine/types.d.ts.map +0 -1
  436. package/dist/trust-engine/types.js +0 -20
  437. package/dist/trust-engine/types.js.map +0 -1
@@ -0,0 +1,212 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright 2024-2026 Vorion LLC
3
+ // ---------------------------------------------------------------------------
4
+ // Defaults
5
+ // ---------------------------------------------------------------------------
6
+ const DEFAULT_CHECK_INTERVAL_MS = 300_000; // 5 minutes
7
+ const DEFAULT_DRIFT_THRESHOLD = 0.05;
8
+ const TAMPERING_MULTIPLIER = 2;
9
+ // ---------------------------------------------------------------------------
10
+ // FingerprintMonitor
11
+ // ---------------------------------------------------------------------------
12
+ export class FingerprintMonitor {
13
+ engine;
14
+ checkIntervalMs;
15
+ driftThreshold;
16
+ emitTrustSignal;
17
+ onDriftDetected;
18
+ onFingerprintTaken;
19
+ onTamperingDetected;
20
+ entities = new Map();
21
+ constructor(config) {
22
+ this.engine = config.engine;
23
+ this.checkIntervalMs = config.checkIntervalMs ?? DEFAULT_CHECK_INTERVAL_MS;
24
+ this.driftThreshold = config.driftThreshold ?? DEFAULT_DRIFT_THRESHOLD;
25
+ this.emitTrustSignal = config.emitTrustSignal ?? true;
26
+ this.onDriftDetected = config.onDriftDetected;
27
+ this.onFingerprintTaken = config.onFingerprintTaken;
28
+ this.onTamperingDetected = config.onTamperingDetected;
29
+ }
30
+ // -----------------------------------------------------------------------
31
+ // Public API
32
+ // -----------------------------------------------------------------------
33
+ /**
34
+ * Start monitoring an entity's model weights.
35
+ *
36
+ * The first scheduled check establishes the baseline fingerprint.
37
+ * Subsequent checks compare against that baseline.
38
+ *
39
+ * @param entityId Unique identifier for the monitored entity / model.
40
+ * @param getWeights Callback that returns the current weight matrices.
41
+ */
42
+ startMonitoring(entityId, getWeights) {
43
+ // If already monitoring, stop first to avoid orphaned timers
44
+ if (this.entities.has(entityId)) {
45
+ this.stopMonitoring(entityId);
46
+ }
47
+ const state = {
48
+ entityId,
49
+ getWeights,
50
+ baseline: null,
51
+ timer: null,
52
+ checksCompleted: 0,
53
+ driftsDetected: 0,
54
+ tamperingsDetected: 0,
55
+ lastCheck: null,
56
+ status: 'monitoring',
57
+ };
58
+ // Schedule recurring checks
59
+ state.timer = setInterval(() => {
60
+ void this.runCheck(state);
61
+ }, this.checkIntervalMs);
62
+ this.entities.set(entityId, state);
63
+ }
64
+ /**
65
+ * Stop monitoring an entity. Clears the interval and marks status
66
+ * as `stopped`. The entity remains in the map so stats are queryable.
67
+ */
68
+ stopMonitoring(entityId) {
69
+ const state = this.entities.get(entityId);
70
+ if (!state)
71
+ return;
72
+ if (state.timer !== null) {
73
+ clearInterval(state.timer);
74
+ state.timer = null;
75
+ }
76
+ state.status = 'stopped';
77
+ }
78
+ /**
79
+ * Manually trigger a fingerprint check outside the scheduled interval.
80
+ */
81
+ async checkNow(entityId) {
82
+ const state = this.entities.get(entityId);
83
+ if (!state) {
84
+ throw new Error(`Entity "${entityId}" is not being monitored`);
85
+ }
86
+ return this.runCheck(state);
87
+ }
88
+ /**
89
+ * Get monitoring status for an entity.
90
+ */
91
+ getStatus(entityId) {
92
+ const state = this.entities.get(entityId);
93
+ if (!state)
94
+ return undefined;
95
+ return {
96
+ entityId: state.entityId,
97
+ lastCheck: state.lastCheck,
98
+ checksCompleted: state.checksCompleted,
99
+ driftsDetected: state.driftsDetected,
100
+ tamperingsDetected: state.tamperingsDetected,
101
+ status: state.status,
102
+ };
103
+ }
104
+ /**
105
+ * List all entity IDs currently registered (monitoring or stopped).
106
+ */
107
+ getMonitoredEntities() {
108
+ return Array.from(this.entities.keys());
109
+ }
110
+ /**
111
+ * Replace the drift-detected callback. Allows integration layers to
112
+ * wire callbacks after construction without subclassing.
113
+ */
114
+ setOnDriftDetected(cb) {
115
+ this.onDriftDetected = cb;
116
+ }
117
+ /**
118
+ * Replace the tampering-detected callback.
119
+ */
120
+ setOnTamperingDetected(cb) {
121
+ this.onTamperingDetected = cb;
122
+ }
123
+ /**
124
+ * Replace the fingerprint-taken callback.
125
+ */
126
+ setOnFingerprintTaken(cb) {
127
+ this.onFingerprintTaken = cb;
128
+ }
129
+ /**
130
+ * Stop all monitored entities and clear all state.
131
+ */
132
+ shutdown() {
133
+ for (const [entityId] of this.entities) {
134
+ this.stopMonitoring(entityId);
135
+ }
136
+ this.entities.clear();
137
+ }
138
+ // -----------------------------------------------------------------------
139
+ // Internal
140
+ // -----------------------------------------------------------------------
141
+ async runCheck(state) {
142
+ const weights = state.getWeights();
143
+ const fingerprint = this.engine.computeFingerprint(weights);
144
+ const now = new Date();
145
+ // Notify fingerprint taken
146
+ this.onFingerprintTaken?.(state.entityId, fingerprint);
147
+ // First check — establish baseline
148
+ if (state.baseline === null) {
149
+ state.baseline = fingerprint;
150
+ this.engine.setBaseline(fingerprint);
151
+ state.checksCompleted++;
152
+ state.lastCheck = now;
153
+ return {
154
+ entityId: state.entityId,
155
+ fingerprint,
156
+ driftDetected: false,
157
+ tamperingDetected: false,
158
+ driftDistance: 0,
159
+ checkedAt: now,
160
+ };
161
+ }
162
+ // Compare against baseline
163
+ this.engine.setBaseline(state.baseline);
164
+ const driftResult = this.engine.checkDrift(fingerprint);
165
+ const distance = driftResult.cosineDistance;
166
+ const driftDetected = distance > this.driftThreshold;
167
+ const tamperingDetected = distance > this.driftThreshold * TAMPERING_MULTIPLIER;
168
+ // Update stats
169
+ state.checksCompleted++;
170
+ state.lastCheck = now;
171
+ if (driftDetected)
172
+ state.driftsDetected++;
173
+ if (tamperingDetected)
174
+ state.tamperingsDetected++;
175
+ // Fire callbacks
176
+ if (driftDetected) {
177
+ this.onDriftDetected?.(state.entityId, driftResult);
178
+ }
179
+ if (tamperingDetected) {
180
+ this.onTamperingDetected?.(state.entityId, driftResult);
181
+ }
182
+ // Build result
183
+ const result = {
184
+ entityId: state.entityId,
185
+ fingerprint,
186
+ driftDetected,
187
+ tamperingDetected,
188
+ driftDistance: distance,
189
+ checkedAt: now,
190
+ };
191
+ // Attach signal-ready payload if enabled and drift was detected
192
+ if (this.emitTrustSignal && driftDetected) {
193
+ result.trustSignal = {
194
+ entityId: state.entityId,
195
+ type: tamperingDetected ? 'TAMPERING_DETECTED' : 'ANOMALY_DETECTED',
196
+ value: tamperingDetected ? 0.0 : 0.1,
197
+ source: 'paramesphere:fingerprint-monitor',
198
+ timestamp: now.toISOString(),
199
+ metadata: {
200
+ cosineDistance: distance,
201
+ maxSingularValueDelta: driftResult.maxSingularValueDelta,
202
+ driftThreshold: this.driftThreshold,
203
+ tamperingThreshold: this.driftThreshold * TAMPERING_MULTIPLIER,
204
+ fingerprintSha256: fingerprint.sha256,
205
+ baselineSha256: state.baseline.sha256,
206
+ },
207
+ };
208
+ }
209
+ return result;
210
+ }
211
+ }
212
+ //# sourceMappingURL=fingerprint-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint-monitor.js","sourceRoot":"","sources":["../../src/paramesphere/fingerprint-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * FingerprintStore — Persistence layer for ParameSphere fingerprints.
3
+ *
4
+ * Default: InMemoryFingerprintStore (current behavior, no external deps)
5
+ * Override: implement the IFingerprintStore interface for SQLite, Postgres,
6
+ * Redis, or any other backend.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ /**
11
+ * Serialisable fingerprint record suitable for persistence.
12
+ *
13
+ * Unlike `ParameSphereFingerprint` (which carries Float64Array vectors),
14
+ * `StoredFingerprint` uses plain number arrays so it can be round-tripped
15
+ * through JSON, SQL columns, or key-value stores without special handling.
16
+ */
17
+ export interface StoredFingerprint {
18
+ /** The entity (model / agent) this fingerprint belongs to. */
19
+ entityId: string;
20
+ /** SHA-256 hex digest of the composite fingerprint vector. */
21
+ hash: string;
22
+ /** Top-K singular values (flattened across sampled layers). */
23
+ singularValues: number[];
24
+ /** Optional per-layer activation statistics. */
25
+ activationStats?: {
26
+ mean: number;
27
+ stddev: number;
28
+ kurtosis: number;
29
+ skewness: number;
30
+ }[];
31
+ /** When the fingerprint was computed. */
32
+ createdAt: Date;
33
+ /** Arbitrary metadata (model version, run ID, etc.). */
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ /**
37
+ * Persistence interface for ParameSphere fingerprints and baselines.
38
+ *
39
+ * Implementations must be async-safe. The engine calls these methods
40
+ * fire-and-forget for saves and awaits on reads only when needed (e.g.
41
+ * loading a baseline on the first `checkDrift` call).
42
+ */
43
+ export interface IFingerprintStore {
44
+ /** Append a fingerprint to the entity's history. */
45
+ saveFingerprint(entityId: string, fingerprint: StoredFingerprint): Promise<void>;
46
+ /** Return the most recently saved fingerprint for an entity, or undefined. */
47
+ getLatestFingerprint(entityId: string): Promise<StoredFingerprint | undefined>;
48
+ /** Return the baseline fingerprint for an entity, or undefined. */
49
+ getBaseline(entityId: string): Promise<StoredFingerprint | undefined>;
50
+ /** Set (or overwrite) the baseline fingerprint for an entity. */
51
+ setBaseline(entityId: string, fingerprint: StoredFingerprint): Promise<void>;
52
+ /** Return the last `limit` fingerprints for an entity, newest first. */
53
+ getHistory(entityId: string, limit?: number): Promise<StoredFingerprint[]>;
54
+ /** Remove all fingerprints and baseline for an entity. */
55
+ deleteEntity(entityId: string): Promise<void>;
56
+ /** List all entity IDs that have at least one stored fingerprint. */
57
+ listEntities(): Promise<string[]>;
58
+ }
59
+ /** Options for the in-memory store. */
60
+ export interface InMemoryStoreOptions {
61
+ /** Maximum fingerprints to retain per entity (default: 100). */
62
+ maxHistoryPerEntity?: number;
63
+ }
64
+ /**
65
+ * In-memory implementation of `IFingerprintStore`.
66
+ *
67
+ * Suitable for development, testing, and short-lived server processes.
68
+ * Data does **not** survive a process restart — which is the exact
69
+ * behaviour this layer is designed to replace when a persistent backend
70
+ * is plugged in.
71
+ */
72
+ export declare class InMemoryFingerprintStore implements IFingerprintStore {
73
+ private readonly maxHistory;
74
+ private readonly history;
75
+ private readonly baselines;
76
+ constructor(options?: InMemoryStoreOptions);
77
+ saveFingerprint(entityId: string, fingerprint: StoredFingerprint): Promise<void>;
78
+ getLatestFingerprint(entityId: string): Promise<StoredFingerprint | undefined>;
79
+ getBaseline(entityId: string): Promise<StoredFingerprint | undefined>;
80
+ setBaseline(entityId: string, fingerprint: StoredFingerprint): Promise<void>;
81
+ getHistory(entityId: string, limit?: number): Promise<StoredFingerprint[]>;
82
+ deleteEntity(entityId: string): Promise<void>;
83
+ listEntities(): Promise<string[]>;
84
+ }
85
+ //# sourceMappingURL=fingerprint-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint-store.d.ts","sourceRoot":"","sources":["../../src/paramesphere/fingerprint-store.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAMH;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gDAAgD;IAChD,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzF,yCAAyC;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF,8EAA8E;IAC9E,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAE/E,mEAAmE;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAEtE,iEAAiE;IACjE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E,wEAAwE;IACxE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE3E,0DAA0D;IAC1D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,qEAAqE;IACrE,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACnC;AAMD,uCAAuC;AACvC,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;gBAEtD,OAAO,CAAC,EAAE,oBAAoB;IAIpC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAahF,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAM9E,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIrE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAW1E,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAUxC"}
@@ -0,0 +1,68 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright 2024-2026 Vorion LLC
3
+ /**
4
+ * In-memory implementation of `IFingerprintStore`.
5
+ *
6
+ * Suitable for development, testing, and short-lived server processes.
7
+ * Data does **not** survive a process restart — which is the exact
8
+ * behaviour this layer is designed to replace when a persistent backend
9
+ * is plugged in.
10
+ */
11
+ export class InMemoryFingerprintStore {
12
+ maxHistory;
13
+ history = new Map();
14
+ baselines = new Map();
15
+ constructor(options) {
16
+ this.maxHistory = options?.maxHistoryPerEntity ?? 100;
17
+ }
18
+ async saveFingerprint(entityId, fingerprint) {
19
+ let list = this.history.get(entityId);
20
+ if (!list) {
21
+ list = [];
22
+ this.history.set(entityId, list);
23
+ }
24
+ list.push(fingerprint);
25
+ // Trim oldest entries if over capacity
26
+ while (list.length > this.maxHistory) {
27
+ list.shift();
28
+ }
29
+ }
30
+ async getLatestFingerprint(entityId) {
31
+ const list = this.history.get(entityId);
32
+ if (!list || list.length === 0)
33
+ return undefined;
34
+ return list[list.length - 1];
35
+ }
36
+ async getBaseline(entityId) {
37
+ return this.baselines.get(entityId);
38
+ }
39
+ async setBaseline(entityId, fingerprint) {
40
+ this.baselines.set(entityId, fingerprint);
41
+ }
42
+ async getHistory(entityId, limit) {
43
+ const list = this.history.get(entityId);
44
+ if (!list || list.length === 0)
45
+ return [];
46
+ // Return newest first
47
+ const reversed = [...list].reverse();
48
+ if (limit !== undefined && limit > 0) {
49
+ return reversed.slice(0, limit);
50
+ }
51
+ return reversed;
52
+ }
53
+ async deleteEntity(entityId) {
54
+ this.history.delete(entityId);
55
+ this.baselines.delete(entityId);
56
+ }
57
+ async listEntities() {
58
+ const entities = new Set();
59
+ for (const key of this.history.keys()) {
60
+ entities.add(key);
61
+ }
62
+ for (const key of this.baselines.keys()) {
63
+ entities.add(key);
64
+ }
65
+ return Array.from(entities);
66
+ }
67
+ }
68
+ //# sourceMappingURL=fingerprint-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint-store.js","sourceRoot":"","sources":["../../src/paramesphere/fingerprint-store.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAkFjC;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAwB;IAClB,UAAU,CAAS;IACnB,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IACjD,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IAElE,YAAY,OAA8B;QACxC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,mBAAmB,IAAI,GAAG,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,WAA8B;QACpE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,uCAAuC;QACvC,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,WAA8B;QAChE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAc;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,sBAAsB;QACtB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ParameSphere — SVD-Based Model Fingerprinting & Cognitive Envelope
3
+ *
4
+ * Production implementation of the patent-specified ParameSphere engine
5
+ * for detecting model weight drift and cognitive boundary breaches in
6
+ * AI agent deployments.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export { ParameSphereEngine } from './paramesphere-engine.js';
11
+ export { CognitiveEnvelope } from './cognitive-envelope.js';
12
+ export { FingerprintMonitor } from './fingerprint-monitor.js';
13
+ export { ActivationCollector } from './activation-collector.js';
14
+ export { InMemoryFingerprintStore } from './fingerprint-store.js';
15
+ export { connectMonitorToTrustEngine, disconnectMonitor } from './monitor-integration.js';
16
+ export type { MonitorIntegrationConfig } from './monitor-integration.js';
17
+ export type { ActivationCollectorConfig } from './activation-collector.js';
18
+ export type { FingerprintMonitorConfig, MonitorCheckResult, MonitorStatus, TrustSignalPayload, } from './fingerprint-monitor.js';
19
+ export type { IFingerprintStore, StoredFingerprint, InMemoryStoreOptions, } from './fingerprint-store.js';
20
+ export type { ParameSphereConfig, ParameSphereFingerprint, ActivationStats, FingerprintComparison, DriftResult, EnvelopeConfig, BreachResult, EnvelopeState, DimensionBound, } from './types.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/paramesphere/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EACV,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright 2024-2026 Vorion LLC
3
+ /**
4
+ * ParameSphere — SVD-Based Model Fingerprinting & Cognitive Envelope
5
+ *
6
+ * Production implementation of the patent-specified ParameSphere engine
7
+ * for detecting model weight drift and cognitive boundary breaches in
8
+ * AI agent deployments.
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ export { ParameSphereEngine } from './paramesphere-engine.js';
13
+ export { CognitiveEnvelope } from './cognitive-envelope.js';
14
+ export { FingerprintMonitor } from './fingerprint-monitor.js';
15
+ export { ActivationCollector } from './activation-collector.js';
16
+ export { InMemoryFingerprintStore } from './fingerprint-store.js';
17
+ export { connectMonitorToTrustEngine, disconnectMonitor } from './monitor-integration.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/paramesphere/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Monitor Integration — Connects FingerprintMonitor to TrustEngine.
3
+ *
4
+ * Thin adapter that wires drift / tampering detection callbacks to
5
+ * `TrustEngine.recordSignal()`, converting `TrustSignalPayload` objects
6
+ * into proper `TrustSignal` records.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import type { FingerprintMonitor } from './fingerprint-monitor.js';
11
+ import type { TrustEngine } from '../trust-engine/index.js';
12
+ /** Configuration for the monitor-to-engine integration. */
13
+ export interface MonitorIntegrationConfig {
14
+ /** Value recorded for drift signals (0 = maximum negative, 1 = positive). Default: 0.3 (mild negative). */
15
+ driftSignalWeight?: number;
16
+ /** Value recorded for tampering signals. Default: 0.0 (severe negative). */
17
+ tamperingSignalWeight?: number;
18
+ /** Source string attached to recorded signals. Default: 'paramesphere'. */
19
+ signalSource?: string;
20
+ }
21
+ /**
22
+ * Wire a FingerprintMonitor's drift / tampering callbacks to a TrustEngine.
23
+ *
24
+ * After calling this function every drift or tampering detection will
25
+ * automatically record a trust signal via `engine.recordSignal()`.
26
+ *
27
+ * Call {@link disconnectMonitor} to remove the wiring.
28
+ */
29
+ export declare function connectMonitorToTrustEngine(monitor: FingerprintMonitor, engine: TrustEngine, config?: MonitorIntegrationConfig): void;
30
+ /**
31
+ * Remove trust-engine wiring from a FingerprintMonitor.
32
+ *
33
+ * Clears the `onDriftDetected` and `onTamperingDetected` callbacks so that
34
+ * subsequent detections no longer record trust signals.
35
+ */
36
+ export declare function disconnectMonitor(monitor: FingerprintMonitor): void;
37
+ //# sourceMappingURL=monitor-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-integration.d.ts","sourceRoot":"","sources":["../../src/paramesphere/monitor-integration.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAM5D,2DAA2D;AAC3D,MAAM,WAAW,wBAAwB;IACvC,2GAA2G;IAC3G,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAyBD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,wBAAwB,GAChC,IAAI,CAkCN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAMnE"}
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright 2024-2026 Vorion LLC
3
+ // ---------------------------------------------------------------------------
4
+ // Defaults
5
+ // ---------------------------------------------------------------------------
6
+ const DEFAULT_DRIFT_WEIGHT = 0.3;
7
+ const DEFAULT_TAMPERING_WEIGHT = 0.0;
8
+ const DEFAULT_SIGNAL_SOURCE = 'paramesphere';
9
+ const connections = new WeakMap();
10
+ // ---------------------------------------------------------------------------
11
+ // Public API
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * Wire a FingerprintMonitor's drift / tampering callbacks to a TrustEngine.
15
+ *
16
+ * After calling this function every drift or tampering detection will
17
+ * automatically record a trust signal via `engine.recordSignal()`.
18
+ *
19
+ * Call {@link disconnectMonitor} to remove the wiring.
20
+ */
21
+ export function connectMonitorToTrustEngine(monitor, engine, config) {
22
+ const driftWeight = config?.driftSignalWeight ?? DEFAULT_DRIFT_WEIGHT;
23
+ const tamperingWeight = config?.tamperingSignalWeight ?? DEFAULT_TAMPERING_WEIGHT;
24
+ const source = config?.signalSource ?? DEFAULT_SIGNAL_SOURCE;
25
+ // Validate weights
26
+ if (driftWeight < 0 || driftWeight > 1) {
27
+ throw new Error('driftSignalWeight must be between 0 and 1');
28
+ }
29
+ if (tamperingWeight < 0 || tamperingWeight > 1) {
30
+ throw new Error('tamperingSignalWeight must be between 0 and 1');
31
+ }
32
+ // If already connected, disconnect first to avoid stacking callbacks
33
+ if (connections.has(monitor)) {
34
+ disconnectMonitor(monitor);
35
+ }
36
+ // Save state for later disconnection (no previous callbacks to restore
37
+ // since we don't have access to read private fields — we just clear on disconnect)
38
+ const state = {};
39
+ connections.set(monitor, state);
40
+ // Wire drift callback
41
+ monitor.setOnDriftDetected((entityId, result) => {
42
+ const signal = buildSignal(entityId, 'ANOMALY_DETECTED', driftWeight, source, result);
43
+ void engine.recordSignal(signal);
44
+ });
45
+ // Wire tampering callback
46
+ monitor.setOnTamperingDetected((entityId, result) => {
47
+ const signal = buildSignal(entityId, 'TAMPERING_DETECTED', tamperingWeight, source, result);
48
+ void engine.recordSignal(signal);
49
+ });
50
+ }
51
+ /**
52
+ * Remove trust-engine wiring from a FingerprintMonitor.
53
+ *
54
+ * Clears the `onDriftDetected` and `onTamperingDetected` callbacks so that
55
+ * subsequent detections no longer record trust signals.
56
+ */
57
+ export function disconnectMonitor(monitor) {
58
+ if (!connections.has(monitor))
59
+ return;
60
+ monitor.setOnDriftDetected(undefined);
61
+ monitor.setOnTamperingDetected(undefined);
62
+ connections.delete(monitor);
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Internal helpers
66
+ // ---------------------------------------------------------------------------
67
+ function buildSignal(entityId, type, value, source, result) {
68
+ return {
69
+ id: `${source}-${type.toLowerCase()}-${entityId}-${Date.now()}`,
70
+ entityId,
71
+ type,
72
+ value,
73
+ source,
74
+ timestamp: new Date().toISOString(),
75
+ metadata: {
76
+ cosineDistance: result.cosineDistance,
77
+ maxSingularValueDelta: result.maxSingularValueDelta,
78
+ },
79
+ };
80
+ }
81
+ //# sourceMappingURL=monitor-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-integration.js","sourceRoot":"","sources":["../../src/paramesphere/monitor-integration.ts"],"names":[],"mappings":"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"}