@fgv/ts-agent-memory 5.1.0-39 → 5.1.0-41

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 (210) hide show
  1. package/.rush/temp/{b82cf6bdece20481260e6bab946179eeec9d7b46.tar.log → cbbdbe09515171b4eba8f2592be2dace1e4e8142.tar.log} +14 -2
  2. package/.rush/temp/chunked-rush-logs/ts-agent-memory.build.chunks.jsonl +2 -2
  3. package/.rush/temp/operation/build/all.log +2 -2
  4. package/.rush/temp/operation/build/log-chunks.jsonl +2 -2
  5. package/.rush/temp/operation/build/state.json +1 -1
  6. package/dist/packlets/converters/envelopeConverter.js +17 -3
  7. package/dist/packlets/converters/envelopeConverter.js.map +1 -1
  8. package/dist/packlets/index/memoryIndex.js +58 -10
  9. package/dist/packlets/index/memoryIndex.js.map +1 -1
  10. package/dist/packlets/ingest/cycleGuard.js +13 -6
  11. package/dist/packlets/ingest/cycleGuard.js.map +1 -1
  12. package/dist/packlets/ingest/hostStages.js.map +1 -1
  13. package/dist/packlets/ingest/model.js.map +1 -1
  14. package/dist/packlets/ingest/orchestrator.js +94 -49
  15. package/dist/packlets/ingest/orchestrator.js.map +1 -1
  16. package/dist/packlets/retrieve/hybridRetriever.js +13 -2
  17. package/dist/packlets/retrieve/hybridRetriever.js.map +1 -1
  18. package/dist/packlets/retrieve/linkTraversalRetriever.js +46 -57
  19. package/dist/packlets/retrieve/linkTraversalRetriever.js.map +1 -1
  20. package/dist/packlets/retrieve/recencyRetriever.js +3 -3
  21. package/dist/packlets/retrieve/recencyRetriever.js.map +1 -1
  22. package/dist/packlets/retrieve/retriever.js +50 -7
  23. package/dist/packlets/retrieve/retriever.js.map +1 -1
  24. package/dist/packlets/retrieve/semanticRetriever.js +9 -3
  25. package/dist/packlets/retrieve/semanticRetriever.js.map +1 -1
  26. package/dist/packlets/retrieve/structuredFilterRetriever.js +3 -3
  27. package/dist/packlets/retrieve/structuredFilterRetriever.js.map +1 -1
  28. package/dist/packlets/retrieve/tagRetriever.js +3 -3
  29. package/dist/packlets/retrieve/tagRetriever.js.map +1 -1
  30. package/dist/packlets/retrieve/temporalRetrievers.js +3 -3
  31. package/dist/packlets/retrieve/temporalRetrievers.js.map +1 -1
  32. package/dist/packlets/store/fileTreeMemoryStore.js +72 -16
  33. package/dist/packlets/store/fileTreeMemoryStore.js.map +1 -1
  34. package/dist/packlets/tools/memoryTools.js +104 -21
  35. package/dist/packlets/tools/memoryTools.js.map +1 -1
  36. package/dist/packlets/types/envelope.js +13 -1
  37. package/dist/packlets/types/envelope.js.map +1 -1
  38. package/dist/packlets/vector/inMemoryCosineIndex.js +22 -17
  39. package/dist/packlets/vector/inMemoryCosineIndex.js.map +1 -1
  40. package/dist/packlets/vector/vectorIndex.js.map +1 -1
  41. package/dist/test/unit/converters/antagonistRoundTrip.test.js +3 -3
  42. package/dist/test/unit/converters/antagonistRoundTrip.test.js.map +1 -1
  43. package/dist/test/unit/converters/envelopeConverter.test.js +125 -8
  44. package/dist/test/unit/converters/envelopeConverter.test.js.map +1 -1
  45. package/dist/test/unit/index/memoryIndex.test.js +87 -25
  46. package/dist/test/unit/index/memoryIndex.test.js.map +1 -1
  47. package/dist/test/unit/ingest/antagonistCycleAndParity.test.js +20 -16
  48. package/dist/test/unit/ingest/antagonistCycleAndParity.test.js.map +1 -1
  49. package/dist/test/unit/ingest/cycleGuard.test.js +28 -1
  50. package/dist/test/unit/ingest/cycleGuard.test.js.map +1 -1
  51. package/dist/test/unit/ingest/orchestrator.test.js +187 -45
  52. package/dist/test/unit/ingest/orchestrator.test.js.map +1 -1
  53. package/dist/test/unit/retrieve/linkTraversalRetriever.test.js +106 -31
  54. package/dist/test/unit/retrieve/linkTraversalRetriever.test.js.map +1 -1
  55. package/dist/test/unit/retrieve/retrievers.test.js +299 -37
  56. package/dist/test/unit/retrieve/retrievers.test.js.map +1 -1
  57. package/dist/test/unit/store/embedOnWrite.test.js +69 -12
  58. package/dist/test/unit/store/embedOnWrite.test.js.map +1 -1
  59. package/dist/test/unit/store/listScoped.test.js +109 -0
  60. package/dist/test/unit/store/listScoped.test.js.map +1 -0
  61. package/dist/test/unit/store/rankAxis.test.js +254 -0
  62. package/dist/test/unit/store/rankAxis.test.js.map +1 -0
  63. package/dist/test/unit/tools/memoryTools.test.js +280 -11
  64. package/dist/test/unit/tools/memoryTools.test.js.map +1 -1
  65. package/dist/test/unit/types/writePolicy.test.js +9 -2
  66. package/dist/test/unit/types/writePolicy.test.js.map +1 -1
  67. package/dist/test/unit/vector/inMemoryCosineIndex.test.js +95 -35
  68. package/dist/test/unit/vector/inMemoryCosineIndex.test.js.map +1 -1
  69. package/dist/test/unit/vector/vectorIndex.test.js +24 -15
  70. package/dist/test/unit/vector/vectorIndex.test.js.map +1 -1
  71. package/dist/ts-agent-memory.d.ts +384 -97
  72. package/etc/ts-agent-memory.api.md +64 -22
  73. package/lib/packlets/converters/envelopeConverter.d.ts +8 -1
  74. package/lib/packlets/converters/envelopeConverter.d.ts.map +1 -1
  75. package/lib/packlets/converters/envelopeConverter.js +18 -4
  76. package/lib/packlets/converters/envelopeConverter.js.map +1 -1
  77. package/lib/packlets/index/memoryIndex.d.ts +42 -10
  78. package/lib/packlets/index/memoryIndex.d.ts.map +1 -1
  79. package/lib/packlets/index/memoryIndex.js +58 -10
  80. package/lib/packlets/index/memoryIndex.js.map +1 -1
  81. package/lib/packlets/ingest/cycleGuard.d.ts +5 -5
  82. package/lib/packlets/ingest/cycleGuard.d.ts.map +1 -1
  83. package/lib/packlets/ingest/cycleGuard.js +13 -6
  84. package/lib/packlets/ingest/cycleGuard.js.map +1 -1
  85. package/lib/packlets/ingest/hostStages.d.ts +3 -3
  86. package/lib/packlets/ingest/hostStages.d.ts.map +1 -1
  87. package/lib/packlets/ingest/hostStages.js.map +1 -1
  88. package/lib/packlets/ingest/model.d.ts +25 -14
  89. package/lib/packlets/ingest/model.d.ts.map +1 -1
  90. package/lib/packlets/ingest/model.js.map +1 -1
  91. package/lib/packlets/ingest/orchestrator.d.ts +18 -4
  92. package/lib/packlets/ingest/orchestrator.d.ts.map +1 -1
  93. package/lib/packlets/ingest/orchestrator.js +93 -48
  94. package/lib/packlets/ingest/orchestrator.js.map +1 -1
  95. package/lib/packlets/retrieve/hybridRetriever.d.ts.map +1 -1
  96. package/lib/packlets/retrieve/hybridRetriever.js +12 -1
  97. package/lib/packlets/retrieve/hybridRetriever.js.map +1 -1
  98. package/lib/packlets/retrieve/linkTraversalRetriever.d.ts +18 -23
  99. package/lib/packlets/retrieve/linkTraversalRetriever.d.ts.map +1 -1
  100. package/lib/packlets/retrieve/linkTraversalRetriever.js +45 -56
  101. package/lib/packlets/retrieve/linkTraversalRetriever.js.map +1 -1
  102. package/lib/packlets/retrieve/recencyRetriever.js +2 -2
  103. package/lib/packlets/retrieve/recencyRetriever.js.map +1 -1
  104. package/lib/packlets/retrieve/retriever.d.ts +70 -11
  105. package/lib/packlets/retrieve/retriever.d.ts.map +1 -1
  106. package/lib/packlets/retrieve/retriever.js +52 -7
  107. package/lib/packlets/retrieve/retriever.js.map +1 -1
  108. package/lib/packlets/retrieve/semanticRetriever.d.ts.map +1 -1
  109. package/lib/packlets/retrieve/semanticRetriever.js +9 -3
  110. package/lib/packlets/retrieve/semanticRetriever.js.map +1 -1
  111. package/lib/packlets/retrieve/structuredFilterRetriever.js +2 -2
  112. package/lib/packlets/retrieve/structuredFilterRetriever.js.map +1 -1
  113. package/lib/packlets/retrieve/tagRetriever.js +2 -2
  114. package/lib/packlets/retrieve/tagRetriever.js.map +1 -1
  115. package/lib/packlets/retrieve/temporalRetrievers.js +3 -3
  116. package/lib/packlets/retrieve/temporalRetrievers.js.map +1 -1
  117. package/lib/packlets/store/fileTreeMemoryStore.d.ts +57 -3
  118. package/lib/packlets/store/fileTreeMemoryStore.d.ts.map +1 -1
  119. package/lib/packlets/store/fileTreeMemoryStore.js +72 -16
  120. package/lib/packlets/store/fileTreeMemoryStore.js.map +1 -1
  121. package/lib/packlets/tools/memoryTools.d.ts +24 -0
  122. package/lib/packlets/tools/memoryTools.d.ts.map +1 -1
  123. package/lib/packlets/tools/memoryTools.js +104 -21
  124. package/lib/packlets/tools/memoryTools.js.map +1 -1
  125. package/lib/packlets/types/envelope.d.ts +61 -8
  126. package/lib/packlets/types/envelope.d.ts.map +1 -1
  127. package/lib/packlets/types/envelope.js +14 -0
  128. package/lib/packlets/types/envelope.js.map +1 -1
  129. package/lib/packlets/vector/inMemoryCosineIndex.d.ts +9 -5
  130. package/lib/packlets/vector/inMemoryCosineIndex.d.ts.map +1 -1
  131. package/lib/packlets/vector/inMemoryCosineIndex.js +22 -17
  132. package/lib/packlets/vector/inMemoryCosineIndex.js.map +1 -1
  133. package/lib/packlets/vector/vectorIndex.d.ts +46 -20
  134. package/lib/packlets/vector/vectorIndex.d.ts.map +1 -1
  135. package/lib/packlets/vector/vectorIndex.js.map +1 -1
  136. package/lib/test/unit/converters/antagonistRoundTrip.test.js +3 -3
  137. package/lib/test/unit/converters/antagonistRoundTrip.test.js.map +1 -1
  138. package/lib/test/unit/converters/envelopeConverter.test.js +124 -7
  139. package/lib/test/unit/converters/envelopeConverter.test.js.map +1 -1
  140. package/lib/test/unit/index/memoryIndex.test.js +86 -24
  141. package/lib/test/unit/index/memoryIndex.test.js.map +1 -1
  142. package/lib/test/unit/ingest/antagonistCycleAndParity.test.js +20 -16
  143. package/lib/test/unit/ingest/antagonistCycleAndParity.test.js.map +1 -1
  144. package/lib/test/unit/ingest/cycleGuard.test.js +28 -1
  145. package/lib/test/unit/ingest/cycleGuard.test.js.map +1 -1
  146. package/lib/test/unit/ingest/orchestrator.test.js +186 -44
  147. package/lib/test/unit/ingest/orchestrator.test.js.map +1 -1
  148. package/lib/test/unit/retrieve/linkTraversalRetriever.test.js +106 -31
  149. package/lib/test/unit/retrieve/linkTraversalRetriever.test.js.map +1 -1
  150. package/lib/test/unit/retrieve/retrievers.test.js +298 -36
  151. package/lib/test/unit/retrieve/retrievers.test.js.map +1 -1
  152. package/lib/test/unit/store/embedOnWrite.test.js +68 -11
  153. package/lib/test/unit/store/embedOnWrite.test.js.map +1 -1
  154. package/lib/test/unit/store/listScoped.test.d.ts +2 -0
  155. package/lib/test/unit/store/listScoped.test.d.ts.map +1 -0
  156. package/lib/test/unit/store/listScoped.test.js +111 -0
  157. package/lib/test/unit/store/listScoped.test.js.map +1 -0
  158. package/lib/test/unit/store/rankAxis.test.d.ts +2 -0
  159. package/lib/test/unit/store/rankAxis.test.d.ts.map +1 -0
  160. package/lib/test/unit/store/rankAxis.test.js +256 -0
  161. package/lib/test/unit/store/rankAxis.test.js.map +1 -0
  162. package/lib/test/unit/tools/memoryTools.test.js +280 -11
  163. package/lib/test/unit/tools/memoryTools.test.js.map +1 -1
  164. package/lib/test/unit/types/writePolicy.test.js +9 -2
  165. package/lib/test/unit/types/writePolicy.test.js.map +1 -1
  166. package/lib/test/unit/vector/inMemoryCosineIndex.test.js +95 -35
  167. package/lib/test/unit/vector/inMemoryCosineIndex.test.js.map +1 -1
  168. package/lib/test/unit/vector/vectorIndex.test.js +24 -15
  169. package/lib/test/unit/vector/vectorIndex.test.js.map +1 -1
  170. package/package.json +7 -7
  171. package/rush-logs/ts-agent-memory.build.cache.log +1 -1
  172. package/rush-logs/ts-agent-memory.build.log +2 -2
  173. package/src/packlets/converters/envelopeConverter.ts +27 -4
  174. package/src/packlets/index/memoryIndex.ts +86 -22
  175. package/src/packlets/ingest/cycleGuard.ts +22 -11
  176. package/src/packlets/ingest/hostStages.ts +3 -3
  177. package/src/packlets/ingest/model.ts +25 -14
  178. package/src/packlets/ingest/orchestrator.ts +143 -67
  179. package/src/packlets/retrieve/hybridRetriever.ts +14 -1
  180. package/src/packlets/retrieve/linkTraversalRetriever.ts +51 -62
  181. package/src/packlets/retrieve/recencyRetriever.ts +3 -3
  182. package/src/packlets/retrieve/retriever.ts +97 -13
  183. package/src/packlets/retrieve/semanticRetriever.ts +10 -5
  184. package/src/packlets/retrieve/structuredFilterRetriever.ts +3 -3
  185. package/src/packlets/retrieve/tagRetriever.ts +3 -3
  186. package/src/packlets/retrieve/temporalRetrievers.ts +3 -3
  187. package/src/packlets/store/fileTreeMemoryStore.ts +117 -12
  188. package/src/packlets/tools/memoryTools.ts +152 -25
  189. package/src/packlets/types/envelope.ts +66 -8
  190. package/src/packlets/vector/inMemoryCosineIndex.ts +45 -22
  191. package/src/packlets/vector/vectorIndex.ts +47 -20
  192. package/src/test/unit/converters/antagonistRoundTrip.test.ts +3 -3
  193. package/src/test/unit/converters/envelopeConverter.test.ts +168 -11
  194. package/src/test/unit/index/memoryIndex.test.ts +99 -14
  195. package/src/test/unit/ingest/antagonistCycleAndParity.test.ts +23 -18
  196. package/src/test/unit/ingest/cycleGuard.test.ts +44 -2
  197. package/src/test/unit/ingest/orchestrator.test.ts +234 -41
  198. package/src/test/unit/retrieve/linkTraversalRetriever.test.ts +134 -35
  199. package/src/test/unit/retrieve/retrievers.test.ts +381 -25
  200. package/src/test/unit/store/embedOnWrite.test.ts +83 -11
  201. package/src/test/unit/store/listScoped.test.ts +138 -0
  202. package/src/test/unit/store/rankAxis.test.ts +349 -0
  203. package/src/test/unit/tools/memoryTools.test.ts +362 -13
  204. package/src/test/unit/types/writePolicy.test.ts +11 -2
  205. package/src/test/unit/vector/inMemoryCosineIndex.test.ts +115 -39
  206. package/src/test/unit/vector/vectorIndex.test.ts +33 -17
  207. package/temp/build/lint/_eslint-5eVG3S6w.json +41 -33
  208. package/temp/build/typescript/ts_8nwakTlr.json +1 -1
  209. package/temp/ts-agent-memory.api.json +1080 -136
  210. package/temp/ts-agent-memory.api.md +64 -22
@@ -96,6 +96,12 @@ export function defaultMemoryScopeEncoding(scope: MemoryScopeKey): Result<string
96
96
  // @public
97
97
  export const edgeConverter: Converter<IEdge>;
98
98
 
99
+ // @public
100
+ export const edgeTargetConverter: Converter<IEdgeTarget>;
101
+
102
+ // @public
103
+ export function edgeTargetKey(target: IEdgeTarget): string;
104
+
99
105
  // @public
100
106
  export type EntityId = Brand<string, 'EntityId'>;
101
107
 
@@ -107,11 +113,13 @@ export const envelopeYamlConverter: Converter<IMemoryEnvelope>;
107
113
 
108
114
  // @public
109
115
  export class FileTreeMemoryStore implements IMemoryStore {
116
+ asRecordSource(): IMemoryRecordSource;
110
117
  static create(params: IFileTreeMemoryStoreCreateParams): Result<FileTreeMemoryStore>;
111
118
  delete(kind: Kind, entityId: EntityId): Promise<Result<MemoryId>>;
112
119
  get(kind: Kind, entityId: EntityId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
113
120
  getById(scope: MemoryScopeKey, id: MemoryId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
114
121
  list(filter?: IMemoryStoreListFilter): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
122
+ listScoped(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
115
123
  put(record: IMemoryRecord<unknown>): Promise<Result<IMemoryRecord<unknown>>>;
116
124
  }
117
125
 
@@ -147,7 +155,7 @@ export interface IBodyConverterRegistry {
147
155
  // @public
148
156
  export interface ICandidateEdge {
149
157
  readonly edge: IEdge;
150
- readonly source: MemoryId;
158
+ readonly source: IEdgeTarget;
151
159
  }
152
160
 
153
161
  // @public
@@ -162,6 +170,7 @@ export interface ICreateMemoryToolsParams {
162
170
  readonly defaultCodec?: IIdentityCodec;
163
171
  readonly handleFor?: (record: IMemoryRecord<unknown>) => string;
164
172
  readonly kinds?: ReadonlyArray<Kind>;
173
+ readonly projectItem?: (record: IMemoryRecord<unknown>, detail: MemoryDetailTier) => IMemoryToolResultItem;
165
174
  readonly registry: IBodyConverterRegistry;
166
175
  readonly retriever: IMemoryRetriever;
167
176
  readonly store: IMemoryStore;
@@ -171,9 +180,9 @@ export interface ICreateMemoryToolsParams {
171
180
  // @public
172
181
  export interface ICycleGuardEdge {
173
182
  // (undocumented)
174
- readonly source: MemoryId;
183
+ readonly source: IEdgeTarget;
175
184
  // (undocumented)
176
- readonly target: MemoryId;
185
+ readonly target: IEdgeTarget;
177
186
  // (undocumented)
178
187
  readonly type: LinkType;
179
188
  }
@@ -183,16 +192,22 @@ export interface IEdge {
183
192
  readonly confidence?: number;
184
193
  readonly invalid_at?: number | null;
185
194
  readonly provenance?: IProvenance;
186
- readonly target: MemoryId;
195
+ readonly target: IEdgeTarget;
187
196
  readonly type: LinkType;
188
197
  readonly valid_at?: number;
189
198
  }
190
199
 
191
200
  // @public
192
- export interface IEntityResolutionCandidate {
201
+ export interface IEdgeTarget {
193
202
  readonly id: MemoryId;
203
+ readonly scope: MemoryScopeKey;
204
+ }
205
+
206
+ // @public
207
+ export interface IEntityResolutionCandidate {
194
208
  readonly record: IMemoryRecord<unknown>;
195
209
  readonly score: number;
210
+ readonly target: IEdgeTarget;
196
211
  }
197
212
 
198
213
  // @public
@@ -213,6 +228,7 @@ export interface IFileTreeMemoryStoreCreateParams {
213
228
  readonly embed?: MemoryEmbedder;
214
229
  readonly logger?: Logging.ILogger;
215
230
  readonly observers?: ReadonlyArray<IMemoryObserver>;
231
+ readonly rankProjectors?: ReadonlyMap<Kind, RankProjector>;
216
232
  readonly registry: IBodyConverterRegistry;
217
233
  readonly root: FileTree.IMutableFileTreeDirectoryItem;
218
234
  readonly scopeEncoding?: (scope: MemoryScopeKey) => Result<string>;
@@ -256,7 +272,7 @@ export interface IIngestItem {
256
272
  readonly content: unknown;
257
273
  readonly id: string;
258
274
  readonly metadata?: Record<string, unknown>;
259
- readonly sourceId?: MemoryId;
275
+ readonly sourceId?: IEdgeTarget;
260
276
  }
261
277
 
262
278
  // @public
@@ -294,6 +310,7 @@ export interface IMemoryEnvelope {
294
310
  readonly kind: Kind;
295
311
  readonly links: ReadonlyArray<IEdge>;
296
312
  readonly provenance: IProvenance;
313
+ readonly rank?: number;
297
314
  readonly seq: number;
298
315
  readonly tags: ReadonlyArray<Tag>;
299
316
  readonly temporal?: ITemporalBlock;
@@ -308,8 +325,9 @@ export interface IMemoryFileParts {
308
325
 
309
326
  // @public
310
327
  export interface IMemoryIndex {
311
- backlinks(target: MemoryId): ReadonlyArray<MemoryId>;
328
+ backlinks(target: IEdgeTarget): ReadonlyArray<IEdgeTarget>;
312
329
  byKind(kind: Kind): ReadonlyArray<IMemoryRecord<unknown>>;
330
+ byRank(): ReadonlyArray<IMemoryRecord<unknown>>;
313
331
  byRecency(): ReadonlyArray<IMemoryRecord<unknown>>;
314
332
  byTag(tag: Tag): ReadonlyArray<IMemoryRecord<unknown>>;
315
333
  entries(): ReadonlyArray<IIndexedMemoryRecord>;
@@ -384,9 +402,12 @@ export interface IMemoryQuery {
384
402
  readonly filter?: (record: IMemoryRecord<unknown>) => boolean;
385
403
  readonly hops?: number;
386
404
  readonly kind?: Kind;
405
+ readonly kinds?: ReadonlyArray<Kind>;
387
406
  readonly limit?: number;
388
- readonly linkedFrom?: MemoryId;
389
- readonly linkedTo?: MemoryId;
407
+ readonly linkedFrom?: IEdgeTarget;
408
+ readonly linkedTo?: IEdgeTarget;
409
+ readonly offset?: number;
410
+ readonly orderBy?: 'recency' | 'rank';
390
411
  readonly scope?: MemoryScopeKey;
391
412
  readonly semantic?: string;
392
413
  readonly tag?: Tag;
@@ -401,7 +422,7 @@ export interface IMemoryRecord<TBody = unknown> {
401
422
 
402
423
  // @public
403
424
  export interface IMemoryRecordSource {
404
- list(): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
425
+ list(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
405
426
  }
406
427
 
407
428
  // @public
@@ -419,10 +440,12 @@ export interface IMemoryRetrieverCapabilities {
419
440
 
420
441
  // @public
421
442
  export interface IMemoryStore {
443
+ asRecordSource(): IMemoryRecordSource;
422
444
  delete(kind: Kind, entityId: EntityId): Promise<Result<MemoryId>>;
423
445
  get(kind: Kind, entityId: EntityId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
424
446
  getById(scope: MemoryScopeKey, id: MemoryId): Promise<Result<IMemoryRecord<unknown> | undefined>>;
425
447
  list(filter?: IMemoryStoreListFilter): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
448
+ listScoped(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
426
449
  put(record: IMemoryRecord<unknown>): Promise<Result<IMemoryRecord<unknown>>>;
427
450
  }
428
451
 
@@ -464,11 +487,11 @@ export type IngestDisposition = 'written' | 'deduped' | 'merged';
464
487
 
465
488
  // @public
466
489
  export class InMemoryCosineIndex implements IVectorIndex {
467
- add(id: MemoryId, vector: Float32Array): Promise<Result<string>>;
490
+ add(target: IEdgeTarget, vector: Float32Array): Promise<Result<string>>;
468
491
  static create(): Result<InMemoryCosineIndex>;
469
492
  query(vector: Float32Array, topK: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
470
493
  rebuild(source: IMemoryRecordSource, embed: MemoryEmbedder): Promise<Result<number>>;
471
- remove(id: MemoryId): Promise<Result<MemoryId>>;
494
+ remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
472
495
  get size(): number;
473
496
  }
474
497
 
@@ -477,7 +500,7 @@ export interface IProvenance {
477
500
  readonly [key: string]: unknown;
478
501
  readonly by?: string;
479
502
  readonly confidence?: number;
480
- readonly derivedFrom?: MemoryId;
503
+ readonly derivedFrom?: IEdgeTarget;
481
504
  readonly model?: string;
482
505
  readonly source: ProvenanceSource;
483
506
  }
@@ -485,7 +508,7 @@ export interface IProvenance {
485
508
  // @public
486
509
  export interface IRelationCandidate {
487
510
  readonly candidate: ICandidateRecord;
488
- readonly id: MemoryId;
511
+ readonly id: IEdgeTarget;
489
512
  }
490
513
 
491
514
  // @public
@@ -499,6 +522,12 @@ export interface IRelationExtractor {
499
522
  relate(context: IRelationContext): Promise<Result<ReadonlyArray<ICandidateEdge>>>;
500
523
  }
501
524
 
525
+ // @public
526
+ export interface IScopedMemoryRecord {
527
+ readonly record: IMemoryRecord<unknown>;
528
+ readonly target: IEdgeTarget;
529
+ }
530
+
502
531
  // @public
503
532
  export interface ISemanticBackend {
504
533
  readonly embedQuery: QueryEmbedder;
@@ -543,15 +572,15 @@ export interface ITemporalVersionAddress {
543
572
 
544
573
  // @public
545
574
  export interface IVectorIndex {
546
- add(id: MemoryId, vector: Float32Array): Promise<Result<string>>;
575
+ add(target: IEdgeTarget, vector: Float32Array): Promise<Result<string>>;
547
576
  query(vector: Float32Array, topK: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
548
- remove(id: MemoryId): Promise<Result<MemoryId>>;
577
+ remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
549
578
  }
550
579
 
551
580
  // @public
552
581
  export interface IVectorQueryHit {
553
- readonly id: MemoryId;
554
582
  readonly score: number;
583
+ readonly target: IEdgeTarget;
555
584
  }
556
585
 
557
586
  // @public
@@ -586,7 +615,7 @@ export class KnowledgeLwwPolicy implements IWritePolicy {
586
615
  }
587
616
 
588
617
  // @public
589
- export function limitRecords(records: ReadonlyArray<IMemoryRecord<unknown>>, limit?: number): ReadonlyArray<IMemoryRecord<unknown>>;
618
+ export function limitRecords(records: ReadonlyArray<IMemoryRecord<unknown>>, limit?: number, offset?: number): ReadonlyArray<IMemoryRecord<unknown>>;
590
619
 
591
620
  // @public
592
621
  export const LINK_TRAVERSAL_NO_SEED_MESSAGE: string;
@@ -621,6 +650,9 @@ export class MemoryCapCullPolicy implements IWritePolicy {
621
650
  readonly mutableFields: ReadonlyArray<string>;
622
651
  }
623
652
 
653
+ // @public
654
+ export type MemoryDetailTier = 'gist' | 'full';
655
+
624
656
  // @public
625
657
  export type MemoryEmbedder = (record: IMemoryRecord<unknown>) => Promise<Result<Float32Array>>;
626
658
 
@@ -629,8 +661,9 @@ export type MemoryId = Brand<string, 'MemoryId'>;
629
661
 
630
662
  // @public
631
663
  export class MemoryIndex implements IMemoryIndex {
632
- backlinks(target: MemoryId): ReadonlyArray<MemoryId>;
664
+ backlinks(target: IEdgeTarget): ReadonlyArray<IEdgeTarget>;
633
665
  byKind(kind: Kind): ReadonlyArray<IMemoryRecord<unknown>>;
666
+ byRank(): ReadonlyArray<IMemoryRecord<unknown>>;
634
667
  byRecency(): ReadonlyArray<IMemoryRecord<unknown>>;
635
668
  byTag(tag: Tag): ReadonlyArray<IMemoryRecord<unknown>>;
636
669
  static create(): Result<MemoryIndex>;
@@ -686,6 +719,9 @@ export class MtmIdentityCodec implements IIdentityCodec {
686
719
  // @public
687
720
  export const NON_SEMANTIC_CAPABILITIES: IMemoryRetrieverCapabilities;
688
721
 
722
+ // @public
723
+ export function orderingCompare(orderBy?: IMemoryQuery['orderBy']): (a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>) => number;
724
+
689
725
  // @public
690
726
  export function parseMemoryFile(raw: string, registry: IBodyConverterRegistry): Result<IMemoryRecord<unknown>>;
691
727
 
@@ -698,6 +734,12 @@ export type ProvenanceSource = 'agent' | 'host-ingest' | 'human' | (string & {})
698
734
  // @public
699
735
  export type QueryEmbedder = (text: string) => Promise<Result<Float32Array>>;
700
736
 
737
+ // @public
738
+ export function rankCompare(a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>): number;
739
+
740
+ // @public
741
+ export type RankProjector = (record: IMemoryRecord<unknown>) => number;
742
+
701
743
  // @public
702
744
  export function recencyCompare(a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>): number;
703
745
 
@@ -713,13 +755,13 @@ export type ResolutionVerdict = {
713
755
  readonly verdict: 'new';
714
756
  } | {
715
757
  readonly verdict: 'duplicate-of';
716
- readonly target: MemoryId;
758
+ readonly target: IEdgeTarget;
717
759
  } | {
718
760
  readonly verdict: 'supersede';
719
- readonly target: MemoryId;
761
+ readonly target: IEdgeTarget;
720
762
  } | {
721
763
  readonly verdict: 'merge-into';
722
- readonly target: MemoryId;
764
+ readonly target: IEdgeTarget;
723
765
  };
724
766
 
725
767
  // @public