@anuma/sdk 3.3.1 → 3.5.0

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.
@@ -18411,11 +18411,20 @@ async function getModel() {
18411
18411
  function sigmoid(x) {
18412
18412
  return 1 / (1 + Math.exp(-x));
18413
18413
  }
18414
+ function formatRerankDoc(content, dateMs) {
18415
+ if (dateMs === null || dateMs === void 0 || !Number.isFinite(dateMs)) return content;
18416
+ const d = new Date(dateMs);
18417
+ if (!Number.isFinite(d.getTime())) return content;
18418
+ const yyyy = d.getFullYear();
18419
+ const mm = String(d.getMonth() + 1).padStart(2, "0");
18420
+ const dd = String(d.getDate()).padStart(2, "0");
18421
+ return `[Date: ${yyyy}-${mm}-${dd}] ${content}`;
18422
+ }
18414
18423
  async function rerankPairs(query, items) {
18415
18424
  if (items.length === 0 || !query) return [];
18416
18425
  const { tokenizer, model } = await getModel();
18417
18426
  const queries = items.map(() => query);
18418
- const docs = items.map((i) => i.content);
18427
+ const docs = items.map((i) => formatRerankDoc(i.content, i.dateMs));
18419
18428
  const tokenize2 = tokenizer;
18420
18429
  const inputs = tokenize2(queries, { text_pair: docs, padding: true, truncation: true });
18421
18430
  const forward = model;
@@ -19256,6 +19265,48 @@ var init_graphTraversal = __esm({
19256
19265
  }
19257
19266
  });
19258
19267
 
19268
+ // src/lib/memory/observationTrend.ts
19269
+ function toMs(value) {
19270
+ return value instanceof Date ? value.getTime() : value;
19271
+ }
19272
+ function classifyObservationTrend(input, now = Date.now()) {
19273
+ const createdMs = toMs(input.createdAt);
19274
+ if (!Number.isFinite(createdMs) || !Number.isFinite(now)) return "stable";
19275
+ const lastMsRaw = input.lastObservedAt;
19276
+ const lastMs = lastMsRaw !== null && lastMsRaw !== void 0 && Number.isFinite(lastMsRaw) ? Math.max(createdMs, lastMsRaw) : createdMs;
19277
+ const proofs = Math.max(1, input.proofCount ?? 1);
19278
+ const ageDays2 = Math.max(0, (now - createdMs) / DAY_MS2);
19279
+ const daysSinceLast = Math.max(0, (now - lastMs) / DAY_MS2);
19280
+ if (daysSinceLast >= TREND_STALE_WINDOW_DAYS) return "stale";
19281
+ if (daysSinceLast >= TREND_RECENT_WINDOW_DAYS) return "weakening";
19282
+ if (ageDays2 <= TREND_RECENT_WINDOW_DAYS && proofs <= 2) return "new";
19283
+ if (proofs >= 3) return "strengthening";
19284
+ if (proofs >= 2 && ageDays2 > TREND_RECENT_WINDOW_DAYS) return "strengthening";
19285
+ return "stable";
19286
+ }
19287
+ function summarizeObservationTrends(inputs, now = Date.now()) {
19288
+ const counts = {
19289
+ new: 0,
19290
+ strengthening: 0,
19291
+ stable: 0,
19292
+ weakening: 0,
19293
+ stale: 0
19294
+ };
19295
+ for (const input of inputs) {
19296
+ counts[classifyObservationTrend(input, now)]++;
19297
+ }
19298
+ return counts;
19299
+ }
19300
+ var DAY_MS2, TREND_RECENT_WINDOW_DAYS, TREND_STALE_WINDOW_DAYS;
19301
+ var init_observationTrend = __esm({
19302
+ "src/lib/memory/observationTrend.ts"() {
19303
+ "use strict";
19304
+ DAY_MS2 = 1e3 * 60 * 60 * 24;
19305
+ TREND_RECENT_WINDOW_DAYS = 30;
19306
+ TREND_STALE_WINDOW_DAYS = 90;
19307
+ }
19308
+ });
19309
+
19259
19310
  // src/lib/memory/queryTemporal.ts
19260
19311
  function startOfDay(ts) {
19261
19312
  const d = new Date(ts);
@@ -19655,7 +19706,7 @@ async function recall(query, ctx, options = {}) {
19655
19706
  const fuseStart = nowMs();
19656
19707
  if (types.length === 1 || factResults.length === 0 || chunkResults.length === 0) {
19657
19708
  const memories2 = [
19658
- ...factResults.map(toFactMemory),
19709
+ ...factResults.map((r) => toFactMemory(r, options.now)),
19659
19710
  ...chunkResults.map(toChunkMemory)
19660
19711
  ];
19661
19712
  memories2.sort((a, b) => b.score - a.score);
@@ -19676,7 +19727,7 @@ async function recall(query, ctx, options = {}) {
19676
19727
  const fused = rrfFuse([factRanking, chunkRanking], options.rrfK);
19677
19728
  const byId = /* @__PURE__ */ new Map();
19678
19729
  for (const r of factResults) {
19679
- const m = toFactMemory(r);
19730
+ const m = toFactMemory(r, options.now);
19680
19731
  m.score = fused.get(`fact:${r.uniqueId}`) ?? 0;
19681
19732
  if (!m.scoreBreakdown) m.scoreBreakdown = {};
19682
19733
  m.scoreBreakdown.fused = r.similarity;
@@ -19725,7 +19776,10 @@ async function recall(query, ctx, options = {}) {
19725
19776
  ...vaultSize !== void 0 && { vaultSize }
19726
19777
  };
19727
19778
  }
19728
- function toFactMemory(r) {
19779
+ function toFactMemory(r, now) {
19780
+ const createdAt = r.createdAt ?? /* @__PURE__ */ new Date(0);
19781
+ const proofCount = r.proofCount ?? void 0;
19782
+ const lastObservedAt = r.lastObservedAt ?? null;
19729
19783
  return {
19730
19784
  id: r.uniqueId,
19731
19785
  kind: "fact",
@@ -19741,6 +19795,18 @@ function toFactMemory(r) {
19741
19795
  // (and UI reading them) carry the fact's type. Undefined when untyped.
19742
19796
  ...r.factType !== void 0 && { factType: r.factType },
19743
19797
  ...r.sourceChunkIds !== void 0 && r.sourceChunkIds !== null && { sourceChunkIds: r.sourceChunkIds },
19798
+ ...proofCount !== void 0 && proofCount !== null && { proofCount },
19799
+ ...lastObservedAt !== null && { lastObservedAt },
19800
+ // C2 — algorithmic trend from evidence timestamps (no LLM). Honor
19801
+ // RecallOptions.now so back-dated eval harnesses get consistent labels.
19802
+ observationTrend: classifyObservationTrend(
19803
+ {
19804
+ createdAt,
19805
+ lastObservedAt,
19806
+ proofCount
19807
+ },
19808
+ now ?? Date.now()
19809
+ ),
19744
19810
  // r.similarity from searchVaultMemoriesWithSize is the fused score
19745
19811
  // (cosine + BM25 + RRF + recency + proof) when useFusion=true (the
19746
19812
  // default) and pure cosine when useFusion=false. The breakdown
@@ -19749,7 +19815,7 @@ function toFactMemory(r) {
19749
19815
  content: r.content,
19750
19816
  score: r.similarity,
19751
19817
  scoreBreakdown: { fused: r.similarity },
19752
- createdAt: r.createdAt ?? /* @__PURE__ */ new Date(0),
19818
+ createdAt,
19753
19819
  updatedAt: r.updatedAt ?? /* @__PURE__ */ new Date(0)
19754
19820
  };
19755
19821
  }
@@ -19832,6 +19898,7 @@ var init_recall = __esm({
19832
19898
  init_embeddings();
19833
19899
  init_searchTool();
19834
19900
  init_graphTraversal();
19901
+ init_observationTrend();
19835
19902
  init_queryEntities();
19836
19903
  init_queryTemporal();
19837
19904
  init_rrf();
@@ -19847,6 +19914,23 @@ var init_recall = __esm({
19847
19914
  function normalizeEventTimeKind(kind) {
19848
19915
  return kind === "point" || kind === "range" || kind === "ongoing" ? kind : null;
19849
19916
  }
19917
+ function rerankDateMs(item) {
19918
+ if (item.eventTimeStart !== null && item.eventTimeStart !== void 0 && Number.isFinite(item.eventTimeStart) && item.eventTimeStart > 0) {
19919
+ return item.eventTimeStart;
19920
+ }
19921
+ if (item.lastObservedAt !== null && item.lastObservedAt !== void 0 && Number.isFinite(item.lastObservedAt) && item.lastObservedAt > 0) {
19922
+ return item.lastObservedAt;
19923
+ }
19924
+ const updatedMs = item.updatedAt?.getTime();
19925
+ if (updatedMs !== null && updatedMs !== void 0 && Number.isFinite(updatedMs) && updatedMs > 0) {
19926
+ return updatedMs;
19927
+ }
19928
+ const createdMs = item.createdAt?.getTime();
19929
+ if (createdMs !== null && createdMs !== void 0 && Number.isFinite(createdMs) && createdMs > 0) {
19930
+ return createdMs;
19931
+ }
19932
+ return void 0;
19933
+ }
19850
19934
  function supersessionDelta(olderScore, newerScore, boostFactor = SUPERSESSION_BOOST_FACTOR) {
19851
19935
  const gap = olderScore - newerScore;
19852
19936
  return gap * boostFactor;
@@ -20049,6 +20133,7 @@ async function rankFusedVaultMemoriesAsync(query, queryEmbedding, items, options
20049
20133
  }
20050
20134
  let combined;
20051
20135
  let tailSlice = [];
20136
+ const itemById = new Map(items.map((i) => [i.id, i]));
20052
20137
  if (options?.rerank) {
20053
20138
  const rerankTopN = options.rerankTopN ?? 30;
20054
20139
  const ceWeight = options.ceWeight ?? 0.1;
@@ -20056,7 +20141,12 @@ async function rankFusedVaultMemoriesAsync(query, queryEmbedding, items, options
20056
20141
  try {
20057
20142
  const reranked = await rerankPairs(
20058
20143
  query,
20059
- headSlice.map((r) => ({ id: r.uniqueId, content: r.content }))
20144
+ headSlice.map((r) => ({
20145
+ id: r.uniqueId,
20146
+ content: r.content,
20147
+ // C4: date-prefix the CE doc so temporal alignment influences rank.
20148
+ dateMs: rerankDateMs(itemById.get(r.uniqueId) ?? r)
20149
+ }))
20060
20150
  );
20061
20151
  tailSlice = v2Ranked.slice(rerankTopN);
20062
20152
  const v2ScoreById = new Map(headSlice.map((r) => [r.uniqueId, r.similarity]));
@@ -20091,11 +20181,11 @@ async function rankFusedVaultMemoriesAsync(query, queryEmbedding, items, options
20091
20181
  const fused = rrfFuse([headIds, headIds, ...sideLanesAsync], options?.rrfK);
20092
20182
  const fusedHead = combined.map((r) => ({ ...r, similarity: fused.get(r.uniqueId) ?? r.similarity })).sort((a, b) => b.similarity - a.similarity);
20093
20183
  const seen = new Set(combined.map((r) => r.uniqueId));
20094
- const itemById = new Map(items.map((i) => [i.id, i]));
20184
+ const itemById2 = new Map(items.map((i) => [i.id, i]));
20095
20185
  for (const lane of sideLanesAsync) {
20096
20186
  for (const id of lane) {
20097
20187
  if (seen.has(id)) continue;
20098
- const it = itemById.get(id);
20188
+ const it = itemById2.get(id);
20099
20189
  if (!it) continue;
20100
20190
  fusedHead.push({
20101
20191
  uniqueId: id,
@@ -20114,11 +20204,11 @@ async function rankFusedVaultMemoriesAsync(query, queryEmbedding, items, options
20114
20204
  if (options?.mmr) {
20115
20205
  const lambda = options.mmrLambda ?? 0.7;
20116
20206
  const mmrTopN = options.mmrTopN ?? 20;
20117
- const itemById = new Map(items.map((i) => [i.id, i]));
20207
+ const itemById2 = new Map(items.map((i) => [i.id, i]));
20118
20208
  const mmrCandidates = combined.slice(0, mmrTopN).map((r) => ({
20119
20209
  id: r.uniqueId,
20120
20210
  score: r.similarity,
20121
- embedding: itemById.get(r.uniqueId)?.embedding ?? [],
20211
+ embedding: itemById2.get(r.uniqueId)?.embedding ?? [],
20122
20212
  content: r.content
20123
20213
  }));
20124
20214
  const picked = applyMMR(mmrCandidates, limit, lambda);
@@ -20240,7 +20330,12 @@ async function rankComposite(originalQuery, originalQueryEmbedding, subQueries,
20240
20330
  try {
20241
20331
  const reranked = await rerankPairs(
20242
20332
  originalQuery,
20243
- headSlice.map((r) => ({ id: r.uniqueId, content: r.content }))
20333
+ headSlice.map((r) => ({
20334
+ id: r.uniqueId,
20335
+ content: r.content,
20336
+ // C4: date-prefix the CE doc so temporal alignment influences rank.
20337
+ dateMs: rerankDateMs(itemById.get(r.uniqueId) ?? r)
20338
+ }))
20244
20339
  );
20245
20340
  const ceById = new Map(reranked.map((r) => [r.id, r.score]));
20246
20341
  const head = headSlice.map((r) => ({
@@ -20427,6 +20522,7 @@ async function searchVaultMemoriesWithSize(query, vaultCtx, embeddingOptions, ca
20427
20522
  createdAt: m.createdAt,
20428
20523
  updatedAt: m.updatedAt,
20429
20524
  proofCount: m.proofCount,
20525
+ lastObservedAt: m.lastObservedAt,
20430
20526
  eventTimeStart: m.eventTimeStart,
20431
20527
  sourceChunkIds: m.sourceChunkIds,
20432
20528
  eventTimeEnd: m.eventTimeEnd,
@@ -20443,13 +20539,27 @@ async function searchVaultMemoriesWithSize(query, vaultCtx, embeddingOptions, ca
20443
20539
  );
20444
20540
  }
20445
20541
  }
20446
- const timestampById = new Map(
20447
- memories.map((m) => [m.uniqueId, { createdAt: m.createdAt, updatedAt: m.updatedAt }])
20542
+ const metaById = new Map(
20543
+ memories.map((m) => [
20544
+ m.uniqueId,
20545
+ {
20546
+ createdAt: m.createdAt,
20547
+ updatedAt: m.updatedAt,
20548
+ proofCount: m.proofCount,
20549
+ lastObservedAt: m.lastObservedAt
20550
+ }
20551
+ ])
20448
20552
  );
20449
20553
  const stampTimestamps = (out) => {
20450
20554
  const results2 = out.results.map((r) => {
20451
- const ts = timestampById.get(r.uniqueId);
20452
- return ts ? { ...r, createdAt: ts.createdAt, updatedAt: ts.updatedAt } : r;
20555
+ const meta = metaById.get(r.uniqueId);
20556
+ return meta ? {
20557
+ ...r,
20558
+ createdAt: meta.createdAt,
20559
+ updatedAt: meta.updatedAt,
20560
+ proofCount: meta.proofCount,
20561
+ lastObservedAt: meta.lastObservedAt
20562
+ } : r;
20453
20563
  });
20454
20564
  return {
20455
20565
  results: results2,
@@ -21562,6 +21672,8 @@ __export(index_exports, {
21562
21672
  TOOL_CATALOG: () => TOOL_CATALOG,
21563
21673
  TOPICS_EXTRACTION_VERSION: () => TOPICS_EXTRACTION_VERSION,
21564
21674
  TOPIC_EXTRACTION_BATCH_SIZE: () => TOPIC_EXTRACTION_BATCH_SIZE,
21675
+ TREND_RECENT_WINDOW_DAYS: () => TREND_RECENT_WINDOW_DAYS,
21676
+ TREND_STALE_WINDOW_DAYS: () => TREND_STALE_WINDOW_DAYS,
21565
21677
  TextProcessor: () => TextProcessor,
21566
21678
  UserPreference: () => UserPreference,
21567
21679
  VAULT_SIZE_HOP_CAP: () => VAULT_SIZE_HOP_CAP,
@@ -21584,6 +21696,7 @@ __export(index_exports, {
21584
21696
  classifyCryptoPriceBatch: () => classifyCryptoPriceBatch,
21585
21697
  classifyDecay: () => classifyDecay,
21586
21698
  classifyInjectionCandidates: () => classifyInjectionCandidates,
21699
+ classifyObservationTrend: () => classifyObservationTrend,
21587
21700
  classifyStockPrice: () => classifyStockPrice,
21588
21701
  classifyStockPriceBatch: () => classifyStockPriceBatch,
21589
21702
  classifyWeather: () => classifyWeather,
@@ -21763,6 +21876,7 @@ __export(index_exports, {
21763
21876
  stampTopicsExtractedAtOp: () => stampTopicsExtractedAtOp,
21764
21877
  streamCancelPath: () => streamCancelPath,
21765
21878
  streamReplayPath: () => streamReplayPath,
21879
+ summarizeObservationTrends: () => summarizeObservationTrends,
21766
21880
  summaryToSystemMessage: () => summaryToSystemMessage,
21767
21881
  supersedeVaultMemoryOp: () => supersedeVaultMemoryOp,
21768
21882
  synthesizeProfile: () => synthesizeProfile,
@@ -27062,12 +27176,12 @@ function createChunkVectorCache(maxSize = DEFAULT_CHUNK_CACHE_SIZE) {
27062
27176
 
27063
27177
  // src/lib/memory/decay.ts
27064
27178
  init_logger();
27065
- var DAY_MS2 = 24 * 60 * 60 * 1e3;
27066
- var SHORT_TTL_MS = 30 * DAY_MS2;
27067
- var MEDIUM_TTL_MS = 180 * DAY_MS2;
27179
+ var DAY_MS3 = 24 * 60 * 60 * 1e3;
27180
+ var SHORT_TTL_MS = 30 * DAY_MS3;
27181
+ var MEDIUM_TTL_MS = 180 * DAY_MS3;
27068
27182
  var NEVER_TTL_MS = Number.POSITIVE_INFINITY;
27069
- var HARD_DELETE_WINDOW_MS = 30 * DAY_MS2;
27070
- var PAST_EVENT_GRACE_MS = 7 * DAY_MS2;
27183
+ var HARD_DELETE_WINDOW_MS = 30 * DAY_MS3;
27184
+ var PAST_EVENT_GRACE_MS = 7 * DAY_MS3;
27071
27185
  var DEFAULT_DECAY_POLICY = {
27072
27186
  ttlByType: {
27073
27187
  identity: NEVER_TTL_MS,
@@ -27327,6 +27441,7 @@ function createDecaySweeper(options) {
27327
27441
 
27328
27442
  // src/lib/memory/index.ts
27329
27443
  init_graphTraversal();
27444
+ init_observationTrend();
27330
27445
  init_recall();
27331
27446
 
27332
27447
  // src/lib/memory/recallTool.ts
@@ -27693,6 +27808,7 @@ init_logger();
27693
27808
  init_constants();
27694
27809
  init_embeddings();
27695
27810
  init_vector();
27811
+ init_observationTrend();
27696
27812
  var DEFAULT_SYNTHESIS_MODEL = "inclusionai/ling-2.6-flash";
27697
27813
  var DEFAULT_FACET_RECALL_LIMIT = 20;
27698
27814
  var DEFAULT_FACET_MAX_TOKENS = 512;
@@ -27778,6 +27894,13 @@ async function synthesizeProfile(ctx, options = {}) {
27778
27894
  includeSuperseded: true
27779
27895
  });
27780
27896
  const watermark = computeVaultWatermark(memories);
27897
+ const observationTrends = summarizeObservationTrends(
27898
+ memories.filter((m) => !m.isDeleted && m.supersededBy === null).map((m) => ({
27899
+ createdAt: m.createdAt,
27900
+ lastObservedAt: m.lastObservedAt,
27901
+ proofCount: m.proofCount
27902
+ }))
27903
+ );
27781
27904
  const presentIds = new Set(memories.map((m) => m.uniqueId));
27782
27905
  const hasStaleSections = previous?.sections.some((s) => s.stale);
27783
27906
  const citesMissingFact = previous?.sections.some(
@@ -27785,10 +27908,14 @@ async function synthesizeProfile(ctx, options = {}) {
27785
27908
  );
27786
27909
  if (previous && previous.vaultWatermark === watermark && !hasStaleSections && !citesMissingFact) {
27787
27910
  const sameOrder = previous.sections.length === facets.length && facets.every((f, i) => previous.sections[i]?.key === f.key);
27788
- if (sameOrder) return previous;
27911
+ if (sameOrder) {
27912
+ if (trendsEqual(previous.observationTrends, observationTrends)) return previous;
27913
+ return { ...previous, observationTrends };
27914
+ }
27789
27915
  return {
27790
27916
  ...previous,
27791
- sections: facets.map((f) => previous.sections.find((s) => s.key === f.key))
27917
+ sections: facets.map((f) => previous.sections.find((s) => s.key === f.key)),
27918
+ observationTrends
27792
27919
  };
27793
27920
  }
27794
27921
  const staleKeys = await computeStaleFacetKeys(ctx, memories, facets, previous, watermark);
@@ -27821,6 +27948,7 @@ async function synthesizeProfile(ctx, options = {}) {
27821
27948
  sections,
27822
27949
  vaultWatermark: watermark,
27823
27950
  config,
27951
+ observationTrends,
27824
27952
  generatedAt: Date.now()
27825
27953
  };
27826
27954
  }
@@ -27831,6 +27959,10 @@ function configMatches(a, b) {
27831
27959
  function facetsSignature(facets) {
27832
27960
  return facets.map((f) => JSON.stringify([f.key, f.label, f.query, f.guidance])).sort().join("\n");
27833
27961
  }
27962
+ function trendsEqual(a, b) {
27963
+ if (!a) return false;
27964
+ return a.new === b.new && a.strengthening === b.strengthening && a.stable === b.stable && a.weakening === b.weakening && a.stale === b.stale;
27965
+ }
27834
27966
  function changeTime(m) {
27835
27967
  return Math.max(m.updatedAt.getTime(), m.supersededAt ?? 0, m.lastObservedAt ?? 0);
27836
27968
  }
@@ -33946,6 +34078,8 @@ function buildSystemPrompt(ctx, options) {
33946
34078
  TOOL_CATALOG,
33947
34079
  TOPICS_EXTRACTION_VERSION,
33948
34080
  TOPIC_EXTRACTION_BATCH_SIZE,
34081
+ TREND_RECENT_WINDOW_DAYS,
34082
+ TREND_STALE_WINDOW_DAYS,
33949
34083
  TextProcessor,
33950
34084
  UserPreference,
33951
34085
  VAULT_SIZE_HOP_CAP,
@@ -33968,6 +34102,7 @@ function buildSystemPrompt(ctx, options) {
33968
34102
  classifyCryptoPriceBatch,
33969
34103
  classifyDecay,
33970
34104
  classifyInjectionCandidates,
34105
+ classifyObservationTrend,
33971
34106
  classifyStockPrice,
33972
34107
  classifyStockPriceBatch,
33973
34108
  classifyWeather,
@@ -34147,6 +34282,7 @@ function buildSystemPrompt(ctx, options) {
34147
34282
  stampTopicsExtractedAtOp,
34148
34283
  streamCancelPath,
34149
34284
  streamReplayPath,
34285
+ summarizeObservationTrends,
34150
34286
  summaryToSystemMessage,
34151
34287
  supersedeVaultMemoryOp,
34152
34288
  synthesizeProfile,
@@ -4790,6 +4790,10 @@ interface VaultSearchResult {
4790
4790
  * real timestamps. Omitted when an item lacks the field upstream. */
4791
4791
  createdAt?: Date;
4792
4792
  updatedAt?: Date;
4793
+ /** Times this fact has been re-observed — for C2 trend labels. */
4794
+ proofCount?: number | null;
4795
+ /** C3 re-observation watermark (Unix ms) — for C2 trends + C4 CE dates. */
4796
+ lastObservedAt?: number | null;
4793
4797
  /** W6 temporal-lane anchors carried through to downstream `RankedMemory`
4794
4798
  * so the recall executor can surface dates to the answer model without
4795
4799
  * a second per-fact DB lookup + decrypt. Unix ms; null when the fact
@@ -4831,6 +4835,55 @@ declare function searchVaultMemories(query: string, vaultCtx: VaultMemoryOperati
4831
4835
  */
4832
4836
  declare function createMemoryVaultSearchTool(vaultCtx: VaultMemoryOperationsContext, embeddingOptions: EmbeddingOptions, cache: VaultEmbeddingCache, searchOptions?: MemoryVaultSearchOptions): ToolConfig;
4833
4837
 
4838
+ /**
4839
+ * C2 — Observation trend labels.
4840
+ *
4841
+ * Algorithmic (no LLM) classification of how a vault fact's evidence has
4842
+ * been evolving, derived from the C3 re-observation watermark
4843
+ * (`lastObservedAt`), `proofCount`, and `createdAt` over 30/90-day windows.
4844
+ *
4845
+ * We do not store a full observation-timestamp series — only first-seen,
4846
+ * last-seen, and count — so density is approximated from that triple.
4847
+ * Good enough for profile signals ("interests trending up") and vault
4848
+ * hygiene badges; not a substitute for an observations tier (C5).
4849
+ */
4850
+ /** Recent window — observations inside this count as "active". */
4851
+ declare const TREND_RECENT_WINDOW_DAYS = 30;
4852
+ /** Beyond this since last observation → stale. */
4853
+ declare const TREND_STALE_WINDOW_DAYS = 90;
4854
+ /**
4855
+ * How a fact's evidence has been evolving.
4856
+ *
4857
+ * - `new` — first seen inside the recent window, few proofs yet.
4858
+ * - `strengthening` — established fact re-observed recently (rising density).
4859
+ * - `stable` — known for a while, still observed inside the stale window.
4860
+ * - `weakening` — quiet for ≥30 and <90 days after having been observed.
4861
+ * - `stale` — no observation in ≥90 days.
4862
+ */
4863
+ type ObservationTrend = "new" | "strengthening" | "stable" | "weakening" | "stale";
4864
+ interface ObservationTrendInput {
4865
+ createdAt: Date | number;
4866
+ /**
4867
+ * C3 re-observation watermark (Unix ms). When null/undefined, the fact
4868
+ * has never been merged-into since the column landed — treat `createdAt`
4869
+ * as last-seen.
4870
+ */
4871
+ lastObservedAt?: number | null;
4872
+ /** Times this fact has been retained/merged. Defaults to 1. */
4873
+ proofCount?: number | null;
4874
+ }
4875
+ /**
4876
+ * Classify a vault fact's observation trend from its evidence timestamps.
4877
+ *
4878
+ * Pure + deterministic. Pass `now` for back-dated eval harnesses.
4879
+ */
4880
+ declare function classifyObservationTrend(input: ObservationTrendInput, now?: number): ObservationTrend;
4881
+ /**
4882
+ * Summarize trend counts over a set of facts — handy for profile synthesis
4883
+ * ("N interests strengthening") without another LLM pass.
4884
+ */
4885
+ declare function summarizeObservationTrends(inputs: readonly ObservationTrendInput[], now?: number): Record<ObservationTrend, number>;
4886
+
4834
4887
  /**
4835
4888
  * Unified memory layer types — the Recall / Retain API.
4836
4889
  *
@@ -4880,6 +4933,16 @@ interface RankedMemory {
4880
4933
  proofCount?: number;
4881
4934
  source?: string;
4882
4935
  folderId?: string | null;
4936
+ /**
4937
+ * C3 re-observation watermark (Unix ms). Null/undefined when the fact
4938
+ * has never been merge-reinforced since the column landed.
4939
+ */
4940
+ lastObservedAt?: number | null;
4941
+ /**
4942
+ * C2 observation-trend label derived from createdAt / lastObservedAt /
4943
+ * proofCount over 30/90-day windows. Fact-only; omitted for chunks.
4944
+ */
4945
+ observationTrend?: ObservationTrend;
4883
4946
  /**
4884
4947
  * Anchored event-time for the fact (the date the underlying event
4885
4948
  * occurred, not the write time). When present, the recall executor
@@ -7918,6 +7981,12 @@ interface ProfileDoc {
7918
7981
  vaultWatermark: number;
7919
7982
  /** The config that produced this doc — see {@link ProfileConfigFingerprint}. */
7920
7983
  config: ProfileConfigFingerprint;
7984
+ /**
7985
+ * C2 — counts of observation-trend labels over live vault facts at
7986
+ * synthesis time. Lets People Nearby surface "interests trending up"
7987
+ * without another LLM pass. Recomputed every synthesis (not delta-cached).
7988
+ */
7989
+ observationTrends: Record<ObservationTrend, number>;
7921
7990
  /** Unix ms this doc was produced. */
7922
7991
  generatedAt: number;
7923
7992
  }
@@ -9053,4 +9122,4 @@ declare function sanitizeQuotes(s: string): string;
9053
9122
  declare function renderTemplate(value: string | null | undefined, template: string): string | null;
9054
9123
  declare function buildSystemPrompt(ctx: PromptContext, options?: BuildPromptOptions): BuildPromptResult;
9055
9124
 
9056
- export { type AnalyzeStyleOptions, type AnalyzeStyleResult, type ApiResponse, type ApiType, type AutoExecutedToolResult, type AutoExtractMessage, type AutoExtractor, type Budget, type BuildPromptOptions, type BuildPromptResult, type CachedChunkVectors, type CachedServerTools, type ChatCompletionUsage, type ChatRole, type ChunkSearchResult, type ChunkVectorCache, type ChunkingOptions, type ConnectorGuidance, type ConnectorGuidanceInput, type ConsolidationFallbackReason, Conversation, ConversationSummary, type CreateAutoExtractorOptions, type CreateConversationOptions, type CreateDecaySweeperOptions, type CreateMediaOptions, type CreateMessageOptions, type CreateModelPreferenceOptions, type CreateProjectOptions, type CreateUserPreferenceOptions, type CreateVaultFolderOptions, type CreateVaultMemoryOptions, type CryptoPriceClassification, type CryptoPricePreProcessorOptions, DEFAULT_ANALYSIS_PROMPT, DEFAULT_ANALYZE_AFTER_MESSAGES, DEFAULT_CACHE_EXPIRATION_MS, DEFAULT_CHUNK_CACHE_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, DEFAULT_DECAY_POLICY, DEFAULT_DOCUMENT_PATTERN, DEFAULT_EXCLUDED_SERVER_TOOLS, DEFAULT_MAX_CLASSIFIER_CALLS_PER_SWEEP, DEFAULT_MAX_INPUT_MESSAGES, DEFAULT_MAX_PROFILE_LENGTH, DEFAULT_MIN_CHUNK_SIZE, DEFAULT_MIN_MESSAGES, DEFAULT_PERSONALITY_SETTINGS, DEFAULT_PROFILE_FACETS, DEFAULT_PROMPT_TEMPLATES, DEFAULT_REFRESH_EVERY_MESSAGES, DEFAULT_SERVER_TOOLS_MATCH_OPTIONS, DEFAULT_SUMMARY_MIN_WINDOW_MESSAGES, DEFAULT_SUMMARY_MODEL, DEFAULT_SUMMARY_TOKEN_THRESHOLD, DEFAULT_VAULT_CACHE_SIZE, DatabaseManager, type DatabaseManagerLogger, type DatabaseManagerOptions, type DecayCandidateRaw, type DecayClassifier, type DecayInput, type DecayPolicy, type DecaySweepResult, type DecaySweeper, type DecayVerdict, ENTITY_FANOUT, type EmbeddedWalletSignerFn, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, type FactType, type FileMetadata, type FileProcessor, type FileTypeQuery, type FileWithData, type FlushResult, type GetConversationsPageOptions, type GraphTraversalOptions, HARD_DELETE_WINDOW_MS, INFERENCE_ID_HEADER, type InjectionClassifierOptions, type InjectionReason, type LazyStoredConversation, type LlmDecayClassifierOptions, type LlmNeighborRefinerOptions, type LlmTokenUsage, MAX_HOPS, MAX_MESSAGES_PER_SUMMARIZATION, MEDIUM_TTL_MS, Media, type MediaDimensions, type MediaFilterOptions, type MediaMetadata, type MediaOperationsContext, type MediaRole, type MediaType, type MemoriesNeedingTopicExtraction, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, type MemoryExtractedEvent, type MemoryKind, type MemoryQuarantinedEvent, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, Message, type MessageChunk, type MessageFeedback, type ModelCallEndEvent, type ModelCallStartEvent, ModelPreference, NEVER_TTL_MS, NODE_BUDGET, type NeighborRefiner, type NowSource, type OperationExecutor, PAST_EVENT_GRACE_MS, PROFILE_DOC_VERSION, type ParsedServerToolsResponse, PdfProcessor, type PersonalitySettings, type PersonalitySliders, type PersonalityStyle, type PgClientLike, type PgPoolLike, type PlatformStorage, type PortalLlmAuth, PostgreSQLAdapter, type PostgreSQLAdapterOptions, type PreprocessingOptions, type PreprocessingResult, type ProcessedFileResult, ProcessorRegistry, type ProfileConfigFingerprint, type ProfileDoc, type ProfileFacet, type ProfileFacetKey, type ProfileSection, type ProfileUpdate, Project, type ProjectOperationsContext, type PromptContext, type PromptPreProcessor, type PromptPreProcessorContext, type PromptSection, type PromptTemplates, type QuarantinedMemoryInfo, type QueueEncryptionContext, QueueManager, type QueueStatus, type QueuedOperation, type QueuedOperationType, RECALL_MAX_LIMIT, RECALL_TOOL_NAME, type RankedMemory, type RecallContext, type RecallDegradation, type RecallDiagnostics, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type ReflectOptions, type ReflectResult, RerankerUnavailableError, type ResumeStreamOptions, type ResumeStreamResult, type RetainAction, type RetainContext, type RetainOptions, type RetainResult, type RetainSource, type RunEndEvent, type RunErrorEvent, type RunHooks, type RunStartEvent, type RunToolLoopOptions, type RunToolLoopResult, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, STREAM_RESUMABLE_HEADER, type ScoreBreakdown, type ScreenResult, type ScreenedCandidate, type SearchSource, type SelectServerToolsForPromptOptions, type ServerTool, type ServerToolCallEvent, type ServerToolsFilterFunction, type ServerToolsOptions, type ServerToolsResponse, type SettingsStorageOperationsContext, type SignMessageFn, type StepFinishEvent, type StockPriceClassification, type StockPricePreProcessorOptions, type StorageOperationsContext, type StoredConversation, type StoredConversationSummary, type StoredFileWithContext, type StoredMedia, type StoredMessage, type StoredMessageWithSimilarity, type StoredModelPreference, type StoredProject, type StoredUserPreference, type StoredVaultFolder, type StoredVaultMemory, StreamExpiredError, type StreamMetaEvent, type StreamResumeHandle, type StreamSmoothingConfig, type StreamingTransport, type StreamingTransportOptions, type StreamingTransportResult, type StyleAnalysisSchedule, type SynthesizeProfileOptions, TOOL_CATALOG, TOPICS_EXTRACTION_VERSION, TOPIC_EXTRACTION_BATCH_SIZE, type TextChunk, TextProcessor, type ToolConfig, type ToolExecutor, type ToolMatchOptions, type ToolMatchResult, type ToolSet, type ToolUseEndEvent, type ToolUseStartEvent, type TopicExtractOptions, type TopicExtractionInput, type TopicExtractionRunResult, type TurnCompleteEvent, type TurnSkippedEvent, type UpdateMediaOptions, type UpdateModelPreferenceOptions, type UpdateProjectOptions, type UpdateUserPreferenceOptions, type UpdateVaultFolderOptions, type UpdateVaultMemoryOptions, UserPreference, type UserPreferencesStorageOperationsContext, VAULT_SIZE_HOP_CAP, type VaultEmbeddingCache, VaultFolder, type VaultFolderOperationsContext, VaultMemory, type VaultMemoryOperationsContext, type VaultSaveOperation, type VaultSearchResult, WalletPoller, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, WordProcessor, ZipProcessor, type ZipProcessorOptions, activatedToolSetNames, analyzeStyle, archiveVaultMemoryOp, buildConnectorGuidance, buildDeniedToolsRider, buildSystemPrompt, capHopsForDensity, chunkAndEmbedAllMessages, chunkAndEmbedMessage, chunkText, classifyCryptoPrice, classifyCryptoPriceBatch, classifyDecay, classifyInjectionCandidates, classifyStockPrice, classifyStockPriceBatch, classifyWeather, classifyWeatherBatch, classifyWebSearch, classifyWebSearchBatch, cleanupConversationSummary, clearAllEncryptionKeys, clearAllEncryptionState, clearAllKeyPairs, clearEncryptionKey, clearKeyPair, clearLazyTitleCache, clearMessagesOp, clearServerToolsCache, composeHooks, createAutoExtractor, createChunkVectorCache, createConversationOp, createCryptoPricePreProcessor, createDecaySweeper, createLlmDecayClassifier, createLlmNeighborRefiner, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageOp, createPlatformCursorStore, createProjectOp, createRecallTool, createServerToolsFilter, createStockPricePreProcessor, createSummaryContext, createVaultEmbeddingCache, createVaultFolderOp, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteModelPreferenceOp, deleteProjectOp, deleteUserPreferenceOp, deleteVaultFolderOp, deleteVaultMemoryOp, eagerEmbedContent, embedAllMessages, embedMessage, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, ensureDefaultFoldersOp, estimateMessagesTokens, estimateTokens, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, findMatchingTools, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllFilesOp, getAllVaultFoldersOp, getAllVaultMemoriesOp, getAllVaultMemoryContentsOp, getAudioOp, getCachedServerTools, getConversationOp, getConversationSummaryOp, getConversationsByProjectLazyOp, getConversationsByProjectOp, getConversationsLazyOp, getConversationsOp, getConversationsPageOp, getDecayCandidatesRawOp, getDocumentsOp, getEncryptionKey, getImagesOp, getMediaByConversationOp, getMediaByIdOp, getMediaByIdsOp, getMediaByMessageOp, getMediaByModelOp, getMediaByRoleOp, getMediaBySourceUrlOp, getMediaByTypeOp, getMediaCountOp, getMediaCountsByTypeOp, getMediaOp, getMediaTypeFromMime, getMemoriesNeedingTopicExtractionOp, getMessageOp, getMessagesOp, getModelPreferenceOp, getProjectConversationCountOp, getProjectConversationsOp, getProjectOp, getProjectsOp, getRecentMediaOp, getServerTools, getSupportedFileTypes, getToolsChecksum, getUnfiledVaultMemoriesOp, getUserPreferenceOp, getUserUploadedMediaOp, getVaultFolderMemoryCountOp, getVaultMemoryOp, getVideosOp, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasKeyPair, injectionSignatureCatalog, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, moveMemoriesToFolderOp, onKeyAvailable, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, recall, reflect, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, selectServerToolsForPrompt, serverPlatformStorage, setModelPreferenceOp, setUserPreferenceOp, shouldAnalyzeStyle, shouldChunkMessage, shouldRefreshTools, splitMessagesAtThreshold, stampTopicsExtractedAtOp, streamCancelPath, streamReplayPath, summaryToSystemMessage, supersedeVaultMemoryOp, synthesizeProfile, toolSetSystemPrompts, traverseGraphLane, ttlForType, updateConversationProjectOp, updateConversationTitleOp, updateMediaMessageIdBatchOp, updateMediaOp, updateMessageChunksOp, updateMessageEmbeddingOp, updateMessageErrorOp, updateMessageFeedbackOp, updateModelsOp, updatePersonalityOp, updateProfileOp, updateProjectNameOp, updateProjectOp, updateVaultFolderContextOp, updateVaultFolderOp, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, upsertConversationSummaryOp, upsertMessageOp };
9125
+ export { type AnalyzeStyleOptions, type AnalyzeStyleResult, type ApiResponse, type ApiType, type AutoExecutedToolResult, type AutoExtractMessage, type AutoExtractor, type Budget, type BuildPromptOptions, type BuildPromptResult, type CachedChunkVectors, type CachedServerTools, type ChatCompletionUsage, type ChatRole, type ChunkSearchResult, type ChunkVectorCache, type ChunkingOptions, type ConnectorGuidance, type ConnectorGuidanceInput, type ConsolidationFallbackReason, Conversation, ConversationSummary, type CreateAutoExtractorOptions, type CreateConversationOptions, type CreateDecaySweeperOptions, type CreateMediaOptions, type CreateMessageOptions, type CreateModelPreferenceOptions, type CreateProjectOptions, type CreateUserPreferenceOptions, type CreateVaultFolderOptions, type CreateVaultMemoryOptions, type CryptoPriceClassification, type CryptoPricePreProcessorOptions, DEFAULT_ANALYSIS_PROMPT, DEFAULT_ANALYZE_AFTER_MESSAGES, DEFAULT_CACHE_EXPIRATION_MS, DEFAULT_CHUNK_CACHE_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, DEFAULT_DECAY_POLICY, DEFAULT_DOCUMENT_PATTERN, DEFAULT_EXCLUDED_SERVER_TOOLS, DEFAULT_MAX_CLASSIFIER_CALLS_PER_SWEEP, DEFAULT_MAX_INPUT_MESSAGES, DEFAULT_MAX_PROFILE_LENGTH, DEFAULT_MIN_CHUNK_SIZE, DEFAULT_MIN_MESSAGES, DEFAULT_PERSONALITY_SETTINGS, DEFAULT_PROFILE_FACETS, DEFAULT_PROMPT_TEMPLATES, DEFAULT_REFRESH_EVERY_MESSAGES, DEFAULT_SERVER_TOOLS_MATCH_OPTIONS, DEFAULT_SUMMARY_MIN_WINDOW_MESSAGES, DEFAULT_SUMMARY_MODEL, DEFAULT_SUMMARY_TOKEN_THRESHOLD, DEFAULT_VAULT_CACHE_SIZE, DatabaseManager, type DatabaseManagerLogger, type DatabaseManagerOptions, type DecayCandidateRaw, type DecayClassifier, type DecayInput, type DecayPolicy, type DecaySweepResult, type DecaySweeper, type DecayVerdict, ENTITY_FANOUT, type EmbeddedWalletSignerFn, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, type FactType, type FileMetadata, type FileProcessor, type FileTypeQuery, type FileWithData, type FlushResult, type GetConversationsPageOptions, type GraphTraversalOptions, HARD_DELETE_WINDOW_MS, INFERENCE_ID_HEADER, type InjectionClassifierOptions, type InjectionReason, type LazyStoredConversation, type LlmDecayClassifierOptions, type LlmNeighborRefinerOptions, type LlmTokenUsage, MAX_HOPS, MAX_MESSAGES_PER_SUMMARIZATION, MEDIUM_TTL_MS, Media, type MediaDimensions, type MediaFilterOptions, type MediaMetadata, type MediaOperationsContext, type MediaRole, type MediaType, type MemoriesNeedingTopicExtraction, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, type MemoryExtractedEvent, type MemoryKind, type MemoryQuarantinedEvent, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, Message, type MessageChunk, type MessageFeedback, type ModelCallEndEvent, type ModelCallStartEvent, ModelPreference, NEVER_TTL_MS, NODE_BUDGET, type NeighborRefiner, type NowSource, type ObservationTrend, type ObservationTrendInput, type OperationExecutor, PAST_EVENT_GRACE_MS, PROFILE_DOC_VERSION, type ParsedServerToolsResponse, PdfProcessor, type PersonalitySettings, type PersonalitySliders, type PersonalityStyle, type PgClientLike, type PgPoolLike, type PlatformStorage, type PortalLlmAuth, PostgreSQLAdapter, type PostgreSQLAdapterOptions, type PreprocessingOptions, type PreprocessingResult, type ProcessedFileResult, ProcessorRegistry, type ProfileConfigFingerprint, type ProfileDoc, type ProfileFacet, type ProfileFacetKey, type ProfileSection, type ProfileUpdate, Project, type ProjectOperationsContext, type PromptContext, type PromptPreProcessor, type PromptPreProcessorContext, type PromptSection, type PromptTemplates, type QuarantinedMemoryInfo, type QueueEncryptionContext, QueueManager, type QueueStatus, type QueuedOperation, type QueuedOperationType, RECALL_MAX_LIMIT, RECALL_TOOL_NAME, type RankedMemory, type RecallContext, type RecallDegradation, type RecallDiagnostics, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type ReflectOptions, type ReflectResult, RerankerUnavailableError, type ResumeStreamOptions, type ResumeStreamResult, type RetainAction, type RetainContext, type RetainOptions, type RetainResult, type RetainSource, type RunEndEvent, type RunErrorEvent, type RunHooks, type RunStartEvent, type RunToolLoopOptions, type RunToolLoopResult, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, STREAM_RESUMABLE_HEADER, type ScoreBreakdown, type ScreenResult, type ScreenedCandidate, type SearchSource, type SelectServerToolsForPromptOptions, type ServerTool, type ServerToolCallEvent, type ServerToolsFilterFunction, type ServerToolsOptions, type ServerToolsResponse, type SettingsStorageOperationsContext, type SignMessageFn, type StepFinishEvent, type StockPriceClassification, type StockPricePreProcessorOptions, type StorageOperationsContext, type StoredConversation, type StoredConversationSummary, type StoredFileWithContext, type StoredMedia, type StoredMessage, type StoredMessageWithSimilarity, type StoredModelPreference, type StoredProject, type StoredUserPreference, type StoredVaultFolder, type StoredVaultMemory, StreamExpiredError, type StreamMetaEvent, type StreamResumeHandle, type StreamSmoothingConfig, type StreamingTransport, type StreamingTransportOptions, type StreamingTransportResult, type StyleAnalysisSchedule, type SynthesizeProfileOptions, TOOL_CATALOG, TOPICS_EXTRACTION_VERSION, TOPIC_EXTRACTION_BATCH_SIZE, TREND_RECENT_WINDOW_DAYS, TREND_STALE_WINDOW_DAYS, type TextChunk, TextProcessor, type ToolConfig, type ToolExecutor, type ToolMatchOptions, type ToolMatchResult, type ToolSet, type ToolUseEndEvent, type ToolUseStartEvent, type TopicExtractOptions, type TopicExtractionInput, type TopicExtractionRunResult, type TurnCompleteEvent, type TurnSkippedEvent, type UpdateMediaOptions, type UpdateModelPreferenceOptions, type UpdateProjectOptions, type UpdateUserPreferenceOptions, type UpdateVaultFolderOptions, type UpdateVaultMemoryOptions, UserPreference, type UserPreferencesStorageOperationsContext, VAULT_SIZE_HOP_CAP, type VaultEmbeddingCache, VaultFolder, type VaultFolderOperationsContext, VaultMemory, type VaultMemoryOperationsContext, type VaultSaveOperation, type VaultSearchResult, WalletPoller, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, WordProcessor, ZipProcessor, type ZipProcessorOptions, activatedToolSetNames, analyzeStyle, archiveVaultMemoryOp, buildConnectorGuidance, buildDeniedToolsRider, buildSystemPrompt, capHopsForDensity, chunkAndEmbedAllMessages, chunkAndEmbedMessage, chunkText, classifyCryptoPrice, classifyCryptoPriceBatch, classifyDecay, classifyInjectionCandidates, classifyObservationTrend, classifyStockPrice, classifyStockPriceBatch, classifyWeather, classifyWeatherBatch, classifyWebSearch, classifyWebSearchBatch, cleanupConversationSummary, clearAllEncryptionKeys, clearAllEncryptionState, clearAllKeyPairs, clearEncryptionKey, clearKeyPair, clearLazyTitleCache, clearMessagesOp, clearServerToolsCache, composeHooks, createAutoExtractor, createChunkVectorCache, createConversationOp, createCryptoPricePreProcessor, createDecaySweeper, createLlmDecayClassifier, createLlmNeighborRefiner, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageOp, createPlatformCursorStore, createProjectOp, createRecallTool, createServerToolsFilter, createStockPricePreProcessor, createSummaryContext, createVaultEmbeddingCache, createVaultFolderOp, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteModelPreferenceOp, deleteProjectOp, deleteUserPreferenceOp, deleteVaultFolderOp, deleteVaultMemoryOp, eagerEmbedContent, embedAllMessages, embedMessage, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, ensureDefaultFoldersOp, estimateMessagesTokens, estimateTokens, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, findMatchingTools, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllFilesOp, getAllVaultFoldersOp, getAllVaultMemoriesOp, getAllVaultMemoryContentsOp, getAudioOp, getCachedServerTools, getConversationOp, getConversationSummaryOp, getConversationsByProjectLazyOp, getConversationsByProjectOp, getConversationsLazyOp, getConversationsOp, getConversationsPageOp, getDecayCandidatesRawOp, getDocumentsOp, getEncryptionKey, getImagesOp, getMediaByConversationOp, getMediaByIdOp, getMediaByIdsOp, getMediaByMessageOp, getMediaByModelOp, getMediaByRoleOp, getMediaBySourceUrlOp, getMediaByTypeOp, getMediaCountOp, getMediaCountsByTypeOp, getMediaOp, getMediaTypeFromMime, getMemoriesNeedingTopicExtractionOp, getMessageOp, getMessagesOp, getModelPreferenceOp, getProjectConversationCountOp, getProjectConversationsOp, getProjectOp, getProjectsOp, getRecentMediaOp, getServerTools, getSupportedFileTypes, getToolsChecksum, getUnfiledVaultMemoriesOp, getUserPreferenceOp, getUserUploadedMediaOp, getVaultFolderMemoryCountOp, getVaultMemoryOp, getVideosOp, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasKeyPair, injectionSignatureCatalog, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, moveMemoriesToFolderOp, onKeyAvailable, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, recall, reflect, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, selectServerToolsForPrompt, serverPlatformStorage, setModelPreferenceOp, setUserPreferenceOp, shouldAnalyzeStyle, shouldChunkMessage, shouldRefreshTools, splitMessagesAtThreshold, stampTopicsExtractedAtOp, streamCancelPath, streamReplayPath, summarizeObservationTrends, summaryToSystemMessage, supersedeVaultMemoryOp, synthesizeProfile, toolSetSystemPrompts, traverseGraphLane, ttlForType, updateConversationProjectOp, updateConversationTitleOp, updateMediaMessageIdBatchOp, updateMediaOp, updateMessageChunksOp, updateMessageEmbeddingOp, updateMessageErrorOp, updateMessageFeedbackOp, updateModelsOp, updatePersonalityOp, updateProfileOp, updateProjectNameOp, updateProjectOp, updateVaultFolderContextOp, updateVaultFolderOp, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, upsertConversationSummaryOp, upsertMessageOp };