centient 2.20.0

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 (557) hide show
  1. package/CHANGELOG.md +362 -0
  2. package/README.md +433 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +62 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/server.d.ts +4 -0
  8. package/dist/server.d.ts.map +1 -0
  9. package/dist/server.js +478 -0
  10. package/dist/server.js.map +1 -0
  11. package/dist/telemetry/index.d.ts +4 -0
  12. package/dist/telemetry/index.d.ts.map +1 -0
  13. package/dist/telemetry/index.js +3 -0
  14. package/dist/telemetry/index.js.map +1 -0
  15. package/dist/telemetry/instrumentation.d.ts +10 -0
  16. package/dist/telemetry/instrumentation.d.ts.map +1 -0
  17. package/dist/telemetry/instrumentation.js +86 -0
  18. package/dist/telemetry/instrumentation.js.map +1 -0
  19. package/dist/telemetry/tracer.d.ts +6 -0
  20. package/dist/telemetry/tracer.d.ts.map +1 -0
  21. package/dist/telemetry/tracer.js +27 -0
  22. package/dist/telemetry/tracer.js.map +1 -0
  23. package/dist/tools/artifacts/diffSessions.d.ts +9 -0
  24. package/dist/tools/artifacts/diffSessions.d.ts.map +1 -0
  25. package/dist/tools/artifacts/diffSessions.js +320 -0
  26. package/dist/tools/artifacts/diffSessions.js.map +1 -0
  27. package/dist/tools/artifacts/extractSessionContext.d.ts +9 -0
  28. package/dist/tools/artifacts/extractSessionContext.d.ts.map +1 -0
  29. package/dist/tools/artifacts/extractSessionContext.js +291 -0
  30. package/dist/tools/artifacts/extractSessionContext.js.map +1 -0
  31. package/dist/tools/artifacts/getSessionCode.d.ts +9 -0
  32. package/dist/tools/artifacts/getSessionCode.d.ts.map +1 -0
  33. package/dist/tools/artifacts/getSessionCode.js +104 -0
  34. package/dist/tools/artifacts/getSessionCode.js.map +1 -0
  35. package/dist/tools/artifacts/loadSession.d.ts +9 -0
  36. package/dist/tools/artifacts/loadSession.d.ts.map +1 -0
  37. package/dist/tools/artifacts/loadSession.js +163 -0
  38. package/dist/tools/artifacts/loadSession.js.map +1 -0
  39. package/dist/tools/artifacts/searchArtifacts.d.ts +9 -0
  40. package/dist/tools/artifacts/searchArtifacts.d.ts.map +1 -0
  41. package/dist/tools/artifacts/searchArtifacts.js +98 -0
  42. package/dist/tools/artifacts/searchArtifacts.js.map +1 -0
  43. package/dist/tools/branching/closeBranch.d.ts +10 -0
  44. package/dist/tools/branching/closeBranch.d.ts.map +1 -0
  45. package/dist/tools/branching/closeBranch.js +193 -0
  46. package/dist/tools/branching/closeBranch.js.map +1 -0
  47. package/dist/tools/branching/createBranch.d.ts +10 -0
  48. package/dist/tools/branching/createBranch.d.ts.map +1 -0
  49. package/dist/tools/branching/createBranch.js +136 -0
  50. package/dist/tools/branching/createBranch.js.map +1 -0
  51. package/dist/tools/branching/listBranches.d.ts +9 -0
  52. package/dist/tools/branching/listBranches.d.ts.map +1 -0
  53. package/dist/tools/branching/listBranches.js +212 -0
  54. package/dist/tools/branching/listBranches.js.map +1 -0
  55. package/dist/tools/branching/listDecisionPoints.d.ts +9 -0
  56. package/dist/tools/branching/listDecisionPoints.d.ts.map +1 -0
  57. package/dist/tools/branching/listDecisionPoints.js +156 -0
  58. package/dist/tools/branching/listDecisionPoints.js.map +1 -0
  59. package/dist/tools/branching/markDecisionPoint.d.ts +10 -0
  60. package/dist/tools/branching/markDecisionPoint.d.ts.map +1 -0
  61. package/dist/tools/branching/markDecisionPoint.js +149 -0
  62. package/dist/tools/branching/markDecisionPoint.js.map +1 -0
  63. package/dist/tools/branching/switchBranch.d.ts +9 -0
  64. package/dist/tools/branching/switchBranch.d.ts.map +1 -0
  65. package/dist/tools/branching/switchBranch.js +153 -0
  66. package/dist/tools/branching/switchBranch.js.map +1 -0
  67. package/dist/tools/consultation/aggregateConsensus.d.ts +9 -0
  68. package/dist/tools/consultation/aggregateConsensus.d.ts.map +1 -0
  69. package/dist/tools/consultation/aggregateConsensus.js +259 -0
  70. package/dist/tools/consultation/aggregateConsensus.js.map +1 -0
  71. package/dist/tools/consultation/captureConsultationResponse.d.ts +11 -0
  72. package/dist/tools/consultation/captureConsultationResponse.d.ts.map +1 -0
  73. package/dist/tools/consultation/captureConsultationResponse.js +244 -0
  74. package/dist/tools/consultation/captureConsultationResponse.js.map +1 -0
  75. package/dist/tools/consultation/consultLlmStream.d.ts +9 -0
  76. package/dist/tools/consultation/consultLlmStream.d.ts.map +1 -0
  77. package/dist/tools/consultation/consultLlmStream.js +201 -0
  78. package/dist/tools/consultation/consultLlmStream.js.map +1 -0
  79. package/dist/tools/consultation/index.d.ts +8 -0
  80. package/dist/tools/consultation/index.d.ts.map +1 -0
  81. package/dist/tools/consultation/index.js +8 -0
  82. package/dist/tools/consultation/index.js.map +1 -0
  83. package/dist/tools/consultation/peerReviewContract.d.ts +146 -0
  84. package/dist/tools/consultation/peerReviewContract.d.ts.map +1 -0
  85. package/dist/tools/consultation/peerReviewContract.js +731 -0
  86. package/dist/tools/consultation/peerReviewContract.js.map +1 -0
  87. package/dist/tools/consultation/peerReviewSession.d.ts +9 -0
  88. package/dist/tools/consultation/peerReviewSession.d.ts.map +1 -0
  89. package/dist/tools/consultation/peerReviewSession.js +433 -0
  90. package/dist/tools/consultation/peerReviewSession.js.map +1 -0
  91. package/dist/tools/consultation/prepareConsultationContext.d.ts +9 -0
  92. package/dist/tools/consultation/prepareConsultationContext.d.ts.map +1 -0
  93. package/dist/tools/consultation/prepareConsultationContext.js +263 -0
  94. package/dist/tools/consultation/prepareConsultationContext.js.map +1 -0
  95. package/dist/tools/consultation/seekConsensus.d.ts +9 -0
  96. package/dist/tools/consultation/seekConsensus.d.ts.map +1 -0
  97. package/dist/tools/consultation/seekConsensus.js +358 -0
  98. package/dist/tools/consultation/seekConsensus.js.map +1 -0
  99. package/dist/tools/consultation/validateDecision.d.ts +9 -0
  100. package/dist/tools/consultation/validateDecision.d.ts.map +1 -0
  101. package/dist/tools/consultation/validateDecision.js +253 -0
  102. package/dist/tools/consultation/validateDecision.js.map +1 -0
  103. package/dist/tools/consultation/validateReviewResponse.d.ts +9 -0
  104. package/dist/tools/consultation/validateReviewResponse.d.ts.map +1 -0
  105. package/dist/tools/consultation/validateReviewResponse.js +105 -0
  106. package/dist/tools/consultation/validateReviewResponse.js.map +1 -0
  107. package/dist/tools/graph/addNoteRelationship.d.ts +9 -0
  108. package/dist/tools/graph/addNoteRelationship.d.ts.map +1 -0
  109. package/dist/tools/graph/addNoteRelationship.js +120 -0
  110. package/dist/tools/graph/addNoteRelationship.js.map +1 -0
  111. package/dist/tools/graph/linkSessions.d.ts +9 -0
  112. package/dist/tools/graph/linkSessions.d.ts.map +1 -0
  113. package/dist/tools/graph/linkSessions.js +126 -0
  114. package/dist/tools/graph/linkSessions.js.map +1 -0
  115. package/dist/tools/graph/queryTemporalGraph.d.ts +9 -0
  116. package/dist/tools/graph/queryTemporalGraph.d.ts.map +1 -0
  117. package/dist/tools/graph/queryTemporalGraph.js +339 -0
  118. package/dist/tools/graph/queryTemporalGraph.js.map +1 -0
  119. package/dist/tools/health/getCircuitBreakerStats.d.ts +9 -0
  120. package/dist/tools/health/getCircuitBreakerStats.d.ts.map +1 -0
  121. package/dist/tools/health/getCircuitBreakerStats.js +195 -0
  122. package/dist/tools/health/getCircuitBreakerStats.js.map +1 -0
  123. package/dist/tools/health/getContextHealth.d.ts +9 -0
  124. package/dist/tools/health/getContextHealth.d.ts.map +1 -0
  125. package/dist/tools/health/getContextHealth.js +331 -0
  126. package/dist/tools/health/getContextHealth.js.map +1 -0
  127. package/dist/tools/health/getQdrantHealth.d.ts +9 -0
  128. package/dist/tools/health/getQdrantHealth.d.ts.map +1 -0
  129. package/dist/tools/health/getQdrantHealth.js +144 -0
  130. package/dist/tools/health/getQdrantHealth.js.map +1 -0
  131. package/dist/tools/health/getRateLimitStats.d.ts +9 -0
  132. package/dist/tools/health/getRateLimitStats.d.ts.map +1 -0
  133. package/dist/tools/health/getRateLimitStats.js +191 -0
  134. package/dist/tools/health/getRateLimitStats.js.map +1 -0
  135. package/dist/tools/knowledge/index.d.ts +4 -0
  136. package/dist/tools/knowledge/index.d.ts.map +1 -0
  137. package/dist/tools/knowledge/index.js +4 -0
  138. package/dist/tools/knowledge/index.js.map +1 -0
  139. package/dist/tools/knowledge/promoteDecision.d.ts +9 -0
  140. package/dist/tools/knowledge/promoteDecision.d.ts.map +1 -0
  141. package/dist/tools/knowledge/promoteDecision.js +139 -0
  142. package/dist/tools/knowledge/promoteDecision.js.map +1 -0
  143. package/dist/tools/knowledge/promoteLearning.d.ts +9 -0
  144. package/dist/tools/knowledge/promoteLearning.d.ts.map +1 -0
  145. package/dist/tools/knowledge/promoteLearning.js +132 -0
  146. package/dist/tools/knowledge/promoteLearning.js.map +1 -0
  147. package/dist/tools/knowledge/searchMetaKnowledge.d.ts +9 -0
  148. package/dist/tools/knowledge/searchMetaKnowledge.d.ts.map +1 -0
  149. package/dist/tools/knowledge/searchMetaKnowledge.js +120 -0
  150. package/dist/tools/knowledge/searchMetaKnowledge.js.map +1 -0
  151. package/dist/tools/memory/addNote.d.ts +9 -0
  152. package/dist/tools/memory/addNote.d.ts.map +1 -0
  153. package/dist/tools/memory/addNote.js +105 -0
  154. package/dist/tools/memory/addNote.js.map +1 -0
  155. package/dist/tools/memory/getDecisions.d.ts +9 -0
  156. package/dist/tools/memory/getDecisions.d.ts.map +1 -0
  157. package/dist/tools/memory/getDecisions.js +93 -0
  158. package/dist/tools/memory/getDecisions.js.map +1 -0
  159. package/dist/tools/memory/getHypotheses.d.ts +9 -0
  160. package/dist/tools/memory/getHypotheses.d.ts.map +1 -0
  161. package/dist/tools/memory/getHypotheses.js +93 -0
  162. package/dist/tools/memory/getHypotheses.js.map +1 -0
  163. package/dist/tools/memory-bank/memoryBankList.d.ts +9 -0
  164. package/dist/tools/memory-bank/memoryBankList.d.ts.map +1 -0
  165. package/dist/tools/memory-bank/memoryBankList.js +108 -0
  166. package/dist/tools/memory-bank/memoryBankList.js.map +1 -0
  167. package/dist/tools/memory-bank/memoryBankSearch.d.ts +9 -0
  168. package/dist/tools/memory-bank/memoryBankSearch.d.ts.map +1 -0
  169. package/dist/tools/memory-bank/memoryBankSearch.js +128 -0
  170. package/dist/tools/memory-bank/memoryBankSearch.js.map +1 -0
  171. package/dist/tools/metrics/getAuditLog.d.ts +9 -0
  172. package/dist/tools/metrics/getAuditLog.d.ts.map +1 -0
  173. package/dist/tools/metrics/getAuditLog.js +172 -0
  174. package/dist/tools/metrics/getAuditLog.js.map +1 -0
  175. package/dist/tools/metrics/getCompressionRatio.d.ts +9 -0
  176. package/dist/tools/metrics/getCompressionRatio.d.ts.map +1 -0
  177. package/dist/tools/metrics/getCompressionRatio.js +112 -0
  178. package/dist/tools/metrics/getCompressionRatio.js.map +1 -0
  179. package/dist/tools/metrics/getCostDashboard.d.ts +9 -0
  180. package/dist/tools/metrics/getCostDashboard.d.ts.map +1 -0
  181. package/dist/tools/metrics/getCostDashboard.js +126 -0
  182. package/dist/tools/metrics/getCostDashboard.js.map +1 -0
  183. package/dist/tools/metrics/getPatternAnalytics.d.ts +9 -0
  184. package/dist/tools/metrics/getPatternAnalytics.d.ts.map +1 -0
  185. package/dist/tools/metrics/getPatternAnalytics.js +192 -0
  186. package/dist/tools/metrics/getPatternAnalytics.js.map +1 -0
  187. package/dist/tools/metrics/getPatternReuse.d.ts +9 -0
  188. package/dist/tools/metrics/getPatternReuse.d.ts.map +1 -0
  189. package/dist/tools/metrics/getPatternReuse.js +130 -0
  190. package/dist/tools/metrics/getPatternReuse.js.map +1 -0
  191. package/dist/tools/patterns/createPatternVersion.d.ts +9 -0
  192. package/dist/tools/patterns/createPatternVersion.d.ts.map +1 -0
  193. package/dist/tools/patterns/createPatternVersion.js +137 -0
  194. package/dist/tools/patterns/createPatternVersion.js.map +1 -0
  195. package/dist/tools/patterns/deprecatePatternVersion.d.ts +9 -0
  196. package/dist/tools/patterns/deprecatePatternVersion.d.ts.map +1 -0
  197. package/dist/tools/patterns/deprecatePatternVersion.js +131 -0
  198. package/dist/tools/patterns/deprecatePatternVersion.js.map +1 -0
  199. package/dist/tools/patterns/diffPatterns.d.ts +9 -0
  200. package/dist/tools/patterns/diffPatterns.d.ts.map +1 -0
  201. package/dist/tools/patterns/diffPatterns.js +402 -0
  202. package/dist/tools/patterns/diffPatterns.js.map +1 -0
  203. package/dist/tools/patterns/executeSkill.d.ts +9 -0
  204. package/dist/tools/patterns/executeSkill.d.ts.map +1 -0
  205. package/dist/tools/patterns/executeSkill.js +230 -0
  206. package/dist/tools/patterns/executeSkill.js.map +1 -0
  207. package/dist/tools/patterns/findPatterns.d.ts +9 -0
  208. package/dist/tools/patterns/findPatterns.d.ts.map +1 -0
  209. package/dist/tools/patterns/findPatterns.js +164 -0
  210. package/dist/tools/patterns/findPatterns.js.map +1 -0
  211. package/dist/tools/patterns/getPatternVersions.d.ts +9 -0
  212. package/dist/tools/patterns/getPatternVersions.d.ts.map +1 -0
  213. package/dist/tools/patterns/getPatternVersions.js +114 -0
  214. package/dist/tools/patterns/getPatternVersions.js.map +1 -0
  215. package/dist/tools/patterns/indexPatternLibrary.d.ts +9 -0
  216. package/dist/tools/patterns/indexPatternLibrary.d.ts.map +1 -0
  217. package/dist/tools/patterns/indexPatternLibrary.js +228 -0
  218. package/dist/tools/patterns/indexPatternLibrary.js.map +1 -0
  219. package/dist/tools/patterns/loadSkill.d.ts +9 -0
  220. package/dist/tools/patterns/loadSkill.d.ts.map +1 -0
  221. package/dist/tools/patterns/loadSkill.js +229 -0
  222. package/dist/tools/patterns/loadSkill.js.map +1 -0
  223. package/dist/tools/patterns/predictOutcome.d.ts +9 -0
  224. package/dist/tools/patterns/predictOutcome.d.ts.map +1 -0
  225. package/dist/tools/patterns/predictOutcome.js +256 -0
  226. package/dist/tools/patterns/predictOutcome.js.map +1 -0
  227. package/dist/tools/patterns/recommendPatterns.d.ts +9 -0
  228. package/dist/tools/patterns/recommendPatterns.d.ts.map +1 -0
  229. package/dist/tools/patterns/recommendPatterns.js +278 -0
  230. package/dist/tools/patterns/recommendPatterns.js.map +1 -0
  231. package/dist/tools/patterns/searchPatterns.d.ts +9 -0
  232. package/dist/tools/patterns/searchPatterns.d.ts.map +1 -0
  233. package/dist/tools/patterns/searchPatterns.js +144 -0
  234. package/dist/tools/patterns/searchPatterns.js.map +1 -0
  235. package/dist/tools/patterns/signPattern.d.ts +9 -0
  236. package/dist/tools/patterns/signPattern.d.ts.map +1 -0
  237. package/dist/tools/patterns/signPattern.js +147 -0
  238. package/dist/tools/patterns/signPattern.js.map +1 -0
  239. package/dist/tools/patterns/trackPatternUsage.d.ts +9 -0
  240. package/dist/tools/patterns/trackPatternUsage.d.ts.map +1 -0
  241. package/dist/tools/patterns/trackPatternUsage.js +126 -0
  242. package/dist/tools/patterns/trackPatternUsage.js.map +1 -0
  243. package/dist/tools/research/approveResearchPlan.d.ts +9 -0
  244. package/dist/tools/research/approveResearchPlan.d.ts.map +1 -0
  245. package/dist/tools/research/approveResearchPlan.js +204 -0
  246. package/dist/tools/research/approveResearchPlan.js.map +1 -0
  247. package/dist/tools/research/generateResearchPlan.d.ts +9 -0
  248. package/dist/tools/research/generateResearchPlan.d.ts.map +1 -0
  249. package/dist/tools/research/generateResearchPlan.js +347 -0
  250. package/dist/tools/research/generateResearchPlan.js.map +1 -0
  251. package/dist/tools/research/listResearchSessions.d.ts +9 -0
  252. package/dist/tools/research/listResearchSessions.d.ts.map +1 -0
  253. package/dist/tools/research/listResearchSessions.js +108 -0
  254. package/dist/tools/research/listResearchSessions.js.map +1 -0
  255. package/dist/tools/research/suggestModelForResearch.d.ts +9 -0
  256. package/dist/tools/research/suggestModelForResearch.d.ts.map +1 -0
  257. package/dist/tools/research/suggestModelForResearch.js +416 -0
  258. package/dist/tools/research/suggestModelForResearch.js.map +1 -0
  259. package/dist/tools/research/trackResearchProgress.d.ts +9 -0
  260. package/dist/tools/research/trackResearchProgress.d.ts.map +1 -0
  261. package/dist/tools/research/trackResearchProgress.js +177 -0
  262. package/dist/tools/research/trackResearchProgress.js.map +1 -0
  263. package/dist/tools/rlvr/rlvrExecute.d.ts +9 -0
  264. package/dist/tools/rlvr/rlvrExecute.d.ts.map +1 -0
  265. package/dist/tools/rlvr/rlvrExecute.js +296 -0
  266. package/dist/tools/rlvr/rlvrExecute.js.map +1 -0
  267. package/dist/tools/search/getSearchStats.d.ts +9 -0
  268. package/dist/tools/search/getSearchStats.d.ts.map +1 -0
  269. package/dist/tools/search/getSearchStats.js +107 -0
  270. package/dist/tools/search/getSearchStats.js.map +1 -0
  271. package/dist/tools/search/index.d.ts +4 -0
  272. package/dist/tools/search/index.d.ts.map +1 -0
  273. package/dist/tools/search/index.js +4 -0
  274. package/dist/tools/search/index.js.map +1 -0
  275. package/dist/tools/search/indexSession.d.ts +9 -0
  276. package/dist/tools/search/indexSession.d.ts.map +1 -0
  277. package/dist/tools/search/indexSession.js +254 -0
  278. package/dist/tools/search/indexSession.js.map +1 -0
  279. package/dist/tools/search/semanticSearch.d.ts +9 -0
  280. package/dist/tools/search/semanticSearch.d.ts.map +1 -0
  281. package/dist/tools/search/semanticSearch.js +171 -0
  282. package/dist/tools/search/semanticSearch.js.map +1 -0
  283. package/dist/tools/session/askSession.d.ts +9 -0
  284. package/dist/tools/session/askSession.d.ts.map +1 -0
  285. package/dist/tools/session/askSession.js +311 -0
  286. package/dist/tools/session/askSession.js.map +1 -0
  287. package/dist/tools/session/checkClaimConsistency.d.ts +9 -0
  288. package/dist/tools/session/checkClaimConsistency.d.ts.map +1 -0
  289. package/dist/tools/session/checkClaimConsistency.js +343 -0
  290. package/dist/tools/session/checkClaimConsistency.js.map +1 -0
  291. package/dist/tools/session/checkCodeFeasibility.d.ts +19 -0
  292. package/dist/tools/session/checkCodeFeasibility.d.ts.map +1 -0
  293. package/dist/tools/session/checkCodeFeasibility.js +766 -0
  294. package/dist/tools/session/checkCodeFeasibility.js.map +1 -0
  295. package/dist/tools/session/checkConstraintViolation.d.ts +9 -0
  296. package/dist/tools/session/checkConstraintViolation.d.ts.map +1 -0
  297. package/dist/tools/session/checkConstraintViolation.js +98 -0
  298. package/dist/tools/session/checkConstraintViolation.js.map +1 -0
  299. package/dist/tools/session/checkDuplicateWork.d.ts +9 -0
  300. package/dist/tools/session/checkDuplicateWork.d.ts.map +1 -0
  301. package/dist/tools/session/checkDuplicateWork.js +105 -0
  302. package/dist/tools/session/checkDuplicateWork.js.map +1 -0
  303. package/dist/tools/session/extractSessionMemories.d.ts +9 -0
  304. package/dist/tools/session/extractSessionMemories.d.ts.map +1 -0
  305. package/dist/tools/session/extractSessionMemories.js +203 -0
  306. package/dist/tools/session/extractSessionMemories.js.map +1 -0
  307. package/dist/tools/session/finalizeSessionCoordination.d.ts +9 -0
  308. package/dist/tools/session/finalizeSessionCoordination.d.ts.map +1 -0
  309. package/dist/tools/session/finalizeSessionCoordination.js +85 -0
  310. package/dist/tools/session/finalizeSessionCoordination.js.map +1 -0
  311. package/dist/tools/session/flagForVerification.d.ts +17 -0
  312. package/dist/tools/session/flagForVerification.d.ts.map +1 -0
  313. package/dist/tools/session/flagForVerification.js +232 -0
  314. package/dist/tools/session/flagForVerification.js.map +1 -0
  315. package/dist/tools/session/getConstraints.d.ts +9 -0
  316. package/dist/tools/session/getConstraints.d.ts.map +1 -0
  317. package/dist/tools/session/getConstraints.js +84 -0
  318. package/dist/tools/session/getConstraints.js.map +1 -0
  319. package/dist/tools/session/getSessionStats.d.ts +9 -0
  320. package/dist/tools/session/getSessionStats.d.ts.map +1 -0
  321. package/dist/tools/session/getSessionStats.js +86 -0
  322. package/dist/tools/session/getSessionStats.js.map +1 -0
  323. package/dist/tools/session/getSessionSummary.d.ts +9 -0
  324. package/dist/tools/session/getSessionSummary.d.ts.map +1 -0
  325. package/dist/tools/session/getSessionSummary.js +360 -0
  326. package/dist/tools/session/getSessionSummary.js.map +1 -0
  327. package/dist/tools/session/getVerificationPrompt.d.ts +9 -0
  328. package/dist/tools/session/getVerificationPrompt.d.ts.map +1 -0
  329. package/dist/tools/session/getVerificationPrompt.js +210 -0
  330. package/dist/tools/session/getVerificationPrompt.js.map +1 -0
  331. package/dist/tools/session/liftConstraint.d.ts +9 -0
  332. package/dist/tools/session/liftConstraint.d.ts.map +1 -0
  333. package/dist/tools/session/liftConstraint.js +94 -0
  334. package/dist/tools/session/liftConstraint.js.map +1 -0
  335. package/dist/tools/session/recordVerificationOutcome.d.ts +24 -0
  336. package/dist/tools/session/recordVerificationOutcome.d.ts.map +1 -0
  337. package/dist/tools/session/recordVerificationOutcome.js +237 -0
  338. package/dist/tools/session/recordVerificationOutcome.js.map +1 -0
  339. package/dist/tools/session/saveSessionNote.d.ts +9 -0
  340. package/dist/tools/session/saveSessionNote.d.ts.map +1 -0
  341. package/dist/tools/session/saveSessionNote.js +213 -0
  342. package/dist/tools/session/saveSessionNote.js.map +1 -0
  343. package/dist/tools/session/sessionSearch.d.ts +9 -0
  344. package/dist/tools/session/sessionSearch.d.ts.map +1 -0
  345. package/dist/tools/session/sessionSearch.js +116 -0
  346. package/dist/tools/session/sessionSearch.js.map +1 -0
  347. package/dist/tools/session/startSessionCoordination.d.ts +13 -0
  348. package/dist/tools/session/startSessionCoordination.d.ts.map +1 -0
  349. package/dist/tools/session/startSessionCoordination.js +126 -0
  350. package/dist/tools/session/startSessionCoordination.js.map +1 -0
  351. package/dist/tools/session/trackApprovalFingerprint.d.ts +19 -0
  352. package/dist/tools/session/trackApprovalFingerprint.d.ts.map +1 -0
  353. package/dist/tools/session/trackApprovalFingerprint.js +172 -0
  354. package/dist/tools/session/trackApprovalFingerprint.js.map +1 -0
  355. package/dist/tools/session/trackConstraint.d.ts +9 -0
  356. package/dist/tools/session/trackConstraint.d.ts.map +1 -0
  357. package/dist/tools/session/trackConstraint.js +101 -0
  358. package/dist/tools/session/trackConstraint.js.map +1 -0
  359. package/dist/tools/session/validateCitation.d.ts +9 -0
  360. package/dist/tools/session/validateCitation.d.ts.map +1 -0
  361. package/dist/tools/session/validateCitation.js +450 -0
  362. package/dist/tools/session/validateCitation.js.map +1 -0
  363. package/dist/tools/stuck/checkStuckPattern.d.ts +9 -0
  364. package/dist/tools/stuck/checkStuckPattern.d.ts.map +1 -0
  365. package/dist/tools/stuck/checkStuckPattern.js +93 -0
  366. package/dist/tools/stuck/checkStuckPattern.js.map +1 -0
  367. package/dist/tools/stuck/getRecoverySuggestions.d.ts +9 -0
  368. package/dist/tools/stuck/getRecoverySuggestions.d.ts.map +1 -0
  369. package/dist/tools/stuck/getRecoverySuggestions.js +132 -0
  370. package/dist/tools/stuck/getRecoverySuggestions.js.map +1 -0
  371. package/dist/types/research.d.ts +76 -0
  372. package/dist/types/research.d.ts.map +1 -0
  373. package/dist/types/research.js +2 -0
  374. package/dist/types/research.js.map +1 -0
  375. package/dist/types/temporal-graph.d.ts +97 -0
  376. package/dist/types/temporal-graph.d.ts.map +1 -0
  377. package/dist/types/temporal-graph.js +2 -0
  378. package/dist/types/temporal-graph.js.map +1 -0
  379. package/dist/utils/AuditLogger.d.ts +99 -0
  380. package/dist/utils/AuditLogger.d.ts.map +1 -0
  381. package/dist/utils/AuditLogger.js +303 -0
  382. package/dist/utils/AuditLogger.js.map +1 -0
  383. package/dist/utils/CacheManager.d.ts +56 -0
  384. package/dist/utils/CacheManager.d.ts.map +1 -0
  385. package/dist/utils/CacheManager.js +184 -0
  386. package/dist/utils/CacheManager.js.map +1 -0
  387. package/dist/utils/CircuitBreaker.d.ts +76 -0
  388. package/dist/utils/CircuitBreaker.d.ts.map +1 -0
  389. package/dist/utils/CircuitBreaker.js +236 -0
  390. package/dist/utils/CircuitBreaker.js.map +1 -0
  391. package/dist/utils/CostTracker.d.ts +83 -0
  392. package/dist/utils/CostTracker.d.ts.map +1 -0
  393. package/dist/utils/CostTracker.js +228 -0
  394. package/dist/utils/CostTracker.js.map +1 -0
  395. package/dist/utils/DockerSandbox.d.ts +39 -0
  396. package/dist/utils/DockerSandbox.d.ts.map +1 -0
  397. package/dist/utils/DockerSandbox.js +277 -0
  398. package/dist/utils/DockerSandbox.js.map +1 -0
  399. package/dist/utils/FinalizationCompressor.d.ts +70 -0
  400. package/dist/utils/FinalizationCompressor.d.ts.map +1 -0
  401. package/dist/utils/FinalizationCompressor.js +295 -0
  402. package/dist/utils/FinalizationCompressor.js.map +1 -0
  403. package/dist/utils/MetaKnowledgeManager.d.ts +63 -0
  404. package/dist/utils/MetaKnowledgeManager.d.ts.map +1 -0
  405. package/dist/utils/MetaKnowledgeManager.js +152 -0
  406. package/dist/utils/MetaKnowledgeManager.js.map +1 -0
  407. package/dist/utils/PatternIndexer.d.ts +83 -0
  408. package/dist/utils/PatternIndexer.d.ts.map +1 -0
  409. package/dist/utils/PatternIndexer.js +730 -0
  410. package/dist/utils/PatternIndexer.js.map +1 -0
  411. package/dist/utils/PatternUsageTracker.d.ts +97 -0
  412. package/dist/utils/PatternUsageTracker.d.ts.map +1 -0
  413. package/dist/utils/PatternUsageTracker.js +352 -0
  414. package/dist/utils/PatternUsageTracker.js.map +1 -0
  415. package/dist/utils/PatternVerifier.d.ts +71 -0
  416. package/dist/utils/PatternVerifier.d.ts.map +1 -0
  417. package/dist/utils/PatternVerifier.js +328 -0
  418. package/dist/utils/PatternVerifier.js.map +1 -0
  419. package/dist/utils/PatternVersionManager.d.ts +47 -0
  420. package/dist/utils/PatternVersionManager.d.ts.map +1 -0
  421. package/dist/utils/PatternVersionManager.js +308 -0
  422. package/dist/utils/PatternVersionManager.js.map +1 -0
  423. package/dist/utils/QdrantConnectionManager.d.ts +47 -0
  424. package/dist/utils/QdrantConnectionManager.d.ts.map +1 -0
  425. package/dist/utils/QdrantConnectionManager.js +228 -0
  426. package/dist/utils/QdrantConnectionManager.js.map +1 -0
  427. package/dist/utils/RateLimiter.d.ts +85 -0
  428. package/dist/utils/RateLimiter.d.ts.map +1 -0
  429. package/dist/utils/RateLimiter.js +300 -0
  430. package/dist/utils/RateLimiter.js.map +1 -0
  431. package/dist/utils/RecoveryEngine.d.ts +45 -0
  432. package/dist/utils/RecoveryEngine.d.ts.map +1 -0
  433. package/dist/utils/RecoveryEngine.js +268 -0
  434. package/dist/utils/RecoveryEngine.js.map +1 -0
  435. package/dist/utils/ResearchCoordinator.d.ts +30 -0
  436. package/dist/utils/ResearchCoordinator.d.ts.map +1 -0
  437. package/dist/utils/ResearchCoordinator.js +197 -0
  438. package/dist/utils/ResearchCoordinator.js.map +1 -0
  439. package/dist/utils/SessionCoordinator.d.ts +111 -0
  440. package/dist/utils/SessionCoordinator.d.ts.map +1 -0
  441. package/dist/utils/SessionCoordinator.js +1062 -0
  442. package/dist/utils/SessionCoordinator.js.map +1 -0
  443. package/dist/utils/SkillExecutor.d.ts +50 -0
  444. package/dist/utils/SkillExecutor.d.ts.map +1 -0
  445. package/dist/utils/SkillExecutor.js +396 -0
  446. package/dist/utils/SkillExecutor.js.map +1 -0
  447. package/dist/utils/StuckDetector.d.ts +43 -0
  448. package/dist/utils/StuckDetector.d.ts.map +1 -0
  449. package/dist/utils/StuckDetector.js +336 -0
  450. package/dist/utils/StuckDetector.js.map +1 -0
  451. package/dist/utils/TemporalGraphIndex.d.ts +33 -0
  452. package/dist/utils/TemporalGraphIndex.d.ts.map +1 -0
  453. package/dist/utils/TemporalGraphIndex.js +218 -0
  454. package/dist/utils/TemporalGraphIndex.js.map +1 -0
  455. package/dist/utils/artifacts.d.ts +35 -0
  456. package/dist/utils/artifacts.d.ts.map +1 -0
  457. package/dist/utils/artifacts.js +294 -0
  458. package/dist/utils/artifacts.js.map +1 -0
  459. package/dist/utils/consensusAggregator.d.ts +50 -0
  460. package/dist/utils/consensusAggregator.d.ts.map +1 -0
  461. package/dist/utils/consensusAggregator.js +195 -0
  462. package/dist/utils/consensusAggregator.js.map +1 -0
  463. package/dist/utils/contextBuilder.d.ts +58 -0
  464. package/dist/utils/contextBuilder.d.ts.map +1 -0
  465. package/dist/utils/contextBuilder.js +221 -0
  466. package/dist/utils/contextBuilder.js.map +1 -0
  467. package/dist/utils/costPricing.d.ts +11 -0
  468. package/dist/utils/costPricing.d.ts.map +1 -0
  469. package/dist/utils/costPricing.js +86 -0
  470. package/dist/utils/costPricing.js.map +1 -0
  471. package/dist/utils/filesystem.d.ts +16 -0
  472. package/dist/utils/filesystem.d.ts.map +1 -0
  473. package/dist/utils/filesystem.js +184 -0
  474. package/dist/utils/filesystem.js.map +1 -0
  475. package/dist/utils/llmStreamClient.d.ts +41 -0
  476. package/dist/utils/llmStreamClient.d.ts.map +1 -0
  477. package/dist/utils/llmStreamClient.js +257 -0
  478. package/dist/utils/llmStreamClient.js.map +1 -0
  479. package/dist/utils/memory.d.ts +22 -0
  480. package/dist/utils/memory.d.ts.map +1 -0
  481. package/dist/utils/memory.js +67 -0
  482. package/dist/utils/memory.js.map +1 -0
  483. package/dist/utils/memoryBank.d.ts +18 -0
  484. package/dist/utils/memoryBank.d.ts.map +1 -0
  485. package/dist/utils/memoryBank.js +128 -0
  486. package/dist/utils/memoryBank.js.map +1 -0
  487. package/dist/utils/metrics.d.ts +30 -0
  488. package/dist/utils/metrics.d.ts.map +1 -0
  489. package/dist/utils/metrics.js +208 -0
  490. package/dist/utils/metrics.js.map +1 -0
  491. package/dist/utils/pythonRunner.d.ts +7 -0
  492. package/dist/utils/pythonRunner.d.ts.map +1 -0
  493. package/dist/utils/pythonRunner.js +72 -0
  494. package/dist/utils/pythonRunner.js.map +1 -0
  495. package/dist/utils/responseParser.d.ts +15 -0
  496. package/dist/utils/responseParser.d.ts.map +1 -0
  497. package/dist/utils/responseParser.js +306 -0
  498. package/dist/utils/responseParser.js.map +1 -0
  499. package/dist/utils/rlvr/PythonSandbox.d.ts +16 -0
  500. package/dist/utils/rlvr/PythonSandbox.d.ts.map +1 -0
  501. package/dist/utils/rlvr/PythonSandbox.js +203 -0
  502. package/dist/utils/rlvr/PythonSandbox.js.map +1 -0
  503. package/dist/utils/rlvr/RewardComputer.d.ts +28 -0
  504. package/dist/utils/rlvr/RewardComputer.d.ts.map +1 -0
  505. package/dist/utils/rlvr/RewardComputer.js +227 -0
  506. package/dist/utils/rlvr/RewardComputer.js.map +1 -0
  507. package/dist/utils/rlvr/RewardHistoryStore.d.ts +48 -0
  508. package/dist/utils/rlvr/RewardHistoryStore.d.ts.map +1 -0
  509. package/dist/utils/rlvr/RewardHistoryStore.js +428 -0
  510. package/dist/utils/rlvr/RewardHistoryStore.js.map +1 -0
  511. package/dist/utils/rlvr/SQLSandbox.d.ts +21 -0
  512. package/dist/utils/rlvr/SQLSandbox.d.ts.map +1 -0
  513. package/dist/utils/rlvr/SQLSandbox.js +199 -0
  514. package/dist/utils/rlvr/SQLSandbox.js.map +1 -0
  515. package/dist/utils/rlvr/TestGenerator.d.ts +8 -0
  516. package/dist/utils/rlvr/TestGenerator.d.ts.map +1 -0
  517. package/dist/utils/rlvr/TestGenerator.js +216 -0
  518. package/dist/utils/rlvr/TestGenerator.js.map +1 -0
  519. package/dist/utils/rlvr/TestOrchestrator.d.ts +45 -0
  520. package/dist/utils/rlvr/TestOrchestrator.d.ts.map +1 -0
  521. package/dist/utils/rlvr/TestOrchestrator.js +331 -0
  522. package/dist/utils/rlvr/TestOrchestrator.js.map +1 -0
  523. package/dist/utils/rlvr/TypeScriptSandbox.d.ts +16 -0
  524. package/dist/utils/rlvr/TypeScriptSandbox.d.ts.map +1 -0
  525. package/dist/utils/rlvr/TypeScriptSandbox.js +244 -0
  526. package/dist/utils/rlvr/TypeScriptSandbox.js.map +1 -0
  527. package/dist/utils/rlvr/index.d.ts +9 -0
  528. package/dist/utils/rlvr/index.d.ts.map +1 -0
  529. package/dist/utils/rlvr/index.js +9 -0
  530. package/dist/utils/rlvr/index.js.map +1 -0
  531. package/dist/utils/rlvr/python_executor.py +309 -0
  532. package/dist/utils/rlvr/sql_executor.py +233 -0
  533. package/dist/utils/rlvr/test-orchestrator.d.ts +2 -0
  534. package/dist/utils/rlvr/test-orchestrator.d.ts.map +1 -0
  535. package/dist/utils/rlvr/test-orchestrator.js +200 -0
  536. package/dist/utils/rlvr/test-orchestrator.js.map +1 -0
  537. package/dist/utils/rlvr/test-persistence.d.ts +2 -0
  538. package/dist/utils/rlvr/test-persistence.d.ts.map +1 -0
  539. package/dist/utils/rlvr/test-persistence.js +175 -0
  540. package/dist/utils/rlvr/test-persistence.js.map +1 -0
  541. package/dist/utils/rlvr/test-rlvr.d.ts +2 -0
  542. package/dist/utils/rlvr/test-rlvr.d.ts.map +1 -0
  543. package/dist/utils/rlvr/test-rlvr.js +286 -0
  544. package/dist/utils/rlvr/test-rlvr.js.map +1 -0
  545. package/dist/utils/rlvr/test-sql.d.ts +2 -0
  546. package/dist/utils/rlvr/test-sql.d.ts.map +1 -0
  547. package/dist/utils/rlvr/test-sql.js +63 -0
  548. package/dist/utils/rlvr/test-sql.js.map +1 -0
  549. package/dist/utils/rlvr/types.d.ts +133 -0
  550. package/dist/utils/rlvr/types.d.ts.map +1 -0
  551. package/dist/utils/rlvr/types.js +8 -0
  552. package/dist/utils/rlvr/types.js.map +1 -0
  553. package/dist/utils/tokenEstimator.d.ts +4 -0
  554. package/dist/utils/tokenEstimator.d.ts.map +1 -0
  555. package/dist/utils/tokenEstimator.js +14 -0
  556. package/dist/utils/tokenEstimator.js.map +1 -0
  557. package/package.json +78 -0
@@ -0,0 +1,303 @@
1
+ import * as fs from "fs/promises";
2
+ import * as path from "path";
3
+ const DEFAULT_CONFIG = {
4
+ storagePath: ".audit-log.jsonl",
5
+ flushIntervalMs: 30 * 1000,
6
+ maxEventAge: 90 * 24 * 60 * 60 * 1000,
7
+ maxEvents: 50000,
8
+ };
9
+ const SENSITIVE_PATTERNS = [
10
+ /password/i,
11
+ /secret/i,
12
+ /token/i,
13
+ /key/i,
14
+ /credential/i,
15
+ /auth/i,
16
+ /bearer/i,
17
+ ];
18
+ export class AuditLogger {
19
+ events = [];
20
+ config;
21
+ flushTimer = null;
22
+ isDirty = false;
23
+ isLoaded = false;
24
+ loadPromise = null;
25
+ constructor(config = {}) {
26
+ this.config = { ...DEFAULT_CONFIG, ...config };
27
+ this.startFlushTimer();
28
+ }
29
+ async log(eventType, tool, outcome, duration, options = {}) {
30
+ await this.ensureLoaded();
31
+ const event = {
32
+ timestamp: new Date().toISOString(),
33
+ eventType,
34
+ tool,
35
+ outcome,
36
+ duration,
37
+ projectPath: options.projectPath,
38
+ sessionId: options.sessionId,
39
+ input: this.sanitizeInput(options.input || {}),
40
+ output: options.output || {},
41
+ context: options.context,
42
+ };
43
+ this.events.push(event);
44
+ this.isDirty = true;
45
+ if (this.events.length > this.config.maxEvents) {
46
+ this.pruneOldEvents();
47
+ }
48
+ }
49
+ async query(options = {}) {
50
+ await this.ensureLoaded();
51
+ let filtered = [...this.events];
52
+ if (options.startDate) {
53
+ const start = new Date(options.startDate);
54
+ filtered = filtered.filter((e) => new Date(e.timestamp) >= start);
55
+ }
56
+ if (options.endDate) {
57
+ const end = new Date(options.endDate);
58
+ filtered = filtered.filter((e) => new Date(e.timestamp) <= end);
59
+ }
60
+ if (options.eventType) {
61
+ filtered = filtered.filter((e) => e.eventType === options.eventType);
62
+ }
63
+ if (options.tool) {
64
+ filtered = filtered.filter((e) => e.tool === options.tool);
65
+ }
66
+ if (options.outcome) {
67
+ filtered = filtered.filter((e) => e.outcome === options.outcome);
68
+ }
69
+ if (options.projectPath) {
70
+ filtered = filtered.filter((e) => e.projectPath?.includes(options.projectPath));
71
+ }
72
+ if (options.patternId) {
73
+ filtered = filtered.filter((e) => e.context?.patternId === options.patternId);
74
+ }
75
+ if (options.limit && options.limit > 0) {
76
+ filtered = filtered.slice(-options.limit);
77
+ }
78
+ return filtered;
79
+ }
80
+ async getSummary(period = "day") {
81
+ await this.ensureLoaded();
82
+ const now = new Date();
83
+ const { startDate, endDate } = this.getPeriodBounds(period, now);
84
+ const filtered = this.events.filter((e) => {
85
+ const eventDate = new Date(e.timestamp);
86
+ return eventDate >= new Date(startDate) && eventDate <= new Date(endDate);
87
+ });
88
+ const successCount = filtered.filter((e) => e.outcome === "success").length;
89
+ const failureCount = filtered.filter((e) => e.outcome === "failure").length;
90
+ const byEventType = {};
91
+ for (const event of filtered) {
92
+ if (!byEventType[event.eventType]) {
93
+ byEventType[event.eventType] = { count: 0, successCount: 0 };
94
+ }
95
+ const eventStats = byEventType[event.eventType];
96
+ eventStats.count++;
97
+ if (event.outcome === "success") {
98
+ eventStats.successCount++;
99
+ }
100
+ }
101
+ const byEventTypeWithRates = {};
102
+ for (const [type, stats] of Object.entries(byEventType)) {
103
+ byEventTypeWithRates[type] = {
104
+ count: stats.count,
105
+ successRate: stats.count > 0 ? stats.successCount / stats.count : 0,
106
+ };
107
+ }
108
+ const byTool = {};
109
+ for (const event of filtered) {
110
+ if (!byTool[event.tool]) {
111
+ byTool[event.tool] = { count: 0, totalDuration: 0 };
112
+ }
113
+ const toolStats = byTool[event.tool];
114
+ toolStats.count++;
115
+ toolStats.totalDuration += event.duration;
116
+ }
117
+ const byToolWithAvg = {};
118
+ for (const [tool, stats] of Object.entries(byTool)) {
119
+ byToolWithAvg[tool] = {
120
+ count: stats.count,
121
+ avgDuration: stats.count > 0 ? Math.round(stats.totalDuration / stats.count) : 0,
122
+ };
123
+ }
124
+ const patternCounts = new Map();
125
+ for (const event of filtered) {
126
+ if (event.context?.patternId) {
127
+ patternCounts.set(event.context.patternId, (patternCounts.get(event.context.patternId) || 0) + 1);
128
+ }
129
+ }
130
+ const topPatterns = Array.from(patternCounts.entries())
131
+ .map(([patternId, accessCount]) => ({ patternId, accessCount }))
132
+ .sort((a, b) => b.accessCount - a.accessCount)
133
+ .slice(0, 10);
134
+ const projectCounts = new Map();
135
+ for (const event of filtered) {
136
+ if (event.projectPath) {
137
+ const projectName = path.basename(event.projectPath);
138
+ projectCounts.set(projectName, (projectCounts.get(projectName) || 0) + 1);
139
+ }
140
+ }
141
+ const topProjects = Array.from(projectCounts.entries())
142
+ .map(([projectPath, accessCount]) => ({ projectPath, accessCount }))
143
+ .sort((a, b) => b.accessCount - a.accessCount)
144
+ .slice(0, 10);
145
+ return {
146
+ period,
147
+ startDate,
148
+ endDate,
149
+ totalEvents: filtered.length,
150
+ successCount,
151
+ failureCount,
152
+ successRate: filtered.length > 0 ? successCount / filtered.length : 0,
153
+ byEventType: byEventTypeWithRates,
154
+ byTool: byToolWithAvg,
155
+ topPatterns,
156
+ topProjects,
157
+ };
158
+ }
159
+ async getRecentEvents(limit = 20) {
160
+ await this.ensureLoaded();
161
+ return this.events.slice(-limit);
162
+ }
163
+ async getEventCount() {
164
+ await this.ensureLoaded();
165
+ return this.events.length;
166
+ }
167
+ async flush() {
168
+ if (!this.isDirty)
169
+ return;
170
+ try {
171
+ const dir = path.dirname(this.config.storagePath);
172
+ if (dir !== ".") {
173
+ await fs.mkdir(dir, { recursive: true });
174
+ }
175
+ const lines = this.events.map((e) => JSON.stringify(e)).join("\n");
176
+ await fs.writeFile(this.config.storagePath, lines + "\n", "utf-8");
177
+ this.isDirty = false;
178
+ }
179
+ catch (error) {
180
+ console.error("[AuditLogger] Failed to flush to disk:", error);
181
+ }
182
+ }
183
+ async clear() {
184
+ this.events = [];
185
+ this.isDirty = true;
186
+ await this.flush();
187
+ }
188
+ async clearAllData() {
189
+ this.events = [];
190
+ this.isLoaded = false;
191
+ this.loadPromise = null;
192
+ try {
193
+ await fs.unlink(this.config.storagePath);
194
+ }
195
+ catch {
196
+ }
197
+ }
198
+ destroy() {
199
+ if (this.flushTimer) {
200
+ clearInterval(this.flushTimer);
201
+ this.flushTimer = null;
202
+ }
203
+ }
204
+ async ensureLoaded() {
205
+ if (this.isLoaded)
206
+ return;
207
+ if (this.loadPromise) {
208
+ await this.loadPromise;
209
+ return;
210
+ }
211
+ this.loadPromise = this.load();
212
+ await this.loadPromise;
213
+ this.loadPromise = null;
214
+ }
215
+ async load() {
216
+ try {
217
+ const content = await fs.readFile(this.config.storagePath, "utf-8");
218
+ const lines = content
219
+ .trim()
220
+ .split("\n")
221
+ .filter((l) => l.trim());
222
+ this.events = lines.map((line) => JSON.parse(line));
223
+ this.pruneOldEvents();
224
+ }
225
+ catch {
226
+ this.events = [];
227
+ }
228
+ this.isLoaded = true;
229
+ }
230
+ pruneOldEvents() {
231
+ const cutoff = Date.now() - this.config.maxEventAge;
232
+ const beforeCount = this.events.length;
233
+ this.events = this.events.filter((e) => new Date(e.timestamp).getTime() > cutoff);
234
+ if (this.events.length > this.config.maxEvents) {
235
+ this.events = this.events.slice(-this.config.maxEvents);
236
+ }
237
+ if (this.events.length !== beforeCount) {
238
+ this.isDirty = true;
239
+ }
240
+ }
241
+ startFlushTimer() {
242
+ this.flushTimer = setInterval(() => {
243
+ this.flush().catch((err) => console.error("[AuditLogger] Flush error:", err));
244
+ }, this.config.flushIntervalMs);
245
+ this.flushTimer.unref();
246
+ }
247
+ getPeriodBounds(period, now) {
248
+ const endDate = now.toISOString();
249
+ let startDate;
250
+ switch (period) {
251
+ case "hour":
252
+ startDate = new Date(now.getTime() - 60 * 60 * 1000);
253
+ break;
254
+ case "day":
255
+ startDate = new Date(now.getTime() - 24 * 60 * 60 * 1000);
256
+ break;
257
+ case "week":
258
+ startDate = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
259
+ break;
260
+ case "month":
261
+ startDate = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
262
+ break;
263
+ case "all":
264
+ default:
265
+ startDate = new Date(0);
266
+ break;
267
+ }
268
+ return { startDate: startDate.toISOString(), endDate };
269
+ }
270
+ sanitizeInput(input) {
271
+ const sanitized = {};
272
+ for (const [key, value] of Object.entries(input)) {
273
+ const isSensitive = SENSITIVE_PATTERNS.some((pattern) => pattern.test(key));
274
+ if (isSensitive) {
275
+ sanitized[key] = "[REDACTED]";
276
+ }
277
+ else if (typeof value === "string" && value.length > 200) {
278
+ sanitized[key] = value.slice(0, 200) + "...";
279
+ }
280
+ else if (typeof value === "object" && value !== null) {
281
+ sanitized[key] = this.sanitizeInput(value);
282
+ }
283
+ else {
284
+ sanitized[key] = value;
285
+ }
286
+ }
287
+ return sanitized;
288
+ }
289
+ }
290
+ let auditLoggerInstance = null;
291
+ export function getAuditLogger(config) {
292
+ if (!auditLoggerInstance) {
293
+ auditLoggerInstance = new AuditLogger(config);
294
+ }
295
+ return auditLoggerInstance;
296
+ }
297
+ export function resetAuditLogger() {
298
+ if (auditLoggerInstance) {
299
+ auditLoggerInstance.destroy();
300
+ auditLoggerInstance = null;
301
+ }
302
+ }
303
+ //# sourceMappingURL=AuditLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditLogger.js","sourceRoot":"","sources":["../../src/utils/AuditLogger.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAgF7B,MAAM,cAAc,GAAsB;IACxC,WAAW,EAAE,kBAAkB;IAC/B,eAAe,EAAE,EAAE,GAAG,IAAI;IAC1B,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IACrC,SAAS,EAAE,KAAK;CACjB,CAAC;AAMF,MAAM,kBAAkB,GAAG;IACzB,WAAW;IACX,SAAS;IACT,QAAQ;IACR,MAAM;IACN,aAAa;IACb,OAAO;IACP,SAAS;CACV,CAAC;AAMF,MAAM,OAAO,WAAW;IACd,MAAM,GAAiB,EAAE,CAAC;IAC1B,MAAM,CAAoB;IAC1B,UAAU,GAA0B,IAAI,CAAC;IACzC,OAAO,GAAY,KAAK,CAAC;IACzB,QAAQ,GAAY,KAAK,CAAC;IAC1B,WAAW,GAAyB,IAAI,CAAC;IAEjD,YAAY,SAAqC,EAAE;QACjD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAKD,KAAK,CAAC,GAAG,CACP,SAAyB,EACzB,IAAY,EACZ,OAAqB,EACrB,QAAgB,EAChB,UAMI,EAAE;QAEN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,MAAM,KAAK,GAAe;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS;YACT,IAAI;YACJ,OAAO;YACP,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,KAAK,CACT,UASI,EAAE;QAEN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAGhC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QAClE,CAAC;QAGD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAC9C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAClD,CAAC;QACJ,CAAC;QAGD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACvC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKD,KAAK,CAAC,UAAU,CACd,SAAoD,KAAK;QAEzD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAGjE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,SAAS,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAGH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAG5E,MAAM,WAAW,GACf,EAAE,CAAC;QACL,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC/D,CAAC;YACD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC;YACjD,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAGD,MAAM,oBAAoB,GAGtB,EAAE,CAAC;QACP,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,oBAAoB,CAAC,IAAI,CAAC,GAAG;gBAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpE,CAAC;QACJ,CAAC;QAGD,MAAM,MAAM,GAA6D,EAAE,CAAC;QAC5E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACtD,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;YACtC,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,SAAS,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GAGf,EAAE,CAAC;QACP,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,aAAa,CAAC,IAAI,CAAC,GAAG;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EACT,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACtE,CAAC;QACJ,CAAC;QAGD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;gBAC7B,aAAa,CAAC,GAAG,CACf,KAAK,CAAC,OAAO,CAAC,SAAS,EACvB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;aAC7C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAGhB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACrD,aAAa,CAAC,GAAG,CACf,WAAW,EACX,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;aACnE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;aAC7C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhB,OAAO;YACL,MAAM;YACN,SAAS;YACT,OAAO;YACP,WAAW,EAAE,QAAQ,CAAC,MAAM;YAC5B,YAAY;YACZ,YAAY;YACZ,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrE,WAAW,EAAE,oBAAoB;YACjC,MAAM,EAAE,aAAa;YACrB,WAAW;YACX,WAAW;SACZ,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE;QACtC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAKD,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAKD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YAGD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAKD,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAKD,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IASO,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAKO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,KAAK,GAAG,OAAO;iBAClB,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC,CAAC;YAClE,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YAEP,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAKO,cAAc;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAEvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAChD,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAKO,eAAe;QACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACzB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CACjD,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAGhC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAKO,eAAe,CACrB,MAAiD,EACjD,GAAS;QAET,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,SAAe,CAAC;QAEpB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,KAAK;gBACR,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC1D,MAAM;YACR,KAAK,MAAM;gBACT,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,OAAO;gBACV,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC/D,MAAM;YACR,KAAK,KAAK,CAAC;YACX;gBACE,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;QACV,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;IACzD,CAAC;IAKO,aAAa,CACnB,KAA8B;QAE9B,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAEjD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACtD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAClB,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAE3D,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/C,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAEvD,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAgC,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAMD,IAAI,mBAAmB,GAAuB,IAAI,CAAC;AAKnD,MAAM,UAAU,cAAc,CAC5B,MAAmC;IAEnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAKD,MAAM,UAAU,gBAAgB;IAC9B,IAAI,mBAAmB,EAAE,CAAC;QACxB,mBAAmB,CAAC,OAAO,EAAE,CAAC;QAC9B,mBAAmB,GAAG,IAAI,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -0,0 +1,56 @@
1
+ export interface CacheEntry<T> {
2
+ value: T;
3
+ createdAt: number;
4
+ lastAccessedAt: number;
5
+ hits: number;
6
+ sizeBytes: number;
7
+ }
8
+ export interface CacheStats {
9
+ hits: number;
10
+ misses: number;
11
+ evictions: number;
12
+ currentSize: number;
13
+ maxSize: number;
14
+ entryCount: number;
15
+ hitRate: number;
16
+ avgEntryAge: number;
17
+ }
18
+ export interface CacheConfig {
19
+ maxSizeBytes: number;
20
+ defaultTTLMs: number;
21
+ cleanupIntervalMs: number;
22
+ }
23
+ export declare class CacheManager<T> {
24
+ private cache;
25
+ private config;
26
+ private currentSizeBytes;
27
+ private stats;
28
+ private cleanupTimer;
29
+ constructor(config?: Partial<CacheConfig>);
30
+ get(key: string): T | undefined;
31
+ set(key: string, value: T, _ttlMs?: number): void;
32
+ delete(key: string): boolean;
33
+ has(key: string): boolean;
34
+ clear(): void;
35
+ getStats(): CacheStats;
36
+ invalidatePattern(pattern: RegExp): number;
37
+ destroy(): void;
38
+ private isExpired;
39
+ private evictLRU;
40
+ private estimateSize;
41
+ private startCleanupTimer;
42
+ private cleanupExpired;
43
+ }
44
+ export declare const sessionCache: CacheManager<unknown>;
45
+ export interface EmbeddingCacheEntry {
46
+ embedding: number[];
47
+ model: string;
48
+ dimensions: number;
49
+ }
50
+ export declare const embeddingCache: CacheManager<EmbeddingCacheEntry>;
51
+ export declare const patternCache: CacheManager<unknown>;
52
+ export declare function generateContentHash(content: string): string;
53
+ export declare function sessionCacheKey(projectPath: string, sessionId: string): string;
54
+ export declare function embeddingCacheKey(content: string, model?: string): string;
55
+ export declare function patternCacheKey(skillId: string): string;
56
+ //# sourceMappingURL=CacheManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/utils/CacheManager.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAQD,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,KAAK,CAIX;IACF,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAQ7C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IA8B/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAuCjD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAY5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAazB,KAAK,IAAI,IAAI;IAQb,QAAQ,IAAI,UAAU;IA0BtB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAc1C,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;CAOvB;AAUD,eAAO,MAAM,YAAY,uBAIvB,CAAC;AAMH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,mCAIzB,CAAC;AAMH,eAAO,MAAM,YAAY,uBAIvB,CAAC;AASH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAKD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAKD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAiC,GACvC,MAAM,CAGR;AAKD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,184 @@
1
+ const DEFAULT_CONFIG = {
2
+ maxSizeBytes: 50 * 1024 * 1024,
3
+ defaultTTLMs: 30 * 60 * 1000,
4
+ cleanupIntervalMs: 60 * 1000,
5
+ };
6
+ export class CacheManager {
7
+ cache = new Map();
8
+ config;
9
+ currentSizeBytes = 0;
10
+ stats = {
11
+ hits: 0,
12
+ misses: 0,
13
+ evictions: 0,
14
+ };
15
+ cleanupTimer = null;
16
+ constructor(config = {}) {
17
+ this.config = { ...DEFAULT_CONFIG, ...config };
18
+ this.startCleanupTimer();
19
+ }
20
+ get(key) {
21
+ const entry = this.cache.get(key);
22
+ if (!entry) {
23
+ this.stats.misses++;
24
+ return undefined;
25
+ }
26
+ if (this.isExpired(entry)) {
27
+ this.delete(key);
28
+ this.stats.misses++;
29
+ return undefined;
30
+ }
31
+ entry.lastAccessedAt = Date.now();
32
+ entry.hits++;
33
+ this.stats.hits++;
34
+ this.cache.delete(key);
35
+ this.cache.set(key, entry);
36
+ return entry.value;
37
+ }
38
+ set(key, value, _ttlMs) {
39
+ const sizeBytes = this.estimateSize(value);
40
+ while (this.currentSizeBytes + sizeBytes > this.config.maxSizeBytes &&
41
+ this.cache.size > 0) {
42
+ this.evictLRU();
43
+ }
44
+ if (sizeBytes > this.config.maxSizeBytes) {
45
+ console.error(`⚠️ Cache entry too large (${sizeBytes} bytes), skipping cache`);
46
+ return;
47
+ }
48
+ if (this.cache.has(key)) {
49
+ this.delete(key);
50
+ }
51
+ const entry = {
52
+ value,
53
+ createdAt: Date.now(),
54
+ lastAccessedAt: Date.now(),
55
+ hits: 0,
56
+ sizeBytes,
57
+ };
58
+ this.cache.set(key, entry);
59
+ this.currentSizeBytes += sizeBytes;
60
+ }
61
+ delete(key) {
62
+ const entry = this.cache.get(key);
63
+ if (entry) {
64
+ this.currentSizeBytes -= entry.sizeBytes;
65
+ return this.cache.delete(key);
66
+ }
67
+ return false;
68
+ }
69
+ has(key) {
70
+ const entry = this.cache.get(key);
71
+ if (!entry)
72
+ return false;
73
+ if (this.isExpired(entry)) {
74
+ this.delete(key);
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+ clear() {
80
+ this.cache.clear();
81
+ this.currentSizeBytes = 0;
82
+ }
83
+ getStats() {
84
+ const totalRequests = this.stats.hits + this.stats.misses;
85
+ const entries = Array.from(this.cache.values());
86
+ const now = Date.now();
87
+ const avgEntryAge = entries.length > 0
88
+ ? entries.reduce((sum, e) => sum + (now - e.createdAt), 0) /
89
+ entries.length
90
+ : 0;
91
+ return {
92
+ hits: this.stats.hits,
93
+ misses: this.stats.misses,
94
+ evictions: this.stats.evictions,
95
+ currentSize: this.currentSizeBytes,
96
+ maxSize: this.config.maxSizeBytes,
97
+ entryCount: this.cache.size,
98
+ hitRate: totalRequests > 0 ? this.stats.hits / totalRequests : 0,
99
+ avgEntryAge,
100
+ };
101
+ }
102
+ invalidatePattern(pattern) {
103
+ let invalidated = 0;
104
+ for (const key of this.cache.keys()) {
105
+ if (pattern.test(key)) {
106
+ this.delete(key);
107
+ invalidated++;
108
+ }
109
+ }
110
+ return invalidated;
111
+ }
112
+ destroy() {
113
+ if (this.cleanupTimer) {
114
+ clearInterval(this.cleanupTimer);
115
+ this.cleanupTimer = null;
116
+ }
117
+ }
118
+ isExpired(entry) {
119
+ return Date.now() - entry.createdAt > this.config.defaultTTLMs;
120
+ }
121
+ evictLRU() {
122
+ const oldestKey = this.cache.keys().next().value;
123
+ if (oldestKey) {
124
+ this.delete(oldestKey);
125
+ this.stats.evictions++;
126
+ }
127
+ }
128
+ estimateSize(value) {
129
+ try {
130
+ const str = JSON.stringify(value);
131
+ return Math.ceil(str.length * 1.5);
132
+ }
133
+ catch {
134
+ return 1024;
135
+ }
136
+ }
137
+ startCleanupTimer() {
138
+ this.cleanupTimer = setInterval(() => {
139
+ this.cleanupExpired();
140
+ }, this.config.cleanupIntervalMs);
141
+ this.cleanupTimer.unref();
142
+ }
143
+ cleanupExpired() {
144
+ for (const [key, entry] of this.cache.entries()) {
145
+ if (this.isExpired(entry)) {
146
+ this.delete(key);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ export const sessionCache = new CacheManager({
152
+ maxSizeBytes: 100 * 1024 * 1024,
153
+ defaultTTLMs: 60 * 60 * 1000,
154
+ cleanupIntervalMs: 5 * 60 * 1000,
155
+ });
156
+ export const embeddingCache = new CacheManager({
157
+ maxSizeBytes: 200 * 1024 * 1024,
158
+ defaultTTLMs: 24 * 60 * 60 * 1000,
159
+ cleanupIntervalMs: 30 * 60 * 1000,
160
+ });
161
+ export const patternCache = new CacheManager({
162
+ maxSizeBytes: 50 * 1024 * 1024,
163
+ defaultTTLMs: 15 * 60 * 1000,
164
+ cleanupIntervalMs: 60 * 1000,
165
+ });
166
+ export function generateContentHash(content) {
167
+ let hash = 2166136261;
168
+ for (let i = 0; i < content.length; i++) {
169
+ hash ^= content.charCodeAt(i);
170
+ hash = Math.imul(hash, 16777619);
171
+ }
172
+ return (hash >>> 0).toString(16).padStart(8, "0");
173
+ }
174
+ export function sessionCacheKey(projectPath, sessionId) {
175
+ return `session:${projectPath}:${sessionId}`;
176
+ }
177
+ export function embeddingCacheKey(content, model = "text-embedding-3-small") {
178
+ const contentHash = generateContentHash(content);
179
+ return `embedding:${model}:${contentHash}`;
180
+ }
181
+ export function patternCacheKey(skillId) {
182
+ return `pattern:${skillId}`;
183
+ }
184
+ //# sourceMappingURL=CacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/utils/CacheManager.ts"],"names":[],"mappings":"AAsCA,MAAM,cAAc,GAAgB;IAClC,YAAY,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC9B,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC5B,iBAAiB,EAAE,EAAE,GAAG,IAAI;CAC7B,CAAC;AAEF,MAAM,OAAO,YAAY;IACf,KAAK,GAA+B,IAAI,GAAG,EAAE,CAAC;IAC9C,MAAM,CAAc;IACpB,gBAAgB,GAAW,CAAC,CAAC;IAC7B,KAAK,GAAG;QACd,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC;KACb,CAAC;IACM,YAAY,GAA0B,IAAI,CAAC;IAEnD,YAAY,SAA+B,EAAE;QAC3C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAKD,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAGD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAGD,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAGlB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAKD,GAAG,CAAC,GAAW,EAAE,KAAQ,EAAE,MAAe;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAG3C,OACE,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EACnB,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAGD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CACX,6BAA6B,SAAS,yBAAyB,CAChE,CAAC;YACF,OAAO;QACT,CAAC;QAGD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAkB;YAC3B,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;YAC1B,IAAI,EAAE,CAAC;YACP,SAAS;SACV,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC;IACrC,CAAC;IAKD,MAAM,CAAC,GAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,SAAS,CAAC;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC5B,CAAC;IAKD,QAAQ;QACN,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,CAAC,CAAC;QAER,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC3B,OAAO,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAChE,WAAW;SACZ,CAAC;IACJ,CAAC;IAKD,iBAAiB,CAAC,OAAe;QAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjB,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAKD,OAAO;QACL,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAKO,SAAS,CAAC,KAAoB;QACpC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IACjE,CAAC;IAKO,QAAQ;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAKO,YAAY,CAAC,KAAQ;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAElC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YAEP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKO,iBAAiB;QACvB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAGlC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAKO,cAAc;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAUD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAU;IACpD,YAAY,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAC/B,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC5B,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;CACjC,CAAC,CAAC;AAYH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,YAAY,CAAsB;IAClE,YAAY,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAC/B,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IACjC,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CAClC,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAU;IACpD,YAAY,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC9B,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC5B,iBAAiB,EAAE,EAAE,GAAG,IAAI;CAC7B,CAAC,CAAC;AASH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAEjD,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAKD,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,SAAiB;IAEjB,OAAO,WAAW,WAAW,IAAI,SAAS,EAAE,CAAC;AAC/C,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,QAAgB,wBAAwB;IAExC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,aAAa,KAAK,IAAI,WAAW,EAAE,CAAC;AAC7C,CAAC;AAKD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,WAAW,OAAO,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,76 @@
1
+ export type CircuitState = "CLOSED" | "OPEN" | "HALF_OPEN";
2
+ export interface CircuitBreakerConfig {
3
+ name: string;
4
+ failureThreshold?: number;
5
+ resetTimeout?: number;
6
+ halfOpenSuccesses?: number;
7
+ onStateChange?: (from: CircuitState, to: CircuitState, stats: CircuitStats) => void;
8
+ }
9
+ export interface CircuitStats {
10
+ state: CircuitState;
11
+ failures: number;
12
+ successes: number;
13
+ lastFailure: Date | null;
14
+ lastSuccess: Date | null;
15
+ lastStateChange: Date;
16
+ totalRequests: number;
17
+ totalFailures: number;
18
+ totalSuccesses: number;
19
+ consecutiveSuccesses: number;
20
+ }
21
+ export declare class CircuitBreakerError extends Error {
22
+ readonly serviceName: string;
23
+ readonly state: CircuitState;
24
+ constructor(message: string, serviceName: string, state: CircuitState);
25
+ }
26
+ export declare class CircuitBreaker {
27
+ private state;
28
+ private failures;
29
+ private successes;
30
+ private consecutiveSuccesses;
31
+ private lastFailure;
32
+ private lastSuccess;
33
+ private lastStateChange;
34
+ private totalRequests;
35
+ private totalFailures;
36
+ private totalSuccesses;
37
+ private openedAt;
38
+ private readonly name;
39
+ private readonly failureThreshold;
40
+ private readonly resetTimeout;
41
+ private readonly halfOpenSuccesses;
42
+ private readonly onStateChange?;
43
+ constructor(config: CircuitBreakerConfig);
44
+ execute<T>(operation: () => Promise<T>): Promise<T>;
45
+ executeWithFallback<T>(operation: () => Promise<T>, fallback: T | (() => T | Promise<T>)): Promise<T>;
46
+ isAllowed(): boolean;
47
+ getStats(): CircuitStats;
48
+ getState(): CircuitState;
49
+ reset(): void;
50
+ forceOpen(): void;
51
+ private shouldAttemptReset;
52
+ private onSuccess;
53
+ private onFailure;
54
+ private transitionTo;
55
+ }
56
+ declare class CircuitBreakerRegistry {
57
+ private breakers;
58
+ private defaultConfig;
59
+ getBreaker(name: string, config?: Partial<CircuitBreakerConfig>): CircuitBreaker;
60
+ getAllStats(): Record<string, CircuitStats>;
61
+ resetAll(): void;
62
+ hasOpenCircuits(): boolean;
63
+ getOpenCircuits(): string[];
64
+ setDefaultConfig(config: Partial<CircuitBreakerConfig>): void;
65
+ clear(): void;
66
+ }
67
+ export declare function getCircuitBreakerRegistry(): CircuitBreakerRegistry;
68
+ export declare function getCircuitBreaker(serviceName: "qdrant" | "openai" | "gemini" | string, config?: Partial<CircuitBreakerConfig>): CircuitBreaker;
69
+ export declare const ServiceCircuitBreakers: {
70
+ qdrant: () => CircuitBreaker;
71
+ openai: () => CircuitBreaker;
72
+ gemini: () => CircuitBreaker;
73
+ openrouter: () => CircuitBreaker;
74
+ };
75
+ export {};
76
+ //# sourceMappingURL=CircuitBreaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/utils/CircuitBreaker.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IAEnC,IAAI,EAAE,MAAM,CAAC;IAEb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,YAAY,KAChB,IAAI,CAAC;CACX;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,WAAW,EAAE,MAAM;aACnB,KAAK,EAAE,YAAY;gBAFnC,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY;CAKtC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAIrB;gBAEE,MAAM,EAAE,oBAAoB;IAWlC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BnD,mBAAmB,CAAC,CAAC,EACzB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC;IAoBb,SAAS,IAAI,OAAO;IAUpB,QAAQ,IAAI,YAAY;IAkBxB,QAAQ,IAAI,YAAY;IAOxB,KAAK,IAAI,IAAI;IAWb,SAAS,IAAI,IAAI;IAKjB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,YAAY;CAerB;AAKD,cAAM,sBAAsB;IAC1B,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,aAAa,CAInB;IAKF,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,cAAc;IAgBjB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAW3C,QAAQ,IAAI,IAAI;IAShB,eAAe,IAAI,OAAO;IAU1B,eAAe,IAAI,MAAM,EAAE;IAa3B,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAO7D,KAAK,IAAI,IAAI;CAGd;AAQD,wBAAgB,yBAAyB,IAAI,sBAAsB,CAElE;AAKD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EACpD,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,cAAc,CAEhB;AAKD,eAAO,MAAM,sBAAsB;;;;;CAwClC,CAAC"}