@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.
- package/README.md +112 -0
- package/dist/aecl/ExecutionInterceptor.d.ts +111 -0
- package/dist/aecl/ExecutionInterceptor.d.ts.map +1 -0
- package/dist/aecl/ExecutionInterceptor.js +280 -0
- package/dist/aecl/ExecutionInterceptor.js.map +1 -0
- package/dist/aecl/ExecutionMemory.d.ts +103 -0
- package/dist/aecl/ExecutionMemory.d.ts.map +1 -0
- package/dist/aecl/ExecutionMemory.js +164 -0
- package/dist/aecl/ExecutionMemory.js.map +1 -0
- package/dist/aecl/PolicyEngine.d.ts +77 -0
- package/dist/aecl/PolicyEngine.d.ts.map +1 -0
- package/dist/aecl/PolicyEngine.js +170 -0
- package/dist/aecl/PolicyEngine.js.map +1 -0
- package/dist/aecl/ROITelemetry.d.ts +110 -0
- package/dist/aecl/ROITelemetry.d.ts.map +1 -0
- package/dist/aecl/ROITelemetry.js +211 -0
- package/dist/aecl/ROITelemetry.js.map +1 -0
- package/dist/aecl/RiskEngine.d.ts +90 -0
- package/dist/aecl/RiskEngine.d.ts.map +1 -0
- package/dist/aecl/RiskEngine.js +207 -0
- package/dist/aecl/RiskEngine.js.map +1 -0
- package/dist/aecl/index.d.ts +76 -0
- package/dist/aecl/index.d.ts.map +1 -0
- package/dist/aecl/index.js +111 -0
- package/dist/aecl/index.js.map +1 -0
- package/dist/aerl/ExecutionGraph.d.ts +123 -0
- package/dist/aerl/ExecutionGraph.d.ts.map +1 -0
- package/dist/aerl/ExecutionGraph.js +289 -0
- package/dist/aerl/ExecutionGraph.js.map +1 -0
- package/dist/aerl/ExecutionInterceptor.d.ts +94 -0
- package/dist/aerl/ExecutionInterceptor.d.ts.map +1 -0
- package/dist/aerl/ExecutionInterceptor.js +246 -0
- package/dist/aerl/ExecutionInterceptor.js.map +1 -0
- package/dist/aerl/ExecutionMemory.d.ts +138 -0
- package/dist/aerl/ExecutionMemory.d.ts.map +1 -0
- package/dist/aerl/ExecutionMemory.js +284 -0
- package/dist/aerl/ExecutionMemory.js.map +1 -0
- package/dist/aerl/FailurePrediction.d.ts +71 -0
- package/dist/aerl/FailurePrediction.d.ts.map +1 -0
- package/dist/aerl/FailurePrediction.js +204 -0
- package/dist/aerl/FailurePrediction.js.map +1 -0
- package/dist/aerl/RecoveryEngine.d.ts +74 -0
- package/dist/aerl/RecoveryEngine.d.ts.map +1 -0
- package/dist/aerl/RecoveryEngine.js +194 -0
- package/dist/aerl/RecoveryEngine.js.map +1 -0
- package/dist/aerl/ReliabilityEngine.d.ts +74 -0
- package/dist/aerl/ReliabilityEngine.d.ts.map +1 -0
- package/dist/aerl/ReliabilityEngine.js +205 -0
- package/dist/aerl/ReliabilityEngine.js.map +1 -0
- package/dist/aerl/ReliabilityTelemetry.d.ts +118 -0
- package/dist/aerl/ReliabilityTelemetry.d.ts.map +1 -0
- package/dist/aerl/ReliabilityTelemetry.js +247 -0
- package/dist/aerl/ReliabilityTelemetry.js.map +1 -0
- package/dist/aerl/index.d.ts +170 -0
- package/dist/aerl/index.d.ts.map +1 -0
- package/dist/aerl/index.js +223 -0
- package/dist/aerl/index.js.map +1 -0
- package/dist/ambient/AmbientProtection.d.ts +79 -0
- package/dist/ambient/AmbientProtection.d.ts.map +1 -0
- package/dist/ambient/AmbientProtection.js +251 -0
- package/dist/ambient/AmbientProtection.js.map +1 -0
- package/dist/bin/start.d.ts +14 -0
- package/dist/bin/start.d.ts.map +1 -0
- package/dist/bin/start.js +54 -0
- package/dist/bin/start.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +64 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/outputContract.d.ts +19 -0
- package/dist/cli/outputContract.d.ts.map +1 -0
- package/dist/cli/outputContract.js +54 -0
- package/dist/cli/outputContract.js.map +1 -0
- package/dist/cli/storage.d.ts +61 -0
- package/dist/cli/storage.d.ts.map +1 -0
- package/dist/cli/storage.js +143 -0
- package/dist/cli/storage.js.map +1 -0
- package/dist/client.d.ts +29 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +58 -0
- package/dist/client.js.map +1 -0
- package/dist/config/constants.d.ts +109 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +151 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +21 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/pricing.d.ts +12 -0
- package/dist/config/pricing.d.ts.map +1 -0
- package/dist/config/pricing.js +45 -0
- package/dist/config/pricing.js.map +1 -0
- package/dist/config/productionConfig.d.ts +8 -0
- package/dist/config/productionConfig.d.ts.map +1 -0
- package/dist/config/productionConfig.js +21 -0
- package/dist/config/productionConfig.js.map +1 -0
- package/dist/config/userConfig.d.ts +31 -0
- package/dist/config/userConfig.d.ts.map +1 -0
- package/dist/config/userConfig.js +116 -0
- package/dist/config/userConfig.js.map +1 -0
- package/dist/controlPlane/configServer.d.ts +7 -0
- package/dist/controlPlane/configServer.d.ts.map +1 -0
- package/dist/controlPlane/configServer.js +47 -0
- package/dist/controlPlane/configServer.js.map +1 -0
- package/dist/core/AgentBehaviorGraph.d.ts +163 -0
- package/dist/core/AgentBehaviorGraph.d.ts.map +1 -0
- package/dist/core/AgentBehaviorGraph.js +341 -0
- package/dist/core/AgentBehaviorGraph.js.map +1 -0
- package/dist/core/AlertManager.d.ts +19 -0
- package/dist/core/AlertManager.d.ts.map +1 -0
- package/dist/core/AlertManager.js +64 -0
- package/dist/core/AlertManager.js.map +1 -0
- package/dist/core/AuditTrail.d.ts +107 -0
- package/dist/core/AuditTrail.d.ts.map +1 -0
- package/dist/core/AuditTrail.js +256 -0
- package/dist/core/AuditTrail.js.map +1 -0
- package/dist/core/CostLedger.d.ts +135 -0
- package/dist/core/CostLedger.d.ts.map +1 -0
- package/dist/core/CostLedger.js +224 -0
- package/dist/core/CostLedger.js.map +1 -0
- package/dist/core/CostPredictionEngine.d.ts +110 -0
- package/dist/core/CostPredictionEngine.d.ts.map +1 -0
- package/dist/core/CostPredictionEngine.js +225 -0
- package/dist/core/CostPredictionEngine.js.map +1 -0
- package/dist/core/CostTruthEngine.d.ts +108 -0
- package/dist/core/CostTruthEngine.d.ts.map +1 -0
- package/dist/core/CostTruthEngine.js +170 -0
- package/dist/core/CostTruthEngine.js.map +1 -0
- package/dist/core/DetectionEngine.d.ts +147 -0
- package/dist/core/DetectionEngine.d.ts.map +1 -0
- package/dist/core/DetectionEngine.js +429 -0
- package/dist/core/DetectionEngine.js.map +1 -0
- package/dist/core/ExecutionInterceptor.d.ts +135 -0
- package/dist/core/ExecutionInterceptor.d.ts.map +1 -0
- package/dist/core/ExecutionInterceptor.js +285 -0
- package/dist/core/ExecutionInterceptor.js.map +1 -0
- package/dist/core/ExplainabilityLayer.d.ts +109 -0
- package/dist/core/ExplainabilityLayer.d.ts.map +1 -0
- package/dist/core/ExplainabilityLayer.js +277 -0
- package/dist/core/ExplainabilityLayer.js.map +1 -0
- package/dist/core/LearningSystem.d.ts +124 -0
- package/dist/core/LearningSystem.d.ts.map +1 -0
- package/dist/core/LearningSystem.js +294 -0
- package/dist/core/LearningSystem.js.map +1 -0
- package/dist/core/Logger.d.ts +122 -0
- package/dist/core/Logger.d.ts.map +1 -0
- package/dist/core/Logger.js +233 -0
- package/dist/core/Logger.js.map +1 -0
- package/dist/core/PolicyEngine.d.ts +148 -0
- package/dist/core/PolicyEngine.d.ts.map +1 -0
- package/dist/core/PolicyEngine.js +336 -0
- package/dist/core/PolicyEngine.js.map +1 -0
- package/dist/core/PricingConfig.d.ts +55 -0
- package/dist/core/PricingConfig.d.ts.map +1 -0
- package/dist/core/PricingConfig.js +132 -0
- package/dist/core/PricingConfig.js.map +1 -0
- package/dist/core/SessionStats.d.ts +101 -0
- package/dist/core/SessionStats.d.ts.map +1 -0
- package/dist/core/SessionStats.js +261 -0
- package/dist/core/SessionStats.js.map +1 -0
- package/dist/core/StateStore.d.ts +100 -0
- package/dist/core/StateStore.d.ts.map +1 -0
- package/dist/core/StateStore.js +336 -0
- package/dist/core/StateStore.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +19 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +26 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/cost-guard.d.ts +41 -0
- package/dist/cost-guard.d.ts.map +1 -0
- package/dist/cost-guard.js +274 -0
- package/dist/cost-guard.js.map +1 -0
- package/dist/dashboard/roiDashboard.d.ts +12 -0
- package/dist/dashboard/roiDashboard.d.ts.map +1 -0
- package/dist/dashboard/roiDashboard.js +28 -0
- package/dist/dashboard/roiDashboard.js.map +1 -0
- package/dist/demo/compareExecution.d.ts +9 -0
- package/dist/demo/compareExecution.d.ts.map +1 -0
- package/dist/demo/compareExecution.js +43 -0
- package/dist/demo/compareExecution.js.map +1 -0
- package/dist/demo/demoRunner.d.ts +16 -0
- package/dist/demo/demoRunner.d.ts.map +1 -0
- package/dist/demo/demoRunner.js +73 -0
- package/dist/demo/demoRunner.js.map +1 -0
- package/dist/firewall/costEstimator.d.ts +3 -0
- package/dist/firewall/costEstimator.d.ts.map +1 -0
- package/dist/firewall/costEstimator.js +22 -0
- package/dist/firewall/costEstimator.js.map +1 -0
- package/dist/firewall/executionGuard.d.ts +18 -0
- package/dist/firewall/executionGuard.d.ts.map +1 -0
- package/dist/firewall/executionGuard.js +80 -0
- package/dist/firewall/executionGuard.js.map +1 -0
- package/dist/firewall/loopDetector.d.ts +13 -0
- package/dist/firewall/loopDetector.d.ts.map +1 -0
- package/dist/firewall/loopDetector.js +24 -0
- package/dist/firewall/loopDetector.js.map +1 -0
- package/dist/firewall/policy.d.ts +4 -0
- package/dist/firewall/policy.d.ts.map +1 -0
- package/dist/firewall/policy.js +16 -0
- package/dist/firewall/policy.js.map +1 -0
- package/dist/firewall/types.d.ts +38 -0
- package/dist/firewall/types.d.ts.map +1 -0
- package/dist/firewall/types.js +3 -0
- package/dist/firewall/types.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/console.d.ts +27 -0
- package/dist/logger/console.d.ts.map +1 -0
- package/dist/logger/console.js +68 -0
- package/dist/logger/console.js.map +1 -0
- package/dist/logger/database.d.ts +40 -0
- package/dist/logger/database.d.ts.map +1 -0
- package/dist/logger/database.js +127 -0
- package/dist/logger/database.js.map +1 -0
- package/dist/logger/index.d.ts +3 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +11 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/loop-shield.d.ts +48 -0
- package/dist/loop-shield.d.ts.map +1 -0
- package/dist/loop-shield.js +436 -0
- package/dist/loop-shield.js.map +1 -0
- package/dist/metrics/BusinessMetricsEngine.d.ts +109 -0
- package/dist/metrics/BusinessMetricsEngine.d.ts.map +1 -0
- package/dist/metrics/BusinessMetricsEngine.js +222 -0
- package/dist/metrics/BusinessMetricsEngine.js.map +1 -0
- package/dist/metrics/index.d.ts +11 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +17 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/middleware/expressFirewall.d.ts +51 -0
- package/dist/middleware/expressFirewall.d.ts.map +1 -0
- package/dist/middleware/expressFirewall.js +140 -0
- package/dist/middleware/expressFirewall.js.map +1 -0
- package/dist/middleware/index.d.ts +8 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +15 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/withFirewall.d.ts +50 -0
- package/dist/middleware/withFirewall.d.ts.map +1 -0
- package/dist/middleware/withFirewall.js +155 -0
- package/dist/middleware/withFirewall.js.map +1 -0
- package/dist/observability/logger.d.ts +14 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +21 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +17 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +36 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/os/ExecutionOS.d.ts +220 -0
- package/dist/os/ExecutionOS.d.ts.map +1 -0
- package/dist/os/ExecutionOS.js +398 -0
- package/dist/os/ExecutionOS.js.map +1 -0
- package/dist/os/GlobalIntelligence.d.ts +154 -0
- package/dist/os/GlobalIntelligence.d.ts.map +1 -0
- package/dist/os/GlobalIntelligence.js +374 -0
- package/dist/os/GlobalIntelligence.js.map +1 -0
- package/dist/os/PolicyMarketplace.d.ts +192 -0
- package/dist/os/PolicyMarketplace.d.ts.map +1 -0
- package/dist/os/PolicyMarketplace.js +384 -0
- package/dist/os/PolicyMarketplace.js.map +1 -0
- package/dist/os/SDKInterception.d.ts +115 -0
- package/dist/os/SDKInterception.d.ts.map +1 -0
- package/dist/os/SDKInterception.js +317 -0
- package/dist/os/SDKInterception.js.map +1 -0
- package/dist/os/index.d.ts +60 -0
- package/dist/os/index.d.ts.map +1 -0
- package/dist/os/index.js +82 -0
- package/dist/os/index.js.map +1 -0
- package/dist/proxy/index.d.ts +2 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +18 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/server.d.ts +24 -0
- package/dist/proxy/server.d.ts.map +1 -0
- package/dist/proxy/server.js +395 -0
- package/dist/proxy/server.js.map +1 -0
- package/dist/public/BenchmarksPage.d.ts +60 -0
- package/dist/public/BenchmarksPage.d.ts.map +1 -0
- package/dist/public/BenchmarksPage.js +397 -0
- package/dist/public/BenchmarksPage.js.map +1 -0
- package/dist/public/DocsPage.d.ts +11 -0
- package/dist/public/DocsPage.d.ts.map +1 -0
- package/dist/public/DocsPage.js +496 -0
- package/dist/public/DocsPage.js.map +1 -0
- package/dist/public/StatusPage.d.ts +55 -0
- package/dist/public/StatusPage.d.ts.map +1 -0
- package/dist/public/StatusPage.js +344 -0
- package/dist/public/StatusPage.js.map +1 -0
- package/dist/public/index.d.ts +12 -0
- package/dist/public/index.d.ts.map +1 -0
- package/dist/public/index.js +20 -0
- package/dist/public/index.js.map +1 -0
- package/dist/replacements/axios.d.ts +14 -0
- package/dist/replacements/axios.d.ts.map +1 -0
- package/dist/replacements/axios.js +35 -0
- package/dist/replacements/axios.js.map +1 -0
- package/dist/replacements/fetch.d.ts +13 -0
- package/dist/replacements/fetch.d.ts.map +1 -0
- package/dist/replacements/fetch.js +20 -0
- package/dist/replacements/fetch.js.map +1 -0
- package/dist/replacements/openai.d.ts +14 -0
- package/dist/replacements/openai.d.ts.map +1 -0
- package/dist/replacements/openai.js +22 -0
- package/dist/replacements/openai.js.map +1 -0
- package/dist/saas/CostExplosionDemo.d.ts +56 -0
- package/dist/saas/CostExplosionDemo.d.ts.map +1 -0
- package/dist/saas/CostExplosionDemo.js +190 -0
- package/dist/saas/CostExplosionDemo.js.map +1 -0
- package/dist/saas/LiveProtection.d.ts +61 -0
- package/dist/saas/LiveProtection.d.ts.map +1 -0
- package/dist/saas/LiveProtection.js +187 -0
- package/dist/saas/LiveProtection.js.map +1 -0
- package/dist/saas/ProductionSaaS.d.ts +56 -0
- package/dist/saas/ProductionSaaS.d.ts.map +1 -0
- package/dist/saas/ProductionSaaS.js +831 -0
- package/dist/saas/ProductionSaaS.js.map +1 -0
- package/dist/saas/SaaSServer.d.ts +50 -0
- package/dist/saas/SaaSServer.d.ts.map +1 -0
- package/dist/saas/SaaSServer.js +669 -0
- package/dist/saas/SaaSServer.js.map +1 -0
- package/dist/saas/UserStore.d.ts +49 -0
- package/dist/saas/UserStore.d.ts.map +1 -0
- package/dist/saas/UserStore.js +137 -0
- package/dist/saas/UserStore.js.map +1 -0
- package/dist/saas/billingMetrics.d.ts +14 -0
- package/dist/saas/billingMetrics.d.ts.map +1 -0
- package/dist/saas/billingMetrics.js +23 -0
- package/dist/saas/billingMetrics.js.map +1 -0
- package/dist/saas/index.d.ts +12 -0
- package/dist/saas/index.d.ts.map +1 -0
- package/dist/saas/index.js +23 -0
- package/dist/saas/index.js.map +1 -0
- package/dist/saas/telemetry.d.ts +24 -0
- package/dist/saas/telemetry.d.ts.map +1 -0
- package/dist/saas/telemetry.js +30 -0
- package/dist/saas/telemetry.js.map +1 -0
- package/dist/saas/usageMeter.d.ts +28 -0
- package/dist/saas/usageMeter.d.ts.map +1 -0
- package/dist/saas/usageMeter.js +41 -0
- package/dist/saas/usageMeter.js.map +1 -0
- package/dist/security/TrustBoundaryValidator.d.ts +105 -0
- package/dist/security/TrustBoundaryValidator.d.ts.map +1 -0
- package/dist/security/TrustBoundaryValidator.js +305 -0
- package/dist/security/TrustBoundaryValidator.js.map +1 -0
- package/dist/starters/express-protected.d.ts +18 -0
- package/dist/starters/express-protected.d.ts.map +1 -0
- package/dist/starters/express-protected.js +93 -0
- package/dist/starters/express-protected.js.map +1 -0
- package/dist/starters/langchain-protected.d.ts +18 -0
- package/dist/starters/langchain-protected.d.ts.map +1 -0
- package/dist/starters/langchain-protected.js +85 -0
- package/dist/starters/langchain-protected.js.map +1 -0
- package/dist/starters/openai-protected.d.ts +19 -0
- package/dist/starters/openai-protected.d.ts.map +1 -0
- package/dist/starters/openai-protected.js +84 -0
- package/dist/starters/openai-protected.js.map +1 -0
- package/dist/starters/serverless-protected.d.ts +19 -0
- package/dist/starters/serverless-protected.d.ts.map +1 -0
- package/dist/starters/serverless-protected.js +83 -0
- package/dist/starters/serverless-protected.js.map +1 -0
- package/dist/storage/adapters.d.ts +24 -0
- package/dist/storage/adapters.d.ts.map +1 -0
- package/dist/storage/adapters.js +123 -0
- package/dist/storage/adapters.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +8 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/tests/b2b-hardening.test.d.ts +2 -0
- package/dist/tests/b2b-hardening.test.d.ts.map +1 -0
- package/dist/tests/b2b-hardening.test.js +164 -0
- package/dist/tests/b2b-hardening.test.js.map +1 -0
- package/dist/tests/cli.contract.test.d.ts +2 -0
- package/dist/tests/cli.contract.test.d.ts.map +1 -0
- package/dist/tests/cli.contract.test.js +28 -0
- package/dist/tests/cli.contract.test.js.map +1 -0
- package/dist/tests/cli.snapshot.test.d.ts +14 -0
- package/dist/tests/cli.snapshot.test.d.ts.map +1 -0
- package/dist/tests/cli.snapshot.test.js +132 -0
- package/dist/tests/cli.snapshot.test.js.map +1 -0
- package/dist/tests/cli.strict.test.d.ts +6 -0
- package/dist/tests/cli.strict.test.d.ts.map +1 -0
- package/dist/tests/cli.strict.test.js +173 -0
- package/dist/tests/cli.strict.test.js.map +1 -0
- package/dist/tests/cli.test.d.ts +5 -0
- package/dist/tests/cli.test.d.ts.map +1 -0
- package/dist/tests/cli.test.js +54 -0
- package/dist/tests/cli.test.js.map +1 -0
- package/dist/tests/concurrency.state.test.d.ts +6 -0
- package/dist/tests/concurrency.state.test.d.ts.map +1 -0
- package/dist/tests/concurrency.state.test.js +231 -0
- package/dist/tests/concurrency.state.test.js.map +1 -0
- package/dist/tests/detection-engine.strict.test.d.ts +6 -0
- package/dist/tests/detection-engine.strict.test.d.ts.map +1 -0
- package/dist/tests/detection-engine.strict.test.js +323 -0
- package/dist/tests/detection-engine.strict.test.js.map +1 -0
- package/dist/tests/e2e.system.test.d.ts +7 -0
- package/dist/tests/e2e.system.test.d.ts.map +1 -0
- package/dist/tests/e2e.system.test.js +189 -0
- package/dist/tests/e2e.system.test.js.map +1 -0
- package/dist/tests/edge-cases.test.d.ts +6 -0
- package/dist/tests/edge-cases.test.d.ts.map +1 -0
- package/dist/tests/edge-cases.test.js +357 -0
- package/dist/tests/edge-cases.test.js.map +1 -0
- package/dist/tests/performance.benchmark.test.d.ts +2 -0
- package/dist/tests/performance.benchmark.test.d.ts.map +1 -0
- package/dist/tests/performance.benchmark.test.js +24 -0
- package/dist/tests/performance.benchmark.test.js.map +1 -0
- package/dist/tests/proxy.production.test.d.ts +6 -0
- package/dist/tests/proxy.production.test.d.ts.map +1 -0
- package/dist/tests/proxy.production.test.js +274 -0
- package/dist/tests/proxy.production.test.js.map +1 -0
- package/dist/tests/proxy.strict.test.d.ts +6 -0
- package/dist/tests/proxy.strict.test.d.ts.map +1 -0
- package/dist/tests/proxy.strict.test.js +188 -0
- package/dist/tests/proxy.strict.test.js.map +1 -0
- package/dist/tests/proxy.test.d.ts +5 -0
- package/dist/tests/proxy.test.d.ts.map +1 -0
- package/dist/tests/proxy.test.js +61 -0
- package/dist/tests/proxy.test.js.map +1 -0
- package/dist/tests/roi.scenario.test.d.ts +2 -0
- package/dist/tests/roi.scenario.test.d.ts.map +1 -0
- package/dist/tests/roi.scenario.test.js +26 -0
- package/dist/tests/roi.scenario.test.js.map +1 -0
- package/dist/tests/server.contract.test.d.ts +6 -0
- package/dist/tests/server.contract.test.d.ts.map +1 -0
- package/dist/tests/server.contract.test.js +48 -0
- package/dist/tests/server.contract.test.js.map +1 -0
- package/dist/tests/tokenCounter.test.d.ts +5 -0
- package/dist/tests/tokenCounter.test.d.ts.map +1 -0
- package/dist/tests/tokenCounter.test.js +66 -0
- package/dist/tests/tokenCounter.test.js.map +1 -0
- package/dist/tests/v113/client.test.d.ts +2 -0
- package/dist/tests/v113/client.test.d.ts.map +1 -0
- package/dist/tests/v113/client.test.js +22 -0
- package/dist/tests/v113/client.test.js.map +1 -0
- package/dist/tests/v113/executionGuard.test.d.ts +2 -0
- package/dist/tests/v113/executionGuard.test.d.ts.map +1 -0
- package/dist/tests/v113/executionGuard.test.js +39 -0
- package/dist/tests/v113/executionGuard.test.js.map +1 -0
- package/dist/token-counter/index.d.ts +2 -0
- package/dist/token-counter/index.d.ts.map +1 -0
- package/dist/token-counter/index.js +18 -0
- package/dist/token-counter/index.js.map +1 -0
- package/dist/token-counter/tokenCounter.d.ts +18 -0
- package/dist/token-counter/tokenCounter.d.ts.map +1 -0
- package/dist/token-counter/tokenCounter.js +91 -0
- package/dist/token-counter/tokenCounter.js.map +1 -0
- package/dist/trust/ImmutableAudit.d.ts +159 -0
- package/dist/trust/ImmutableAudit.d.ts.map +1 -0
- package/dist/trust/ImmutableAudit.js +340 -0
- package/dist/trust/ImmutableAudit.js.map +1 -0
- package/dist/trust/PublicVerificationLedger.d.ts +91 -0
- package/dist/trust/PublicVerificationLedger.d.ts.map +1 -0
- package/dist/trust/PublicVerificationLedger.js +223 -0
- package/dist/trust/PublicVerificationLedger.js.map +1 -0
- package/dist/trust/index.d.ts +11 -0
- package/dist/trust/index.d.ts.map +1 -0
- package/dist/trust/index.js +20 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/utils/alert.d.ts +13 -0
- package/dist/utils/alert.d.ts.map +1 -0
- package/dist/utils/alert.js +49 -0
- package/dist/utils/alert.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/wrapper/aiFirewall.d.ts +61 -0
- package/dist/wrapper/aiFirewall.d.ts.map +1 -0
- package/dist/wrapper/aiFirewall.js +117 -0
- package/dist/wrapper/aiFirewall.js.map +1 -0
- package/dist/wrapper/index.d.ts +3 -0
- package/dist/wrapper/index.d.ts.map +1 -0
- package/dist/wrapper/index.js +21 -0
- package/dist/wrapper/index.js.map +1 -0
- package/dist/wrapper/sdk.d.ts +49 -0
- package/dist/wrapper/sdk.d.ts.map +1 -0
- package/dist/wrapper/sdk.js +140 -0
- package/dist/wrapper/sdk.js.map +1 -0
- 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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"}
|
package/dist/client.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|