@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,205 @@
1
+ "use strict";
2
+ /**
3
+ * AERL - Reliability Scoring Engine
4
+ *
5
+ * Computes probability (0-1) for:
6
+ * - Failure probability
7
+ * - Cost explosion probability
8
+ * - Redundant execution probability
9
+ * - Goal drift probability
10
+ *
11
+ * REQUIREMENTS:
12
+ * - Deterministic (same input = same score)
13
+ * - Explainable (every factor documented)
14
+ * - <1ms execution time
15
+ * - No ML in hot path
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.reliabilityEngine = exports.ReliabilityEngine = void 0;
19
+ class ReliabilityEngine {
20
+ constructor() {
21
+ this.goalHistory = new Map();
22
+ }
23
+ /**
24
+ * Calculate reliability score
25
+ * Returns 0-1 where 1 = highly reliable
26
+ */
27
+ assess(context) {
28
+ const factors = this.calculateFactors(context);
29
+ const composite = this.compositeScore(factors);
30
+ // Update goal history for drift detection
31
+ if (context.goal) {
32
+ this.updateGoalHistory(context.sessionId, context.goal);
33
+ }
34
+ return {
35
+ score: composite,
36
+ factors,
37
+ explanation: this.buildExplanation(factors),
38
+ confidence: this.calculateConfidence(context),
39
+ recommendations: this.buildRecommendations(factors),
40
+ };
41
+ }
42
+ calculateFactors(context) {
43
+ return {
44
+ failureProbability: this.assessFailureProbability(context),
45
+ costExplosionProbability: this.assessCostExplosion(context),
46
+ redundancyProbability: this.assessRedundancy(context),
47
+ goalDriftProbability: this.assessGoalDrift(context),
48
+ composite: 0,
49
+ };
50
+ }
51
+ /**
52
+ * Failure probability based on recent results
53
+ */
54
+ assessFailureProbability(context) {
55
+ const recent = context.recentResults;
56
+ if (recent.length === 0)
57
+ return 0.3; // Unknown = moderate risk
58
+ const failures = recent.filter(r => r === 'failure').length;
59
+ const partials = recent.filter(r => r === 'partial').length;
60
+ const total = recent.length;
61
+ // Weight recent failures more heavily
62
+ const failureRate = failures / total;
63
+ const partialRate = partials / total;
64
+ // Exponential backoff on failure rate
65
+ return Math.min(1, failureRate * 1.5 + partialRate * 0.5 + 0.1);
66
+ }
67
+ /**
68
+ * Cost explosion based on velocity
69
+ */
70
+ assessCostExplosion(context) {
71
+ const velocity = context.costVelocity;
72
+ if (velocity > 100)
73
+ return 0.95; // >$100/min critical
74
+ if (velocity > 50)
75
+ return 0.8; // >$50/min high
76
+ if (velocity > 20)
77
+ return 0.6; // >$20/min medium
78
+ if (velocity > 10)
79
+ return 0.3; // >$10/min elevated
80
+ if (velocity > 5)
81
+ return 0.15; // >$5/min slight
82
+ return 0.05;
83
+ }
84
+ /**
85
+ * Redundancy based on recent patterns
86
+ */
87
+ assessRedundancy(context) {
88
+ // Simple heuristic: if we've made >5 calls and all succeeded,
89
+ // might be repeating similar work
90
+ const successes = context.recentResults.filter(r => r === 'success').length;
91
+ const total = context.recentResults.length;
92
+ if (total < 3)
93
+ return 0.1;
94
+ const successRate = successes / total;
95
+ if (successRate > 0.9 && total > 10)
96
+ return 0.4; // Too many easy wins
97
+ if (successRate > 0.8 && total > 5)
98
+ return 0.25;
99
+ return 0.1;
100
+ }
101
+ /**
102
+ * Goal drift detection
103
+ */
104
+ assessGoalDrift(context) {
105
+ if (!context.goal || !context.previousGoals)
106
+ return 0.2;
107
+ const history = this.goalHistory.get(context.sessionId) || [];
108
+ if (history.length < 3)
109
+ return 0.15;
110
+ // Check if goal is changing frequently
111
+ const recentGoals = history.slice(-5);
112
+ const uniqueGoals = new Set(recentGoals).size;
113
+ const driftRatio = uniqueGoals / recentGoals.length;
114
+ if (driftRatio > 0.8)
115
+ return 0.7; // Constantly changing goals
116
+ if (driftRatio > 0.6)
117
+ return 0.5; // Moderate drift
118
+ if (driftRatio > 0.4)
119
+ return 0.3; // Some drift
120
+ return 0.1;
121
+ }
122
+ compositeScore(factors) {
123
+ // Convert to reliability (1 - risk)
124
+ const failureRisk = factors.failureProbability;
125
+ const costRisk = factors.costExplosionProbability;
126
+ const redundancyRisk = factors.redundancyProbability;
127
+ const driftRisk = factors.goalDriftProbability;
128
+ // Weighted reliability score
129
+ const reliability = (1 - failureRisk) * 0.4 +
130
+ (1 - costRisk) * 0.25 +
131
+ (1 - redundancyRisk) * 0.2 +
132
+ (1 - driftRisk) * 0.15;
133
+ return Math.max(0, Math.min(1, reliability));
134
+ }
135
+ buildExplanation(factors) {
136
+ const reasons = [];
137
+ if (factors.failureProbability > 0.6) {
138
+ reasons.push(`High failure rate: ${(factors.failureProbability * 100).toFixed(0)}%`);
139
+ }
140
+ else if (factors.failureProbability > 0.3) {
141
+ reasons.push(`Elevated failure risk: ${(factors.failureProbability * 100).toFixed(0)}%`);
142
+ }
143
+ if (factors.costExplosionProbability > 0.7) {
144
+ reasons.push(`Cost velocity critical: ${(factors.costExplosionProbability * 100).toFixed(0)}%`);
145
+ }
146
+ else if (factors.costExplosionProbability > 0.4) {
147
+ reasons.push(`High cost velocity detected`);
148
+ }
149
+ if (factors.goalDriftProbability > 0.5) {
150
+ reasons.push(`Goal drift detected: ${(factors.goalDriftProbability * 100).toFixed(0)}%`);
151
+ }
152
+ if (factors.redundancyProbability > 0.3) {
153
+ reasons.push(`Potential redundant execution`);
154
+ }
155
+ if (reasons.length === 0) {
156
+ reasons.push('All reliability factors nominal');
157
+ }
158
+ return reasons;
159
+ }
160
+ calculateConfidence(context) {
161
+ // More history = higher confidence
162
+ const historySize = context.recentResults.length;
163
+ if (historySize > 20)
164
+ return 0.95;
165
+ if (historySize > 10)
166
+ return 0.85;
167
+ if (historySize > 5)
168
+ return 0.75;
169
+ return 0.6;
170
+ }
171
+ buildRecommendations(factors) {
172
+ const recs = [];
173
+ if (factors.failureProbability > 0.5) {
174
+ recs.push('Consider retry with backoff');
175
+ recs.push('Evaluate alternative tools');
176
+ }
177
+ if (factors.costExplosionProbability > 0.6) {
178
+ recs.push('Implement cost circuit breaker');
179
+ recs.push('Switch to cheaper model');
180
+ }
181
+ if (factors.goalDriftProbability > 0.5) {
182
+ recs.push('Refocus on original goal');
183
+ recs.push('Break into smaller sub-goals');
184
+ }
185
+ if (factors.redundancyProbability > 0.3) {
186
+ recs.push('Check for duplicate work');
187
+ recs.push('Cache recent results');
188
+ }
189
+ return recs;
190
+ }
191
+ updateGoalHistory(sessionId, goal) {
192
+ const existing = this.goalHistory.get(sessionId) || [];
193
+ existing.push(goal);
194
+ if (existing.length > 20) {
195
+ existing.shift();
196
+ }
197
+ this.goalHistory.set(sessionId, existing);
198
+ }
199
+ clearSession(sessionId) {
200
+ this.goalHistory.delete(sessionId);
201
+ }
202
+ }
203
+ exports.ReliabilityEngine = ReliabilityEngine;
204
+ exports.reliabilityEngine = new ReliabilityEngine();
205
+ //# sourceMappingURL=ReliabilityEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReliabilityEngine.js","sourceRoot":"","sources":["../../src/aerl/ReliabilityEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * AERL - ROI + Reliability Telemetry
3
+ *
4
+ * Measures measurable outcomes for enterprise adoption:
5
+ * - Estimated cost saved
6
+ * - Failures prevented
7
+ * - Reliability improvement score
8
+ * - Execution success probability delta
9
+ *
10
+ * OUTPUT:
11
+ * - Dashboard-ready metrics
12
+ * - CSV export for billing
13
+ * - 7-day reliability report
14
+ * - Per-workflow success tracking
15
+ */
16
+ export interface DecisionTelemetry {
17
+ timestamp: number;
18
+ sessionId: string;
19
+ workflowId: string;
20
+ requestId: string;
21
+ decision: 'allow' | 'block' | 'modify';
22
+ riskScore: number;
23
+ reliabilityScore: number;
24
+ estimatedCost: number;
25
+ actualCost?: number;
26
+ predictedFailure?: boolean;
27
+ actualFailure?: boolean;
28
+ actionTaken?: string;
29
+ success?: boolean;
30
+ latencyMs: number;
31
+ }
32
+ export interface ReliabilityMetrics {
33
+ totalExecutions: number;
34
+ successfulExecutions: number;
35
+ failedExecutions: number;
36
+ blockedExecutions: number;
37
+ modifiedExecutions: number;
38
+ estimatedCostSaved: number;
39
+ actualSpend: number;
40
+ netSavings: number;
41
+ failuresPrevented: number;
42
+ falsePositives: number;
43
+ predictionAccuracy: number;
44
+ reliabilityImprovement: number;
45
+ avgDecisionLatencyMs: number;
46
+ p95DecisionLatencyMs: number;
47
+ }
48
+ export interface WorkflowReport {
49
+ workflowId: string;
50
+ totalExecutions: number;
51
+ successRate: number;
52
+ avgCost: number;
53
+ avgDurationMs: number;
54
+ reliabilityScore: number;
55
+ improvementOverTime: number[];
56
+ }
57
+ export declare class ReliabilityTelemetry {
58
+ private telemetry;
59
+ private maxEntries;
60
+ private falsePositiveLog;
61
+ constructor(maxEntries?: number);
62
+ /**
63
+ * Log a decision
64
+ */
65
+ log(entry: DecisionTelemetry): void;
66
+ /**
67
+ * Mark a blocked decision as false positive
68
+ * (Would have succeeded if allowed)
69
+ */
70
+ markFalsePositive(requestId: string, actualCost: number): void;
71
+ /**
72
+ * Record actual execution result
73
+ */
74
+ recordResult(requestId: string, actualCost: number, success: boolean): void;
75
+ /**
76
+ * Get overall reliability metrics
77
+ */
78
+ getMetrics(): ReliabilityMetrics;
79
+ /**
80
+ * Get 7-day reliability report
81
+ */
82
+ get7DayReport(): {
83
+ metrics: ReliabilityMetrics;
84
+ daily: Array<{
85
+ date: string;
86
+ executions: number;
87
+ successRate: number;
88
+ costSaved: number;
89
+ reliabilityScore: number;
90
+ }>;
91
+ };
92
+ /**
93
+ * Get per-workflow report
94
+ */
95
+ getWorkflowReport(workflowId: string): WorkflowReport | undefined;
96
+ /**
97
+ * Export CSV for billing dashboards
98
+ */
99
+ exportCSV(): string;
100
+ /**
101
+ * Get dashboard summary
102
+ */
103
+ getDashboardSummary(): {
104
+ executionsToday: number;
105
+ successRateToday: number;
106
+ costSavedToday: number;
107
+ totalCostSaved: number;
108
+ reliability7Day: number;
109
+ predictionAccuracy: number;
110
+ };
111
+ private calculateP95;
112
+ /**
113
+ * Reset
114
+ */
115
+ reset(): void;
116
+ }
117
+ export declare const reliabilityTelemetry: ReliabilityTelemetry;
118
+ //# sourceMappingURL=ReliabilityTelemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReliabilityTelemetry.d.ts","sourceRoot":"","sources":["../../src/aerl/ReliabilityTelemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ /**
3
+ * AERL - ROI + Reliability Telemetry
4
+ *
5
+ * Measures measurable outcomes for enterprise adoption:
6
+ * - Estimated cost saved
7
+ * - Failures prevented
8
+ * - Reliability improvement score
9
+ * - Execution success probability delta
10
+ *
11
+ * OUTPUT:
12
+ * - Dashboard-ready metrics
13
+ * - CSV export for billing
14
+ * - 7-day reliability report
15
+ * - Per-workflow success tracking
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.reliabilityTelemetry = exports.ReliabilityTelemetry = void 0;
19
+ class ReliabilityTelemetry {
20
+ constructor(maxEntries = 100000) {
21
+ this.telemetry = [];
22
+ this.maxEntries = maxEntries;
23
+ this.falsePositiveLog = new Set();
24
+ }
25
+ /**
26
+ * Log a decision
27
+ */
28
+ log(entry) {
29
+ this.telemetry.push(entry);
30
+ if (this.telemetry.length > this.maxEntries) {
31
+ this.telemetry.shift();
32
+ }
33
+ }
34
+ /**
35
+ * Mark a blocked decision as false positive
36
+ * (Would have succeeded if allowed)
37
+ */
38
+ markFalsePositive(requestId, actualCost) {
39
+ this.falsePositiveLog.add(requestId);
40
+ const entry = this.telemetry.find(t => t.requestId === requestId);
41
+ if (entry) {
42
+ entry.actualCost = actualCost;
43
+ entry.success = true; // Would have succeeded
44
+ }
45
+ }
46
+ /**
47
+ * Record actual execution result
48
+ */
49
+ recordResult(requestId, actualCost, success) {
50
+ const entry = this.telemetry.find(t => t.requestId === requestId);
51
+ if (entry) {
52
+ entry.actualCost = actualCost;
53
+ entry.success = success;
54
+ entry.actualFailure = !success;
55
+ }
56
+ }
57
+ /**
58
+ * Get overall reliability metrics
59
+ */
60
+ getMetrics() {
61
+ const total = this.telemetry.length;
62
+ const allowed = this.telemetry.filter(t => t.decision === 'allow');
63
+ const blocked = this.telemetry.filter(t => t.decision === 'block');
64
+ const modified = this.telemetry.filter(t => t.decision === 'modify');
65
+ const succeeded = this.telemetry.filter(t => t.success === true);
66
+ const failed = this.telemetry.filter(t => t.success === false);
67
+ // Cost calculations
68
+ const estimatedSaved = blocked.reduce((sum, t) => sum + t.estimatedCost, 0);
69
+ const actualSpend = allowed
70
+ .filter(t => t.actualCost !== undefined)
71
+ .reduce((sum, t) => sum + (t.actualCost || 0), 0);
72
+ // False positives = blocked but would have succeeded
73
+ const falsePositives = blocked.filter(t => this.falsePositiveLog.has(t.requestId)).length;
74
+ // Prediction accuracy
75
+ const predictions = this.telemetry.filter(t => t.predictedFailure !== undefined);
76
+ const correctPredictions = predictions.filter(t => t.predictedFailure === t.actualFailure).length;
77
+ const predictionAccuracy = predictions.length > 0
78
+ ? correctPredictions / predictions.length
79
+ : 0;
80
+ // Reliability improvement
81
+ const baselineSuccessRate = 0.7; // Assume 70% without AERL
82
+ const actualSuccessRate = total > 0 ? succeeded.length / total : 0;
83
+ const improvement = actualSuccessRate - baselineSuccessRate;
84
+ // Latency
85
+ const latencies = this.telemetry.map(t => t.latencyMs);
86
+ const avgLatency = latencies.length > 0
87
+ ? latencies.reduce((a, b) => a + b, 0) / latencies.length
88
+ : 0;
89
+ const p95Latency = this.calculateP95(latencies);
90
+ return {
91
+ totalExecutions: total,
92
+ successfulExecutions: succeeded.length,
93
+ failedExecutions: failed.length,
94
+ blockedExecutions: blocked.length,
95
+ modifiedExecutions: modified.length,
96
+ estimatedCostSaved: estimatedSaved,
97
+ actualSpend,
98
+ netSavings: estimatedSaved - actualSpend,
99
+ failuresPrevented: blocked.filter(t => t.predictedFailure && !this.falsePositiveLog.has(t.requestId)).length,
100
+ falsePositives,
101
+ predictionAccuracy,
102
+ reliabilityImprovement: improvement,
103
+ avgDecisionLatencyMs: avgLatency,
104
+ p95DecisionLatencyMs: p95Latency,
105
+ };
106
+ }
107
+ /**
108
+ * Get 7-day reliability report
109
+ */
110
+ get7DayReport() {
111
+ const now = Date.now();
112
+ const sevenDaysAgo = now - (7 * 24 * 60 * 60 * 1000);
113
+ const recent = this.telemetry.filter(t => t.timestamp >= sevenDaysAgo);
114
+ // Group by day
115
+ const dailyMap = new Map();
116
+ for (const entry of recent) {
117
+ const date = new Date(entry.timestamp).toISOString().split('T')[0];
118
+ const existing = dailyMap.get(date) || [];
119
+ existing.push(entry);
120
+ dailyMap.set(date, existing);
121
+ }
122
+ // Build daily reports
123
+ const daily = [];
124
+ for (const [date, entries] of dailyMap) {
125
+ const succeeded = entries.filter(e => e.success).length;
126
+ const saved = entries
127
+ .filter(e => e.decision === 'block')
128
+ .reduce((sum, e) => sum + e.estimatedCost, 0);
129
+ daily.push({
130
+ date,
131
+ executions: entries.length,
132
+ successRate: entries.length > 0 ? succeeded / entries.length : 0,
133
+ costSaved: saved,
134
+ reliabilityScore: entries.length > 0
135
+ ? entries.reduce((sum, e) => sum + e.reliabilityScore, 0) / entries.length
136
+ : 0,
137
+ });
138
+ }
139
+ daily.sort((a, b) => a.date.localeCompare(b.date));
140
+ // Calculate metrics for the period
141
+ const total = recent.length;
142
+ const succeeded = recent.filter(t => t.success).length;
143
+ const blocked = recent.filter(t => t.decision === 'block');
144
+ const estimatedSaved = blocked.reduce((sum, t) => sum + t.estimatedCost, 0);
145
+ const actualSpend = recent
146
+ .filter(t => t.decision === 'allow' && t.actualCost !== undefined)
147
+ .reduce((sum, t) => sum + (t.actualCost || 0), 0);
148
+ const metrics = {
149
+ totalExecutions: total,
150
+ successfulExecutions: succeeded,
151
+ failedExecutions: recent.filter(t => t.success === false).length,
152
+ blockedExecutions: blocked.length,
153
+ modifiedExecutions: recent.filter(t => t.decision === 'modify').length,
154
+ estimatedCostSaved: estimatedSaved,
155
+ actualSpend,
156
+ netSavings: estimatedSaved - actualSpend,
157
+ failuresPrevented: blocked.filter(t => t.predictedFailure && !this.falsePositiveLog.has(t.requestId)).length,
158
+ falsePositives: blocked.filter(t => this.falsePositiveLog.has(t.requestId)).length,
159
+ predictionAccuracy: 0, // Would need full tracking
160
+ reliabilityImprovement: 0,
161
+ avgDecisionLatencyMs: recent.length > 0
162
+ ? recent.reduce((sum, t) => sum + t.latencyMs, 0) / recent.length
163
+ : 0,
164
+ p95DecisionLatencyMs: this.calculateP95(recent.map(t => t.latencyMs)),
165
+ };
166
+ return { metrics, daily };
167
+ }
168
+ /**
169
+ * Get per-workflow report
170
+ */
171
+ getWorkflowReport(workflowId) {
172
+ const entries = this.telemetry.filter(t => t.workflowId === workflowId);
173
+ if (entries.length === 0)
174
+ return undefined;
175
+ const total = entries.length;
176
+ const succeeded = entries.filter(t => t.success).length;
177
+ const costs = entries
178
+ .filter(t => t.actualCost !== undefined)
179
+ .map(t => t.actualCost || 0);
180
+ // Calculate trend (reliability by day)
181
+ const dailyMap = new Map();
182
+ for (const entry of entries) {
183
+ const date = new Date(entry.timestamp).toISOString().split('T')[0];
184
+ const existing = dailyMap.get(date) || [];
185
+ existing.push(entry.reliabilityScore);
186
+ dailyMap.set(date, existing);
187
+ }
188
+ const trend = Array.from(dailyMap.values())
189
+ .map(scores => scores.reduce((a, b) => a + b, 0) / scores.length);
190
+ return {
191
+ workflowId,
192
+ totalExecutions: total,
193
+ successRate: succeeded / total,
194
+ avgCost: costs.length > 0 ? costs.reduce((a, b) => a + b, 0) / costs.length : 0,
195
+ avgDurationMs: 0, // Would need duration tracking
196
+ reliabilityScore: entries.reduce((sum, t) => sum + t.reliabilityScore, 0) / total,
197
+ improvementOverTime: trend,
198
+ };
199
+ }
200
+ /**
201
+ * Export CSV for billing dashboards
202
+ */
203
+ exportCSV() {
204
+ const header = 'timestamp,sessionId,workflowId,requestId,decision,riskScore,reliabilityScore,estimatedCost,actualCost,predictedFailure,actualFailure,success,latencyMs\n';
205
+ const rows = this.telemetry.map(t => `${new Date(t.timestamp).toISOString()},${t.sessionId},${t.workflowId},${t.requestId},${t.decision},${t.riskScore.toFixed(3)},${t.reliabilityScore.toFixed(3)},${t.estimatedCost.toFixed(4)},${t.actualCost?.toFixed(4) || ''},${t.predictedFailure || ''},${t.actualFailure || ''},${t.success ?? ''},${t.latencyMs.toFixed(2)}`).join('\n');
206
+ return header + rows;
207
+ }
208
+ /**
209
+ * Get dashboard summary
210
+ */
211
+ getDashboardSummary() {
212
+ const today = new Date().toISOString().split('T')[0];
213
+ const todayEntries = this.telemetry.filter(t => new Date(t.timestamp).toISOString().startsWith(today));
214
+ const succeeded = todayEntries.filter(t => t.success).length;
215
+ const saved = todayEntries
216
+ .filter(t => t.decision === 'block')
217
+ .reduce((sum, t) => sum + t.estimatedCost, 0);
218
+ const allMetrics = this.getMetrics();
219
+ const report7Day = this.get7DayReport();
220
+ return {
221
+ executionsToday: todayEntries.length,
222
+ successRateToday: todayEntries.length > 0 ? succeeded / todayEntries.length : 0,
223
+ costSavedToday: saved,
224
+ totalCostSaved: allMetrics.netSavings,
225
+ reliability7Day: report7Day.daily.length > 0
226
+ ? report7Day.daily.reduce((sum, d) => sum + d.reliabilityScore, 0) / report7Day.daily.length
227
+ : 0,
228
+ predictionAccuracy: allMetrics.predictionAccuracy,
229
+ };
230
+ }
231
+ calculateP95(values) {
232
+ if (values.length === 0)
233
+ return 0;
234
+ const sorted = [...values].sort((a, b) => a - b);
235
+ return sorted[Math.floor(sorted.length * 0.95)];
236
+ }
237
+ /**
238
+ * Reset
239
+ */
240
+ reset() {
241
+ this.telemetry = [];
242
+ this.falsePositiveLog.clear();
243
+ }
244
+ }
245
+ exports.ReliabilityTelemetry = ReliabilityTelemetry;
246
+ exports.reliabilityTelemetry = new ReliabilityTelemetry();
247
+ //# sourceMappingURL=ReliabilityTelemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReliabilityTelemetry.js","sourceRoot":"","sources":["../../src/aerl/ReliabilityTelemetry.ts"],"names":[],"mappings":"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"}