@fgv/ts-agent-memory 5.1.0-46 → 5.1.0-48

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 (336) hide show
  1. package/README.md +55 -0
  2. package/dist/packlets/ingest/orchestrator.js +115 -20
  3. package/dist/packlets/ingest/orchestrator.js.map +1 -1
  4. package/dist/packlets/observe/memoryObservationStore.js +6 -0
  5. package/dist/packlets/observe/memoryObservationStore.js.map +1 -1
  6. package/dist/packlets/observe/observer.js.map +1 -1
  7. package/dist/packlets/store/fileTreeMemoryStore.js +63 -135
  8. package/dist/packlets/store/fileTreeMemoryStore.js.map +1 -1
  9. package/dist/packlets/store/vectorMaintenance.js +251 -0
  10. package/dist/packlets/store/vectorMaintenance.js.map +1 -0
  11. package/dist/packlets/vector/inMemoryCosineIndex.js +81 -18
  12. package/dist/packlets/vector/inMemoryCosineIndex.js.map +1 -1
  13. package/dist/packlets/vector/inMemoryFragmentCosineIndex.js +7 -0
  14. package/dist/packlets/vector/inMemoryFragmentCosineIndex.js.map +1 -1
  15. package/dist/packlets/vector/vectorIndex.js.map +1 -1
  16. package/dist/ts-agent-memory.d.ts +389 -71
  17. package/lib/packlets/ingest/orchestrator.d.ts +62 -5
  18. package/lib/packlets/ingest/orchestrator.d.ts.map +1 -1
  19. package/lib/packlets/ingest/orchestrator.js +115 -20
  20. package/lib/packlets/ingest/orchestrator.js.map +1 -1
  21. package/lib/packlets/observe/memoryObservationStore.d.ts.map +1 -1
  22. package/lib/packlets/observe/memoryObservationStore.js +6 -0
  23. package/lib/packlets/observe/memoryObservationStore.js.map +1 -1
  24. package/lib/packlets/observe/observer.d.ts +61 -0
  25. package/lib/packlets/observe/observer.d.ts.map +1 -1
  26. package/lib/packlets/observe/observer.js.map +1 -1
  27. package/lib/packlets/store/fileTreeMemoryStore.d.ts +97 -60
  28. package/lib/packlets/store/fileTreeMemoryStore.d.ts.map +1 -1
  29. package/lib/packlets/store/fileTreeMemoryStore.js +63 -135
  30. package/lib/packlets/store/fileTreeMemoryStore.js.map +1 -1
  31. package/lib/packlets/store/vectorMaintenance.d.ts +149 -0
  32. package/lib/packlets/store/vectorMaintenance.d.ts.map +1 -0
  33. package/lib/packlets/store/vectorMaintenance.js +255 -0
  34. package/lib/packlets/store/vectorMaintenance.js.map +1 -0
  35. package/lib/packlets/vector/inMemoryCosineIndex.d.ts +30 -7
  36. package/lib/packlets/vector/inMemoryCosineIndex.d.ts.map +1 -1
  37. package/lib/packlets/vector/inMemoryCosineIndex.js +80 -17
  38. package/lib/packlets/vector/inMemoryCosineIndex.js.map +1 -1
  39. package/lib/packlets/vector/inMemoryFragmentCosineIndex.d.ts +7 -0
  40. package/lib/packlets/vector/inMemoryFragmentCosineIndex.d.ts.map +1 -1
  41. package/lib/packlets/vector/inMemoryFragmentCosineIndex.js +7 -0
  42. package/lib/packlets/vector/inMemoryFragmentCosineIndex.js.map +1 -1
  43. package/lib/packlets/vector/vectorIndex.d.ts +129 -1
  44. package/lib/packlets/vector/vectorIndex.d.ts.map +1 -1
  45. package/lib/packlets/vector/vectorIndex.js.map +1 -1
  46. package/package.json +17 -7
  47. package/.rush/temp/6e1299d1cebb080772163a532c221cd181b54f9f.tar.log +0 -462
  48. package/.rush/temp/chunked-rush-logs/ts-agent-memory.build.chunks.jsonl +0 -9
  49. package/.rush/temp/operation/build/all.log +0 -9
  50. package/.rush/temp/operation/build/log-chunks.jsonl +0 -9
  51. package/.rush/temp/operation/build/state.json +0 -3
  52. package/.rush/temp/shrinkwrap-deps.json +0 -689
  53. package/config/api-extractor.json +0 -343
  54. package/config/jest.config.json +0 -14
  55. package/config/rig.json +0 -4
  56. package/dist/test/unit/converters/antagonistRoundTrip.test.js +0 -95
  57. package/dist/test/unit/converters/antagonistRoundTrip.test.js.map +0 -1
  58. package/dist/test/unit/converters/bodyConverterRegistry.test.js +0 -72
  59. package/dist/test/unit/converters/bodyConverterRegistry.test.js.map +0 -1
  60. package/dist/test/unit/converters/envelopeConverter.test.js +0 -313
  61. package/dist/test/unit/converters/envelopeConverter.test.js.map +0 -1
  62. package/dist/test/unit/index/memoryIndex.test.js +0 -214
  63. package/dist/test/unit/index/memoryIndex.test.js.map +0 -1
  64. package/dist/test/unit/ingest/antagonistCycleAndParity.test.js +0 -277
  65. package/dist/test/unit/ingest/antagonistCycleAndParity.test.js.map +0 -1
  66. package/dist/test/unit/ingest/cycleGuard.test.js +0 -81
  67. package/dist/test/unit/ingest/cycleGuard.test.js.map +0 -1
  68. package/dist/test/unit/ingest/orchestrator.test.js +0 -1055
  69. package/dist/test/unit/ingest/orchestrator.test.js.map +0 -1
  70. package/dist/test/unit/observe/memoryObservationStore.test.js +0 -118
  71. package/dist/test/unit/observe/memoryObservationStore.test.js.map +0 -1
  72. package/dist/test/unit/retrieve/fragmentSemanticRetriever.test.js +0 -116
  73. package/dist/test/unit/retrieve/fragmentSemanticRetriever.test.js.map +0 -1
  74. package/dist/test/unit/retrieve/linkTraversalRetriever.test.js +0 -257
  75. package/dist/test/unit/retrieve/linkTraversalRetriever.test.js.map +0 -1
  76. package/dist/test/unit/retrieve/retrievers.test.js +0 -768
  77. package/dist/test/unit/retrieve/retrievers.test.js.map +0 -1
  78. package/dist/test/unit/retrieve/temporalRetrievers.test.js +0 -182
  79. package/dist/test/unit/retrieve/temporalRetrievers.test.js.map +0 -1
  80. package/dist/test/unit/store/antagonistTemporalBoundary.test.js +0 -120
  81. package/dist/test/unit/store/antagonistTemporalBoundary.test.js.map +0 -1
  82. package/dist/test/unit/store/embedOnWrite.test.js +0 -317
  83. package/dist/test/unit/store/embedOnWrite.test.js.map +0 -1
  84. package/dist/test/unit/store/fileTreeMemoryStore.test.js +0 -778
  85. package/dist/test/unit/store/fileTreeMemoryStore.test.js.map +0 -1
  86. package/dist/test/unit/store/fragmentEmbedOnWrite.test.js +0 -255
  87. package/dist/test/unit/store/fragmentEmbedOnWrite.test.js.map +0 -1
  88. package/dist/test/unit/store/indexInjection.test.js +0 -432
  89. package/dist/test/unit/store/indexInjection.test.js.map +0 -1
  90. package/dist/test/unit/store/lenientOpen.test.js +0 -248
  91. package/dist/test/unit/store/lenientOpen.test.js.map +0 -1
  92. package/dist/test/unit/store/listScoped.test.js +0 -109
  93. package/dist/test/unit/store/listScoped.test.js.map +0 -1
  94. package/dist/test/unit/store/observations.test.js +0 -239
  95. package/dist/test/unit/store/observations.test.js.map +0 -1
  96. package/dist/test/unit/store/rankAxis.test.js +0 -254
  97. package/dist/test/unit/store/rankAxis.test.js.map +0 -1
  98. package/dist/test/unit/store/scopeEncoding.test.js +0 -24
  99. package/dist/test/unit/store/scopeEncoding.test.js.map +0 -1
  100. package/dist/test/unit/store/temporalStore.test.js +0 -398
  101. package/dist/test/unit/store/temporalStore.test.js.map +0 -1
  102. package/dist/test/unit/tools/memoryTools.test.js +0 -841
  103. package/dist/test/unit/tools/memoryTools.test.js.map +0 -1
  104. package/dist/test/unit/types/identityCodec.test.js +0 -187
  105. package/dist/test/unit/types/identityCodec.test.js.map +0 -1
  106. package/dist/test/unit/types/ids.test.js +0 -84
  107. package/dist/test/unit/types/ids.test.js.map +0 -1
  108. package/dist/test/unit/types/temporalCodec.test.js +0 -203
  109. package/dist/test/unit/types/temporalCodec.test.js.map +0 -1
  110. package/dist/test/unit/types/temporalPolicy.test.js +0 -83
  111. package/dist/test/unit/types/temporalPolicy.test.js.map +0 -1
  112. package/dist/test/unit/types/writePolicy.test.js +0 -331
  113. package/dist/test/unit/types/writePolicy.test.js.map +0 -1
  114. package/dist/test/unit/vector/fragmentConverters.test.js +0 -58
  115. package/dist/test/unit/vector/fragmentConverters.test.js.map +0 -1
  116. package/dist/test/unit/vector/inMemoryCosineIndex.test.js +0 -252
  117. package/dist/test/unit/vector/inMemoryCosineIndex.test.js.map +0 -1
  118. package/dist/test/unit/vector/inMemoryFragmentCosineIndex.test.js +0 -362
  119. package/dist/test/unit/vector/inMemoryFragmentCosineIndex.test.js.map +0 -1
  120. package/dist/test/unit/vector/vectorIndex.test.js +0 -51
  121. package/dist/test/unit/vector/vectorIndex.test.js.map +0 -1
  122. package/eslint.config.js +0 -15
  123. package/etc/ts-agent-memory.api.md +0 -938
  124. package/lib/test/unit/converters/antagonistRoundTrip.test.d.ts +0 -10
  125. package/lib/test/unit/converters/antagonistRoundTrip.test.d.ts.map +0 -1
  126. package/lib/test/unit/converters/antagonistRoundTrip.test.js +0 -97
  127. package/lib/test/unit/converters/antagonistRoundTrip.test.js.map +0 -1
  128. package/lib/test/unit/converters/bodyConverterRegistry.test.d.ts +0 -2
  129. package/lib/test/unit/converters/bodyConverterRegistry.test.d.ts.map +0 -1
  130. package/lib/test/unit/converters/bodyConverterRegistry.test.js +0 -74
  131. package/lib/test/unit/converters/bodyConverterRegistry.test.js.map +0 -1
  132. package/lib/test/unit/converters/envelopeConverter.test.d.ts +0 -2
  133. package/lib/test/unit/converters/envelopeConverter.test.d.ts.map +0 -1
  134. package/lib/test/unit/converters/envelopeConverter.test.js +0 -315
  135. package/lib/test/unit/converters/envelopeConverter.test.js.map +0 -1
  136. package/lib/test/unit/index/memoryIndex.test.d.ts +0 -2
  137. package/lib/test/unit/index/memoryIndex.test.d.ts.map +0 -1
  138. package/lib/test/unit/index/memoryIndex.test.js +0 -216
  139. package/lib/test/unit/index/memoryIndex.test.js.map +0 -1
  140. package/lib/test/unit/ingest/antagonistCycleAndParity.test.d.ts +0 -9
  141. package/lib/test/unit/ingest/antagonistCycleAndParity.test.d.ts.map +0 -1
  142. package/lib/test/unit/ingest/antagonistCycleAndParity.test.js +0 -279
  143. package/lib/test/unit/ingest/antagonistCycleAndParity.test.js.map +0 -1
  144. package/lib/test/unit/ingest/cycleGuard.test.d.ts +0 -2
  145. package/lib/test/unit/ingest/cycleGuard.test.d.ts.map +0 -1
  146. package/lib/test/unit/ingest/cycleGuard.test.js +0 -83
  147. package/lib/test/unit/ingest/cycleGuard.test.js.map +0 -1
  148. package/lib/test/unit/ingest/orchestrator.test.d.ts +0 -2
  149. package/lib/test/unit/ingest/orchestrator.test.d.ts.map +0 -1
  150. package/lib/test/unit/ingest/orchestrator.test.js +0 -1057
  151. package/lib/test/unit/ingest/orchestrator.test.js.map +0 -1
  152. package/lib/test/unit/observe/memoryObservationStore.test.d.ts +0 -2
  153. package/lib/test/unit/observe/memoryObservationStore.test.d.ts.map +0 -1
  154. package/lib/test/unit/observe/memoryObservationStore.test.js +0 -120
  155. package/lib/test/unit/observe/memoryObservationStore.test.js.map +0 -1
  156. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.d.ts +0 -2
  157. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.d.ts.map +0 -1
  158. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.js +0 -118
  159. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.js.map +0 -1
  160. package/lib/test/unit/retrieve/linkTraversalRetriever.test.d.ts +0 -2
  161. package/lib/test/unit/retrieve/linkTraversalRetriever.test.d.ts.map +0 -1
  162. package/lib/test/unit/retrieve/linkTraversalRetriever.test.js +0 -259
  163. package/lib/test/unit/retrieve/linkTraversalRetriever.test.js.map +0 -1
  164. package/lib/test/unit/retrieve/retrievers.test.d.ts +0 -2
  165. package/lib/test/unit/retrieve/retrievers.test.d.ts.map +0 -1
  166. package/lib/test/unit/retrieve/retrievers.test.js +0 -770
  167. package/lib/test/unit/retrieve/retrievers.test.js.map +0 -1
  168. package/lib/test/unit/retrieve/temporalRetrievers.test.d.ts +0 -2
  169. package/lib/test/unit/retrieve/temporalRetrievers.test.d.ts.map +0 -1
  170. package/lib/test/unit/retrieve/temporalRetrievers.test.js +0 -184
  171. package/lib/test/unit/retrieve/temporalRetrievers.test.js.map +0 -1
  172. package/lib/test/unit/store/antagonistTemporalBoundary.test.d.ts +0 -9
  173. package/lib/test/unit/store/antagonistTemporalBoundary.test.d.ts.map +0 -1
  174. package/lib/test/unit/store/antagonistTemporalBoundary.test.js +0 -122
  175. package/lib/test/unit/store/antagonistTemporalBoundary.test.js.map +0 -1
  176. package/lib/test/unit/store/embedOnWrite.test.d.ts +0 -2
  177. package/lib/test/unit/store/embedOnWrite.test.d.ts.map +0 -1
  178. package/lib/test/unit/store/embedOnWrite.test.js +0 -319
  179. package/lib/test/unit/store/embedOnWrite.test.js.map +0 -1
  180. package/lib/test/unit/store/fileTreeMemoryStore.test.d.ts +0 -2
  181. package/lib/test/unit/store/fileTreeMemoryStore.test.d.ts.map +0 -1
  182. package/lib/test/unit/store/fileTreeMemoryStore.test.js +0 -780
  183. package/lib/test/unit/store/fileTreeMemoryStore.test.js.map +0 -1
  184. package/lib/test/unit/store/fragmentEmbedOnWrite.test.d.ts +0 -2
  185. package/lib/test/unit/store/fragmentEmbedOnWrite.test.d.ts.map +0 -1
  186. package/lib/test/unit/store/fragmentEmbedOnWrite.test.js +0 -257
  187. package/lib/test/unit/store/fragmentEmbedOnWrite.test.js.map +0 -1
  188. package/lib/test/unit/store/indexInjection.test.d.ts +0 -2
  189. package/lib/test/unit/store/indexInjection.test.d.ts.map +0 -1
  190. package/lib/test/unit/store/indexInjection.test.js +0 -434
  191. package/lib/test/unit/store/indexInjection.test.js.map +0 -1
  192. package/lib/test/unit/store/lenientOpen.test.d.ts +0 -2
  193. package/lib/test/unit/store/lenientOpen.test.d.ts.map +0 -1
  194. package/lib/test/unit/store/lenientOpen.test.js +0 -250
  195. package/lib/test/unit/store/lenientOpen.test.js.map +0 -1
  196. package/lib/test/unit/store/listScoped.test.d.ts +0 -2
  197. package/lib/test/unit/store/listScoped.test.d.ts.map +0 -1
  198. package/lib/test/unit/store/listScoped.test.js +0 -111
  199. package/lib/test/unit/store/listScoped.test.js.map +0 -1
  200. package/lib/test/unit/store/observations.test.d.ts +0 -2
  201. package/lib/test/unit/store/observations.test.d.ts.map +0 -1
  202. package/lib/test/unit/store/observations.test.js +0 -241
  203. package/lib/test/unit/store/observations.test.js.map +0 -1
  204. package/lib/test/unit/store/rankAxis.test.d.ts +0 -2
  205. package/lib/test/unit/store/rankAxis.test.d.ts.map +0 -1
  206. package/lib/test/unit/store/rankAxis.test.js +0 -256
  207. package/lib/test/unit/store/rankAxis.test.js.map +0 -1
  208. package/lib/test/unit/store/scopeEncoding.test.d.ts +0 -2
  209. package/lib/test/unit/store/scopeEncoding.test.d.ts.map +0 -1
  210. package/lib/test/unit/store/scopeEncoding.test.js +0 -26
  211. package/lib/test/unit/store/scopeEncoding.test.js.map +0 -1
  212. package/lib/test/unit/store/temporalStore.test.d.ts +0 -2
  213. package/lib/test/unit/store/temporalStore.test.d.ts.map +0 -1
  214. package/lib/test/unit/store/temporalStore.test.js +0 -400
  215. package/lib/test/unit/store/temporalStore.test.js.map +0 -1
  216. package/lib/test/unit/tools/memoryTools.test.d.ts +0 -2
  217. package/lib/test/unit/tools/memoryTools.test.d.ts.map +0 -1
  218. package/lib/test/unit/tools/memoryTools.test.js +0 -843
  219. package/lib/test/unit/tools/memoryTools.test.js.map +0 -1
  220. package/lib/test/unit/types/identityCodec.test.d.ts +0 -2
  221. package/lib/test/unit/types/identityCodec.test.d.ts.map +0 -1
  222. package/lib/test/unit/types/identityCodec.test.js +0 -189
  223. package/lib/test/unit/types/identityCodec.test.js.map +0 -1
  224. package/lib/test/unit/types/ids.test.d.ts +0 -2
  225. package/lib/test/unit/types/ids.test.d.ts.map +0 -1
  226. package/lib/test/unit/types/ids.test.js +0 -86
  227. package/lib/test/unit/types/ids.test.js.map +0 -1
  228. package/lib/test/unit/types/temporalCodec.test.d.ts +0 -2
  229. package/lib/test/unit/types/temporalCodec.test.d.ts.map +0 -1
  230. package/lib/test/unit/types/temporalCodec.test.js +0 -205
  231. package/lib/test/unit/types/temporalCodec.test.js.map +0 -1
  232. package/lib/test/unit/types/temporalPolicy.test.d.ts +0 -2
  233. package/lib/test/unit/types/temporalPolicy.test.d.ts.map +0 -1
  234. package/lib/test/unit/types/temporalPolicy.test.js +0 -85
  235. package/lib/test/unit/types/temporalPolicy.test.js.map +0 -1
  236. package/lib/test/unit/types/writePolicy.test.d.ts +0 -2
  237. package/lib/test/unit/types/writePolicy.test.d.ts.map +0 -1
  238. package/lib/test/unit/types/writePolicy.test.js +0 -333
  239. package/lib/test/unit/types/writePolicy.test.js.map +0 -1
  240. package/lib/test/unit/vector/fragmentConverters.test.d.ts +0 -2
  241. package/lib/test/unit/vector/fragmentConverters.test.d.ts.map +0 -1
  242. package/lib/test/unit/vector/fragmentConverters.test.js +0 -60
  243. package/lib/test/unit/vector/fragmentConverters.test.js.map +0 -1
  244. package/lib/test/unit/vector/inMemoryCosineIndex.test.d.ts +0 -2
  245. package/lib/test/unit/vector/inMemoryCosineIndex.test.d.ts.map +0 -1
  246. package/lib/test/unit/vector/inMemoryCosineIndex.test.js +0 -254
  247. package/lib/test/unit/vector/inMemoryCosineIndex.test.js.map +0 -1
  248. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.d.ts +0 -2
  249. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.d.ts.map +0 -1
  250. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.js +0 -364
  251. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.js.map +0 -1
  252. package/lib/test/unit/vector/vectorIndex.test.d.ts +0 -2
  253. package/lib/test/unit/vector/vectorIndex.test.d.ts.map +0 -1
  254. package/lib/test/unit/vector/vectorIndex.test.js +0 -53
  255. package/lib/test/unit/vector/vectorIndex.test.js.map +0 -1
  256. package/rush-logs/ts-agent-memory.build.cache.log +0 -3
  257. package/rush-logs/ts-agent-memory.build.log +0 -9
  258. package/src/index.ts +0 -14
  259. package/src/packlets/converters/bodyConverterRegistry.ts +0 -105
  260. package/src/packlets/converters/envelopeConverter.ts +0 -233
  261. package/src/packlets/converters/index.ts +0 -7
  262. package/src/packlets/index/index.ts +0 -6
  263. package/src/packlets/index/memoryIndex.ts +0 -332
  264. package/src/packlets/ingest/cycleGuard.ts +0 -153
  265. package/src/packlets/ingest/hostStages.ts +0 -111
  266. package/src/packlets/ingest/index.ts +0 -9
  267. package/src/packlets/ingest/model.ts +0 -195
  268. package/src/packlets/ingest/orchestrator.ts +0 -873
  269. package/src/packlets/observe/index.ts +0 -7
  270. package/src/packlets/observe/memoryObservationStore.ts +0 -153
  271. package/src/packlets/observe/observer.ts +0 -119
  272. package/src/packlets/retrieve/fragmentSemanticRetriever.ts +0 -138
  273. package/src/packlets/retrieve/hybridRetriever.ts +0 -194
  274. package/src/packlets/retrieve/index.ts +0 -14
  275. package/src/packlets/retrieve/linkTraversalRetriever.ts +0 -158
  276. package/src/packlets/retrieve/recencyRetriever.ts +0 -54
  277. package/src/packlets/retrieve/retriever.ts +0 -291
  278. package/src/packlets/retrieve/semanticRetriever.ts +0 -152
  279. package/src/packlets/retrieve/structuredFilterRetriever.ts +0 -58
  280. package/src/packlets/retrieve/tagRetriever.ts +0 -58
  281. package/src/packlets/retrieve/temporalRetrievers.ts +0 -210
  282. package/src/packlets/store/fileTreeMemoryStore.ts +0 -1834
  283. package/src/packlets/store/index.ts +0 -7
  284. package/src/packlets/store/scopeEncoding.ts +0 -36
  285. package/src/packlets/tools/index.ts +0 -6
  286. package/src/packlets/tools/memoryTools.ts +0 -706
  287. package/src/packlets/types/envelope.ts +0 -196
  288. package/src/packlets/types/filenameSafety.ts +0 -57
  289. package/src/packlets/types/identityCodec.ts +0 -447
  290. package/src/packlets/types/ids.ts +0 -124
  291. package/src/packlets/types/index.ts +0 -11
  292. package/src/packlets/types/temporal.ts +0 -96
  293. package/src/packlets/types/writePolicy.ts +0 -612
  294. package/src/packlets/vector/fragmentConverters.ts +0 -55
  295. package/src/packlets/vector/inMemoryCosineIndex.ts +0 -196
  296. package/src/packlets/vector/inMemoryFragmentCosineIndex.ts +0 -289
  297. package/src/packlets/vector/index.ts +0 -9
  298. package/src/packlets/vector/vectorIndex.ts +0 -273
  299. package/src/test/unit/converters/antagonistRoundTrip.test.ts +0 -110
  300. package/src/test/unit/converters/bodyConverterRegistry.test.ts +0 -89
  301. package/src/test/unit/converters/envelopeConverter.test.ts +0 -418
  302. package/src/test/unit/index/memoryIndex.test.ts +0 -272
  303. package/src/test/unit/ingest/antagonistCycleAndParity.test.ts +0 -367
  304. package/src/test/unit/ingest/cycleGuard.test.ts +0 -110
  305. package/src/test/unit/ingest/orchestrator.test.ts +0 -1351
  306. package/src/test/unit/observe/memoryObservationStore.test.ts +0 -158
  307. package/src/test/unit/retrieve/fragmentSemanticRetriever.test.ts +0 -163
  308. package/src/test/unit/retrieve/linkTraversalRetriever.test.ts +0 -329
  309. package/src/test/unit/retrieve/retrievers.test.ts +0 -1018
  310. package/src/test/unit/retrieve/temporalRetrievers.test.ts +0 -226
  311. package/src/test/unit/store/antagonistTemporalBoundary.test.ts +0 -158
  312. package/src/test/unit/store/embedOnWrite.test.ts +0 -418
  313. package/src/test/unit/store/fileTreeMemoryStore.test.ts +0 -1041
  314. package/src/test/unit/store/fragmentEmbedOnWrite.test.ts +0 -349
  315. package/src/test/unit/store/indexInjection.test.ts +0 -550
  316. package/src/test/unit/store/lenientOpen.test.ts +0 -292
  317. package/src/test/unit/store/listScoped.test.ts +0 -138
  318. package/src/test/unit/store/observations.test.ts +0 -290
  319. package/src/test/unit/store/rankAxis.test.ts +0 -349
  320. package/src/test/unit/store/scopeEncoding.test.ts +0 -37
  321. package/src/test/unit/store/temporalStore.test.ts +0 -469
  322. package/src/test/unit/tools/memoryTools.test.ts +0 -1120
  323. package/src/test/unit/types/identityCodec.test.ts +0 -266
  324. package/src/test/unit/types/ids.test.ts +0 -94
  325. package/src/test/unit/types/temporalCodec.test.ts +0 -259
  326. package/src/test/unit/types/temporalPolicy.test.ts +0 -124
  327. package/src/test/unit/types/writePolicy.test.ts +0 -446
  328. package/src/test/unit/vector/fragmentConverters.test.ts +0 -80
  329. package/src/test/unit/vector/inMemoryCosineIndex.test.ts +0 -318
  330. package/src/test/unit/vector/inMemoryFragmentCosineIndex.test.ts +0 -477
  331. package/src/test/unit/vector/vectorIndex.test.ts +0 -64
  332. package/temp/build/lint/_eslint-5eVG3S6w.json +0 -302
  333. package/temp/build/typescript/ts_8nwakTlr.json +0 -1
  334. package/temp/ts-agent-memory.api.json +0 -20933
  335. package/temp/ts-agent-memory.api.md +0 -938
  336. package/tsconfig.json +0 -8
@@ -1,938 +0,0 @@
1
- ## API Report File for "@fgv/ts-agent-memory"
2
-
3
- > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
-
5
- ```ts
6
-
7
- import { AiAssist } from '@fgv/ts-extras';
8
- import { Brand } from '@fgv/ts-utils';
9
- import { Converter } from '@fgv/ts-utils';
10
- import { FileTree } from '@fgv/ts-json-base';
11
- import { JsonSchema } from '@fgv/ts-json-base';
12
- import { Logging } from '@fgv/ts-utils';
13
- import { Result } from '@fgv/ts-utils';
14
-
15
- // @public
16
- export type AdmissionDecision = {
17
- readonly decision: 'accept';
18
- } | {
19
- readonly decision: 'reject';
20
- readonly reason: string;
21
- } | {
22
- readonly decision: 'cull-oldest';
23
- readonly evict: ReadonlyArray<MemoryId>;
24
- };
25
-
26
- // @public
27
- export class AsOfRetriever implements IMemoryRetriever {
28
- get capabilities(): IMemoryRetrieverCapabilities;
29
- static create(index: IMemoryIndex): Result<AsOfRetriever>;
30
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
31
- }
32
-
33
- // @public
34
- export function assertNoCycles(existing: ReadonlyArray<ICycleGuardEdge>, proposed: ReadonlyArray<ICycleGuardEdge>): Result<true>;
35
-
36
- // @public
37
- export function assertPortableFilenameStem(stem: string): Result<string>;
38
-
39
- // @public
40
- export class BodyConverterRegistry implements IBodyConverterRegistry {
41
- convert(kind: Kind, body: unknown): Result<unknown>;
42
- static create(): Result<BodyConverterRegistry>;
43
- getConverter(kind: Kind): Result<Converter<unknown>>;
44
- has(kind: Kind): boolean;
45
- register<T>(kind: Kind, converter: Converter<T>): void;
46
- registerSchema<T>(kind: Kind, schema: JsonSchema.ISchemaValidator<T>): void;
47
- }
48
-
49
- // @public
50
- export function buildCycleKey(edge: ICycleGuardEdge): Result<string>;
51
-
52
- // @public
53
- export const CONTRADICTS_LINK_TYPE: LinkType;
54
-
55
- // @public
56
- export const Convert: {
57
- readonly memoryId: Converter<MemoryId>;
58
- readonly entityId: Converter<EntityId>;
59
- readonly kind: Converter<Kind>;
60
- readonly tag: Converter<Tag>;
61
- readonly scopeKey: Converter<MemoryScopeKey>;
62
- readonly linkType: Converter<LinkType>;
63
- };
64
-
65
- // @public
66
- export function createMemoryTools(params: ICreateMemoryToolsParams): ReadonlyArray<AiAssist.IAiClientTool>;
67
-
68
- // @public
69
- export class CurrentValidRetriever implements IMemoryRetriever {
70
- get capabilities(): IMemoryRetrieverCapabilities;
71
- static create(index: IMemoryIndex): Result<CurrentValidRetriever>;
72
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
73
- }
74
-
75
- // @public
76
- export type CycleGuardMode = 'reject' | 'off';
77
-
78
- // @public
79
- export type DedupScope = 'content' | 'entity';
80
-
81
- // @public
82
- export const DEFAULT_DEDUP_SCOPE: DedupScope;
83
-
84
- // @public
85
- export const DEFAULT_MEMORY_TOOLS: ReadonlyArray<MemoryToolName>;
86
-
87
- // @public
88
- export const DEFAULT_SIMILARITY_THRESHOLD: number;
89
-
90
- // @public
91
- export const DEFAULT_SIMILARITY_TOP_K: number;
92
-
93
- // @public
94
- export function defaultMemoryScopeEncoding(scope: MemoryScopeKey): Result<string>;
95
-
96
- // @public
97
- export const edgeConverter: Converter<IEdge>;
98
-
99
- // @public
100
- export const edgeTargetConverter: Converter<IEdgeTarget>;
101
-
102
- // @public
103
- export function edgeTargetKey(target: IEdgeTarget): string;
104
-
105
- // @public
106
- export const embeddedFragmentConverter: Converter<IEmbeddedFragment>;
107
-
108
- // @public
109
- export type EntityId = Brand<string, 'EntityId'>;
110
-
111
- // @public
112
- export const envelopeConverter: Converter<IMemoryEnvelope>;
113
-
114
- // @public
115
- export const envelopeYamlConverter: Converter<IMemoryEnvelope>;
116
-
117
- // @public
118
- export class FileTreeMemoryStore implements IMemoryStore {
119
- asRecordSource(): IMemoryRecordSource;
120
- static create(params: IFileTreeMemoryStoreCreateParams): Result<FileTreeMemoryStore>;
121
- delete(kind: Kind, entityId: EntityId): Promise<Result<MemoryId>>;
122
- get(kind: Kind, entityId: EntityId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
123
- getById(scope: MemoryScopeKey, id: MemoryId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
124
- list(filter?: IMemoryStoreListFilter): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
125
- listScoped(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
126
- put(record: IMemoryRecord<unknown>): Promise<Result<IMemoryRecord<unknown>>>;
127
- get skippedRecords(): ReadonlyArray<ISkippedRecord>;
128
- }
129
-
130
- // @public
131
- export const FRAGMENT_SEMANTIC_UNWIRED_MESSAGE: string;
132
-
133
- // @public
134
- export type FragmentEmbedder = (record: IMemoryRecord<unknown>) => Promise<Result<ReadonlyArray<IEmbeddedFragment>>>;
135
-
136
- // @public
137
- export const fragmentLocatorConverter: Converter<IFragmentLocator>;
138
-
139
- // @public
140
- export class FragmentSemanticRetriever {
141
- get capabilities(): IFragmentRetrieverCapabilities;
142
- static create(params: {
143
- readonly backend?: IFragmentSemanticBackend;
144
- }): Result<FragmentSemanticRetriever>;
145
- retrieve(query: IFragmentQuery): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
146
- }
147
-
148
- // @public
149
- export function guardRetrieverCapabilities(query: IMemoryQuery, capabilities: IMemoryRetrieverCapabilities): Result<true>;
150
-
151
- // @public
152
- export class HistoryRetriever implements IMemoryRetriever {
153
- get capabilities(): IMemoryRetrieverCapabilities;
154
- static create(index: IMemoryIndex): Result<HistoryRetriever>;
155
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
156
- }
157
-
158
- // @public
159
- export const HOST_INGEST_PROVENANCE_SOURCE: string;
160
-
161
- // @public
162
- export class HybridRetriever implements IMemoryRetriever {
163
- get capabilities(): IMemoryRetrieverCapabilities;
164
- static create(retrievers: ReadonlyArray<IMemoryRetriever>, mergeStrategy: IMergeStrategy): Result<HybridRetriever>;
165
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
166
- }
167
-
168
- // @public
169
- export interface IBodyConverterRegistry {
170
- convert(kind: Kind, body: unknown): Result<unknown>;
171
- getConverter(kind: Kind): Result<Converter<unknown>>;
172
- has(kind: Kind): boolean;
173
- register<T>(kind: Kind, converter: Converter<T>): void;
174
- registerSchema<T>(kind: Kind, schema: JsonSchema.ISchemaValidator<T>): void;
175
- }
176
-
177
- // @public
178
- export interface ICandidateEdge {
179
- readonly edge: IEdge;
180
- readonly source: IEdgeTarget;
181
- }
182
-
183
- // @public
184
- export interface ICandidateRecord {
185
- readonly body: unknown;
186
- readonly envelope: Omit<IMemoryEnvelope, StoreStampedEnvelopeField>;
187
- }
188
-
189
- // @public
190
- export interface ICreateMemoryToolsParams {
191
- readonly codecs?: ReadonlyMap<Kind, IIdentityCodec>;
192
- readonly defaultCodec?: IIdentityCodec;
193
- readonly handleFor?: (record: IMemoryRecord<unknown>) => string;
194
- readonly kinds?: ReadonlyArray<Kind>;
195
- readonly projectItem?: (record: IMemoryRecord<unknown>, detail: MemoryDetailTier) => IMemoryToolResultItem;
196
- readonly registry: IBodyConverterRegistry;
197
- readonly retriever: IMemoryRetriever;
198
- readonly store: IMemoryStore;
199
- readonly tools?: ReadonlyArray<MemoryToolName>;
200
- }
201
-
202
- // @public
203
- export interface ICycleGuardEdge {
204
- // (undocumented)
205
- readonly source: IEdgeTarget;
206
- // (undocumented)
207
- readonly target: IEdgeTarget;
208
- // (undocumented)
209
- readonly type: LinkType;
210
- }
211
-
212
- // @public
213
- export interface IEdge {
214
- readonly confidence?: number;
215
- readonly invalid_at?: number | null;
216
- readonly provenance?: IProvenance;
217
- readonly target: IEdgeTarget;
218
- readonly type: LinkType;
219
- readonly valid_at?: number;
220
- }
221
-
222
- // @public
223
- export interface IEdgeTarget {
224
- readonly id: MemoryId;
225
- readonly scope: MemoryScopeKey;
226
- }
227
-
228
- // @public
229
- export interface IEmbeddedFragment {
230
- readonly fragmentId?: string;
231
- readonly locator?: IFragmentLocator;
232
- readonly vector: Float32Array;
233
- }
234
-
235
- // @public
236
- export interface IEntityResolutionCandidate {
237
- readonly record: IMemoryRecord<unknown>;
238
- readonly score: number;
239
- readonly target: IEdgeTarget;
240
- }
241
-
242
- // @public
243
- export interface IEntityResolver {
244
- resolve(candidate: ICandidateRecord, similar: ReadonlyArray<IEntityResolutionCandidate>): Promise<Result<ResolutionVerdict>>;
245
- }
246
-
247
- // @public
248
- export interface IFactExtractor {
249
- extract(item: IIngestItem, classification: IMemoryClassification): Promise<Result<ReadonlyArray<ICandidateRecord>>>;
250
- }
251
-
252
- // @public
253
- export interface IFileTreeMemoryStoreCreateParams {
254
- readonly clock?: () => number;
255
- readonly codecs?: ReadonlyMap<Kind, IIdentityCodec>;
256
- readonly defaultCodec?: IIdentityCodec;
257
- readonly embed?: MemoryEmbedder;
258
- readonly fragmentEmbedder?: FragmentEmbedder;
259
- readonly fragmentIndex?: IFragmentVectorIndex;
260
- readonly index?: IMemoryIndex;
261
- readonly logger?: Logging.ILogger;
262
- readonly observers?: ReadonlyArray<IMemoryObserver>;
263
- readonly onRecordError?: MemoryRecordErrorMode;
264
- readonly rankProjectors?: ReadonlyMap<Kind, RankProjector>;
265
- readonly registry: IBodyConverterRegistry;
266
- readonly root: FileTree.IMutableFileTreeDirectoryItem;
267
- readonly scopeEncoding?: (scope: MemoryScopeKey) => Result<string>;
268
- readonly vectorIndex?: IVectorIndex;
269
- readonly writePolicies?: ReadonlyMap<Kind, IWritePolicy>;
270
- }
271
-
272
- // @public
273
- export interface IFragmentLocator {
274
- readonly end: number;
275
- readonly start: number;
276
- }
277
-
278
- // @public
279
- export interface IFragmentQuery {
280
- readonly maxPerRecord?: number;
281
- readonly semantic: string;
282
- readonly topK?: number;
283
- }
284
-
285
- // @public
286
- export interface IFragmentRetrieverCapabilities {
287
- readonly supportsFragmentRecall: boolean;
288
- }
289
-
290
- // @public
291
- export interface IFragmentSemanticBackend {
292
- readonly embedQuery: QueryEmbedder;
293
- readonly fragmentIndex: IFragmentVectorIndex;
294
- }
295
-
296
- // @public
297
- export interface IFragmentVectorIndex {
298
- addFragments(target: IEdgeTarget, fragments: ReadonlyArray<IEmbeddedFragment>): Promise<Result<number>>;
299
- query(vector: Float32Array, topK: number, maxPerRecord?: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
300
- remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
301
- }
302
-
303
- // @public
304
- export interface IIdentityCodec {
305
- decode(scope: MemoryScopeKey, encodedStem: string): Result<EntityId>;
306
- encode(entityId: EntityId): Result<IIdentityCodecResult>;
307
- verifyRoundTrip(scope: MemoryScopeKey, stem: string): Result<true>;
308
- }
309
-
310
- // @public
311
- export interface IIdentityCodecResult {
312
- readonly idStem: string;
313
- readonly isVersioned: boolean;
314
- readonly scope: MemoryScopeKey;
315
- }
316
-
317
- // @public
318
- export interface IIndexedMemoryRecord {
319
- readonly record: IMemoryRecord<unknown>;
320
- readonly scope: MemoryScopeKey;
321
- }
322
-
323
- // @public
324
- export interface IIngestedRecordResult {
325
- readonly candidate: ICandidateRecord;
326
- readonly disposition: IngestDisposition;
327
- readonly edges: ReadonlyArray<ICandidateEdge>;
328
- readonly id: MemoryId;
329
- readonly interlock?: 'temporal-versioned';
330
- readonly record?: IMemoryRecord<unknown>;
331
- readonly resolution: ResolutionVerdict;
332
- }
333
-
334
- // @public
335
- export interface IIngestItem {
336
- readonly content: unknown;
337
- readonly id: string;
338
- readonly metadata?: Record<string, unknown>;
339
- readonly sourceId?: IEdgeTarget;
340
- }
341
-
342
- // @public
343
- export interface IIngestItemResult {
344
- readonly item: IIngestItem;
345
- readonly records: ReadonlyArray<IIngestedRecordResult>;
346
- }
347
-
348
- // @public
349
- export interface IMemoryCapCullPolicyParams {
350
- readonly maxRecords?: number;
351
- readonly mutableFields: ReadonlyArray<string>;
352
- }
353
-
354
- // @public
355
- export interface IMemoryClassification {
356
- readonly [key: string]: unknown;
357
- readonly confidence?: number;
358
- readonly kind: Kind;
359
- readonly tags?: ReadonlyArray<Tag>;
360
- }
361
-
362
- // @public
363
- export interface IMemoryClassifier {
364
- classify(item: IIngestItem): Promise<Result<IMemoryClassification>>;
365
- }
366
-
367
- // @public
368
- export interface IMemoryEnvelope {
369
- readonly contentHash: string;
370
- readonly created: number;
371
- readonly embeddingRef?: string | null;
372
- readonly entityId: EntityId;
373
- readonly id: MemoryId;
374
- readonly kind: Kind;
375
- readonly links: ReadonlyArray<IEdge>;
376
- readonly provenance: IProvenance;
377
- readonly rank?: number;
378
- readonly seq: number;
379
- readonly tags: ReadonlyArray<Tag>;
380
- readonly temporal?: ITemporalBlock;
381
- readonly updated: number;
382
- }
383
-
384
- // @public
385
- export interface IMemoryFileParts {
386
- readonly body: string;
387
- readonly frontmatter: string;
388
- }
389
-
390
- // @public
391
- export interface IMemoryIndex {
392
- backlinks(target: IEdgeTarget): ReadonlyArray<IEdgeTarget>;
393
- byKind(kind: Kind): ReadonlyArray<IMemoryRecord<unknown>>;
394
- byRank(): ReadonlyArray<IMemoryRecord<unknown>>;
395
- byRecency(): ReadonlyArray<IMemoryRecord<unknown>>;
396
- byTag(tag: Tag): ReadonlyArray<IMemoryRecord<unknown>>;
397
- entries(): ReadonlyArray<IIndexedMemoryRecord>;
398
- patch(op: MemoryIndexPatchOp, entry: IIndexedMemoryRecord): Result<IIndexedMemoryRecord>;
399
- rebuild(entries: ReadonlyArray<IIndexedMemoryRecord>): Result<number>;
400
- }
401
-
402
- // @public
403
- export interface IMemoryIngestOrchestrator {
404
- ingestBatch(items: ReadonlyArray<IIngestItem>): Promise<Result<ReadonlyArray<IIngestItemResult>>>;
405
- ingestItem(item: IIngestItem): Promise<Result<IIngestItemResult>>;
406
- }
407
-
408
- // @public
409
- export interface IMemoryIngestOrchestratorCreateParams {
410
- readonly classifier: IMemoryClassifier;
411
- readonly codecs?: ReadonlyMap<Kind, IIdentityCodec>;
412
- readonly cycleGuard?: CycleGuardMode;
413
- readonly defaultCodec?: IIdentityCodec;
414
- readonly embed?: MemoryEmbedder;
415
- readonly entityResolver?: IEntityResolver;
416
- readonly extractor: IFactExtractor;
417
- readonly logger?: Logging.ILogger;
418
- readonly registry: IBodyConverterRegistry;
419
- readonly relationExtractor: IRelationExtractor;
420
- readonly similarityThreshold?: number;
421
- readonly similarityTopK?: number;
422
- readonly store: IMemoryStore;
423
- readonly vectorIndex?: IVectorIndex;
424
- }
425
-
426
- // @public
427
- export interface IMemoryObservationQuery {
428
- readonly kind?: Kind;
429
- readonly limit?: number;
430
- readonly outcome?: MemoryObservationOutcome;
431
- readonly phase?: MemoryObservationPhase;
432
- readonly scope?: MemoryScopeKey;
433
- readonly since?: number;
434
- readonly sinceSeq?: number;
435
- readonly until?: number;
436
- }
437
-
438
- // @public
439
- export interface IMemoryObservationRecord {
440
- readonly error?: string;
441
- readonly id?: MemoryId;
442
- readonly kind?: Kind;
443
- readonly outcome: MemoryObservationOutcome;
444
- readonly phase: MemoryObservationPhase;
445
- readonly provenance?: IProvenance;
446
- readonly querySnapshot?: Readonly<Record<string, unknown>>;
447
- readonly scope?: MemoryScopeKey;
448
- readonly seq: number;
449
- readonly timestamp: number;
450
- }
451
-
452
- // @public
453
- export interface IMemoryObservationStoreCreateParams {
454
- readonly maxRecords?: number;
455
- }
456
-
457
- // @public
458
- export interface IMemoryObserver {
459
- readonly fireAndForget?: boolean;
460
- observe(record: IMemoryObservationRecord): Promise<Result<unknown>>;
461
- }
462
-
463
- // @public
464
- export interface IMemoryQuery {
465
- readonly asOf?: number;
466
- readonly filter?: (record: IMemoryRecord<unknown>) => boolean;
467
- readonly hops?: number;
468
- readonly kind?: Kind;
469
- readonly kinds?: ReadonlyArray<Kind>;
470
- readonly limit?: number;
471
- readonly linkedFrom?: IEdgeTarget;
472
- readonly linkedTo?: IEdgeTarget;
473
- readonly offset?: number;
474
- readonly orderBy?: 'recency' | 'rank';
475
- readonly scope?: MemoryScopeKey;
476
- readonly semantic?: string;
477
- readonly tag?: Tag;
478
- readonly topK?: number;
479
- }
480
-
481
- // @public
482
- export interface IMemoryRecord<TBody = unknown> {
483
- readonly body: TBody;
484
- readonly envelope: IMemoryEnvelope;
485
- }
486
-
487
- // @public
488
- export interface IMemoryRecordSource {
489
- list(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
490
- }
491
-
492
- // @public
493
- export interface IMemoryRetriever {
494
- readonly capabilities: IMemoryRetrieverCapabilities;
495
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
496
- }
497
-
498
- // @public
499
- export interface IMemoryRetrieverCapabilities {
500
- readonly supportsLinkTraversal: boolean;
501
- readonly supportsSemanticRecall: boolean;
502
- readonly supportsTemporalQuery: boolean;
503
- }
504
-
505
- // @public
506
- export interface IMemoryStore {
507
- asRecordSource(): IMemoryRecordSource;
508
- delete(kind: Kind, entityId: EntityId): Promise<Result<MemoryId>>;
509
- get(kind: Kind, entityId: EntityId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
510
- getById(scope: MemoryScopeKey, id: MemoryId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
511
- list(filter?: IMemoryStoreListFilter): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
512
- listScoped(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
513
- put(record: IMemoryRecord<unknown>): Promise<Result<IMemoryRecord<unknown>>>;
514
- }
515
-
516
- // @public
517
- export interface IMemoryStoreListFilter {
518
- readonly asOf?: number;
519
- readonly kind?: Kind;
520
- readonly scope?: MemoryScopeKey;
521
- readonly tag?: Tag;
522
- }
523
-
524
- // @public
525
- export interface IMemoryToolResultItem {
526
- readonly body: unknown;
527
- readonly entityId: EntityId;
528
- readonly handle: string;
529
- readonly kind: Kind;
530
- readonly tags: ReadonlyArray<string>;
531
- }
532
-
533
- // @public
534
- export interface IMemoryWriteResult {
535
- readonly entityId: EntityId;
536
- readonly id: MemoryId;
537
- readonly kind: Kind;
538
- readonly outcome: MemoryWriteOutcome;
539
- }
540
-
541
- // @public
542
- export interface IMergeStrategy {
543
- merge(resultSets: ReadonlyArray<ReadonlyArray<IMemoryRecord<unknown>>>): Result<ReadonlyArray<IMemoryRecord<unknown>>>;
544
- }
545
-
546
- // @public
547
- export function indexedRecordMatchesQuery(entry: IIndexedMemoryRecord, query: IMemoryQuery): boolean;
548
-
549
- // @public
550
- export type IngestDisposition = 'written' | 'deduped' | 'merged';
551
-
552
- // @public
553
- export class InMemoryCosineIndex implements IVectorIndex {
554
- add(target: IEdgeTarget, vector: Float32Array): Promise<Result<string>>;
555
- static create(): Result<InMemoryCosineIndex>;
556
- query(vector: Float32Array, topK: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
557
- rebuild(source: IMemoryRecordSource, embed: MemoryEmbedder): Promise<Result<number>>;
558
- remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
559
- get size(): number;
560
- }
561
-
562
- // @public
563
- export class InMemoryFragmentCosineIndex implements IFragmentVectorIndex {
564
- addFragments(target: IEdgeTarget, fragments: ReadonlyArray<IEmbeddedFragment>): Promise<Result<number>>;
565
- static create(): Result<InMemoryFragmentCosineIndex>;
566
- get fragmentCount(): number;
567
- query(vector: Float32Array, topK: number, maxPerRecord?: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
568
- rebuild(source: IMemoryRecordSource, embed: FragmentEmbedder): Promise<Result<number>>;
569
- get recordCount(): number;
570
- remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
571
- }
572
-
573
- // @public
574
- export interface IProvenance {
575
- readonly [key: string]: unknown;
576
- readonly by?: string;
577
- readonly confidence?: number;
578
- readonly derivedFrom?: IEdgeTarget;
579
- readonly model?: string;
580
- readonly source: ProvenanceSource;
581
- }
582
-
583
- // @public
584
- export interface IRelationCandidate {
585
- readonly candidate: ICandidateRecord;
586
- readonly id: IEdgeTarget;
587
- }
588
-
589
- // @public
590
- export interface IRelationContext {
591
- readonly candidates: ReadonlyArray<IRelationCandidate>;
592
- readonly item: IIngestItem;
593
- }
594
-
595
- // @public
596
- export interface IRelationExtractor {
597
- relate(context: IRelationContext): Promise<Result<ReadonlyArray<ICandidateEdge>>>;
598
- }
599
-
600
- // @public
601
- export interface IScopedMemoryRecord {
602
- readonly record: IMemoryRecord<unknown>;
603
- readonly target: IEdgeTarget;
604
- }
605
-
606
- // @public
607
- export interface ISemanticBackend {
608
- readonly embedQuery: QueryEmbedder;
609
- readonly vectorIndex: IVectorIndex;
610
- }
611
-
612
- // @public
613
- export interface ISemanticRetrieverCreateParams {
614
- readonly backend?: ISemanticBackend;
615
- readonly index: IMemoryIndex;
616
- }
617
-
618
- // @public
619
- export interface ISkippedRecord {
620
- readonly error: string;
621
- readonly path: string;
622
- readonly scope: MemoryScopeKey;
623
- }
624
-
625
- // @public
626
- export function isTemporalIdentityCodec(codec: IIdentityCodec): codec is ITemporalIdentityCodec;
627
-
628
- // @public
629
- export function isTemporalRecord(record: IMemoryRecord<unknown>): boolean;
630
-
631
- // @public
632
- export function isVersionCurrent(record: IMemoryRecord<unknown>): boolean;
633
-
634
- // @public
635
- export function isVersionValidAt(record: IMemoryRecord<unknown>, asOf: number): boolean;
636
-
637
- // @public
638
- export interface ITemporalBlock {
639
- readonly invalid_at?: number | null;
640
- readonly valid_at?: number;
641
- }
642
-
643
- // @public
644
- export interface ITemporalIdentityCodec extends IIdentityCodec {
645
- decodeVersion(scope: MemoryScopeKey, stem: string): Result<ITemporalVersionAddress>;
646
- encodeVersion(entityId: EntityId, seq: number): Result<string>;
647
- }
648
-
649
- // @public
650
- export interface ITemporalVersionAddress {
651
- readonly entityId: EntityId;
652
- readonly seq: number;
653
- }
654
-
655
- // @public
656
- export interface IVectorIndex {
657
- add(target: IEdgeTarget, vector: Float32Array): Promise<Result<string>>;
658
- query(vector: Float32Array, topK: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
659
- remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
660
- }
661
-
662
- // @public
663
- export interface IVectorQueryHit {
664
- readonly fragmentId?: string;
665
- readonly locator?: IFragmentLocator;
666
- readonly score: number;
667
- readonly target: IEdgeTarget;
668
- }
669
-
670
- // @public
671
- export interface IWritePolicy {
672
- admit(incoming: IMemoryRecord<unknown>, existing: ReadonlyArray<IMemoryRecord<unknown>>): Result<AdmissionDecision>;
673
- applyUpdate(existing: IMemoryRecord<unknown>, patch: Record<string, unknown>): Result<IMemoryRecord<unknown>>;
674
- readonly dedupScope?: DedupScope;
675
- readonly mutableFields: ReadonlyArray<string>;
676
- }
677
-
678
- // @public
679
- export function joinFrontmatter(frontmatter: string, body: string): string;
680
-
681
- // @public
682
- export type Kind = Brand<string, 'Kind'>;
683
-
684
- // @public
685
- export class KnowledgeIdentityCodec implements IIdentityCodec {
686
- decode(scope: MemoryScopeKey, encodedStem: string): Result<EntityId>;
687
- encode(entityId: EntityId): Result<IIdentityCodecResult>;
688
- static readonly scope: MemoryScopeKey;
689
- verifyRoundTrip(scope: MemoryScopeKey, stem: string): Result<true>;
690
- }
691
-
692
- // @public
693
- export class KnowledgeLwwPolicy implements IWritePolicy {
694
- admit(__incoming: IMemoryRecord<unknown>, __existing: ReadonlyArray<IMemoryRecord<unknown>>): Result<AdmissionDecision>;
695
- applyUpdate(existing: IMemoryRecord<unknown>, patch: Record<string, unknown>): Result<IMemoryRecord<unknown>>;
696
- static create(): Result<KnowledgeLwwPolicy>;
697
- readonly dedupScope: DedupScope;
698
- readonly mutableFields: ReadonlyArray<string>;
699
- }
700
-
701
- // @public
702
- export function limitRecords(records: ReadonlyArray<IMemoryRecord<unknown>>, limit?: number, offset?: number): ReadonlyArray<IMemoryRecord<unknown>>;
703
-
704
- // @public
705
- export const LINK_TRAVERSAL_NO_SEED_MESSAGE: string;
706
-
707
- // @public
708
- export const LINK_TRAVERSAL_UNWIRED_MESSAGE: string;
709
-
710
- // @public
711
- export class LinkTraversalRetriever implements IMemoryRetriever {
712
- get capabilities(): IMemoryRetrieverCapabilities;
713
- static create(index: IMemoryIndex): Result<LinkTraversalRetriever>;
714
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
715
- }
716
-
717
- // @public
718
- export type LinkType = Brand<string, 'LinkType'>;
719
-
720
- // @public
721
- export class LtmIdentityCodec implements IIdentityCodec {
722
- decode(scope: MemoryScopeKey, encodedStem: string): Result<EntityId>;
723
- encode(entityId: EntityId): Result<IIdentityCodecResult>;
724
- static readonly scope: MemoryScopeKey;
725
- verifyRoundTrip(scope: MemoryScopeKey, stem: string): Result<true>;
726
- }
727
-
728
- // @public
729
- export class MemoryCapCullPolicy implements IWritePolicy {
730
- admit(__incoming: IMemoryRecord<unknown>, existing: ReadonlyArray<IMemoryRecord<unknown>>): Result<AdmissionDecision>;
731
- applyUpdate(existing: IMemoryRecord<unknown>, patch: Record<string, unknown>): Result<IMemoryRecord<unknown>>;
732
- static create(params: IMemoryCapCullPolicyParams): Result<MemoryCapCullPolicy>;
733
- readonly dedupScope: DedupScope;
734
- readonly mutableFields: ReadonlyArray<string>;
735
- }
736
-
737
- // @public
738
- export type MemoryDetailTier = 'gist' | 'full';
739
-
740
- // @public
741
- export type MemoryEmbedder = (record: IMemoryRecord<unknown>) => Promise<Result<Float32Array>>;
742
-
743
- // @public
744
- export type MemoryId = Brand<string, 'MemoryId'>;
745
-
746
- // @public
747
- export class MemoryIndex implements IMemoryIndex {
748
- backlinks(target: IEdgeTarget): ReadonlyArray<IEdgeTarget>;
749
- byKind(kind: Kind): ReadonlyArray<IMemoryRecord<unknown>>;
750
- byRank(): ReadonlyArray<IMemoryRecord<unknown>>;
751
- byRecency(): ReadonlyArray<IMemoryRecord<unknown>>;
752
- byTag(tag: Tag): ReadonlyArray<IMemoryRecord<unknown>>;
753
- static create(): Result<MemoryIndex>;
754
- entries(): ReadonlyArray<IIndexedMemoryRecord>;
755
- patch(op: MemoryIndexPatchOp, entry: IIndexedMemoryRecord): Result<IIndexedMemoryRecord>;
756
- rebuild(entries: ReadonlyArray<IIndexedMemoryRecord>): Result<number>;
757
- }
758
-
759
- // @public
760
- export type MemoryIndexPatchOp = 'put' | 'delete';
761
-
762
- // @public
763
- export class MemoryIngestOrchestrator implements IMemoryIngestOrchestrator {
764
- static create(params: IMemoryIngestOrchestratorCreateParams): Result<MemoryIngestOrchestrator>;
765
- ingestBatch(items: ReadonlyArray<IIngestItem>): Promise<Result<ReadonlyArray<IIngestItemResult>>>;
766
- ingestItem(item: IIngestItem): Promise<Result<IIngestItemResult>>;
767
- }
768
-
769
- // @public
770
- export type MemoryObservationOutcome = 'success' | 'failure';
771
-
772
- // @public
773
- export type MemoryObservationPhase = 'read' | 'write' | 'delete' | 'retrieve';
774
-
775
- // @public
776
- export class MemoryObservationStore implements IMemoryObserver {
777
- clear(): void;
778
- static create(params?: IMemoryObservationStoreCreateParams): Result<MemoryObservationStore>;
779
- get lastSeq(): number;
780
- observe(record: IMemoryObservationRecord): Promise<Result<unknown>>;
781
- query(criteria?: IMemoryObservationQuery): ReadonlyArray<IMemoryObservationRecord>;
782
- get size(): number;
783
- }
784
-
785
- // @public
786
- export type MemoryRecordErrorMode = 'skip' | 'fail';
787
-
788
- // @public
789
- export type MemoryScopeKey = Brand<string, 'MemoryScopeKey'>;
790
-
791
- // @public
792
- export type MemoryToolName = 'memory_write' | 'memory_read' | 'memory_search' | 'memory_context' | 'memory_delete';
793
-
794
- // @public
795
- export type MemoryWriteOutcome = 'written' | 'deduped';
796
-
797
- // @public
798
- export class MtmIdentityCodec implements IIdentityCodec {
799
- decode(scope: MemoryScopeKey, encodedStem: string): Result<EntityId>;
800
- encode(entityId: EntityId): Result<IIdentityCodecResult>;
801
- static readonly rootScopeSegment: string;
802
- static readonly turnStemPrefix: string;
803
- verifyRoundTrip(scope: MemoryScopeKey, stem: string): Result<true>;
804
- }
805
-
806
- // @public
807
- export const NON_SEMANTIC_CAPABILITIES: IMemoryRetrieverCapabilities;
808
-
809
- // @public
810
- export function orderingCompare(orderBy?: IMemoryQuery['orderBy']): (a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>) => number;
811
-
812
- // @public
813
- export function parseMemoryFile(raw: string, registry: IBodyConverterRegistry): Result<IMemoryRecord<unknown>>;
814
-
815
- // @public
816
- export const provenanceConverter: Converter<IProvenance>;
817
-
818
- // @public
819
- export type ProvenanceSource = 'agent' | 'host-ingest' | 'human' | (string & {});
820
-
821
- // @public
822
- export type QueryEmbedder = (text: string) => Promise<Result<Float32Array>>;
823
-
824
- // @public
825
- export function rankCompare(a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>): number;
826
-
827
- // @public
828
- export type RankProjector = (record: IMemoryRecord<unknown>) => number;
829
-
830
- // @public
831
- export function recencyCompare(a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>): number;
832
-
833
- // @public
834
- export class RecencyRetriever implements IMemoryRetriever {
835
- get capabilities(): IMemoryRetrieverCapabilities;
836
- static create(index: IMemoryIndex): Result<RecencyRetriever>;
837
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
838
- }
839
-
840
- // @public
841
- export type ResolutionVerdict = {
842
- readonly verdict: 'new';
843
- } | {
844
- readonly verdict: 'duplicate-of';
845
- readonly target: IEdgeTarget;
846
- } | {
847
- readonly verdict: 'supersede';
848
- readonly target: IEdgeTarget;
849
- } | {
850
- readonly verdict: 'merge-into';
851
- readonly target: IEdgeTarget;
852
- };
853
-
854
- // @public
855
- export class ScoreUnionMergeStrategy implements IMergeStrategy {
856
- static create(): Result<ScoreUnionMergeStrategy>;
857
- merge(resultSets: ReadonlyArray<ReadonlyArray<IMemoryRecord<unknown>>>): Result<ReadonlyArray<IMemoryRecord<unknown>>>;
858
- }
859
-
860
- // @public
861
- export function selectByQuery(entries: ReadonlyArray<IIndexedMemoryRecord>, query: IMemoryQuery): IMemoryRecord<unknown>[];
862
-
863
- // @public
864
- export function selectCurrentVersion(versions: ReadonlyArray<IMemoryRecord<unknown>>): IMemoryRecord<unknown> | undefined;
865
-
866
- // @public
867
- export function selectVersionAsOf(versions: ReadonlyArray<IMemoryRecord<unknown>>, asOf: number): IMemoryRecord<unknown> | undefined;
868
-
869
- // @public
870
- export const SEMANTIC_UNWIRED_MESSAGE: string;
871
-
872
- // @public
873
- export class SemanticRetriever implements IMemoryRetriever {
874
- get capabilities(): IMemoryRetrieverCapabilities;
875
- static create(params: ISemanticRetrieverCreateParams): Result<SemanticRetriever>;
876
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
877
- }
878
-
879
- // @public
880
- export function serializeMemoryFile(envelope: IMemoryEnvelope, body: string): Result<string>;
881
-
882
- // @public
883
- export function splitFrontmatter(raw: string): Result<IMemoryFileParts>;
884
-
885
- // @public
886
- export type StoreStampedEnvelopeField = 'id' | 'seq' | 'contentHash' | 'created' | 'updated';
887
-
888
- // @public
889
- export class StructuredFilterRetriever implements IMemoryRetriever {
890
- get capabilities(): IMemoryRetrieverCapabilities;
891
- static create(index: IMemoryIndex): Result<StructuredFilterRetriever>;
892
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
893
- }
894
-
895
- // @public
896
- export type Tag = Brand<string, 'Tag'>;
897
-
898
- // @public
899
- export class TagRetriever implements IMemoryRetriever {
900
- get capabilities(): IMemoryRetrieverCapabilities;
901
- static create(index: IMemoryIndex): Result<TagRetriever>;
902
- retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
903
- }
904
-
905
- // @public
906
- export const TEMPORAL_CAPABILITIES: IMemoryRetrieverCapabilities;
907
-
908
- // @public
909
- export const temporalConverter: Converter<ITemporalBlock>;
910
-
911
- // @public
912
- export class TemporalIdentityCodec implements ITemporalIdentityCodec {
913
- readonly baseScope: string;
914
- static create(baseScope: string): Result<TemporalIdentityCodec>;
915
- decode(scope: MemoryScopeKey, encodedStem: string): Result<EntityId>;
916
- decodeVersion(scope: MemoryScopeKey, stem: string): Result<ITemporalVersionAddress>;
917
- encode(entityId: EntityId): Result<IIdentityCodecResult>;
918
- encodeVersion(entityId: EntityId, seq: number): Result<string>;
919
- static readonly entitiesSegment: string;
920
- verifyRoundTrip(scope: MemoryScopeKey, stem: string): Result<true>;
921
- static readonly versionInfix: string;
922
- }
923
-
924
- // @public
925
- export function temporalUnwiredMessage(kind?: Kind): string;
926
-
927
- // @public
928
- export class TemporalVersionedPolicy implements IWritePolicy {
929
- admit(__incoming: IMemoryRecord<unknown>, __existing: ReadonlyArray<IMemoryRecord<unknown>>): Result<AdmissionDecision>;
930
- applyUpdate(existing: IMemoryRecord<unknown>, patch: Record<string, unknown>): Result<IMemoryRecord<unknown>>;
931
- static create(): Result<TemporalVersionedPolicy>;
932
- readonly dedupScope: DedupScope;
933
- readonly mutableFields: ReadonlyArray<string>;
934
- }
935
-
936
- // (No @packageDocumentation comment for this package)
937
-
938
- ```