@iworkforces/tracelattice 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +260 -0
  3. package/dist/CliLifecycle.d.ts +31 -0
  4. package/dist/CliLifecycle.d.ts.map +1 -0
  5. package/dist/CliLifecycle.js +90 -0
  6. package/dist/CliLifecycle.js.map +1 -0
  7. package/dist/ServerConfig.d.ts +290 -0
  8. package/dist/ServerConfig.d.ts.map +1 -0
  9. package/dist/ServerConfig.js +175 -0
  10. package/dist/ServerConfig.js.map +1 -0
  11. package/dist/cache/DiscoveryCache.d.ts +269 -0
  12. package/dist/cache/DiscoveryCache.d.ts.map +1 -0
  13. package/dist/cache/DiscoveryCache.js +104 -0
  14. package/dist/cache/DiscoveryCache.js.map +1 -0
  15. package/dist/cli.d.ts +3 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +5177 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/config/ConfigLoader.d.ts +270 -0
  20. package/dist/config/ConfigLoader.d.ts.map +1 -0
  21. package/dist/config/ConfigLoader.js +186 -0
  22. package/dist/config/ConfigLoader.js.map +1 -0
  23. package/dist/context/RequestContext.d.ts +43 -0
  24. package/dist/context/RequestContext.d.ts.map +1 -0
  25. package/dist/context/RequestContext.js +14 -0
  26. package/dist/context/RequestContext.js.map +1 -0
  27. package/dist/contracts/PersistenceBackend.d.ts +134 -0
  28. package/dist/contracts/PersistenceBackend.d.ts.map +1 -0
  29. package/dist/contracts/PersistenceBackend.js +6 -0
  30. package/dist/contracts/PersistenceBackend.js.map +1 -0
  31. package/dist/contracts/calibrator.d.ts +97 -0
  32. package/dist/contracts/calibrator.d.ts.map +1 -0
  33. package/dist/contracts/calibrator.js +1 -0
  34. package/dist/contracts/features.d.ts +35 -0
  35. package/dist/contracts/features.d.ts.map +1 -0
  36. package/dist/contracts/features.js +12 -0
  37. package/dist/contracts/features.js.map +1 -0
  38. package/dist/contracts/ids.d.ts +68 -0
  39. package/dist/contracts/ids.d.ts.map +1 -0
  40. package/dist/contracts/ids.js +40 -0
  41. package/dist/contracts/ids.js.map +1 -0
  42. package/dist/contracts/interfaces.d.ts +254 -0
  43. package/dist/contracts/interfaces.d.ts.map +1 -0
  44. package/dist/contracts/interfaces.js +1 -0
  45. package/dist/contracts/persistence-work.d.ts +96 -0
  46. package/dist/contracts/persistence-work.d.ts.map +1 -0
  47. package/dist/contracts/persistence-work.js +1 -0
  48. package/dist/contracts/reasoning-types.d.ts +21 -0
  49. package/dist/contracts/reasoning-types.d.ts.map +1 -0
  50. package/dist/contracts/reasoning-types.js +1 -0
  51. package/dist/contracts/strategy.d.ts +107 -0
  52. package/dist/contracts/strategy.d.ts.map +1 -0
  53. package/dist/contracts/strategy.js +1 -0
  54. package/dist/contracts/summary.d.ts +110 -0
  55. package/dist/contracts/summary.d.ts.map +1 -0
  56. package/dist/contracts/summary.js +1 -0
  57. package/dist/contracts/suspension.d.ts +215 -0
  58. package/dist/contracts/suspension.d.ts.map +1 -0
  59. package/dist/contracts/suspension.js +1 -0
  60. package/dist/contracts/transport.d.ts +26 -0
  61. package/dist/contracts/transport.d.ts.map +1 -0
  62. package/dist/contracts/transport.js +1 -0
  63. package/dist/core/CrossReferenceValidator.d.ts +18 -0
  64. package/dist/core/CrossReferenceValidator.d.ts.map +1 -0
  65. package/dist/core/CrossReferenceValidator.js +125 -0
  66. package/dist/core/CrossReferenceValidator.js.map +1 -0
  67. package/dist/core/HistoryManager.d.ts +215 -0
  68. package/dist/core/HistoryManager.d.ts.map +1 -0
  69. package/dist/core/HistoryManager.js +594 -0
  70. package/dist/core/HistoryManager.js.map +1 -0
  71. package/dist/core/IHistoryManager.d.ts +163 -0
  72. package/dist/core/IHistoryManager.d.ts.map +1 -0
  73. package/dist/core/IHistoryManager.js +1 -0
  74. package/dist/core/IThoughtFormatter.d.ts +51 -0
  75. package/dist/core/IThoughtFormatter.d.ts.map +1 -0
  76. package/dist/core/IThoughtFormatter.js +1 -0
  77. package/dist/core/InputNormalizer.d.ts +140 -0
  78. package/dist/core/InputNormalizer.d.ts.map +1 -0
  79. package/dist/core/InputNormalizer.js +95 -0
  80. package/dist/core/InputNormalizer.js.map +1 -0
  81. package/dist/core/PersistenceBuffer.d.ts +204 -0
  82. package/dist/core/PersistenceBuffer.d.ts.map +1 -0
  83. package/dist/core/PersistenceBuffer.js +382 -0
  84. package/dist/core/PersistenceBuffer.js.map +1 -0
  85. package/dist/core/PersistenceBufferErrors.d.ts +22 -0
  86. package/dist/core/PersistenceBufferErrors.d.ts.map +1 -0
  87. package/dist/core/PersistenceBufferErrors.js +30 -0
  88. package/dist/core/PersistenceBufferErrors.js.map +1 -0
  89. package/dist/core/PersistenceRestore.d.ts +21 -0
  90. package/dist/core/PersistenceRestore.d.ts.map +1 -0
  91. package/dist/core/PersistenceRestore.js +87 -0
  92. package/dist/core/PersistenceRestore.js.map +1 -0
  93. package/dist/core/PersistenceWorkQueue.d.ts +155 -0
  94. package/dist/core/PersistenceWorkQueue.d.ts.map +1 -0
  95. package/dist/core/PersistenceWorkQueue.js +298 -0
  96. package/dist/core/PersistenceWorkQueue.js.map +1 -0
  97. package/dist/core/PersistenceWriter.d.ts +55 -0
  98. package/dist/core/PersistenceWriter.d.ts.map +1 -0
  99. package/dist/core/PersistenceWriter.js +112 -0
  100. package/dist/core/PersistenceWriter.js.map +1 -0
  101. package/dist/core/SessionErrors.d.ts +37 -0
  102. package/dist/core/SessionErrors.d.ts.map +1 -0
  103. package/dist/core/SessionErrors.js +50 -0
  104. package/dist/core/SessionErrors.js.map +1 -0
  105. package/dist/core/SessionLifecycleCoordinator.d.ts +74 -0
  106. package/dist/core/SessionLifecycleCoordinator.d.ts.map +1 -0
  107. package/dist/core/SessionLifecycleCoordinator.js +222 -0
  108. package/dist/core/SessionLifecycleCoordinator.js.map +1 -0
  109. package/dist/core/SessionLock.d.ts +59 -0
  110. package/dist/core/SessionLock.d.ts.map +1 -0
  111. package/dist/core/SessionLock.js +39 -0
  112. package/dist/core/SessionLock.js.map +1 -0
  113. package/dist/core/SessionManager.d.ts +62 -0
  114. package/dist/core/SessionManager.d.ts.map +1 -0
  115. package/dist/core/SessionManager.js +75 -0
  116. package/dist/core/SessionManager.js.map +1 -0
  117. package/dist/core/SessionResetCoordinator.d.ts +37 -0
  118. package/dist/core/SessionResetCoordinator.d.ts.map +1 -0
  119. package/dist/core/SessionResetCoordinator.js +80 -0
  120. package/dist/core/SessionResetCoordinator.js.map +1 -0
  121. package/dist/core/ThoughtEvaluator.d.ts +48 -0
  122. package/dist/core/ThoughtEvaluator.d.ts.map +1 -0
  123. package/dist/core/ThoughtEvaluator.js +85 -0
  124. package/dist/core/ThoughtEvaluator.js.map +1 -0
  125. package/dist/core/ThoughtFormatter.d.ts +134 -0
  126. package/dist/core/ThoughtFormatter.d.ts.map +1 -0
  127. package/dist/core/ThoughtFormatter.js +118 -0
  128. package/dist/core/ThoughtFormatter.js.map +1 -0
  129. package/dist/core/ThoughtProcessor.d.ts +259 -0
  130. package/dist/core/ThoughtProcessor.d.ts.map +1 -0
  131. package/dist/core/ThoughtProcessor.js +451 -0
  132. package/dist/core/ThoughtProcessor.js.map +1 -0
  133. package/dist/core/ThoughtReferenceIndex.d.ts +23 -0
  134. package/dist/core/ThoughtReferenceIndex.d.ts.map +1 -0
  135. package/dist/core/ThoughtReferenceIndex.js +66 -0
  136. package/dist/core/ThoughtReferenceIndex.js.map +1 -0
  137. package/dist/core/VerificationOutcomeAdmission.d.ts +15 -0
  138. package/dist/core/VerificationOutcomeAdmission.d.ts.map +1 -0
  139. package/dist/core/VerificationOutcomeAdmission.js +28 -0
  140. package/dist/core/VerificationOutcomeAdmission.js.map +1 -0
  141. package/dist/core/compression/CompressionService.d.ts +76 -0
  142. package/dist/core/compression/CompressionService.d.ts.map +1 -0
  143. package/dist/core/compression/CompressionService.js +160 -0
  144. package/dist/core/compression/CompressionService.js.map +1 -0
  145. package/dist/core/compression/DehydrationPolicy.d.ts +75 -0
  146. package/dist/core/compression/DehydrationPolicy.d.ts.map +1 -0
  147. package/dist/core/compression/DehydrationPolicy.js +45 -0
  148. package/dist/core/compression/DehydrationPolicy.js.map +1 -0
  149. package/dist/core/compression/InMemorySummaryStore.d.ts +132 -0
  150. package/dist/core/compression/InMemorySummaryStore.d.ts.map +1 -0
  151. package/dist/core/compression/InMemorySummaryStore.js +69 -0
  152. package/dist/core/compression/InMemorySummaryStore.js.map +1 -0
  153. package/dist/core/compression/Summary.d.ts +74 -0
  154. package/dist/core/compression/Summary.d.ts.map +1 -0
  155. package/dist/core/compression/Summary.js +16 -0
  156. package/dist/core/compression/Summary.js.map +1 -0
  157. package/dist/core/evaluator/Aggregator.d.ts +40 -0
  158. package/dist/core/evaluator/Aggregator.d.ts.map +1 -0
  159. package/dist/core/evaluator/Aggregator.js +36 -0
  160. package/dist/core/evaluator/Aggregator.js.map +1 -0
  161. package/dist/core/evaluator/Calibrator.d.ts +52 -0
  162. package/dist/core/evaluator/Calibrator.d.ts.map +1 -0
  163. package/dist/core/evaluator/Calibrator.js +135 -0
  164. package/dist/core/evaluator/Calibrator.js.map +1 -0
  165. package/dist/core/evaluator/PatternDetector.d.ts +69 -0
  166. package/dist/core/evaluator/PatternDetector.d.ts.map +1 -0
  167. package/dist/core/evaluator/PatternDetector.js +192 -0
  168. package/dist/core/evaluator/PatternDetector.js.map +1 -0
  169. package/dist/core/evaluator/SignalComputer.d.ts +116 -0
  170. package/dist/core/evaluator/SignalComputer.d.ts.map +1 -0
  171. package/dist/core/evaluator/SignalComputer.js +110 -0
  172. package/dist/core/evaluator/SignalComputer.js.map +1 -0
  173. package/dist/core/evaluator/calibration-math.d.ts +39 -0
  174. package/dist/core/evaluator/calibration-math.d.ts.map +1 -0
  175. package/dist/core/evaluator/calibration-math.js +42 -0
  176. package/dist/core/evaluator/calibration-math.js.map +1 -0
  177. package/dist/core/evaluator/internals.d.ts +36 -0
  178. package/dist/core/evaluator/internals.d.ts.map +1 -0
  179. package/dist/core/evaluator/internals.js +43 -0
  180. package/dist/core/evaluator/internals.js.map +1 -0
  181. package/dist/core/graph/Edge.d.ts +58 -0
  182. package/dist/core/graph/Edge.d.ts.map +1 -0
  183. package/dist/core/graph/Edge.js +1 -0
  184. package/dist/core/graph/EdgeEmitter.d.ts +68 -0
  185. package/dist/core/graph/EdgeEmitter.d.ts.map +1 -0
  186. package/dist/core/graph/EdgeEmitter.js +118 -0
  187. package/dist/core/graph/EdgeEmitter.js.map +1 -0
  188. package/dist/core/graph/EdgeStore.d.ts +116 -0
  189. package/dist/core/graph/EdgeStore.d.ts.map +1 -0
  190. package/dist/core/graph/EdgeStore.js +107 -0
  191. package/dist/core/graph/EdgeStore.js.map +1 -0
  192. package/dist/core/graph/GraphView.d.ts +157 -0
  193. package/dist/core/graph/GraphView.d.ts.map +1 -0
  194. package/dist/core/graph/GraphView.js +149 -0
  195. package/dist/core/graph/GraphView.js.map +1 -0
  196. package/dist/core/ids.d.ts +33 -0
  197. package/dist/core/ids.d.ts.map +1 -0
  198. package/dist/core/ids.js +11 -0
  199. package/dist/core/ids.js.map +1 -0
  200. package/dist/core/reasoning/OutcomeRecorder.d.ts +88 -0
  201. package/dist/core/reasoning/OutcomeRecorder.d.ts.map +1 -0
  202. package/dist/core/reasoning/OutcomeRecorder.js +51 -0
  203. package/dist/core/reasoning/OutcomeRecorder.js.map +1 -0
  204. package/dist/core/reasoning/strategies/SequentialStrategy.d.ts +54 -0
  205. package/dist/core/reasoning/strategies/SequentialStrategy.d.ts.map +1 -0
  206. package/dist/core/reasoning/strategies/SequentialStrategy.js +22 -0
  207. package/dist/core/reasoning/strategies/SequentialStrategy.js.map +1 -0
  208. package/dist/core/reasoning/strategies/StrategyFactory.d.ts +25 -0
  209. package/dist/core/reasoning/strategies/StrategyFactory.d.ts.map +1 -0
  210. package/dist/core/reasoning/strategies/StrategyFactory.js +16 -0
  211. package/dist/core/reasoning/strategies/StrategyFactory.js.map +1 -0
  212. package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts +58 -0
  213. package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts.map +1 -0
  214. package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js +103 -0
  215. package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js.map +1 -0
  216. package/dist/core/reasoning/strategies/plateau.d.ts +18 -0
  217. package/dist/core/reasoning/strategies/plateau.d.ts.map +1 -0
  218. package/dist/core/reasoning/strategies/plateau.js +12 -0
  219. package/dist/core/reasoning/strategies/plateau.js.map +1 -0
  220. package/dist/core/reasoning/strategies/totScoring.d.ts +91 -0
  221. package/dist/core/reasoning/strategies/totScoring.d.ts.map +1 -0
  222. package/dist/core/reasoning/strategies/totScoring.js +88 -0
  223. package/dist/core/reasoning/strategies/totScoring.js.map +1 -0
  224. package/dist/core/reasoning.d.ts +179 -0
  225. package/dist/core/reasoning.d.ts.map +1 -0
  226. package/dist/core/reasoning.js +1 -0
  227. package/dist/core/step.d.ts +50 -0
  228. package/dist/core/step.d.ts.map +1 -0
  229. package/dist/core/step.js +1 -0
  230. package/dist/core/thought.d.ts +113 -0
  231. package/dist/core/thought.d.ts.map +1 -0
  232. package/dist/core/thought.js +1 -0
  233. package/dist/core/tools/InMemorySuspensionStore.d.ts +66 -0
  234. package/dist/core/tools/InMemorySuspensionStore.d.ts.map +1 -0
  235. package/dist/core/tools/InMemorySuspensionStore.js +121 -0
  236. package/dist/core/tools/InMemorySuspensionStore.js.map +1 -0
  237. package/dist/di/Container.d.ts +253 -0
  238. package/dist/di/Container.d.ts.map +1 -0
  239. package/dist/di/Container.js +111 -0
  240. package/dist/di/Container.js.map +1 -0
  241. package/dist/di/ServiceRegistry.d.ts +50 -0
  242. package/dist/di/ServiceRegistry.d.ts.map +1 -0
  243. package/dist/di/ServiceRegistry.js +1 -0
  244. package/dist/errors.d.ts +663 -0
  245. package/dist/errors.d.ts.map +1 -0
  246. package/dist/errors.js +282 -0
  247. package/dist/errors.js.map +1 -0
  248. package/dist/health/HealthChecker.d.ts +73 -0
  249. package/dist/health/HealthChecker.d.ts.map +1 -0
  250. package/dist/health/HealthChecker.js +70 -0
  251. package/dist/health/HealthChecker.js.map +1 -0
  252. package/dist/lib.d.ts +273 -0
  253. package/dist/lib.d.ts.map +1 -0
  254. package/dist/lib.js +409 -0
  255. package/dist/lib.js.map +1 -0
  256. package/dist/logger/NullLogger.d.ts +154 -0
  257. package/dist/logger/NullLogger.d.ts.map +1 -0
  258. package/dist/logger/NullLogger.js +24 -0
  259. package/dist/logger/NullLogger.js.map +1 -0
  260. package/dist/logger/StructuredLogger.d.ts +327 -0
  261. package/dist/logger/StructuredLogger.d.ts.map +1 -0
  262. package/dist/logger/StructuredLogger.js +72 -0
  263. package/dist/logger/StructuredLogger.js.map +1 -0
  264. package/dist/metrics/metrics.impl.d.ts +252 -0
  265. package/dist/metrics/metrics.impl.d.ts.map +1 -0
  266. package/dist/metrics/metrics.impl.js +197 -0
  267. package/dist/metrics/metrics.impl.js.map +1 -0
  268. package/dist/persistence/FileLegacyImport.d.ts +2 -0
  269. package/dist/persistence/FileLegacyImport.d.ts.map +1 -0
  270. package/dist/persistence/FileLegacyImport.js +183 -0
  271. package/dist/persistence/FileLegacyImport.js.map +1 -0
  272. package/dist/persistence/FilePersistence.d.ts +53 -0
  273. package/dist/persistence/FilePersistence.d.ts.map +1 -0
  274. package/dist/persistence/FilePersistence.js +312 -0
  275. package/dist/persistence/FilePersistence.js.map +1 -0
  276. package/dist/persistence/FileSnapshotTypes.d.ts +29 -0
  277. package/dist/persistence/FileSnapshotTypes.d.ts.map +1 -0
  278. package/dist/persistence/FileSnapshotTypes.js +1 -0
  279. package/dist/persistence/FileSnapshotV2.d.ts +377 -0
  280. package/dist/persistence/FileSnapshotV2.d.ts.map +1 -0
  281. package/dist/persistence/FileSnapshotV2.js +124 -0
  282. package/dist/persistence/FileSnapshotV2.js.map +1 -0
  283. package/dist/persistence/FileSnapshotValidation.d.ts +15 -0
  284. package/dist/persistence/FileSnapshotValidation.d.ts.map +1 -0
  285. package/dist/persistence/FileSnapshotValidation.js +64 -0
  286. package/dist/persistence/FileSnapshotValidation.js.map +1 -0
  287. package/dist/persistence/FileWriter.d.ts +30 -0
  288. package/dist/persistence/FileWriter.d.ts.map +1 -0
  289. package/dist/persistence/FileWriter.js +155 -0
  290. package/dist/persistence/FileWriter.js.map +1 -0
  291. package/dist/persistence/MemoryPersistence.d.ts +45 -0
  292. package/dist/persistence/MemoryPersistence.d.ts.map +1 -0
  293. package/dist/persistence/MemoryPersistence.js +180 -0
  294. package/dist/persistence/MemoryPersistence.js.map +1 -0
  295. package/dist/persistence/PersistenceCodec.d.ts +7 -0
  296. package/dist/persistence/PersistenceCodec.d.ts.map +1 -0
  297. package/dist/persistence/PersistenceCodec.js +97 -0
  298. package/dist/persistence/PersistenceCodec.js.map +1 -0
  299. package/dist/persistence/PersistenceErrors.d.ts +23 -0
  300. package/dist/persistence/PersistenceErrors.d.ts.map +1 -0
  301. package/dist/persistence/PersistenceErrors.js +26 -0
  302. package/dist/persistence/PersistenceErrors.js.map +1 -0
  303. package/dist/persistence/PersistenceFactory.d.ts +21 -0
  304. package/dist/persistence/PersistenceFactory.d.ts.map +1 -0
  305. package/dist/persistence/PersistenceFactory.js +28 -0
  306. package/dist/persistence/PersistenceFactory.js.map +1 -0
  307. package/dist/persistence/PersistenceScope.d.ts +42 -0
  308. package/dist/persistence/PersistenceScope.d.ts.map +1 -0
  309. package/dist/persistence/PersistenceScope.js +93 -0
  310. package/dist/persistence/PersistenceScope.js.map +1 -0
  311. package/dist/persistence/SessionScopedPersistence.d.ts +4 -0
  312. package/dist/persistence/SessionScopedPersistence.d.ts.map +1 -0
  313. package/dist/persistence/SessionScopedPersistence.js +9 -0
  314. package/dist/persistence/SessionScopedPersistence.js.map +1 -0
  315. package/dist/persistence/SqliteDriver.d.ts +22 -0
  316. package/dist/persistence/SqliteDriver.d.ts.map +1 -0
  317. package/dist/persistence/SqliteDriver.js +29 -0
  318. package/dist/persistence/SqliteDriver.js.map +1 -0
  319. package/dist/persistence/SqliteLegacyImport.d.ts +14 -0
  320. package/dist/persistence/SqliteLegacyImport.d.ts.map +1 -0
  321. package/dist/persistence/SqliteLegacyImport.js +136 -0
  322. package/dist/persistence/SqliteLegacyImport.js.map +1 -0
  323. package/dist/persistence/SqliteLegacySchema.d.ts +15 -0
  324. package/dist/persistence/SqliteLegacySchema.d.ts.map +1 -0
  325. package/dist/persistence/SqliteLegacySchema.js +72 -0
  326. package/dist/persistence/SqliteLegacySchema.js.map +1 -0
  327. package/dist/persistence/SqlitePayload.d.ts +11 -0
  328. package/dist/persistence/SqlitePayload.d.ts.map +1 -0
  329. package/dist/persistence/SqlitePayload.js +86 -0
  330. package/dist/persistence/SqlitePayload.js.map +1 -0
  331. package/dist/persistence/SqlitePersistence.d.ts +49 -0
  332. package/dist/persistence/SqlitePersistence.d.ts.map +1 -0
  333. package/dist/persistence/SqlitePersistence.js +248 -0
  334. package/dist/persistence/SqlitePersistence.js.map +1 -0
  335. package/dist/persistence/SqliteSchemaV2.d.ts +14 -0
  336. package/dist/persistence/SqliteSchemaV2.d.ts.map +1 -0
  337. package/dist/persistence/SqliteSchemaV2.js +129 -0
  338. package/dist/persistence/SqliteSchemaV2.js.map +1 -0
  339. package/dist/persistence/SqliteSnapshotWriter.d.ts +17 -0
  340. package/dist/persistence/SqliteSnapshotWriter.d.ts.map +1 -0
  341. package/dist/persistence/SqliteSnapshotWriter.js +30 -0
  342. package/dist/persistence/SqliteSnapshotWriter.js.map +1 -0
  343. package/dist/pool/ConnectionPool.d.ts +203 -0
  344. package/dist/pool/ConnectionPool.d.ts.map +1 -0
  345. package/dist/pool/ConnectionPool.js +303 -0
  346. package/dist/pool/ConnectionPool.js.map +1 -0
  347. package/dist/pool/IConnectionPool.d.ts +143 -0
  348. package/dist/pool/IConnectionPool.d.ts.map +1 -0
  349. package/dist/pool/IConnectionPool.js +1 -0
  350. package/dist/pool/PoolErrors.d.ts +11 -0
  351. package/dist/pool/PoolErrors.d.ts.map +1 -0
  352. package/dist/pool/PoolErrors.js +16 -0
  353. package/dist/pool/PoolErrors.js.map +1 -0
  354. package/dist/registry/BaseRegistry.d.ts +219 -0
  355. package/dist/registry/BaseRegistry.d.ts.map +1 -0
  356. package/dist/registry/BaseRegistry.js +215 -0
  357. package/dist/registry/BaseRegistry.js.map +1 -0
  358. package/dist/registry/SkillRegistry.d.ts +67 -0
  359. package/dist/registry/SkillRegistry.d.ts.map +1 -0
  360. package/dist/registry/SkillRegistry.js +87 -0
  361. package/dist/registry/SkillRegistry.js.map +1 -0
  362. package/dist/registry/ToolRegistry.d.ts +70 -0
  363. package/dist/registry/ToolRegistry.d.ts.map +1 -0
  364. package/dist/registry/ToolRegistry.js +96 -0
  365. package/dist/registry/ToolRegistry.js.map +1 -0
  366. package/dist/sanitize.d.ts +164 -0
  367. package/dist/sanitize.d.ts.map +1 -0
  368. package/dist/sanitize.js +100 -0
  369. package/dist/sanitize.js.map +1 -0
  370. package/dist/schema.d.ts +562 -0
  371. package/dist/schema.d.ts.map +1 -0
  372. package/dist/schema.js +251 -0
  373. package/dist/schema.js.map +1 -0
  374. package/dist/transport/BaseTransport.d.ts +166 -0
  375. package/dist/transport/BaseTransport.d.ts.map +1 -0
  376. package/dist/transport/BaseTransport.js +199 -0
  377. package/dist/transport/BaseTransport.js.map +1 -0
  378. package/dist/transport/HttpHelpers.d.ts +53 -0
  379. package/dist/transport/HttpHelpers.d.ts.map +1 -0
  380. package/dist/transport/HttpHelpers.js +44 -0
  381. package/dist/transport/HttpHelpers.js.map +1 -0
  382. package/dist/transport/HttpRequestLifecycle.d.ts +37 -0
  383. package/dist/transport/HttpRequestLifecycle.d.ts.map +1 -0
  384. package/dist/transport/HttpRequestLifecycle.js +87 -0
  385. package/dist/transport/HttpRequestLifecycle.js.map +1 -0
  386. package/dist/transport/HttpTransport.d.ts +140 -0
  387. package/dist/transport/HttpTransport.d.ts.map +1 -0
  388. package/dist/transport/HttpTransport.js +245 -0
  389. package/dist/transport/HttpTransport.js.map +1 -0
  390. package/dist/transport/SseTransport.d.ts +149 -0
  391. package/dist/transport/SseTransport.d.ts.map +1 -0
  392. package/dist/transport/SseTransport.js +470 -0
  393. package/dist/transport/SseTransport.js.map +1 -0
  394. package/dist/transport/StreamableHttpTransport.d.ts +225 -0
  395. package/dist/transport/StreamableHttpTransport.d.ts.map +1 -0
  396. package/dist/transport/StreamableHttpTransport.js +449 -0
  397. package/dist/transport/StreamableHttpTransport.js.map +1 -0
  398. package/dist/types/disposable.d.ts +22 -0
  399. package/dist/types/disposable.d.ts.map +1 -0
  400. package/dist/types/disposable.js +1 -0
  401. package/dist/types/server-config.d.ts +32 -0
  402. package/dist/types/server-config.d.ts.map +1 -0
  403. package/dist/types/server-config.js +1 -0
  404. package/dist/types/skill.d.ts +74 -0
  405. package/dist/types/skill.d.ts.map +1 -0
  406. package/dist/types/skill.js +1 -0
  407. package/dist/types/tool.d.ts +78 -0
  408. package/dist/types/tool.d.ts.map +1 -0
  409. package/dist/types/tool.js +1 -0
  410. package/dist/utils.d.ts +27 -0
  411. package/dist/utils.d.ts.map +1 -0
  412. package/dist/utils.js +6 -0
  413. package/dist/utils.js.map +1 -0
  414. package/dist/watchers/SkillWatcher.d.ts +25 -0
  415. package/dist/watchers/SkillWatcher.d.ts.map +1 -0
  416. package/dist/watchers/SkillWatcher.js +96 -0
  417. package/dist/watchers/SkillWatcher.js.map +1 -0
  418. package/dist/watchers/ToolWatcher.d.ts +24 -0
  419. package/dist/watchers/ToolWatcher.d.ts.map +1 -0
  420. package/dist/watchers/ToolWatcher.js +92 -0
  421. package/dist/watchers/ToolWatcher.js.map +1 -0
  422. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HistoryManager.d.ts","sourceRoot":"","sources":["../../src/core/HistoryManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,594 @@
1
+ import { GLOBAL_SESSION_ID, asSessionId } from "../contracts/ids.js";
2
+ import { InvalidBacktrackError, MaxSessionsReachedError, ValidationError } from "../errors.js";
3
+ import { NullLogger } from "../logger/NullLogger.js";
4
+ import { DehydrationPolicy } from "./compression/DehydrationPolicy.js";
5
+ import { AsyncResetRequiredError, SessionAccessDeniedError } from "./SessionErrors.js";
6
+ import { EdgeEmitter } from "./graph/EdgeEmitter.js";
7
+ import { PersistenceBuffer } from "./PersistenceBuffer.js";
8
+ import { SessionManager } from "./SessionManager.js";
9
+ import { SessionResetCoordinator } from "./SessionResetCoordinator.js";
10
+ import { stagePersistenceRestore } from "./PersistenceRestore.js";
11
+ import { getOwner } from "../context/RequestContext.js";
12
+ import { ThoughtReferenceIndex } from "./ThoughtReferenceIndex.js";
13
+ import { resolveThoughtReferencesForAdmission } from "./CrossReferenceValidator.js";
14
+ import { SessionLifecycleCoordinator } from "./SessionLifecycleCoordinator.js";
15
+ const ABSOLUTE_MAX_HISTORY_SIZE = 10000;
16
+ class HistoryManager {
17
+ static DEFAULT_SESSION = GLOBAL_SESSION_ID;
18
+ static SESSION_TTL_MS = 1800000;
19
+ static MAX_SESSIONS = 100;
20
+ _sessions = new Map();
21
+ _maxHistorySize;
22
+ _maxBranches;
23
+ _maxBranchSize;
24
+ _logger;
25
+ _persistence;
26
+ _persistenceEnabled;
27
+ _metrics;
28
+ _edgeStore;
29
+ _summaryStore;
30
+ _dagEdges;
31
+ _eventEmitter;
32
+ _edgeEmitter;
33
+ _referenceIndex = new ThoughtReferenceIndex();
34
+ _persistenceBuffer;
35
+ _sessionManager;
36
+ _resetCoordinator;
37
+ _sessionLock;
38
+ _lifecycle;
39
+ _shutdownOwner = null;
40
+ _clearSessionAuxiliaryState;
41
+ _clearAllAuxiliaryState;
42
+ constructor(config = {}){
43
+ this._logger = config.logger ?? new NullLogger();
44
+ const requestedMaxSize = config.maxHistorySize ?? 10000;
45
+ this._maxHistorySize = Math.min(requestedMaxSize, ABSOLUTE_MAX_HISTORY_SIZE);
46
+ if (requestedMaxSize > ABSOLUTE_MAX_HISTORY_SIZE) this._logger.warn('maxHistorySize exceeds absolute maximum, capped', {
47
+ requested: requestedMaxSize,
48
+ applied: ABSOLUTE_MAX_HISTORY_SIZE
49
+ });
50
+ this._maxBranches = config.maxBranches ?? 50;
51
+ this._maxBranchSize = config.maxBranchSize || 100;
52
+ this._persistence = config.persistence ?? null;
53
+ this._persistenceEnabled = null !== this._persistence;
54
+ this._metrics = config.metrics;
55
+ this._eventEmitter = config.eventEmitter ?? null;
56
+ this._edgeStore = config.edgeStore;
57
+ this._summaryStore = config.summaryStore;
58
+ this._dagEdges = config.dagEdges ?? true;
59
+ this._sessionLock = config.sessionLock;
60
+ this._lifecycle = config.lifecycleCoordinator ?? new SessionLifecycleCoordinator();
61
+ this._clearSessionAuxiliaryState = config.clearSessionAuxiliaryState;
62
+ this._clearAllAuxiliaryState = config.clearAllAuxiliaryState;
63
+ this._edgeEmitter = new EdgeEmitter({
64
+ edgeStore: this._edgeStore,
65
+ dagEdges: this._dagEdges,
66
+ defaultSessionId: HistoryManager.DEFAULT_SESSION,
67
+ logger: this._logger
68
+ });
69
+ this._sessionManager = new SessionManager({
70
+ defaultSessionId: HistoryManager.DEFAULT_SESSION,
71
+ sessionTtlMs: HistoryManager.SESSION_TTL_MS,
72
+ cleanupIntervalMs: 300000,
73
+ getMaxSessions: ()=>HistoryManager.MAX_SESSIONS,
74
+ maxSessionsPerOwner: config.maxSessionsPerOwner ?? 50,
75
+ logger: this._logger
76
+ });
77
+ this._persistenceBuffer = null;
78
+ if (this._persistenceEnabled && this._persistence) {
79
+ this._persistenceBuffer = new PersistenceBuffer({
80
+ persistence: this._persistence,
81
+ bufferSize: config.persistenceBufferSize ?? 100,
82
+ flushInterval: config.persistenceFlushInterval ?? 1000,
83
+ maxRetries: config.persistenceMaxRetries ?? 3,
84
+ defaultSessionId: asSessionId(HistoryManager.DEFAULT_SESSION),
85
+ getSessions: ()=>this._sessions,
86
+ getDefaultSession: ()=>this._getSession(),
87
+ edgeStore: this._edgeStore,
88
+ eventEmitter: this._eventEmitter,
89
+ logger: this._logger
90
+ });
91
+ this._startFlushTimer();
92
+ }
93
+ this._resetCoordinator = new SessionResetCoordinator({
94
+ persistence: this._persistence,
95
+ barrier: this._persistenceBuffer,
96
+ edgeStore: this._edgeStore,
97
+ summaryStore: this._summaryStore,
98
+ sessions: this._sessions,
99
+ createSessionState: (owner)=>this._createSessionState(owner),
100
+ logger: this._logger
101
+ });
102
+ this._sessionManager.startCleanupTimer(this._sessions, (sessionId)=>this._isTtlEvictionEligible(sessionId), (sessionIds)=>this._evictSessions(sessionIds));
103
+ }
104
+ get _flushTimer() {
105
+ return this._persistenceBuffer?.timer ?? null;
106
+ }
107
+ _startFlushTimer() {
108
+ this._persistenceBuffer?.startFlushTimer();
109
+ }
110
+ _stopFlushTimer() {
111
+ if (null === this._flushTimer) return;
112
+ this._persistenceBuffer?.stopFlushTimer();
113
+ }
114
+ _flushBuffer() {
115
+ this._stageAllRestoreBranchReconciliation();
116
+ return this._persistenceBuffer?.flush() ?? Promise.resolve();
117
+ }
118
+ drainSession(sessionId) {
119
+ const session = this._sessions.get(sessionId);
120
+ if (void 0 !== session) this._stageRestoreBranchReconciliation(sessionId, session);
121
+ return this._persistenceBuffer?.drainSession(sessionId) ?? Promise.resolve();
122
+ }
123
+ bufferSummaries(sessionId, summaries) {
124
+ this._lifecycle.runMutation(sessionId, ()=>{
125
+ this._persistenceBuffer?.bufferSummaries(sessionId, summaries);
126
+ const session = this._sessions.get(sessionId);
127
+ if (void 0 !== session) this._stageRestoreBranchReconciliation(sessionId, session);
128
+ });
129
+ }
130
+ getEdgeStore() {
131
+ return this._edgeStore;
132
+ }
133
+ log(message, meta) {
134
+ this._logger.info(message, meta);
135
+ }
136
+ _getCurrentOwner() {
137
+ return getOwner();
138
+ }
139
+ _getSession(sessionId, owner) {
140
+ const key = void 0 === sessionId ? HistoryManager.DEFAULT_SESSION : asSessionId(sessionId);
141
+ const existing = this._sessions.get(key);
142
+ if (void 0 !== existing) {
143
+ this._assertSessionOwner(key, existing, owner);
144
+ existing.lastAccessedAt = Date.now();
145
+ return existing;
146
+ }
147
+ return this._lifecycle.runMutation(key, ()=>this._getSessionWithinOperation(key, owner));
148
+ }
149
+ _getSessionWithinOperation(key, owner) {
150
+ let session = this._sessions.get(key);
151
+ if (session) this._assertSessionOwner(key, session, owner);
152
+ else {
153
+ this._makeCapacityForSession(owner);
154
+ session = this._createSessionState(owner);
155
+ this._sessions.set(key, session);
156
+ }
157
+ session.lastAccessedAt = Date.now();
158
+ return session;
159
+ }
160
+ _assertSessionOwner(sessionId, session, owner) {
161
+ if (void 0 === owner) return;
162
+ if ('restored' === session.provenance) throw new SessionAccessDeniedError(sessionId, 'unavailable', owner);
163
+ if (void 0 !== session.owner && session.owner !== owner) throw new SessionAccessDeniedError(sessionId, session.owner, owner);
164
+ if (void 0 === session.owner) session.owner = owner;
165
+ }
166
+ _makeCapacityForSession(owner) {
167
+ const victims = this._sessionManager.planProspectiveAdmission(this._sessions, owner, (sessionId)=>this._isCapacityEvictionEligible(sessionId));
168
+ if (void 0 === victims) throw new MaxSessionsReachedError(HistoryManager.MAX_SESSIONS);
169
+ if (0 === victims.length) return;
170
+ const evicted = this._lifecycle.tryEvictIdleSessions(victims, (sessionIds)=>{
171
+ if (sessionIds.some((sessionId)=>!this._isPersistenceQuiescent(sessionId))) throw new MaxSessionsReachedError(HistoryManager.MAX_SESSIONS);
172
+ for (const sessionId of sessionIds)this._removeLiveSession(sessionId);
173
+ });
174
+ if (!evicted) throw new MaxSessionsReachedError(HistoryManager.MAX_SESSIONS);
175
+ }
176
+ _isCapacityEvictionEligible(sessionId) {
177
+ return this._lifecycle.isIdle(sessionId) && this._isPersistenceQuiescent(sessionId);
178
+ }
179
+ _isTtlEvictionEligible(sessionId) {
180
+ const persistenceState = this._persistenceBuffer?.sessionEvictionState(sessionId) ?? 'quiescent';
181
+ return this._lifecycle.isIdle(sessionId) && 'failed' !== persistenceState && 'barrier' !== persistenceState;
182
+ }
183
+ _isPersistenceQuiescent(sessionId) {
184
+ return (this._persistenceBuffer?.sessionEvictionState(sessionId) ?? 'quiescent') === 'quiescent';
185
+ }
186
+ async _evictSessions(sessionIds) {
187
+ const results = await Promise.allSettled(sessionIds.map((sessionId)=>this._evictSession(sessionId)));
188
+ const failures = results.flatMap((result)=>'rejected' === result.status ? [
189
+ result.reason
190
+ ] : []);
191
+ if (failures.length > 0) throw new AggregateError(failures, 'Session eviction failed');
192
+ }
193
+ _evictSession(sessionId) {
194
+ return this._lifecycle.withSessionEviction(sessionId, async ()=>{
195
+ if (null === this._persistenceBuffer) return void this._removeLiveSession(sessionId);
196
+ const session = this._sessions.get(sessionId);
197
+ if (void 0 !== session) this._stageRestoreBranchReconciliation(sessionId, session);
198
+ await this._persistenceBuffer.withSessionEvictionBarrier(sessionId, async ()=>{
199
+ this._removeLiveSession(sessionId);
200
+ });
201
+ });
202
+ }
203
+ _removeLiveSession(sessionId) {
204
+ this._clearSessionAuxiliaryState?.(sessionId);
205
+ this._edgeStore?.clearSession(sessionId);
206
+ this._summaryStore?.clearSession(sessionId);
207
+ this._referenceIndex.clearSession(sessionId);
208
+ this._sessions.delete(sessionId);
209
+ this._persistenceBuffer?.forgetQuiescentSession(sessionId);
210
+ }
211
+ _createSessionState(owner, provenance) {
212
+ return {
213
+ thought_history: [],
214
+ branches: {},
215
+ availableMcpTools: void 0,
216
+ availableSkills: void 0,
217
+ writeBuffer: [],
218
+ lastAccessedAt: Date.now(),
219
+ branchIdentities: new Set(),
220
+ pendingRestoreBranchDeletes: new Set(),
221
+ owner,
222
+ provenance
223
+ };
224
+ }
225
+ _authorizeExistingSession(sessionId, owner) {
226
+ const sessionOwner = this._sessions.get(sessionId)?.owner;
227
+ if (void 0 !== owner && this._sessions.get(sessionId)?.provenance === 'restored') throw new SessionAccessDeniedError(sessionId, 'unavailable', owner);
228
+ if (void 0 !== owner && void 0 !== sessionOwner && sessionOwner !== owner) throw new SessionAccessDeniedError(sessionId, sessionOwner, owner);
229
+ return sessionOwner ?? owner;
230
+ }
231
+ _assertOwnerlessResetAll() {
232
+ const owner = this._getCurrentOwner();
233
+ if (void 0 === owner) return;
234
+ const firstSessionId = this._sessions.keys().next().value ?? HistoryManager.DEFAULT_SESSION;
235
+ throw new SessionAccessDeniedError(firstSessionId, 'trusted ownerless context', owner);
236
+ }
237
+ addThought(thought, context) {
238
+ const sessionId = asSessionId(thought.session_id ?? HistoryManager.DEFAULT_SESSION);
239
+ this._lifecycle.runMutation(sessionId, ()=>this._addThoughtWithinOperation(sessionId, thought, context));
240
+ }
241
+ _addThoughtWithinOperation(sessionId, thought, context) {
242
+ this._persistenceBuffer?.assertSessionAdmissionOpen(sessionId);
243
+ const owner = this._getCurrentOwner();
244
+ this._authorizeExistingSession(sessionId, owner);
245
+ const resolvedReferences = this._resolveAdmissionReferences(sessionId, thought, context);
246
+ const session = this._getSessionWithinOperation(sessionId, owner);
247
+ this._metrics?.counter('thought_requests_total', 1, {}, 'Total thought requests added to history');
248
+ session.thought_history.push(thought);
249
+ if (void 0 !== resolvedReferences.backtrackTargetThoughtId) this._applyRetraction(session, resolvedReferences.backtrackTargetThoughtId);
250
+ if (thought.available_mcp_tools) session.availableMcpTools = thought.available_mcp_tools;
251
+ if (thought.available_skills) session.availableSkills = thought.available_skills;
252
+ if (thought.branch_from_thought && thought.branch_id) this._addToSessionBranch(session, thought.branch_id, thought);
253
+ if (thought.merge_from_thoughts?.length || thought.merge_branch_ids?.length) this._metrics?.counter('thought_merge_operations_total', 1, {}, 'Total merge operations (graph topology)');
254
+ const edgeAdded = this._edgeEmitter.emitEdgesForThought(session, thought, {
255
+ ...context,
256
+ resolvedReferences
257
+ });
258
+ const evictedBranchIds = this._enforceRetention(session, thought.branch_id);
259
+ this._rebuildReferenceIndex(sessionId, session);
260
+ const prunedEdges = this._pruneUnretainedEdges(sessionId, session);
261
+ this._bufferRetainedState(sessionId, session, thought, evictedBranchIds, edgeAdded, prunedEdges);
262
+ }
263
+ _resolveAdmissionReferences(sessionId, thought, context) {
264
+ const resolved = context?.resolvedReferences ?? resolveThoughtReferencesForAdmission(thought, (thoughtNumber)=>this._referenceIndex.resolve(sessionId, thoughtNumber));
265
+ if ('backtrack' === thought.thought_type && void 0 !== thought.backtrack_target && void 0 === resolved.backtrackTargetThoughtId) throw new InvalidBacktrackError(`backtrack_target ${thought.backtrack_target} is missing in session history`);
266
+ return resolved;
267
+ }
268
+ _enforceRetention(session, branchId) {
269
+ if (session.thought_history.length > this._maxHistorySize) {
270
+ session.thought_history = session.thought_history.slice(-this._maxHistorySize);
271
+ this.log(`History trimmed to ${this._maxHistorySize} items`, {
272
+ maxSize: this._maxHistorySize
273
+ });
274
+ }
275
+ if (void 0 !== branchId) this._trimSessionBranchSize(session, branchId);
276
+ return this._cleanupSessionBranches(session);
277
+ }
278
+ _pruneUnretainedEdges(sessionId, session) {
279
+ if (void 0 === this._edgeStore) return 0;
280
+ const retainedIds = new Set();
281
+ const retainedBranchThoughtIds = new Set();
282
+ for (const thought of [
283
+ session.thought_history,
284
+ ...Object.values(session.branches)
285
+ ].flat())if (void 0 !== thought.id) retainedIds.add(thought.id);
286
+ for (const thought of Object.values(session.branches).flat())if (void 0 !== thought.id) retainedBranchThoughtIds.add(thought.id);
287
+ return this._edgeStore.pruneSession(sessionId, retainedIds, retainedBranchThoughtIds);
288
+ }
289
+ _bufferRetainedState(sessionId, session, thought, evictedBranchIds, edgeAdded, prunedEdges) {
290
+ const buffer = this._persistenceBuffer;
291
+ if (null === buffer) return;
292
+ buffer.bufferThought(sessionId, thought);
293
+ if (void 0 !== thought.branch_id || evictedBranchIds.length > 0 || session.pendingRestoreBranchDeletes.size > 0) this._stageBranchPersistence(sessionId, session, evictedBranchIds);
294
+ if (void 0 !== this._edgeStore && (edgeAdded || prunedEdges > 0)) buffer.bufferEdges(sessionId, this._edgeStore.edgesForSession(sessionId));
295
+ }
296
+ _stageAllRestoreBranchReconciliation() {
297
+ for (const [sessionId, session] of this._sessions)this._stageRestoreBranchReconciliation(sessionId, session);
298
+ }
299
+ _stageRestoreBranchReconciliation(sessionId, session) {
300
+ if (0 === session.pendingRestoreBranchDeletes.size) return;
301
+ this._stageBranchPersistence(sessionId, session, []);
302
+ }
303
+ _stageBranchPersistence(sessionId, session, ordinaryDeletes) {
304
+ const buffer = this._persistenceBuffer;
305
+ if (null === buffer) return;
306
+ for (const branchId of session.branchIdentities){
307
+ const branch = session.branches[branchId];
308
+ if (void 0 !== branch) buffer.bufferBranch(sessionId, branchId, branch);
309
+ }
310
+ const branchIdsToDelete = new Set([
311
+ ...session.pendingRestoreBranchDeletes,
312
+ ...ordinaryDeletes
313
+ ]);
314
+ for (const branchId of branchIdsToDelete)if (void 0 === session.branches[branchId]) buffer.deleteBranch(sessionId, branchId);
315
+ session.pendingRestoreBranchDeletes.clear();
316
+ }
317
+ _applyRetraction(session, targetId) {
318
+ for (const t of session.thought_history)if (t.id === targetId) t.retracted = true;
319
+ for (const branchThoughts of Object.values(session.branches))for (const t of branchThoughts)if (t.id === targetId) t.retracted = true;
320
+ }
321
+ _rebuildReferenceIndex(sessionId, session) {
322
+ const retained = [
323
+ session.thought_history,
324
+ ...Object.values(session.branches)
325
+ ].flat();
326
+ this._referenceIndex.replaceSession(sessionId, retained);
327
+ }
328
+ resolveThoughtReference(sessionId, thoughtNumber) {
329
+ this._authorizeExistingSession(sessionId, this._getCurrentOwner());
330
+ return this._referenceIndex.resolve(sessionId, thoughtNumber);
331
+ }
332
+ _addToSessionBranch(session, branchId, thought) {
333
+ if (!session.branches[branchId]) session.branches[branchId] = [];
334
+ session.branchIdentities.add(branchId);
335
+ session.branches[branchId].push(thought);
336
+ }
337
+ _cleanupSessionBranches(session) {
338
+ const branchCount = session.branchIdentities.size;
339
+ if (branchCount <= this._maxBranches) return [];
340
+ const identitiesToRemove = Array.from(session.branchIdentities).slice(0, branchCount - this._maxBranches);
341
+ const branchesToDelete = [];
342
+ for (const branchId of identitiesToRemove){
343
+ session.branchIdentities.delete(branchId);
344
+ if (void 0 !== session.branches[branchId]) branchesToDelete.push(branchId);
345
+ delete session.branches[branchId];
346
+ this.log(`Removed old branch: ${branchId}`, {
347
+ branchId
348
+ });
349
+ }
350
+ return branchesToDelete;
351
+ }
352
+ _trimSessionBranchSize(session, branchId) {
353
+ const branch = session.branches[branchId];
354
+ if (void 0 !== branch && branch.length > this._maxBranchSize) {
355
+ const removed = branch.length - this._maxBranchSize;
356
+ session.branches[branchId] = branch.slice(-this._maxBranchSize);
357
+ this.log(`Trimmed branch '${branchId}': removed ${removed} old thoughts`, {
358
+ branchId,
359
+ removed
360
+ });
361
+ }
362
+ }
363
+ getHistory(sessionId) {
364
+ return this._getSession(sessionId, this._getCurrentOwner()).thought_history;
365
+ }
366
+ getHistoryHydrated(sessionId, opts) {
367
+ const history = this.getHistory(sessionId);
368
+ if (!this._dagEdges || !this._summaryStore) return history.slice();
369
+ const sid = sessionId ?? HistoryManager.DEFAULT_SESSION;
370
+ const policy = new DehydrationPolicy(this._summaryStore);
371
+ return policy.apply(history, asSessionId(sid), opts);
372
+ }
373
+ getHistoryLength(sessionId) {
374
+ return this._getSession(sessionId, this._getCurrentOwner()).thought_history.length;
375
+ }
376
+ getBranches(sessionId) {
377
+ return this._getSession(sessionId, this._getCurrentOwner()).branches;
378
+ }
379
+ getBranchIds(sessionId) {
380
+ return Array.from(this._getSession(sessionId, this._getCurrentOwner()).branchIdentities);
381
+ }
382
+ inspectSession(sessionId) {
383
+ const canonicalSessionId = asSessionId(sessionId);
384
+ this._authorizeExistingSession(canonicalSessionId, this._getCurrentOwner());
385
+ const session = this._sessions.get(canonicalSessionId);
386
+ if (void 0 === session) return {
387
+ history: [],
388
+ branches: {},
389
+ branchIds: [],
390
+ availableMcpTools: void 0,
391
+ availableSkills: void 0
392
+ };
393
+ return {
394
+ history: [
395
+ ...session.thought_history
396
+ ],
397
+ branches: Object.fromEntries(Object.entries(session.branches).map(([branchId, thoughts])=>[
398
+ branchId,
399
+ [
400
+ ...thoughts
401
+ ]
402
+ ])),
403
+ branchIds: Array.from(session.branchIdentities),
404
+ availableMcpTools: void 0 === session.availableMcpTools ? void 0 : [
405
+ ...session.availableMcpTools
406
+ ],
407
+ availableSkills: void 0 === session.availableSkills ? void 0 : [
408
+ ...session.availableSkills
409
+ ]
410
+ };
411
+ }
412
+ registerBranch(sessionId, branchId) {
413
+ if ('string' != typeof branchId || 0 === branchId.length) throw new ValidationError('branch_id', 'branch_id must be a non-empty string');
414
+ const canonicalSessionId = asSessionId(sessionId ?? HistoryManager.DEFAULT_SESSION);
415
+ this._lifecycle.runMutation(canonicalSessionId, ()=>{
416
+ this._persistenceBuffer?.assertSessionAdmissionOpen(canonicalSessionId);
417
+ const session = this._getSessionWithinOperation(canonicalSessionId, this._getCurrentOwner());
418
+ if (session.branchIdentities.has(branchId)) throw new ValidationError('branch_id', `Branch already exists: ${branchId}`);
419
+ session.branchIdentities.add(branchId);
420
+ const evictedBranchIds = this._cleanupSessionBranches(session);
421
+ this._rebuildReferenceIndex(canonicalSessionId, session);
422
+ const prunedEdges = this._pruneUnretainedEdges(canonicalSessionId, session);
423
+ if (evictedBranchIds.length > 0 || session.pendingRestoreBranchDeletes.size > 0) this._stageBranchPersistence(canonicalSessionId, session, evictedBranchIds);
424
+ if (void 0 !== this._edgeStore && prunedEdges > 0) this._persistenceBuffer?.bufferEdges(canonicalSessionId, this._edgeStore.edgesForSession(canonicalSessionId));
425
+ this.log('Registered branch', {
426
+ branchId,
427
+ sessionId: sessionId ?? null
428
+ });
429
+ });
430
+ }
431
+ branchExists(sessionId, branchId) {
432
+ const session = this._getSession(sessionId, this._getCurrentOwner());
433
+ return session.branchIdentities.has(branchId);
434
+ }
435
+ getAvailableMcpTools(sessionId) {
436
+ return this._getSession(sessionId, this._getCurrentOwner()).availableMcpTools;
437
+ }
438
+ getAvailableSkills(sessionId) {
439
+ return this._getSession(sessionId, this._getCurrentOwner()).availableSkills;
440
+ }
441
+ getBranch(branchId, sessionId) {
442
+ return this._getSession(sessionId, this._getCurrentOwner()).branches[branchId];
443
+ }
444
+ clear(sessionId) {
445
+ if (void 0 !== sessionId) {
446
+ const canonicalSessionId = asSessionId(sessionId);
447
+ this._authorizeExistingSession(canonicalSessionId, this._getCurrentOwner());
448
+ if (this._sessionLock?.isActive(canonicalSessionId) === true) throw new AsyncResetRequiredError('session', canonicalSessionId, 'active');
449
+ this._resetCoordinator.clearSession(canonicalSessionId);
450
+ this._referenceIndex.clearSession(canonicalSessionId);
451
+ this._clearSessionAuxiliaryState?.(canonicalSessionId);
452
+ return;
453
+ }
454
+ this._assertOwnerlessResetAll();
455
+ if (void 0 !== this._sessionLock && this._sessionLock.size > 0) throw new AsyncResetRequiredError('all', void 0, 'active');
456
+ this._resetCoordinator.clearAll();
457
+ this._referenceIndex.clearAll();
458
+ this._clearAllAuxiliaryState?.();
459
+ }
460
+ async resetSession(sessionId, clearAuxiliaryState) {
461
+ const canonicalSessionId = asSessionId(sessionId);
462
+ this._authorizeExistingSession(canonicalSessionId, this._getCurrentOwner());
463
+ await this._lifecycle.withSessionReset(canonicalSessionId, async ()=>{
464
+ const reset = async ()=>await this.resetSessionWithinExclusive(canonicalSessionId, clearAuxiliaryState);
465
+ if (void 0 === this._sessionLock) return await reset();
466
+ await this._sessionLock.withLock(canonicalSessionId, reset);
467
+ });
468
+ }
469
+ async resetSessionWithinExclusive(sessionId, clearAuxiliaryState) {
470
+ const preservedOwner = this._authorizeExistingSession(sessionId, this._getCurrentOwner());
471
+ await this._resetCoordinator.resetSession(sessionId, preservedOwner, clearAuxiliaryState ?? (void 0 === this._clearSessionAuxiliaryState ? void 0 : ()=>this._clearSessionAuxiliaryState?.(sessionId)));
472
+ this._referenceIndex.clearSession(sessionId);
473
+ }
474
+ async resetAll(clearAuxiliaryState) {
475
+ this._assertOwnerlessResetAll();
476
+ await this._lifecycle.withGlobalReset(async ()=>await this.resetAllWithinExclusive(clearAuxiliaryState));
477
+ }
478
+ async resetAllWithinExclusive(clearAuxiliaryState) {
479
+ this._assertOwnerlessResetAll();
480
+ await this._resetCoordinator.resetAll(clearAuxiliaryState ?? this._clearAllAuxiliaryState);
481
+ this._referenceIndex.clearAll();
482
+ }
483
+ clearSession(sessionId) {
484
+ this.clear(sessionId);
485
+ }
486
+ getSessionIds() {
487
+ return Array.from(this._sessions.keys());
488
+ }
489
+ getSessionCount() {
490
+ return this._sessions.size;
491
+ }
492
+ _restoredState(restored) {
493
+ const session = this._createSessionState(void 0, 'restored');
494
+ for(let index = restored.history.length - 1; index >= 0; index--){
495
+ const thought = restored.history[index];
496
+ if (void 0 !== thought) {
497
+ if (void 0 === session.availableMcpTools && void 0 !== thought.available_mcp_tools) session.availableMcpTools = [
498
+ ...thought.available_mcp_tools
499
+ ];
500
+ if (void 0 === session.availableSkills && void 0 !== thought.available_skills) session.availableSkills = [
501
+ ...thought.available_skills
502
+ ];
503
+ if (void 0 !== session.availableMcpTools && void 0 !== session.availableSkills) break;
504
+ }
505
+ }
506
+ session.thought_history = restored.history.slice(-this._maxHistorySize);
507
+ const retainedStart = Math.max(0, restored.branches.length - this._maxBranches);
508
+ const retainedBranches = restored.branches.slice(retainedStart);
509
+ for (const branch of restored.branches.slice(0, retainedStart))session.pendingRestoreBranchDeletes.add(branch.branchId);
510
+ for (const branch of retainedBranches){
511
+ session.branchIdentities.add(branch.branchId);
512
+ session.branches[branch.branchId] = branch.thoughts.slice(-this._maxBranchSize);
513
+ }
514
+ return session;
515
+ }
516
+ async loadFromPersistence() {
517
+ if (!this._persistenceEnabled || !this._persistence) return;
518
+ const restored = await stagePersistenceRestore(this._persistence);
519
+ const sessions = restored.sessions.map((session)=>[
520
+ session.sessionId,
521
+ this._restoredState(session)
522
+ ]);
523
+ const referenceIndex = new ThoughtReferenceIndex();
524
+ const retainedThoughtIds = new Map();
525
+ const retainedBranchThoughtIds = new Map();
526
+ for (const [sessionId, session] of sessions){
527
+ const retained = [
528
+ session.thought_history,
529
+ ...Object.values(session.branches)
530
+ ].flat();
531
+ referenceIndex.replaceSession(sessionId, retained);
532
+ retainedThoughtIds.set(sessionId, new Set(retained.flatMap((thought)=>void 0 === thought.id ? [] : [
533
+ thought.id
534
+ ])));
535
+ retainedBranchThoughtIds.set(sessionId, new Set(Object.values(session.branches).flatMap((branch)=>branch.flatMap((thought)=>void 0 === thought.id ? [] : [
536
+ thought.id
537
+ ]))));
538
+ }
539
+ this._edgeStore?.clearAll();
540
+ this._summaryStore?.clearAll();
541
+ this._sessions.clear();
542
+ for (const [sessionId, session] of sessions)this._sessions.set(sessionId, session);
543
+ this._referenceIndex = referenceIndex;
544
+ for (const session of restored.sessions){
545
+ const retainedIds = retainedThoughtIds.get(session.sessionId) ?? new Set();
546
+ const retainedBranchIds = retainedBranchThoughtIds.get(session.sessionId) ?? new Set();
547
+ for (const edge of session.edges)if (retainedIds.has(edge.from) && retainedIds.has(edge.to)) {
548
+ if ('branch' !== edge.kind || retainedBranchIds.has(edge.to)) this._edgeStore?.addEdge(edge);
549
+ }
550
+ for (const summary of session.summaries)this._summaryStore?.add(summary);
551
+ }
552
+ this.log(`Restored ${restored.sessions.length} persistence namespaces`);
553
+ }
554
+ isPersistenceEnabled() {
555
+ return this._persistenceEnabled;
556
+ }
557
+ getPersistenceBackend() {
558
+ return this._persistence;
559
+ }
560
+ setEventEmitter(emitter) {
561
+ this._eventEmitter = emitter;
562
+ this._persistenceBuffer?.setEventEmitter(emitter);
563
+ }
564
+ bindShutdownOwner(owner) {
565
+ if (null !== this._shutdownOwner) throw new TypeError('HistoryManager shutdown owner is already bound');
566
+ this._shutdownOwner = owner;
567
+ }
568
+ shutdown() {
569
+ if (null !== this._shutdownOwner) return this._shutdownOwner();
570
+ return this._lifecycle.shutdown(async ()=>{
571
+ await this.shutdownWithinLifecycle();
572
+ this.clearLiveStateAfterShutdown();
573
+ });
574
+ }
575
+ async shutdownWithinLifecycle() {
576
+ this._stopFlushTimer();
577
+ this._sessionManager.stopCleanupTimer();
578
+ await this._flushBuffer();
579
+ }
580
+ clearLiveStateAfterShutdown() {
581
+ for (const sessionId of this._sessions.keys())this._persistenceBuffer?.forgetQuiescentSession(sessionId);
582
+ this._sessions.clear();
583
+ this._referenceIndex.clearAll();
584
+ this._edgeStore?.clearAll();
585
+ this._summaryStore?.clearAll();
586
+ this._clearAllAuxiliaryState?.();
587
+ }
588
+ getWriteBufferLength() {
589
+ return this._persistenceBuffer?.pendingThoughtCount ?? 0;
590
+ }
591
+ }
592
+ export { ABSOLUTE_MAX_HISTORY_SIZE, HistoryManager };
593
+
594
+ //# sourceMappingURL=HistoryManager.js.map