@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
@@ -4,9 +4,13 @@ import { normalizeMemoryItem } from "./item.js";
4
4
  import { assertMemoryStatusTransition, isMemoryItemExpired, isMemoryItemRetrievable, } from "./lifecycle.js";
5
5
  import { evaluateMemoryWrite } from "./policy.js";
6
6
  import { rankMemoryItems, selectMemoryResultsWithinBudget } from "./ranking.js";
7
+ import { assertTextEmbeddingResult, cosineSimilarity, fuseHybridRankings, normalizeTextEmbeddingIdentity, rerankTextCandidates, textEmbeddingIdentitiesEqual, } from "../semantic-retrieval.js";
7
8
  import { canAccessMemoryScope, memoryScopeKey, normalizeMemoryScope, } from "./scope.js";
8
9
  import { MemoryAuthorizationError, MemoryConflictError, MemoryPolicyError, } from "./store-errors.js";
9
10
  import { MEMORY_KINDS, MEMORY_STATUSES, } from "./types.js";
11
+ function isAbortError(error) {
12
+ return error instanceof Error && error.name === "AbortError";
13
+ }
10
14
  const memoryKinds = new Set(MEMORY_KINDS);
11
15
  const memoryStatuses = new Set(MEMORY_STATUSES);
12
16
  const usageTypes = new Set([
@@ -60,6 +64,15 @@ function normalizeLimit(value) {
60
64
  }
61
65
  return value;
62
66
  }
67
+ function normalizeSemanticInteger(value, fallback, path, minimum, maximum) {
68
+ const resolved = value ?? fallback;
69
+ if (!Number.isSafeInteger(resolved)
70
+ || resolved < minimum
71
+ || resolved > maximum) {
72
+ throw new MemoryContractError(`Memory ${path} must be an integer between ${minimum} and ${maximum}`, "invalid_item", path);
73
+ }
74
+ return resolved;
75
+ }
63
76
  function normalizeListCursor(value) {
64
77
  if (!value || typeof value !== "object" || Array.isArray(value)) {
65
78
  throw new MemoryContractError("Memory list cursor must be an object", "invalid_item", "after");
@@ -118,11 +131,80 @@ function cloneUsage(event) {
118
131
  export class InMemoryMemoryItemStore {
119
132
  writePolicy;
120
133
  namespaces = new Map();
121
- constructor(writePolicy = {}, snapshot) {
134
+ vectors = new Map();
135
+ embeddingProvider;
136
+ embeddingFailureMode;
137
+ reranker;
138
+ rerankLimit;
139
+ rerankTimeoutMs;
140
+ rerankFailureMode;
141
+ constructor(writePolicy = {}, snapshot, semantic = {}) {
122
142
  this.writePolicy = writePolicy;
143
+ this.embeddingProvider = semantic.embeddingProvider;
144
+ this.embeddingFailureMode = semantic.embeddingFailureMode ?? "fallback";
145
+ this.reranker = semantic.reranker;
146
+ this.rerankLimit = normalizeSemanticInteger(semantic.rerankLimit, 0, "rerankLimit", 0, 1_000);
147
+ this.rerankTimeoutMs = normalizeSemanticInteger(semantic.rerankTimeoutMs, 1_500, "rerankTimeoutMs", 1, 120_000);
148
+ this.rerankFailureMode = semantic.rerankFailureMode ?? "fallback";
149
+ if (this.rerankLimit > 0 && !this.reranker) {
150
+ throw new MemoryContractError("Memory rerankLimit requires a reranker", "invalid_item", "rerankLimit");
151
+ }
152
+ if (this.rerankFailureMode !== "fallback"
153
+ && this.rerankFailureMode !== "strict") {
154
+ throw new MemoryContractError("Memory rerankFailureMode must be fallback or strict", "invalid_item", "rerankFailureMode");
155
+ }
123
156
  if (snapshot)
124
157
  this.replaceSnapshot(snapshot);
125
158
  }
159
+ vectorKey(namespace, itemId) {
160
+ return JSON.stringify([namespace, itemId]);
161
+ }
162
+ async embedItem(item) {
163
+ if (!this.embeddingProvider)
164
+ return undefined;
165
+ try {
166
+ const identity = normalizeTextEmbeddingIdentity(await this.embeddingProvider.identity());
167
+ const result = assertTextEmbeddingResult(await this.embeddingProvider.embed({
168
+ texts: [`${item.summary ?? ""}\n${item.content}`],
169
+ task: "document",
170
+ }), { expectedCount: 1, expectedIdentity: identity });
171
+ return Object.freeze({
172
+ values: result.vectors[0],
173
+ identity: result.identity,
174
+ updatedAt: item.updatedAt,
175
+ });
176
+ }
177
+ catch (error) {
178
+ if (isAbortError(error))
179
+ throw error;
180
+ if (this.embeddingFailureMode === "strict")
181
+ throw error;
182
+ return undefined;
183
+ }
184
+ }
185
+ async rebuildSemanticIndex() {
186
+ if (!this.embeddingProvider) {
187
+ return Object.freeze({ indexed: 0, skipped: 0 });
188
+ }
189
+ const candidates = [...this.namespaces.entries()].flatMap(([namespace, state]) => ([...state.items.values()]
190
+ .filter((item) => item.status === "active")
191
+ .map((item) => ({ namespace, item }))));
192
+ let indexed = 0;
193
+ let skipped = 0;
194
+ for (const { namespace, item } of candidates) {
195
+ const key = this.vectorKey(namespace, item.id);
196
+ this.vectors.delete(key);
197
+ const vector = await this.embedItem(item);
198
+ const current = this.namespaces.get(namespace)?.items.get(item.id);
199
+ if (current !== item || current.status !== "active" || !vector) {
200
+ skipped += 1;
201
+ continue;
202
+ }
203
+ this.vectors.set(key, vector);
204
+ indexed += 1;
205
+ }
206
+ return Object.freeze({ indexed, skipped });
207
+ }
126
208
  state(namespace) {
127
209
  let state = this.namespaces.get(namespace);
128
210
  if (!state) {
@@ -161,7 +243,14 @@ export class InMemoryMemoryItemStore {
161
243
  if (state.items.has(item.id)) {
162
244
  throw new MemoryConflictError(`Memory item "${item.id}" already exists in this namespace`);
163
245
  }
246
+ const vector = await this.embedItem(item);
247
+ if (state.items.has(item.id)) {
248
+ throw new MemoryConflictError(`Memory item "${item.id}" was created during semantic indexing`);
249
+ }
164
250
  state.items.set(item.id, item);
251
+ if (vector) {
252
+ this.vectors.set(this.vectorKey(normalizedContext.namespace, item.id), vector);
253
+ }
165
254
  return cloneItem(item);
166
255
  }
167
256
  async get(id, context, options = {}) {
@@ -266,7 +355,18 @@ export class InMemoryMemoryItemStore {
266
355
  if (state.items.get(current.id) !== current) {
267
356
  throw new MemoryConflictError(`Memory item "${current.id}" changed during update`);
268
357
  }
358
+ const vector = candidate.status === "active"
359
+ ? await this.embedItem(candidate)
360
+ : undefined;
361
+ if (state.items.get(current.id) !== current) {
362
+ throw new MemoryConflictError(`Memory item "${current.id}" changed during semantic indexing`);
363
+ }
269
364
  state.items.set(candidate.id, candidate);
365
+ const vectorKey = this.vectorKey(normalized.namespace, candidate.id);
366
+ if (vector)
367
+ this.vectors.set(vectorKey, vector);
368
+ else
369
+ this.vectors.delete(vectorKey);
270
370
  return cloneItem(candidate);
271
371
  }
272
372
  async supersede(id, replacementValue, context) {
@@ -293,6 +393,10 @@ export class InMemoryMemoryItemStore {
293
393
  if (state.items.has(replacement.id)) {
294
394
  throw new MemoryConflictError(`Memory item "${replacement.id}" was created during supersede`);
295
395
  }
396
+ const replacementVector = await this.embedItem(replacement);
397
+ if (state.items.get(current.id) !== current || state.items.has(replacement.id)) {
398
+ throw new MemoryConflictError("Memory changed during semantic indexing");
399
+ }
296
400
  const updatedAt = timestamp(normalized.now ?? new Date(), "now");
297
401
  const superseded = normalizeMemoryItem({
298
402
  ...current,
@@ -301,6 +405,10 @@ export class InMemoryMemoryItemStore {
301
405
  });
302
406
  state.items.set(current.id, superseded);
303
407
  state.items.set(replacement.id, replacement);
408
+ this.vectors.delete(this.vectorKey(normalized.namespace, current.id));
409
+ if (replacementVector) {
410
+ this.vectors.set(this.vectorKey(normalized.namespace, replacement.id), replacementVector);
411
+ }
304
412
  return {
305
413
  superseded: cloneItem(superseded),
306
414
  replacement: cloneItem(replacement),
@@ -318,18 +426,114 @@ export class InMemoryMemoryItemStore {
318
426
  updatedAt: timestamp(normalized.now ?? new Date(), "now"),
319
427
  });
320
428
  this.state(normalized.namespace).items.set(deleted.id, deleted);
429
+ this.vectors.delete(this.vectorKey(normalized.namespace, deleted.id));
321
430
  return true;
322
431
  }
323
432
  async search(query, context) {
433
+ const normalizedContext = normalizeContext(context);
324
434
  const candidates = await this.list({
325
435
  statuses: ["active"],
326
436
  kinds: query.kinds,
327
437
  scope: query.scope,
328
438
  now: query.now,
329
439
  limit: 10_000,
330
- }, context);
331
- const ranked = rankMemoryItems(candidates.filter((item) => isMemoryItemRetrievable(item, query.now ?? context.now ?? new Date())), query.query);
332
- return selectMemoryResultsWithinBudget(ranked, {
440
+ }, normalizedContext);
441
+ const visible = candidates.filter((item) => isMemoryItemRetrievable(item, query.now ?? context.now ?? new Date()));
442
+ const eligibleVectors = visible.flatMap((item) => {
443
+ const vector = this.vectors.get(this.vectorKey(normalizedContext.namespace, item.id));
444
+ return vector?.updatedAt === item.updatedAt ? [[item, vector]] : [];
445
+ });
446
+ const lexical = rankMemoryItems(visible, query.query);
447
+ let semantic = [];
448
+ let fallbackReason = this.embeddingProvider && eligibleVectors.length === 0
449
+ ? "semantic_index_unavailable"
450
+ : undefined;
451
+ if (this.embeddingProvider && eligibleVectors.length > 0) {
452
+ try {
453
+ const identity = normalizeTextEmbeddingIdentity(await this.embeddingProvider.identity());
454
+ const embedded = assertTextEmbeddingResult(await this.embeddingProvider.embed({
455
+ texts: [query.query],
456
+ task: "query",
457
+ ...(query.signal ? { signal: query.signal } : {}),
458
+ }), { expectedCount: 1, expectedIdentity: identity });
459
+ semantic = eligibleVectors.flatMap(([item, vector]) => {
460
+ if (!textEmbeddingIdentitiesEqual(vector.identity, embedded.identity))
461
+ return [];
462
+ const score = cosineSimilarity(embedded.vectors[0], vector.values);
463
+ return score > 0 ? [{ id: item.id, score }] : [];
464
+ });
465
+ }
466
+ catch (error) {
467
+ if (isAbortError(error))
468
+ throw error;
469
+ if (this.embeddingFailureMode === "strict")
470
+ throw error;
471
+ fallbackReason = "embedding_unavailable";
472
+ }
473
+ }
474
+ const lexicalById = new Map(lexical.map((result) => [result.item.id, result]));
475
+ const itemById = new Map(visible.map((item) => [item.id, item]));
476
+ const fused = fuseHybridRankings({
477
+ lexical: lexical.map((result) => ({ id: result.item.id, score: result.score })),
478
+ semantic,
479
+ });
480
+ let ranked = fused;
481
+ if (this.reranker && this.rerankLimit > 0 && fused.length > 0) {
482
+ const count = Math.min(this.rerankLimit, fused.length);
483
+ const outcome = await rerankTextCandidates({
484
+ query: query.query,
485
+ candidates: fused.slice(0, count).map(({ id }) => {
486
+ const item = itemById.get(id);
487
+ return {
488
+ id,
489
+ text: `${item.summary ?? ""}\n${item.content}`,
490
+ };
491
+ }),
492
+ limit: count,
493
+ timeoutMs: this.rerankTimeoutMs,
494
+ failureMode: this.rerankFailureMode,
495
+ ...(query.signal ? { signal: query.signal } : {}),
496
+ }, this.reranker);
497
+ const fusedById = new Map(fused.map((result) => [result.id, result]));
498
+ const reranked = outcome.ranking.map(({ candidate, score }) => {
499
+ const original = fusedById.get(candidate.id);
500
+ return Object.freeze({
501
+ ...original,
502
+ ...(score === undefined ? {} : {
503
+ score,
504
+ scores: Object.freeze({ ...original.scores, rerank: score }),
505
+ }),
506
+ });
507
+ });
508
+ ranked = Object.freeze([...reranked, ...fused.slice(count)]);
509
+ if (outcome.fallbackReason)
510
+ fallbackReason = outcome.fallbackReason;
511
+ }
512
+ const resultNow = query.now ?? context.now ?? new Date();
513
+ const currentState = this.namespaces.get(normalizedContext.namespace);
514
+ const final = ranked.flatMap((result) => {
515
+ const lexicalResult = lexicalById.get(result.id);
516
+ const candidate = itemById.get(result.id);
517
+ const current = currentState?.items.get(result.id);
518
+ if (!current
519
+ || current.updatedAt !== candidate.updatedAt
520
+ || !canAccessMemoryScope(current.scope, normalizedContext.access)
521
+ || !isMemoryItemRetrievable(current, resultNow)) {
522
+ return [];
523
+ }
524
+ return [Object.freeze({
525
+ item: cloneItem(current),
526
+ score: result.score,
527
+ matchedTerms: lexicalResult?.matchedTerms ?? Object.freeze([]),
528
+ estimatedTokens: lexicalResult?.estimatedTokens
529
+ ?? Math.max(1, Math.ceil((current.content.length + (current.summary?.length ?? 0)) / 4)),
530
+ scores: Object.freeze(result.scores),
531
+ ranks: Object.freeze(result.ranks),
532
+ retrievalMode: result.mode,
533
+ ...(fallbackReason ? { fallbackReason } : {}),
534
+ })];
535
+ });
536
+ return selectMemoryResultsWithinBudget(final, {
333
537
  tokenBudget: query.tokenBudget ?? Number.MAX_SAFE_INTEGER,
334
538
  maxResults: query.maxResults ?? 20,
335
539
  });
@@ -426,6 +630,7 @@ export class InMemoryMemoryItemStore {
426
630
  next.set(namespace, { items, usage });
427
631
  }
428
632
  this.namespaces.clear();
633
+ this.vectors.clear();
429
634
  for (const [namespace, state] of next) {
430
635
  this.namespaces.set(namespace, state);
431
636
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../../src/memory/in-memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../../src/memory/in-memory-store.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,16 @@ export { detectSensitiveMemoryContent, evaluateMemoryWrite, } from "./policy.js"
10
10
  export type { MemoryPolicyViolation, MemorySensitiveContentFinding, MemorySensitiveContentHook, MemoryWriteDecision, MemoryWritePolicy, } from "./policy.js";
11
11
  export { estimateMemoryItemTokens, rankMemoryItems, selectMemoryResultsWithinBudget, } from "./ranking.js";
12
12
  export { InMemoryMemoryItemStore } from "./in-memory-store.js";
13
- export { MEMORY_TOOL_WRITE_SCOPES, normalizeAgentMemorySettings, } from "./tool-settings.js";
14
- export type { AgentMemorySettings, AgentMemoryToolSettings, MemoryToolWriteScope, NormalizedAgentMemorySettings, NormalizedAgentMemoryToolSettings, } from "./tool-settings.js";
13
+ export { DEFAULT_MEMORY_LEARNING_KINDS, MEMORY_LEARNING_MODES, MEMORY_LEARNING_SURFACES, MEMORY_TOOL_WRITE_SCOPES, normalizeAgentMemorySettings, } from "./tool-settings.js";
14
+ export type { AgentMemoryLearningSettings, AgentMemorySettings, AgentMemoryToolSettings, MemoryLearningMode, MemoryLearningSurface, MemoryToolWriteScope, NormalizedAgentMemorySettings, NormalizedAgentMemoryToolSettings, } from "./tool-settings.js";
15
15
  export { MEMORY_EXTRACTION_AUDIT_TYPES, MEMORY_EXTRACTION_PROPOSAL_ACTIONS, MEMORY_EXTRACTION_STATUSES, createMemoryExtractionCandidate, createMemoryExtractionDecision, memoryExtractionCandidateIdentity, normalizeMemoryExtractionAuditEvent, normalizeMemoryExtractionCandidate, } from "./extraction.js";
16
+ export { DEFAULT_AUTOMATIC_MEMORY_CONFIDENCE, MAX_MEMORY_LEARNING_CANDIDATES, MAX_MEMORY_LEARNING_TURN_CHARACTERS, DeterministicMemoryConsolidationPolicy, MemoryLearningService, applyMemoryExtractionCandidate, evaluateMemoryTurnEligibility, } from "./learning.js";
17
+ export type { DeterministicMemoryConsolidationPolicyOptions, MemoryConsolidationDecision, MemoryConsolidationInput, MemoryConsolidationPolicy, MemoryConsolidationResolution, MemoryExtractor, MemoryExtractorCandidate, MemoryExtractorInput, MemoryExtractorResult, MemoryLearningProcessInput, MemoryLearningProcessResult, MemoryLearningServiceOptions, MemoryLearningVisibleTurn, MemoryTurnEligibility, MemoryTurnEligibilityInput, MemoryTurnIneligibilityReason, } from "./learning.js";
16
18
  export type { CreateMemoryExtractionCandidateInput, MemoryExtractionApplyInput, MemoryExtractionAuditEvent, MemoryExtractionAuditType, MemoryExtractionCandidate, MemoryExtractionCandidateFactoryOptions, MemoryExtractionCandidateStore, MemoryExtractionDecision, MemoryExtractionDecisionInput, MemoryExtractionListQuery, MemoryExtractionMetadataValue, MemoryExtractionProposal, MemoryExtractionProposalAction, MemoryExtractionProposeResult, MemoryExtractionReviewer, MemoryExtractionSnapshotNamespace, MemoryExtractionSource, MemoryExtractionStatus, MemoryExtractionStoreContext, MemoryExtractionStoreSnapshot, } from "./extraction.js";
17
19
  export { InMemoryMemoryExtractionStore, } from "./in-memory-extraction-store.js";
18
20
  export type { InMemoryMemoryExtractionStoreOptions, } from "./in-memory-extraction-store.js";
19
21
  export { MEMORY_KINDS, MEMORY_PROVENANCE_SOURCES, MEMORY_SCOPE_KINDS, MEMORY_STATUSES, } from "./types.js";
20
22
  export type { CreateMemoryItemInput, MemoryDedupeInput, MemoryItem, MemoryItemFactoryOptions, MemoryKind, MemoryProvenance, MemoryProvenanceActor, MemoryProvenanceSource, MemoryScope, MemoryScopeAccess, MemoryScopeKind, MemoryStatus, RenderMemoryItemsOptions, } from "./types.js";
21
- export type { MemoryGetOptions, MemoryItemPatch, MemoryItemStore, MemoryItemStoreSnapshot, MemoryListCursor, MemoryListPage, MemoryListPageQuery, MemoryListQuery, MemorySearchQuery, MemorySearchResult, MemoryStoreContext, MemoryStoreSnapshotNamespace, MemorySupersedeResult, MemoryUsageEvent, MemoryUsageEventType, MemoryWriteSurface, } from "./store-types.js";
23
+ export type { MemoryGetOptions, MemoryItemPatch, MemoryItemStore, MemoryItemStoreSnapshot, MemoryListCursor, MemoryListPage, MemoryListPageQuery, MemoryListQuery, MemorySearchQuery, MemorySearchResult, MemorySemanticRetrievalOptions, MemoryStoreContext, MemoryStoreSnapshotNamespace, MemorySupersedeResult, MemoryUsageEvent, MemoryUsageEventType, MemoryWriteSurface, } from "./store-types.js";
24
+ export type { TextEmbeddingIdentity, TextEmbeddingProvider, TextEmbeddingRequest, TextEmbeddingResult, TextRerankCandidate, TextRerankOutcome, TextRerankRequest, TextRerankResult, TextRerankScore, TextRerankedCandidate, TextReranker, } from "../semantic-retrieval.js";
22
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,oCAAoC,EACpC,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,uCAAuC,EACvC,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,8BAA8B,EAC9B,6BAA6B,EAC7B,wBAAwB,EACxB,iCAAiC,EACjC,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,oCAAoC,GACrC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ export { MemoryAuthorizationError, MemoryConflictError, MemoryPolicyError, } fro
8
8
  export { detectSensitiveMemoryContent, evaluateMemoryWrite, } from "./policy.js";
9
9
  export { estimateMemoryItemTokens, rankMemoryItems, selectMemoryResultsWithinBudget, } from "./ranking.js";
10
10
  export { InMemoryMemoryItemStore } from "./in-memory-store.js";
11
- export { MEMORY_TOOL_WRITE_SCOPES, normalizeAgentMemorySettings, } from "./tool-settings.js";
11
+ export { DEFAULT_MEMORY_LEARNING_KINDS, MEMORY_LEARNING_MODES, MEMORY_LEARNING_SURFACES, MEMORY_TOOL_WRITE_SCOPES, normalizeAgentMemorySettings, } from "./tool-settings.js";
12
12
  export { MEMORY_EXTRACTION_AUDIT_TYPES, MEMORY_EXTRACTION_PROPOSAL_ACTIONS, MEMORY_EXTRACTION_STATUSES, createMemoryExtractionCandidate, createMemoryExtractionDecision, memoryExtractionCandidateIdentity, normalizeMemoryExtractionAuditEvent, normalizeMemoryExtractionCandidate, } from "./extraction.js";
13
+ export { DEFAULT_AUTOMATIC_MEMORY_CONFIDENCE, MAX_MEMORY_LEARNING_CANDIDATES, MAX_MEMORY_LEARNING_TURN_CHARACTERS, DeterministicMemoryConsolidationPolicy, MemoryLearningService, applyMemoryExtractionCandidate, evaluateMemoryTurnEligibility, } from "./learning.js";
13
14
  export { InMemoryMemoryExtractionStore, } from "./in-memory-extraction-store.js";
14
15
  export { MEMORY_KINDS, MEMORY_PROVENANCE_SOURCES, MEMORY_SCOPE_KINDS, MEMORY_STATUSES, } from "./types.js";
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AAuBzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mCAAmC,EACnC,8BAA8B,EAC9B,mCAAmC,EACnC,sCAAsC,EACtC,qBAAqB,EACrB,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AAyCvB,OAAO,EACL,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,113 @@
1
+ import type { CanonicalTurnCommitted } from "../canonical-turn.js";
2
+ import type { MemoryExtractionCandidate, MemoryExtractionCandidateStore, MemoryExtractionProposal, MemoryExtractionStoreContext } from "./extraction.js";
3
+ import type { MemoryItemStore, MemoryStoreContext } from "./store-types.js";
4
+ import type { MemoryKind, MemoryScope } from "./types.js";
5
+ import type { MemoryLearningMode } from "./tool-settings.js";
6
+ export declare const MAX_MEMORY_LEARNING_CANDIDATES = 20;
7
+ export declare const MAX_MEMORY_LEARNING_TURN_CHARACTERS = 64000;
8
+ export declare const DEFAULT_AUTOMATIC_MEMORY_CONFIDENCE = 0.9;
9
+ export type MemoryTurnIneligibilityReason = "learning_off" | "surface_disabled" | "turn_not_succeeded" | "missing_external_user" | "missing_visible_messages";
10
+ export interface MemoryTurnEligibilityInput {
11
+ readonly turn: CanonicalTurnCommitted;
12
+ readonly mode: MemoryLearningMode;
13
+ readonly surfaces: readonly ("chat" | "channel")[];
14
+ }
15
+ export type MemoryTurnEligibility = {
16
+ readonly eligible: true;
17
+ readonly scope: MemoryScope;
18
+ } | {
19
+ readonly eligible: false;
20
+ readonly reason: MemoryTurnIneligibilityReason;
21
+ };
22
+ export declare function evaluateMemoryTurnEligibility(input: MemoryTurnEligibilityInput): MemoryTurnEligibility;
23
+ export interface MemoryLearningVisibleTurn {
24
+ readonly turn: CanonicalTurnCommitted;
25
+ readonly userContent: string;
26
+ readonly assistantContent: string;
27
+ }
28
+ export interface MemoryExtractorCandidate {
29
+ readonly kind: MemoryKind;
30
+ readonly content: string;
31
+ readonly summary?: string;
32
+ readonly confidence?: number;
33
+ /** Initial release accepts only facts evidenced by the visible user message. */
34
+ readonly evidence: "user";
35
+ readonly existingMemoryId?: string;
36
+ }
37
+ export interface MemoryExtractorResult {
38
+ readonly candidates: readonly MemoryExtractorCandidate[];
39
+ readonly usage?: {
40
+ readonly inputTokens?: number;
41
+ readonly outputTokens?: number;
42
+ readonly totalTokens?: number;
43
+ };
44
+ readonly providerMetadata?: Readonly<Record<string, unknown>>;
45
+ }
46
+ export interface MemoryExtractorInput extends MemoryLearningVisibleTurn {
47
+ readonly allowedKinds: readonly MemoryKind[];
48
+ readonly scope: MemoryScope;
49
+ readonly signal?: AbortSignal;
50
+ }
51
+ export interface MemoryExtractor {
52
+ readonly revision: string;
53
+ extract(input: MemoryExtractorInput): Promise<MemoryExtractorResult>;
54
+ }
55
+ export type MemoryConsolidationDecision = "pending" | "apply" | "reject";
56
+ export interface MemoryConsolidationResolution {
57
+ readonly proposal: MemoryExtractionProposal;
58
+ readonly decision: MemoryConsolidationDecision;
59
+ readonly reason?: string;
60
+ }
61
+ export interface MemoryConsolidationInput {
62
+ readonly mode: Exclude<MemoryLearningMode, "off">;
63
+ readonly candidate: MemoryExtractorCandidate;
64
+ readonly scope: MemoryScope;
65
+ readonly observedAt: string;
66
+ readonly itemContext: MemoryStoreContext;
67
+ }
68
+ export interface MemoryConsolidationPolicy {
69
+ readonly revision: string;
70
+ resolve(input: MemoryConsolidationInput): Promise<MemoryConsolidationResolution>;
71
+ }
72
+ export interface DeterministicMemoryConsolidationPolicyOptions {
73
+ readonly itemStore: MemoryItemStore;
74
+ readonly automaticConfidence?: number;
75
+ readonly revision?: string;
76
+ }
77
+ export declare class DeterministicMemoryConsolidationPolicy implements MemoryConsolidationPolicy {
78
+ private readonly options;
79
+ readonly revision: string;
80
+ private readonly threshold;
81
+ constructor(options: DeterministicMemoryConsolidationPolicyOptions);
82
+ resolve(input: MemoryConsolidationInput): Promise<MemoryConsolidationResolution>;
83
+ }
84
+ export interface MemoryLearningProcessInput extends MemoryLearningVisibleTurn {
85
+ readonly mode: MemoryLearningMode;
86
+ readonly surfaces: readonly ("chat" | "channel")[];
87
+ readonly kinds: readonly MemoryKind[];
88
+ readonly candidateContext: MemoryExtractionStoreContext;
89
+ readonly itemContext: MemoryStoreContext;
90
+ readonly signal?: AbortSignal;
91
+ }
92
+ export interface MemoryLearningProcessResult {
93
+ readonly eligible: boolean;
94
+ readonly reason?: MemoryTurnIneligibilityReason;
95
+ readonly candidates: readonly MemoryExtractionCandidate[];
96
+ readonly appliedMemoryIds: readonly string[];
97
+ readonly usage?: MemoryExtractorResult["usage"];
98
+ readonly providerMetadata?: MemoryExtractorResult["providerMetadata"];
99
+ }
100
+ export interface MemoryLearningServiceOptions {
101
+ readonly extractor: MemoryExtractor;
102
+ readonly policy: MemoryConsolidationPolicy;
103
+ readonly candidateStore: MemoryExtractionCandidateStore;
104
+ readonly itemStore: MemoryItemStore;
105
+ readonly now?: () => Date | string;
106
+ }
107
+ export declare class MemoryLearningService {
108
+ private readonly options;
109
+ constructor(options: MemoryLearningServiceOptions);
110
+ process(input: MemoryLearningProcessInput): Promise<MemoryLearningProcessResult>;
111
+ }
112
+ export declare function applyMemoryExtractionCandidate(candidate: MemoryExtractionCandidate, itemStore: MemoryItemStore, context: MemoryStoreContext, now?: () => Date | string): Promise<string>;
113
+ //# sourceMappingURL=learning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/memory/learning.ts"],"names":[],"mappings":"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"}