@vorionsys/atsf-core 0.2.4 → 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 (375) 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.map +1 -1
  21. package/dist/api/index.js +2 -0
  22. package/dist/api/index.js.map +1 -1
  23. package/dist/api/server.d.ts.map +1 -1
  24. package/dist/api/server.js +2 -0
  25. package/dist/api/server.js.map +1 -1
  26. package/dist/arbitration/index.d.ts +0 -8
  27. package/dist/arbitration/index.d.ts.map +1 -1
  28. package/dist/arbitration/index.js +2 -0
  29. package/dist/arbitration/index.js.map +1 -1
  30. package/dist/arbitration/types.d.ts.map +1 -1
  31. package/dist/arbitration/types.js +2 -8
  32. package/dist/arbitration/types.js.map +1 -1
  33. package/dist/basis/evaluator.d.ts +0 -5
  34. package/dist/basis/evaluator.d.ts.map +1 -1
  35. package/dist/basis/evaluator.js +2 -0
  36. package/dist/basis/evaluator.js.map +1 -1
  37. package/dist/basis/index.d.ts.map +1 -1
  38. package/dist/basis/index.js +2 -0
  39. package/dist/basis/index.js.map +1 -1
  40. package/dist/basis/parser.d.ts +28 -28
  41. package/dist/basis/parser.d.ts.map +1 -1
  42. package/dist/basis/parser.js +2 -0
  43. package/dist/basis/parser.js.map +1 -1
  44. package/dist/basis/types.d.ts.map +1 -1
  45. package/dist/basis/types.js +2 -3
  46. package/dist/basis/types.js.map +1 -1
  47. package/dist/chain/index.d.ts +0 -8
  48. package/dist/chain/index.d.ts.map +1 -1
  49. package/dist/chain/index.js +2 -0
  50. package/dist/chain/index.js.map +1 -1
  51. package/dist/cognigate/index.d.ts +0 -8
  52. package/dist/cognigate/index.d.ts.map +1 -1
  53. package/dist/cognigate/index.js +2 -0
  54. package/dist/cognigate/index.js.map +1 -1
  55. package/dist/common/adapters.d.ts.map +1 -1
  56. package/dist/common/adapters.js +2 -8
  57. package/dist/common/adapters.js.map +1 -1
  58. package/dist/common/config.d.ts.map +1 -1
  59. package/dist/common/config.js +2 -0
  60. package/dist/common/config.js.map +1 -1
  61. package/dist/common/index.d.ts.map +1 -1
  62. package/dist/common/index.js +2 -0
  63. package/dist/common/index.js.map +1 -1
  64. package/dist/common/logger.d.ts.map +1 -1
  65. package/dist/common/logger.js +2 -0
  66. package/dist/common/logger.js.map +1 -1
  67. package/dist/common/types.d.ts +7 -7
  68. package/dist/common/types.d.ts.map +1 -1
  69. package/dist/common/types.js +2 -9
  70. package/dist/common/types.js.map +1 -1
  71. package/dist/containment/index.d.ts +0 -8
  72. package/dist/containment/index.d.ts.map +1 -1
  73. package/dist/containment/index.js +2 -0
  74. package/dist/containment/index.js.map +1 -1
  75. package/dist/containment/types.d.ts.map +1 -1
  76. package/dist/containment/types.js +2 -8
  77. package/dist/containment/types.js.map +1 -1
  78. package/dist/contracts/index.d.ts +0 -8
  79. package/dist/contracts/index.d.ts.map +1 -1
  80. package/dist/contracts/index.js +2 -0
  81. package/dist/contracts/index.js.map +1 -1
  82. package/dist/contracts/types.d.ts.map +1 -1
  83. package/dist/contracts/types.js +2 -8
  84. package/dist/contracts/types.js.map +1 -1
  85. package/dist/crewai/callback.d.ts +0 -7
  86. package/dist/crewai/callback.d.ts.map +1 -1
  87. package/dist/crewai/callback.js +2 -0
  88. package/dist/crewai/callback.js.map +1 -1
  89. package/dist/crewai/executor.d.ts +0 -7
  90. package/dist/crewai/executor.d.ts.map +1 -1
  91. package/dist/crewai/executor.js +2 -0
  92. package/dist/crewai/executor.js.map +1 -1
  93. package/dist/crewai/index.d.ts.map +1 -1
  94. package/dist/crewai/index.js +2 -0
  95. package/dist/crewai/index.js.map +1 -1
  96. package/dist/crewai/tools.d.ts.map +1 -1
  97. package/dist/crewai/tools.js +2 -7
  98. package/dist/crewai/tools.js.map +1 -1
  99. package/dist/crewai/types.d.ts.map +1 -1
  100. package/dist/crewai/types.js +2 -7
  101. package/dist/crewai/types.js.map +1 -1
  102. package/dist/enforce/index.d.ts +0 -15
  103. package/dist/enforce/index.d.ts.map +1 -1
  104. package/dist/enforce/index.js +3 -1
  105. package/dist/enforce/index.js.map +1 -1
  106. package/dist/enforce/trust-aware-enforcement-service.d.ts +0 -15
  107. package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
  108. package/dist/enforce/trust-aware-enforcement-service.js +2 -0
  109. package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
  110. package/dist/governance/fluid-workflow.d.ts +0 -8
  111. package/dist/governance/fluid-workflow.d.ts.map +1 -1
  112. package/dist/governance/fluid-workflow.js +2 -0
  113. package/dist/governance/fluid-workflow.js.map +1 -1
  114. package/dist/governance/index.d.ts +0 -8
  115. package/dist/governance/index.d.ts.map +1 -1
  116. package/dist/governance/index.js +2 -0
  117. package/dist/governance/index.js.map +1 -1
  118. package/dist/governance/proof-bridge.d.ts.map +1 -1
  119. package/dist/governance/proof-bridge.js +2 -12
  120. package/dist/governance/proof-bridge.js.map +1 -1
  121. package/dist/governance/types.d.ts.map +1 -1
  122. package/dist/governance/types.js +2 -8
  123. package/dist/governance/types.js.map +1 -1
  124. package/dist/index.d.ts +3 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +8 -0
  127. package/dist/index.js.map +1 -1
  128. package/dist/intent/index.d.ts +0 -13
  129. package/dist/intent/index.d.ts.map +1 -1
  130. package/dist/intent/index.js +4 -2
  131. package/dist/intent/index.js.map +1 -1
  132. package/dist/intent/persistent-intent-service.d.ts +0 -15
  133. package/dist/intent/persistent-intent-service.d.ts.map +1 -1
  134. package/dist/intent/persistent-intent-service.js +2 -0
  135. package/dist/intent/persistent-intent-service.js.map +1 -1
  136. package/dist/intent/supabase-intent-repository.d.ts +0 -17
  137. package/dist/intent/supabase-intent-repository.d.ts.map +1 -1
  138. package/dist/intent/supabase-intent-repository.js +2 -0
  139. package/dist/intent/supabase-intent-repository.js.map +1 -1
  140. package/dist/intent-gateway/index.d.ts +499 -0
  141. package/dist/intent-gateway/index.d.ts.map +1 -0
  142. package/dist/intent-gateway/index.js +1332 -0
  143. package/dist/intent-gateway/index.js.map +1 -0
  144. package/dist/langchain/callback.d.ts +0 -7
  145. package/dist/langchain/callback.d.ts.map +1 -1
  146. package/dist/langchain/callback.js +2 -0
  147. package/dist/langchain/callback.js.map +1 -1
  148. package/dist/langchain/executor.d.ts +0 -7
  149. package/dist/langchain/executor.d.ts.map +1 -1
  150. package/dist/langchain/executor.js +2 -0
  151. package/dist/langchain/executor.js.map +1 -1
  152. package/dist/langchain/index.d.ts.map +1 -1
  153. package/dist/langchain/index.js +2 -0
  154. package/dist/langchain/index.js.map +1 -1
  155. package/dist/langchain/tools.d.ts.map +1 -1
  156. package/dist/langchain/tools.js +2 -7
  157. package/dist/langchain/tools.js.map +1 -1
  158. package/dist/langchain/types.d.ts.map +1 -1
  159. package/dist/langchain/types.js +2 -7
  160. package/dist/langchain/types.js.map +1 -1
  161. package/dist/layers/implementations/L0-request-format.d.ts.map +1 -1
  162. package/dist/layers/implementations/L0-request-format.js +2 -0
  163. package/dist/layers/implementations/L0-request-format.js.map +1 -1
  164. package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
  165. package/dist/layers/implementations/L1-input-size.js +2 -0
  166. package/dist/layers/implementations/L1-input-size.js.map +1 -1
  167. package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
  168. package/dist/layers/implementations/L2-charset-sanitizer.js +2 -0
  169. package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
  170. package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
  171. package/dist/layers/implementations/L3-schema-conformance.js +2 -0
  172. package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
  173. package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
  174. package/dist/layers/implementations/L4-injection-detector.js +2 -0
  175. package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
  176. package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
  177. package/dist/layers/implementations/L5-rate-limiter.js +2 -0
  178. package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
  179. package/dist/layers/implementations/index.d.ts.map +1 -1
  180. package/dist/layers/implementations/index.js +2 -0
  181. package/dist/layers/implementations/index.js.map +1 -1
  182. package/dist/layers/index.d.ts +0 -8
  183. package/dist/layers/index.d.ts.map +1 -1
  184. package/dist/layers/index.js +2 -0
  185. package/dist/layers/index.js.map +1 -1
  186. package/dist/layers/types.d.ts.map +1 -1
  187. package/dist/layers/types.js +2 -8
  188. package/dist/layers/types.js.map +1 -1
  189. package/dist/paramesphere/activation-collector.d.ts +128 -0
  190. package/dist/paramesphere/activation-collector.d.ts.map +1 -0
  191. package/dist/paramesphere/activation-collector.js +260 -0
  192. package/dist/paramesphere/activation-collector.js.map +1 -0
  193. package/dist/paramesphere/cognitive-envelope.d.ts +73 -0
  194. package/dist/paramesphere/cognitive-envelope.d.ts.map +1 -0
  195. package/dist/paramesphere/cognitive-envelope.js +209 -0
  196. package/dist/paramesphere/cognitive-envelope.js.map +1 -0
  197. package/dist/paramesphere/envelope-integration.d.ts +60 -0
  198. package/dist/paramesphere/envelope-integration.d.ts.map +1 -0
  199. package/dist/paramesphere/envelope-integration.js +93 -0
  200. package/dist/paramesphere/envelope-integration.js.map +1 -0
  201. package/dist/paramesphere/fingerprint-monitor.d.ts +136 -0
  202. package/dist/paramesphere/fingerprint-monitor.d.ts.map +1 -0
  203. package/dist/paramesphere/fingerprint-monitor.js +212 -0
  204. package/dist/paramesphere/fingerprint-monitor.js.map +1 -0
  205. package/dist/paramesphere/fingerprint-store.d.ts +85 -0
  206. package/dist/paramesphere/fingerprint-store.d.ts.map +1 -0
  207. package/dist/paramesphere/fingerprint-store.js +68 -0
  208. package/dist/paramesphere/fingerprint-store.js.map +1 -0
  209. package/dist/paramesphere/index.d.ts +21 -0
  210. package/dist/paramesphere/index.d.ts.map +1 -0
  211. package/dist/paramesphere/index.js +18 -0
  212. package/dist/paramesphere/index.js.map +1 -0
  213. package/dist/paramesphere/monitor-integration.d.ts +37 -0
  214. package/dist/paramesphere/monitor-integration.d.ts.map +1 -0
  215. package/dist/paramesphere/monitor-integration.js +81 -0
  216. package/dist/paramesphere/monitor-integration.js.map +1 -0
  217. package/dist/paramesphere/paramesphere-engine.d.ts +111 -0
  218. package/dist/paramesphere/paramesphere-engine.d.ts.map +1 -0
  219. package/dist/paramesphere/paramesphere-engine.js +542 -0
  220. package/dist/paramesphere/paramesphere-engine.js.map +1 -0
  221. package/dist/paramesphere/types.d.ts +142 -0
  222. package/dist/paramesphere/types.d.ts.map +1 -0
  223. package/dist/paramesphere/types.js +4 -0
  224. package/dist/paramesphere/types.js.map +1 -0
  225. package/dist/persistence/file.d.ts +0 -7
  226. package/dist/persistence/file.d.ts.map +1 -1
  227. package/dist/persistence/file.js +2 -0
  228. package/dist/persistence/file.js.map +1 -1
  229. package/dist/persistence/index.d.ts.map +1 -1
  230. package/dist/persistence/index.js +2 -0
  231. package/dist/persistence/index.js.map +1 -1
  232. package/dist/persistence/memory.d.ts.map +1 -1
  233. package/dist/persistence/memory.js +2 -7
  234. package/dist/persistence/memory.js.map +1 -1
  235. package/dist/persistence/sqlite.d.ts +0 -8
  236. package/dist/persistence/sqlite.d.ts.map +1 -1
  237. package/dist/persistence/sqlite.js +3 -1
  238. package/dist/persistence/sqlite.js.map +1 -1
  239. package/dist/persistence/supabase.d.ts.map +1 -1
  240. package/dist/persistence/supabase.js +3 -8
  241. package/dist/persistence/supabase.js.map +1 -1
  242. package/dist/persistence/types.d.ts.map +1 -1
  243. package/dist/persistence/types.js +2 -7
  244. package/dist/persistence/types.js.map +1 -1
  245. package/dist/phase6/ceiling.d.ts +0 -16
  246. package/dist/phase6/ceiling.d.ts.map +1 -1
  247. package/dist/phase6/ceiling.js +2 -0
  248. package/dist/phase6/ceiling.js.map +1 -1
  249. package/dist/phase6/context.d.ts +0 -17
  250. package/dist/phase6/context.d.ts.map +1 -1
  251. package/dist/phase6/context.js +2 -0
  252. package/dist/phase6/context.js.map +1 -1
  253. package/dist/phase6/index.d.ts.map +1 -1
  254. package/dist/phase6/index.js +2 -0
  255. package/dist/phase6/index.js.map +1 -1
  256. package/dist/phase6/presets.d.ts +0 -16
  257. package/dist/phase6/presets.d.ts.map +1 -1
  258. package/dist/phase6/presets.js +5 -3
  259. package/dist/phase6/presets.js.map +1 -1
  260. package/dist/phase6/provenance.d.ts +0 -15
  261. package/dist/phase6/provenance.d.ts.map +1 -1
  262. package/dist/phase6/provenance.js +2 -0
  263. package/dist/phase6/provenance.js.map +1 -1
  264. package/dist/phase6/role-gates/index.d.ts.map +1 -1
  265. package/dist/phase6/role-gates/index.js +2 -0
  266. package/dist/phase6/role-gates/index.js.map +1 -1
  267. package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
  268. package/dist/phase6/role-gates/kernel.js +2 -0
  269. package/dist/phase6/role-gates/kernel.js.map +1 -1
  270. package/dist/phase6/role-gates/policy.d.ts.map +1 -1
  271. package/dist/phase6/role-gates/policy.js +2 -11
  272. package/dist/phase6/role-gates/policy.js.map +1 -1
  273. package/dist/phase6/role-gates.d.ts +0 -16
  274. package/dist/phase6/role-gates.d.ts.map +1 -1
  275. package/dist/phase6/role-gates.js +2 -0
  276. package/dist/phase6/role-gates.js.map +1 -1
  277. package/dist/phase6/types.d.ts +45 -16
  278. package/dist/phase6/types.d.ts.map +1 -1
  279. package/dist/phase6/types.js +49 -0
  280. package/dist/phase6/types.js.map +1 -1
  281. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
  282. package/dist/phase6/weight-presets/canonical.js +2 -0
  283. package/dist/phase6/weight-presets/canonical.js.map +1 -1
  284. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
  285. package/dist/phase6/weight-presets/deltas.js +2 -10
  286. package/dist/phase6/weight-presets/deltas.js.map +1 -1
  287. package/dist/phase6/weight-presets/index.d.ts.map +1 -1
  288. package/dist/phase6/weight-presets/index.js +2 -0
  289. package/dist/phase6/weight-presets/index.js.map +1 -1
  290. package/dist/phase6/weight-presets/merger.d.ts +0 -10
  291. package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
  292. package/dist/phase6/weight-presets/merger.js +2 -0
  293. package/dist/phase6/weight-presets/merger.js.map +1 -1
  294. package/dist/proof/index.d.ts +3 -10
  295. package/dist/proof/index.d.ts.map +1 -1
  296. package/dist/proof/index.js +27 -9
  297. package/dist/proof/index.js.map +1 -1
  298. package/dist/proof/merkle.d.ts +0 -16
  299. package/dist/proof/merkle.d.ts.map +1 -1
  300. package/dist/proof/merkle.js +2 -0
  301. package/dist/proof/merkle.js.map +1 -1
  302. package/dist/proof/zk-proofs.d.ts +0 -18
  303. package/dist/proof/zk-proofs.d.ts.map +1 -1
  304. package/dist/proof/zk-proofs.js +2 -0
  305. package/dist/proof/zk-proofs.js.map +1 -1
  306. package/dist/provenance/index.d.ts +0 -8
  307. package/dist/provenance/index.d.ts.map +1 -1
  308. package/dist/provenance/index.js +2 -0
  309. package/dist/provenance/index.js.map +1 -1
  310. package/dist/provenance/types.d.ts.map +1 -1
  311. package/dist/provenance/types.js +2 -8
  312. package/dist/provenance/types.js.map +1 -1
  313. package/dist/sandbox-training/challenges.d.ts.map +1 -1
  314. package/dist/sandbox-training/challenges.js +2 -8
  315. package/dist/sandbox-training/challenges.js.map +1 -1
  316. package/dist/sandbox-training/graduation.d.ts.map +1 -1
  317. package/dist/sandbox-training/graduation.js +2 -8
  318. package/dist/sandbox-training/graduation.js.map +1 -1
  319. package/dist/sandbox-training/index.d.ts.map +1 -1
  320. package/dist/sandbox-training/index.js +2 -0
  321. package/dist/sandbox-training/index.js.map +1 -1
  322. package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
  323. package/dist/sandbox-training/promotion-service.js +2 -11
  324. package/dist/sandbox-training/promotion-service.js.map +1 -1
  325. package/dist/sandbox-training/runner.d.ts.map +1 -1
  326. package/dist/sandbox-training/runner.js +2 -8
  327. package/dist/sandbox-training/runner.js.map +1 -1
  328. package/dist/sandbox-training/scorer.d.ts.map +1 -1
  329. package/dist/sandbox-training/scorer.js +2 -8
  330. package/dist/sandbox-training/scorer.js.map +1 -1
  331. package/dist/sandbox-training/types.d.ts.map +1 -1
  332. package/dist/sandbox-training/types.js +2 -8
  333. package/dist/sandbox-training/types.js.map +1 -1
  334. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +0 -8
  335. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
  336. package/dist/trust-engine/ceiling-enforcement/audit.js +2 -8
  337. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
  338. package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -1
  339. package/dist/trust-engine/ceiling-enforcement/index.js +2 -0
  340. package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -1
  341. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
  342. package/dist/trust-engine/ceiling-enforcement/kernel.js +2 -0
  343. package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -1
  344. package/dist/trust-engine/context-policy/enforcement.d.ts +0 -9
  345. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
  346. package/dist/trust-engine/context-policy/enforcement.js +2 -9
  347. package/dist/trust-engine/context-policy/enforcement.js.map +1 -1
  348. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
  349. package/dist/trust-engine/context-policy/factory.js +2 -0
  350. package/dist/trust-engine/context-policy/factory.js.map +1 -1
  351. package/dist/trust-engine/context-policy/index.d.ts.map +1 -1
  352. package/dist/trust-engine/context-policy/index.js +2 -0
  353. package/dist/trust-engine/context-policy/index.js.map +1 -1
  354. package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -1
  355. package/dist/trust-engine/creation-modifiers/index.js +2 -0
  356. package/dist/trust-engine/creation-modifiers/index.js.map +1 -1
  357. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
  358. package/dist/trust-engine/creation-modifiers/types.js +2 -0
  359. package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
  360. package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
  361. package/dist/trust-engine/decay-profiles.js +2 -14
  362. package/dist/trust-engine/decay-profiles.js.map +1 -1
  363. package/dist/trust-engine/index.d.ts +418 -80
  364. package/dist/trust-engine/index.d.ts.map +1 -1
  365. package/dist/trust-engine/index.js +1048 -186
  366. package/dist/trust-engine/index.js.map +1 -1
  367. package/dist/trust-engine/phase6-types.d.ts +3 -13
  368. package/dist/trust-engine/phase6-types.d.ts.map +1 -1
  369. package/dist/trust-engine/phase6-types.js +5 -13
  370. package/dist/trust-engine/phase6-types.js.map +1 -1
  371. package/dist/trust-engine/trust-verifier.d.ts +121 -0
  372. package/dist/trust-engine/trust-verifier.d.ts.map +1 -0
  373. package/dist/trust-engine/trust-verifier.js +226 -0
  374. package/dist/trust-engine/trust-verifier.js.map +1 -0
  375. package/package.json +140 -135
@@ -2,14 +2,17 @@
2
2
  * Trust Engine - Behavioral Trust Scoring
3
3
  *
4
4
  * Calculates and maintains trust scores for entities based on behavioral signals.
5
- * Features 8-tier trust system (T0-T7) with event emission for observability.
5
+ * Features 6-tier trust system with event emission for observability.
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
9
  import { EventEmitter } from 'events';
10
10
  import type { TrustScore, TrustLevel, TrustSignal, TrustComponents, ID } from '../common/types.js';
11
11
  import type { PersistenceProvider } from '../persistence/types.js';
12
- import { initialFactorScores, type FactorCodeString } from '@vorionsys/basis';
12
+ import type { TrustVerifier } from './trust-verifier.js';
13
+ import type { ParameSphereEngine } from '../paramesphere/paramesphere-engine.js';
14
+ import type { CognitiveEnvelope } from '../paramesphere/cognitive-envelope.js';
15
+ import type { ActivationStats } from '../paramesphere/types.js';
13
16
  /**
14
17
  * Trust level thresholds (8 tiers T0-T7) - per BASIS specification
15
18
  */
@@ -21,20 +24,58 @@ export declare const TRUST_THRESHOLDS: Record<TrustLevel, {
21
24
  * Trust level names (8 tiers T0-T7) - per BASIS specification
22
25
  */
23
26
  export declare const TRUST_LEVEL_NAMES: Record<TrustLevel, string>;
24
- export declare const FACTOR_CODES: readonly ["CT-COMP", "CT-REL", "CT-OBS", "CT-TRANS", "CT-ACCT", "CT-SAFE", "CT-SEC", "CT-PRIV", "CT-ID", "OP-HUMAN", "OP-ALIGN", "OP-CONTEXT", "OP-STEW", "SF-HUM", "SF-ADAPT", "SF-LEARN"];
25
- export type FactorCode = FactorCodeString;
26
- export declare const FACTOR_WEIGHTS: Record<"CT-COMP" | "CT-REL" | "CT-OBS" | "CT-TRANS" | "CT-ACCT" | "CT-SAFE" | "CT-SEC" | "CT-PRIV" | "CT-ID" | "OP-HUMAN" | "OP-ALIGN" | "OP-CONTEXT" | "OP-STEW" | "SF-HUM" | "SF-ADAPT" | "SF-LEARN", number>;
27
- export declare const SIGNAL_PREFIX_TO_FACTORS: Record<string, ("CT-COMP" | "CT-REL" | "CT-OBS" | "CT-TRANS" | "CT-ACCT" | "CT-SAFE" | "CT-SEC" | "CT-PRIV" | "CT-ID" | "OP-HUMAN" | "OP-ALIGN" | "OP-CONTEXT" | "OP-STEW" | "SF-HUM" | "SF-ADAPT" | "SF-LEARN")[]>;
28
- export { initialFactorScores };
29
27
  /**
30
- * @deprecated Use FACTOR_WEIGHTS for 16-factor scoring. Kept for backwards compatibility.
31
28
  * Signal weights for score calculation
32
29
  */
33
30
  export declare const SIGNAL_WEIGHTS: Record<keyof TrustComponents, number>;
31
+ /**
32
+ * Penalty ratio per BASIS specification: P(T) = 3 + T
33
+ *
34
+ * Negative signals have their EWA weight multiplied by (3 + currentTier),
35
+ * so higher-tier agents are punished MORE severely for failures.
36
+ * T0 = 3×, T1 = 4×, T2 = 5×, T3 = 6×, T4 = 7×, T5 = 8×, T6 = 9×, T7 = 10×
37
+ *
38
+ * Only applies to negative signals (value < neutral 0.5). Positive signals
39
+ * are NOT amplified.
40
+ */
41
+ export declare const PENALTY_RATIO_BASE = 3;
42
+ /**
43
+ * Calculate the penalty weight multiplier for a given tier.
44
+ * P(T) = 3 + T
45
+ */
46
+ export declare function penaltyMultiplier(tier: TrustLevel): number;
47
+ /**
48
+ * 16-factor trust model — granular decomposition of the 4-dimension model.
49
+ * Each factor maps to one of the 4 TrustComponents dimensions.
50
+ */
51
+ export declare const FACTOR_CODES: readonly ["CT-COMP", "CT-REL", "CT-OBS", "CT-TRANS", "CT-ACCT", "CT-SAFE", "CT-SEC", "CT-PRIV", "CT-ID", "OP-HUMAN", "OP-ALIGN", "OP-CONTEXT", "OP-STEW", "SF-HUM", "SF-ADAPT", "SF-LEARN"];
52
+ export declare const FACTOR_WEIGHTS: Record<string, number>;
53
+ /**
54
+ * Cached running-total state for a single component bucket (behavioral/compliance/identity/context).
55
+ * Used by the incremental scoring path to avoid O(n) recalculation on every signal.
56
+ */
57
+ export interface CachedComponentState {
58
+ weightedSum: number;
59
+ totalWeight: number;
60
+ count: number;
61
+ }
62
+ /**
63
+ * Per-entity cached score state for incremental updates.
64
+ * Stores running weighted averages per component so that new signals
65
+ * can update the score in O(1) instead of recalculating from all signals.
66
+ */
67
+ export interface CachedScoreState {
68
+ behavioral: CachedComponentState;
69
+ compliance: CachedComponentState;
70
+ identity: CachedComponentState;
71
+ context: CachedComponentState;
72
+ /** Total signal count at last full recalculation */
73
+ lastFullRecalcAt: number;
74
+ }
34
75
  /**
35
76
  * Trust event types
36
77
  */
37
- export type TrustEventType = 'trust:initialized' | 'trust:signal_recorded' | 'trust:score_changed' | 'trust:tier_changed' | 'trust:decay_applied' | 'trust:recovery_applied' | 'trust:recovery_milestone';
78
+ export type TrustEventType = 'trust:initialized' | 'trust:signal_recorded' | 'trust:signal_deduplicated' | 'trust:score_changed' | 'trust:tier_changed' | 'trust:readiness_adjusted' | 'trust:freshness_adjusted' | 'trust:decay_applied' | 'trust:failure_detected' | 'trust:recovery_applied' | 'trust:recovery_milestone' | 'trust:fingerprint_drift' | 'trust:envelope_breach' | 'trust:fingerprint_baseline_set';
38
79
  /**
39
80
  * Base trust event
40
81
  */
@@ -90,6 +131,38 @@ export interface TrustDecayAppliedEvent extends TrustEvent {
90
131
  newScore: TrustScore;
91
132
  decayAmount: number;
92
133
  stalenessMs: number;
134
+ accelerated: boolean;
135
+ }
136
+ /**
137
+ * Readiness Degree adjusted event (primary neutral terminology)
138
+ */
139
+ export interface TrustReadinessAdjustedEvent extends TrustEvent {
140
+ type: 'trust:readiness_adjusted';
141
+ previousScore: TrustScore;
142
+ newScore: TrustScore;
143
+ adjustmentAmount: number;
144
+ stalenessMs: number;
145
+ accelerated: boolean;
146
+ }
147
+ /**
148
+ * Freshness adjustment event (neutral terminology alias for trust:decay_applied)
149
+ */
150
+ export interface TrustFreshnessAdjustedEvent extends TrustEvent {
151
+ type: 'trust:freshness_adjusted';
152
+ previousScore: TrustScore;
153
+ newScore: TrustScore;
154
+ adjustmentAmount: number;
155
+ stalenessMs: number;
156
+ accelerated: boolean;
157
+ }
158
+ /**
159
+ * Failure detected event
160
+ */
161
+ export interface TrustFailureDetectedEvent extends TrustEvent {
162
+ type: 'trust:failure_detected';
163
+ signal: TrustSignal;
164
+ failureCount: number;
165
+ acceleratedDecayActive: boolean;
93
166
  }
94
167
  /**
95
168
  * Recovery applied event
@@ -113,10 +186,68 @@ export interface TrustRecoveryMilestoneEvent extends TrustEvent {
113
186
  newScore: TrustScore;
114
187
  details: string;
115
188
  }
189
+ /**
190
+ * Signal deduplication event — emitted when diminishing returns are applied
191
+ */
192
+ export interface TrustSignalDeduplicatedEvent extends TrustEvent {
193
+ type: 'trust:signal_deduplicated';
194
+ signal: TrustSignal;
195
+ originalValue: number;
196
+ adjustedValue: number;
197
+ diminishingFactor: number;
198
+ repeatCount: number;
199
+ }
200
+ /**
201
+ * Fingerprint drift detected event
202
+ */
203
+ export interface TrustFingerprintDriftEvent extends TrustEvent {
204
+ type: 'trust:fingerprint_drift';
205
+ similarity: number;
206
+ magnitude: number;
207
+ driftThreshold: number;
208
+ }
209
+ /**
210
+ * Cognitive envelope breach detected event
211
+ */
212
+ export interface TrustEnvelopeBreachEvent extends TrustEvent {
213
+ type: 'trust:envelope_breach';
214
+ distance: number;
215
+ trustMultiplier: number;
216
+ breachCounter: number;
217
+ }
218
+ /**
219
+ * Fingerprint baseline set event
220
+ */
221
+ export interface TrustFingerprintBaselineSetEvent extends TrustEvent {
222
+ type: 'trust:fingerprint_baseline_set';
223
+ fingerprintSha256: string;
224
+ }
116
225
  /**
117
226
  * Union of all trust events
118
227
  */
119
- export type AnyTrustEvent = TrustInitializedEvent | TrustSignalRecordedEvent | TrustScoreChangedEvent | TrustTierChangedEvent | TrustDecayAppliedEvent | TrustRecoveryAppliedEvent | TrustRecoveryMilestoneEvent;
228
+ export type AnyTrustEvent = TrustInitializedEvent | TrustSignalRecordedEvent | TrustSignalDeduplicatedEvent | TrustScoreChangedEvent | TrustTierChangedEvent | TrustReadinessAdjustedEvent | TrustFreshnessAdjustedEvent | TrustDecayAppliedEvent | TrustFailureDetectedEvent | TrustRecoveryAppliedEvent | TrustRecoveryMilestoneEvent | TrustFingerprintDriftEvent | TrustEnvelopeBreachEvent | TrustFingerprintBaselineSetEvent;
229
+ /**
230
+ * Time-bound exception for Readiness Degree adjustments.
231
+ */
232
+ export interface ReadinessException {
233
+ /** Human-readable reason for exception */
234
+ reason: string;
235
+ /** Exception issue timestamp */
236
+ issuedAt: string;
237
+ /** Exception expiration timestamp */
238
+ expiresAt: string;
239
+ /** 0..1 scale applied to scheduled reductions while exception is active (default: 1) */
240
+ reductionScale: number;
241
+ }
242
+ /**
243
+ * Canonical reason codes for time-bound readiness exceptions.
244
+ */
245
+ export declare const READINESS_EXCEPTION_REASON_CODES: readonly ["approved_leave", "planned_maintenance", "telemetry_outage", "legal_hold", "incident_response", "dependency_outage"];
246
+ export type ReadinessExceptionReasonCode = typeof READINESS_EXCEPTION_REASON_CODES[number];
247
+ /**
248
+ * @deprecated Use ReadinessException.
249
+ */
250
+ export type FreshnessException = ReadinessException;
120
251
  /**
121
252
  * Entity trust record
122
253
  */
@@ -124,19 +255,34 @@ export interface TrustRecord {
124
255
  entityId: ID;
125
256
  score: TrustScore;
126
257
  level: TrustLevel;
127
- /** @deprecated Use factorScores instead */
128
258
  components: TrustComponents;
129
- /** Per-factor scores (0.0 to 1.0) for each of the 16 trust factors */
130
- factorScores: Record<string, number>;
131
259
  signals: TrustSignal[];
132
260
  lastCalculatedAt: string;
133
261
  history: TrustHistoryEntry[];
262
+ /** Recent failure timestamps for accelerated decay */
263
+ recentFailures: string[];
134
264
  /** Recent success timestamps for recovery */
135
265
  recentSuccesses: string[];
136
266
  /** Peak score achieved (for recovery milestone tracking) */
137
267
  peakScore: TrustScore;
138
268
  /** Consecutive successful signals count */
139
269
  consecutiveSuccesses: number;
270
+ /** Scheduled readiness checkpoint index */
271
+ readinessCheckpointIndex?: number;
272
+ /** Deferred multiplier accumulated during active exception windows */
273
+ deferredReadinessMultiplier?: number;
274
+ /** Optional active readiness exception */
275
+ readinessException?: ReadinessException;
276
+ /** Baseline score captured when readiness schedule starts */
277
+ readinessBaselineScore?: TrustScore;
278
+ /** @deprecated Use readinessCheckpointIndex */
279
+ freshnessCheckpointIndex?: number;
280
+ /** @deprecated Use deferredReadinessMultiplier */
281
+ deferredFreshnessMultiplier?: number;
282
+ /** @deprecated Use readinessException */
283
+ freshnessException?: FreshnessException;
284
+ /** @deprecated Use readinessBaselineScore */
285
+ freshnessBaselineScore?: TrustScore;
140
286
  }
141
287
  /**
142
288
  * Trust history entry
@@ -153,62 +299,55 @@ export interface TrustHistoryEntry {
153
299
  export interface TrustCalculation {
154
300
  score: TrustScore;
155
301
  level: TrustLevel;
156
- /** @deprecated Use factorScores */
157
302
  components: TrustComponents;
158
- /** Per-factor scores for all 16 trust factors */
159
- factorScores: Record<string, number>;
160
303
  factors: string[];
161
304
  }
162
305
  /**
163
- * Human-readable explanation of a trust score.
164
- *
165
- * Returned by `TrustEngine.explainScore()` to provide full transparency
166
- * into how a score was computed. Every field is designed for audit logs,
167
- * dashboards, or end-user display.
306
+ * Factor breakdown entry in a trust explanation
307
+ */
308
+ export interface TrustFactorBreakdown {
309
+ code: string;
310
+ weight: number;
311
+ rawScore: number;
312
+ contribution: number;
313
+ }
314
+ /**
315
+ * Trust score explanation returned by explainScore
168
316
  */
169
317
  export interface TrustExplanation {
170
- /** Entity ID */
171
318
  entityId: ID;
172
- /** Final trust score (0-1000) */
173
319
  score: TrustScore;
174
- /** Trust level index (0-7) */
175
320
  level: TrustLevel;
176
- /** Human-readable level name (e.g. "Trusted") */
177
321
  levelName: string;
178
- /** Score range for the current level */
179
322
  levelRange: {
180
323
  min: number;
181
324
  max: number;
182
325
  };
183
- /** Score needed to reach the next level (null if at T7) */
184
- pointsToNextLevel: number | null;
185
- /** Total number of signals ingested */
186
326
  signalCount: number;
187
- /** Breakdown of each factor: code, weight, raw score, weighted contribution */
188
- factorBreakdown: {
189
- code: string;
190
- weight: number;
191
- rawScore: number;
192
- /** Contribution = rawScore * weight * 1000 (portion of final score) */
193
- contribution: number;
194
- }[];
195
- /** Top factors contributing positively (sorted by contribution desc) */
196
- topPositiveFactors: string[];
197
- /** Top factors dragging score down (sorted by contribution asc) */
198
- topNegativeFactors: string[];
199
- /** Decay multiplier currently applied (1.0 = no decay) */
200
- decayMultiplier: number;
201
- /** Days since last signal */
327
+ factorBreakdown: TrustFactorBreakdown[];
202
328
  daysSinceLastSignal: number | null;
203
- /** ISO timestamp of explanation generation */
329
+ decayMultiplier: number;
330
+ pointsToNextLevel: number | null;
204
331
  generatedAt: string;
205
332
  }
206
333
  /**
207
334
  * Trust Engine configuration
208
335
  */
209
336
  export interface TrustEngineConfig {
210
- /** How often to check for and apply decay, in milliseconds (default: 60000 = 1 minute) */
337
+ /** Base decay rate per interval (default: 0.01 = 1%) */
338
+ decayRate?: number;
339
+ /** Decay interval in milliseconds (default: 60000 = 1 minute) */
340
+ decayIntervalMs?: number;
341
+ /** Alias for decayIntervalMs — decay check interval in milliseconds */
211
342
  decayCheckIntervalMs?: number;
343
+ /** Signal value threshold below which a signal is considered a failure (default: 0.3) */
344
+ failureThreshold?: number;
345
+ /** Multiplier applied to decay rate when entity has recent failures (default: 1.0) */
346
+ acceleratedDecayMultiplier?: number;
347
+ /** Time window in ms to consider failures as "recent" (default: 3600000 = 1 hour) */
348
+ failureWindowMs?: number;
349
+ /** Minimum failures within window to trigger accelerated decay (default: 2) */
350
+ minFailuresForAcceleration?: number;
212
351
  /** Persistence provider for storing trust records */
213
352
  persistence?: PersistenceProvider;
214
353
  /** Auto-persist changes (default: true when persistence is provided) */
@@ -231,13 +370,54 @@ export interface TrustEngineConfig {
231
370
  maxTotalListeners?: number;
232
371
  /** Warn when listener count exceeds this percentage of max (default: 0.8 = 80%) */
233
372
  listenerWarningThreshold?: number;
373
+ /** Freshness adjustment mode (default: checkpoint_schedule) */
374
+ freshnessMode?: 'legacy_interval' | 'checkpoint_schedule';
375
+ /** Absolute day checkpoints since last trust-relevant action */
376
+ freshnessCheckpointDays?: number[];
377
+ /** Reduction percentages per checkpoint (0..1) */
378
+ freshnessCheckpointReductions?: number[];
379
+ /** Readiness Degree adjustment mode (preferred name) */
380
+ readinessMode?: 'legacy_interval' | 'checkpoint_schedule';
381
+ /** Readiness Degree checkpoint days (preferred name) */
382
+ readinessCheckpointDays?: number[];
383
+ /** Readiness Degree checkpoint reductions (preferred name) */
384
+ readinessCheckpointReductions?: number[];
385
+ /** Allowed readiness exception reason codes (default: READINESS_EXCEPTION_REASON_CODES) */
386
+ readinessExceptionAllowedReasons?: ReadinessExceptionReasonCode[];
387
+ /** Maximum readiness exception duration in ms (default: 30 days) */
388
+ readinessExceptionMaxDurationMs?: number;
389
+ /** @deprecated Use readinessExceptionAllowedReasons */
390
+ freshnessExceptionAllowedReasons?: ReadinessExceptionReasonCode[];
391
+ /** @deprecated Use readinessExceptionMaxDurationMs */
392
+ freshnessExceptionMaxDurationMs?: number;
393
+ /** Enable signal deduplication / diminishing returns (default: true) */
394
+ signalDedupEnabled?: boolean;
395
+ /** Diminishing factor applied per consecutive repeat of the same signal type (default: 0.5 — halving) */
396
+ signalDedupDecayFactor?: number;
397
+ /** Sliding window size: max recent signals to track per entity for dedup (default: 10) */
398
+ signalDedupWindowSize?: number;
399
+ /** Time window in ms after which dedup counters reset for a signal type (default: 3600000 = 1 hour) */
400
+ signalDedupWindowMs?: number;
401
+ /** Minimum diminishing factor floor — repeated signals never go below this (default: 0.0625 = 1/16) */
402
+ signalDedupMinFactor?: number;
403
+ /** Optional ParameSphere SVD fingerprinting engine for internal-state monitoring */
404
+ paramesphere?: ParameSphereEngine;
405
+ /** Optional Cognitive Envelope for breach detection */
406
+ cognitiveEnvelope?: CognitiveEnvelope;
407
+ /** Optional TrustVerifier for cryptographic state commitment after every score change */
408
+ verifier?: TrustVerifier;
234
409
  }
235
410
  /**
236
411
  * Trust Engine service with event emission and subscription limits
237
412
  */
238
413
  export declare class TrustEngine extends EventEmitter {
239
414
  private records;
240
- private _decayCheckIntervalMs;
415
+ private _decayRate;
416
+ private _decayIntervalMs;
417
+ private _failureThreshold;
418
+ private _acceleratedDecayMultiplier;
419
+ private _failureWindowMs;
420
+ private _minFailuresForAcceleration;
241
421
  private _persistence?;
242
422
  private _autoPersist;
243
423
  private _successThreshold;
@@ -251,7 +431,39 @@ export declare class TrustEngine extends EventEmitter {
251
431
  private _listenerWarningThreshold;
252
432
  private _listenerCounts;
253
433
  private _totalListeners;
434
+ private _readinessMode;
435
+ private _readinessCheckpointDays;
436
+ private _readinessCheckpointReductions;
437
+ private _allowedReadinessExceptionReasons;
438
+ private _readinessExceptionMaxDurationMs;
439
+ private _signalDedupEnabled;
440
+ private _signalDedupDecayFactor;
441
+ private _signalDedupWindowSize;
442
+ private _signalDedupWindowMs;
443
+ private _signalDedupMinFactor;
444
+ /**
445
+ * Per-entity dedup tracker. Each entry holds recent signal type records
446
+ * used to compute diminishing returns for repeated identical signal types.
447
+ */
448
+ private _dedupState;
449
+ private _scoreCache;
450
+ /** Number of signals between forced full recalculations for drift correction */
451
+ private static readonly INCREMENTAL_RECALC_INTERVAL;
452
+ private _paramesphere?;
453
+ private _cognitiveEnvelope?;
454
+ private _fingerprintBaselines;
455
+ private _verifier?;
254
456
  constructor(config?: TrustEngineConfig);
457
+ /** Decay check interval in milliseconds */
458
+ get decayCheckIntervalMs(): number;
459
+ private validateReadinessExceptionOptions;
460
+ private getCheckpointIntervalMs;
461
+ private ensureReadinessState;
462
+ private isUsingDefaultReadinessSchedule;
463
+ private isReadinessExceptionActive;
464
+ private applyDeferredReadinessCatchupIfExpired;
465
+ private applyScheduledReadinessAdjustment;
466
+ private emitReadinessAdjustmentEvents;
255
467
  /**
256
468
  * Add event listener with subscription limits
257
469
  * @throws Error if listener limits are exceeded
@@ -295,9 +507,21 @@ export declare class TrustEngine extends EventEmitter {
295
507
  maxListenersPerEvent: number;
296
508
  };
297
509
  /**
298
- * Get the decay check interval in milliseconds
510
+ * Get the current decay rate
299
511
  */
300
- get decayCheckIntervalMs(): number;
512
+ get decayRate(): number;
513
+ /**
514
+ * Get the decay interval in milliseconds
515
+ */
516
+ get decayIntervalMs(): number;
517
+ /**
518
+ * Get the failure threshold
519
+ */
520
+ get failureThreshold(): number;
521
+ /**
522
+ * Get the accelerated decay multiplier
523
+ */
524
+ get acceleratedDecayMultiplier(): number;
301
525
  /**
302
526
  * Get the persistence provider
303
527
  */
@@ -326,6 +550,29 @@ export declare class TrustEngine extends EventEmitter {
326
550
  * Persist a single record if auto-persist is enabled
327
551
  */
328
552
  private autoPersistRecord;
553
+ /**
554
+ * Check an entity's model fingerprint for drift.
555
+ * If drift exceeds threshold, automatically records a negative trust signal.
556
+ * Returns the drift result.
557
+ */
558
+ checkFingerprint(entityId: string, weights: Float32Array[], activations?: ActivationStats[]): Promise<{
559
+ drifted: boolean;
560
+ similarity: number;
561
+ magnitude: number;
562
+ } | null>;
563
+ /**
564
+ * Set or update the fingerprint baseline for an entity.
565
+ * Call after initial model load or after a verified safe update.
566
+ */
567
+ setFingerprintBaseline(entityId: string, weights: Float32Array[], activations?: ActivationStats[]): Promise<void>;
568
+ /**
569
+ * Check if entity behavioral signals are within cognitive envelope bounds.
570
+ * If breach detected, records a negative trust signal with multiplier.
571
+ */
572
+ checkCognitiveEnvelope(entityId: string, observation: number[]): Promise<{
573
+ breached: boolean;
574
+ distance?: number;
575
+ } | null>;
329
576
  /**
330
577
  * Close the trust engine and persistence provider
331
578
  */
@@ -338,6 +585,14 @@ export declare class TrustEngine extends EventEmitter {
338
585
  * Calculate trust score for an entity
339
586
  */
340
587
  calculate(entityId: ID): Promise<TrustCalculation>;
588
+ /**
589
+ * Check if an entity has accelerated decay active
590
+ */
591
+ private hasAcceleratedDecay;
592
+ /**
593
+ * Clean up old failure timestamps outside the window
594
+ */
595
+ private cleanupFailures;
341
596
  /**
342
597
  * Clean up old success timestamps outside the window
343
598
  */
@@ -358,22 +613,18 @@ export declare class TrustEngine extends EventEmitter {
358
613
  * Get trust score for an entity (with automatic decay)
359
614
  */
360
615
  getScore(entityId: ID): Promise<TrustRecord | undefined>;
361
- /**
362
- * Validate a trust signal before ingestion.
363
- * Rejects NaN, Infinity, out-of-range values, and missing required fields.
364
- *
365
- * @throws Error on invalid signal
366
- */
367
- private validateSignal;
368
616
  /**
369
617
  * Record a trust signal
370
- * @throws Error if signal is invalid (NaN, out of range, missing fields)
371
618
  */
372
619
  recordSignal(signal: TrustSignal): Promise<void>;
373
620
  /**
374
621
  * Initialize trust for a new entity
375
622
  */
376
623
  initializeEntity(entityId: ID, initialLevel?: TrustLevel): Promise<TrustRecord>;
624
+ /**
625
+ * Explain a trust score with full factor breakdown
626
+ */
627
+ explainScore(entityId: ID): Promise<TrustExplanation>;
377
628
  /**
378
629
  * Get all entity IDs
379
630
  */
@@ -382,53 +633,130 @@ export declare class TrustEngine extends EventEmitter {
382
633
  * Get trust level name
383
634
  */
384
635
  getLevelName(level: TrustLevel): string;
385
- /**
386
- * Generate a human-readable explanation of an entity's current trust score.
387
- *
388
- * Provides full transparency into how the score was computed, including
389
- * per-factor contributions, decay status, and what's needed to advance.
390
- *
391
- * @example
392
- * ```ts
393
- * const explanation = await engine.explainScore('agent-123');
394
- * console.log(`Score: ${explanation.score} (${explanation.levelName})`);
395
- * console.log(`Top factor: ${explanation.topPositiveFactors[0]}`);
396
- * console.log(`Points to next tier: ${explanation.pointsToNextLevel}`);
397
- * ```
398
- */
399
- explainScore(entityId: ID): Promise<TrustExplanation>;
400
636
  /**
401
637
  * Convert score to trust level
402
638
  */
403
639
  private scoreToLevel;
404
640
  /**
405
- * @deprecated Use calculateFactorScores for 16-factor model. Kept for backwards compatibility.
406
641
  * Calculate component scores from signals
407
642
  */
408
643
  private calculateComponents;
409
644
  /**
410
- * Calculate per-factor scores from signals.
411
- * Signals can use either:
412
- * - Factor code prefix (e.g. 'CT-COMP.success')
413
- * - Legacy bucket prefix (e.g. 'behavioral.success') mapped to factors via SIGNAL_PREFIX_TO_FACTORS
645
+ * Calculate average signal value with default.
646
+ *
647
+ * Applies the BASIS penalty ratio P(T) = 3 + T to negative signals:
648
+ * negative signal weights are multiplied by (3 + currentTier) so that
649
+ * higher-tier agents suffer proportionally larger score drops from failures.
650
+ */
651
+ private averageSignalValue;
652
+ /**
653
+ * Human/manual positive approvals carry less upward impact at higher tiers.
414
654
  */
415
- private calculateFactorScores;
655
+ private adjustSignalValueForTier;
656
+ private isHumanApprovalSignal;
657
+ private getHumanApprovalAssistFactor;
416
658
  /**
417
- * Calculate average signal value with default
659
+ * Resolve which component bucket a signal type belongs to.
660
+ * Returns the component key or undefined if the signal type is unrecognized.
418
661
  */
419
- private averageSignalValue;
662
+ private resolveSignalComponent;
663
+ /**
664
+ * Create a fresh empty CachedScoreState.
665
+ */
666
+ private createEmptyCacheState;
667
+ /**
668
+ * Build the score cache from a full recalculation of all stored signals.
669
+ * This mirrors the logic in averageSignalValue but captures the running totals.
670
+ */
671
+ private buildCacheFromSignals;
672
+ /**
673
+ * Incrementally update the cached score state with a single new signal.
674
+ * Returns the updated TrustCalculation. This is O(1) per signal.
675
+ */
676
+ private incrementalUpdate;
677
+ /**
678
+ * Invalidate the incremental score cache for an entity,
679
+ * forcing the next recordSignal to do a full recalculation.
680
+ */
681
+ invalidateScoreCache(entityId?: ID): void;
420
682
  /**
421
683
  * Get significant factors affecting the score
422
684
  */
423
685
  private getSignificantFactors;
686
+ /**
687
+ * Apply signal deduplication with diminishing returns.
688
+ *
689
+ * Tracks recent signal types per entity within a sliding window. When the same
690
+ * signal type appears consecutively (within the window), its effective value is
691
+ * pulled toward 0.5 (neutral) by an exponentially decaying factor. This prevents
692
+ * replay attacks from inflating or deflating trust scores while still allowing
693
+ * legitimate repeated signals to have some (diminished) impact.
694
+ *
695
+ * The adjustment formula moves the value toward 0.5 (the neutral baseline):
696
+ * adjustedValue = 0.5 + (originalValue - 0.5) * factor
697
+ *
698
+ * This means:
699
+ * - Positive signals (value > 0.5) have their positive impact reduced
700
+ * - Negative signals (value < 0.5) have their negative impact reduced
701
+ * - A value of exactly 0.5 is never adjusted
702
+ */
703
+ private applySignalDedup;
704
+ /**
705
+ * Check whether signal deduplication is enabled
706
+ */
707
+ get signalDedupEnabled(): boolean;
708
+ /**
709
+ * Clear dedup state for an entity (useful for testing or resets)
710
+ */
711
+ clearDedupState(entityId?: ID): void;
424
712
  /**
425
713
  * Create initial trust record
426
714
  */
427
715
  private createInitialRecord;
716
+ /**
717
+ * Configure a time-bound Readiness Degree exception for an entity.
718
+ */
719
+ setReadinessException(entityId: ID, options: {
720
+ reason: ReadinessExceptionReasonCode;
721
+ expiresAt: string;
722
+ reductionScale?: number;
723
+ }): void;
724
+ /**
725
+ * @deprecated Use setReadinessException.
726
+ */
727
+ setFreshnessException(entityId: ID, options: {
728
+ reason: ReadinessExceptionReasonCode;
729
+ expiresAt: string;
730
+ reductionScale?: number;
731
+ }): void;
732
+ /**
733
+ * Clear Readiness Degree exception for an entity.
734
+ */
735
+ clearReadinessException(entityId: ID): void;
736
+ /**
737
+ * @deprecated Use clearReadinessException.
738
+ */
739
+ clearFreshnessException(entityId: ID): void;
740
+ /**
741
+ * Get active Readiness Degree exception for an entity.
742
+ */
743
+ getReadinessException(entityId: ID): ReadinessException | undefined;
744
+ /**
745
+ * @deprecated Use getReadinessException.
746
+ */
747
+ getFreshnessException(entityId: ID): FreshnessException | undefined;
748
+ /**
749
+ * Check if accelerated decay is currently active for an entity
750
+ */
751
+ isAcceleratedDecayActive(entityId: ID): boolean;
428
752
  /**
429
753
  * Check if accelerated recovery is currently active for an entity
430
754
  */
431
755
  isAcceleratedRecoveryActive(entityId: ID): boolean;
756
+ /**
757
+ * Get current failure count for an entity
758
+ */
759
+ getFailureCount(entityId: ID): number;
432
760
  /**
433
761
  * Get consecutive success count for an entity
434
762
  */
@@ -437,6 +765,16 @@ export declare class TrustEngine extends EventEmitter {
437
765
  * Get peak score for an entity
438
766
  */
439
767
  getPeakScore(entityId: ID): TrustScore;
768
+ /**
769
+ * Verify an entity's trust score against its verifier commitment chain.
770
+ * Requires a TrustVerifier to be configured; throws if none is set.
771
+ */
772
+ verifyEntity(entityId: ID): import("./trust-verifier.js").TrustVerificationResult;
773
+ /**
774
+ * Verify all tracked entities against the verifier commitment chain.
775
+ * Requires a TrustVerifier to be configured; throws if none is set.
776
+ */
777
+ verifyAll(): Map<string, import("./trust-verifier.js").TrustVerificationResult>;
440
778
  }
441
779
  /**
442
780
  * Create a new Trust Engine instance