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

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 (82) hide show
  1. package/.rush/temp/{cbbdbe09515171b4eba8f2592be2dace1e4e8142.tar.log → 285f03271c27ef724d49e730c0db58d9e4ac1a44.tar.log} +38 -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/retrieve/fragmentSemanticRetriever.js +78 -0
  7. package/dist/packlets/retrieve/fragmentSemanticRetriever.js.map +1 -0
  8. package/dist/packlets/retrieve/index.js +1 -0
  9. package/dist/packlets/retrieve/index.js.map +1 -1
  10. package/dist/packlets/store/fileTreeMemoryStore.js +105 -14
  11. package/dist/packlets/store/fileTreeMemoryStore.js.map +1 -1
  12. package/dist/packlets/vector/inMemoryFragmentCosineIndex.js +200 -0
  13. package/dist/packlets/vector/inMemoryFragmentCosineIndex.js.map +1 -0
  14. package/dist/packlets/vector/index.js +1 -0
  15. package/dist/packlets/vector/index.js.map +1 -1
  16. package/dist/packlets/vector/vectorIndex.js.map +1 -1
  17. package/dist/test/unit/retrieve/fragmentSemanticRetriever.test.js +116 -0
  18. package/dist/test/unit/retrieve/fragmentSemanticRetriever.test.js.map +1 -0
  19. package/dist/test/unit/store/fragmentEmbedOnWrite.test.js +255 -0
  20. package/dist/test/unit/store/fragmentEmbedOnWrite.test.js.map +1 -0
  21. package/dist/test/unit/store/lenientOpen.test.js +248 -0
  22. package/dist/test/unit/store/lenientOpen.test.js.map +1 -0
  23. package/dist/test/unit/vector/inMemoryFragmentCosineIndex.test.js +297 -0
  24. package/dist/test/unit/vector/inMemoryFragmentCosineIndex.test.js.map +1 -0
  25. package/dist/ts-agent-memory.d.ts +367 -4
  26. package/etc/ts-agent-memory.api.md +78 -0
  27. package/lib/packlets/retrieve/fragmentSemanticRetriever.d.ts +90 -0
  28. package/lib/packlets/retrieve/fragmentSemanticRetriever.d.ts.map +1 -0
  29. package/lib/packlets/retrieve/fragmentSemanticRetriever.js +82 -0
  30. package/lib/packlets/retrieve/fragmentSemanticRetriever.js.map +1 -0
  31. package/lib/packlets/retrieve/index.d.ts +1 -0
  32. package/lib/packlets/retrieve/index.d.ts.map +1 -1
  33. package/lib/packlets/retrieve/index.js +1 -0
  34. package/lib/packlets/retrieve/index.js.map +1 -1
  35. package/lib/packlets/store/fileTreeMemoryStore.d.ts +115 -1
  36. package/lib/packlets/store/fileTreeMemoryStore.d.ts.map +1 -1
  37. package/lib/packlets/store/fileTreeMemoryStore.js +104 -13
  38. package/lib/packlets/store/fileTreeMemoryStore.js.map +1 -1
  39. package/lib/packlets/vector/inMemoryFragmentCosineIndex.d.ts +74 -0
  40. package/lib/packlets/vector/inMemoryFragmentCosineIndex.d.ts.map +1 -0
  41. package/lib/packlets/vector/inMemoryFragmentCosineIndex.js +204 -0
  42. package/lib/packlets/vector/inMemoryFragmentCosineIndex.js.map +1 -0
  43. package/lib/packlets/vector/index.d.ts +1 -0
  44. package/lib/packlets/vector/index.d.ts.map +1 -1
  45. package/lib/packlets/vector/index.js +1 -0
  46. package/lib/packlets/vector/index.js.map +1 -1
  47. package/lib/packlets/vector/vectorIndex.d.ts +85 -4
  48. package/lib/packlets/vector/vectorIndex.d.ts.map +1 -1
  49. package/lib/packlets/vector/vectorIndex.js.map +1 -1
  50. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.d.ts +2 -0
  51. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.d.ts.map +1 -0
  52. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.js +118 -0
  53. package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.js.map +1 -0
  54. package/lib/test/unit/store/fragmentEmbedOnWrite.test.d.ts +2 -0
  55. package/lib/test/unit/store/fragmentEmbedOnWrite.test.d.ts.map +1 -0
  56. package/lib/test/unit/store/fragmentEmbedOnWrite.test.js +257 -0
  57. package/lib/test/unit/store/fragmentEmbedOnWrite.test.js.map +1 -0
  58. package/lib/test/unit/store/lenientOpen.test.d.ts +2 -0
  59. package/lib/test/unit/store/lenientOpen.test.d.ts.map +1 -0
  60. package/lib/test/unit/store/lenientOpen.test.js +250 -0
  61. package/lib/test/unit/store/lenientOpen.test.js.map +1 -0
  62. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.d.ts +2 -0
  63. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.d.ts.map +1 -0
  64. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.js +299 -0
  65. package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.js.map +1 -0
  66. package/package.json +7 -7
  67. package/rush-logs/ts-agent-memory.build.cache.log +1 -1
  68. package/rush-logs/ts-agent-memory.build.log +2 -2
  69. package/src/packlets/retrieve/fragmentSemanticRetriever.ts +135 -0
  70. package/src/packlets/retrieve/index.ts +1 -0
  71. package/src/packlets/store/fileTreeMemoryStore.ts +208 -16
  72. package/src/packlets/vector/inMemoryFragmentCosineIndex.ts +262 -0
  73. package/src/packlets/vector/index.ts +1 -0
  74. package/src/packlets/vector/vectorIndex.ts +97 -4
  75. package/src/test/unit/retrieve/fragmentSemanticRetriever.test.ts +163 -0
  76. package/src/test/unit/store/fragmentEmbedOnWrite.test.ts +349 -0
  77. package/src/test/unit/store/lenientOpen.test.ts +292 -0
  78. package/src/test/unit/vector/inMemoryFragmentCosineIndex.test.ts +389 -0
  79. package/temp/build/lint/_eslint-5eVG3S6w.json +29 -5
  80. package/temp/build/typescript/ts_8nwakTlr.json +1 -1
  81. package/temp/ts-agent-memory.api.json +4584 -2859
  82. package/temp/ts-agent-memory.api.md +78 -0
@@ -121,6 +121,22 @@ export class FileTreeMemoryStore implements IMemoryStore {
121
121
  list(filter?: IMemoryStoreListFilter): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>>;
122
122
  listScoped(): Promise<Result<ReadonlyArray<IScopedMemoryRecord>>>;
123
123
  put(record: IMemoryRecord<unknown>): Promise<Result<IMemoryRecord<unknown>>>;
124
+ get skippedRecords(): ReadonlyArray<ISkippedRecord>;
125
+ }
126
+
127
+ // @public
128
+ export const FRAGMENT_SEMANTIC_UNWIRED_MESSAGE: string;
129
+
130
+ // @public
131
+ export type FragmentEmbedder = (record: IMemoryRecord<unknown>) => Promise<Result<ReadonlyArray<IEmbeddedFragment>>>;
132
+
133
+ // @public
134
+ export class FragmentSemanticRetriever {
135
+ get capabilities(): IFragmentRetrieverCapabilities;
136
+ static create(params: {
137
+ readonly backend?: IFragmentSemanticBackend;
138
+ }): Result<FragmentSemanticRetriever>;
139
+ retrieve(query: IFragmentQuery): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
124
140
  }
125
141
 
126
142
  // @public
@@ -203,6 +219,12 @@ export interface IEdgeTarget {
203
219
  readonly scope: MemoryScopeKey;
204
220
  }
205
221
 
222
+ // @public
223
+ export interface IEmbeddedFragment {
224
+ readonly locator: IFragmentLocator;
225
+ readonly vector: Float32Array;
226
+ }
227
+
206
228
  // @public
207
229
  export interface IEntityResolutionCandidate {
208
230
  readonly record: IMemoryRecord<unknown>;
@@ -226,8 +248,11 @@ export interface IFileTreeMemoryStoreCreateParams {
226
248
  readonly codecs?: ReadonlyMap<Kind, IIdentityCodec>;
227
249
  readonly defaultCodec?: IIdentityCodec;
228
250
  readonly embed?: MemoryEmbedder;
251
+ readonly fragmentEmbedder?: FragmentEmbedder;
252
+ readonly fragmentIndex?: IFragmentVectorIndex;
229
253
  readonly logger?: Logging.ILogger;
230
254
  readonly observers?: ReadonlyArray<IMemoryObserver>;
255
+ readonly onRecordError?: MemoryRecordErrorMode;
231
256
  readonly rankProjectors?: ReadonlyMap<Kind, RankProjector>;
232
257
  readonly registry: IBodyConverterRegistry;
233
258
  readonly root: FileTree.IMutableFileTreeDirectoryItem;
@@ -236,6 +261,37 @@ export interface IFileTreeMemoryStoreCreateParams {
236
261
  readonly writePolicies?: ReadonlyMap<Kind, IWritePolicy>;
237
262
  }
238
263
 
264
+ // @public
265
+ export interface IFragmentLocator {
266
+ readonly end: number;
267
+ readonly start: number;
268
+ }
269
+
270
+ // @public
271
+ export interface IFragmentQuery {
272
+ readonly maxPerRecord?: number;
273
+ readonly semantic: string;
274
+ readonly topK?: number;
275
+ }
276
+
277
+ // @public
278
+ export interface IFragmentRetrieverCapabilities {
279
+ readonly supportsFragmentRecall: boolean;
280
+ }
281
+
282
+ // @public
283
+ export interface IFragmentSemanticBackend {
284
+ readonly embedQuery: QueryEmbedder;
285
+ readonly fragmentIndex: IFragmentVectorIndex;
286
+ }
287
+
288
+ // @public
289
+ export interface IFragmentVectorIndex {
290
+ addFragments(target: IEdgeTarget, fragments: ReadonlyArray<IEmbeddedFragment>): Promise<Result<number>>;
291
+ query(vector: Float32Array, topK: number, maxPerRecord?: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
292
+ remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
293
+ }
294
+
239
295
  // @public
240
296
  export interface IIdentityCodec {
241
297
  decode(scope: MemoryScopeKey, encodedStem: string): Result<EntityId>;
@@ -495,6 +551,17 @@ export class InMemoryCosineIndex implements IVectorIndex {
495
551
  get size(): number;
496
552
  }
497
553
 
554
+ // @public
555
+ export class InMemoryFragmentCosineIndex implements IFragmentVectorIndex {
556
+ addFragments(target: IEdgeTarget, fragments: ReadonlyArray<IEmbeddedFragment>): Promise<Result<number>>;
557
+ static create(): Result<InMemoryFragmentCosineIndex>;
558
+ get fragmentCount(): number;
559
+ query(vector: Float32Array, topK: number, maxPerRecord?: number): Promise<Result<ReadonlyArray<IVectorQueryHit>>>;
560
+ rebuild(source: IMemoryRecordSource, embed: FragmentEmbedder): Promise<Result<number>>;
561
+ get recordCount(): number;
562
+ remove(target: IEdgeTarget): Promise<Result<IEdgeTarget>>;
563
+ }
564
+
498
565
  // @public
499
566
  export interface IProvenance {
500
567
  readonly [key: string]: unknown;
@@ -540,6 +607,13 @@ export interface ISemanticRetrieverCreateParams {
540
607
  readonly index: IMemoryIndex;
541
608
  }
542
609
 
610
+ // @public
611
+ export interface ISkippedRecord {
612
+ readonly error: string;
613
+ readonly path: string;
614
+ readonly scope: MemoryScopeKey;
615
+ }
616
+
543
617
  // @public
544
618
  export function isTemporalIdentityCodec(codec: IIdentityCodec): codec is ITemporalIdentityCodec;
545
619
 
@@ -579,6 +653,7 @@ export interface IVectorIndex {
579
653
 
580
654
  // @public
581
655
  export interface IVectorQueryHit {
656
+ readonly locator?: IFragmentLocator;
582
657
  readonly score: number;
583
658
  readonly target: IEdgeTarget;
584
659
  }
@@ -698,6 +773,9 @@ export class MemoryObservationStore implements IMemoryObserver {
698
773
  get size(): number;
699
774
  }
700
775
 
776
+ // @public
777
+ export type MemoryRecordErrorMode = 'skip' | 'fail';
778
+
701
779
  // @public
702
780
  export type MemoryScopeKey = Brand<string, 'MemoryScopeKey'>;
703
781