@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,134 @@
1
+ import type { ThoughtData } from '../core/thought.js';
2
+ import type { Edge } from '../core/graph/Edge.js';
3
+ import type { Summary } from '../core/compression/Summary.js';
4
+ import type { BranchId, SessionId } from './ids.js';
5
+ /**
6
+ * Persistence backend interface for storing thought history and branches.
7
+ *
8
+ * Implementations can store data in various formats (JSON files, SQLite, etc.)
9
+ * while providing a unified API for HistoryManager.
10
+ */
11
+ export interface PersistenceBackend {
12
+ /**
13
+ * Save a single thought to persistent storage.
14
+ *
15
+ * @param thought - The thought data to persist
16
+ */
17
+ saveThought(thought: ThoughtData): Promise<void>;
18
+ /**
19
+ * Load all thoughts from persistent storage.
20
+ * Returns thoughts in chronological order (oldest first).
21
+ *
22
+ * @returns Array of all persisted thoughts
23
+ */
24
+ loadHistory(): Promise<ThoughtData[]>;
25
+ /**
26
+ * Save all thoughts in a branch to persistent storage.
27
+ *
28
+ * @param branchId - The unique identifier for the branch
29
+ * @param thoughts - Array of thoughts in branch
30
+ */
31
+ saveBranch(branchId: BranchId, thoughts: ThoughtData[]): Promise<void>;
32
+ /**
33
+ * Delete one global branch without treating an empty branch as deletion.
34
+ *
35
+ * Optional on legacy backends; the complete scoped capability requires it.
36
+ *
37
+ * @param branchId - The branch identifier to delete
38
+ */
39
+ deleteBranch?(branchId: BranchId): Promise<void>;
40
+ /**
41
+ * Load all thoughts for a specific branch.
42
+ *
43
+ * @param branchId - The unique identifier for the branch
44
+ * @returns Array of thoughts in branch, or undefined if branch doesn't exist
45
+ */
46
+ loadBranch(branchId: BranchId): Promise<ThoughtData[] | undefined>;
47
+ /**
48
+ * List all branch IDs that are persisted.
49
+ *
50
+ * @returns Array of branch identifiers
51
+ */
52
+ listBranches(): Promise<BranchId[]>;
53
+ /**
54
+ * Check if backend is healthy.
55
+ * @returns Promise that resolves to true if healthy, false otherwise
56
+ */
57
+ healthy(): Promise<boolean>;
58
+ /**
59
+ * Clear all persisted data (history and branches).
60
+ * Use with caution - this cannot be undone.
61
+ */
62
+ clear(): Promise<void>;
63
+ /**
64
+ * Close the backend and release resources.
65
+ * Should be called during graceful shutdown to ensure data is flushed.
66
+ */
67
+ close(): Promise<void>;
68
+ /**
69
+ * Save edges for a session, replacing any previously saved edges.
70
+ *
71
+ * @param sessionId - The session whose edges to persist
72
+ * @param edges - Array of edges to save
73
+ */
74
+ saveEdges(sessionId: SessionId, edges: readonly Edge[]): Promise<void>;
75
+ /**
76
+ * Load edges for a session from persistent storage.
77
+ * Returns edges in chronological order (by createdAt ascending).
78
+ * Returns empty array if no edges exist for the session.
79
+ *
80
+ * @param sessionId - The session whose edges to load
81
+ * @returns Array of persisted edges, sorted by createdAt
82
+ */
83
+ loadEdges(sessionId: SessionId): Promise<Edge[]>;
84
+ /**
85
+ * List all session IDs that have persisted edge data.
86
+ *
87
+ * @returns Array of session identifiers with persisted edges
88
+ */
89
+ listEdgeSessions(): Promise<SessionId[]>;
90
+ /**
91
+ * Save summaries for a session, replacing any previously saved summaries.
92
+ *
93
+ * @param sessionId - The session whose summaries to persist
94
+ * @param summaries - Array of summaries to save
95
+ */
96
+ saveSummaries(sessionId: SessionId, summaries: readonly Summary[]): Promise<void>;
97
+ /**
98
+ * Load summaries for a session from persistent storage.
99
+ * Returns summaries in chronological order (by createdAt ascending).
100
+ * Returns empty array if no summaries exist for the session.
101
+ *
102
+ * @param sessionId - The session whose summaries to load
103
+ * @returns Array of persisted summaries, sorted by createdAt
104
+ */
105
+ loadSummaries(sessionId: SessionId): Promise<Summary[]>;
106
+ }
107
+ /** Session-scoped persistence operations implemented as one indivisible capability. */
108
+ export type SessionScopedPersistenceOperation = 'saveThoughtForSession' | 'loadHistoryForSession' | 'saveBranchForSession' | 'deleteBranch' | 'deleteBranchForSession' | 'loadBranchForSession' | 'listBranchesForSession' | 'listSessions' | 'clearSession';
109
+ /** Persistence contract for durable named-session isolation. */
110
+ export interface SessionScopedPersistenceBackend extends PersistenceBackend {
111
+ deleteBranch(branchId: BranchId): Promise<void>;
112
+ saveThoughtForSession(sessionId: SessionId, thought: ThoughtData): Promise<void>;
113
+ loadHistoryForSession(sessionId: SessionId): Promise<ThoughtData[]>;
114
+ saveBranchForSession(sessionId: SessionId, branchId: BranchId, thoughts: readonly ThoughtData[]): Promise<void>;
115
+ deleteBranchForSession(sessionId: SessionId, branchId: BranchId): Promise<void>;
116
+ loadBranchForSession(sessionId: SessionId, branchId: BranchId): Promise<ThoughtData[] | undefined>;
117
+ listBranchesForSession(sessionId: SessionId): Promise<BranchId[]>;
118
+ listSessions(): Promise<SessionId[]>;
119
+ clearSession(sessionId: SessionId): Promise<void>;
120
+ }
121
+ /** Return whether a backend implements every session-scoped operation. */
122
+ export declare function supportsSessionScopedPersistence(backend: PersistenceBackend): backend is SessionScopedPersistenceBackend;
123
+ export interface PersistenceConfig {
124
+ enabled?: boolean;
125
+ backend?: 'file' | 'sqlite' | 'memory';
126
+ options?: {
127
+ dataDir?: string;
128
+ dbPath?: string;
129
+ enableWAL?: boolean;
130
+ maxHistorySize?: number;
131
+ persistBranches?: boolean;
132
+ };
133
+ }
134
+ //# sourceMappingURL=PersistenceBackend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersistenceBackend.d.ts","sourceRoot":"","sources":["../../src/contracts/PersistenceBackend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ function supportsSessionScopedPersistence(backend) {
2
+ return 'saveThoughtForSession' in backend && 'function' == typeof backend.saveThoughtForSession && 'loadHistoryForSession' in backend && 'function' == typeof backend.loadHistoryForSession && 'saveBranchForSession' in backend && 'function' == typeof backend.saveBranchForSession && 'deleteBranch' in backend && 'function' == typeof backend.deleteBranch && 'deleteBranchForSession' in backend && 'function' == typeof backend.deleteBranchForSession && 'loadBranchForSession' in backend && 'function' == typeof backend.loadBranchForSession && 'listBranchesForSession' in backend && 'function' == typeof backend.listBranchesForSession && 'listSessions' in backend && 'function' == typeof backend.listSessions && 'clearSession' in backend && 'function' == typeof backend.clearSession;
3
+ }
4
+ export { supportsSessionScopedPersistence };
5
+
6
+ //# sourceMappingURL=PersistenceBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts/PersistenceBackend.js","sources":["../../src/contracts/PersistenceBackend.ts"],"sourcesContent":["import type { ThoughtData } from '../core/thought.js';\nimport type { Edge } from '../core/graph/Edge.js';\nimport type { Summary } from '../core/compression/Summary.js';\nimport type { BranchId, SessionId } from './ids.js';\n\n/**\n * Persistence backend interface for storing thought history and branches.\n *\n * Implementations can store data in various formats (JSON files, SQLite, etc.)\n * while providing a unified API for HistoryManager.\n */\nexport interface PersistenceBackend {\n\t/**\n\t * Save a single thought to persistent storage.\n\t *\n\t * @param thought - The thought data to persist\n\t */\n\tsaveThought(thought: ThoughtData): Promise<void>;\n\n\t/**\n\t * Load all thoughts from persistent storage.\n\t * Returns thoughts in chronological order (oldest first).\n\t *\n\t * @returns Array of all persisted thoughts\n\t */\n\tloadHistory(): Promise<ThoughtData[]>;\n\n\t/**\n\t * Save all thoughts in a branch to persistent storage.\n\t *\n\t * @param branchId - The unique identifier for the branch\n\t * @param thoughts - Array of thoughts in branch\n\t */\n\tsaveBranch(branchId: BranchId, thoughts: ThoughtData[]): Promise<void>;\n\n\t/**\n\t * Delete one global branch without treating an empty branch as deletion.\n\t *\n\t * Optional on legacy backends; the complete scoped capability requires it.\n\t *\n\t * @param branchId - The branch identifier to delete\n\t */\n\tdeleteBranch?(branchId: BranchId): Promise<void>;\n\n\t/**\n\t * Load all thoughts for a specific branch.\n\t *\n\t * @param branchId - The unique identifier for the branch\n\t * @returns Array of thoughts in branch, or undefined if branch doesn't exist\n\t */\n\tloadBranch(branchId: BranchId): Promise<ThoughtData[] | undefined>;\n\n\t/**\n\t * List all branch IDs that are persisted.\n\t *\n\t * @returns Array of branch identifiers\n\t */\n\tlistBranches(): Promise<BranchId[]>;\n\n\t/**\n\t * Check if backend is healthy.\n\t * @returns Promise that resolves to true if healthy, false otherwise\n\t */\n\thealthy(): Promise<boolean>;\n\n\t/**\n\t * Clear all persisted data (history and branches).\n\t * Use with caution - this cannot be undone.\n\t */\n\tclear(): Promise<void>;\n\n\t/**\n\t * Close the backend and release resources.\n\t * Should be called during graceful shutdown to ensure data is flushed.\n\t */\n\tclose(): Promise<void>;\n\n\t/**\n\t * Save edges for a session, replacing any previously saved edges.\n\t *\n\t * @param sessionId - The session whose edges to persist\n\t * @param edges - Array of edges to save\n\t */\n\tsaveEdges(sessionId: SessionId, edges: readonly Edge[]): Promise<void>;\n\n\t/**\n\t * Load edges for a session from persistent storage.\n\t * Returns edges in chronological order (by createdAt ascending).\n\t * Returns empty array if no edges exist for the session.\n\t *\n\t * @param sessionId - The session whose edges to load\n\t * @returns Array of persisted edges, sorted by createdAt\n\t */\n\tloadEdges(sessionId: SessionId): Promise<Edge[]>;\n\n\t/**\n\t * List all session IDs that have persisted edge data.\n\t *\n\t * @returns Array of session identifiers with persisted edges\n\t */\n\tlistEdgeSessions(): Promise<SessionId[]>;\n\n\t/**\n\t * Save summaries for a session, replacing any previously saved summaries.\n\t *\n\t * @param sessionId - The session whose summaries to persist\n\t * @param summaries - Array of summaries to save\n\t */\n\tsaveSummaries(sessionId: SessionId, summaries: readonly Summary[]): Promise<void>;\n\n\t/**\n\t * Load summaries for a session from persistent storage.\n\t * Returns summaries in chronological order (by createdAt ascending).\n\t * Returns empty array if no summaries exist for the session.\n\t *\n\t * @param sessionId - The session whose summaries to load\n\t * @returns Array of persisted summaries, sorted by createdAt\n\t */\n\tloadSummaries(sessionId: SessionId): Promise<Summary[]>;\n}\n\n/** Session-scoped persistence operations implemented as one indivisible capability. */\nexport type SessionScopedPersistenceOperation =\n\t| 'saveThoughtForSession'\n\t| 'loadHistoryForSession'\n\t| 'saveBranchForSession'\n\t| 'deleteBranch'\n\t| 'deleteBranchForSession'\n\t| 'loadBranchForSession'\n\t| 'listBranchesForSession'\n\t| 'listSessions'\n\t| 'clearSession';\n\n/** Persistence contract for durable named-session isolation. */\nexport interface SessionScopedPersistenceBackend extends PersistenceBackend {\n\tdeleteBranch(branchId: BranchId): Promise<void>;\n\tsaveThoughtForSession(sessionId: SessionId, thought: ThoughtData): Promise<void>;\n\tloadHistoryForSession(sessionId: SessionId): Promise<ThoughtData[]>;\n\tsaveBranchForSession(\n\t\tsessionId: SessionId,\n\t\tbranchId: BranchId,\n\t\tthoughts: readonly ThoughtData[]\n\t): Promise<void>;\n\tdeleteBranchForSession(sessionId: SessionId, branchId: BranchId): Promise<void>;\n\tloadBranchForSession(\n\t\tsessionId: SessionId,\n\t\tbranchId: BranchId\n\t): Promise<ThoughtData[] | undefined>;\n\tlistBranchesForSession(sessionId: SessionId): Promise<BranchId[]>;\n\tlistSessions(): Promise<SessionId[]>;\n\tclearSession(sessionId: SessionId): Promise<void>;\n}\n\n/** Return whether a backend implements every session-scoped operation. */\nexport function supportsSessionScopedPersistence(\n\tbackend: PersistenceBackend\n): backend is SessionScopedPersistenceBackend {\n\treturn (\n\t\t'saveThoughtForSession' in backend &&\n\t\ttypeof backend.saveThoughtForSession === 'function' &&\n\t\t'loadHistoryForSession' in backend &&\n\t\ttypeof backend.loadHistoryForSession === 'function' &&\n\t\t'saveBranchForSession' in backend &&\n\t\ttypeof backend.saveBranchForSession === 'function' &&\n\t\t'deleteBranch' in backend &&\n\t\ttypeof backend.deleteBranch === 'function' &&\n\t\t'deleteBranchForSession' in backend &&\n\t\ttypeof backend.deleteBranchForSession === 'function' &&\n\t\t'loadBranchForSession' in backend &&\n\t\ttypeof backend.loadBranchForSession === 'function' &&\n\t\t'listBranchesForSession' in backend &&\n\t\ttypeof backend.listBranchesForSession === 'function' &&\n\t\t'listSessions' in backend &&\n\t\ttypeof backend.listSessions === 'function' &&\n\t\t'clearSession' in backend &&\n\t\ttypeof backend.clearSession === 'function'\n\t);\n}\n\nexport interface PersistenceConfig {\n\tenabled?: boolean;\n\tbackend?: 'file' | 'sqlite' | 'memory';\n\toptions?: {\n\t\tdataDir?: string;\n\t\tdbPath?: string;\n\t\tenableWAL?: boolean;\n\t\tmaxHistorySize?: number;\n\t\tpersistBranches?: boolean;\n\t};\n}\n"],"names":["supportsSessionScopedPersistence","backend"],"mappings":"AA0JO,SAASA,iCACfC,OAA2B;IAE3B,OACC,2BAA2BA,WAC3B,AAAyC,cAAzC,OAAOA,QAAQ,qBAAqB,IACpC,2BAA2BA,WAC3B,AAAyC,cAAzC,OAAOA,QAAQ,qBAAqB,IACpC,0BAA0BA,WAC1B,AAAwC,cAAxC,OAAOA,QAAQ,oBAAoB,IACnC,kBAAkBA,WAClB,AAAgC,cAAhC,OAAOA,QAAQ,YAAY,IAC3B,4BAA4BA,WAC5B,AAA0C,cAA1C,OAAOA,QAAQ,sBAAsB,IACrC,0BAA0BA,WAC1B,AAAwC,cAAxC,OAAOA,QAAQ,oBAAoB,IACnC,4BAA4BA,WAC5B,AAA0C,cAA1C,OAAOA,QAAQ,sBAAsB,IACrC,kBAAkBA,WAClB,AAAgC,cAAhC,OAAOA,QAAQ,YAAY,IAC3B,kBAAkBA,WAClB,AAAgC,cAAhC,OAAOA,QAAQ,YAAY;AAE7B"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Calibrator contracts — interfaces for confidence calibration.
3
+ *
4
+ * Defines the shape of calibration metrics, results, and the calibrator
5
+ * service that maps raw model confidence to calibrated probabilities.
6
+ *
7
+ * @module contracts/calibrator
8
+ */
9
+ import type { SessionId } from './ids.js';
10
+ import type { ThoughtType } from './reasoning-types.js';
11
+ /**
12
+ * Aggregate calibration quality metrics for a session (or globally).
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const m: CalibrationMetrics = calibrator.metrics('session-1');
17
+ * console.log(m.brierScore, m.ece, m.sampleCount);
18
+ * ```
19
+ */
20
+ export interface CalibrationMetrics {
21
+ /** Brier score across all samples (lower is better). `null` if no samples. */
22
+ readonly brierScore: number | null;
23
+ /** Expected Calibration Error (lower is better). `null` if no samples. */
24
+ readonly ece: number | null;
25
+ /** Number of (prediction, outcome) samples backing the metrics. */
26
+ readonly sampleCount: number;
27
+ /** Per-thought-type Brier score breakdown. `null` per bucket if empty. */
28
+ readonly perTypeBrier: Record<ThoughtType, number | null>;
29
+ }
30
+ /**
31
+ * Result of calibrating a single raw confidence value.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const r: CalibrationResult = calibrator.calibrate(0.9, 'hypothesis', 'session-1');
36
+ * // r.calibrated may be lower than r.raw if the model is over-confident.
37
+ * ```
38
+ */
39
+ export interface CalibrationResult {
40
+ /** Original raw confidence in `[0, 1]`. */
41
+ readonly raw: number;
42
+ /** Calibrated confidence in `[0, 1]`. */
43
+ readonly calibrated: number;
44
+ /** Temperature used in the calibration mapping (1.0 = identity). */
45
+ readonly temperature: number;
46
+ /** Weight applied to the prior when blending with the raw signal. */
47
+ readonly priorWeight: number;
48
+ }
49
+ /**
50
+ * Calibrator service contract — converts raw confidence into calibrated
51
+ * probabilities and reports calibration quality.
52
+ *
53
+ * Implementations should be deterministic for the same `(raw, type, sessionId)`
54
+ * triple given a fixed internal state.
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const result = calibrator.calibrate(0.85, 'verification', 'session-1');
59
+ * const stats = calibrator.metrics('session-1');
60
+ * calibrator.refit('session-1');
61
+ * ```
62
+ */
63
+ export interface ICalibrator {
64
+ /** Whether calibration is enabled. When `false`, `calibrate()` returns `raw` unchanged. */
65
+ readonly enabled: boolean;
66
+ /**
67
+ * Map a raw confidence value to a calibrated value.
68
+ *
69
+ * @param rawConfidence - Raw confidence in `[0, 1]`.
70
+ * @param type - Thought type the confidence is associated with.
71
+ * @param sessionId - Session identifier for per-session calibration state.
72
+ * @returns The calibration result.
73
+ */
74
+ calibrate(rawConfidence: number, type: ThoughtType, sessionId: SessionId): CalibrationResult;
75
+ /**
76
+ * Get calibration metrics for a session, or globally if `sessionId` is omitted.
77
+ *
78
+ * @param sessionId - Optional session id; omit for global metrics.
79
+ * @returns Aggregate calibration metrics.
80
+ */
81
+ metrics(sessionId?: SessionId): CalibrationMetrics;
82
+ /**
83
+ * Refit the calibration model from accumulated samples.
84
+ *
85
+ * @param sessionId - Optional session id; omit to refit global state.
86
+ */
87
+ refit(sessionId?: SessionId): void;
88
+ /**
89
+ * Remove the fitted temperature for one session while preserving global state.
90
+ *
91
+ * @param sessionId - Session identifier whose fitted temperature is removed.
92
+ */
93
+ clearSession(sessionId: SessionId): void;
94
+ /** Remove all fitted session and global temperatures. */
95
+ clearAll(): void;
96
+ }
97
+ //# sourceMappingURL=calibrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibrator.d.ts","sourceRoot":"","sources":["../../src/contracts/calibrator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB,CAAC;IAC7F;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IACnD;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,yDAAyD;IACzD,QAAQ,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Feature flag definitions with const-asserted shape.
3
+ *
4
+ * @module contracts/features
5
+ */
6
+ /**
7
+ * Feature flags for opt-in/out TraceLattice capabilities.
8
+ *
9
+ * All flags default to true (enabled). Opt-out via configuration.
10
+ */
11
+ export interface FeatureFlags {
12
+ /** Enable DAG edges between thoughts. @default true */
13
+ readonly dagEdges: boolean;
14
+ /** Reasoning strategy selector. @default 'sequential' */
15
+ readonly reasoningStrategy: 'sequential' | 'tot';
16
+ /** Enable confidence calibration. @default true */
17
+ readonly calibration: boolean;
18
+ /** Enable thought compression. @default true */
19
+ readonly compression: boolean;
20
+ /** Enable tool interleaving. @default true */
21
+ readonly toolInterleave: boolean;
22
+ /** Enable new thought types. @default true */
23
+ readonly newThoughtTypes: boolean;
24
+ /** Enable outcome recording. @default true */
25
+ readonly outcomeRecording: boolean;
26
+ }
27
+ /**
28
+ * All feature flag keys as a union type.
29
+ */
30
+ export type FeatureFlagKey = keyof FeatureFlags;
31
+ /**
32
+ * Default feature flag values. All features enabled by default.
33
+ */
34
+ export declare const DEFAULT_FLAGS: FeatureFlags;
35
+ //# sourceMappingURL=features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/contracts/features.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,iBAAiB,EAAE,YAAY,GAAG,KAAK,CAAC;IACjD,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,8CAA8C;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAQlB,CAAC"}
@@ -0,0 +1,12 @@
1
+ const DEFAULT_FLAGS = {
2
+ dagEdges: true,
3
+ reasoningStrategy: 'sequential',
4
+ calibration: true,
5
+ compression: true,
6
+ toolInterleave: true,
7
+ newThoughtTypes: true,
8
+ outcomeRecording: true
9
+ };
10
+ export { DEFAULT_FLAGS };
11
+
12
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts/features.js","sources":["../../src/contracts/features.ts"],"sourcesContent":["/**\n * Feature flag definitions with const-asserted shape.\n *\n * @module contracts/features\n */\n\n/**\n * Feature flags for opt-in/out TraceLattice capabilities.\n *\n * All flags default to true (enabled). Opt-out via configuration.\n */\nexport interface FeatureFlags {\n\t/** Enable DAG edges between thoughts. @default true */\n\treadonly dagEdges: boolean;\n\t/** Reasoning strategy selector. @default 'sequential' */\n\treadonly reasoningStrategy: 'sequential' | 'tot';\n\t/** Enable confidence calibration. @default true */\n\treadonly calibration: boolean;\n\t/** Enable thought compression. @default true */\n\treadonly compression: boolean;\n\t/** Enable tool interleaving. @default true */\n\treadonly toolInterleave: boolean;\n\t/** Enable new thought types. @default true */\n\treadonly newThoughtTypes: boolean;\n\t/** Enable outcome recording. @default true */\n\treadonly outcomeRecording: boolean;\n}\n\n/**\n * All feature flag keys as a union type.\n */\nexport type FeatureFlagKey = keyof FeatureFlags;\n\n/**\n * Default feature flag values. All features enabled by default.\n */\nexport const DEFAULT_FLAGS: FeatureFlags = {\n\tdagEdges: true,\n\treasoningStrategy: 'sequential',\n\tcalibration: true,\n\tcompression: true,\n\ttoolInterleave: true,\n\tnewThoughtTypes: true,\n\toutcomeRecording: true,\n} as const;\n\n"],"names":["DEFAULT_FLAGS"],"mappings":"AAoCO,MAAMA,gBAA8B;IAC1C,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;AACnB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Branded identifier types for compile-time slot safety.
3
+ *
4
+ * These nominal types prevent accidental mixing of different ID kinds
5
+ * (e.g. passing a `ThoughtId` where a `SessionId` is expected). At
6
+ * runtime they are plain strings — the brand exists only in the type
7
+ * system.
8
+ *
9
+ * @module contracts/ids
10
+ */
11
+ declare const __brand: unique symbol;
12
+ /**
13
+ * Nominal brand helper.
14
+ *
15
+ * The brand is a phantom property — it exists at the type level only
16
+ * and carries zero runtime cost.
17
+ */
18
+ export type Brand<T, B extends string> = T & {
19
+ readonly [__brand]: B;
20
+ };
21
+ /** Branded session identifier. */
22
+ export type SessionId = Brand<string, 'SessionId'>;
23
+ /** Branded thought identifier. */
24
+ export type ThoughtId = Brand<string, 'ThoughtId'>;
25
+ /** Branded edge identifier. */
26
+ export type EdgeId = Brand<string, 'EdgeId'>;
27
+ /** Branded suspension token. */
28
+ export type SuspensionToken = Brand<string, 'SuspensionToken'>;
29
+ /** Branded branch identifier. */
30
+ export type BranchId = Brand<string, 'BranchId'>;
31
+ /** Branded summary identifier. */
32
+ export type SummaryId = Brand<string, 'SummaryId'>;
33
+ /**
34
+ * Validate and brand a string as a {@link SessionId}.
35
+ *
36
+ * Enforces {@link SESSION_ID_PATTERN} and {@link MAX_SESSION_ID_LENGTH}.
37
+ * The reserved global session sentinel `__global__` is always accepted.
38
+ *
39
+ * @throws {ValidationError} when the input is not a valid session id.
40
+ */
41
+ export declare function asSessionId(value: string): SessionId;
42
+ /** Brand a string as a {@link ThoughtId} without validation. */
43
+ export declare function asThoughtId(value: string): ThoughtId;
44
+ /** Brand a string as an {@link EdgeId} without validation. */
45
+ export declare function asEdgeId(value: string): EdgeId;
46
+ /** Brand a string as a {@link SuspensionToken} without validation. */
47
+ export declare function asSuspensionToken(value: string): SuspensionToken;
48
+ /** Brand a string as a {@link BranchId} without validation. */
49
+ export declare function asBranchId(value: string): BranchId;
50
+ /** Brand a string as a {@link SummaryId} without validation. */
51
+ export declare function asSummaryId(value: string): SummaryId;
52
+ /** Generate a fresh {@link ThoughtId}. */
53
+ export declare function generateThoughtId(): ThoughtId;
54
+ /** Generate a fresh {@link EdgeId}. */
55
+ export declare function generateEdgeId(): EdgeId;
56
+ /** Generate a fresh {@link SuspensionToken}. */
57
+ export declare function generateSuspensionToken(): SuspensionToken;
58
+ /** Generate a fresh {@link SummaryId}. */
59
+ export declare function generateSummaryId(): SummaryId;
60
+ /**
61
+ * Reserved sentinel session id used when callers omit `session_id`.
62
+ *
63
+ * Branded once here so production and test code share one constant
64
+ * instead of casting `'__global__'` ad-hoc.
65
+ */
66
+ export declare const GLOBAL_SESSION_ID: SessionId;
67
+ export {};
68
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/contracts/ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEvE,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD,+BAA+B;AAC/B,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7C,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,iCAAiC;AACjC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEjD,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAsBpD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEpD;AAED,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEhE;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAElD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEpD;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,uCAAuC;AACvC,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,gDAAgD;AAChD,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAqC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { MAX_SESSION_ID_LENGTH, SESSION_ID_PATTERN, generateUlid } from "../core/ids.js";
2
+ import { ValidationError } from "../errors.js";
3
+ function asSessionId(value) {
4
+ if ('__global__' === value) return value;
5
+ if ('string' != typeof value || 0 === value.length) throw new ValidationError('session_id', 'must be a non-empty string');
6
+ if (value.length > MAX_SESSION_ID_LENGTH) throw new ValidationError('session_id', `exceeds max length of ${MAX_SESSION_ID_LENGTH}`);
7
+ if (!SESSION_ID_PATTERN.test(value)) throw new ValidationError('session_id', 'must match alphanumeric, hyphens, underscores');
8
+ return value;
9
+ }
10
+ function asThoughtId(value) {
11
+ return value;
12
+ }
13
+ function asEdgeId(value) {
14
+ return value;
15
+ }
16
+ function asSuspensionToken(value) {
17
+ return value;
18
+ }
19
+ function asBranchId(value) {
20
+ return value;
21
+ }
22
+ function asSummaryId(value) {
23
+ return value;
24
+ }
25
+ function generateThoughtId() {
26
+ return generateUlid();
27
+ }
28
+ function generateEdgeId() {
29
+ return generateUlid();
30
+ }
31
+ function generateSuspensionToken() {
32
+ return generateUlid();
33
+ }
34
+ function generateSummaryId() {
35
+ return generateUlid();
36
+ }
37
+ const GLOBAL_SESSION_ID = asSessionId('__global__');
38
+ export { GLOBAL_SESSION_ID, asBranchId, asEdgeId, asSessionId, asSummaryId, asSuspensionToken, asThoughtId, generateEdgeId, generateSummaryId, generateSuspensionToken, generateThoughtId };
39
+
40
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts/ids.js","sources":["../../src/contracts/ids.ts"],"sourcesContent":["/**\n * Branded identifier types for compile-time slot safety.\n *\n * These nominal types prevent accidental mixing of different ID kinds\n * (e.g. passing a `ThoughtId` where a `SessionId` is expected). At\n * runtime they are plain strings — the brand exists only in the type\n * system.\n *\n * @module contracts/ids\n */\n\nimport {\n\tgenerateUlid,\n\tMAX_SESSION_ID_LENGTH,\n\tSESSION_ID_PATTERN,\n} from '../core/ids.js';\nimport { ValidationError } from '../errors.js';\n\ndeclare const __brand: unique symbol;\n\n/**\n * Nominal brand helper.\n *\n * The brand is a phantom property — it exists at the type level only\n * and carries zero runtime cost.\n */\nexport type Brand<T, B extends string> = T & { readonly [__brand]: B };\n\n/** Branded session identifier. */\nexport type SessionId = Brand<string, 'SessionId'>;\n\n/** Branded thought identifier. */\nexport type ThoughtId = Brand<string, 'ThoughtId'>;\n\n/** Branded edge identifier. */\nexport type EdgeId = Brand<string, 'EdgeId'>;\n\n/** Branded suspension token. */\nexport type SuspensionToken = Brand<string, 'SuspensionToken'>;\n\n/** Branded branch identifier. */\nexport type BranchId = Brand<string, 'BranchId'>;\n\n/** Branded summary identifier. */\nexport type SummaryId = Brand<string, 'SummaryId'>;\n\n/**\n * Validate and brand a string as a {@link SessionId}.\n *\n * Enforces {@link SESSION_ID_PATTERN} and {@link MAX_SESSION_ID_LENGTH}.\n * The reserved global session sentinel `__global__` is always accepted.\n *\n * @throws {ValidationError} when the input is not a valid session id.\n */\nexport function asSessionId(value: string): SessionId {\n\tif (value === '__global__') {\n\t\t// eslint-disable-next-line no-restricted-syntax -- branding constructor, cannot self-reference\n\t\treturn value as SessionId;\n\t}\n\tif (typeof value !== 'string' || value.length === 0) {\n\t\tthrow new ValidationError('session_id', 'must be a non-empty string');\n\t}\n\tif (value.length > MAX_SESSION_ID_LENGTH) {\n\t\tthrow new ValidationError(\n\t\t\t'session_id',\n\t\t\t`exceeds max length of ${MAX_SESSION_ID_LENGTH}`,\n\t\t);\n\t}\n\tif (!SESSION_ID_PATTERN.test(value)) {\n\t\tthrow new ValidationError(\n\t\t\t'session_id',\n\t\t\t'must match alphanumeric, hyphens, underscores',\n\t\t);\n\t}\n\t// eslint-disable-next-line no-restricted-syntax -- branding constructor, cannot self-reference\n\treturn value as SessionId;\n}\n\n/** Brand a string as a {@link ThoughtId} without validation. */\nexport function asThoughtId(value: string): ThoughtId {\n\treturn value as ThoughtId;\n}\n\n/** Brand a string as an {@link EdgeId} without validation. */\nexport function asEdgeId(value: string): EdgeId {\n\treturn value as EdgeId;\n}\n\n/** Brand a string as a {@link SuspensionToken} without validation. */\nexport function asSuspensionToken(value: string): SuspensionToken {\n\treturn value as SuspensionToken;\n}\n\n/** Brand a string as a {@link BranchId} without validation. */\nexport function asBranchId(value: string): BranchId {\n\treturn value as BranchId;\n}\n\n/** Brand a string as a {@link SummaryId} without validation. */\nexport function asSummaryId(value: string): SummaryId {\n\treturn value as SummaryId;\n}\n\n/** Generate a fresh {@link ThoughtId}. */\nexport function generateThoughtId(): ThoughtId {\n\treturn generateUlid() as ThoughtId;\n}\n\n/** Generate a fresh {@link EdgeId}. */\nexport function generateEdgeId(): EdgeId {\n\treturn generateUlid() as EdgeId;\n}\n\n/** Generate a fresh {@link SuspensionToken}. */\nexport function generateSuspensionToken(): SuspensionToken {\n\treturn generateUlid() as SuspensionToken;\n}\n\n/** Generate a fresh {@link SummaryId}. */\nexport function generateSummaryId(): SummaryId {\n\treturn generateUlid() as SummaryId;\n}\n\n/**\n * Reserved sentinel session id used when callers omit `session_id`.\n *\n * Branded once here so production and test code share one constant\n * instead of casting `'__global__'` ad-hoc.\n */\nexport const GLOBAL_SESSION_ID: SessionId = asSessionId('__global__');\n"],"names":["asSessionId","value","ValidationError","MAX_SESSION_ID_LENGTH","SESSION_ID_PATTERN","asThoughtId","asEdgeId","asSuspensionToken","asBranchId","asSummaryId","generateThoughtId","generateUlid","generateEdgeId","generateSuspensionToken","generateSummaryId","GLOBAL_SESSION_ID"],"mappings":";;AAsDO,SAASA,YAAYC,KAAa;IACxC,IAAIA,AAAU,iBAAVA,OAEH,OAAOA;IAER,IAAI,AAAiB,YAAjB,OAAOA,SAAsBA,AAAiB,MAAjBA,MAAM,MAAM,EAC5C,MAAM,IAAIC,gBAAgB,cAAc;IAEzC,IAAID,MAAM,MAAM,GAAGE,uBAClB,MAAM,IAAID,gBACT,cACA,CAAC,sBAAsB,EAAEC,uBAAuB;IAGlD,IAAI,CAACC,mBAAmB,IAAI,CAACH,QAC5B,MAAM,IAAIC,gBACT,cACA;IAIF,OAAOD;AACR;AAGO,SAASI,YAAYJ,KAAa;IACxC,OAAOA;AACR;AAGO,SAASK,SAASL,KAAa;IACrC,OAAOA;AACR;AAGO,SAASM,kBAAkBN,KAAa;IAC9C,OAAOA;AACR;AAGO,SAASO,WAAWP,KAAa;IACvC,OAAOA;AACR;AAGO,SAASQ,YAAYR,KAAa;IACxC,OAAOA;AACR;AAGO,SAASS;IACf,OAAOC;AACR;AAGO,SAASC;IACf,OAAOD;AACR;AAGO,SAASE;IACf,OAAOF;AACR;AAGO,SAASG;IACf,OAAOH;AACR;AAQO,MAAMI,oBAA+Bf,YAAY"}