@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,143 @@
1
+ "use strict";
2
+ /**
3
+ * CLI Persistent Storage Module
4
+ * Ensures state persists across separate CLI executions
5
+ * Uses ~/.aifw/history.jsonl for append-only storage
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.loadRequestHistory = loadRequestHistory;
42
+ exports.getRecentRequestsByHash = getRecentRequestsByHash;
43
+ exports.getRecentRequests = getRecentRequests;
44
+ exports.appendRequest = appendRequest;
45
+ exports.getCLIStats = getCLIStats;
46
+ exports.getBlockedRequests = getBlockedRequests;
47
+ exports.clearHistory = clearHistory;
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const os = __importStar(require("os"));
51
+ const AIFW_DIR = path.join(os.homedir(), '.aifw');
52
+ const HISTORY_FILE = path.join(AIFW_DIR, 'history.jsonl');
53
+ /**
54
+ * Ensure storage directory exists
55
+ */
56
+ function ensureStorage() {
57
+ if (!fs.existsSync(AIFW_DIR)) {
58
+ fs.mkdirSync(AIFW_DIR, { recursive: true });
59
+ }
60
+ }
61
+ /**
62
+ * Load all request history from file
63
+ */
64
+ function loadRequestHistory() {
65
+ ensureStorage();
66
+ if (!fs.existsSync(HISTORY_FILE)) {
67
+ return [];
68
+ }
69
+ const records = [];
70
+ const lines = fs.readFileSync(HISTORY_FILE, 'utf-8').split('\n');
71
+ for (const line of lines) {
72
+ if (!line.trim())
73
+ continue;
74
+ try {
75
+ const record = JSON.parse(line);
76
+ records.push(record);
77
+ }
78
+ catch {
79
+ // Skip invalid lines
80
+ }
81
+ }
82
+ return records;
83
+ }
84
+ /**
85
+ * Get recent requests by hash (for duplicate detection)
86
+ */
87
+ function getRecentRequestsByHash(hash, windowMs = 30000) {
88
+ const now = Date.now();
89
+ const allRecords = loadRequestHistory();
90
+ return allRecords.filter(r => r.promptHash === hash &&
91
+ (now - r.timestamp) < windowMs);
92
+ }
93
+ /**
94
+ * Get all recent requests (for fuzzy detection)
95
+ */
96
+ function getRecentRequests(windowMs = 3600000) {
97
+ const now = Date.now();
98
+ const allRecords = loadRequestHistory();
99
+ return allRecords.filter(r => (now - r.timestamp) < windowMs);
100
+ }
101
+ /**
102
+ * Append a request to persistent storage
103
+ */
104
+ function appendRequest(record) {
105
+ ensureStorage();
106
+ const line = JSON.stringify(record) + '\n';
107
+ fs.appendFileSync(HISTORY_FILE, line);
108
+ }
109
+ /**
110
+ * Get CLI statistics
111
+ */
112
+ function getCLIStats(hours = 24) {
113
+ const windowMs = hours * 3600000;
114
+ const now = Date.now();
115
+ const records = loadRequestHistory().filter(r => (now - r.timestamp) < windowMs);
116
+ return {
117
+ totalRequests: records.length,
118
+ blockedRequests: records.filter(r => r.wasBlocked).length,
119
+ warnedRequests: records.filter(r => r.wasWarned && !r.wasBlocked).length,
120
+ totalCost: records.reduce((sum, r) => sum + r.estimatedCost, 0),
121
+ preventedCost: records.filter(r => r.wasBlocked).reduce((sum, r) => sum + r.estimatedCost, 0),
122
+ };
123
+ }
124
+ /**
125
+ * Get blocked requests for display
126
+ */
127
+ function getBlockedRequests(limit = 10) {
128
+ const windowMs = 24 * 3600000; // 24 hours
129
+ const now = Date.now();
130
+ return loadRequestHistory()
131
+ .filter(r => r.wasBlocked && (now - r.timestamp) < windowMs)
132
+ .sort((a, b) => b.timestamp - a.timestamp)
133
+ .slice(0, limit);
134
+ }
135
+ /**
136
+ * Clear all history (for testing)
137
+ */
138
+ function clearHistory() {
139
+ if (fs.existsSync(HISTORY_FILE)) {
140
+ fs.unlinkSync(HISTORY_FILE);
141
+ }
142
+ }
143
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/cli/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { ExecutionGuard } from './firewall/executionGuard';
2
+ import { estimateCost } from './firewall/costEstimator';
3
+ import { GuardPolicy, GuardRequest } from './firewall/types';
4
+ import { withFirewall } from './middleware/withFirewall';
5
+ import { MetricsExporter } from './observability/metrics';
6
+ import { UsageLimitConfig } from './saas/usageMeter';
7
+ /**
8
+ * This is not a framework.
9
+ * It is a pre-execution cost + safety enforcement layer for AI systems.
10
+ */
11
+ export interface ClientConfig {
12
+ apiKey: string;
13
+ policy?: Partial<GuardPolicy>;
14
+ usageLimits?: Partial<UsageLimitConfig>;
15
+ auditLogPath?: string;
16
+ }
17
+ export interface FirewallClient {
18
+ guard: ExecutionGuard;
19
+ estimateCost: typeof estimateCost;
20
+ withFirewall: typeof withFirewall;
21
+ evaluate: (request: GuardRequest) => ReturnType<ExecutionGuard['evaluate']>;
22
+ explainDecision: (request: GuardRequest) => ReturnType<ExecutionGuard['explainDecision']>;
23
+ metrics: () => ReturnType<MetricsExporter['toJson']>;
24
+ metricsPrometheus: () => string;
25
+ dashboardJson: () => string;
26
+ }
27
+ export declare function createClient(config: ClientConfig): FirewallClient;
28
+ export declare function initFirewall(config: ClientConfig): FirewallClient;
29
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D,OAAO,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1F,OAAO,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CA6CjE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAEjE"}
package/dist/client.js ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createClient = createClient;
4
+ exports.initFirewall = initFirewall;
5
+ const crypto_1 = require("crypto");
6
+ const executionGuard_1 = require("./firewall/executionGuard");
7
+ const costEstimator_1 = require("./firewall/costEstimator");
8
+ const withFirewall_1 = require("./middleware/withFirewall");
9
+ const metrics_1 = require("./observability/metrics");
10
+ const logger_1 = require("./observability/logger");
11
+ const billingMetrics_1 = require("./saas/billingMetrics");
12
+ const telemetry_1 = require("./saas/telemetry");
13
+ const usageMeter_1 = require("./saas/usageMeter");
14
+ function createClient(config) {
15
+ const guard = new executionGuard_1.ExecutionGuard(config.policy);
16
+ const telemetry = new telemetry_1.TelemetryStore();
17
+ const usage = new usageMeter_1.UsageMeter(config.usageLimits);
18
+ const billing = new billingMetrics_1.BillingMetrics();
19
+ const metrics = new metrics_1.MetricsExporter(telemetry);
20
+ const logger = new logger_1.AuditLogger(config.auditLogPath);
21
+ const evaluate = request => {
22
+ const requestId = String(request.metadata?.requestId ?? (0, crypto_1.randomUUID)());
23
+ const result = guard.evaluate(request);
24
+ telemetry.capture({
25
+ apiKey: config.apiKey,
26
+ requestId,
27
+ decision: result.decision,
28
+ estimatedCostUsd: result.estimatedCostUsd,
29
+ costAvoidedUsd: result.costAvoidedUsd,
30
+ latencyMs: result.latencyMs,
31
+ at: Date.now(),
32
+ });
33
+ usage.track(config.apiKey, result.estimatedCostUsd);
34
+ logger.log({
35
+ timestamp: new Date().toISOString(),
36
+ requestId,
37
+ decision: result.decision,
38
+ estimatedCostUsd: result.estimatedCostUsd,
39
+ latencyMs: result.latencyMs,
40
+ reason: result.reason,
41
+ });
42
+ return result;
43
+ };
44
+ return {
45
+ guard,
46
+ estimateCost: costEstimator_1.estimateCost,
47
+ withFirewall: withFirewall_1.withFirewall,
48
+ evaluate,
49
+ explainDecision: request => guard.explainDecision(evaluate(request)),
50
+ metrics: () => metrics.toJson(),
51
+ metricsPrometheus: () => metrics.metricsHandler(),
52
+ dashboardJson: () => billing.exportDashboardJson(billing.compute(config.apiKey, telemetry, usage.getSnapshot(config.apiKey))),
53
+ };
54
+ }
55
+ function initFirewall(config) {
56
+ return createClient(config);
57
+ }
58
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAiCA,oCA6CC;AAED,oCAEC;AAlFD,mCAAoC;AACpC,8DAA2D;AAC3D,4DAAwD;AAExD,4DAAyD;AACzD,qDAA0D;AAC1D,mDAAqD;AACrD,0DAAuD;AACvD,gDAAkD;AAClD,kDAAiE;AAwBjE,SAAgB,YAAY,CAAC,MAAoB;IAC/C,MAAM,KAAK,GAAG,IAAI,+BAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,0BAAc,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,uBAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,+BAAc,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,yBAAe,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAA+B,OAAO,CAAC,EAAE;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAA,mBAAU,GAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,SAAS,CAAC,OAAO,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,YAAY,EAAZ,4BAAY;QACZ,YAAY,EAAZ,2BAAY;QACZ,QAAQ;QACR,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE;QAC/B,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE;QACjD,aAAa,EAAE,GAAG,EAAE,CAClB,OAAO,CAAC,mBAAmB,CACzB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAC5E;KACJ,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,MAAoB;IAC/C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * CENTRALIZED CONSTANTS
3
+ * All detection thresholds, time windows, and configuration values
4
+ * Single source of truth for tunable parameters
5
+ */
6
+ export declare const DETECTION_THRESHOLDS: {
7
+ readonly KILL_SWITCH: 90;
8
+ readonly LOOP_COUNT: 3;
9
+ readonly LOOP_WINDOW_MS: 30000;
10
+ readonly DUPLICATE_WINDOW_MS: 3600000;
11
+ readonly COST_SPIKE_DOLLARS: 0.05;
12
+ readonly COST_SPIKE_BASE_SCORE: 30;
13
+ readonly COST_SPIKE_MULTIPLIER: 50;
14
+ readonly CONTEXT_RATIO: 5;
15
+ readonly CONTEXT_EXPLOSION_BASE_SCORE: 25;
16
+ readonly CONTEXT_EXPLOSION_MULTIPLIER: 15;
17
+ readonly CONTEXT_EXPLOSION_MAX_SCORE: 75;
18
+ readonly FUZZY_SIMILARITY: 0.7;
19
+ readonly FUZZY_DUPLICATE_BASE_SCORE: 30;
20
+ readonly FUZZY_DUPLICATE_MULTIPLIER: 40;
21
+ readonly FUZZY_DUPLICATE_MAX_SCORE: 70;
22
+ readonly DUPLICATE_BASE_SCORE: 40;
23
+ readonly DUPLICATE_MULTIPLIER: 10;
24
+ readonly DUPLICATE_MAX_SCORE: 90;
25
+ readonly LOOP_BASE_SCORE: 90;
26
+ readonly LOOP_MULTIPLIER: 3;
27
+ readonly LOOP_MAX_SCORE: 100;
28
+ readonly MAX_DANGER_SCORE: 100;
29
+ };
30
+ export declare const TIME_WINDOWS: {
31
+ readonly LOOP: number;
32
+ readonly DUPLICATE: number;
33
+ readonly STATS_DEFAULT_HOURS: 24;
34
+ readonly LOG_RETENTION_DAYS: 30;
35
+ readonly STATE_CACHE_HOURS: 24;
36
+ };
37
+ export declare const RATE_LIMITS: {
38
+ readonly REQUESTS_PER_MINUTE: 60;
39
+ readonly RETRY_AFTER_SECONDS: 60;
40
+ readonly WINDOW_MS: 60000;
41
+ };
42
+ export declare const PROXY_CONFIG: {
43
+ readonly DEFAULT_PORT: 3000;
44
+ readonly MAX_BODY_SIZE: "10mb";
45
+ readonly MAX_RETRIES: 3;
46
+ readonly RETRY_DELAY_MS: 1000;
47
+ readonly BACKOFF_MULTIPLIER: 2;
48
+ };
49
+ export declare const COST_CALCULATION: {
50
+ readonly TOKENS_PER_UNIT: 1000;
51
+ readonly DEFAULT_OUTPUT_TOKENS: 1000;
52
+ readonly MINIMUM_COST: 0;
53
+ };
54
+ export { TrustMode } from './userConfig';
55
+ export declare const TRUST_MODES: {
56
+ readonly MONITOR: "monitor";
57
+ readonly WARN: "warn";
58
+ readonly BLOCK: "block";
59
+ };
60
+ export declare const ALERT_CATEGORIES: {
61
+ readonly LOOP: "loop";
62
+ readonly DUPLICATE: "duplicate";
63
+ readonly FUZZY_DUPLICATE: "fuzzy_duplicate";
64
+ readonly CONTEXT_EXPLOSION: "context";
65
+ readonly COST_SPIKE: "spike";
66
+ readonly SAFE: "safe";
67
+ readonly INVALID: "invalid";
68
+ readonly ANOMALY: "anomaly";
69
+ };
70
+ export type AlertCategory = typeof ALERT_CATEGORIES[keyof typeof ALERT_CATEGORIES];
71
+ export declare const DECISIONS: {
72
+ readonly ALLOW: "allow";
73
+ readonly WARN: "warn";
74
+ readonly BLOCK: "block";
75
+ };
76
+ export type Decision = typeof DECISIONS[keyof typeof DECISIONS];
77
+ export declare const SEVERITY: {
78
+ readonly SAFE: "SAFE";
79
+ readonly LOW: "LOW";
80
+ readonly MEDIUM: "MEDIUM";
81
+ readonly HIGH: "HIGH";
82
+ readonly CRITICAL: "CRITICAL";
83
+ };
84
+ export type Severity = typeof SEVERITY[keyof typeof SEVERITY];
85
+ export declare const PATHS: {
86
+ readonly APP_DIR: ".aifw";
87
+ readonly CONFIG_FILE: "config.json";
88
+ readonly HISTORY_FILE: "history.jsonl";
89
+ readonly LOG_FILE: "logs.jsonl";
90
+ };
91
+ export declare const HTTP_STATUS: {
92
+ readonly OK: 200;
93
+ readonly CREATED: 201;
94
+ readonly BAD_REQUEST: 400;
95
+ readonly UNAUTHORIZED: 401;
96
+ readonly FORBIDDEN: 403;
97
+ readonly NOT_FOUND: 404;
98
+ readonly TOO_MANY_REQUESTS: 429;
99
+ readonly INTERNAL_SERVER_ERROR: 500;
100
+ readonly BAD_GATEWAY: 502;
101
+ readonly SERVICE_UNAVAILABLE: 503;
102
+ readonly GATEWAY_TIMEOUT: 504;
103
+ };
104
+ export declare const SIMILARITY: {
105
+ readonly MAX_LENGTH: 500;
106
+ readonly EXACT: 1;
107
+ readonly MINIMUM: 0;
108
+ };
109
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;CAwCvB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;;CAef,CAAC;AAGX,eAAO,MAAM,WAAW;;;;CASd,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;;CAef,CAAC;AAGX,eAAO,MAAM,gBAAgB;;;;CASnB,CAAC;AAGX,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAGX,eAAO,MAAM,gBAAgB;;;;;;;;;CASnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAGnF,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAGhE,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAG9D,eAAO,MAAM,KAAK;;;;;CAYR,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;;;;CAYd,CAAC;AAGX,eAAO,MAAM,UAAU;;;;CASb,CAAC"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ /**
3
+ * CENTRALIZED CONSTANTS
4
+ * All detection thresholds, time windows, and configuration values
5
+ * Single source of truth for tunable parameters
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.SIMILARITY = exports.HTTP_STATUS = exports.PATHS = exports.SEVERITY = exports.DECISIONS = exports.ALERT_CATEGORIES = exports.TRUST_MODES = exports.COST_CALCULATION = exports.PROXY_CONFIG = exports.RATE_LIMITS = exports.TIME_WINDOWS = exports.DETECTION_THRESHOLDS = void 0;
9
+ // Detection Engine Thresholds
10
+ exports.DETECTION_THRESHOLDS = {
11
+ // Kill switch activates at this danger score
12
+ KILL_SWITCH: 90,
13
+ // Loop detection: 3+ identical requests in 30 seconds
14
+ LOOP_COUNT: 3,
15
+ LOOP_WINDOW_MS: 30000, // 30 seconds
16
+ // Duplicate detection: 1+ identical requests in 1 hour
17
+ DUPLICATE_WINDOW_MS: 3600000, // 1 hour
18
+ // Cost spike: $0.05+ per request
19
+ COST_SPIKE_DOLLARS: 0.05,
20
+ COST_SPIKE_BASE_SCORE: 30,
21
+ COST_SPIKE_MULTIPLIER: 50,
22
+ // Context explosion: context 5x+ larger than prompt
23
+ CONTEXT_RATIO: 5,
24
+ CONTEXT_EXPLOSION_BASE_SCORE: 25,
25
+ CONTEXT_EXPLOSION_MULTIPLIER: 15,
26
+ CONTEXT_EXPLOSION_MAX_SCORE: 75,
27
+ // Fuzzy duplicate: 70%+ similarity
28
+ FUZZY_SIMILARITY: 0.70,
29
+ FUZZY_DUPLICATE_BASE_SCORE: 30,
30
+ FUZZY_DUPLICATE_MULTIPLIER: 40,
31
+ FUZZY_DUPLICATE_MAX_SCORE: 70,
32
+ // Duplicate danger escalation
33
+ DUPLICATE_BASE_SCORE: 40,
34
+ DUPLICATE_MULTIPLIER: 10,
35
+ DUPLICATE_MAX_SCORE: 90,
36
+ // Loop danger escalation
37
+ LOOP_BASE_SCORE: 90,
38
+ LOOP_MULTIPLIER: 3,
39
+ LOOP_MAX_SCORE: 100,
40
+ // Absolute maximum danger score
41
+ MAX_DANGER_SCORE: 100,
42
+ };
43
+ // Time Windows for Analysis
44
+ exports.TIME_WINDOWS = {
45
+ // Recent history for loop detection
46
+ LOOP: 30 * 1000, // 30 seconds
47
+ // Recent history for duplicate detection
48
+ DUPLICATE: 60 * 60 * 1000, // 1 hour
49
+ // Default stats window
50
+ STATS_DEFAULT_HOURS: 24,
51
+ // Log retention
52
+ LOG_RETENTION_DAYS: 30,
53
+ // State cache expiration
54
+ STATE_CACHE_HOURS: 24,
55
+ };
56
+ // Rate Limiting
57
+ exports.RATE_LIMITS = {
58
+ // Default requests per minute per IP
59
+ REQUESTS_PER_MINUTE: 60,
60
+ // Retry-After header value (seconds)
61
+ RETRY_AFTER_SECONDS: 60,
62
+ // Rate limit window (ms)
63
+ WINDOW_MS: 60000, // 1 minute
64
+ };
65
+ // Proxy Configuration
66
+ exports.PROXY_CONFIG = {
67
+ // Default port
68
+ DEFAULT_PORT: 3000,
69
+ // Maximum request body size
70
+ MAX_BODY_SIZE: '10mb',
71
+ // Number of retries for failed requests
72
+ MAX_RETRIES: 3,
73
+ // Retry delay (ms)
74
+ RETRY_DELAY_MS: 1000,
75
+ // Exponential backoff multiplier
76
+ BACKOFF_MULTIPLIER: 2,
77
+ };
78
+ // Cost Calculation
79
+ exports.COST_CALCULATION = {
80
+ // Tokens per 1K for pricing calculations
81
+ TOKENS_PER_UNIT: 1000,
82
+ // Default output tokens for estimation
83
+ DEFAULT_OUTPUT_TOKENS: 1000,
84
+ // Minimum cost to consider
85
+ MINIMUM_COST: 0,
86
+ };
87
+ exports.TRUST_MODES = {
88
+ MONITOR: 'monitor',
89
+ WARN: 'warn',
90
+ BLOCK: 'block',
91
+ };
92
+ // Alert Categories
93
+ exports.ALERT_CATEGORIES = {
94
+ LOOP: 'loop',
95
+ DUPLICATE: 'duplicate',
96
+ FUZZY_DUPLICATE: 'fuzzy_duplicate',
97
+ CONTEXT_EXPLOSION: 'context',
98
+ COST_SPIKE: 'spike',
99
+ SAFE: 'safe',
100
+ INVALID: 'invalid',
101
+ ANOMALY: 'anomaly',
102
+ };
103
+ // Decisions
104
+ exports.DECISIONS = {
105
+ ALLOW: 'allow',
106
+ WARN: 'warn',
107
+ BLOCK: 'block',
108
+ };
109
+ // Severity Levels
110
+ exports.SEVERITY = {
111
+ SAFE: 'SAFE',
112
+ LOW: 'LOW',
113
+ MEDIUM: 'MEDIUM',
114
+ HIGH: 'HIGH',
115
+ CRITICAL: 'CRITICAL',
116
+ };
117
+ // File Paths - Unified storage directory
118
+ exports.PATHS = {
119
+ // Unified application directory
120
+ APP_DIR: '.aifw',
121
+ // Config file
122
+ CONFIG_FILE: 'config.json',
123
+ // History file
124
+ HISTORY_FILE: 'history.jsonl',
125
+ // Log file
126
+ LOG_FILE: 'logs.jsonl',
127
+ };
128
+ // HTTP Status Codes Used
129
+ exports.HTTP_STATUS = {
130
+ OK: 200,
131
+ CREATED: 201,
132
+ BAD_REQUEST: 400,
133
+ UNAUTHORIZED: 401,
134
+ FORBIDDEN: 403,
135
+ NOT_FOUND: 404,
136
+ TOO_MANY_REQUESTS: 429,
137
+ INTERNAL_SERVER_ERROR: 500,
138
+ BAD_GATEWAY: 502,
139
+ SERVICE_UNAVAILABLE: 503,
140
+ GATEWAY_TIMEOUT: 504,
141
+ };
142
+ // Similarity Calculation
143
+ exports.SIMILARITY = {
144
+ // Maximum string length for comparison (performance)
145
+ MAX_LENGTH: 500,
146
+ // Exact match threshold
147
+ EXACT: 1.0,
148
+ // Minimum meaningful similarity
149
+ MINIMUM: 0,
150
+ };
151
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './pricing';
2
+ export * from './userConfig';
3
+ export * from './constants';
4
+ export * from './productionConfig';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./pricing"), exports);
18
+ __exportStar(require("./userConfig"), exports);
19
+ __exportStar(require("./constants"), exports);
20
+ __exportStar(require("./productionConfig"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,8CAA4B;AAC5B,qDAAmC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Pricing configuration for AI models
3
+ * Prices are per 1K tokens (input/output)
4
+ */
5
+ export interface ModelPricing {
6
+ inputPrice: number;
7
+ outputPrice: number;
8
+ }
9
+ export declare const PRICING_CONFIG: Record<string, ModelPricing>;
10
+ export declare function getModelPricing(model: string): ModelPricing | null;
11
+ export declare function estimateCost(model: string, inputTokens: number, outputTokens: number): number;
12
+ //# sourceMappingURL=pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/config/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAwBvD,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAElE;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Pricing configuration for AI models
4
+ * Prices are per 1K tokens (input/output)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PRICING_CONFIG = void 0;
8
+ exports.getModelPricing = getModelPricing;
9
+ exports.estimateCost = estimateCost;
10
+ exports.PRICING_CONFIG = {
11
+ // OpenAI Models
12
+ 'gpt-4': { inputPrice: 0.03, outputPrice: 0.06 },
13
+ 'gpt-4-32k': { inputPrice: 0.06, outputPrice: 0.12 },
14
+ 'gpt-4-turbo': { inputPrice: 0.01, outputPrice: 0.03 },
15
+ 'gpt-4-turbo-preview': { inputPrice: 0.01, outputPrice: 0.03 },
16
+ 'gpt-4o': { inputPrice: 0.005, outputPrice: 0.015 },
17
+ 'gpt-4o-2024-05-13': { inputPrice: 0.005, outputPrice: 0.015 },
18
+ 'gpt-4o-mini': { inputPrice: 0.00015, outputPrice: 0.0006 },
19
+ 'gpt-4o-mini-2024-07-18': { inputPrice: 0.00015, outputPrice: 0.0006 },
20
+ 'gpt-3.5-turbo': { inputPrice: 0.0005, outputPrice: 0.0015 },
21
+ 'gpt-3.5-turbo-0125': { inputPrice: 0.0005, outputPrice: 0.0015 },
22
+ 'gpt-3.5-turbo-16k': { inputPrice: 0.0015, outputPrice: 0.002 },
23
+ 'gpt-3.5-turbo-instruct': { inputPrice: 0.0015, outputPrice: 0.002 },
24
+ // Anthropic Claude Models
25
+ 'claude-3-opus-20240229': { inputPrice: 0.015, outputPrice: 0.075 },
26
+ 'claude-3-sonnet-20240229': { inputPrice: 0.003, outputPrice: 0.015 },
27
+ 'claude-3-haiku-20240307': { inputPrice: 0.00025, outputPrice: 0.00125 },
28
+ 'claude-3-5-sonnet-20241022': { inputPrice: 0.003, outputPrice: 0.015 },
29
+ 'claude-3-5-haiku-20241022': { inputPrice: 0.0008, outputPrice: 0.004 },
30
+ 'claude-2.1': { inputPrice: 0.008, outputPrice: 0.024 },
31
+ 'claude-2': { inputPrice: 0.008, outputPrice: 0.024 },
32
+ 'claude-instant-1.2': { inputPrice: 0.0008, outputPrice: 0.0024 },
33
+ };
34
+ function getModelPricing(model) {
35
+ return exports.PRICING_CONFIG[model] || null;
36
+ }
37
+ function estimateCost(model, inputTokens, outputTokens) {
38
+ const pricing = getModelPricing(model);
39
+ if (!pricing)
40
+ return 0;
41
+ const inputCost = (inputTokens / 1000) * pricing.inputPrice;
42
+ const outputCost = (outputTokens / 1000) * pricing.outputPrice;
43
+ return inputCost + outputCost;
44
+ }
45
+ //# sourceMappingURL=pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/config/pricing.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAiCH,0CAEC;AAED,oCAYC;AA1CY,QAAA,cAAc,GAAiC;IAC1D,gBAAgB;IAChB,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAChD,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACpD,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACtD,qBAAqB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC9D,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACnD,mBAAmB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IAC9D,aAAa,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;IAC3D,wBAAwB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;IACtE,eAAe,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAC5D,oBAAoB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IACjE,mBAAmB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/D,wBAAwB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE;IAEpE,0BAA0B;IAC1B,wBAAwB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACnE,0BAA0B,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACrE,yBAAyB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IACxE,4BAA4B,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACvE,2BAA2B,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE;IACvE,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACvD,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACrD,oBAAoB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;CAClE,CAAC;AAEF,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,sBAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACvC,CAAC;AAED,SAAgB,YAAY,CAC1B,KAAa,EACb,WAAmB,EACnB,YAAoB;IAEpB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAC5D,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAE/D,OAAO,SAAS,GAAG,UAAU,CAAC;AAChC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { UserConfig } from './userConfig';
2
+ export interface ProductionConfigOverrides extends Partial<UserConfig> {
3
+ }
4
+ /**
5
+ * One-step production bootstrap with safe, ROI-focused defaults.
6
+ */
7
+ export declare function productionConfig(overrides?: ProductionConfigOverrides): UserConfig;
8
+ //# sourceMappingURL=productionConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productionConfig.d.ts","sourceRoot":"","sources":["../../src/config/productionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,yBAA0B,SAAQ,OAAO,CAAC,UAAU,CAAC;CAAG;AAEzE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,yBAA8B,GAAG,UAAU,CAatF"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.productionConfig = productionConfig;
4
+ /**
5
+ * One-step production bootstrap with safe, ROI-focused defaults.
6
+ */
7
+ function productionConfig(overrides = {}) {
8
+ return {
9
+ trustMode: 'block',
10
+ maxCostPerRequest: 0.75,
11
+ dangerThreshold: 50,
12
+ allowOverride: false,
13
+ proxyPort: 3000,
14
+ logRetentionDays: 30,
15
+ apiKey: process.env.AIFW_API_KEY,
16
+ rateLimitPerMinute: 120,
17
+ dailyBudget: 100,
18
+ ...overrides,
19
+ };
20
+ }
21
+ //# sourceMappingURL=productionConfig.js.map