@vorionsys/atsf-core 0.2.3 → 0.2.4

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 (325) hide show
  1. package/dist/api/index.d.ts +1 -1
  2. package/dist/api/index.js +1 -1
  3. package/dist/api/server.d.ts +2 -2
  4. package/dist/api/server.d.ts.map +1 -1
  5. package/dist/api/server.js +147 -184
  6. package/dist/api/server.js.map +1 -1
  7. package/dist/arbitration/index.d.ts +4 -4
  8. package/dist/arbitration/index.d.ts.map +1 -1
  9. package/dist/arbitration/index.js +41 -46
  10. package/dist/arbitration/index.js.map +1 -1
  11. package/dist/arbitration/types.d.ts +10 -10
  12. package/dist/arbitration/types.d.ts.map +1 -1
  13. package/dist/basis/evaluator.d.ts +1 -1
  14. package/dist/basis/evaluator.d.ts.map +1 -1
  15. package/dist/basis/evaluator.js +54 -56
  16. package/dist/basis/evaluator.js.map +1 -1
  17. package/dist/basis/index.d.ts +3 -3
  18. package/dist/basis/index.js +3 -3
  19. package/dist/basis/parser.d.ts +2 -2
  20. package/dist/basis/parser.d.ts.map +1 -1
  21. package/dist/basis/parser.js +25 -32
  22. package/dist/basis/parser.js.map +1 -1
  23. package/dist/basis/types.d.ts +2 -2
  24. package/dist/chain/index.d.ts.map +1 -1
  25. package/dist/chain/index.js +16 -16
  26. package/dist/chain/index.js.map +1 -1
  27. package/dist/cognigate/index.d.ts +1 -1
  28. package/dist/cognigate/index.d.ts.map +1 -1
  29. package/dist/cognigate/index.js +33 -44
  30. package/dist/cognigate/index.js.map +1 -1
  31. package/dist/common/adapters.d.ts +4 -4
  32. package/dist/common/adapters.d.ts.map +1 -1
  33. package/dist/common/adapters.js +52 -62
  34. package/dist/common/adapters.js.map +1 -1
  35. package/dist/common/config.d.ts +69 -68
  36. package/dist/common/config.d.ts.map +1 -1
  37. package/dist/common/config.js +50 -50
  38. package/dist/common/config.js.map +1 -1
  39. package/dist/common/index.d.ts +4 -4
  40. package/dist/common/index.js +4 -4
  41. package/dist/common/logger.d.ts +1 -1
  42. package/dist/common/logger.js +8 -8
  43. package/dist/common/types.d.ts +5 -5
  44. package/dist/common/types.js +5 -5
  45. package/dist/containment/index.d.ts +3 -3
  46. package/dist/containment/index.d.ts.map +1 -1
  47. package/dist/containment/index.js +105 -119
  48. package/dist/containment/index.js.map +1 -1
  49. package/dist/containment/types.d.ts +11 -11
  50. package/dist/containment/types.d.ts.map +1 -1
  51. package/dist/contracts/index.d.ts +9 -9
  52. package/dist/contracts/index.d.ts.map +1 -1
  53. package/dist/contracts/index.js +54 -59
  54. package/dist/contracts/index.js.map +1 -1
  55. package/dist/contracts/types.d.ts +12 -12
  56. package/dist/contracts/types.d.ts.map +1 -1
  57. package/dist/crewai/callback.d.ts +2 -2
  58. package/dist/crewai/callback.d.ts.map +1 -1
  59. package/dist/crewai/callback.js +27 -27
  60. package/dist/crewai/callback.js.map +1 -1
  61. package/dist/crewai/executor.d.ts +95 -4
  62. package/dist/crewai/executor.d.ts.map +1 -1
  63. package/dist/crewai/executor.js +457 -16
  64. package/dist/crewai/executor.js.map +1 -1
  65. package/dist/crewai/index.d.ts +4 -4
  66. package/dist/crewai/index.js +4 -4
  67. package/dist/crewai/tools.d.ts +1 -1
  68. package/dist/crewai/tools.d.ts.map +1 -1
  69. package/dist/crewai/tools.js +38 -39
  70. package/dist/crewai/tools.js.map +1 -1
  71. package/dist/crewai/types.d.ts +66 -3
  72. package/dist/crewai/types.d.ts.map +1 -1
  73. package/dist/enforce/index.d.ts +229 -7
  74. package/dist/enforce/index.d.ts.map +1 -1
  75. package/dist/enforce/index.js +52 -80
  76. package/dist/enforce/index.js.map +1 -1
  77. package/dist/enforce/trust-aware-enforcement-service.d.ts +8 -8
  78. package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
  79. package/dist/enforce/trust-aware-enforcement-service.js +107 -125
  80. package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
  81. package/dist/governance/fluid-workflow.d.ts +8 -8
  82. package/dist/governance/fluid-workflow.d.ts.map +1 -1
  83. package/dist/governance/fluid-workflow.js +86 -114
  84. package/dist/governance/fluid-workflow.js.map +1 -1
  85. package/dist/governance/index.d.ts +7 -7
  86. package/dist/governance/index.d.ts.map +1 -1
  87. package/dist/governance/index.js +74 -81
  88. package/dist/governance/index.js.map +1 -1
  89. package/dist/governance/proof-bridge.d.ts +6 -6
  90. package/dist/governance/proof-bridge.d.ts.map +1 -1
  91. package/dist/governance/proof-bridge.js +5 -5
  92. package/dist/governance/proof-bridge.js.map +1 -1
  93. package/dist/governance/types.d.ts +9 -16
  94. package/dist/governance/types.d.ts.map +1 -1
  95. package/dist/governance/types.js.map +1 -1
  96. package/dist/index.d.ts +27 -29
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +25 -31
  99. package/dist/index.js.map +1 -1
  100. package/dist/intent/index.d.ts +55 -5
  101. package/dist/intent/index.d.ts.map +1 -1
  102. package/dist/intent/index.js +21 -24
  103. package/dist/intent/index.js.map +1 -1
  104. package/dist/intent/persistent-intent-service.d.ts +2 -2
  105. package/dist/intent/persistent-intent-service.d.ts.map +1 -1
  106. package/dist/intent/persistent-intent-service.js +31 -43
  107. package/dist/intent/persistent-intent-service.js.map +1 -1
  108. package/dist/intent/supabase-intent-repository.d.ts +124 -0
  109. package/dist/intent/supabase-intent-repository.d.ts.map +1 -0
  110. package/dist/intent/supabase-intent-repository.js +404 -0
  111. package/dist/intent/supabase-intent-repository.js.map +1 -0
  112. package/dist/langchain/callback.d.ts +2 -2
  113. package/dist/langchain/callback.d.ts.map +1 -1
  114. package/dist/langchain/callback.js +30 -30
  115. package/dist/langchain/callback.js.map +1 -1
  116. package/dist/langchain/executor.d.ts +4 -4
  117. package/dist/langchain/executor.d.ts.map +1 -1
  118. package/dist/langchain/executor.js +80 -82
  119. package/dist/langchain/executor.js.map +1 -1
  120. package/dist/langchain/index.d.ts +5 -5
  121. package/dist/langchain/index.js +5 -5
  122. package/dist/langchain/tools.d.ts +1 -1
  123. package/dist/langchain/tools.d.ts.map +1 -1
  124. package/dist/langchain/tools.js +34 -36
  125. package/dist/langchain/tools.js.map +1 -1
  126. package/dist/langchain/types.d.ts +3 -3
  127. package/dist/langchain/types.d.ts.map +1 -1
  128. package/dist/layers/implementations/L0-request-format.d.ts +2 -2
  129. package/dist/layers/implementations/L0-request-format.d.ts.map +1 -1
  130. package/dist/layers/implementations/L0-request-format.js +52 -54
  131. package/dist/layers/implementations/L0-request-format.js.map +1 -1
  132. package/dist/layers/implementations/L1-input-size.d.ts +2 -2
  133. package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
  134. package/dist/layers/implementations/L1-input-size.js +39 -49
  135. package/dist/layers/implementations/L1-input-size.js.map +1 -1
  136. package/dist/layers/implementations/L2-charset-sanitizer.d.ts +2 -2
  137. package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
  138. package/dist/layers/implementations/L2-charset-sanitizer.js +71 -81
  139. package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
  140. package/dist/layers/implementations/L3-schema-conformance.d.ts +3 -3
  141. package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
  142. package/dist/layers/implementations/L3-schema-conformance.js +73 -82
  143. package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
  144. package/dist/layers/implementations/L4-injection-detector.d.ts +4 -4
  145. package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
  146. package/dist/layers/implementations/L4-injection-detector.js +81 -85
  147. package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
  148. package/dist/layers/implementations/L5-rate-limiter.d.ts +2 -2
  149. package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
  150. package/dist/layers/implementations/L5-rate-limiter.js +20 -20
  151. package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
  152. package/dist/layers/implementations/index.d.ts +6 -6
  153. package/dist/layers/implementations/index.d.ts.map +1 -1
  154. package/dist/layers/implementations/index.js +6 -6
  155. package/dist/layers/implementations/index.js.map +1 -1
  156. package/dist/layers/index.d.ts +3 -3
  157. package/dist/layers/index.d.ts.map +1 -1
  158. package/dist/layers/index.js +71 -99
  159. package/dist/layers/index.js.map +1 -1
  160. package/dist/layers/types.d.ts +16 -16
  161. package/dist/layers/types.d.ts.map +1 -1
  162. package/dist/persistence/file.d.ts +3 -3
  163. package/dist/persistence/file.d.ts.map +1 -1
  164. package/dist/persistence/file.js +28 -32
  165. package/dist/persistence/file.js.map +1 -1
  166. package/dist/persistence/index.d.ts +7 -7
  167. package/dist/persistence/index.d.ts.map +1 -1
  168. package/dist/persistence/index.js +18 -18
  169. package/dist/persistence/index.js.map +1 -1
  170. package/dist/persistence/memory.d.ts +3 -3
  171. package/dist/persistence/memory.d.ts.map +1 -1
  172. package/dist/persistence/memory.js +8 -10
  173. package/dist/persistence/memory.js.map +1 -1
  174. package/dist/persistence/sqlite.d.ts +3 -3
  175. package/dist/persistence/sqlite.d.ts.map +1 -1
  176. package/dist/persistence/sqlite.js +40 -39
  177. package/dist/persistence/sqlite.js.map +1 -1
  178. package/dist/persistence/supabase.d.ts +3 -3
  179. package/dist/persistence/supabase.d.ts.map +1 -1
  180. package/dist/persistence/supabase.js +45 -43
  181. package/dist/persistence/supabase.js.map +1 -1
  182. package/dist/persistence/types.d.ts +5 -5
  183. package/dist/phase6/ceiling.d.ts +5 -5
  184. package/dist/phase6/ceiling.d.ts.map +1 -1
  185. package/dist/phase6/ceiling.js +36 -69
  186. package/dist/phase6/ceiling.js.map +1 -1
  187. package/dist/phase6/context.d.ts +3 -3
  188. package/dist/phase6/context.d.ts.map +1 -1
  189. package/dist/phase6/context.js +47 -93
  190. package/dist/phase6/context.js.map +1 -1
  191. package/dist/phase6/index.d.ts +12 -12
  192. package/dist/phase6/index.d.ts.map +1 -1
  193. package/dist/phase6/index.js +15 -15
  194. package/dist/phase6/index.js.map +1 -1
  195. package/dist/phase6/presets.d.ts +2 -2
  196. package/dist/phase6/presets.d.ts.map +1 -1
  197. package/dist/phase6/presets.js +33 -39
  198. package/dist/phase6/presets.js.map +1 -1
  199. package/dist/phase6/provenance.d.ts +4 -4
  200. package/dist/phase6/provenance.d.ts.map +1 -1
  201. package/dist/phase6/provenance.js +35 -42
  202. package/dist/phase6/provenance.js.map +1 -1
  203. package/dist/phase6/role-gates/index.d.ts +2 -2
  204. package/dist/phase6/role-gates/index.js +2 -2
  205. package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
  206. package/dist/phase6/role-gates/kernel.js +16 -16
  207. package/dist/phase6/role-gates/kernel.js.map +1 -1
  208. package/dist/phase6/role-gates/policy.d.ts +2 -2
  209. package/dist/phase6/role-gates/policy.js +6 -6
  210. package/dist/phase6/role-gates.d.ts +4 -4
  211. package/dist/phase6/role-gates.d.ts.map +1 -1
  212. package/dist/phase6/role-gates.js +58 -80
  213. package/dist/phase6/role-gates.js.map +1 -1
  214. package/dist/phase6/types.d.ts +20 -19
  215. package/dist/phase6/types.d.ts.map +1 -1
  216. package/dist/phase6/types.js +82 -177
  217. package/dist/phase6/types.js.map +1 -1
  218. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
  219. package/dist/phase6/weight-presets/canonical.js +10 -10
  220. package/dist/phase6/weight-presets/canonical.js.map +1 -1
  221. package/dist/phase6/weight-presets/deltas.d.ts +2 -2
  222. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
  223. package/dist/phase6/weight-presets/deltas.js +27 -27
  224. package/dist/phase6/weight-presets/deltas.js.map +1 -1
  225. package/dist/phase6/weight-presets/index.d.ts +3 -3
  226. package/dist/phase6/weight-presets/index.js +3 -3
  227. package/dist/phase6/weight-presets/merger.d.ts +2 -2
  228. package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
  229. package/dist/phase6/weight-presets/merger.js +43 -39
  230. package/dist/phase6/weight-presets/merger.js.map +1 -1
  231. package/dist/proof/index.d.ts +3 -3
  232. package/dist/proof/index.d.ts.map +1 -1
  233. package/dist/proof/index.js +38 -44
  234. package/dist/proof/index.js.map +1 -1
  235. package/dist/proof/merkle.d.ts +24 -3
  236. package/dist/proof/merkle.d.ts.map +1 -1
  237. package/dist/proof/merkle.js +116 -32
  238. package/dist/proof/merkle.js.map +1 -1
  239. package/dist/proof/zk-proofs.d.ts +6 -6
  240. package/dist/proof/zk-proofs.d.ts.map +1 -1
  241. package/dist/proof/zk-proofs.js +43 -42
  242. package/dist/proof/zk-proofs.js.map +1 -1
  243. package/dist/provenance/index.d.ts +3 -3
  244. package/dist/provenance/index.d.ts.map +1 -1
  245. package/dist/provenance/index.js +17 -19
  246. package/dist/provenance/index.js.map +1 -1
  247. package/dist/provenance/types.d.ts +4 -4
  248. package/dist/provenance/types.d.ts.map +1 -1
  249. package/dist/sandbox-training/challenges.d.ts +1 -1
  250. package/dist/sandbox-training/challenges.d.ts.map +1 -1
  251. package/dist/sandbox-training/challenges.js +228 -228
  252. package/dist/sandbox-training/challenges.js.map +1 -1
  253. package/dist/sandbox-training/graduation.d.ts +1 -1
  254. package/dist/sandbox-training/graduation.d.ts.map +1 -1
  255. package/dist/sandbox-training/graduation.js +15 -14
  256. package/dist/sandbox-training/graduation.js.map +1 -1
  257. package/dist/sandbox-training/index.d.ts +9 -9
  258. package/dist/sandbox-training/index.d.ts.map +1 -1
  259. package/dist/sandbox-training/index.js +6 -6
  260. package/dist/sandbox-training/index.js.map +1 -1
  261. package/dist/sandbox-training/promotion-service.d.ts +4 -4
  262. package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
  263. package/dist/sandbox-training/promotion-service.js +5 -5
  264. package/dist/sandbox-training/promotion-service.js.map +1 -1
  265. package/dist/sandbox-training/runner.d.ts +1 -1
  266. package/dist/sandbox-training/runner.d.ts.map +1 -1
  267. package/dist/sandbox-training/runner.js +73 -74
  268. package/dist/sandbox-training/runner.js.map +1 -1
  269. package/dist/sandbox-training/scorer.d.ts +4 -4
  270. package/dist/sandbox-training/scorer.js +5 -5
  271. package/dist/sandbox-training/types.d.ts +4 -4
  272. package/dist/sandbox-training/types.d.ts.map +1 -1
  273. package/dist/sandbox-training/types.js +7 -11
  274. package/dist/sandbox-training/types.js.map +1 -1
  275. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -1
  276. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
  277. package/dist/trust-engine/ceiling-enforcement/audit.js +4 -3
  278. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
  279. package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
  280. package/dist/trust-engine/ceiling-enforcement/index.js +2 -2
  281. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +12 -10
  282. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
  283. package/dist/trust-engine/ceiling-enforcement/kernel.js +26 -20
  284. package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -1
  285. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
  286. package/dist/trust-engine/context-policy/factory.d.ts +1 -1
  287. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
  288. package/dist/trust-engine/context-policy/factory.js +1 -1
  289. package/dist/trust-engine/context-policy/factory.js.map +1 -1
  290. package/dist/trust-engine/context-policy/index.d.ts +2 -2
  291. package/dist/trust-engine/context-policy/index.js +2 -2
  292. package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
  293. package/dist/trust-engine/creation-modifiers/index.js +1 -1
  294. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
  295. package/dist/trust-engine/creation-modifiers/types.js +3 -2
  296. package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
  297. package/dist/trust-engine/decay-profiles.d.ts +37 -136
  298. package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
  299. package/dist/trust-engine/decay-profiles.js +68 -178
  300. package/dist/trust-engine/decay-profiles.js.map +1 -1
  301. package/dist/trust-engine/index.d.ts +135 -168
  302. package/dist/trust-engine/index.d.ts.map +1 -1
  303. package/dist/trust-engine/index.js +239 -525
  304. package/dist/trust-engine/index.js.map +1 -1
  305. package/dist/trust-engine/phase6-types.d.ts +18 -11
  306. package/dist/trust-engine/phase6-types.d.ts.map +1 -1
  307. package/dist/trust-engine/phase6-types.js +33 -29
  308. package/dist/trust-engine/phase6-types.js.map +1 -1
  309. package/package.json +1 -1
  310. package/dist/enforce/types.d.ts +0 -234
  311. package/dist/enforce/types.d.ts.map +0 -1
  312. package/dist/enforce/types.js +0 -10
  313. package/dist/enforce/types.js.map +0 -1
  314. package/dist/intent/types.d.ts +0 -69
  315. package/dist/intent/types.d.ts.map +0 -1
  316. package/dist/intent/types.js +0 -10
  317. package/dist/intent/types.js.map +0 -1
  318. package/dist/intent-gateway/index.d.ts +0 -522
  319. package/dist/intent-gateway/index.d.ts.map +0 -1
  320. package/dist/intent-gateway/index.js +0 -1499
  321. package/dist/intent-gateway/index.js.map +0 -1
  322. package/dist/trust-engine/types.d.ts +0 -77
  323. package/dist/trust-engine/types.d.ts.map +0 -1
  324. package/dist/trust-engine/types.js +0 -20
  325. package/dist/trust-engine/types.js.map +0 -1
@@ -13,39 +13,37 @@
13
13
  *
14
14
  * @packageDocumentation
15
15
  */
16
- import { createLogger } from "../common/logger.js";
17
- import { TRUST_LEVEL_NAMES } from "../trust-engine/index.js";
18
- const logger = createLogger({ component: "trust-aware-enforcement" });
16
+ import { createLogger } from '../common/logger.js';
17
+ import { TRUST_LEVEL_NAMES } from '../trust-engine/index.js';
18
+ const logger = createLogger({ component: 'trust-aware-enforcement' });
19
19
  /**
20
20
  * Compute risk level from intent metadata fields.
21
21
  */
22
22
  function computeRiskLevel(context) {
23
23
  const intent = context.intent;
24
24
  // Irreversible + high sensitivity = critical
25
- if (intent.reversibility === "IRREVERSIBLE" &&
26
- intent.dataSensitivity === "RESTRICTED") {
27
- return "critical";
25
+ if (intent.reversibility === 'IRREVERSIBLE' && intent.dataSensitivity === 'RESTRICTED') {
26
+ return 'critical';
28
27
  }
29
28
  // Delete/execute with restricted data = high
30
- if ((intent.actionType === "delete" || intent.actionType === "execute") &&
31
- (intent.dataSensitivity === "RESTRICTED" ||
32
- intent.dataSensitivity === "CONFIDENTIAL")) {
33
- return "high";
29
+ if ((intent.actionType === 'delete' || intent.actionType === 'execute') &&
30
+ (intent.dataSensitivity === 'RESTRICTED' || intent.dataSensitivity === 'CONFIDENTIAL')) {
31
+ return 'high';
34
32
  }
35
33
  // Irreversible actions = high
36
- if (intent.reversibility === "IRREVERSIBLE") {
37
- return "high";
34
+ if (intent.reversibility === 'IRREVERSIBLE') {
35
+ return 'high';
38
36
  }
39
37
  // Write/transfer with confidential data = medium
40
- if ((intent.actionType === "write" || intent.actionType === "transfer") &&
41
- intent.dataSensitivity === "CONFIDENTIAL") {
42
- return "medium";
38
+ if ((intent.actionType === 'write' || intent.actionType === 'transfer') &&
39
+ intent.dataSensitivity === 'CONFIDENTIAL') {
40
+ return 'medium';
43
41
  }
44
42
  // Read-only or public data = low
45
- if (intent.actionType === "read" || intent.dataSensitivity === "PUBLIC") {
46
- return "low";
43
+ if (intent.actionType === 'read' || intent.dataSensitivity === 'PUBLIC') {
44
+ return 'low';
47
45
  }
48
- return "medium";
46
+ return 'medium';
49
47
  }
50
48
  // =============================================================================
51
49
  // CONSTRAINT COMPUTATION
@@ -55,26 +53,26 @@ function computeRiskLevel(context) {
55
53
  */
56
54
  function buildConstraints(riskLevel, trustLevel, policy, defaultConstraints) {
57
55
  const base = {
58
- allowedTools: defaultConstraints?.allowedTools ?? ["*"],
59
- dataScopes: defaultConstraints?.dataScopes ?? ["*"],
56
+ allowedTools: defaultConstraints?.allowedTools ?? ['*'],
57
+ dataScopes: defaultConstraints?.dataScopes ?? ['*'],
60
58
  rateLimits: defaultConstraints?.rateLimits ?? [],
61
59
  requiredApprovals: defaultConstraints?.requiredApprovals ?? [],
62
60
  reversibilityRequired: false,
63
61
  maxRetries: 3,
64
62
  };
65
63
  // Tighten constraints based on risk
66
- if (riskLevel === "critical" || riskLevel === "high") {
64
+ if (riskLevel === 'critical' || riskLevel === 'high') {
67
65
  base.reversibilityRequired = true;
68
66
  base.maxExecutionTimeMs = 300_000; // 5 minutes
69
67
  base.maxRetries = 1;
70
68
  }
71
- if (riskLevel === "critical") {
69
+ if (riskLevel === 'critical') {
72
70
  base.requiredApprovals = [
73
71
  {
74
- type: "human_review",
75
- approver: "admin",
72
+ type: 'human_review',
73
+ approver: 'admin',
76
74
  timeoutMs: policy.refinementDeadlineMs,
77
- reason: "Critical risk action requires human approval",
75
+ reason: 'Critical risk action requires human approval',
78
76
  },
79
77
  ];
80
78
  }
@@ -96,47 +94,47 @@ function buildRefinementOptions(riskLevel, trustLevel) {
96
94
  // Always offer "add constraints"
97
95
  options.push({
98
96
  id: crypto.randomUUID(),
99
- action: "ADD_CONSTRAINTS",
100
- description: "Accept additional operational constraints to proceed",
101
- successProbability: riskLevel === "high" ? 0.6 : 0.9,
102
- effort: "low",
97
+ action: 'ADD_CONSTRAINTS',
98
+ description: 'Accept additional operational constraints to proceed',
99
+ successProbability: riskLevel === 'high' ? 0.6 : 0.9,
100
+ effort: 'low',
103
101
  });
104
102
  // Offer scope reduction for high-risk
105
- if (riskLevel === "high" || riskLevel === "critical") {
103
+ if (riskLevel === 'high' || riskLevel === 'critical') {
106
104
  options.push({
107
105
  id: crypto.randomUUID(),
108
- action: "REDUCE_SCOPE",
109
- description: "Reduce the scope of the action (e.g., fewer resources, read-only)",
106
+ action: 'REDUCE_SCOPE',
107
+ description: 'Reduce the scope of the action (e.g., fewer resources, read-only)',
110
108
  successProbability: 0.8,
111
- effort: "medium",
109
+ effort: 'medium',
112
110
  });
113
111
  }
114
112
  // Offer human approval
115
113
  options.push({
116
114
  id: crypto.randomUUID(),
117
- action: "REQUEST_APPROVAL",
118
- description: "Request explicit human approval for this action",
115
+ action: 'REQUEST_APPROVAL',
116
+ description: 'Request explicit human approval for this action',
119
117
  successProbability: 0.7,
120
- effort: "medium",
118
+ effort: 'medium',
121
119
  });
122
120
  // Offer decomposition for complex actions
123
- if (riskLevel !== "low") {
121
+ if (riskLevel !== 'low') {
124
122
  options.push({
125
123
  id: crypto.randomUUID(),
126
- action: "DECOMPOSE",
127
- description: "Break this action into smaller, individually-approvable steps",
124
+ action: 'DECOMPOSE',
125
+ description: 'Break this action into smaller, individually-approvable steps',
128
126
  successProbability: 0.85,
129
- effort: "high",
127
+ effort: 'high',
130
128
  });
131
129
  }
132
130
  // Offer "wait for trust" if trust is close to threshold
133
131
  if (trustLevel >= 2 && trustLevel <= 4) {
134
132
  options.push({
135
133
  id: crypto.randomUUID(),
136
- action: "WAIT_FOR_TRUST",
137
- description: "Continue building trust through lower-risk actions first",
134
+ action: 'WAIT_FOR_TRUST',
135
+ description: 'Continue building trust through lower-risk actions first',
138
136
  successProbability: 0.5,
139
- effort: "high",
137
+ effort: 'high',
140
138
  });
141
139
  }
142
140
  return options;
@@ -172,12 +170,9 @@ export class TrustAwareEnforcementService {
172
170
  constructor(trustEngine, config, policy) {
173
171
  this.trustEngine = trustEngine;
174
172
  this.policyEngine = config?.policyEngine ?? null;
175
- this.config = {
176
- ...DEFAULT_CONFIG,
177
- ...(config ? { ...config, policyEngine: undefined } : {}),
178
- };
173
+ this.config = { ...DEFAULT_CONFIG, ...(config ? { ...config, policyEngine: undefined } : {}) };
179
174
  this.policy = policy ?? {
180
- defaultAction: "deny",
175
+ defaultAction: 'deny',
181
176
  trustThresholds: {
182
177
  autoApproveLevel: this.config.autoApproveLevel,
183
178
  requireRefinementLevel: this.config.requireRefinementLevel,
@@ -218,34 +213,34 @@ export class TrustAwareEnforcementService {
218
213
  };
219
214
  const violations = this.policyEngine.evaluate(policyInput);
220
215
  if (violations.length > 0) {
221
- logger.info({ intentId: intent.id, violationCount: violations.length }, "Security policy violations detected");
216
+ logger.info({ intentId: intent.id, violationCount: violations.length }, 'Security policy violations detected');
222
217
  // Convert violations to RuleResult entries for tier determination
223
218
  for (const violation of violations) {
224
- if (violation.action === "deny") {
219
+ if (violation.action === 'deny') {
225
220
  evaluation.violatedRules.push({
226
221
  ruleId: violation.policyId,
227
222
  ruleName: violation.policyName,
228
223
  matched: true,
229
- action: "deny",
224
+ action: 'deny',
230
225
  reason: violation.reason,
231
- details: { source: "security-policy-engine" },
226
+ details: { source: 'security-policy-engine' },
232
227
  durationMs: 0,
233
228
  });
234
229
  }
235
- else if (violation.action === "escalate") {
230
+ else if (violation.action === 'escalate') {
236
231
  evaluation.violatedRules.push({
237
232
  ruleId: violation.policyId,
238
233
  ruleName: violation.policyName,
239
234
  matched: true,
240
- action: "escalate",
235
+ action: 'escalate',
241
236
  reason: violation.reason,
242
- details: { source: "security-policy-engine" },
237
+ details: { source: 'security-policy-engine' },
243
238
  durationMs: 0,
244
239
  });
245
240
  }
246
241
  }
247
242
  // If any deny violations, mark evaluation as failed
248
- if (violations.some((v) => v.action === "deny")) {
243
+ if (violations.some((v) => v.action === 'deny')) {
249
244
  evaluation.passed = false;
250
245
  }
251
246
  }
@@ -261,7 +256,7 @@ export class TrustAwareEnforcementService {
261
256
  agentId: intent.entityId,
262
257
  correlationId,
263
258
  tier,
264
- permitted: tier === "GREEN",
259
+ permitted: tier === 'GREEN',
265
260
  trustBand: `T${trustLevel}_${this.getTrustBandName(trustLevel)}`,
266
261
  trustScore,
267
262
  reasoning: this.buildReasoning(tier, evaluation, trustLevel, riskLevel),
@@ -271,31 +266,27 @@ export class TrustAwareEnforcementService {
271
266
  latencyMs,
272
267
  };
273
268
  // Tier-specific enrichment
274
- if (tier === "GREEN") {
269
+ if (tier === 'GREEN') {
275
270
  decision.constraints = buildConstraints(riskLevel, trustLevel, this.config, this.config.defaultConstraints);
276
271
  }
277
- if (tier === "YELLOW") {
272
+ if (tier === 'YELLOW') {
278
273
  decision.refinementDeadline = new Date(Date.now() + this.config.refinementDeadlineMs).toISOString();
279
274
  decision.maxRefinementAttempts = this.config.maxRefinementAttempts;
280
275
  decision.refinementOptions = buildRefinementOptions(riskLevel, trustLevel);
281
276
  }
282
- if (tier === "RED") {
277
+ if (tier === 'RED') {
283
278
  const violatedPolicies = evaluation.violatedRules
284
- .filter((r) => r.action === "deny" || r.action === "terminate")
279
+ .filter((r) => r.action === 'deny' || r.action === 'terminate')
285
280
  .map((r) => ({
286
281
  policyId: r.ruleId,
287
282
  policyName: r.ruleName,
288
- severity: r.action === "terminate"
289
- ? "critical"
290
- : "error",
283
+ severity: r.action === 'terminate' ? 'critical' : 'error',
291
284
  }));
292
- decision.denialReason =
293
- violatedPolicies.length > 0
294
- ? `Policy violations: ${violatedPolicies.map((p) => p.policyName).join(", ")}`
295
- : `Trust level T${trustLevel} below minimum threshold`;
296
- decision.hardDenial = evaluation.violatedRules.some((r) => r.action === "terminate");
297
- decision.violatedPolicies =
298
- violatedPolicies.length > 0 ? violatedPolicies : undefined;
285
+ decision.denialReason = violatedPolicies.length > 0
286
+ ? `Policy violations: ${violatedPolicies.map((p) => p.policyName).join(', ')}`
287
+ : `Trust level T${trustLevel} below minimum threshold`;
288
+ decision.hardDenial = evaluation.violatedRules.some((r) => r.action === 'terminate');
289
+ decision.violatedPolicies = violatedPolicies.length > 0 ? violatedPolicies : undefined;
299
290
  }
300
291
  // Store
301
292
  this.decisions.set(decision.id, decision);
@@ -310,7 +301,7 @@ export class TrustAwareEnforcementService {
310
301
  currentDecisionId: decision.id,
311
302
  stateHistory: [
312
303
  {
313
- from: "SUBMITTED",
304
+ from: 'SUBMITTED',
314
305
  to: this.tierToState(tier),
315
306
  reason: `Decision: ${tier} (trust=T${trustLevel}, risk=${riskLevel})`,
316
307
  timestamp: now,
@@ -329,7 +320,7 @@ export class TrustAwareEnforcementService {
329
320
  trustScore,
330
321
  riskLevel,
331
322
  latencyMs,
332
- }, "Enforcement decision made");
323
+ }, 'Enforcement decision made');
333
324
  return {
334
325
  decision,
335
326
  workflow,
@@ -341,23 +332,20 @@ export class TrustAwareEnforcementService {
341
332
  const original = this.decisions.get(request.decisionId);
342
333
  if (!original || original.tenantId !== tenantId)
343
334
  return null;
344
- if (original.tier !== "YELLOW")
335
+ if (original.tier !== 'YELLOW')
345
336
  return null;
346
337
  // Check refinement deadline
347
338
  if (original.refinementDeadline) {
348
339
  const deadline = new Date(original.refinementDeadline).getTime();
349
340
  if (Date.now() > deadline) {
350
- logger.warn({ decisionId: request.decisionId }, "Refinement deadline exceeded");
341
+ logger.warn({ decisionId: request.decisionId }, 'Refinement deadline exceeded');
351
342
  return null;
352
343
  }
353
344
  }
354
345
  // Check attempt limit
355
346
  const maxAttempts = original.maxRefinementAttempts ?? this.config.maxRefinementAttempts;
356
347
  if (original.refinementAttempt >= maxAttempts) {
357
- logger.warn({
358
- decisionId: request.decisionId,
359
- attempts: original.refinementAttempt,
360
- }, "Max refinement attempts reached");
348
+ logger.warn({ decisionId: request.decisionId, attempts: original.refinementAttempt }, 'Max refinement attempts reached');
361
349
  return null;
362
350
  }
363
351
  // Validate selected refinements exist
@@ -366,14 +354,14 @@ export class TrustAwareEnforcementService {
366
354
  .map((id) => validRefinements.find((opt) => opt.id === id))
367
355
  .filter((opt) => opt !== undefined);
368
356
  if (selectedOptions.length === 0) {
369
- logger.warn({ decisionId: request.decisionId }, "No valid refinement options selected");
357
+ logger.warn({ decisionId: request.decisionId }, 'No valid refinement options selected');
370
358
  return null;
371
359
  }
372
360
  const now = new Date().toISOString();
373
361
  // Compute resulting constraints from refinements
374
362
  const mergedConstraints = {
375
- allowedTools: ["*"],
376
- dataScopes: ["*"],
363
+ allowedTools: ['*'],
364
+ dataScopes: ['*'],
377
365
  rateLimits: [],
378
366
  requiredApprovals: [],
379
367
  reversibilityRequired: true, // Refinement always requires reversibility
@@ -385,12 +373,12 @@ export class TrustAwareEnforcementService {
385
373
  if (opt.resultingConstraints) {
386
374
  Object.assign(mergedConstraints, opt.resultingConstraints);
387
375
  }
388
- if (opt.action === "REQUEST_APPROVAL") {
376
+ if (opt.action === 'REQUEST_APPROVAL') {
389
377
  mergedConstraints.requiredApprovals.push({
390
- type: "human_review",
391
- approver: "admin",
378
+ type: 'human_review',
379
+ approver: 'admin',
392
380
  timeoutMs: this.config.refinementDeadlineMs,
393
- reason: "Refinement requested human approval",
381
+ reason: 'Refinement requested human approval',
394
382
  });
395
383
  }
396
384
  }
@@ -398,12 +386,12 @@ export class TrustAwareEnforcementService {
398
386
  const refined = {
399
387
  ...original,
400
388
  id: crypto.randomUUID(),
401
- tier: "GREEN",
389
+ tier: 'GREEN',
402
390
  permitted: true,
403
391
  refinementAttempt: original.refinementAttempt + 1,
404
392
  reasoning: [
405
- `Refined from YELLOW to GREEN via: ${selectedOptions.map((o) => o.action).join(", ")}`,
406
- "Additional constraints applied",
393
+ `Refined from YELLOW to GREEN via: ${selectedOptions.map((o) => o.action).join(', ')}`,
394
+ 'Additional constraints applied',
407
395
  ],
408
396
  constraints: mergedConstraints,
409
397
  decidedAt: now,
@@ -415,13 +403,13 @@ export class TrustAwareEnforcementService {
415
403
  const workflow = this.workflows.get(original.intentId);
416
404
  if (workflow) {
417
405
  const previousState = workflow.state;
418
- workflow.state = "APPROVED";
406
+ workflow.state = 'APPROVED';
419
407
  workflow.currentDecisionId = refined.id;
420
408
  workflow.updatedAt = now;
421
409
  workflow.stateHistory.push({
422
410
  from: previousState,
423
- to: "APPROVED",
424
- reason: `Refined via: ${selectedOptions.map((o) => o.action).join(", ")}`,
411
+ to: 'APPROVED',
412
+ reason: `Refined via: ${selectedOptions.map((o) => o.action).join(', ')}`,
425
413
  timestamp: now,
426
414
  });
427
415
  }
@@ -430,11 +418,11 @@ export class TrustAwareEnforcementService {
430
418
  refinedDecisionId: refined.id,
431
419
  attempt: refined.refinementAttempt,
432
420
  actions: selectedOptions.map((o) => o.action),
433
- }, "Decision refined to GREEN");
421
+ }, 'Decision refined to GREEN');
434
422
  return {
435
423
  decision: refined,
436
424
  workflow: workflow,
437
- tier: "GREEN",
425
+ tier: 'GREEN',
438
426
  };
439
427
  }
440
428
  async getDecision(id, tenantId) {
@@ -458,8 +446,7 @@ export class TrustAwareEnforcementService {
458
446
  // Sync threshold config from policy
459
447
  if (policy.trustThresholds) {
460
448
  this.config.autoApproveLevel = policy.trustThresholds.autoApproveLevel;
461
- this.config.requireRefinementLevel =
462
- policy.trustThresholds.requireRefinementLevel;
449
+ this.config.requireRefinementLevel = policy.trustThresholds.requireRefinementLevel;
463
450
  this.config.autoDenyLevel = policy.trustThresholds.autoDenyLevel;
464
451
  }
465
452
  }
@@ -477,16 +464,14 @@ export class TrustAwareEnforcementService {
477
464
  const { policyEngine: _pe, ...restUpdates } = updates;
478
465
  this.config = { ...this.config, ...restUpdates };
479
466
  // Sync policy thresholds if updated
480
- if (updates.autoApproveLevel !== undefined ||
481
- updates.requireRefinementLevel !== undefined ||
482
- updates.autoDenyLevel !== undefined) {
467
+ if (updates.autoApproveLevel !== undefined || updates.requireRefinementLevel !== undefined || updates.autoDenyLevel !== undefined) {
483
468
  this.policy.trustThresholds = {
484
469
  autoApproveLevel: this.config.autoApproveLevel,
485
470
  requireRefinementLevel: this.config.requireRefinementLevel,
486
471
  autoDenyLevel: this.config.autoDenyLevel,
487
472
  };
488
473
  }
489
- logger.info({ previous: previousConfig, updated: this.config }, "Enforcement policy refreshed at runtime");
474
+ logger.info({ previous: previousConfig, updated: this.config }, 'Enforcement policy refreshed at runtime');
490
475
  }
491
476
  /**
492
477
  * Get current policy configuration (for inspection/debugging).
@@ -503,7 +488,7 @@ export class TrustAwareEnforcementService {
503
488
  */
504
489
  setPolicyEngine(engine) {
505
490
  this.policyEngine = engine;
506
- logger.info({ hasEngine: engine !== null }, "Security policy engine updated");
491
+ logger.info({ hasEngine: engine !== null }, 'Security policy engine updated');
507
492
  }
508
493
  /**
509
494
  * Get count of active decisions.
@@ -529,50 +514,50 @@ export class TrustAwareEnforcementService {
529
514
  // ===========================================================================
530
515
  determineTier(evaluation, trustLevel, riskLevel) {
531
516
  // Hard denials from rule violations
532
- if (evaluation.violatedRules.some((r) => r.action === "deny" || r.action === "terminate")) {
533
- return "RED";
517
+ if (evaluation.violatedRules.some((r) => r.action === 'deny' || r.action === 'terminate')) {
518
+ return 'RED';
534
519
  }
535
520
  // Trust below auto-deny threshold
536
521
  if (trustLevel < this.config.autoDenyLevel) {
537
- return "RED";
522
+ return 'RED';
538
523
  }
539
524
  // Critical risk always requires at least YELLOW unless T6+
540
- if (riskLevel === "critical" && trustLevel < 6) {
541
- return trustLevel < this.config.requireRefinementLevel ? "RED" : "YELLOW";
525
+ if (riskLevel === 'critical' && trustLevel < 6) {
526
+ return trustLevel < this.config.requireRefinementLevel ? 'RED' : 'YELLOW';
542
527
  }
543
528
  // High risk requires higher trust for auto-approve
544
- if (riskLevel === "high") {
529
+ if (riskLevel === 'high') {
545
530
  const elevatedApproveLevel = Math.min(7, this.config.autoApproveLevel + 1);
546
531
  if (trustLevel >= elevatedApproveLevel && evaluation.passed)
547
- return "GREEN";
532
+ return 'GREEN';
548
533
  if (trustLevel < this.config.requireRefinementLevel)
549
- return "RED";
550
- return "YELLOW";
534
+ return 'RED';
535
+ return 'YELLOW';
551
536
  }
552
537
  // Standard tier determination
553
538
  if (trustLevel >= this.config.autoApproveLevel && evaluation.passed)
554
- return "GREEN";
539
+ return 'GREEN';
555
540
  if (trustLevel < this.config.requireRefinementLevel)
556
- return "YELLOW";
557
- return "YELLOW";
541
+ return 'YELLOW';
542
+ return 'YELLOW';
558
543
  }
559
544
  buildReasoning(tier, evaluation, trustLevel, riskLevel) {
560
545
  const reasons = [];
561
546
  const bandName = this.getTrustBandName(trustLevel);
562
- if (tier === "GREEN") {
547
+ if (tier === 'GREEN') {
563
548
  reasons.push(`Trust T${trustLevel} (${bandName}) meets auto-approve threshold`);
564
549
  reasons.push(`Risk level: ${riskLevel}`);
565
550
  if (evaluation.passed)
566
- reasons.push("All policy checks passed");
551
+ reasons.push('All policy checks passed');
567
552
  }
568
- else if (tier === "YELLOW") {
553
+ else if (tier === 'YELLOW') {
569
554
  reasons.push(`Trust T${trustLevel} (${bandName}) requires refinement`);
570
555
  reasons.push(`Risk level: ${riskLevel}`);
571
- reasons.push("Refinement options available — select one or more to proceed");
556
+ reasons.push('Refinement options available — select one or more to proceed');
572
557
  }
573
558
  else {
574
559
  if (evaluation.violatedRules.length > 0) {
575
- reasons.push("Policy violations detected:");
560
+ reasons.push('Policy violations detected:');
576
561
  for (const rule of evaluation.violatedRules.slice(0, 5)) {
577
562
  reasons.push(` - ${rule.reason}`);
578
563
  }
@@ -586,16 +571,13 @@ export class TrustAwareEnforcementService {
586
571
  }
587
572
  tierToState(tier) {
588
573
  switch (tier) {
589
- case "GREEN":
590
- return "APPROVED";
591
- case "YELLOW":
592
- return "PENDING_REFINEMENT";
593
- case "RED":
594
- return "DENIED";
574
+ case 'GREEN': return 'APPROVED';
575
+ case 'YELLOW': return 'PENDING_REFINEMENT';
576
+ case 'RED': return 'DENIED';
595
577
  }
596
578
  }
597
579
  getTrustBandName(level) {
598
- return TRUST_LEVEL_NAMES[level] ?? "Unknown";
580
+ return TRUST_LEVEL_NAMES[level] ?? 'Unknown';
599
581
  }
600
582
  }
601
583
  //# sourceMappingURL=trust-aware-enforcement-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trust-aware-enforcement-service.js","sourceRoot":"","sources":["../../src/enforce/trust-aware-enforcement-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trust-aware-enforcement-service.js","sourceRoot":"","sources":["../../src/enforce/trust-aware-enforcement-service.ts"],"names":[],"mappings":"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"}