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,233 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ RLVR SQL Sandbox Executor
4
+
5
+ Executes SQL queries in an in-memory SQLite database.
6
+ Provides isolation through ephemeral databases that exist only for the request.
7
+
8
+ Communication protocol:
9
+ - Reads JSON from stdin: {"setup": "CREATE TABLE...", "query": "SELECT...", "params": [...]}
10
+ - Writes JSON to stdout: {"status": "success|error", "rows": [...], "columns": [...], ...}
11
+
12
+ Security measures:
13
+ - In-memory database only (no file access)
14
+ - Read-only mode available
15
+ - Query timeout enforcement
16
+ - No ATTACH DATABASE (prevents file access)
17
+ """
18
+
19
+ import sys
20
+ import json
21
+ import sqlite3
22
+ import traceback
23
+ from typing import Any, Dict, List, Optional
24
+
25
+
26
+ # Blocked SQL commands that could escape the sandbox
27
+ BLOCKED_COMMANDS = [
28
+ 'ATTACH', # Could attach to file databases
29
+ 'DETACH', # Database manipulation
30
+ 'LOAD_EXTENSION', # Could load arbitrary code
31
+ 'PRAGMA database_list', # Information disclosure
32
+ 'PRAGMA temp_store_directory', # File system access
33
+ ]
34
+
35
+
36
+ def is_safe_sql(sql: str) -> tuple[bool, Optional[str]]:
37
+ """Check if SQL is safe to execute in sandbox."""
38
+ sql_upper = sql.upper().strip()
39
+
40
+ for blocked in BLOCKED_COMMANDS:
41
+ if blocked.upper() in sql_upper:
42
+ return False, f"Blocked command: {blocked}"
43
+
44
+ return True, None
45
+
46
+
47
+ def execute_sql(
48
+ setup_sql: Optional[str],
49
+ query_sql: str,
50
+ params: Optional[List[Any]] = None,
51
+ read_only: bool = False
52
+ ) -> Dict[str, Any]:
53
+ """Execute SQL in an in-memory SQLite database."""
54
+
55
+ result = {
56
+ 'status': 'success',
57
+ 'rows': [],
58
+ 'columns': [],
59
+ 'rowCount': 0,
60
+ 'changes': 0,
61
+ 'lastRowId': None,
62
+ 'error': None,
63
+ }
64
+
65
+ conn = None
66
+ try:
67
+ # Create in-memory database
68
+ conn = sqlite3.connect(':memory:', timeout=5.0)
69
+ conn.row_factory = sqlite3.Row
70
+ cursor = conn.cursor()
71
+
72
+ # Enable foreign keys
73
+ cursor.execute('PRAGMA foreign_keys = ON')
74
+
75
+ # Run setup SQL if provided (schema creation, test data)
76
+ if setup_sql:
77
+ # Validate setup SQL
78
+ safe, reason = is_safe_sql(setup_sql)
79
+ if not safe:
80
+ result['status'] = 'error'
81
+ result['error'] = {
82
+ 'type': 'SecurityError',
83
+ 'message': f'Setup SQL blocked: {reason}',
84
+ }
85
+ return result
86
+
87
+ # Execute setup (may contain multiple statements)
88
+ cursor.executescript(setup_sql)
89
+ conn.commit()
90
+
91
+ # Validate main query
92
+ safe, reason = is_safe_sql(query_sql)
93
+ if not safe:
94
+ result['status'] = 'error'
95
+ result['error'] = {
96
+ 'type': 'SecurityError',
97
+ 'message': f'Query blocked: {reason}',
98
+ }
99
+ return result
100
+
101
+ # Check read-only mode
102
+ if read_only:
103
+ query_upper = query_sql.upper().strip()
104
+ if not query_upper.startswith('SELECT') and not query_upper.startswith('WITH'):
105
+ result['status'] = 'error'
106
+ result['error'] = {
107
+ 'type': 'SecurityError',
108
+ 'message': 'Read-only mode: only SELECT queries allowed',
109
+ }
110
+ return result
111
+
112
+ # Execute main query
113
+ if params:
114
+ cursor.execute(query_sql, params)
115
+ else:
116
+ cursor.execute(query_sql)
117
+
118
+ # Fetch results for SELECT queries
119
+ if cursor.description:
120
+ result['columns'] = [desc[0] for desc in cursor.description]
121
+ rows = cursor.fetchall()
122
+ result['rows'] = [list(row) for row in rows]
123
+ result['rowCount'] = len(result['rows'])
124
+ else:
125
+ # For INSERT/UPDATE/DELETE
126
+ result['changes'] = cursor.rowcount
127
+ result['lastRowId'] = cursor.lastrowid
128
+
129
+ conn.commit()
130
+
131
+ except sqlite3.Error as e:
132
+ result['status'] = 'error'
133
+ result['error'] = {
134
+ 'type': type(e).__name__,
135
+ 'message': str(e),
136
+ }
137
+ except Exception as e:
138
+ result['status'] = 'error'
139
+ result['error'] = {
140
+ 'type': type(e).__name__,
141
+ 'message': str(e),
142
+ 'traceback': traceback.format_exc(),
143
+ }
144
+ finally:
145
+ if conn:
146
+ conn.close()
147
+
148
+ return result
149
+
150
+
151
+ def make_serializable(obj: Any) -> Any:
152
+ """Convert object to JSON-serializable form."""
153
+ if obj is None or isinstance(obj, (bool, int, float, str)):
154
+ return obj
155
+ if isinstance(obj, (list, tuple)):
156
+ return [make_serializable(item) for item in obj]
157
+ if isinstance(obj, dict):
158
+ return {str(k): make_serializable(v) for k, v in obj.items()}
159
+ if isinstance(obj, bytes):
160
+ return obj.decode('utf-8', errors='replace')
161
+ return str(obj)
162
+
163
+
164
+ def main():
165
+ """Main entry point - reads from stdin, executes, writes to stdout."""
166
+ try:
167
+ # Read input JSON from stdin
168
+ input_data = json.load(sys.stdin)
169
+
170
+ setup_sql = input_data.get('setup')
171
+ query_sql = input_data.get('query', input_data.get('code', ''))
172
+ params = input_data.get('params', input_data.get('input'))
173
+ read_only = input_data.get('readOnly', False)
174
+
175
+ if not query_sql:
176
+ result = {
177
+ 'status': 'error',
178
+ 'rows': [],
179
+ 'columns': [],
180
+ 'rowCount': 0,
181
+ 'changes': 0,
182
+ 'lastRowId': None,
183
+ 'error': {
184
+ 'type': 'ValueError',
185
+ 'message': 'No query provided',
186
+ },
187
+ }
188
+ else:
189
+ # Convert params to list if it's a single value
190
+ if params is not None and not isinstance(params, (list, tuple)):
191
+ params = [params]
192
+
193
+ result = execute_sql(setup_sql, query_sql, params, read_only)
194
+
195
+ # Ensure all values are serializable
196
+ result = make_serializable(result)
197
+
198
+ # Output result as JSON
199
+ print(json.dumps(result))
200
+
201
+ except json.JSONDecodeError as e:
202
+ error_result = {
203
+ 'status': 'error',
204
+ 'rows': [],
205
+ 'columns': [],
206
+ 'rowCount': 0,
207
+ 'changes': 0,
208
+ 'lastRowId': None,
209
+ 'error': {
210
+ 'type': 'JSONDecodeError',
211
+ 'message': f'Invalid input JSON: {e}',
212
+ },
213
+ }
214
+ print(json.dumps(error_result))
215
+
216
+ except Exception as e:
217
+ error_result = {
218
+ 'status': 'error',
219
+ 'rows': [],
220
+ 'columns': [],
221
+ 'rowCount': 0,
222
+ 'changes': 0,
223
+ 'lastRowId': None,
224
+ 'error': {
225
+ 'type': 'ExecutorError',
226
+ 'message': str(e),
227
+ },
228
+ }
229
+ print(json.dumps(error_result))
230
+
231
+
232
+ if __name__ == '__main__':
233
+ main()
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/utils/rlvr/test-orchestrator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,200 @@
1
+ import { createOrchestrator, verifyPattern, verifyPatterns, } from "./TestOrchestrator.js";
2
+ async function runTests() {
3
+ console.log("=== Test Orchestrator Integration Test ===\n");
4
+ let passed = 0;
5
+ let failed = 0;
6
+ console.log("Test 1: Basic pattern verification (TypeScript)");
7
+ const pattern1 = {
8
+ id: "test-double",
9
+ title: "Double Number",
10
+ language: "typescript",
11
+ code: "(x) => x * 2",
12
+ examples: [
13
+ { input: 2, expectedOutput: 4, description: "Double 2" },
14
+ { input: 5, expectedOutput: 10, description: "Double 5" },
15
+ { input: 0, expectedOutput: 0, description: "Double 0" },
16
+ ],
17
+ };
18
+ const result1 = await verifyPattern(pattern1);
19
+ console.log(` Results: ${result1.passed}/${result1.totalTests} passed`);
20
+ if (result1.passed === 3 && result1.failed === 0) {
21
+ console.log(" ✓ Passed");
22
+ passed++;
23
+ }
24
+ else {
25
+ console.log(" ✗ Failed");
26
+ failed++;
27
+ }
28
+ console.log("\nTest 2: Python pattern verification");
29
+ const pattern2 = {
30
+ id: "test-factorial",
31
+ title: "Factorial",
32
+ language: "python",
33
+ code: `
34
+ def factorial(n):
35
+ if n <= 1:
36
+ return 1
37
+ return n * factorial(n - 1)
38
+
39
+ __RESULT__ = factorial(__INPUT__)
40
+ `,
41
+ examples: [
42
+ { input: 0, expectedOutput: 1, description: "Factorial 0" },
43
+ { input: 5, expectedOutput: 120, description: "Factorial 5" },
44
+ { input: 10, expectedOutput: 3628800, description: "Factorial 10" },
45
+ ],
46
+ };
47
+ const result2 = await verifyPattern(pattern2);
48
+ console.log(` Results: ${result2.passed}/${result2.totalTests} passed`);
49
+ if (result2.passed === 3 && result2.failed === 0) {
50
+ console.log(" ✓ Passed");
51
+ passed++;
52
+ }
53
+ else {
54
+ console.log(" ✗ Failed");
55
+ failed++;
56
+ }
57
+ console.log("\nTest 3: Event subscription");
58
+ const events = [];
59
+ const orchestrator = createOrchestrator({ verbose: false });
60
+ const unsubscribe = orchestrator.on((event) => {
61
+ events.push(event);
62
+ });
63
+ await orchestrator.runPattern(pattern1);
64
+ unsubscribe();
65
+ const hasStart = events.some((e) => e.type === "suite:start");
66
+ const hasEnd = events.some((e) => e.type === "suite:end");
67
+ const testEvents = events.filter((e) => e.type === "test:start" || e.type === "test:end");
68
+ console.log(` Events captured: ${events.length}`);
69
+ console.log(` Suite start/end: ${hasStart}/${hasEnd}`);
70
+ console.log(` Test events: ${testEvents.length}`);
71
+ if (hasStart && hasEnd && testEvents.length >= 6) {
72
+ console.log(" ✓ Passed");
73
+ passed++;
74
+ }
75
+ else {
76
+ console.log(" ✗ Failed");
77
+ failed++;
78
+ }
79
+ console.log("\nTest 4: Retry logic (flaky pattern simulation)");
80
+ const orchestratorWithRetry = createOrchestrator({ defaultRetries: 2 });
81
+ const flakyPattern = {
82
+ id: "test-flaky",
83
+ title: "Always Pass",
84
+ language: "typescript",
85
+ code: "(x) => x + 1",
86
+ examples: [{ input: 1, expectedOutput: 2, description: "Add 1" }],
87
+ };
88
+ const retryResult = await orchestratorWithRetry.runPattern(flakyPattern);
89
+ console.log(` Results: ${retryResult.passed}/${retryResult.totalTests} passed`);
90
+ console.log(` Retries used: ${retryResult.results[0]?.retries || 0}`);
91
+ if (retryResult.passed === 1) {
92
+ console.log(" ✓ Passed");
93
+ passed++;
94
+ }
95
+ else {
96
+ console.log(" ✗ Failed");
97
+ failed++;
98
+ }
99
+ console.log("\nTest 5: Multiple pattern verification");
100
+ const patterns = [
101
+ {
102
+ id: "multi-1",
103
+ title: "Add One",
104
+ language: "typescript",
105
+ code: "(x) => x + 1",
106
+ examples: [
107
+ { input: 1, expectedOutput: 2 },
108
+ { input: 0, expectedOutput: 1 },
109
+ ],
110
+ },
111
+ {
112
+ id: "multi-2",
113
+ title: "Square",
114
+ language: "typescript",
115
+ code: "(x) => x * x",
116
+ examples: [
117
+ { input: 2, expectedOutput: 4 },
118
+ { input: 3, expectedOutput: 9 },
119
+ ],
120
+ },
121
+ ];
122
+ const multiResults = await verifyPatterns(patterns);
123
+ console.log(` Patterns verified: ${multiResults.size}`);
124
+ let allPassed = true;
125
+ for (const [id, result] of multiResults) {
126
+ console.log(` ${id}: ${result.passed}/${result.totalTests} passed`);
127
+ if (result.failed > 0)
128
+ allPassed = false;
129
+ }
130
+ if (multiResults.size === 2 && allPassed) {
131
+ console.log(" ✓ Passed");
132
+ passed++;
133
+ }
134
+ else {
135
+ console.log(" ✗ Failed");
136
+ failed++;
137
+ }
138
+ console.log("\nTest 6: Fail-fast mode");
139
+ const failFastOrchestrator = createOrchestrator({ failFast: true });
140
+ const failPattern = {
141
+ id: "test-fail",
142
+ title: "Will Fail",
143
+ language: "typescript",
144
+ code: "(x) => x",
145
+ examples: [
146
+ { input: 1, expectedOutput: 1, description: "Pass" },
147
+ { input: 2, expectedOutput: 999, description: "Fail" },
148
+ { input: 3, expectedOutput: 3, description: "Should be skipped" },
149
+ ],
150
+ };
151
+ const failResult = await failFastOrchestrator.runPattern(failPattern);
152
+ console.log(` Results: passed=${failResult.passed}, failed=${failResult.failed}, skipped=${failResult.skipped}`);
153
+ if (failResult.passed === 1 &&
154
+ failResult.failed === 1 &&
155
+ failResult.skipped === 1) {
156
+ console.log(" ✓ Passed");
157
+ passed++;
158
+ }
159
+ else {
160
+ console.log(" ✗ Failed");
161
+ failed++;
162
+ }
163
+ console.log("\nTest 7: SQL pattern verification");
164
+ const sqlPattern = {
165
+ id: "test-sql-sum",
166
+ title: "SQL Sum",
167
+ language: "sql",
168
+ code: "SELECT SUM(value) as total FROM data",
169
+ examples: [
170
+ {
171
+ input: {
172
+ setup: `
173
+ CREATE TABLE data (id INTEGER, value INTEGER);
174
+ INSERT INTO data VALUES (1, 10);
175
+ INSERT INTO data VALUES (2, 20);
176
+ INSERT INTO data VALUES (3, 30);
177
+ `,
178
+ },
179
+ expectedOutput: [[60]],
180
+ description: "Sum values",
181
+ },
182
+ ],
183
+ };
184
+ const sqlResult = await verifyPattern(sqlPattern);
185
+ console.log(` Results: ${sqlResult.passed}/${sqlResult.totalTests} passed`);
186
+ if (sqlResult.passed === 1) {
187
+ console.log(" ✓ Passed");
188
+ passed++;
189
+ }
190
+ else {
191
+ console.log(" ✗ Failed");
192
+ console.log(` Details: ${JSON.stringify(sqlResult.results[0]?.failure, null, 2)}`);
193
+ failed++;
194
+ }
195
+ console.log("\n=== Summary ===");
196
+ console.log(`Passed: ${passed}/${passed + failed}`);
197
+ console.log(passed === passed + failed ? "✓ All tests passed!" : "✗ Some tests failed");
198
+ }
199
+ runTests().catch(console.error);
200
+ //# sourceMappingURL=test-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-orchestrator.js","sourceRoot":"","sources":["../../../src/utils/rlvr/test-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-persistence.d.ts","sourceRoot":"","sources":["../../../src/utils/rlvr/test-persistence.ts"],"names":[],"mappings":""}
@@ -0,0 +1,175 @@
1
+ import { computeReward, getRewardHistory, getRewardHistoryAsync, initializeRewardHistory, getRewardStorageStats, clearRewardHistory, flushRewardHistory, } from "./RewardComputer.js";
2
+ import { RewardHistoryStore, resetRewardHistoryStore, } from "./RewardHistoryStore.js";
3
+ function createMockSuiteResult(passed, failed, avgDuration = 50) {
4
+ const results = [];
5
+ for (let i = 0; i < passed; i++) {
6
+ results.push({
7
+ testId: `test-${i}`,
8
+ testName: `Test ${i}`,
9
+ status: "passed",
10
+ duration: avgDuration,
11
+ retries: 0,
12
+ logs: [],
13
+ });
14
+ }
15
+ for (let i = 0; i < failed; i++) {
16
+ results.push({
17
+ testId: `test-fail-${i}`,
18
+ testName: `Failed Test ${i}`,
19
+ status: "failed",
20
+ duration: avgDuration,
21
+ retries: 0,
22
+ failure: {
23
+ expected: true,
24
+ actual: false,
25
+ message: "Test failed",
26
+ },
27
+ logs: [],
28
+ });
29
+ }
30
+ return {
31
+ suiteId: "test-suite",
32
+ patternId: "test-pattern",
33
+ timestamp: new Date().toISOString(),
34
+ totalTests: passed + failed,
35
+ passed,
36
+ failed,
37
+ skipped: 0,
38
+ results,
39
+ totalDuration: (passed + failed) * avgDuration,
40
+ avgTestDuration: avgDuration,
41
+ memoryPeak: 0,
42
+ };
43
+ }
44
+ async function runTests() {
45
+ console.log("=== Reward History Persistence Test ===\n");
46
+ let passed = 0;
47
+ let failed = 0;
48
+ clearRewardHistory();
49
+ resetRewardHistoryStore();
50
+ console.log("Test 1: Initialize storage");
51
+ const initResult = await initializeRewardHistory();
52
+ console.log(` Mode: ${initResult.mode}`);
53
+ console.log(` Message: ${initResult.message}`);
54
+ if (initResult.mode === "qdrant" || initResult.mode === "memory") {
55
+ console.log(" ✓ Passed");
56
+ passed++;
57
+ }
58
+ else {
59
+ console.log(" ✗ Failed");
60
+ failed++;
61
+ }
62
+ console.log("\nTest 2: Compute and store rewards");
63
+ const pattern = {
64
+ id: "persistence-test-001",
65
+ title: "Persistence Test Pattern",
66
+ language: "typescript",
67
+ code: "(x) => x * 2",
68
+ examples: [{ input: 2, expectedOutput: 4 }],
69
+ };
70
+ const results = [
71
+ createMockSuiteResult(4, 0, 30),
72
+ createMockSuiteResult(3, 1, 40),
73
+ createMockSuiteResult(4, 0, 35),
74
+ createMockSuiteResult(4, 0, 25),
75
+ ];
76
+ for (const result of results) {
77
+ computeReward(pattern, result);
78
+ }
79
+ const history = getRewardHistory(pattern.id);
80
+ console.log(` Rewards in cache: ${history?.rewards.length || 0}`);
81
+ console.log(` Average score: ${history?.averageScore.toFixed(3) || "N/A"}`);
82
+ console.log(` Consecutive passes: ${history?.consecutivePasses || 0}`);
83
+ if (history && history.rewards.length === 4) {
84
+ console.log(" ✓ Passed");
85
+ passed++;
86
+ }
87
+ else {
88
+ console.log(" ✗ Failed");
89
+ failed++;
90
+ }
91
+ console.log("\nTest 3: Flush to persistent storage");
92
+ await flushRewardHistory();
93
+ await new Promise((resolve) => setTimeout(resolve, 200));
94
+ const stats = await getRewardStorageStats();
95
+ console.log(` Storage mode: ${stats.mode}`);
96
+ console.log(` Pattern count: ${stats.patternCount}`);
97
+ console.log(` Total rewards: ${stats.totalRewards}`);
98
+ console.log(` Cache size: ${stats.cacheSize}`);
99
+ if (stats.cacheSize >= 1) {
100
+ console.log(" ✓ Passed");
101
+ passed++;
102
+ }
103
+ else {
104
+ console.log(" ✗ Failed");
105
+ failed++;
106
+ }
107
+ console.log("\nTest 4: Async history retrieval");
108
+ const asyncHistory = await getRewardHistoryAsync(pattern.id);
109
+ console.log(` Retrieved rewards: ${asyncHistory?.rewards.length || 0}`);
110
+ console.log(` Average score: ${asyncHistory?.averageScore.toFixed(3) || "N/A"}`);
111
+ if (asyncHistory && asyncHistory.rewards.length >= 4) {
112
+ console.log(" ✓ Passed");
113
+ passed++;
114
+ }
115
+ else {
116
+ console.log(" ✗ Failed");
117
+ failed++;
118
+ }
119
+ console.log("\nTest 5: Trend calculation over multiple runs");
120
+ const trendPattern = {
121
+ id: "trend-test-001",
122
+ title: "Trend Test",
123
+ language: "typescript",
124
+ code: "(x) => x",
125
+ examples: [{ input: 1, expectedOutput: 1 }],
126
+ };
127
+ const trendResults = [
128
+ createMockSuiteResult(2, 2, 100),
129
+ createMockSuiteResult(3, 1, 80),
130
+ createMockSuiteResult(3, 1, 60),
131
+ createMockSuiteResult(4, 0, 40),
132
+ createMockSuiteResult(4, 0, 30),
133
+ ];
134
+ let lastSignal;
135
+ for (const result of trendResults) {
136
+ lastSignal = computeReward(trendPattern, result);
137
+ }
138
+ const trendHistory = getRewardHistory(trendPattern.id);
139
+ console.log(` Trend: ${trendHistory?.recentTrend || "N/A"}`);
140
+ console.log(` Final score: ${lastSignal?.overallScore.toFixed(3) || "N/A"}`);
141
+ console.log(` Average score: ${trendHistory?.averageScore.toFixed(3) || "N/A"}`);
142
+ console.log(` Consecutive passes: ${trendHistory?.consecutivePasses || 0}`);
143
+ if (trendHistory?.recentTrend === "improving" &&
144
+ trendHistory.consecutivePasses === 2) {
145
+ console.log(" ✓ Passed");
146
+ passed++;
147
+ }
148
+ else {
149
+ console.log(" ✗ Failed (trend may be stable due to score threshold)");
150
+ if (trendHistory?.consecutivePasses === 2) {
151
+ passed++;
152
+ }
153
+ else {
154
+ failed++;
155
+ }
156
+ }
157
+ console.log("\nTest 6: In-memory only mode");
158
+ const memStore = new RewardHistoryStore({ inMemoryOnly: true });
159
+ const memInit = await memStore.initialize();
160
+ console.log(` Mode: ${memInit.mode}`);
161
+ if (memInit.mode === "memory") {
162
+ console.log(" ✓ Passed");
163
+ passed++;
164
+ }
165
+ else {
166
+ console.log(" ✗ Failed");
167
+ failed++;
168
+ }
169
+ console.log("\n=== Summary ===");
170
+ console.log(`Passed: ${passed}/${passed + failed}`);
171
+ console.log(passed === passed + failed ? "✓ All tests passed!" : "✗ Some tests failed");
172
+ clearRewardHistory();
173
+ }
174
+ runTests().catch(console.error);
175
+ //# sourceMappingURL=test-persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-persistence.js","sourceRoot":"","sources":["../../../src/utils/rlvr/test-persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-rlvr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-rlvr.d.ts","sourceRoot":"","sources":["../../../src/utils/rlvr/test-rlvr.ts"],"names":[],"mappings":""}