@vorionsys/atsf-core 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/README.md +77 -11
  3. package/dist/api/index.d.ts +1 -1
  4. package/dist/api/index.js +1 -1
  5. package/dist/api/server.d.ts +5 -2
  6. package/dist/api/server.d.ts.map +1 -1
  7. package/dist/api/server.js +186 -149
  8. package/dist/api/server.js.map +1 -1
  9. package/dist/arbitration/index.d.ts +4 -4
  10. package/dist/arbitration/index.d.ts.map +1 -1
  11. package/dist/arbitration/index.js +46 -41
  12. package/dist/arbitration/index.js.map +1 -1
  13. package/dist/arbitration/types.d.ts +10 -10
  14. package/dist/arbitration/types.d.ts.map +1 -1
  15. package/dist/basis/evaluator.d.ts +1 -1
  16. package/dist/basis/evaluator.d.ts.map +1 -1
  17. package/dist/basis/evaluator.js +56 -54
  18. package/dist/basis/evaluator.js.map +1 -1
  19. package/dist/basis/index.d.ts +3 -3
  20. package/dist/basis/index.js +3 -3
  21. package/dist/basis/parser.d.ts +16 -16
  22. package/dist/basis/parser.d.ts.map +1 -1
  23. package/dist/basis/parser.js +32 -25
  24. package/dist/basis/parser.js.map +1 -1
  25. package/dist/basis/types.d.ts +2 -2
  26. package/dist/chain/index.d.ts.map +1 -1
  27. package/dist/chain/index.js +16 -16
  28. package/dist/chain/index.js.map +1 -1
  29. package/dist/cognigate/index.d.ts +1 -1
  30. package/dist/cognigate/index.d.ts.map +1 -1
  31. package/dist/cognigate/index.js +44 -33
  32. package/dist/cognigate/index.js.map +1 -1
  33. package/dist/common/adapters.d.ts +18 -11
  34. package/dist/common/adapters.d.ts.map +1 -1
  35. package/dist/common/adapters.js +100 -79
  36. package/dist/common/adapters.js.map +1 -1
  37. package/dist/common/config.d.ts +67 -67
  38. package/dist/common/config.js +49 -49
  39. package/dist/common/config.js.map +1 -1
  40. package/dist/common/index.d.ts +4 -4
  41. package/dist/common/index.js +4 -4
  42. package/dist/common/logger.d.ts +1 -1
  43. package/dist/common/logger.js +8 -8
  44. package/dist/common/types.d.ts +8 -8
  45. package/dist/common/types.js +5 -5
  46. package/dist/containment/index.d.ts +3 -3
  47. package/dist/containment/index.d.ts.map +1 -1
  48. package/dist/containment/index.js +119 -105
  49. package/dist/containment/index.js.map +1 -1
  50. package/dist/containment/types.d.ts +11 -11
  51. package/dist/containment/types.d.ts.map +1 -1
  52. package/dist/contracts/index.d.ts +9 -9
  53. package/dist/contracts/index.d.ts.map +1 -1
  54. package/dist/contracts/index.js +59 -54
  55. package/dist/contracts/index.js.map +1 -1
  56. package/dist/contracts/types.d.ts +12 -12
  57. package/dist/contracts/types.d.ts.map +1 -1
  58. package/dist/crewai/callback.d.ts +91 -0
  59. package/dist/crewai/callback.d.ts.map +1 -0
  60. package/dist/crewai/callback.js +271 -0
  61. package/dist/crewai/callback.js.map +1 -0
  62. package/dist/crewai/executor.d.ts +135 -0
  63. package/dist/crewai/executor.d.ts.map +1 -0
  64. package/dist/crewai/executor.js +381 -0
  65. package/dist/crewai/executor.js.map +1 -0
  66. package/dist/crewai/index.d.ts +12 -0
  67. package/dist/crewai/index.d.ts.map +1 -0
  68. package/dist/crewai/index.js +12 -0
  69. package/dist/crewai/index.js.map +1 -0
  70. package/dist/crewai/tools.d.ts +21 -0
  71. package/dist/crewai/tools.d.ts.map +1 -0
  72. package/dist/crewai/tools.js +164 -0
  73. package/dist/crewai/tools.js.map +1 -0
  74. package/dist/crewai/types.d.ts +139 -0
  75. package/dist/crewai/types.d.ts.map +1 -0
  76. package/dist/crewai/types.js +9 -0
  77. package/dist/crewai/types.js.map +1 -0
  78. package/dist/enforce/index.d.ts +48 -222
  79. package/dist/enforce/index.d.ts.map +1 -1
  80. package/dist/enforce/index.js +144 -47
  81. package/dist/enforce/index.js.map +1 -1
  82. package/dist/enforce/trust-aware-enforcement-service.d.ts +121 -0
  83. package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -0
  84. package/dist/enforce/trust-aware-enforcement-service.js +601 -0
  85. package/dist/enforce/trust-aware-enforcement-service.js.map +1 -0
  86. package/dist/enforce/types.d.ts +234 -0
  87. package/dist/enforce/types.d.ts.map +1 -0
  88. package/dist/enforce/types.js +10 -0
  89. package/dist/enforce/types.js.map +1 -0
  90. package/dist/governance/fluid-workflow.d.ts +8 -8
  91. package/dist/governance/fluid-workflow.d.ts.map +1 -1
  92. package/dist/governance/fluid-workflow.js +114 -86
  93. package/dist/governance/fluid-workflow.js.map +1 -1
  94. package/dist/governance/index.d.ts +7 -7
  95. package/dist/governance/index.d.ts.map +1 -1
  96. package/dist/governance/index.js +81 -74
  97. package/dist/governance/index.js.map +1 -1
  98. package/dist/governance/proof-bridge.d.ts +6 -6
  99. package/dist/governance/proof-bridge.d.ts.map +1 -1
  100. package/dist/governance/proof-bridge.js +5 -5
  101. package/dist/governance/proof-bridge.js.map +1 -1
  102. package/dist/governance/types.d.ts +16 -9
  103. package/dist/governance/types.d.ts.map +1 -1
  104. package/dist/governance/types.js.map +1 -1
  105. package/dist/index.d.ts +29 -25
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +33 -23
  108. package/dist/index.js.map +1 -1
  109. package/dist/intent/index.d.ts +21 -56
  110. package/dist/intent/index.d.ts.map +1 -1
  111. package/dist/intent/index.js +58 -24
  112. package/dist/intent/index.js.map +1 -1
  113. package/dist/intent/persistent-intent-service.d.ts +68 -0
  114. package/dist/intent/persistent-intent-service.d.ts.map +1 -0
  115. package/dist/intent/persistent-intent-service.js +277 -0
  116. package/dist/intent/persistent-intent-service.js.map +1 -0
  117. package/dist/intent/types.d.ts +69 -0
  118. package/dist/intent/types.d.ts.map +1 -0
  119. package/dist/intent/types.js +10 -0
  120. package/dist/intent/types.js.map +1 -0
  121. package/dist/intent-gateway/index.d.ts +522 -0
  122. package/dist/intent-gateway/index.d.ts.map +1 -0
  123. package/dist/intent-gateway/index.js +1499 -0
  124. package/dist/intent-gateway/index.js.map +1 -0
  125. package/dist/langchain/callback.d.ts +2 -2
  126. package/dist/langchain/callback.d.ts.map +1 -1
  127. package/dist/langchain/callback.js +30 -30
  128. package/dist/langchain/callback.js.map +1 -1
  129. package/dist/langchain/executor.d.ts +4 -4
  130. package/dist/langchain/executor.d.ts.map +1 -1
  131. package/dist/langchain/executor.js +82 -80
  132. package/dist/langchain/executor.js.map +1 -1
  133. package/dist/langchain/index.d.ts +5 -5
  134. package/dist/langchain/index.js +5 -5
  135. package/dist/langchain/tools.d.ts +1 -1
  136. package/dist/langchain/tools.d.ts.map +1 -1
  137. package/dist/langchain/tools.js +33 -33
  138. package/dist/langchain/tools.js.map +1 -1
  139. package/dist/langchain/types.d.ts +3 -3
  140. package/dist/langchain/types.d.ts.map +1 -1
  141. package/dist/layers/implementations/L0-request-format.d.ts +37 -0
  142. package/dist/layers/implementations/L0-request-format.d.ts.map +1 -0
  143. package/dist/layers/implementations/L0-request-format.js +218 -0
  144. package/dist/layers/implementations/L0-request-format.js.map +1 -0
  145. package/dist/layers/implementations/L1-input-size.d.ts +36 -0
  146. package/dist/layers/implementations/L1-input-size.d.ts.map +1 -0
  147. package/dist/layers/implementations/L1-input-size.js +160 -0
  148. package/dist/layers/implementations/L1-input-size.js.map +1 -0
  149. package/dist/layers/implementations/L2-charset-sanitizer.d.ts +28 -0
  150. package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -0
  151. package/dist/layers/implementations/L2-charset-sanitizer.js +230 -0
  152. package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -0
  153. package/dist/layers/implementations/L3-schema-conformance.d.ts +47 -0
  154. package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -0
  155. package/dist/layers/implementations/L3-schema-conformance.js +267 -0
  156. package/dist/layers/implementations/L3-schema-conformance.js.map +1 -0
  157. package/dist/layers/implementations/L4-injection-detector.d.ts +47 -0
  158. package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -0
  159. package/dist/layers/implementations/L4-injection-detector.js +260 -0
  160. package/dist/layers/implementations/L4-injection-detector.js.map +1 -0
  161. package/dist/layers/implementations/L5-rate-limiter.d.ts +51 -0
  162. package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -0
  163. package/dist/layers/implementations/L5-rate-limiter.js +183 -0
  164. package/dist/layers/implementations/L5-rate-limiter.js.map +1 -0
  165. package/dist/layers/implementations/index.d.ts +16 -0
  166. package/dist/layers/implementations/index.d.ts.map +1 -0
  167. package/dist/layers/implementations/index.js +16 -0
  168. package/dist/layers/implementations/index.js.map +1 -0
  169. package/dist/layers/index.d.ts +3 -3
  170. package/dist/layers/index.d.ts.map +1 -1
  171. package/dist/layers/index.js +99 -71
  172. package/dist/layers/index.js.map +1 -1
  173. package/dist/layers/types.d.ts +16 -16
  174. package/dist/layers/types.d.ts.map +1 -1
  175. package/dist/persistence/file.d.ts +3 -3
  176. package/dist/persistence/file.d.ts.map +1 -1
  177. package/dist/persistence/file.js +32 -28
  178. package/dist/persistence/file.js.map +1 -1
  179. package/dist/persistence/index.d.ts +7 -7
  180. package/dist/persistence/index.d.ts.map +1 -1
  181. package/dist/persistence/index.js +18 -18
  182. package/dist/persistence/index.js.map +1 -1
  183. package/dist/persistence/memory.d.ts +3 -3
  184. package/dist/persistence/memory.d.ts.map +1 -1
  185. package/dist/persistence/memory.js +10 -8
  186. package/dist/persistence/memory.js.map +1 -1
  187. package/dist/persistence/sqlite.d.ts +3 -3
  188. package/dist/persistence/sqlite.d.ts.map +1 -1
  189. package/dist/persistence/sqlite.js +36 -36
  190. package/dist/persistence/sqlite.js.map +1 -1
  191. package/dist/persistence/supabase.d.ts +3 -3
  192. package/dist/persistence/supabase.d.ts.map +1 -1
  193. package/dist/persistence/supabase.js +41 -43
  194. package/dist/persistence/supabase.js.map +1 -1
  195. package/dist/persistence/types.d.ts +5 -5
  196. package/dist/phase6/ceiling.d.ts +5 -5
  197. package/dist/phase6/ceiling.d.ts.map +1 -1
  198. package/dist/phase6/ceiling.js +67 -34
  199. package/dist/phase6/ceiling.js.map +1 -1
  200. package/dist/phase6/context.d.ts +3 -3
  201. package/dist/phase6/context.d.ts.map +1 -1
  202. package/dist/phase6/context.js +91 -45
  203. package/dist/phase6/context.js.map +1 -1
  204. package/dist/phase6/index.d.ts +13 -13
  205. package/dist/phase6/index.d.ts.map +1 -1
  206. package/dist/phase6/index.js +16 -16
  207. package/dist/phase6/index.js.map +1 -1
  208. package/dist/phase6/presets.d.ts +2 -2
  209. package/dist/phase6/presets.d.ts.map +1 -1
  210. package/dist/phase6/presets.js +39 -33
  211. package/dist/phase6/presets.js.map +1 -1
  212. package/dist/phase6/provenance.d.ts +4 -4
  213. package/dist/phase6/provenance.d.ts.map +1 -1
  214. package/dist/phase6/provenance.js +42 -35
  215. package/dist/phase6/provenance.js.map +1 -1
  216. package/dist/phase6/role-gates/index.d.ts +2 -2
  217. package/dist/phase6/role-gates/index.js +2 -2
  218. package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
  219. package/dist/phase6/role-gates/kernel.js +16 -16
  220. package/dist/phase6/role-gates/kernel.js.map +1 -1
  221. package/dist/phase6/role-gates/policy.d.ts +2 -2
  222. package/dist/phase6/role-gates/policy.js +6 -6
  223. package/dist/phase6/role-gates.d.ts +4 -4
  224. package/dist/phase6/role-gates.d.ts.map +1 -1
  225. package/dist/phase6/role-gates.js +80 -58
  226. package/dist/phase6/role-gates.js.map +1 -1
  227. package/dist/phase6/types.d.ts +35 -35
  228. package/dist/phase6/types.d.ts.map +1 -1
  229. package/dist/phase6/types.js +166 -66
  230. package/dist/phase6/types.js.map +1 -1
  231. package/dist/phase6/weight-presets/canonical.d.ts +2 -2
  232. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
  233. package/dist/phase6/weight-presets/canonical.js +12 -12
  234. package/dist/phase6/weight-presets/canonical.js.map +1 -1
  235. package/dist/phase6/weight-presets/deltas.d.ts +2 -2
  236. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
  237. package/dist/phase6/weight-presets/deltas.js +27 -27
  238. package/dist/phase6/weight-presets/deltas.js.map +1 -1
  239. package/dist/phase6/weight-presets/index.d.ts +4 -4
  240. package/dist/phase6/weight-presets/index.js +4 -4
  241. package/dist/phase6/weight-presets/merger.d.ts +3 -3
  242. package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
  243. package/dist/phase6/weight-presets/merger.js +40 -44
  244. package/dist/phase6/weight-presets/merger.js.map +1 -1
  245. package/dist/proof/index.d.ts +3 -3
  246. package/dist/proof/index.d.ts.map +1 -1
  247. package/dist/proof/index.js +44 -38
  248. package/dist/proof/index.js.map +1 -1
  249. package/dist/proof/merkle.d.ts +3 -3
  250. package/dist/proof/merkle.d.ts.map +1 -1
  251. package/dist/proof/merkle.js +26 -25
  252. package/dist/proof/merkle.js.map +1 -1
  253. package/dist/proof/zk-proofs.d.ts +6 -6
  254. package/dist/proof/zk-proofs.d.ts.map +1 -1
  255. package/dist/proof/zk-proofs.js +42 -43
  256. package/dist/proof/zk-proofs.js.map +1 -1
  257. package/dist/provenance/index.d.ts +3 -3
  258. package/dist/provenance/index.d.ts.map +1 -1
  259. package/dist/provenance/index.js +19 -17
  260. package/dist/provenance/index.js.map +1 -1
  261. package/dist/provenance/types.d.ts +4 -4
  262. package/dist/provenance/types.d.ts.map +1 -1
  263. package/dist/sandbox-training/challenges.d.ts +1 -1
  264. package/dist/sandbox-training/challenges.d.ts.map +1 -1
  265. package/dist/sandbox-training/challenges.js +228 -228
  266. package/dist/sandbox-training/challenges.js.map +1 -1
  267. package/dist/sandbox-training/graduation.d.ts +1 -1
  268. package/dist/sandbox-training/graduation.d.ts.map +1 -1
  269. package/dist/sandbox-training/graduation.js +14 -15
  270. package/dist/sandbox-training/graduation.js.map +1 -1
  271. package/dist/sandbox-training/index.d.ts +9 -9
  272. package/dist/sandbox-training/index.d.ts.map +1 -1
  273. package/dist/sandbox-training/index.js +6 -6
  274. package/dist/sandbox-training/index.js.map +1 -1
  275. package/dist/sandbox-training/promotion-service.d.ts +4 -4
  276. package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
  277. package/dist/sandbox-training/promotion-service.js +5 -5
  278. package/dist/sandbox-training/promotion-service.js.map +1 -1
  279. package/dist/sandbox-training/runner.d.ts +1 -1
  280. package/dist/sandbox-training/runner.d.ts.map +1 -1
  281. package/dist/sandbox-training/runner.js +74 -73
  282. package/dist/sandbox-training/runner.js.map +1 -1
  283. package/dist/sandbox-training/scorer.d.ts +4 -4
  284. package/dist/sandbox-training/scorer.js +5 -5
  285. package/dist/sandbox-training/types.d.ts +4 -4
  286. package/dist/sandbox-training/types.d.ts.map +1 -1
  287. package/dist/sandbox-training/types.js +11 -7
  288. package/dist/sandbox-training/types.js.map +1 -1
  289. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -1
  290. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
  291. package/dist/trust-engine/ceiling-enforcement/audit.js +3 -4
  292. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
  293. package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
  294. package/dist/trust-engine/ceiling-enforcement/index.js +2 -2
  295. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +1 -1
  296. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
  297. package/dist/trust-engine/ceiling-enforcement/kernel.js +1 -1
  298. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
  299. package/dist/trust-engine/context-policy/factory.d.ts +1 -1
  300. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
  301. package/dist/trust-engine/context-policy/factory.js +1 -1
  302. package/dist/trust-engine/context-policy/factory.js.map +1 -1
  303. package/dist/trust-engine/context-policy/index.d.ts +2 -2
  304. package/dist/trust-engine/context-policy/index.js +2 -2
  305. package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
  306. package/dist/trust-engine/creation-modifiers/index.js +1 -1
  307. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
  308. package/dist/trust-engine/creation-modifiers/types.js +2 -3
  309. package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
  310. package/dist/trust-engine/decay-profiles.d.ts +1 -1
  311. package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
  312. package/dist/trust-engine/decay-profiles.js +4 -4
  313. package/dist/trust-engine/decay-profiles.js.map +1 -1
  314. package/dist/trust-engine/index.d.ts +111 -45
  315. package/dist/trust-engine/index.d.ts.map +1 -1
  316. package/dist/trust-engine/index.js +418 -61
  317. package/dist/trust-engine/index.js.map +1 -1
  318. package/dist/trust-engine/phase6-types.d.ts +10 -10
  319. package/dist/trust-engine/phase6-types.d.ts.map +1 -1
  320. package/dist/trust-engine/phase6-types.js +25 -23
  321. package/dist/trust-engine/phase6-types.js.map +1 -1
  322. package/dist/trust-engine/types.d.ts +77 -0
  323. package/dist/trust-engine/types.d.ts.map +1 -0
  324. package/dist/trust-engine/types.js +20 -0
  325. package/dist/trust-engine/types.js.map +1 -0
  326. package/package.json +5 -4
@@ -13,13 +13,14 @@
13
13
  *
14
14
  * @packageDocumentation
15
15
  */
16
- import { createLogger } from '../common/logger.js';
17
- const logger = createLogger({ component: 'enforce' });
16
+ import { createLogger } from "../common/logger.js";
17
+ export * from "./types.js";
18
+ const logger = createLogger({ component: "enforce" });
18
19
  // =============================================================================
19
20
  // MOCK IMPLEMENTATION
20
21
  // =============================================================================
21
22
  const DEFAULT_POLICY = {
22
- defaultAction: 'deny',
23
+ defaultAction: "deny",
23
24
  trustThresholds: {
24
25
  autoApproveLevel: 4,
25
26
  requireRefinementLevel: 2,
@@ -57,7 +58,7 @@ export class MockEnforcementService {
57
58
  agentId: intent.entityId,
58
59
  correlationId,
59
60
  tier,
60
- permitted: tier === 'GREEN',
61
+ permitted: tier === "GREEN",
61
62
  trustBand: `T${trustLevel}_${this.getTrustBandName(trustLevel)}`,
62
63
  trustScore,
63
64
  reasoning: this.buildReasoning(tier, evaluation, trustLevel),
@@ -67,10 +68,10 @@ export class MockEnforcementService {
67
68
  latencyMs: 1,
68
69
  };
69
70
  // Add constraints for GREEN
70
- if (tier === 'GREEN') {
71
+ if (tier === "GREEN") {
71
72
  decision.constraints = {
72
- allowedTools: ['*'],
73
- dataScopes: ['*'],
73
+ allowedTools: ["*"],
74
+ dataScopes: ["*"],
74
75
  rateLimits: [],
75
76
  requiredApprovals: [],
76
77
  reversibilityRequired: false,
@@ -78,29 +79,29 @@ export class MockEnforcementService {
78
79
  };
79
80
  }
80
81
  // Add refinement options for YELLOW
81
- if (tier === 'YELLOW') {
82
+ if (tier === "YELLOW") {
82
83
  decision.refinementDeadline = new Date(Date.now() + (this.policy.refinementDeadlineMs ?? 900000)).toISOString();
83
84
  decision.maxRefinementAttempts = this.policy.maxRefinementAttempts ?? 3;
84
85
  decision.refinementOptions = [
85
86
  {
86
87
  id: crypto.randomUUID(),
87
- action: 'ADD_CONSTRAINTS',
88
- description: 'Accept additional constraints',
88
+ action: "ADD_CONSTRAINTS",
89
+ description: "Accept additional constraints",
89
90
  successProbability: 0.9,
90
- effort: 'low',
91
+ effort: "low",
91
92
  },
92
93
  {
93
94
  id: crypto.randomUUID(),
94
- action: 'REQUEST_APPROVAL',
95
- description: 'Request human approval',
95
+ action: "REQUEST_APPROVAL",
96
+ description: "Request human approval",
96
97
  successProbability: 0.7,
97
- effort: 'medium',
98
+ effort: "medium",
98
99
  },
99
100
  ];
100
101
  }
101
102
  // Add denial details for RED
102
- if (tier === 'RED') {
103
- decision.denialReason = 'policy_violation';
103
+ if (tier === "RED") {
104
+ decision.denialReason = "policy_violation";
104
105
  decision.hardDenial = true;
105
106
  }
106
107
  this.decisions.set(decision.id, decision);
@@ -114,32 +115,42 @@ export class MockEnforcementService {
114
115
  state: this.tierToState(tier),
115
116
  currentDecisionId: decision.id,
116
117
  stateHistory: [
117
- { from: 'SUBMITTED', to: this.tierToState(tier), reason: `Decision: ${tier}`, timestamp: now },
118
+ {
119
+ from: "SUBMITTED",
120
+ to: this.tierToState(tier),
121
+ reason: `Decision: ${tier}`,
122
+ timestamp: now,
123
+ },
118
124
  ],
119
125
  createdAt: now,
120
126
  updatedAt: now,
121
127
  expiresAt: decision.expiresAt,
122
128
  };
123
129
  this.workflows.set(intent.id, workflow);
124
- logger.info({ decisionId: decision.id, intentId: intent.id, tier }, 'Enforcement decision made (mock)');
125
- return { decision, workflow, tier, refinementOptions: decision.refinementOptions };
130
+ logger.info({ decisionId: decision.id, intentId: intent.id, tier }, "Enforcement decision made (mock)");
131
+ return {
132
+ decision,
133
+ workflow,
134
+ tier,
135
+ refinementOptions: decision.refinementOptions,
136
+ };
126
137
  }
127
138
  async refine(request, tenantId) {
128
139
  const original = this.decisions.get(request.decisionId);
129
- if (!original || original.tier !== 'YELLOW')
140
+ if (!original || original.tier !== "YELLOW")
130
141
  return null;
131
142
  const now = new Date().toISOString();
132
143
  // Create refined decision (simple: just upgrade to GREEN)
133
144
  const refined = {
134
145
  ...original,
135
146
  id: crypto.randomUUID(),
136
- tier: 'GREEN',
147
+ tier: "GREEN",
137
148
  permitted: true,
138
149
  refinementAttempt: original.refinementAttempt + 1,
139
- reasoning: ['Refined to GREEN after applying constraints'],
150
+ reasoning: ["Refined to GREEN after applying constraints"],
140
151
  constraints: {
141
- allowedTools: ['*'],
142
- dataScopes: ['*'],
152
+ allowedTools: ["*"],
153
+ dataScopes: ["*"],
143
154
  rateLimits: [],
144
155
  requiredApprovals: [],
145
156
  reversibilityRequired: true,
@@ -151,17 +162,17 @@ export class MockEnforcementService {
151
162
  // Update workflow
152
163
  const workflow = this.workflows.get(original.intentId);
153
164
  if (workflow) {
154
- workflow.state = 'APPROVED';
165
+ workflow.state = "APPROVED";
155
166
  workflow.currentDecisionId = refined.id;
156
167
  workflow.updatedAt = now;
157
168
  workflow.stateHistory.push({
158
- from: 'PENDING_REFINEMENT',
159
- to: 'APPROVED',
160
- reason: 'Refined to GREEN',
169
+ from: "PENDING_REFINEMENT",
170
+ to: "APPROVED",
171
+ reason: "Refined to GREEN",
161
172
  timestamp: now,
162
173
  });
163
174
  }
164
- return { decision: refined, workflow: workflow, tier: 'GREEN' };
175
+ return { decision: refined, workflow: workflow, tier: "GREEN" };
165
176
  }
166
177
  async getDecision(id, tenantId) {
167
178
  const decision = this.decisions.get(id);
@@ -176,30 +187,43 @@ export class MockEnforcementService {
176
187
  }
177
188
  determineTier(evaluation, trustLevel) {
178
189
  const thresholds = this.policy.trustThresholds;
179
- if (evaluation.violatedRules.some((r) => r.action === 'deny' || r.action === 'terminate')) {
180
- return 'RED';
190
+ if (evaluation.violatedRules.some((r) => r.action === "deny" || r.action === "terminate")) {
191
+ return "RED";
181
192
  }
182
193
  if (trustLevel < thresholds.autoDenyLevel)
183
- return 'RED';
194
+ return "RED";
184
195
  if (trustLevel < thresholds.requireRefinementLevel)
185
- return 'YELLOW';
196
+ return "YELLOW";
186
197
  if (trustLevel >= thresholds.autoApproveLevel && evaluation.passed)
187
- return 'GREEN';
188
- return 'YELLOW';
198
+ return "GREEN";
199
+ return "YELLOW";
189
200
  }
190
201
  buildReasoning(tier, evaluation, trustLevel) {
191
- if (tier === 'GREEN')
192
- return ['All checks passed', `Trust T${trustLevel} meets requirements`];
193
- if (tier === 'YELLOW')
194
- return ['Refinement options available'];
195
- return ['Policy violation', 'Request cannot proceed'];
202
+ if (tier === "GREEN")
203
+ return ["All checks passed", `Trust T${trustLevel} meets requirements`];
204
+ if (tier === "YELLOW")
205
+ return ["Refinement options available"];
206
+ return ["Policy violation", "Request cannot proceed"];
196
207
  }
197
208
  tierToState(tier) {
198
- return tier === 'GREEN' ? 'APPROVED' : tier === 'YELLOW' ? 'PENDING_REFINEMENT' : 'DENIED';
209
+ return tier === "GREEN"
210
+ ? "APPROVED"
211
+ : tier === "YELLOW"
212
+ ? "PENDING_REFINEMENT"
213
+ : "DENIED";
199
214
  }
200
215
  getTrustBandName(level) {
201
- const names = ['SANDBOX', 'OBSERVED', 'PROVISIONAL', 'MONITORED', 'STANDARD', 'TRUSTED', 'CERTIFIED', 'AUTONOMOUS'];
202
- return names[level] ?? 'SANDBOX';
216
+ const names = [
217
+ "SANDBOX",
218
+ "OBSERVED",
219
+ "PROVISIONAL",
220
+ "MONITORED",
221
+ "STANDARD",
222
+ "TRUSTED",
223
+ "CERTIFIED",
224
+ "AUTONOMOUS",
225
+ ];
226
+ return names[level] ?? "SANDBOX";
203
227
  }
204
228
  clear() {
205
229
  this.decisions.clear();
@@ -214,11 +238,84 @@ export class MockEnforcementService {
214
238
  */
215
239
  export class EnforcementService extends MockEnforcementService {
216
240
  }
241
+ // =============================================================================
242
+ // SERVICE FACTORY & INJECTION
243
+ // =============================================================================
244
+ let enforcementService = null;
245
+ /**
246
+ * Set the enforcement service implementation to use at runtime.
247
+ * Call this during application bootstrap with a real backend.
248
+ */
249
+ export function setEnforcementService(service) {
250
+ enforcementService = service;
251
+ }
252
+ /**
253
+ * Get the configured enforcement service.
254
+ * Throws if no real backend has been provided via setEnforcementService().
255
+ */
256
+ export function getEnforcementService() {
257
+ if (!enforcementService) {
258
+ throw new Error("No enforcement service backend configured. Pass a real EnforcementService implementation or see docs for setup.");
259
+ }
260
+ return enforcementService;
261
+ }
262
+ /**
263
+ * Create a new enforcement service instance
264
+ *
265
+ * Throws if no real backend is provided. For tests, use createMockEnforcementService().
266
+ */
267
+ export function createEnforcementService(service) {
268
+ if (!service) {
269
+ throw new Error("No enforcement service backend configured. Pass a real EnforcementService implementation or see docs for setup.");
270
+ }
271
+ return service;
272
+ }
217
273
  /**
218
- * @deprecated Use new MockEnforcementService() for testing
274
+ * Create a mock enforcement service for testing only.
219
275
  */
220
- export function createEnforcementService(policy) {
221
- logger.warn('createEnforcementService() creates an in-memory mock. For production, connect to the Vorion API.');
222
- return new EnforcementService(policy);
276
+ export function createMockEnforcementService(policy) {
277
+ return new MockEnforcementService(policy);
223
278
  }
279
+ // =============================================================================
280
+ // PRODUCTION IMPLEMENTATION
281
+ // =============================================================================
282
+ export { TrustAwareEnforcementService } from "./trust-aware-enforcement-service.js";
283
+ // =============================================================================
284
+ // POLICY COMPOSITION
285
+ // =============================================================================
286
+ /**
287
+ * Compose policies with AND -- all must pass for the combined policy to pass.
288
+ */
289
+ export function allOf(...predicates) {
290
+ return (context) => predicates.every((p) => p(context));
291
+ }
292
+ /**
293
+ * Compose policies with OR -- at least one must pass.
294
+ */
295
+ export function anyOf(...predicates) {
296
+ return (context) => predicates.some((p) => p(context));
297
+ }
298
+ /**
299
+ * Negate a policy predicate.
300
+ */
301
+ export function not(predicate) {
302
+ return (context) => !predicate(context);
303
+ }
304
+ /**
305
+ * Built-in policy predicates for common checks.
306
+ */
307
+ export const PolicyPredicates = {
308
+ /** Trust level is at or above the given threshold */
309
+ minTrustLevel: (level) => (ctx) => (ctx.trustLevel ?? 0) >= level,
310
+ /** Action type matches */
311
+ actionType: (type) => (ctx) => ctx.intent.actionType === type,
312
+ /** Data sensitivity is at most the given level */
313
+ maxSensitivity: (level) => {
314
+ const order = { PUBLIC: 0, INTERNAL: 1, CONFIDENTIAL: 2, RESTRICTED: 3 };
315
+ return (ctx) => order[(ctx.intent.dataSensitivity ?? "PUBLIC")] <=
316
+ order[level];
317
+ },
318
+ /** Action is reversible */
319
+ isReversible: () => (ctx) => ctx.intent.reversibility !== "IRREVERSIBLE",
320
+ };
224
321
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Trust-Aware Enforcement Service
3
+ *
4
+ * Production-quality enforcement service that provides:
5
+ * - Real-time trust score lookups via TrustEngine
6
+ * - Three-tier fluid governance (GREEN/YELLOW/RED)
7
+ * - Configurable trust thresholds for automatic decisions
8
+ * - Risk-based constraint computation from intent metadata
9
+ * - Refinement workflow with attempt tracking
10
+ * - Tenant isolation and decision expiration
11
+ *
12
+ * Replaces MockEnforcementService for production use.
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ import type { ID, TrustLevel } from "../common/types.js";
17
+ import type { TrustEngine } from "../trust-engine/index.js";
18
+ import type { IEnforcementService, EnforcementContext, EnforcementPolicy, FluidDecision, FluidDecisionResult, DecisionConstraints, RefinementRequest, WorkflowInstance } from "./types.js";
19
+ /**
20
+ * Input for policy evaluation.
21
+ * Minimal interface to avoid hard dependency on @vorionsys/security.
22
+ */
23
+ export interface PolicyEvaluationInput {
24
+ intent: import("../common/types.js").Intent;
25
+ trustScore: import("../common/types.js").TrustScore;
26
+ trustLevel: import("../common/types.js").TrustLevel;
27
+ context?: Record<string, unknown>;
28
+ }
29
+ /**
30
+ * A violation detected by the security policy engine.
31
+ */
32
+ export interface PolicyViolation {
33
+ policyId: string;
34
+ policyName: string;
35
+ action: "deny" | "escalate" | "limit" | "monitor";
36
+ reason: string;
37
+ }
38
+ /**
39
+ * Interface for security policy engine integration.
40
+ * The full SecurityPolicyEngine from @vorionsys/security satisfies this interface.
41
+ * Defined locally to avoid hard dependency in the public SDK package.
42
+ */
43
+ export interface IPolicyEngine {
44
+ evaluate(context: PolicyEvaluationInput): PolicyViolation[];
45
+ }
46
+ export interface TrustAwareEnforcementConfig {
47
+ /** Trust level at or above which intents are auto-approved (default: T4) */
48
+ autoApproveLevel?: TrustLevel;
49
+ /** Trust level below which refinement is required (default: T2) */
50
+ requireRefinementLevel?: TrustLevel;
51
+ /** Trust level below which intents are auto-denied (default: T0) */
52
+ autoDenyLevel?: TrustLevel;
53
+ /** Decision expiration time in ms (default: 1 hour) */
54
+ decisionExpirationMs?: number;
55
+ /** Refinement deadline in ms (default: 15 minutes) */
56
+ refinementDeadlineMs?: number;
57
+ /** Maximum refinement attempts (default: 3) */
58
+ maxRefinementAttempts?: number;
59
+ /** Default constraints for GREEN decisions */
60
+ defaultConstraints?: Partial<DecisionConstraints>;
61
+ /** Optional security policy engine for additional policy evaluation */
62
+ policyEngine?: IPolicyEngine;
63
+ }
64
+ /**
65
+ * Production enforcement service wired to the Trust Engine.
66
+ *
67
+ * Provides real three-tier fluid governance with:
68
+ * - Trust-based tier determination using live TrustEngine scores
69
+ * - Risk-aware constraint computation from intent metadata
70
+ * - Refinement workflow with configurable attempt limits
71
+ * - Full audit trail via decision/workflow records
72
+ */
73
+ export declare class TrustAwareEnforcementService implements IEnforcementService {
74
+ private config;
75
+ private policy;
76
+ private decisions;
77
+ private workflows;
78
+ private trustEngine;
79
+ private policyEngine;
80
+ constructor(trustEngine: TrustEngine | null, config?: TrustAwareEnforcementConfig, policy?: EnforcementPolicy);
81
+ decide(context: EnforcementContext): Promise<FluidDecisionResult>;
82
+ refine(request: RefinementRequest, tenantId: ID): Promise<FluidDecisionResult | null>;
83
+ getDecision(id: ID, tenantId: ID): Promise<FluidDecision | null>;
84
+ getWorkflow(intentId: ID, tenantId: ID): Promise<WorkflowInstance | null>;
85
+ setPolicy(policy: EnforcementPolicy): void;
86
+ /**
87
+ * Refresh policy configuration at runtime (hot-reload).
88
+ * Accepts partial updates — only specified fields are changed.
89
+ * Existing in-flight decisions are not affected.
90
+ */
91
+ refreshPolicy(updates: Partial<TrustAwareEnforcementConfig>): void;
92
+ /**
93
+ * Get current policy configuration (for inspection/debugging).
94
+ */
95
+ getPolicy(): {
96
+ config: Required<Omit<TrustAwareEnforcementConfig, "policyEngine">>;
97
+ policy: EnforcementPolicy;
98
+ };
99
+ /**
100
+ * Set or replace the security policy engine.
101
+ * Can be called at runtime to add/swap policy evaluation.
102
+ */
103
+ setPolicyEngine(engine: IPolicyEngine | null): void;
104
+ /**
105
+ * Get count of active decisions.
106
+ */
107
+ decisionCount(): number;
108
+ /**
109
+ * Get count of active workflows.
110
+ */
111
+ workflowCount(): number;
112
+ /**
113
+ * Clear all state (for testing).
114
+ */
115
+ clear(): void;
116
+ private determineTier;
117
+ private buildReasoning;
118
+ private tierToState;
119
+ private getTrustBandName;
120
+ }
121
+ //# sourceMappingURL=trust-aware-enforcement-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-aware-enforcement-service.d.ts","sourceRoot":"","sources":["../../src/enforce/trust-aware-enforcement-service.ts"],"names":[],"mappings":"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"}