@salimassili/ai-costguard 1.1.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 (490) hide show
  1. package/README.md +112 -0
  2. package/dist/aecl/ExecutionInterceptor.d.ts +111 -0
  3. package/dist/aecl/ExecutionInterceptor.d.ts.map +1 -0
  4. package/dist/aecl/ExecutionInterceptor.js +280 -0
  5. package/dist/aecl/ExecutionInterceptor.js.map +1 -0
  6. package/dist/aecl/ExecutionMemory.d.ts +103 -0
  7. package/dist/aecl/ExecutionMemory.d.ts.map +1 -0
  8. package/dist/aecl/ExecutionMemory.js +164 -0
  9. package/dist/aecl/ExecutionMemory.js.map +1 -0
  10. package/dist/aecl/PolicyEngine.d.ts +77 -0
  11. package/dist/aecl/PolicyEngine.d.ts.map +1 -0
  12. package/dist/aecl/PolicyEngine.js +170 -0
  13. package/dist/aecl/PolicyEngine.js.map +1 -0
  14. package/dist/aecl/ROITelemetry.d.ts +110 -0
  15. package/dist/aecl/ROITelemetry.d.ts.map +1 -0
  16. package/dist/aecl/ROITelemetry.js +211 -0
  17. package/dist/aecl/ROITelemetry.js.map +1 -0
  18. package/dist/aecl/RiskEngine.d.ts +90 -0
  19. package/dist/aecl/RiskEngine.d.ts.map +1 -0
  20. package/dist/aecl/RiskEngine.js +207 -0
  21. package/dist/aecl/RiskEngine.js.map +1 -0
  22. package/dist/aecl/index.d.ts +76 -0
  23. package/dist/aecl/index.d.ts.map +1 -0
  24. package/dist/aecl/index.js +111 -0
  25. package/dist/aecl/index.js.map +1 -0
  26. package/dist/aerl/ExecutionGraph.d.ts +123 -0
  27. package/dist/aerl/ExecutionGraph.d.ts.map +1 -0
  28. package/dist/aerl/ExecutionGraph.js +289 -0
  29. package/dist/aerl/ExecutionGraph.js.map +1 -0
  30. package/dist/aerl/ExecutionInterceptor.d.ts +94 -0
  31. package/dist/aerl/ExecutionInterceptor.d.ts.map +1 -0
  32. package/dist/aerl/ExecutionInterceptor.js +246 -0
  33. package/dist/aerl/ExecutionInterceptor.js.map +1 -0
  34. package/dist/aerl/ExecutionMemory.d.ts +138 -0
  35. package/dist/aerl/ExecutionMemory.d.ts.map +1 -0
  36. package/dist/aerl/ExecutionMemory.js +284 -0
  37. package/dist/aerl/ExecutionMemory.js.map +1 -0
  38. package/dist/aerl/FailurePrediction.d.ts +71 -0
  39. package/dist/aerl/FailurePrediction.d.ts.map +1 -0
  40. package/dist/aerl/FailurePrediction.js +204 -0
  41. package/dist/aerl/FailurePrediction.js.map +1 -0
  42. package/dist/aerl/RecoveryEngine.d.ts +74 -0
  43. package/dist/aerl/RecoveryEngine.d.ts.map +1 -0
  44. package/dist/aerl/RecoveryEngine.js +194 -0
  45. package/dist/aerl/RecoveryEngine.js.map +1 -0
  46. package/dist/aerl/ReliabilityEngine.d.ts +74 -0
  47. package/dist/aerl/ReliabilityEngine.d.ts.map +1 -0
  48. package/dist/aerl/ReliabilityEngine.js +205 -0
  49. package/dist/aerl/ReliabilityEngine.js.map +1 -0
  50. package/dist/aerl/ReliabilityTelemetry.d.ts +118 -0
  51. package/dist/aerl/ReliabilityTelemetry.d.ts.map +1 -0
  52. package/dist/aerl/ReliabilityTelemetry.js +247 -0
  53. package/dist/aerl/ReliabilityTelemetry.js.map +1 -0
  54. package/dist/aerl/index.d.ts +170 -0
  55. package/dist/aerl/index.d.ts.map +1 -0
  56. package/dist/aerl/index.js +223 -0
  57. package/dist/aerl/index.js.map +1 -0
  58. package/dist/ambient/AmbientProtection.d.ts +79 -0
  59. package/dist/ambient/AmbientProtection.d.ts.map +1 -0
  60. package/dist/ambient/AmbientProtection.js +251 -0
  61. package/dist/ambient/AmbientProtection.js.map +1 -0
  62. package/dist/bin/start.d.ts +14 -0
  63. package/dist/bin/start.d.ts.map +1 -0
  64. package/dist/bin/start.js +54 -0
  65. package/dist/bin/start.js.map +1 -0
  66. package/dist/cli/index.d.ts +3 -0
  67. package/dist/cli/index.d.ts.map +1 -0
  68. package/dist/cli/index.js +64 -0
  69. package/dist/cli/index.js.map +1 -0
  70. package/dist/cli/outputContract.d.ts +19 -0
  71. package/dist/cli/outputContract.d.ts.map +1 -0
  72. package/dist/cli/outputContract.js +54 -0
  73. package/dist/cli/outputContract.js.map +1 -0
  74. package/dist/cli/storage.d.ts +61 -0
  75. package/dist/cli/storage.d.ts.map +1 -0
  76. package/dist/cli/storage.js +143 -0
  77. package/dist/cli/storage.js.map +1 -0
  78. package/dist/client.d.ts +29 -0
  79. package/dist/client.d.ts.map +1 -0
  80. package/dist/client.js +58 -0
  81. package/dist/client.js.map +1 -0
  82. package/dist/config/constants.d.ts +109 -0
  83. package/dist/config/constants.d.ts.map +1 -0
  84. package/dist/config/constants.js +151 -0
  85. package/dist/config/constants.js.map +1 -0
  86. package/dist/config/index.d.ts +5 -0
  87. package/dist/config/index.d.ts.map +1 -0
  88. package/dist/config/index.js +21 -0
  89. package/dist/config/index.js.map +1 -0
  90. package/dist/config/pricing.d.ts +12 -0
  91. package/dist/config/pricing.d.ts.map +1 -0
  92. package/dist/config/pricing.js +45 -0
  93. package/dist/config/pricing.js.map +1 -0
  94. package/dist/config/productionConfig.d.ts +8 -0
  95. package/dist/config/productionConfig.d.ts.map +1 -0
  96. package/dist/config/productionConfig.js +21 -0
  97. package/dist/config/productionConfig.js.map +1 -0
  98. package/dist/config/userConfig.d.ts +31 -0
  99. package/dist/config/userConfig.d.ts.map +1 -0
  100. package/dist/config/userConfig.js +116 -0
  101. package/dist/config/userConfig.js.map +1 -0
  102. package/dist/controlPlane/configServer.d.ts +7 -0
  103. package/dist/controlPlane/configServer.d.ts.map +1 -0
  104. package/dist/controlPlane/configServer.js +47 -0
  105. package/dist/controlPlane/configServer.js.map +1 -0
  106. package/dist/core/AgentBehaviorGraph.d.ts +163 -0
  107. package/dist/core/AgentBehaviorGraph.d.ts.map +1 -0
  108. package/dist/core/AgentBehaviorGraph.js +341 -0
  109. package/dist/core/AgentBehaviorGraph.js.map +1 -0
  110. package/dist/core/AlertManager.d.ts +19 -0
  111. package/dist/core/AlertManager.d.ts.map +1 -0
  112. package/dist/core/AlertManager.js +64 -0
  113. package/dist/core/AlertManager.js.map +1 -0
  114. package/dist/core/AuditTrail.d.ts +107 -0
  115. package/dist/core/AuditTrail.d.ts.map +1 -0
  116. package/dist/core/AuditTrail.js +256 -0
  117. package/dist/core/AuditTrail.js.map +1 -0
  118. package/dist/core/CostLedger.d.ts +135 -0
  119. package/dist/core/CostLedger.d.ts.map +1 -0
  120. package/dist/core/CostLedger.js +224 -0
  121. package/dist/core/CostLedger.js.map +1 -0
  122. package/dist/core/CostPredictionEngine.d.ts +110 -0
  123. package/dist/core/CostPredictionEngine.d.ts.map +1 -0
  124. package/dist/core/CostPredictionEngine.js +225 -0
  125. package/dist/core/CostPredictionEngine.js.map +1 -0
  126. package/dist/core/CostTruthEngine.d.ts +108 -0
  127. package/dist/core/CostTruthEngine.d.ts.map +1 -0
  128. package/dist/core/CostTruthEngine.js +170 -0
  129. package/dist/core/CostTruthEngine.js.map +1 -0
  130. package/dist/core/DetectionEngine.d.ts +147 -0
  131. package/dist/core/DetectionEngine.d.ts.map +1 -0
  132. package/dist/core/DetectionEngine.js +429 -0
  133. package/dist/core/DetectionEngine.js.map +1 -0
  134. package/dist/core/ExecutionInterceptor.d.ts +135 -0
  135. package/dist/core/ExecutionInterceptor.d.ts.map +1 -0
  136. package/dist/core/ExecutionInterceptor.js +285 -0
  137. package/dist/core/ExecutionInterceptor.js.map +1 -0
  138. package/dist/core/ExplainabilityLayer.d.ts +109 -0
  139. package/dist/core/ExplainabilityLayer.d.ts.map +1 -0
  140. package/dist/core/ExplainabilityLayer.js +277 -0
  141. package/dist/core/ExplainabilityLayer.js.map +1 -0
  142. package/dist/core/LearningSystem.d.ts +124 -0
  143. package/dist/core/LearningSystem.d.ts.map +1 -0
  144. package/dist/core/LearningSystem.js +294 -0
  145. package/dist/core/LearningSystem.js.map +1 -0
  146. package/dist/core/Logger.d.ts +122 -0
  147. package/dist/core/Logger.d.ts.map +1 -0
  148. package/dist/core/Logger.js +233 -0
  149. package/dist/core/Logger.js.map +1 -0
  150. package/dist/core/PolicyEngine.d.ts +148 -0
  151. package/dist/core/PolicyEngine.d.ts.map +1 -0
  152. package/dist/core/PolicyEngine.js +336 -0
  153. package/dist/core/PolicyEngine.js.map +1 -0
  154. package/dist/core/PricingConfig.d.ts +55 -0
  155. package/dist/core/PricingConfig.d.ts.map +1 -0
  156. package/dist/core/PricingConfig.js +132 -0
  157. package/dist/core/PricingConfig.js.map +1 -0
  158. package/dist/core/SessionStats.d.ts +101 -0
  159. package/dist/core/SessionStats.d.ts.map +1 -0
  160. package/dist/core/SessionStats.js +261 -0
  161. package/dist/core/SessionStats.js.map +1 -0
  162. package/dist/core/StateStore.d.ts +100 -0
  163. package/dist/core/StateStore.d.ts.map +1 -0
  164. package/dist/core/StateStore.js +336 -0
  165. package/dist/core/StateStore.js.map +1 -0
  166. package/dist/core/index.d.ts +3 -0
  167. package/dist/core/index.d.ts.map +1 -0
  168. package/dist/core/index.js +19 -0
  169. package/dist/core/index.js.map +1 -0
  170. package/dist/core/types.d.ts +26 -0
  171. package/dist/core/types.d.ts.map +1 -0
  172. package/dist/core/types.js +3 -0
  173. package/dist/core/types.js.map +1 -0
  174. package/dist/cost-guard.d.ts +41 -0
  175. package/dist/cost-guard.d.ts.map +1 -0
  176. package/dist/cost-guard.js +274 -0
  177. package/dist/cost-guard.js.map +1 -0
  178. package/dist/dashboard/roiDashboard.d.ts +12 -0
  179. package/dist/dashboard/roiDashboard.d.ts.map +1 -0
  180. package/dist/dashboard/roiDashboard.js +28 -0
  181. package/dist/dashboard/roiDashboard.js.map +1 -0
  182. package/dist/demo/compareExecution.d.ts +9 -0
  183. package/dist/demo/compareExecution.d.ts.map +1 -0
  184. package/dist/demo/compareExecution.js +43 -0
  185. package/dist/demo/compareExecution.js.map +1 -0
  186. package/dist/demo/demoRunner.d.ts +16 -0
  187. package/dist/demo/demoRunner.d.ts.map +1 -0
  188. package/dist/demo/demoRunner.js +73 -0
  189. package/dist/demo/demoRunner.js.map +1 -0
  190. package/dist/firewall/costEstimator.d.ts +3 -0
  191. package/dist/firewall/costEstimator.d.ts.map +1 -0
  192. package/dist/firewall/costEstimator.js +22 -0
  193. package/dist/firewall/costEstimator.js.map +1 -0
  194. package/dist/firewall/executionGuard.d.ts +18 -0
  195. package/dist/firewall/executionGuard.d.ts.map +1 -0
  196. package/dist/firewall/executionGuard.js +80 -0
  197. package/dist/firewall/executionGuard.js.map +1 -0
  198. package/dist/firewall/loopDetector.d.ts +13 -0
  199. package/dist/firewall/loopDetector.d.ts.map +1 -0
  200. package/dist/firewall/loopDetector.js +24 -0
  201. package/dist/firewall/loopDetector.js.map +1 -0
  202. package/dist/firewall/policy.d.ts +4 -0
  203. package/dist/firewall/policy.d.ts.map +1 -0
  204. package/dist/firewall/policy.js +16 -0
  205. package/dist/firewall/policy.js.map +1 -0
  206. package/dist/firewall/types.d.ts +38 -0
  207. package/dist/firewall/types.d.ts.map +1 -0
  208. package/dist/firewall/types.js +3 -0
  209. package/dist/firewall/types.js.map +1 -0
  210. package/dist/index.d.ts +40 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +76 -0
  213. package/dist/index.js.map +1 -0
  214. package/dist/logger/console.d.ts +27 -0
  215. package/dist/logger/console.d.ts.map +1 -0
  216. package/dist/logger/console.js +68 -0
  217. package/dist/logger/console.js.map +1 -0
  218. package/dist/logger/database.d.ts +40 -0
  219. package/dist/logger/database.d.ts.map +1 -0
  220. package/dist/logger/database.js +127 -0
  221. package/dist/logger/database.js.map +1 -0
  222. package/dist/logger/index.d.ts +3 -0
  223. package/dist/logger/index.d.ts.map +1 -0
  224. package/dist/logger/index.js +11 -0
  225. package/dist/logger/index.js.map +1 -0
  226. package/dist/loop-shield.d.ts +48 -0
  227. package/dist/loop-shield.d.ts.map +1 -0
  228. package/dist/loop-shield.js +436 -0
  229. package/dist/loop-shield.js.map +1 -0
  230. package/dist/metrics/BusinessMetricsEngine.d.ts +109 -0
  231. package/dist/metrics/BusinessMetricsEngine.d.ts.map +1 -0
  232. package/dist/metrics/BusinessMetricsEngine.js +222 -0
  233. package/dist/metrics/BusinessMetricsEngine.js.map +1 -0
  234. package/dist/metrics/index.d.ts +11 -0
  235. package/dist/metrics/index.d.ts.map +1 -0
  236. package/dist/metrics/index.js +17 -0
  237. package/dist/metrics/index.js.map +1 -0
  238. package/dist/middleware/expressFirewall.d.ts +51 -0
  239. package/dist/middleware/expressFirewall.d.ts.map +1 -0
  240. package/dist/middleware/expressFirewall.js +140 -0
  241. package/dist/middleware/expressFirewall.js.map +1 -0
  242. package/dist/middleware/index.d.ts +8 -0
  243. package/dist/middleware/index.d.ts.map +1 -0
  244. package/dist/middleware/index.js +15 -0
  245. package/dist/middleware/index.js.map +1 -0
  246. package/dist/middleware/withFirewall.d.ts +50 -0
  247. package/dist/middleware/withFirewall.d.ts.map +1 -0
  248. package/dist/middleware/withFirewall.js +155 -0
  249. package/dist/middleware/withFirewall.js.map +1 -0
  250. package/dist/observability/logger.d.ts +14 -0
  251. package/dist/observability/logger.d.ts.map +1 -0
  252. package/dist/observability/logger.js +21 -0
  253. package/dist/observability/logger.js.map +1 -0
  254. package/dist/observability/metrics.d.ts +17 -0
  255. package/dist/observability/metrics.d.ts.map +1 -0
  256. package/dist/observability/metrics.js +36 -0
  257. package/dist/observability/metrics.js.map +1 -0
  258. package/dist/os/ExecutionOS.d.ts +220 -0
  259. package/dist/os/ExecutionOS.d.ts.map +1 -0
  260. package/dist/os/ExecutionOS.js +398 -0
  261. package/dist/os/ExecutionOS.js.map +1 -0
  262. package/dist/os/GlobalIntelligence.d.ts +154 -0
  263. package/dist/os/GlobalIntelligence.d.ts.map +1 -0
  264. package/dist/os/GlobalIntelligence.js +374 -0
  265. package/dist/os/GlobalIntelligence.js.map +1 -0
  266. package/dist/os/PolicyMarketplace.d.ts +192 -0
  267. package/dist/os/PolicyMarketplace.d.ts.map +1 -0
  268. package/dist/os/PolicyMarketplace.js +384 -0
  269. package/dist/os/PolicyMarketplace.js.map +1 -0
  270. package/dist/os/SDKInterception.d.ts +115 -0
  271. package/dist/os/SDKInterception.d.ts.map +1 -0
  272. package/dist/os/SDKInterception.js +317 -0
  273. package/dist/os/SDKInterception.js.map +1 -0
  274. package/dist/os/index.d.ts +60 -0
  275. package/dist/os/index.d.ts.map +1 -0
  276. package/dist/os/index.js +82 -0
  277. package/dist/os/index.js.map +1 -0
  278. package/dist/proxy/index.d.ts +2 -0
  279. package/dist/proxy/index.d.ts.map +1 -0
  280. package/dist/proxy/index.js +18 -0
  281. package/dist/proxy/index.js.map +1 -0
  282. package/dist/proxy/server.d.ts +24 -0
  283. package/dist/proxy/server.d.ts.map +1 -0
  284. package/dist/proxy/server.js +395 -0
  285. package/dist/proxy/server.js.map +1 -0
  286. package/dist/public/BenchmarksPage.d.ts +60 -0
  287. package/dist/public/BenchmarksPage.d.ts.map +1 -0
  288. package/dist/public/BenchmarksPage.js +397 -0
  289. package/dist/public/BenchmarksPage.js.map +1 -0
  290. package/dist/public/DocsPage.d.ts +11 -0
  291. package/dist/public/DocsPage.d.ts.map +1 -0
  292. package/dist/public/DocsPage.js +496 -0
  293. package/dist/public/DocsPage.js.map +1 -0
  294. package/dist/public/StatusPage.d.ts +55 -0
  295. package/dist/public/StatusPage.d.ts.map +1 -0
  296. package/dist/public/StatusPage.js +344 -0
  297. package/dist/public/StatusPage.js.map +1 -0
  298. package/dist/public/index.d.ts +12 -0
  299. package/dist/public/index.d.ts.map +1 -0
  300. package/dist/public/index.js +20 -0
  301. package/dist/public/index.js.map +1 -0
  302. package/dist/replacements/axios.d.ts +14 -0
  303. package/dist/replacements/axios.d.ts.map +1 -0
  304. package/dist/replacements/axios.js +35 -0
  305. package/dist/replacements/axios.js.map +1 -0
  306. package/dist/replacements/fetch.d.ts +13 -0
  307. package/dist/replacements/fetch.d.ts.map +1 -0
  308. package/dist/replacements/fetch.js +20 -0
  309. package/dist/replacements/fetch.js.map +1 -0
  310. package/dist/replacements/openai.d.ts +14 -0
  311. package/dist/replacements/openai.d.ts.map +1 -0
  312. package/dist/replacements/openai.js +22 -0
  313. package/dist/replacements/openai.js.map +1 -0
  314. package/dist/saas/CostExplosionDemo.d.ts +56 -0
  315. package/dist/saas/CostExplosionDemo.d.ts.map +1 -0
  316. package/dist/saas/CostExplosionDemo.js +190 -0
  317. package/dist/saas/CostExplosionDemo.js.map +1 -0
  318. package/dist/saas/LiveProtection.d.ts +61 -0
  319. package/dist/saas/LiveProtection.d.ts.map +1 -0
  320. package/dist/saas/LiveProtection.js +187 -0
  321. package/dist/saas/LiveProtection.js.map +1 -0
  322. package/dist/saas/ProductionSaaS.d.ts +56 -0
  323. package/dist/saas/ProductionSaaS.d.ts.map +1 -0
  324. package/dist/saas/ProductionSaaS.js +831 -0
  325. package/dist/saas/ProductionSaaS.js.map +1 -0
  326. package/dist/saas/SaaSServer.d.ts +50 -0
  327. package/dist/saas/SaaSServer.d.ts.map +1 -0
  328. package/dist/saas/SaaSServer.js +669 -0
  329. package/dist/saas/SaaSServer.js.map +1 -0
  330. package/dist/saas/UserStore.d.ts +49 -0
  331. package/dist/saas/UserStore.d.ts.map +1 -0
  332. package/dist/saas/UserStore.js +137 -0
  333. package/dist/saas/UserStore.js.map +1 -0
  334. package/dist/saas/billingMetrics.d.ts +14 -0
  335. package/dist/saas/billingMetrics.d.ts.map +1 -0
  336. package/dist/saas/billingMetrics.js +23 -0
  337. package/dist/saas/billingMetrics.js.map +1 -0
  338. package/dist/saas/index.d.ts +12 -0
  339. package/dist/saas/index.d.ts.map +1 -0
  340. package/dist/saas/index.js +23 -0
  341. package/dist/saas/index.js.map +1 -0
  342. package/dist/saas/telemetry.d.ts +24 -0
  343. package/dist/saas/telemetry.d.ts.map +1 -0
  344. package/dist/saas/telemetry.js +30 -0
  345. package/dist/saas/telemetry.js.map +1 -0
  346. package/dist/saas/usageMeter.d.ts +28 -0
  347. package/dist/saas/usageMeter.d.ts.map +1 -0
  348. package/dist/saas/usageMeter.js +41 -0
  349. package/dist/saas/usageMeter.js.map +1 -0
  350. package/dist/security/TrustBoundaryValidator.d.ts +105 -0
  351. package/dist/security/TrustBoundaryValidator.d.ts.map +1 -0
  352. package/dist/security/TrustBoundaryValidator.js +305 -0
  353. package/dist/security/TrustBoundaryValidator.js.map +1 -0
  354. package/dist/starters/express-protected.d.ts +18 -0
  355. package/dist/starters/express-protected.d.ts.map +1 -0
  356. package/dist/starters/express-protected.js +93 -0
  357. package/dist/starters/express-protected.js.map +1 -0
  358. package/dist/starters/langchain-protected.d.ts +18 -0
  359. package/dist/starters/langchain-protected.d.ts.map +1 -0
  360. package/dist/starters/langchain-protected.js +85 -0
  361. package/dist/starters/langchain-protected.js.map +1 -0
  362. package/dist/starters/openai-protected.d.ts +19 -0
  363. package/dist/starters/openai-protected.d.ts.map +1 -0
  364. package/dist/starters/openai-protected.js +84 -0
  365. package/dist/starters/openai-protected.js.map +1 -0
  366. package/dist/starters/serverless-protected.d.ts +19 -0
  367. package/dist/starters/serverless-protected.d.ts.map +1 -0
  368. package/dist/starters/serverless-protected.js +83 -0
  369. package/dist/starters/serverless-protected.js.map +1 -0
  370. package/dist/storage/adapters.d.ts +24 -0
  371. package/dist/storage/adapters.d.ts.map +1 -0
  372. package/dist/storage/adapters.js +123 -0
  373. package/dist/storage/adapters.js.map +1 -0
  374. package/dist/storage/index.d.ts +2 -0
  375. package/dist/storage/index.d.ts.map +1 -0
  376. package/dist/storage/index.js +8 -0
  377. package/dist/storage/index.js.map +1 -0
  378. package/dist/tests/b2b-hardening.test.d.ts +2 -0
  379. package/dist/tests/b2b-hardening.test.d.ts.map +1 -0
  380. package/dist/tests/b2b-hardening.test.js +164 -0
  381. package/dist/tests/b2b-hardening.test.js.map +1 -0
  382. package/dist/tests/cli.contract.test.d.ts +2 -0
  383. package/dist/tests/cli.contract.test.d.ts.map +1 -0
  384. package/dist/tests/cli.contract.test.js +28 -0
  385. package/dist/tests/cli.contract.test.js.map +1 -0
  386. package/dist/tests/cli.snapshot.test.d.ts +14 -0
  387. package/dist/tests/cli.snapshot.test.d.ts.map +1 -0
  388. package/dist/tests/cli.snapshot.test.js +132 -0
  389. package/dist/tests/cli.snapshot.test.js.map +1 -0
  390. package/dist/tests/cli.strict.test.d.ts +6 -0
  391. package/dist/tests/cli.strict.test.d.ts.map +1 -0
  392. package/dist/tests/cli.strict.test.js +173 -0
  393. package/dist/tests/cli.strict.test.js.map +1 -0
  394. package/dist/tests/cli.test.d.ts +5 -0
  395. package/dist/tests/cli.test.d.ts.map +1 -0
  396. package/dist/tests/cli.test.js +54 -0
  397. package/dist/tests/cli.test.js.map +1 -0
  398. package/dist/tests/concurrency.state.test.d.ts +6 -0
  399. package/dist/tests/concurrency.state.test.d.ts.map +1 -0
  400. package/dist/tests/concurrency.state.test.js +231 -0
  401. package/dist/tests/concurrency.state.test.js.map +1 -0
  402. package/dist/tests/detection-engine.strict.test.d.ts +6 -0
  403. package/dist/tests/detection-engine.strict.test.d.ts.map +1 -0
  404. package/dist/tests/detection-engine.strict.test.js +323 -0
  405. package/dist/tests/detection-engine.strict.test.js.map +1 -0
  406. package/dist/tests/e2e.system.test.d.ts +7 -0
  407. package/dist/tests/e2e.system.test.d.ts.map +1 -0
  408. package/dist/tests/e2e.system.test.js +189 -0
  409. package/dist/tests/e2e.system.test.js.map +1 -0
  410. package/dist/tests/edge-cases.test.d.ts +6 -0
  411. package/dist/tests/edge-cases.test.d.ts.map +1 -0
  412. package/dist/tests/edge-cases.test.js +357 -0
  413. package/dist/tests/edge-cases.test.js.map +1 -0
  414. package/dist/tests/performance.benchmark.test.d.ts +2 -0
  415. package/dist/tests/performance.benchmark.test.d.ts.map +1 -0
  416. package/dist/tests/performance.benchmark.test.js +24 -0
  417. package/dist/tests/performance.benchmark.test.js.map +1 -0
  418. package/dist/tests/proxy.production.test.d.ts +6 -0
  419. package/dist/tests/proxy.production.test.d.ts.map +1 -0
  420. package/dist/tests/proxy.production.test.js +274 -0
  421. package/dist/tests/proxy.production.test.js.map +1 -0
  422. package/dist/tests/proxy.strict.test.d.ts +6 -0
  423. package/dist/tests/proxy.strict.test.d.ts.map +1 -0
  424. package/dist/tests/proxy.strict.test.js +188 -0
  425. package/dist/tests/proxy.strict.test.js.map +1 -0
  426. package/dist/tests/proxy.test.d.ts +5 -0
  427. package/dist/tests/proxy.test.d.ts.map +1 -0
  428. package/dist/tests/proxy.test.js +61 -0
  429. package/dist/tests/proxy.test.js.map +1 -0
  430. package/dist/tests/roi.scenario.test.d.ts +2 -0
  431. package/dist/tests/roi.scenario.test.d.ts.map +1 -0
  432. package/dist/tests/roi.scenario.test.js +26 -0
  433. package/dist/tests/roi.scenario.test.js.map +1 -0
  434. package/dist/tests/server.contract.test.d.ts +6 -0
  435. package/dist/tests/server.contract.test.d.ts.map +1 -0
  436. package/dist/tests/server.contract.test.js +48 -0
  437. package/dist/tests/server.contract.test.js.map +1 -0
  438. package/dist/tests/tokenCounter.test.d.ts +5 -0
  439. package/dist/tests/tokenCounter.test.d.ts.map +1 -0
  440. package/dist/tests/tokenCounter.test.js +66 -0
  441. package/dist/tests/tokenCounter.test.js.map +1 -0
  442. package/dist/tests/v113/client.test.d.ts +2 -0
  443. package/dist/tests/v113/client.test.d.ts.map +1 -0
  444. package/dist/tests/v113/client.test.js +22 -0
  445. package/dist/tests/v113/client.test.js.map +1 -0
  446. package/dist/tests/v113/executionGuard.test.d.ts +2 -0
  447. package/dist/tests/v113/executionGuard.test.d.ts.map +1 -0
  448. package/dist/tests/v113/executionGuard.test.js +39 -0
  449. package/dist/tests/v113/executionGuard.test.js.map +1 -0
  450. package/dist/token-counter/index.d.ts +2 -0
  451. package/dist/token-counter/index.d.ts.map +1 -0
  452. package/dist/token-counter/index.js +18 -0
  453. package/dist/token-counter/index.js.map +1 -0
  454. package/dist/token-counter/tokenCounter.d.ts +18 -0
  455. package/dist/token-counter/tokenCounter.d.ts.map +1 -0
  456. package/dist/token-counter/tokenCounter.js +91 -0
  457. package/dist/token-counter/tokenCounter.js.map +1 -0
  458. package/dist/trust/ImmutableAudit.d.ts +159 -0
  459. package/dist/trust/ImmutableAudit.d.ts.map +1 -0
  460. package/dist/trust/ImmutableAudit.js +340 -0
  461. package/dist/trust/ImmutableAudit.js.map +1 -0
  462. package/dist/trust/PublicVerificationLedger.d.ts +91 -0
  463. package/dist/trust/PublicVerificationLedger.d.ts.map +1 -0
  464. package/dist/trust/PublicVerificationLedger.js +223 -0
  465. package/dist/trust/PublicVerificationLedger.js.map +1 -0
  466. package/dist/trust/index.d.ts +11 -0
  467. package/dist/trust/index.d.ts.map +1 -0
  468. package/dist/trust/index.js +20 -0
  469. package/dist/trust/index.js.map +1 -0
  470. package/dist/utils/alert.d.ts +13 -0
  471. package/dist/utils/alert.d.ts.map +1 -0
  472. package/dist/utils/alert.js +49 -0
  473. package/dist/utils/alert.js.map +1 -0
  474. package/dist/utils/index.d.ts +2 -0
  475. package/dist/utils/index.d.ts.map +1 -0
  476. package/dist/utils/index.js +18 -0
  477. package/dist/utils/index.js.map +1 -0
  478. package/dist/wrapper/aiFirewall.d.ts +61 -0
  479. package/dist/wrapper/aiFirewall.d.ts.map +1 -0
  480. package/dist/wrapper/aiFirewall.js +117 -0
  481. package/dist/wrapper/aiFirewall.js.map +1 -0
  482. package/dist/wrapper/index.d.ts +3 -0
  483. package/dist/wrapper/index.d.ts.map +1 -0
  484. package/dist/wrapper/index.js +21 -0
  485. package/dist/wrapper/index.js.map +1 -0
  486. package/dist/wrapper/sdk.d.ts +49 -0
  487. package/dist/wrapper/sdk.d.ts.map +1 -0
  488. package/dist/wrapper/sdk.js +140 -0
  489. package/dist/wrapper/sdk.js.map +1 -0
  490. package/package.json +84 -0
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ /**
3
+ * ExplainabilityLayer.ts - Trust Through Transparency
4
+ *
5
+ * Every blocked request MUST show:
6
+ * - Why it was blocked
7
+ * - Cost prediction breakdown
8
+ * - Policy rule triggered
9
+ * - Confidence score
10
+ *
11
+ * No black-box decisions allowed.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.explainabilityLayer = exports.ExplainabilityLayer = void 0;
15
+ /**
16
+ * Explainability Layer
17
+ *
18
+ * Generates human-readable explanations for all decisions.
19
+ * Critical for trust and adoption in enterprise settings.
20
+ */
21
+ class ExplainabilityLayer {
22
+ constructor() {
23
+ this.documentationBaseUrl = 'https://docs.ai-execution-control.com';
24
+ }
25
+ /**
26
+ * Generate comprehensive explanation for a decision
27
+ */
28
+ explain(request, executionResult, behaviorAnalysis, costPrediction, budgetAnalysis) {
29
+ const sections = [];
30
+ const recommendations = [];
31
+ // 1. Decision Summary
32
+ sections.push(this.createDecisionSection(request, executionResult));
33
+ // 2. Cost Breakdown
34
+ if (costPrediction && budgetAnalysis) {
35
+ sections.push(this.createCostSection(costPrediction, budgetAnalysis));
36
+ recommendations.push(...costPrediction.recommendations);
37
+ }
38
+ // 3. Policy Rules
39
+ if (executionResult.policyRulesTriggered.length > 0) {
40
+ sections.push(this.createPolicySection(executionResult));
41
+ }
42
+ // 4. Behavior Analysis
43
+ if (behaviorAnalysis) {
44
+ sections.push(this.createBehaviorSection(behaviorAnalysis));
45
+ recommendations.push(...behaviorAnalysis.recommendations);
46
+ }
47
+ // 5. Confidence & Evidence
48
+ sections.push(this.createConfidenceSection(executionResult, behaviorAnalysis));
49
+ // Build summary
50
+ const summary = this.buildSummary(request, executionResult, behaviorAnalysis, costPrediction);
51
+ return {
52
+ summary,
53
+ decision: request.decision,
54
+ confidence: executionResult.confidence,
55
+ sections,
56
+ recommendations: [...new Set(recommendations)], // dedupe
57
+ documentationLinks: this.getDocumentationLinks(executionResult),
58
+ appealProcess: request.decision === 'block' ? {
59
+ available: true,
60
+ reason: 'You can override this block with explicit approval',
61
+ contact: 'support@ai-execution-control.com',
62
+ } : undefined,
63
+ };
64
+ }
65
+ /**
66
+ * Format explanation for CLI output
67
+ */
68
+ formatForCLI(output) {
69
+ const lines = [];
70
+ // Header
71
+ lines.push('');
72
+ lines.push(`🔍 EXECUTION DECISION EXPLANATION`);
73
+ lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
74
+ lines.push('');
75
+ // Decision badge
76
+ const decisionEmoji = output.decision === 'block' ? '🔴' :
77
+ output.decision === 'throttle' ? '🟡' : '🟢';
78
+ const decisionText = output.decision.toUpperCase();
79
+ lines.push(`${decisionEmoji} DECISION: ${decisionText}`);
80
+ lines.push(`Confidence: ${Math.round(output.confidence * 100)}%`);
81
+ lines.push('');
82
+ // Sections
83
+ for (const section of output.sections) {
84
+ lines.push(`${section.icon} ${section.title}`);
85
+ lines.push(section.content);
86
+ if (section.details) {
87
+ for (const detail of section.details) {
88
+ lines.push(` • ${detail}`);
89
+ }
90
+ }
91
+ if (section.data) {
92
+ for (const [key, value] of Object.entries(section.data)) {
93
+ lines.push(` ${key}: ${value}`);
94
+ }
95
+ }
96
+ lines.push('');
97
+ }
98
+ // Recommendations
99
+ if (output.recommendations.length > 0) {
100
+ lines.push('💡 RECOMMENDATIONS');
101
+ for (const rec of output.recommendations) {
102
+ lines.push(` → ${rec}`);
103
+ }
104
+ lines.push('');
105
+ }
106
+ // Documentation
107
+ if (output.documentationLinks.length > 0) {
108
+ lines.push('📚 Learn more:');
109
+ for (const link of output.documentationLinks.slice(0, 3)) {
110
+ lines.push(` ${link}`);
111
+ }
112
+ lines.push('');
113
+ }
114
+ return lines.join('\n');
115
+ }
116
+ /**
117
+ * Format explanation for JSON/API response
118
+ */
119
+ formatForAPI(output) {
120
+ return {
121
+ summary: output.summary,
122
+ decision: output.decision,
123
+ confidence: output.confidence,
124
+ sections: output.sections.map(s => ({
125
+ title: s.title,
126
+ content: s.content,
127
+ details: s.details,
128
+ data: s.data,
129
+ })),
130
+ recommendations: output.recommendations,
131
+ documentation: output.documentationLinks,
132
+ appeal: output.appealProcess,
133
+ };
134
+ }
135
+ /**
136
+ * Format for dashboard/web UI
137
+ */
138
+ formatForDashboard(output) {
139
+ // Return as-is, UI components handle rendering
140
+ return output;
141
+ }
142
+ createDecisionSection(request, result) {
143
+ const decisionDescriptions = {
144
+ allow: 'Request approved for execution',
145
+ throttle: 'Request approved with rate limiting',
146
+ block: 'Request blocked due to policy violations',
147
+ };
148
+ return {
149
+ title: 'Decision Summary',
150
+ icon: '⚖️',
151
+ content: decisionDescriptions[request.decision],
152
+ details: [
153
+ `Request ID: ${request.requestId}`,
154
+ `Provider: ${request.provider}`,
155
+ `Model: ${request.model || 'N/A'}`,
156
+ `Timestamp: ${new Date(request.timestamp).toISOString()}`,
157
+ `Reason: ${result.reason}`,
158
+ ],
159
+ };
160
+ }
161
+ createCostSection(prediction, budget) {
162
+ const usedPercent = Math.round(budget.currentSpend / budget.budgetLimit * 100);
163
+ const predictedPercent = Math.round(prediction.predictedTotal / budget.budgetLimit * 100);
164
+ return {
165
+ title: 'Cost Analysis',
166
+ icon: '💰',
167
+ content: `Budget: $${budget.currentSpend.toFixed(2)} / $${budget.budgetLimit.toFixed(2)} used (${usedPercent}%)`,
168
+ details: [
169
+ `Current spend: $${budget.currentSpend.toFixed(4)}`,
170
+ `Predicted total: $${prediction.predictedTotal.toFixed(4)} (${predictedPercent}% of budget)`,
171
+ `Worst case: $${prediction.worstCase.toFixed(4)}`,
172
+ `Remaining budget: $${budget.remainingBudget.toFixed(4)}`,
173
+ `Will exceed budget: ${budget.willExceed ? 'YES' : 'NO'}`,
174
+ ],
175
+ data: {
176
+ 'Risk Level': prediction.riskLevel.toUpperCase(),
177
+ 'Confidence': `${Math.round(prediction.confidence * 100)}%`,
178
+ 'Burn Rate': `$${budget.burnRate.toFixed(4)}/min`,
179
+ },
180
+ visual: 'progress',
181
+ };
182
+ }
183
+ createPolicySection(result) {
184
+ return {
185
+ title: 'Policy Enforcement',
186
+ icon: '📋',
187
+ content: `${result.policyRulesTriggered.length} policy rule(s) triggered`,
188
+ details: result.policyRulesTriggered.map(rule => `Rule: ${rule}`),
189
+ visual: 'list',
190
+ };
191
+ }
192
+ createBehaviorSection(analysis) {
193
+ const details = [];
194
+ if (analysis.loop.detected) {
195
+ details.push(`⚠️ Loop detected (${analysis.loop.loopType}): ${analysis.loop.confidence > 0.9 ? 'High confidence' : 'Medium confidence'}`);
196
+ }
197
+ if (analysis.redundancy.score > 0.5) {
198
+ details.push(`⚠️ Redundancy score: ${Math.round(analysis.redundancy.score * 100)}%`);
199
+ }
200
+ if (analysis.branching.isRunaway) {
201
+ details.push(`⚠️ Runaway branching detected (depth: ${analysis.branching.maxDepth})`);
202
+ }
203
+ if (analysis.retry.isRetryStorm) {
204
+ details.push(`⚠️ Retry storm detected (${analysis.retry.retryCount} retries)`);
205
+ }
206
+ return {
207
+ title: 'Behavior Analysis',
208
+ icon: '🧠',
209
+ content: `Workflow step ${analysis.totalCost > 0 ? 'with' : 'without'} anomalous patterns`,
210
+ details: details.length > 0 ? details : ['No anomalous patterns detected'],
211
+ data: {
212
+ 'Workflow Steps': analysis.totalRequests || 0,
213
+ 'Loop Detected': analysis.loop.detected ? 'YES' : 'NO',
214
+ 'Redundancy Score': `${Math.round(analysis.redundancy.score * 100)}%`,
215
+ 'Branch Depth': analysis.branching.maxDepth,
216
+ 'Risk Score': `${analysis.riskScore}/100`,
217
+ },
218
+ visual: 'gauge',
219
+ };
220
+ }
221
+ createConfidenceSection(result, behaviorAnalysis) {
222
+ const confidencePercent = Math.round(result.confidence * 100);
223
+ const confidenceLevel = confidencePercent >= 90 ? 'Very High' :
224
+ confidencePercent >= 70 ? 'High' :
225
+ confidencePercent >= 50 ? 'Medium' : 'Low';
226
+ return {
227
+ title: 'Decision Confidence',
228
+ icon: '🎯',
229
+ content: `Confidence level: ${confidenceLevel} (${confidencePercent}%)`,
230
+ details: [
231
+ `Decision algorithm: Multi-factor analysis`,
232
+ `Data sources: Policy engine, Behavior graph, Cost prediction`,
233
+ `Behavioral data: ${behaviorAnalysis ? 'Available' : 'Not applicable'}`,
234
+ ],
235
+ data: {
236
+ 'Confidence': `${confidencePercent}%`,
237
+ 'Latency': `${(result.latencyMs ?? 0).toFixed(2)}ms`,
238
+ 'Data Quality': behaviorAnalysis ? 'High' : 'Medium',
239
+ },
240
+ };
241
+ }
242
+ buildSummary(request, result, behaviorAnalysis, costPrediction) {
243
+ const parts = [];
244
+ if (request.decision === 'block') {
245
+ parts.push('Execution blocked.');
246
+ }
247
+ else if (request.decision === 'throttle') {
248
+ parts.push('Execution allowed with rate limiting.');
249
+ }
250
+ else {
251
+ parts.push('Execution approved.');
252
+ }
253
+ parts.push(`Reason: ${result.reason}`);
254
+ if (behaviorAnalysis?.loop.detected) {
255
+ parts.push('Behavioral anomaly: Loop detected.');
256
+ }
257
+ if (costPrediction?.riskLevel === 'high' || costPrediction?.riskLevel === 'critical') {
258
+ parts.push(`Cost risk: ${costPrediction.riskLevel}.`);
259
+ }
260
+ return parts.join(' ');
261
+ }
262
+ getDocumentationLinks(result) {
263
+ const links = [];
264
+ links.push(`${this.documentationBaseUrl}/decisions/${result.decision}`);
265
+ if (result.policyRulesTriggered.length > 0) {
266
+ links.push(`${this.documentationBaseUrl}/policies/overview`);
267
+ }
268
+ if (result.costPrediction) {
269
+ links.push(`${this.documentationBaseUrl}/cost-prediction`);
270
+ }
271
+ return links;
272
+ }
273
+ }
274
+ exports.ExplainabilityLayer = ExplainabilityLayer;
275
+ // Export singleton
276
+ exports.explainabilityLayer = new ExplainabilityLayer();
277
+ //# sourceMappingURL=ExplainabilityLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplainabilityLayer.js","sourceRoot":"","sources":["../../src/core/ExplainabilityLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * LearningSystem.ts - Behavioral Dataset Moat
3
+ *
4
+ * Stores anonymized execution patterns:
5
+ * - Loops and failure patterns
6
+ * - Cost explosions
7
+ * - Anomalous agent behaviors
8
+ *
9
+ * This is the ONLY long-term defensibility layer.
10
+ * Improves detection accuracy over time without storing raw sensitive data.
11
+ */
12
+ export interface AnonymizedPattern {
13
+ id: string;
14
+ timestamp: number;
15
+ patternType: 'loop' | 'cost_explosion' | 'retry_storm' | 'redundancy' | 'anomaly';
16
+ inputHash: string;
17
+ actionSequenceHash: string;
18
+ actionCount: number;
19
+ durationMs: number;
20
+ totalCost: number;
21
+ depth: number;
22
+ branchFactor: number;
23
+ outcome: 'blocked' | 'throttled' | 'completed' | 'failed';
24
+ preventedCost: number;
25
+ detectionVersion: string;
26
+ confidence: number;
27
+ }
28
+ export interface PatternSignature {
29
+ inputHash: string;
30
+ actionSequenceHash: string;
31
+ patternType: string;
32
+ }
33
+ export interface DetectionImprovement {
34
+ patternType: string;
35
+ version: string;
36
+ totalDetections: number;
37
+ truePositives: number;
38
+ falsePositives: number;
39
+ accuracy: number;
40
+ averageConfidence: number;
41
+ }
42
+ export interface CommunityPattern {
43
+ patternHash: string;
44
+ patternType: string;
45
+ occurrenceCount: number;
46
+ averageCost: number;
47
+ detectionStrategy: string;
48
+ contributedBy: string;
49
+ }
50
+ /**
51
+ * Learning System - Dataset Moat
52
+ *
53
+ * Design principles:
54
+ * 1. NO raw sensitive data stored (only hashes and metrics)
55
+ * 2. Patterns improve detection algorithms
56
+ * 3. Community contributions strengthen the moat
57
+ * 4. Exportable for research/compliance
58
+ */
59
+ export declare class LearningSystem {
60
+ private dataDir;
61
+ private patternsFile;
62
+ private improvementsFile;
63
+ private patterns;
64
+ private maxPatternsPerType;
65
+ private currentVersion;
66
+ constructor();
67
+ private ensureDirectory;
68
+ private loadPatterns;
69
+ private savePatterns;
70
+ /**
71
+ * Record an anonymized pattern
72
+ * No raw sensitive data is stored - only fingerprints and metrics
73
+ */
74
+ recordPattern(params: {
75
+ patternType: AnonymizedPattern['patternType'];
76
+ input: string;
77
+ actionSequence: string[];
78
+ actionCount: number;
79
+ durationMs: number;
80
+ totalCost: number;
81
+ depth: number;
82
+ branchFactor: number;
83
+ outcome: AnonymizedPattern['outcome'];
84
+ preventedCost: number;
85
+ confidence: number;
86
+ }): AnonymizedPattern;
87
+ /**
88
+ * Find similar patterns
89
+ * Used to improve detection confidence
90
+ */
91
+ findSimilarPatterns(input: string, actionSequence: string[], patternType?: string): AnonymizedPattern[];
92
+ /**
93
+ * Get detection improvement metrics
94
+ */
95
+ getImprovements(): DetectionImprovement[];
96
+ /**
97
+ * Get patterns for export (anonymized)
98
+ * Can be shared with community for research
99
+ */
100
+ exportPatterns(patternType?: string, limit?: number): AnonymizedPattern[];
101
+ /**
102
+ * Import community patterns
103
+ * Strengthens the moat with collective knowledge
104
+ */
105
+ importCommunityPatterns(communityPatterns: CommunityPattern[]): number;
106
+ /**
107
+ * Get pattern statistics
108
+ */
109
+ getStats(): {
110
+ totalPatterns: number;
111
+ patternsByType: Record<string, number>;
112
+ totalPreventedCost: number;
113
+ averageAccuracy: number;
114
+ };
115
+ /**
116
+ * Clear all patterns
117
+ */
118
+ clear(): void;
119
+ private findPatternByHash;
120
+ private hashString;
121
+ private generateId;
122
+ }
123
+ export declare const learningSystem: LearningSystem;
124
+ //# sourceMappingURL=LearningSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningSystem.d.ts","sourceRoot":"","sources":["../../src/core/LearningSystem.ts"],"names":[],"mappings":"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"}