@polpo-ai/core 0.15.132 → 0.15.134

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 (117) hide show
  1. package/README.md +40 -7
  2. package/dist/__tests__/brain-local.test.js +149 -1
  3. package/dist/__tests__/brain-local.test.js.map +1 -1
  4. package/dist/__tests__/memory-store-policy.test.js +216 -0
  5. package/dist/__tests__/memory-store-policy.test.js.map +1 -1
  6. package/dist/__tests__/project-layout.test.js +5 -0
  7. package/dist/__tests__/project-layout.test.js.map +1 -1
  8. package/dist/brain/contracts.d.ts.map +1 -1
  9. package/dist/brain/contracts.js +36 -0
  10. package/dist/brain/contracts.js.map +1 -1
  11. package/dist/brain/in-memory-store.d.ts +2 -1
  12. package/dist/brain/in-memory-store.d.ts.map +1 -1
  13. package/dist/brain/in-memory-store.js +118 -60
  14. package/dist/brain/in-memory-store.js.map +1 -1
  15. package/dist/brain/index.d.ts +6 -3
  16. package/dist/brain/index.d.ts.map +1 -1
  17. package/dist/brain/index.js +2 -1
  18. package/dist/brain/index.js.map +1 -1
  19. package/dist/brain/ingestion-worker.d.ts +33 -0
  20. package/dist/brain/ingestion-worker.d.ts.map +1 -0
  21. package/dist/brain/ingestion-worker.js +222 -0
  22. package/dist/brain/ingestion-worker.js.map +1 -0
  23. package/dist/brain/ingestion-worker.test.d.ts +2 -0
  24. package/dist/brain/ingestion-worker.test.d.ts.map +1 -0
  25. package/dist/brain/ingestion-worker.test.js +355 -0
  26. package/dist/brain/ingestion-worker.test.js.map +1 -0
  27. package/dist/brain/ports.d.ts +4 -1
  28. package/dist/brain/ports.d.ts.map +1 -1
  29. package/dist/brain/retrieval.d.ts +5 -0
  30. package/dist/brain/retrieval.d.ts.map +1 -1
  31. package/dist/brain/retrieval.js +59 -1
  32. package/dist/brain/retrieval.js.map +1 -1
  33. package/dist/brain/stores.d.ts +3 -1
  34. package/dist/brain/stores.d.ts.map +1 -1
  35. package/dist/brain/types.d.ts +20 -0
  36. package/dist/brain/types.d.ts.map +1 -1
  37. package/dist/canonical-turn-dispatcher.d.ts +30 -0
  38. package/dist/canonical-turn-dispatcher.d.ts.map +1 -0
  39. package/dist/canonical-turn-dispatcher.js +50 -0
  40. package/dist/canonical-turn-dispatcher.js.map +1 -0
  41. package/dist/canonical-turn-dispatcher.test.d.ts +2 -0
  42. package/dist/canonical-turn-dispatcher.test.d.ts.map +1 -0
  43. package/dist/canonical-turn-dispatcher.test.js +118 -0
  44. package/dist/canonical-turn-dispatcher.test.js.map +1 -0
  45. package/dist/canonical-turn.d.ts +36 -0
  46. package/dist/canonical-turn.d.ts.map +1 -0
  47. package/dist/canonical-turn.js +132 -0
  48. package/dist/canonical-turn.js.map +1 -0
  49. package/dist/canonical-turn.test.d.ts +2 -0
  50. package/dist/canonical-turn.test.d.ts.map +1 -0
  51. package/dist/canonical-turn.test.js +64 -0
  52. package/dist/canonical-turn.test.js.map +1 -0
  53. package/dist/index.d.ts +4 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/memory/extraction.d.ts +10 -0
  58. package/dist/memory/extraction.d.ts.map +1 -1
  59. package/dist/memory/extraction.js +7 -1
  60. package/dist/memory/extraction.js.map +1 -1
  61. package/dist/memory/extraction.test.js +27 -0
  62. package/dist/memory/extraction.test.js.map +1 -1
  63. package/dist/memory/in-memory-extraction-store.d.ts +2 -0
  64. package/dist/memory/in-memory-extraction-store.d.ts.map +1 -1
  65. package/dist/memory/in-memory-extraction-store.js +37 -0
  66. package/dist/memory/in-memory-extraction-store.js.map +1 -1
  67. package/dist/memory/in-memory-store.d.ts +15 -2
  68. package/dist/memory/in-memory-store.d.ts.map +1 -1
  69. package/dist/memory/in-memory-store.js +209 -4
  70. package/dist/memory/in-memory-store.js.map +1 -1
  71. package/dist/memory/index.d.ts +6 -3
  72. package/dist/memory/index.d.ts.map +1 -1
  73. package/dist/memory/index.js +2 -1
  74. package/dist/memory/index.js.map +1 -1
  75. package/dist/memory/learning.d.ts +113 -0
  76. package/dist/memory/learning.d.ts.map +1 -0
  77. package/dist/memory/learning.js +310 -0
  78. package/dist/memory/learning.js.map +1 -0
  79. package/dist/memory/learning.test.d.ts +2 -0
  80. package/dist/memory/learning.test.d.ts.map +1 -0
  81. package/dist/memory/learning.test.js +274 -0
  82. package/dist/memory/learning.test.js.map +1 -0
  83. package/dist/memory/store-types.d.ts +21 -0
  84. package/dist/memory/store-types.d.ts.map +1 -1
  85. package/dist/memory/tool-settings.d.ts +16 -0
  86. package/dist/memory/tool-settings.d.ts.map +1 -1
  87. package/dist/memory/tool-settings.js +53 -1
  88. package/dist/memory/tool-settings.js.map +1 -1
  89. package/dist/memory/tool-settings.test.js +33 -0
  90. package/dist/memory/tool-settings.test.js.map +1 -1
  91. package/dist/model-runtime.d.ts +1 -1
  92. package/dist/model-runtime.d.ts.map +1 -1
  93. package/dist/model-runtime.js.map +1 -1
  94. package/dist/runtime-context/composite-provider.d.ts.map +1 -1
  95. package/dist/runtime-context/composite-provider.js +27 -2
  96. package/dist/runtime-context/composite-provider.js.map +1 -1
  97. package/dist/runtime-context/composite-provider.test.js +20 -1
  98. package/dist/runtime-context/composite-provider.test.js.map +1 -1
  99. package/dist/semantic-retrieval-quality.test.d.ts +2 -0
  100. package/dist/semantic-retrieval-quality.test.d.ts.map +1 -0
  101. package/dist/semantic-retrieval-quality.test.js +319 -0
  102. package/dist/semantic-retrieval-quality.test.js.map +1 -0
  103. package/dist/semantic-retrieval.d.ts +245 -0
  104. package/dist/semantic-retrieval.d.ts.map +1 -0
  105. package/dist/semantic-retrieval.js +662 -0
  106. package/dist/semantic-retrieval.js.map +1 -0
  107. package/dist/semantic-retrieval.test.d.ts +2 -0
  108. package/dist/semantic-retrieval.test.d.ts.map +1 -0
  109. package/dist/semantic-retrieval.test.js +138 -0
  110. package/dist/semantic-retrieval.test.js.map +1 -0
  111. package/dist/session-continuation.d.ts +2 -0
  112. package/dist/session-continuation.d.ts.map +1 -1
  113. package/dist/session-continuation.js.map +1 -1
  114. package/dist/session-store.d.ts +33 -0
  115. package/dist/session-store.d.ts.map +1 -1
  116. package/dist/session-store.js.map +1 -1
  117. package/package.json +13 -1
package/README.md CHANGED
@@ -588,13 +588,16 @@ project or organization boundary and passes only authorized dimensions to
588
588
 
589
589
  The contract validates item lifecycle, provenance, expiry, and exact dedupe
590
590
  identity. `InMemoryMemoryItemStore` adds authorized CRUD, deterministic lexical
591
- search, token-budget selection, soft deletion, usage events, and fail-closed
592
- write policy. Every operation requires a host-owned `namespace`, so external
593
- user identifiers are never shared across project boundaries.
591
+ search, optional provider-neutral semantic search, token-budget selection, soft
592
+ deletion, usage events, and fail-closed write policy. Lexical and semantic
593
+ candidate rankings are fused with reciprocal rank fusion; raw scores are never
594
+ added. Every operation requires a host-owned `namespace`, so external user
595
+ identifiers are never shared across project boundaries.
594
596
 
595
597
  `FileMemoryItemStore` from `@polpo-ai/file-stores` is the local durable
596
- reference adapter. It writes `memory-items.json` atomically and leaves the
597
- existing markdown store untouched during migration.
598
+ reference adapter. It writes canonical items to `memory-items.json` atomically,
599
+ leaves the existing markdown store untouched during migration, and rebuilds
600
+ derived embeddings when reopened if a semantic provider is configured.
598
601
 
599
602
  The typed HTTP and model-tool surfaces are independently authorized:
600
603
 
@@ -641,8 +644,38 @@ position into an opaque, filter-bound cursor, and
641
644
  `PolpoClient.listMemoryItemsPage()` returns `{ items, nextCursor }`. Invalid,
642
645
  cross-filter, and cross-agent cursors fail without exposing store details.
643
646
 
644
- Typed Memory still does not inject retrieved items into prompts. Semantic
645
- runtime retrieval is a separate opt-in.
647
+ Semantic retrieval is additive and opt-in. Hosts supply a
648
+ `TextEmbeddingProvider` to Memory and Knowledge stores. Provider, model,
649
+ dimensions, and revision form the immutable embedding identity; incompatible
650
+ vectors are never compared. Provider failure falls back to lexical retrieval
651
+ unless strict mode is selected, while cancellation always propagates. Runtime
652
+ context providers keep Memory and Knowledge as separate authorized corpora and
653
+ allocate their token budgets proportionally so one cannot starve the other.
654
+
655
+ Automatic Memory extraction and writes are intentionally separate from this
656
+ retrieval capability and remain opt-in host behavior.
657
+
658
+ Knowledge ingestion can run synchronously through `ingestBrainSource` or on a
659
+ durable host queue through `processNextBrainIngestionJob`. The worker claims a
660
+ single scoped job, heartbeats adapters that implement `renewJobLease`, retries
661
+ sanitized transient failures, and uses claim-token compare-and-swap for every
662
+ terminal mutation. Executors must remain idempotent because a process can fail
663
+ after publishing a version but before acknowledging its job.
664
+
665
+ ```ts
666
+ const result = await processNextBrainIngestionJob({
667
+ jobStore,
668
+ scope: { kind: "project", subjectId: projectId },
669
+ workerId,
670
+ execute: async ({ job, signal }) => {
671
+ await ingestStagedKnowledgeVersion(job, { signal });
672
+ },
673
+ });
674
+ ```
675
+
676
+ The queue stores identifiers and lifecycle facts, not source bodies or provider
677
+ credentials. Hosts own durable payload/object storage and must resolve it again
678
+ under the job's exact scope before parsing or publishing.
646
679
 
647
680
  ## License
648
681
 
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it, vi } from "vitest";
2
- import { BrainStoreConflictError, BrainStoreValidationError, InMemoryBrainStore, PlainTextBrainParser, chunkBrainSections, createBrainIngestionJob, createBrainSource, createBrainSourceVersion, ingestBrainSource, retrieveBrain, } from "../brain/index.js";
2
+ import { BrainStoreConflictError, BrainStoreValidationError, InMemoryBrainStore, PlainTextBrainParser, chunkBrainSections, createBrainIngestionJob, createBrainSource, createBrainSourceVersion, createBrainTextRerankerAdapter, ingestBrainSource, retrieveBrain, } from "../brain/index.js";
3
3
  const projectA = { kind: "project", subjectId: "project-a" };
4
4
  const projectB = { kind: "project", subjectId: "project-b" };
5
5
  const at = "2026-07-28T12:00:00.000Z";
@@ -565,6 +565,92 @@ describe("Brain ingestion and retrieval", () => {
565
565
  failureMode: "fallback",
566
566
  });
567
567
  expect(results.map((result) => result.chunk.sourceId)).toEqual(["a", "b"]);
568
+ expect(results.every((result) => (result.retrievalMode === "lexical"
569
+ && result.fallbackReason === "semantic_index_unavailable"))).toBe(true);
570
+ });
571
+ it("recovers paraphrases semantically and fuses overlap with deterministic diagnostics", async () => {
572
+ const tasks = [];
573
+ const embedder = {
574
+ embed: async ({ texts, task }) => {
575
+ tasks.push(task);
576
+ return {
577
+ provider: "fixture",
578
+ model: "meaning-v1",
579
+ revision: "r1",
580
+ dimensions: 2,
581
+ vectors: texts.map((text) => (/refund|reimbursement|money back/i.test(text) ? [1, 0] : [0, 1])),
582
+ };
583
+ },
584
+ };
585
+ const store = new InMemoryBrainStore({ embeddingProvider: embedder });
586
+ await seed(store, {
587
+ sourceId: "policy",
588
+ content: "Billing refunds are approved within five days.",
589
+ });
590
+ const results = await store.searchCandidates({
591
+ sources: [{ scope: projectA, sourceId: "policy" }],
592
+ query: "When can a customer get their money back?",
593
+ limit: 5,
594
+ });
595
+ expect(results).toHaveLength(1);
596
+ expect(results[0]).toMatchObject({
597
+ retrievalMode: "semantic",
598
+ ranks: { semantic: 1 },
599
+ scores: { semantic: 1 },
600
+ });
601
+ expect(tasks).toContain("document");
602
+ expect(tasks.at(-1)).toBe("query");
603
+ });
604
+ it("never compares vectors after the embedding identity changes", async () => {
605
+ let revision = "r1";
606
+ const embedder = {
607
+ embed: async ({ texts }) => ({
608
+ provider: "fixture",
609
+ model: "meaning-v1",
610
+ revision,
611
+ dimensions: 2,
612
+ vectors: texts.map(() => [1, 0]),
613
+ }),
614
+ };
615
+ const store = new InMemoryBrainStore({ embeddingProvider: embedder });
616
+ await seed(store, { content: "Refund policy." });
617
+ revision = "r2";
618
+ await expect(store.searchCandidates({
619
+ sources: [{ scope: projectA, sourceId: "source-1" }],
620
+ query: "money back",
621
+ limit: 5,
622
+ })).resolves.toEqual([]);
623
+ });
624
+ it("propagates cancellation to query embedding", async () => {
625
+ const controller = new AbortController();
626
+ const embedder = {
627
+ embed: async ({ texts, task, signal }) => {
628
+ if (task === "query") {
629
+ expect(signal).toBe(controller.signal);
630
+ controller.abort();
631
+ throw Object.assign(new Error("cancelled"), { name: "AbortError" });
632
+ }
633
+ return {
634
+ model: "fixture",
635
+ dimensions: 1,
636
+ vectors: texts.map(() => [1]),
637
+ };
638
+ },
639
+ };
640
+ const store = new InMemoryBrainStore({
641
+ embeddingProvider: embedder,
642
+ });
643
+ await seed(store);
644
+ await expect(retrieveBrain({
645
+ query: "billing",
646
+ scopes: [projectA],
647
+ actor,
648
+ signal: controller.signal,
649
+ }, {
650
+ sourceStore: store,
651
+ chunkStore: store,
652
+ accessPolicy: allow,
653
+ })).rejects.toMatchObject({ name: "AbortError" });
568
654
  });
569
655
  it("rejects a reranker that drops citation identity in strict mode", async () => {
570
656
  const store = new InMemoryBrainStore();
@@ -595,6 +681,68 @@ describe("Brain ingestion and retrieval", () => {
595
681
  failureMode: "strict",
596
682
  })).rejects.toThrow(/reranker/i);
597
683
  });
684
+ it("never converts reranker cancellation into a lexical fallback", async () => {
685
+ const store = new InMemoryBrainStore();
686
+ await seed(store);
687
+ const reranker = {
688
+ rerank: async () => {
689
+ throw Object.assign(new Error("cancelled"), { name: "AbortError" });
690
+ },
691
+ };
692
+ await expect(retrieveBrain({
693
+ query: "billing",
694
+ scopes: [projectA],
695
+ actor,
696
+ }, {
697
+ sourceStore: store,
698
+ chunkStore: store,
699
+ accessPolicy: allow,
700
+ reranker,
701
+ failureMode: "fallback",
702
+ })).rejects.toMatchObject({ name: "AbortError" });
703
+ });
704
+ it("adapts the shared text reranker without losing citation identity", async () => {
705
+ const store = new InMemoryBrainStore();
706
+ await seed(store, {
707
+ sourceId: "a",
708
+ content: "Billing guide alpha.",
709
+ label: "A",
710
+ });
711
+ await seed(store, {
712
+ sourceId: "b",
713
+ content: "Billing guide beta.",
714
+ label: "B",
715
+ });
716
+ let received = [];
717
+ const textReranker = {
718
+ rerank: async ({ candidates }) => {
719
+ received = candidates.map(({ text }) => text);
720
+ return {
721
+ ranking: [
722
+ { id: "1", score: 0.9 },
723
+ { id: "0", score: 0.8 },
724
+ ],
725
+ };
726
+ },
727
+ };
728
+ const results = await retrieveBrain({
729
+ query: "billing guide",
730
+ scopes: [projectA],
731
+ actor,
732
+ limit: 2,
733
+ tokenBudget: 1_000,
734
+ }, {
735
+ sourceStore: store,
736
+ chunkStore: store,
737
+ accessPolicy: allow,
738
+ reranker: createBrainTextRerankerAdapter(textReranker),
739
+ failureMode: "strict",
740
+ });
741
+ expect(received).toHaveLength(2);
742
+ expect(results.map((result) => result.chunk.sourceId)).toEqual(["b", "a"]);
743
+ expect(results.map((result) => result.scores.rerank)).toEqual([0.9, 0.8]);
744
+ expect(results.every((result) => (result.chunk.citation.sourceId === result.chunk.sourceId))).toBe(true);
745
+ });
598
746
  it("enforces the final token budget and returns no segment for empty input", async () => {
599
747
  const store = new InMemoryBrainStore();
600
748
  await seed(store, {
@@ -1 +1 @@
1
- {"version":3,"file":"brain-local.test.js","sourceRoot":"","sources":["../../src/__tests__/brain-local.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-local.test.js","sourceRoot":"","sources":["../../src/__tests__/brain-local.test.ts"],"names":[],"mappings":"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"}
@@ -138,4 +138,220 @@ describe("Memory lexical ranking", () => {
138
138
  })).toEqual([]);
139
139
  });
140
140
  });
141
+ describe("Memory semantic retrieval", () => {
142
+ function provider(options = {}) {
143
+ const currentIdentity = () => ({
144
+ provider: "fixture",
145
+ model: "meaning-v1",
146
+ dimensions: 2,
147
+ revision: options.revision?.() ?? "r1",
148
+ });
149
+ return {
150
+ identity: currentIdentity,
151
+ embed: async ({ texts, task, signal }) => {
152
+ if (signal?.aborted) {
153
+ throw Object.assign(new Error("cancelled"), { name: "AbortError" });
154
+ }
155
+ if (options.failQuery && task === "query") {
156
+ throw new Error("embedding offline");
157
+ }
158
+ return {
159
+ identity: currentIdentity(),
160
+ vectors: texts.map((text) => (/refund|reimbursement|money back/i.test(text) ? [1, 0] : [0, 1])),
161
+ };
162
+ },
163
+ };
164
+ }
165
+ it("rejects a positive rerank limit without a configured reranker", () => {
166
+ expect(() => new InMemoryMemoryItemStore({}, undefined, {
167
+ rerankLimit: 1,
168
+ })).toThrow("requires a reranker");
169
+ });
170
+ it("recovers paraphrased authorized Memory and exposes deterministic ranking details", async () => {
171
+ const store = new InMemoryMemoryItemStore({}, undefined, {
172
+ embeddingProvider: provider(),
173
+ });
174
+ await store.create(item("refund", "Refunds are approved in five days."), context);
175
+ await store.create(item("other", "The dashboard theme is green."), context);
176
+ const results = await store.search({
177
+ query: "When can I get my money back?",
178
+ maxResults: 5,
179
+ }, context);
180
+ expect(results.map((result) => result.item.id)).toEqual(["refund"]);
181
+ expect(results[0]).toMatchObject({
182
+ retrievalMode: "semantic",
183
+ scores: { semantic: 1 },
184
+ ranks: { semantic: 1 },
185
+ });
186
+ });
187
+ it("falls back to lexical retrieval when query embedding fails", async () => {
188
+ const store = new InMemoryMemoryItemStore({}, undefined, {
189
+ embeddingProvider: provider({ failQuery: true }),
190
+ });
191
+ await store.create(item("refund", "Refund billing policy."), context);
192
+ await expect(store.search({ query: "refund" }, context)).resolves.toMatchObject([
193
+ {
194
+ item: { id: "refund" },
195
+ retrievalMode: "lexical",
196
+ fallbackReason: "embedding_unavailable",
197
+ },
198
+ ]);
199
+ });
200
+ it("does not compare stale vectors after update, forget, or identity migration", async () => {
201
+ let revision = "r1";
202
+ const store = new InMemoryMemoryItemStore({}, undefined, {
203
+ embeddingProvider: provider({ revision: () => revision }),
204
+ });
205
+ await store.create(item("memory", "Refund policy."), context);
206
+ await store.update("memory", { content: "Dashboard theme." }, context);
207
+ await expect(store.search({ query: "money back" }, context)).resolves.toEqual([]);
208
+ await store.update("memory", { content: "Refund policy." }, context);
209
+ revision = "r2";
210
+ await expect(store.search({ query: "money back" }, context)).resolves.toEqual([]);
211
+ revision = "r1";
212
+ await store.forget("memory", context);
213
+ await expect(store.search({ query: "money back" }, context)).resolves.toEqual([]);
214
+ });
215
+ it("never embeds a query when no authorized semantic record is eligible", async () => {
216
+ let queryCalls = 0;
217
+ const base = provider();
218
+ const embeddingProvider = {
219
+ identity: base.identity,
220
+ embed: async (request) => {
221
+ if (request.task === "query")
222
+ queryCalls += 1;
223
+ return base.embed(request);
224
+ },
225
+ };
226
+ const store = new InMemoryMemoryItemStore({}, undefined, {
227
+ embeddingProvider,
228
+ });
229
+ await store.create(item("private", "Refund policy.", { kind: "user", subjectId: "other-user" }), {
230
+ ...context,
231
+ access: { ...context.access, externalUserId: "other-user" },
232
+ });
233
+ await expect(store.search({ query: "refund" }, context)).resolves.toEqual([]);
234
+ expect(queryCalls).toBe(0);
235
+ });
236
+ it("propagates an already-aborted semantic query in strict mode", async () => {
237
+ const controller = new AbortController();
238
+ const store = new InMemoryMemoryItemStore({}, undefined, {
239
+ embeddingProvider: provider(),
240
+ });
241
+ await store.create(item("refund", "Refund policy."), context);
242
+ controller.abort();
243
+ await expect(store.search({
244
+ query: "refund",
245
+ signal: controller.signal,
246
+ }, context)).rejects.toMatchObject({ name: "AbortError" });
247
+ });
248
+ it("allows only one concurrent create across a delayed semantic indexing boundary", async () => {
249
+ let releaseEmbedding;
250
+ const released = new Promise((resolve) => {
251
+ releaseEmbedding = resolve;
252
+ });
253
+ const base = provider();
254
+ const store = new InMemoryMemoryItemStore({}, undefined, {
255
+ embeddingProvider: {
256
+ identity: base.identity,
257
+ embed: async (request) => {
258
+ if (request.task === "document")
259
+ await released;
260
+ return base.embed(request);
261
+ },
262
+ },
263
+ });
264
+ const first = store.create(item("race", "Refund policy."), context);
265
+ const second = store.create(item("race", "Refund policy."), context);
266
+ await Promise.resolve();
267
+ releaseEmbedding?.();
268
+ const settled = await Promise.allSettled([first, second]);
269
+ expect(settled.filter((result) => result.status === "fulfilled")).toHaveLength(1);
270
+ expect(settled.filter((result) => result.status === "rejected")).toMatchObject([
271
+ { reason: expect.any(MemoryConflictError) },
272
+ ]);
273
+ await expect(store.search({ query: "money back" }, context))
274
+ .resolves.toHaveLength(1);
275
+ });
276
+ it("rejects an empty semantic query before calling the provider", async () => {
277
+ let queryCalls = 0;
278
+ const base = provider();
279
+ const store = new InMemoryMemoryItemStore({}, undefined, {
280
+ embeddingProvider: {
281
+ identity: base.identity,
282
+ embed: async (request) => {
283
+ if (request.task === "query")
284
+ queryCalls += 1;
285
+ return base.embed(request);
286
+ },
287
+ },
288
+ });
289
+ await store.create(item("refund", "Refund policy."), context);
290
+ await expect(store.search({ query: " \n\t" }, context))
291
+ .rejects.toThrow("searchable terms");
292
+ expect(queryCalls).toBe(0);
293
+ });
294
+ it("reranks only the authorized shortlist and preserves score diagnostics", async () => {
295
+ let receivedIds = [];
296
+ const reranker = {
297
+ rerank: async ({ candidates }) => {
298
+ receivedIds = candidates.map(({ id }) => id);
299
+ return {
300
+ ranking: [
301
+ { id: "b", score: 0.9 },
302
+ { id: "a", score: 0.8 },
303
+ ],
304
+ };
305
+ },
306
+ };
307
+ const store = new InMemoryMemoryItemStore({}, undefined, {
308
+ reranker,
309
+ rerankLimit: 2,
310
+ rerankFailureMode: "strict",
311
+ });
312
+ await store.create(item("a", "Billing invoice details."), context);
313
+ await store.create(item("b", "Billing invoice details."), context);
314
+ await store.create(item("denied", "Billing invoice secret.", { kind: "user", subjectId: "other-user" }), {
315
+ ...context,
316
+ access: { ...context.access, externalUserId: "other-user" },
317
+ });
318
+ const results = await store.search({ query: "billing invoice" }, context);
319
+ expect(receivedIds).toEqual(["a", "b"]);
320
+ expect(results.map(({ item: value }) => value.id)).toEqual(["b", "a"]);
321
+ expect(results.map(({ scores }) => scores?.rerank)).toEqual([0.9, 0.8]);
322
+ });
323
+ it("falls back to fused order on malformed reranker output", async () => {
324
+ const store = new InMemoryMemoryItemStore({}, undefined, {
325
+ reranker: {
326
+ rerank: async () => ({ ranking: [{ id: "invented", score: 1 }] }),
327
+ },
328
+ rerankLimit: 1,
329
+ rerankFailureMode: "fallback",
330
+ });
331
+ await store.create(item("a", "Billing invoice details."), context);
332
+ await store.create(item("b", "Billing invoice details."), context);
333
+ const results = await store.search({ query: "billing invoice" }, context);
334
+ expect(results.map(({ item: value }) => value.id)).toEqual(["a", "b"]);
335
+ expect(results.every(({ fallbackReason }) => (fallbackReason === "reranker_invalid_output"))).toBe(true);
336
+ });
337
+ it("rechecks lifecycle after asynchronous reranking", async () => {
338
+ let store;
339
+ store = new InMemoryMemoryItemStore({}, undefined, {
340
+ reranker: {
341
+ rerank: async ({ candidates }) => {
342
+ await store.forget("a", context);
343
+ return {
344
+ ranking: candidates.map(({ id }, index) => ({ id, score: 1 - index })),
345
+ };
346
+ },
347
+ },
348
+ rerankLimit: 2,
349
+ rerankFailureMode: "strict",
350
+ });
351
+ await store.create(item("a", "Billing invoice details."), context);
352
+ await store.create(item("b", "Billing invoice details."), context);
353
+ const results = await store.search({ query: "billing invoice" }, context);
354
+ expect(results.map(({ item: value }) => value.id)).toEqual(["b"]);
355
+ });
356
+ });
141
357
  //# sourceMappingURL=memory-store-policy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store-policy.test.js","sourceRoot":"","sources":["../../src/__tests__/memory-store-policy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-store-policy.test.js","sourceRoot":"","sources":["../../src/__tests__/memory-store-policy.test.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,11 @@ describe("project layout v2 agent definitions", () => {
47
47
  writeScope: "invocation-user",
48
48
  writableKinds: ["fact", "preference"],
49
49
  },
50
+ learning: {
51
+ mode: "suggest",
52
+ surfaces: ["chat", "channel"],
53
+ kinds: ["fact", "preference"],
54
+ },
50
55
  },
51
56
  allowedPaths: ["/workspace"],
52
57
  systemPrompt: "Build the requested product.",