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,336 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ export class StuckDetector {
4
+ coordinator;
5
+ projectPath;
6
+ cooldownMinutes = 10;
7
+ lastAlertTime = null;
8
+ BLOCKER_REPEAT_THRESHOLD = 3;
9
+ NO_PROGRESS_MINUTES = 20;
10
+ ERROR_REPEAT_THRESHOLD = 5;
11
+ SIMILARITY_THRESHOLD = 0.4;
12
+ constructor(coordinator, projectPath) {
13
+ this.coordinator = coordinator;
14
+ this.projectPath = projectPath;
15
+ }
16
+ async analyze() {
17
+ const cooldownActive = this.isCooldownActive();
18
+ const [repeatedBlocker, noProgress, errorLoop] = await Promise.all([
19
+ this.detectRepeatedBlocker(),
20
+ this.detectNoProgress(),
21
+ this.detectErrorLoop(),
22
+ ]);
23
+ const patterns = [repeatedBlocker, noProgress, errorLoop];
24
+ const detectedPatterns = patterns.filter((p) => p.detected);
25
+ const overallConfidence = detectedPatterns.length > 0
26
+ ? detectedPatterns.reduce((sum, p) => sum + p.confidence, 0) /
27
+ detectedPatterns.length
28
+ : 0;
29
+ const stuck = detectedPatterns.length > 0 && overallConfidence >= 0.5;
30
+ if (stuck && !cooldownActive) {
31
+ this.lastAlertTime = new Date();
32
+ }
33
+ return {
34
+ stuck,
35
+ patterns,
36
+ overallConfidence,
37
+ lastAlertTime: this.lastAlertTime?.toISOString() || null,
38
+ cooldownActive,
39
+ };
40
+ }
41
+ async detectRepeatedBlocker() {
42
+ try {
43
+ const blockers = await this.coordinator.getNotesByType("blocker");
44
+ if (blockers.length < this.BLOCKER_REPEAT_THRESHOLD) {
45
+ return {
46
+ type: "repeated_blocker",
47
+ detected: false,
48
+ confidence: 0,
49
+ details: {
50
+ description: "No repeated blockers detected",
51
+ evidence: [],
52
+ },
53
+ };
54
+ }
55
+ const blockerGroups = this.groupSimilarBlockers(blockers);
56
+ const repeatedGroups = blockerGroups.filter((group) => group.blockers.length >= this.BLOCKER_REPEAT_THRESHOLD);
57
+ if (repeatedGroups.length === 0) {
58
+ return {
59
+ type: "repeated_blocker",
60
+ detected: false,
61
+ confidence: 0,
62
+ details: {
63
+ description: "No repeated blockers detected",
64
+ evidence: [],
65
+ },
66
+ };
67
+ }
68
+ const mostRepeated = repeatedGroups.reduce((max, group) => group.blockers.length > max.blockers.length ? group : max);
69
+ const firstBlocker = mostRepeated.blockers[0];
70
+ const lastBlocker = mostRepeated.blockers[mostRepeated.blockers.length - 1];
71
+ if (!firstBlocker || !lastBlocker) {
72
+ return {
73
+ type: "repeated_blocker",
74
+ detected: false,
75
+ confidence: 0,
76
+ details: {
77
+ description: "Error: Invalid blocker data",
78
+ evidence: [],
79
+ },
80
+ };
81
+ }
82
+ const firstTime = new Date(firstBlocker.timestamp);
83
+ const lastTime = new Date(lastBlocker.timestamp);
84
+ const timeSinceFirst = this.formatDuration(lastTime.getTime() - firstTime.getTime());
85
+ const repetitionCount = mostRepeated.blockers.length;
86
+ const timeSpanMinutes = (lastTime.getTime() - firstTime.getTime()) / (1000 * 60);
87
+ const confidence = Math.min(0.5 + repetitionCount / 10 + timeSpanMinutes / 60, 1.0);
88
+ return {
89
+ type: "repeated_blocker",
90
+ detected: true,
91
+ confidence,
92
+ details: {
93
+ description: `Blocker mentioned ${repetitionCount} times over ${timeSinceFirst}`,
94
+ evidence: mostRepeated.blockers.map((b) => `[${new Date(b.timestamp).toLocaleTimeString()}] ${b.content}`),
95
+ timeSinceFirst,
96
+ },
97
+ };
98
+ }
99
+ catch (error) {
100
+ console.error(`❌ Failed to detect repeated blocker: ${error.message}`);
101
+ return {
102
+ type: "repeated_blocker",
103
+ detected: false,
104
+ confidence: 0,
105
+ details: {
106
+ description: "Error during detection",
107
+ evidence: [],
108
+ },
109
+ };
110
+ }
111
+ }
112
+ async detectNoProgress() {
113
+ try {
114
+ const lastModified = await this.getLastFileModifiedTime(this.projectPath);
115
+ if (!lastModified) {
116
+ return {
117
+ type: "no_progress",
118
+ detected: false,
119
+ confidence: 0,
120
+ details: {
121
+ description: "Unable to determine file modification times",
122
+ evidence: [],
123
+ },
124
+ };
125
+ }
126
+ const now = Date.now();
127
+ const idleTimeMs = now - lastModified;
128
+ const idleMinutes = idleTimeMs / (1000 * 60);
129
+ if (idleMinutes < this.NO_PROGRESS_MINUTES) {
130
+ return {
131
+ type: "no_progress",
132
+ detected: false,
133
+ confidence: 0,
134
+ details: {
135
+ description: `Files modified ${Math.floor(idleMinutes)} minutes ago (active)`,
136
+ evidence: [],
137
+ idleTime: this.formatDuration(idleTimeMs),
138
+ },
139
+ };
140
+ }
141
+ const confidence = Math.min(0.5 + (idleMinutes - 20) / 80, 1.0);
142
+ return {
143
+ type: "no_progress",
144
+ detected: true,
145
+ confidence,
146
+ details: {
147
+ description: `No file changes for ${Math.floor(idleMinutes)} minutes`,
148
+ evidence: [
149
+ `Last file modification: ${new Date(lastModified).toLocaleTimeString()}`,
150
+ `Current time: ${new Date(now).toLocaleTimeString()}`,
151
+ ],
152
+ idleTime: this.formatDuration(idleTimeMs),
153
+ },
154
+ };
155
+ }
156
+ catch (error) {
157
+ console.error(`❌ Failed to detect no progress: ${error.message}`);
158
+ return {
159
+ type: "no_progress",
160
+ detected: false,
161
+ confidence: 0,
162
+ details: {
163
+ description: "Error during detection",
164
+ evidence: [],
165
+ },
166
+ };
167
+ }
168
+ }
169
+ async detectErrorLoop() {
170
+ try {
171
+ const errorResults = await this.coordinator.search("error failed exception bug", 20);
172
+ if (errorResults.length < this.ERROR_REPEAT_THRESHOLD) {
173
+ return {
174
+ type: "error_loop",
175
+ detected: false,
176
+ confidence: 0,
177
+ details: {
178
+ description: "No error loops detected",
179
+ evidence: [],
180
+ },
181
+ };
182
+ }
183
+ const errorGroups = this.groupSimilarErrors(errorResults);
184
+ const repeatedErrors = errorGroups.filter((group) => group.errors.length >= this.ERROR_REPEAT_THRESHOLD);
185
+ if (repeatedErrors.length === 0) {
186
+ return {
187
+ type: "error_loop",
188
+ detected: false,
189
+ confidence: 0,
190
+ details: {
191
+ description: "No error loops detected",
192
+ evidence: [],
193
+ },
194
+ };
195
+ }
196
+ const mostRepeated = repeatedErrors.reduce((max, group) => group.errors.length > max.errors.length ? group : max);
197
+ const repetitionCount = mostRepeated.errors.length;
198
+ const confidence = Math.min(0.5 + repetitionCount / 15, 1.0);
199
+ return {
200
+ type: "error_loop",
201
+ detected: true,
202
+ confidence,
203
+ details: {
204
+ description: `Same error occurred ${repetitionCount} times`,
205
+ evidence: mostRepeated.errors
206
+ .slice(0, 5)
207
+ .map((e) => `[${new Date(e.timestamp).toLocaleTimeString()}] ${e.content.slice(0, 100)}...`),
208
+ repetitionCount,
209
+ },
210
+ };
211
+ }
212
+ catch (error) {
213
+ console.error(`❌ Failed to detect error loop: ${error.message}`);
214
+ return {
215
+ type: "error_loop",
216
+ detected: false,
217
+ confidence: 0,
218
+ details: {
219
+ description: "Error during detection",
220
+ evidence: [],
221
+ },
222
+ };
223
+ }
224
+ }
225
+ groupSimilarBlockers(blockers) {
226
+ const groups = [];
227
+ for (const blocker of blockers) {
228
+ let foundGroup = false;
229
+ for (const group of groups) {
230
+ if (this.isSimilar(blocker.content, group.representative)) {
231
+ group.blockers.push(blocker);
232
+ foundGroup = true;
233
+ break;
234
+ }
235
+ }
236
+ if (!foundGroup) {
237
+ groups.push({
238
+ representative: blocker.content,
239
+ blockers: [blocker],
240
+ });
241
+ }
242
+ }
243
+ return groups;
244
+ }
245
+ groupSimilarErrors(errors) {
246
+ const groups = [];
247
+ for (const error of errors) {
248
+ let foundGroup = false;
249
+ for (const group of groups) {
250
+ if (this.isSimilar(error.content, group.representative)) {
251
+ group.errors.push(error);
252
+ foundGroup = true;
253
+ break;
254
+ }
255
+ }
256
+ if (!foundGroup) {
257
+ groups.push({
258
+ representative: error.content,
259
+ errors: [error],
260
+ });
261
+ }
262
+ }
263
+ return groups;
264
+ }
265
+ isSimilar(text1, text2) {
266
+ const normalize = (text) => text.toLowerCase().replace(/[^a-z0-9\s]/g, "");
267
+ const words1 = new Set(normalize(text1).split(/\s+/));
268
+ const words2 = new Set(normalize(text2).split(/\s+/));
269
+ const intersection = new Set([...words1].filter((w) => words2.has(w)));
270
+ const union = new Set([...words1, ...words2]);
271
+ const similarity = intersection.size / union.size;
272
+ return similarity >= this.SIMILARITY_THRESHOLD;
273
+ }
274
+ async getLastFileModifiedTime(dirPath) {
275
+ try {
276
+ let latestTime = 0;
277
+ const scanDirectory = async (currentPath) => {
278
+ const entries = fs.readdirSync(currentPath, { withFileTypes: true });
279
+ for (const entry of entries) {
280
+ const fullPath = path.join(currentPath, entry.name);
281
+ if (entry.isDirectory() &&
282
+ [
283
+ "node_modules",
284
+ ".git",
285
+ "dist",
286
+ "build",
287
+ ".next",
288
+ "coverage",
289
+ ".agent-memory",
290
+ ".agent-artifacts",
291
+ ].includes(entry.name)) {
292
+ continue;
293
+ }
294
+ if (entry.isDirectory()) {
295
+ await scanDirectory(fullPath);
296
+ }
297
+ else {
298
+ const stats = fs.statSync(fullPath);
299
+ if (stats.mtimeMs > latestTime) {
300
+ latestTime = stats.mtimeMs;
301
+ }
302
+ }
303
+ }
304
+ };
305
+ await scanDirectory(dirPath);
306
+ return latestTime > 0 ? latestTime : null;
307
+ }
308
+ catch (error) {
309
+ console.error(`❌ Failed to scan directory: ${error.message}`);
310
+ return null;
311
+ }
312
+ }
313
+ isCooldownActive() {
314
+ if (!this.lastAlertTime)
315
+ return false;
316
+ const now = Date.now();
317
+ const timeSinceLastAlert = now - this.lastAlertTime.getTime();
318
+ const cooldownMs = this.cooldownMinutes * 60 * 1000;
319
+ return timeSinceLastAlert < cooldownMs;
320
+ }
321
+ formatDuration(ms) {
322
+ const minutes = Math.floor(ms / (1000 * 60));
323
+ const hours = Math.floor(minutes / 60);
324
+ const remainingMinutes = minutes % 60;
325
+ if (hours > 0) {
326
+ return `${hours}h ${remainingMinutes}m`;
327
+ }
328
+ else {
329
+ return `${minutes}m`;
330
+ }
331
+ }
332
+ resetCooldown() {
333
+ this.lastAlertTime = null;
334
+ }
335
+ }
336
+ //# sourceMappingURL=StuckDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StuckDetector.js","sourceRoot":"","sources":["../../src/utils/StuckDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { TemporalGraphIndex, SessionEdge, TimeMarker, CausalChain, SessionRelationshipType } from "../types/temporal-graph.js";
2
+ export declare class TemporalGraphIndexManager {
3
+ private projectPath;
4
+ private indexPath;
5
+ private index;
6
+ constructor(projectPath: string);
7
+ load(): Promise<TemporalGraphIndex>;
8
+ save(): Promise<void>;
9
+ linkSessions(sourceSession: string, targetSession: string, relationship: SessionRelationshipType, evidence?: string): Promise<SessionEdge>;
10
+ getSessionAncestors(sessionId: string): Promise<SessionEdge[]>;
11
+ getSessionDescendants(sessionId: string): Promise<SessionEdge[]>;
12
+ getSessionChain(sessionId: string, maxDepth?: number): Promise<Array<{
13
+ sessionId: string;
14
+ depth: number;
15
+ relationship: SessionRelationshipType;
16
+ direction: "ancestor" | "descendant";
17
+ }>>;
18
+ createTimeMarker(label: string, granularity: "day" | "week" | "milestone", timestamp?: string, sessionIds?: string[]): Promise<TimeMarker>;
19
+ addSessionToMarker(markerId: string, sessionId: string): Promise<void>;
20
+ getSessionsInRange(startDate: string, endDate: string): Promise<TimeMarker[]>;
21
+ storeCausalChain(name: string, chain: number[], sessionsInvolved: string[]): Promise<CausalChain>;
22
+ getCausalChainsForSession(sessionId: string): Promise<CausalChain[]>;
23
+ getEdgesByType(relationship: SessionRelationshipType): Promise<SessionEdge[]>;
24
+ getStats(): Promise<{
25
+ totalEdges: number;
26
+ totalMarkers: number;
27
+ totalChains: number;
28
+ edgesByType: Record<string, number>;
29
+ markersByGranularity: Record<string, number>;
30
+ }>;
31
+ }
32
+ export declare function getTemporalGraphIndex(projectPath: string): TemporalGraphIndexManager;
33
+ //# sourceMappingURL=TemporalGraphIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemporalGraphIndex.d.ts","sourceRoot":"","sources":["../../src/utils/TemporalGraphIndex.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,WAAW,EACX,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AAmBpC,qBAAa,yBAAyB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAmC;gBAEpC,WAAW,EAAE,MAAM;IAYzB,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA+BnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrB,YAAY,CAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,uBAAuB,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC;IAuCjB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ9D,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQhE,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAU,GACnB,OAAO,CACR,KAAK,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,uBAAuB,CAAC;QACtC,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC;KACtC,CAAC,CACH;IAyDK,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,KAAK,GAAG,MAAM,GAAG,WAAW,EACzC,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,UAAU,CAAC;IAqBhB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtE,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;IAclB,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,WAAW,CAAC;IAqBjB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAUpE,cAAc,CAClB,YAAY,EAAE,uBAAuB,GACpC,OAAO,CAAC,WAAW,EAAE,CAAC;IAQnB,QAAQ,IAAI,OAAO,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9C,CAAC;CAuBH;AAQD,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,GAClB,yBAAyB,CAK3B"}
@@ -0,0 +1,218 @@
1
+ import { readFile, writeFile, mkdir } from "fs/promises";
2
+ import { join, dirname } from "path";
3
+ import { existsSync } from "fs";
4
+ function createEmptyIndex(project) {
5
+ return {
6
+ version: "1.0",
7
+ project,
8
+ last_updated: new Date().toISOString(),
9
+ session_edges: [],
10
+ time_markers: [],
11
+ causal_chains: [],
12
+ };
13
+ }
14
+ export class TemporalGraphIndexManager {
15
+ projectPath;
16
+ indexPath;
17
+ index = null;
18
+ constructor(projectPath) {
19
+ this.projectPath = projectPath;
20
+ this.indexPath = join(projectPath, ".agent-artifacts", "temporal-graph-index.json");
21
+ }
22
+ async load() {
23
+ if (this.index) {
24
+ return this.index;
25
+ }
26
+ try {
27
+ if (existsSync(this.indexPath)) {
28
+ const content = await readFile(this.indexPath, "utf-8");
29
+ this.index = JSON.parse(content);
30
+ console.error(`📊 Loaded temporal graph index: ${this.index.session_edges.length} edges, ${this.index.time_markers.length} markers`);
31
+ }
32
+ else {
33
+ const projectName = this.projectPath.split("/").pop() || "default";
34
+ this.index = createEmptyIndex(projectName);
35
+ console.error(`📊 Created new temporal graph index for ${projectName}`);
36
+ }
37
+ return this.index;
38
+ }
39
+ catch (error) {
40
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
41
+ console.error(`⚠️ Failed to load temporal graph index: ${errorMessage}`);
42
+ const projectName = this.projectPath.split("/").pop() || "default";
43
+ this.index = createEmptyIndex(projectName);
44
+ return this.index;
45
+ }
46
+ }
47
+ async save() {
48
+ if (!this.index) {
49
+ throw new Error("Index not loaded. Call load() first.");
50
+ }
51
+ try {
52
+ const dir = dirname(this.indexPath);
53
+ if (!existsSync(dir)) {
54
+ await mkdir(dir, { recursive: true });
55
+ }
56
+ this.index.last_updated = new Date().toISOString();
57
+ await writeFile(this.indexPath, JSON.stringify(this.index, null, 2), "utf-8");
58
+ console.error(`💾 Saved temporal graph index: ${this.indexPath}`);
59
+ }
60
+ catch (error) {
61
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
62
+ console.error(`❌ Failed to save temporal graph index: ${errorMessage}`);
63
+ throw error;
64
+ }
65
+ }
66
+ async linkSessions(sourceSession, targetSession, relationship, evidence) {
67
+ const index = await this.load();
68
+ const existingEdge = index.session_edges.find((e) => e.source_session === sourceSession &&
69
+ e.target_session === targetSession &&
70
+ e.relationship === relationship);
71
+ if (existingEdge) {
72
+ console.error(`⚠️ Edge already exists: ${sourceSession} --[${relationship}]--> ${targetSession}`);
73
+ return existingEdge;
74
+ }
75
+ const edge = {
76
+ source_session: sourceSession,
77
+ target_session: targetSession,
78
+ relationship,
79
+ created_at: new Date().toISOString(),
80
+ evidence,
81
+ };
82
+ index.session_edges.push(edge);
83
+ await this.save();
84
+ console.error(`🔗 Linked sessions: ${sourceSession} --[${relationship}]--> ${targetSession}`);
85
+ return edge;
86
+ }
87
+ async getSessionAncestors(sessionId) {
88
+ const index = await this.load();
89
+ return index.session_edges.filter((e) => e.source_session === sessionId);
90
+ }
91
+ async getSessionDescendants(sessionId) {
92
+ const index = await this.load();
93
+ return index.session_edges.filter((e) => e.target_session === sessionId);
94
+ }
95
+ async getSessionChain(sessionId, maxDepth = 5) {
96
+ const index = await this.load();
97
+ const chain = [];
98
+ const visited = new Set();
99
+ const traverseAncestors = (currentId, depth) => {
100
+ if (depth > maxDepth || visited.has(`ancestor-${currentId}`))
101
+ return;
102
+ visited.add(`ancestor-${currentId}`);
103
+ const ancestors = index.session_edges.filter((e) => e.source_session === currentId);
104
+ for (const edge of ancestors) {
105
+ chain.push({
106
+ sessionId: edge.target_session,
107
+ depth,
108
+ relationship: edge.relationship,
109
+ direction: "ancestor",
110
+ });
111
+ traverseAncestors(edge.target_session, depth + 1);
112
+ }
113
+ };
114
+ const traverseDescendants = (currentId, depth) => {
115
+ if (depth > maxDepth || visited.has(`descendant-${currentId}`))
116
+ return;
117
+ visited.add(`descendant-${currentId}`);
118
+ const descendants = index.session_edges.filter((e) => e.target_session === currentId);
119
+ for (const edge of descendants) {
120
+ chain.push({
121
+ sessionId: edge.source_session,
122
+ depth,
123
+ relationship: edge.relationship,
124
+ direction: "descendant",
125
+ });
126
+ traverseDescendants(edge.source_session, depth + 1);
127
+ }
128
+ };
129
+ traverseAncestors(sessionId, 1);
130
+ traverseDescendants(sessionId, 1);
131
+ return chain;
132
+ }
133
+ async createTimeMarker(label, granularity, timestamp, sessionIds) {
134
+ const index = await this.load();
135
+ const marker = {
136
+ id: `marker-${Date.now()}`,
137
+ timestamp: timestamp || new Date().toISOString(),
138
+ granularity,
139
+ label,
140
+ session_ids: sessionIds || [],
141
+ };
142
+ index.time_markers.push(marker);
143
+ await this.save();
144
+ console.error(`⏰ Created time marker: ${label} (${granularity})`);
145
+ return marker;
146
+ }
147
+ async addSessionToMarker(markerId, sessionId) {
148
+ const index = await this.load();
149
+ const marker = index.time_markers.find((m) => m.id === markerId);
150
+ if (!marker) {
151
+ throw new Error(`Time marker not found: ${markerId}`);
152
+ }
153
+ if (!marker.session_ids.includes(sessionId)) {
154
+ marker.session_ids.push(sessionId);
155
+ await this.save();
156
+ console.error(`➕ Added session ${sessionId} to marker ${marker.label}`);
157
+ }
158
+ }
159
+ async getSessionsInRange(startDate, endDate) {
160
+ const index = await this.load();
161
+ const start = new Date(startDate).getTime();
162
+ const end = new Date(endDate).getTime();
163
+ return index.time_markers.filter((m) => {
164
+ const markerTime = new Date(m.timestamp).getTime();
165
+ return markerTime >= start && markerTime <= end;
166
+ });
167
+ }
168
+ async storeCausalChain(name, chain, sessionsInvolved) {
169
+ const index = await this.load();
170
+ const causalChain = {
171
+ id: `chain-${Date.now()}`,
172
+ name,
173
+ chain,
174
+ sessions_involved: sessionsInvolved,
175
+ created_at: new Date().toISOString(),
176
+ };
177
+ index.causal_chains.push(causalChain);
178
+ await this.save();
179
+ console.error(`🔗 Stored causal chain: ${name} (${chain.length} notes)`);
180
+ return causalChain;
181
+ }
182
+ async getCausalChainsForSession(sessionId) {
183
+ const index = await this.load();
184
+ return index.causal_chains.filter((c) => c.sessions_involved.includes(sessionId));
185
+ }
186
+ async getEdgesByType(relationship) {
187
+ const index = await this.load();
188
+ return index.session_edges.filter((e) => e.relationship === relationship);
189
+ }
190
+ async getStats() {
191
+ const index = await this.load();
192
+ const edgesByType = {};
193
+ for (const edge of index.session_edges) {
194
+ edgesByType[edge.relationship] =
195
+ (edgesByType[edge.relationship] || 0) + 1;
196
+ }
197
+ const markersByGranularity = {};
198
+ for (const marker of index.time_markers) {
199
+ markersByGranularity[marker.granularity] =
200
+ (markersByGranularity[marker.granularity] || 0) + 1;
201
+ }
202
+ return {
203
+ totalEdges: index.session_edges.length,
204
+ totalMarkers: index.time_markers.length,
205
+ totalChains: index.causal_chains.length,
206
+ edgesByType,
207
+ markersByGranularity,
208
+ };
209
+ }
210
+ }
211
+ const instances = new Map();
212
+ export function getTemporalGraphIndex(projectPath) {
213
+ if (!instances.has(projectPath)) {
214
+ instances.set(projectPath, new TemporalGraphIndexManager(projectPath));
215
+ }
216
+ return instances.get(projectPath);
217
+ }
218
+ //# sourceMappingURL=TemporalGraphIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemporalGraphIndex.js","sourceRoot":"","sources":["../../src/utils/TemporalGraphIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface SessionMetadata {
2
+ sessionId: string;
3
+ date: string;
4
+ project: string;
5
+ title: string;
6
+ summary: string;
7
+ path: string;
8
+ hasCode: boolean;
9
+ }
10
+ export interface SessionArtifact {
11
+ sessionId: string;
12
+ date: string;
13
+ project: string;
14
+ content: {
15
+ summary: string;
16
+ decisions: string[];
17
+ implementations: string[];
18
+ challenges: string[];
19
+ nextSteps: string[];
20
+ };
21
+ codeBlocks?: Array<{
22
+ language: string;
23
+ code: string;
24
+ file?: string;
25
+ }>;
26
+ }
27
+ export declare function getProjectsWithArtifacts(): Promise<string[]>;
28
+ export declare function searchArtifactsInProjects(keyword?: string, project?: string, limit?: number): Promise<SessionMetadata[]>;
29
+ export declare function loadSessionArtifact(project: string, sessionId: string): Promise<SessionArtifact | null>;
30
+ export declare function extractSessionCode(project: string, sessionId: string, language?: string): Promise<Array<{
31
+ language: string;
32
+ code: string;
33
+ file?: string;
34
+ }>>;
35
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/utils/artifacts.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAKD,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBlE;AAKD,wBAAsB,yBAAyB,CAC7C,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC,CAsH5B;AAKD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA0IjC;AAKD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAenE"}