@anuma/sdk 6.9.0 → 6.11.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.
@@ -6791,9 +6791,9 @@ function recencyMultiplier(updatedAt, opts = {}) {
6791
6791
  const updatedMs = updatedAt.getTime();
6792
6792
  if (!Number.isFinite(updatedMs)) return noDate;
6793
6793
  const now = opts.now ?? /* @__PURE__ */ new Date();
6794
- const nowMs2 = now.getTime();
6795
- if (!Number.isFinite(nowMs2)) return noDate;
6796
- const ageDays2 = Math.max(0, (nowMs2 - updatedMs) / DAY_MS2);
6794
+ const nowMs3 = now.getTime();
6795
+ if (!Number.isFinite(nowMs3)) return noDate;
6796
+ const ageDays2 = Math.max(0, (nowMs3 - updatedMs) / DAY_MS2);
6797
6797
  const perYearDecay = opts.perYearDecay ?? DEFAULT_PER_YEAR_DECAY;
6798
6798
  const floor = opts.floor ?? DEFAULT_FLOOR;
6799
6799
  const decay = perYearDecay * (ageDays2 / 365);
@@ -7847,6 +7847,9 @@ async function recall(query, ctx, options = {}) {
7847
7847
  const chunkResults = [];
7848
7848
  let vaultSize;
7849
7849
  let didRerank = false;
7850
+ let rerankMs = 0;
7851
+ let queryEmbedMs = 0;
7852
+ let vaultRowsEmbedded;
7850
7853
  let hadV2Head = false;
7851
7854
  let embeddingsUnavailable = false;
7852
7855
  let chunkEmbedFailed = false;
@@ -7871,12 +7874,15 @@ async function recall(query, ctx, options = {}) {
7871
7874
  ...vaultSize !== void 0 && { vaultSize },
7872
7875
  ...decryptLastRan !== void 0 && { decryptLast: decryptLastRan },
7873
7876
  ...vaultRowsDecrypted !== void 0 && { vaultRowsDecrypted },
7877
+ ...vaultRowsEmbedded !== void 0 && { vaultRowsEmbedded },
7874
7878
  factCount: factResults.length,
7875
7879
  chunkCount: chunkResults.length,
7876
7880
  timings: {
7877
7881
  total: nowMs() - t0,
7878
7882
  prep: prepMs,
7879
7883
  factLane: factLaneMs,
7884
+ rerank: rerankMs,
7885
+ queryEmbed: queryEmbedMs,
7880
7886
  chunkLane: chunkLaneMs,
7881
7887
  fuse: fuseMs
7882
7888
  },
@@ -7940,6 +7946,9 @@ async function recall(query, ctx, options = {}) {
7940
7946
  results,
7941
7947
  vaultSize: size,
7942
7948
  reranked,
7949
+ rerankMs: factRerankMs,
7950
+ queryEmbedMs: factQueryEmbedMs,
7951
+ rowsEmbedded: factRowsEmbedded,
7943
7952
  hadV2Head: v2Head,
7944
7953
  embeddingsUnavailable: factEmbeddingsUnavailable,
7945
7954
  rankedOnCosine: factRankedOnCosine,
@@ -7998,6 +8007,9 @@ async function recall(query, ctx, options = {}) {
7998
8007
  );
7999
8008
  vaultSize = size;
8000
8009
  didRerank = reranked;
8010
+ rerankMs = factRerankMs;
8011
+ queryEmbedMs = factQueryEmbedMs;
8012
+ vaultRowsEmbedded = factRowsEmbedded;
8001
8013
  hadV2Head = v2Head;
8002
8014
  if (factEmbeddingsUnavailable) embeddingsUnavailable = true;
8003
8015
  factLaneRankedOnCosine = factRankedOnCosine;
@@ -8462,6 +8474,7 @@ async function rankFusedVaultMemoriesAsync(query, queryEmbedding, items, options
8462
8474
  const rerankTopN = options.rerankTopN ?? 30;
8463
8475
  const ceWeight = options.ceWeight ?? 0.1;
8464
8476
  const headSlice = v2Ranked.slice(0, rerankTopN);
8477
+ const ceStart = nowMs2();
8465
8478
  try {
8466
8479
  const reranked = await rerankPairs(
8467
8480
  query,
@@ -8489,6 +8502,8 @@ async function rankFusedVaultMemoriesAsync(query, queryEmbedding, items, options
8489
8502
  getLogger().warn("[memory/search] cross-encoder rerank failed; using V2 ranking", err);
8490
8503
  }
8491
8504
  combined = v2Ranked;
8505
+ } finally {
8506
+ if (options.rerankStats) options.rerankStats.ms += nowMs2() - ceStart;
8492
8507
  }
8493
8508
  } else {
8494
8509
  combined = v2Ranked;
@@ -8655,6 +8670,7 @@ async function rankComposite(originalQuery, originalQueryEmbedding, subQueries,
8655
8670
  const ceWeight = options.ceWeight ?? 0.1;
8656
8671
  const headSlice = combined.slice(0, rerankTopN);
8657
8672
  const tailSlice = combined.slice(rerankTopN);
8673
+ const ceStart = nowMs2();
8658
8674
  try {
8659
8675
  const reranked = await rerankPairs(
8660
8676
  originalQuery,
@@ -8682,6 +8698,8 @@ async function rankComposite(originalQuery, originalQueryEmbedding, subQueries,
8682
8698
  err
8683
8699
  );
8684
8700
  }
8701
+ } finally {
8702
+ if (options.rerankStats) options.rerankStats.ms += nowMs2() - ceStart;
8685
8703
  }
8686
8704
  }
8687
8705
  if (options?.mmr) {
@@ -8808,11 +8826,13 @@ async function buildProjectedCorpus(query, vaultCtx, embeddingOptions, cache, qu
8808
8826
  rowsDecrypted: 0
8809
8827
  };
8810
8828
  }
8829
+ const queryEmbedStart = nowMs2();
8811
8830
  const queryEmbedding = await embedQueryOrDegrade(
8812
8831
  query,
8813
8832
  embeddingOptions,
8814
8833
  opts.onEmbeddingDegraded
8815
8834
  );
8835
+ if (opts.embedStats) opts.embedStats.queryMs += nowMs2() - queryEmbedStart;
8816
8836
  const embeddingsDegraded = queryEmbedding.length === 0;
8817
8837
  const currentModel = embeddingOptions.model ?? DEFAULT_API_EMBEDDING_MODEL;
8818
8838
  const vectored = [];
@@ -8865,6 +8885,7 @@ async function buildProjectedCorpus(query, vaultCtx, embeddingOptions, cache, qu
8865
8885
  const laneRows = laneFetched.filter((m) => !isEncrypted(m.content));
8866
8886
  if (laneRows.length > 0) {
8867
8887
  let laneVecs;
8888
+ if (opts.embedStats) opts.embedStats.rowsEmbedded += laneRows.length;
8868
8889
  try {
8869
8890
  laneVecs = await generateEmbeddings(
8870
8891
  laneRows.map((m) => m.content),
@@ -8943,6 +8964,10 @@ async function buildProjectedCorpus(query, vaultCtx, embeddingOptions, cache, qu
8943
8964
  async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache, searchOptions) {
8944
8965
  if (!query || typeof query !== "string") {
8945
8966
  return {
8967
+ // Nothing was read and nothing was embedded — the short-circuit fires
8968
+ // before either.
8969
+ queryEmbedMs: 0,
8970
+ rowsEmbedded: 0,
8946
8971
  memories: [],
8947
8972
  embeddedItems: [],
8948
8973
  queryEmbedding: [],
@@ -8975,6 +9000,7 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
8975
9000
  embeddingsUnavailable = true;
8976
9001
  embeddingFailure = true;
8977
9002
  };
9003
+ const embedStats = { queryMs: 0, rowsEmbedded: 0 };
8978
9004
  if (searchOptions?.decryptLast) {
8979
9005
  const forceIncludeIds = [
8980
9006
  ...searchOptions.entityRanking ?? [],
@@ -8986,7 +9012,8 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
8986
9012
  admitFloor: ADMIT_FLOOR,
8987
9013
  unembeddedCap: UNEMBEDDED_CAP,
8988
9014
  ...forceIncludeIds.length > 0 && { forceIncludeIds },
8989
- onEmbeddingDegraded
9015
+ onEmbeddingDegraded,
9016
+ embedStats
8990
9017
  });
8991
9018
  if (corpus.vaultSize === 0) {
8992
9019
  return {
@@ -8997,7 +9024,9 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
8997
9024
  embeddingsUnavailable: false,
8998
9025
  embeddingFailure: false,
8999
9026
  decryptLast: true,
9000
- rowsDecrypted: corpus.rowsDecrypted
9027
+ rowsDecrypted: corpus.rowsDecrypted,
9028
+ queryEmbedMs: embedStats.queryMs,
9029
+ rowsEmbedded: embedStats.rowsEmbedded
9001
9030
  };
9002
9031
  }
9003
9032
  ({ memories, embeddedItems, queryEmbedding, vaultSize } = corpus);
@@ -9014,7 +9043,9 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
9014
9043
  decryptLast: true,
9015
9044
  // Rows WERE decrypt-attempted even though none came back readable — that
9016
9045
  // is the whole point of reporting attempts rather than successes.
9017
- rowsDecrypted: corpus.rowsDecrypted
9046
+ rowsDecrypted: corpus.rowsDecrypted,
9047
+ queryEmbedMs: embedStats.queryMs,
9048
+ rowsEmbedded: embedStats.rowsEmbedded
9018
9049
  };
9019
9050
  }
9020
9051
  } else {
@@ -9039,10 +9070,14 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
9039
9070
  embeddingsUnavailable: false,
9040
9071
  embeddingFailure: false,
9041
9072
  decryptLast: false,
9042
- rowsDecrypted: loaded.length
9073
+ rowsDecrypted: loaded.length,
9074
+ queryEmbedMs: embedStats.queryMs,
9075
+ rowsEmbedded: embedStats.rowsEmbedded
9043
9076
  };
9044
9077
  }
9078
+ const legacyEmbedStart = nowMs2();
9045
9079
  queryEmbedding = await embedQueryOrDegrade(query, embeddingOptions, onEmbeddingDegraded);
9080
+ embedStats.queryMs += nowMs2() - legacyEmbedStart;
9046
9081
  const currentModel = embeddingOptions.model ?? DEFAULT_API_EMBEDDING_MODEL;
9047
9082
  const uncachedTexts = [];
9048
9083
  const uncachedIndices = [];
@@ -9076,6 +9111,7 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
9076
9111
  }
9077
9112
  if (uncachedTexts.length > 0) {
9078
9113
  let newEmbeddings;
9114
+ embedStats.rowsEmbedded += uncachedTexts.length;
9079
9115
  try {
9080
9116
  newEmbeddings = await generateEmbeddings(uncachedTexts, embeddingOptions);
9081
9117
  } catch (err) {
@@ -9119,6 +9155,8 @@ async function prepareVaultCandidates(query, vaultCtx, embeddingOptions, cache,
9119
9155
  embeddingsUnavailable = true;
9120
9156
  }
9121
9157
  return {
9158
+ queryEmbedMs: embedStats.queryMs,
9159
+ rowsEmbedded: embedStats.rowsEmbedded,
9122
9160
  memories,
9123
9161
  embeddedItems,
9124
9162
  queryEmbedding,
@@ -9169,11 +9207,15 @@ async function rankPreparedVaultCandidates(query, prepared, embeddingOptions, se
9169
9207
  results: results2,
9170
9208
  vaultSize: out.vaultSize,
9171
9209
  reranked: out.reranked ?? false,
9210
+ // Read straight off the shared stats object rather than being passed in at
9211
+ // each call site: every return in this function funnels through here, so a
9212
+ // path added later reports the CE bill without having to remember to.
9213
+ rerankMs: rerankStats.ms,
9172
9214
  hadV2Head: out.hadV2Head ?? false,
9173
9215
  embeddingsUnavailable
9174
9216
  };
9175
9217
  };
9176
- const rerankStats = { applied: false };
9218
+ const rerankStats = { applied: false, ms: 0 };
9177
9219
  const useFusion = searchOptions?.useFusion ?? true;
9178
9220
  const tuning = {
9179
9221
  ...searchOptions?.recencyAlpha !== void 0 && { recencyAlpha: searchOptions.recencyAlpha },
@@ -9292,13 +9334,16 @@ async function searchVaultMemoriesWithSize(query, vaultCtx, embeddingOptions, ca
9292
9334
  results: [],
9293
9335
  vaultSize: 0,
9294
9336
  reranked: false,
9337
+ rerankMs: 0,
9295
9338
  hadV2Head: false,
9296
9339
  embeddingsUnavailable: false,
9297
9340
  rankedOnCosine: false,
9298
9341
  // No storage read happened, so nothing was decrypted; report the path the
9299
9342
  // caller asked for so this turn is still attributable.
9300
9343
  decryptLast: !!searchOptions?.decryptLast,
9301
- rowsDecrypted: 0
9344
+ rowsDecrypted: 0,
9345
+ queryEmbedMs: 0,
9346
+ rowsEmbedded: 0
9302
9347
  };
9303
9348
  }
9304
9349
  if (searchOptions?.decompose === "llm" && normalizeSubQueries(searchOptions.subQueries).length < 2 && !warnedProgrammaticDecomposeIgnored) {
@@ -9319,11 +9364,14 @@ async function searchVaultMemoriesWithSize(query, vaultCtx, embeddingOptions, ca
9319
9364
  results: [],
9320
9365
  vaultSize: 0,
9321
9366
  reranked: false,
9367
+ rerankMs: 0,
9322
9368
  hadV2Head: false,
9323
9369
  embeddingsUnavailable: prepared.embeddingsUnavailable,
9324
9370
  rankedOnCosine: false,
9325
9371
  decryptLast: prepared.decryptLast,
9326
- rowsDecrypted: prepared.rowsDecrypted
9372
+ rowsDecrypted: prepared.rowsDecrypted,
9373
+ queryEmbedMs: prepared.queryEmbedMs,
9374
+ rowsEmbedded: prepared.rowsEmbedded
9327
9375
  };
9328
9376
  }
9329
9377
  if (prepared.memories.length === 0) {
@@ -9331,11 +9379,14 @@ async function searchVaultMemoriesWithSize(query, vaultCtx, embeddingOptions, ca
9331
9379
  results: [],
9332
9380
  vaultSize: prepared.vaultSize,
9333
9381
  reranked: false,
9382
+ rerankMs: 0,
9334
9383
  hadV2Head: false,
9335
9384
  embeddingsUnavailable: prepared.embeddingsUnavailable,
9336
9385
  rankedOnCosine: false,
9337
9386
  decryptLast: prepared.decryptLast,
9338
- rowsDecrypted: prepared.rowsDecrypted
9387
+ rowsDecrypted: prepared.rowsDecrypted,
9388
+ queryEmbedMs: prepared.queryEmbedMs,
9389
+ rowsEmbedded: prepared.rowsEmbedded
9339
9390
  };
9340
9391
  }
9341
9392
  const ranked = await rankPreparedVaultCandidates(
@@ -9348,7 +9399,9 @@ async function searchVaultMemoriesWithSize(query, vaultCtx, embeddingOptions, ca
9348
9399
  ...ranked,
9349
9400
  rankedOnCosine: !ranked.embeddingsUnavailable,
9350
9401
  decryptLast: prepared.decryptLast,
9351
- rowsDecrypted: prepared.rowsDecrypted
9402
+ rowsDecrypted: prepared.rowsDecrypted,
9403
+ queryEmbedMs: prepared.queryEmbedMs,
9404
+ rowsEmbedded: prepared.rowsEmbedded
9352
9405
  };
9353
9406
  }
9354
9407
  async function searchVaultMemories(query, vaultCtx, embeddingOptions, cache, searchOptions) {
@@ -9498,7 +9551,7 @@ ${formatted}`;
9498
9551
  }
9499
9552
  };
9500
9553
  }
9501
- var warnedProgrammaticDecomposeIgnored, SUPERSESSION_SIMILARITY_THRESHOLD, SUPERSESSION_MIN_AGE_GAP_MS, SUPERSESSION_BOOST_FACTOR, SUPERSESSION_MAX_WINDOW, EMBEDDINGS_DEGRADED_EMPTY_NO_LEXICAL;
9554
+ var nowMs2, warnedProgrammaticDecomposeIgnored, SUPERSESSION_SIMILARITY_THRESHOLD, SUPERSESSION_MIN_AGE_GAP_MS, SUPERSESSION_BOOST_FACTOR, SUPERSESSION_MAX_WINDOW, EMBEDDINGS_DEGRADED_EMPTY_NO_LEXICAL;
9502
9555
  var init_searchTool = __esm({
9503
9556
  "src/lib/memoryVault/searchTool.ts"() {
9504
9557
  "use strict";
@@ -9516,6 +9569,7 @@ var init_searchTool = __esm({
9516
9569
  init_bm25();
9517
9570
  init_decomposeQuery();
9518
9571
  init_lruCache();
9572
+ nowMs2 = () => typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
9519
9573
  warnedProgrammaticDecomposeIgnored = false;
9520
9574
  SUPERSESSION_SIMILARITY_THRESHOLD = 0.7;
9521
9575
  SUPERSESSION_MIN_AGE_GAP_MS = 30 * 24 * 60 * 60 * 1e3;
@@ -10046,6 +10100,7 @@ __export(index_exports, {
10046
10100
  insertChild: () => insertChild,
10047
10101
  isAnumaTag: () => isAnumaTag,
10048
10102
  isCalendarCallback: () => isCalendarCallback,
10103
+ isDegradedTopicSkip: () => isDegradedTopicSkip,
10049
10104
  isDriveCallback: () => isDriveCallback,
10050
10105
  isGithubCallback: () => isGithubCallback,
10051
10106
  isHtmlTag: () => isHtmlTag,
@@ -19761,6 +19816,18 @@ function parseTopicResponse(parsed, validIds) {
19761
19816
  }
19762
19817
  return out;
19763
19818
  }
19819
+ var DEGRADED_TOPIC_SKIP = {
19820
+ excluded: false,
19821
+ "link-declined": false,
19822
+ "stamp-declined": false,
19823
+ "llm-unanswered": true,
19824
+ unreadable: true,
19825
+ "not-found": true,
19826
+ "link-failed": true
19827
+ };
19828
+ function isDegradedTopicSkip(reason) {
19829
+ return DEGRADED_TOPIC_SKIP[reason] === true;
19830
+ }
19764
19831
  async function extractAndLinkEntitiesForMemoriesOp(ctx, memoryIds, options) {
19765
19832
  const entityCtx = ctx.entityCtx;
19766
19833
  if (!entityCtx) {
@@ -19769,17 +19836,24 @@ async function extractAndLinkEntitiesForMemoriesOp(ctx, memoryIds, options) {
19769
19836
  const log = getLogger();
19770
19837
  const extractedAt = options.now ?? Date.now();
19771
19838
  const skippedIds = [];
19839
+ const skippedReasons = /* @__PURE__ */ new Map();
19840
+ const skip = (id, reason) => {
19841
+ if (skippedReasons.has(id)) return;
19842
+ skippedIds.push(id);
19843
+ skippedReasons.set(id, reason);
19844
+ };
19772
19845
  const inputs = [];
19773
- for (const id of memoryIds) {
19846
+ for (const id of new Set(memoryIds)) {
19774
19847
  let record;
19775
19848
  try {
19776
19849
  record = await ctx.vaultMemoryCollection.find(id);
19777
- } catch {
19778
- skippedIds.push(id);
19850
+ } catch (err) {
19851
+ log.warn("[memory/topics] vault lookup failed for extraction", err);
19852
+ skip(id, "not-found");
19779
19853
  continue;
19780
19854
  }
19781
19855
  if (record.isDeleted || ctx.userId !== void 0 && record.userId !== ctx.userId || record.topicsUserManaged) {
19782
- skippedIds.push(id);
19856
+ skip(id, "excluded");
19783
19857
  continue;
19784
19858
  }
19785
19859
  try {
@@ -19792,7 +19866,7 @@ async function extractAndLinkEntitiesForMemoriesOp(ctx, memoryIds, options) {
19792
19866
  inputs.push({ id, content: stored.content });
19793
19867
  } catch (err) {
19794
19868
  log.warn("[memory/topics] failed to load memory for extraction", err);
19795
- skippedIds.push(id);
19869
+ skip(id, "unreadable");
19796
19870
  }
19797
19871
  }
19798
19872
  const entitiesByMemory = await extractEntitiesForMemories(inputs, options);
@@ -19800,19 +19874,19 @@ async function extractAndLinkEntitiesForMemoriesOp(ctx, memoryIds, options) {
19800
19874
  for (const input of inputs) {
19801
19875
  const entities = entitiesByMemory.get(input.id);
19802
19876
  if (entities === void 0) {
19803
- skippedIds.push(input.id);
19877
+ skip(input.id, "llm-unanswered");
19804
19878
  continue;
19805
19879
  }
19806
19880
  try {
19807
19881
  const linked = await replaceMemoryEntitiesGuardedOp(entityCtx, input.id, entities);
19808
19882
  if (linked === null) {
19809
- skippedIds.push(input.id);
19883
+ skip(input.id, "link-declined");
19810
19884
  entitiesByMemory.delete(input.id);
19811
19885
  continue;
19812
19886
  }
19813
19887
  } catch (err) {
19814
19888
  log.warn("[memory/topics] replaceMemoryEntitiesGuardedOp failed", err);
19815
- skippedIds.push(input.id);
19889
+ skip(input.id, "link-failed");
19816
19890
  entitiesByMemory.delete(input.id);
19817
19891
  continue;
19818
19892
  }
@@ -19822,11 +19896,11 @@ async function extractAndLinkEntitiesForMemoriesOp(ctx, memoryIds, options) {
19822
19896
  const stampedSet = new Set(stampedIds);
19823
19897
  for (const id of toStamp) {
19824
19898
  if (!stampedSet.has(id)) {
19825
- skippedIds.push(id);
19899
+ skip(id, "stamp-declined");
19826
19900
  entitiesByMemory.delete(id);
19827
19901
  }
19828
19902
  }
19829
- return { entitiesByMemory, stampedIds, skippedIds };
19903
+ return { entitiesByMemory, stampedIds, skippedIds, skippedReasons };
19830
19904
  }
19831
19905
 
19832
19906
  // src/lib/memory/verifySupport.ts
@@ -35481,6 +35555,7 @@ function renderAnumaJsx(jsx3) {
35481
35555
  insertChild,
35482
35556
  isAnumaTag,
35483
35557
  isCalendarCallback,
35558
+ isDegradedTopicSkip,
35484
35559
  isDriveCallback,
35485
35560
  isGithubCallback,
35486
35561
  isHtmlTag,
@@ -6992,6 +6992,17 @@ interface RecallDiagnostics {
6992
6992
  * never the cost.
6993
6993
  */
6994
6994
  vaultRowsDecrypted?: number;
6995
+ /**
6996
+ * Rows the fact lane had to re-embed through the portal because their stored
6997
+ * vector was unusable — stale `embedding_model`, wrong dimension, or
6998
+ * unparseable. Absent when the fact lane didn't run.
6999
+ *
7000
+ * Expected to be 0 on a healthy vault: rows are embedded at write time and the
7001
+ * re-embed writes the current model back, so a persistently non-zero value
7002
+ * means the writeback is not sticking and every turn is paying for it. On the
7003
+ * LEGACY read path this batch is uncapped, so it can be the whole vault.
7004
+ */
7005
+ vaultRowsEmbedded?: number;
6995
7006
  /** Facts the fact lane returned (post-dedupe, pre-fusion). */
6996
7007
  factCount: number;
6997
7008
  /** Chunks the chunk lane returned (post-dedupe, pre-fusion). */
@@ -7004,6 +7015,37 @@ interface RecallDiagnostics {
7004
7015
  prep: number;
7005
7016
  /** Vault fact-lane search (`searchVaultMemoriesWithSize`). */
7006
7017
  factLane: number;
7018
+ /**
7019
+ * The cross-encoder's share of {@link factLane} — wall-clock spent inside
7020
+ * `rerankPairs`. Billed even when the CE threw partway through, because a
7021
+ * rerank that burned three seconds and then failed still cost them.
7022
+ *
7023
+ * A SUBSET of `factLane`, not a sibling: read `factLane - rerank` for
7024
+ * everything else the lane did (query embed, vault read, fused ranking).
7025
+ * 0 when the CE did not run; `reranked` is what distinguishes that from a
7026
+ * rerank that cost nothing.
7027
+ *
7028
+ * Exists because #845 spent three rounds arguing about which stage inside
7029
+ * the fact lane dominated — whole-vault read, then admission window, then
7030
+ * the CE — with one aggregate number for all of them. Every hypothesis was
7031
+ * an inference; this makes the question a query.
7032
+ */
7033
+ rerank: number;
7034
+ /**
7035
+ * The query embed's share of {@link factLane} — one portal round trip.
7036
+ *
7037
+ * Also a SUBSET of `factLane`. Together with `rerank` this makes the lane
7038
+ * decomposable: `factLane - queryEmbed - rerank` is the local work (vault
7039
+ * read, decrypt, BM25/cosine fusion), and each of the three implies a
7040
+ * completely different fix.
7041
+ *
7042
+ * 0 when the lane returned before embedding, which includes every empty
7043
+ * vault — `prepareVaultCandidates` short-circuits first. That is why the
7044
+ * fast `vault_size = 0` population never established a baseline for this
7045
+ * cost, and why the ~850ms floor on the smallest NON-empty vaults had no
7046
+ * attributable owner.
7047
+ */
7048
+ queryEmbed: number;
7007
7049
  /** Chunk-lane search (`searchChunksOp`). */
7008
7050
  chunkLane: number;
7009
7051
  /** Cross-lane RRF fusion + provenance dedup after both lanes. */
@@ -9687,6 +9729,39 @@ interface TopicExtractOptions extends PortalLlmAuth {
9687
9729
  * later sweep, never stamp them.
9688
9730
  */
9689
9731
  declare function extractEntitiesForMemories(memories: readonly TopicExtractionInput[], options: TopicExtractOptions): Promise<Map<string, ExtractedEntity[]>>;
9732
+ /**
9733
+ * Why one memory was skipped by a topic sweep.
9734
+ *
9735
+ * Split along the line that actually matters operationally — did the sweep
9736
+ * DECLINE this row on purpose, or did something BREAK:
9737
+ *
9738
+ * Deliberate (healthy; a sweep of nothing but these is a success):
9739
+ * - `excluded` — deleted, owned by another user, or `topicsUserManaged`.
9740
+ * - `link-declined` — the entity-link write's in-row guard declined (the row
9741
+ * became user-managed / deleted / absent mid-run).
9742
+ * - `stamp-declined` — same, caught by the stamp op's own re-check.
9743
+ *
9744
+ * Degraded (something is wrong; see {@link isDegradedTopicSkip}):
9745
+ * - `llm-unanswered` — the batch failed or the model omitted this id. THE one
9746
+ * to alarm on: it is how a wholly broken sweep looks.
9747
+ * - `unreadable` — the row could not be loaded/decrypted.
9748
+ * - `not-found` — the lookup threw (absent row or read fault).
9749
+ * - `link-failed` — the entity-link write threw.
9750
+ *
9751
+ * @public
9752
+ */
9753
+ type TopicSkipReason = "excluded" | "link-declined" | "stamp-declined" | "llm-unanswered" | "unreadable" | "not-found" | "link-failed";
9754
+ /**
9755
+ * Whether a skip reason means the sweep FAILED on that row, rather than
9756
+ * deliberately passing over it.
9757
+ *
9758
+ * Exported so callers classify identically instead of each re-deriving the
9759
+ * split — the reason this type exists is that one wrong grouping turns a broken
9760
+ * sweep back into a healthy-looking one.
9761
+ *
9762
+ * @public
9763
+ */
9764
+ declare function isDegradedTopicSkip(reason: TopicSkipReason): boolean;
9690
9765
  /** Outcome of one {@link extractAndLinkEntitiesForMemoriesOp} run. */
9691
9766
  interface TopicExtractionRunResult {
9692
9767
  /** memoryId → entities the LLM returned (post-validation, post-linking). */
@@ -9699,6 +9774,24 @@ interface TopicExtractionRunResult {
9699
9774
  * LLM batches. Skipped ids are not stamped, so failed batches are retried
9700
9775
  * by a later sweep — callers should apply their own attempt caps. */
9701
9776
  skippedIds: string[];
9777
+ /**
9778
+ * Why each id in {@link skippedIds} was skipped.
9779
+ *
9780
+ * `skippedIds` alone cannot distinguish a sweep that deliberately declined
9781
+ * work from one that FAILED: a run where every LLM batch errored and a run
9782
+ * over rows the user has taken manual control of produce an identical array.
9783
+ * That is the same blindness `outcome: 'empty-after-retry'` had before #888 —
9784
+ * a degradation wearing the shape of normal control flow.
9785
+ *
9786
+ * It matters here because topics feed the entity recall lane, so a silently
9787
+ * failing sweep means memories that exist but cannot be found by entity, with
9788
+ * nothing in production saying so.
9789
+ *
9790
+ * Populated in lockstep with `skippedIds` (single `skip()` helper), so the two
9791
+ * cannot drift. Group by {@link isDegradedTopicSkip} to separate "declined" from
9792
+ * "broke".
9793
+ */
9794
+ skippedReasons: Map<string, TopicSkipReason>;
9702
9795
  }
9703
9796
  /**
9704
9797
  * Run LLM topic extraction over existing vault memories and persist the
@@ -15547,4 +15640,4 @@ declare function renderAnumaTree(node: AnumaNode): React.ReactElement | null;
15547
15640
  */
15548
15641
  declare function renderAnumaJsx(jsx: string): React.ReactElement | null;
15549
15642
 
15550
- export { Anuma, type AnumaChild, AnumaJsxError, type AnumaNode, AnumaShadowIsolationProvider, type AnumaShadowIsolationProviderProps, type AnumaTheme, AnumaThemeProvider, type AnumaThemeProviderProps, AppFile as AppFileModel, type AppFileOperationsContext, type AttrValue, type AutoExtractMessage, type AutoExtractor, DEFAULT_CONVERSATIONS_FOLDER as BACKUP_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as BACKUP_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER as BACKUP_ICLOUD_FOLDER, BUILT_IN_TOOL_SETS, type BackupAuthContextValue, BackupAuthProvider, type BackupAuthProviderProps, type BackupOperationOptions, BlobUrlManager, type Budget, CHUNKS_DISCARDED_ORIGIN, type CachedChunkVectors, type CachedServerTools, ChartCard, type ChartCardProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Conversation as ChatConversation, Message as ChatMessage, type ChatRole, type ChatStorageAdapter, type ChatStorageObservable, type ChunkSearchResult, type ChunkVectorCache, type ChunkingOptions, type CircleProps, type ClientToolsFilterFn, type ConsolidationFallbackReason, type ConversationMemoryInput, ConversationMemory as ConversationMemoryModel, type ConversationMemoryOperationsContext, type ConversationQueryOptions, type CreateAutoExtractorOptions, type CreateConversationOptions, type CreateDecaySweeperOptions, type CreateEntityOptions, type CreateMediaOptions, type CreateMessageOptions, type CreateModelPreferenceOptions, type CreateProjectOptions, type CreateSavedToolOptions, type CreateServerToolsFilterOptions, type CreateUserPreferenceOptions, type CreateVaultFolderOptions, type CreateVaultMemoryOptions, type CryptoPriceClassification, type CryptoPricePreProcessorOptions, DEFAULT_BACKUP_FOLDER$1 as DEFAULT_BACKUP_FOLDER, DEFAULT_CACHE_EXPIRATION_MS, DEFAULT_CHUNK_CACHE_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, DEFAULT_DECAY_POLICY, DEFAULT_CONVERSATIONS_FOLDER as DEFAULT_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as DEFAULT_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER$1 as DEFAULT_DROPBOX_FOLDER, DEFAULT_EXCLUDED_SERVER_TOOLS, DEFAULT_BACKUP_FOLDER as DEFAULT_ICLOUD_BACKUP_FOLDER, DEFAULT_MAX_CLASSIFIER_CALLS_PER_SWEEP, DEFAULT_MIN_CHUNK_SIZE, DEFAULT_PERSONALITY_SETTINGS, DEFAULT_PROFILE_FACETS, DEFAULT_PROFILE_FACT_TYPE_WEIGHTS, DEFAULT_PROFILE_PROOF_ALPHA, DEFAULT_PROFILE_TREND_MULTIPLIERS, DEFAULT_SERVER_TOOLS_MATCH_OPTIONS, DEFAULT_VAULT_CACHE_SIZE, DatabaseManager, type DatabaseManagerLogger, type DatabaseManagerOptions, type DecayCandidateRaw, type DecayClassifier, type DecayInput, type DecayPolicy, type DecaySweepResult, type DecaySweeper, type DecayVerdict, type DeckProps, type DisplayToolMigrations, type DropboxAuthContextValue, DropboxAuthProvider, type DropboxAuthProviderProps, type DropboxExportResult, type DropboxImportResult, ENTITY_FANOUT, ENTITY_KINDS, type EmbeddedWalletSignerFn, EncryptionKeyMissingError, type EncryptionKeyVersion, type EntityInput, type EntityKind, Entity as EntityModel, type EntityOperationsContext, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, FILE_PLACEHOLDER_PREFIX, FILE_PLACEHOLDER_REGEX, type FactType, type FileMetadata, type FileProcessor, type FileTypeQuery, type FileWithData, type FlushResult, type GetConversationsPageOptions, type GetMessagesPageOptions, type GoogleDriveAuthContextValue, GoogleDriveAuthProvider, type GoogleDriveAuthProviderProps, type GoogleDriveExportResult, type GoogleDriveImportResult, type GraphTraversalOptions, type GroupProps, HARD_DELETE_WINDOW_MS, type ICloudAuthContextValue, ICloudAuthProvider, type ICloudAuthProviderProps, type ICloudExportResult, type ICloudImportResult, INFERENCE_ID_HEADER, type IconProps, type ImageProps, type InjectionClassifierOptions, type InjectionReason, type InteractionType, type KnownTag, type LazyStoredConversation, type LineProps, type LlmDecayClassifierOptions, type LlmNeighborRefinerOptions, type Logger, LoggerProvider, type LoggerProviderProps, MAX_HOPS, MEDIUM_TTL_MS, type MediaDimensions, type MediaFilterOptions, type MediaMetadata, type MediaOperationsContext, type MediaRole, type MediaType, type MemoriesNeedingTopicExtraction, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, MemoryEntity as MemoryEntityModel, type MemoryExtractedEvent, type MemoryKind, type MemoryQuarantinedEvent, type MemoryToVerify, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, type MemoryVerification, type MessageChunk, type MessageFeedback, type MessageOrigin, type MessageSkeleton, type ModelLoadProgress, NEVER_TTL_MS, NODE_BUDGET, type NeighborRefiner, type NowSource, type OCRFile, type ObservationTrend, type ObservationTrendInput, type OperationExecutor, PAST_EVENT_GRACE_MS, PROFILE_DOC_VERSION, type ParsedServerToolsResponse, type PdfExportOptions, type PdfExportProgress, type PdfExportStage, type PdfFile, PdfProcessor, type PendingInteraction, type PersonalitySettings, type PersonalitySliders, type PersonalityStyle, type PhoneCallPollingOptions, type PhotoIngestResult, type PhotoMediaRef, type PlatformStorage, type PortalLlmAuth, type PortalLlmFailure, type PortalLlmFailureReason, type PreprocessingOptions, type PreprocessingResult, type ProcessedFileResult, ProcessorRegistry, type ProfileConfigFingerprint, type ProfileDoc, type ProfileFacet, type ProfileFacetKey, type ProfileSalienceInput, type ProfileSection, type ProfileUpdate, type ProgressCallback, Project, type ProjectOperationsContext, type PromptPreProcessor, type PromptPreProcessorContext, type ProviderAuthState, type ProviderBackupState, ProviderStreamError, type PublishedPhotoMemory, type QuantizedEmbedding, type QuarantinedMemoryInfo, type QueueEncryptionContext, QueueManager, type QueueStatus, type QueuedOperation, type QueuedOperationType, R2_DEFAULT_TTL_MS, RECALL_MAX_LIMIT, RECALL_TOOL_NAME, type RankableVaultMemory, type RankedMemory, type RankedProfileCandidate, type RecallContext, type RecallDegradation, type RecallDiagnostics, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type RectProps, type ReflectOptions, type ReflectResult, type RequestEncryptionKeyOptions, RerankerUnavailableError, type ResumeStreamOptions, type ResumeStreamResult, type RetainAction, type RetainContext, type RetainOptions, type RetainResult, type RetainSource, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, SLIDES_FILE_PATH, SLIDE_CANVAS_HEIGHT, SLIDE_CANVAS_WIDTH, STREAM_RESUMABLE_HEADER, SavedTool as SavedToolModel, type SavedToolOperationsContext, type SavedToolParameter, type ScoreBreakdown, type ScoreProfileSalienceOptions, type ScreenProps, type ScreenResult, type ScreenedCandidate, type SearchMessagesOptions, type SearchSource, type SelectServerToolsForPromptOptions, type SendMessageWithStorageArgs, type SendMessageWithStorageResult, type ServerTool, type ServerToolsFilter, type ServerToolsFilterFn, type ServerToolsFilterFunction, type ServerToolsOptions, type ServerToolsResponse, type SignMessageFn, type SignMessageOptions, type SlideProps, type StepFinishEvent, type StockPriceClassification, type StockPricePreProcessorOptions, type StorageOperationsContext, type StoredAppFile, type ChatCompletionUsage as StoredChatCompletionUsage, type StoredConversation, type StoredConversationMemory, type StoredEntity, type StoredFileWithContext, type StoredMedia, Media as StoredMediaModel, type StoredMessage, type StoredMessageWithSimilarity, type StoredModelPreference, ModelPreference as StoredModelPreferenceModel, type StoredProject, type StoredSavedTool, type StoredTopic, type StoredUserPreference, UserPreference as StoredUserPreferenceModel, type StoredVaultFolder, VaultFolder as StoredVaultFolderModel, type StoredVaultMemory, VaultMemory as StoredVaultMemoryModel, StreamExpiredError, type StreamMetaEvent, type StreamResumeHandle, type SynthesizeProfileOptions, THEME_ATTRS, TOOL_RESULT_ORIGIN, TOPICS_EXTRACTION_VERSION, TOPIC_EXTRACTION_BATCH_SIZE, TREND_RECENT_WINDOW_DAYS, TREND_STALE_WINDOW_DAYS, type TextChunk, TextProcessor, type TextProps, type ThemeAttr, type ToolCallArgumentsDeltaEvent, type ToolMatchOptions, type ToolMatchResult, type ToolSet, type TopicExtractOptions, type TopicExtractionInput, type TopicExtractionRunResult, type TopicSource, type TranscriptionResult, type TurnCompleteEvent, type TurnSkippedEvent, type UIInteractionContextValue, UIInteractionProvider, type UIInteractionProviderProps, type UncheckedReason, type UnverifiableReason, type UpdateMediaOptions, type UpdateModelPreferenceOptions, type UpdateProjectOptions, type UpdateSavedToolOptions, type UpdateUserPreferenceOptions, type UpdateVaultFolderOptions, type UpdateVaultMemoryOptions, type UseBackupOptions, type UseBackupResult, type UseChatStorageOptions, type UseChatStorageResult, type UseCreditsOptions, type UseCreditsResult, type UseDropboxBackupOptions, type UseDropboxBackupResult, type UseEncryptionResult, type UseExportPdfResult, type UseFilesOptions, type UseFilesResult, type UseGoogleDriveBackupOptions, type UseGoogleDriveBackupResult, type UseICloudBackupOptions, type UseICloudBackupResult, type UseModelsResult, type UseOCRResult, type UsePdfResult, type UsePhoneCallsOptions, type UsePhoneCallsResult, type UseProjectsOptions, type UseProjectsResult, type UseSettingsOptions, type UseSettingsResult, type UseSubscriptionOptions, type UseSubscriptionResult, type UseToolsOptions, type UseToolsResult, type UseVoiceOptions, type UseVoiceResult, type UseWalletBindingOptions, type UseWalletBindingResult, VAULT_SIZE_HOP_CAP, type VaultCandidateKey, type VaultEmbeddingCache, type VaultFolderOperationsContext, type VaultMemoryOperationsContext, type VaultMemoryVisibility, type VaultSaveOperation, type VaultSearchResult, type VerificationSources, type VerifyMemoriesForPublishOptions, type VoiceRecording, WalletPoller, WatermelonChatStorageAdapter, type WatermelonChatStorageAdapterOptions, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, type WhisperModel, WordProcessor, ZipProcessor, type ZipProcessorOptions, addConversationMemoriesOp, appFileToStored, archiveVaultMemoryOp, backfillMemoryEntityUserIdsOp, backfillMemoryTopicsOp, capHopsForDensity, chatStorageMigrations, chatStorageSchema, chunkAndEmbedAllMessages, chunkAndEmbedMessage, chunkText, classifyCryptoPrice, classifyCryptoPriceBatch, classifyDecay, classifyInjectionCandidates, classifyObservationTrend, classifyStockPrice, classifyStockPriceBatch, classifyWeather, classifyWeatherBatch, classifyWebSearch, classifyWebSearchBatch, clearAllEncryptionKeys, clearAllEncryptionState, clearAllKeyPairs, clearCalendarToken, clearConversationMemoriesOp, clearDriveToken, clearToken as clearDropboxToken, clearEncryptionKey, clearGithubToken, clearGoogleDriveToken, clearICloudAuth, clearKeyPair, clearLazyTitleCache, clearMemoryTopicsOverrideOp, clearNotionToken, clearServerToolsCache, consoleLogger, conversationMemoryToStored, cosineInt8, createAutoExtractor, createChunkVectorCache, createCryptoPricePreProcessor, createDecaySweeper, createGitHubTools, createLlmDecayClassifier, createLlmNeighborRefiner, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageSourceResolver, createPlatformCursorStore, createProjectOp, createRecallTool, createSavedToolOp, createServerToolsFilter, createStockPricePreProcessor, createVaultEmbeddingCache, createVaultFolderOp, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decodeChunkVector, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllAppFilesOp, deleteAllVaultMemoriesForUserOp, deleteAppFileOp, deleteEncryptedFile, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteProjectOp, deleteSavedToolOp, deleteVaultFolderOp, deleteVaultMemoryOp, dequantizeEmbedding, eagerEmbedContent, embedAllMessages, embedMessage, encodeChunkVector, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, ensureDefaultFoldersOp, expandToolSetsAdditive, exportElementToPdf, exportMarkdownToPdf, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, extractFileIds, fileExists, findById, findMatchingTools, findParentOfId, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllSavedToolsOp, getAllVaultFoldersOp, getAllVaultMemoriesOp, getAllVaultMemoryContentsOp, getAndClearCalendarPendingMessage, getAndClearCalendarReturnUrl, getAndClearDrivePendingMessage, getAndClearDriveReturnUrl, getAndClearGithubPendingMessage, getAndClearGithubReturnUrl, getAndClearNotionPendingMessage, getAndClearNotionReturnUrl, getAppFileMapOp, getAppFileOp, getAppFilesOp, getAudioOp, getCachedServerTools, getCalendarAccessToken, getConversationMemoriesOp, getConversationsByProjectLazyOp, getConversationsByProjectOp, getConversationsLazyOp, getConversationsPageOp, getDecayCandidatesRawOp, getDocumentsOp, getDriveAccessToken, getEncryptionKey, getEntitiesByMemoryIdsOp, getGithubAccessToken, getGoogleDriveStoredToken, getId, getImagesOp, getLogger, getMediaByConversationOp, getMediaByIdOp, getMediaByIdsOp, getMediaByMessageOp, getMediaByModelOp, getMediaByRoleOp, getMediaBySourceUrlOp, getMediaByTypeOp, getMediaCountOp, getMediaCountsByTypeOp, getMediaOp, getMediaTypeFromMime, getMemoriesByEntityNamesOp, getMemoriesNeedingTopicExtractionOp, getNotionAccessToken, getNotionMCPUrl, getNumberAttr, getProjectConversationCountOp, getProjectConversationsOp, getProjectOp, getProjectsOp, getRecentMediaOp, getSavedToolByIdOp, getServerTools, getStringAttr, getSupportedFileTypes, getToolsChecksum, getUnfiledVaultMemoriesOp, getUserUploadedMediaOp, getValidCalendarToken, getValidDriveToken, getValidGithubToken, getValidNotionToken, getVaultCandidateKeysOp, getVaultEmbeddingsByIdsOp, getVaultFolderMemoryCountOp, getVaultMemoriesByIdsOp, getVaultMemoryOp, getVaultRankingProjectionsOp, getVideosOp, handleCalendarCallback, handleDriveCallback, handleGithubCallback, handleNotionCallback, hardDeleteDecayedOp, hardDeleteMediaOp, hasCalendarCredentials, hasDriveCredentials, hasDropboxCredentials, hasEncryptionKey, hasGithubCredentials, hasGoogleDriveCredentials, hasICloudCredentials, hasKeyPair, hasNotionCredentials, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, insertAfterId, insertChild, isAnumaTag, isCalendarCallback, isDriveCallback, isGithubCallback, isHtmlTag, isNotionCallback, isOPFSSupported, isR2UrlExpired, isRerankerAvailable, isSupportedFile, isSupportedMediaType, linkMemoryEntitiesOp, mediaToStored, migrateCalendarToken, migrateDisplayResult, migrateDriveToken, migrateGithubToken, migrateNotionClientRegistration, migrateNotionToken, moveMemoriesToFolderOp, noopLogger, onKeyAvailable, parseJsx, parseMedia, preEmbedVaultMemories, preprocessFiles, previewToolSelection, projectToStored, putAppFileOp, quantizeEmbedding, queueManager, rankProfileCandidates, readEncryptedFile, recall, reflect, refreshCalendarToken, refreshDriveToken, refreshEncryptionKeyIfMatches, refreshGithubToken, refreshNotionToken, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, removeById, renderAnumaJsx, renderAnumaTree, renderElementToCanvas, replaceById, replaceMemoryEntitiesGuardedOp, requestEncryptionKey, requestKeyPair, resolveFilePlaceholders, resolveThemeColor, restoreVaultMemoryOp, resumeStream, retain, revokeCalendarToken, revokeDriveToken, revokeGithubToken, revokeNotionAccess, savedToolToStored, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, selectServerToolsForPrompt, serializeJsx, setLogger, setMemoryEntitiesOp, setMemoryVisibilityOp, settingsStorageSchema, shouldChunkMessage, shouldRefreshTools, stampTopicsExtractedAtOp, startGithubAuth, startNotionAuth, storeCalendarPendingMessage, storeCalendarReturnUrl, storeCalendarToken, storeDrivePendingMessage, storeDriveReturnUrl, storeDriveToken, storeGithubPendingMessage, storeGithubReturnUrl, storeGithubToken, storeNotionPendingMessage, storeNotionReturnUrl, streamCancelPath, streamReplayPath, summarizeObservationTrends, supersedeVaultMemoryOp, synthesizeProfile, traverseGraphLane, ttlForType, updateAttrs, updateConversationProjectOp, updateMediaMessageIdBatchOp, updateMediaOp, updateMessageFeedbackOp, updateProjectNameOp, updateProjectOp, updateSavedToolOp, updateVaultFolderContextOp, updateVaultFolderOp, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, useAnumaTheme, useBackup, useBackupAuth, useChat, useChatStorage, useCredits, useDatabaseManager, useDropboxAuth, useDropboxBackup, useEncryption, useExportPdf, useFiles, useGoogleDriveAuth, useGoogleDriveBackup, useICloudAuth, useICloudBackup, useModels, useOCR, usePdf, usePhoneCalls, useProjects, useSettings, useSubscription, useTools, useUIInteraction, useVoice, useWalletBinding, userPreferencesStorageSchema, verifyMemoriesForPublish, walk, webPlatformStorage, writeEncryptedFile };
15643
+ export { Anuma, type AnumaChild, AnumaJsxError, type AnumaNode, AnumaShadowIsolationProvider, type AnumaShadowIsolationProviderProps, type AnumaTheme, AnumaThemeProvider, type AnumaThemeProviderProps, AppFile as AppFileModel, type AppFileOperationsContext, type AttrValue, type AutoExtractMessage, type AutoExtractor, DEFAULT_CONVERSATIONS_FOLDER as BACKUP_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as BACKUP_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER as BACKUP_ICLOUD_FOLDER, BUILT_IN_TOOL_SETS, type BackupAuthContextValue, BackupAuthProvider, type BackupAuthProviderProps, type BackupOperationOptions, BlobUrlManager, type Budget, CHUNKS_DISCARDED_ORIGIN, type CachedChunkVectors, type CachedServerTools, ChartCard, type ChartCardProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Conversation as ChatConversation, Message as ChatMessage, type ChatRole, type ChatStorageAdapter, type ChatStorageObservable, type ChunkSearchResult, type ChunkVectorCache, type ChunkingOptions, type CircleProps, type ClientToolsFilterFn, type ConsolidationFallbackReason, type ConversationMemoryInput, ConversationMemory as ConversationMemoryModel, type ConversationMemoryOperationsContext, type ConversationQueryOptions, type CreateAutoExtractorOptions, type CreateConversationOptions, type CreateDecaySweeperOptions, type CreateEntityOptions, type CreateMediaOptions, type CreateMessageOptions, type CreateModelPreferenceOptions, type CreateProjectOptions, type CreateSavedToolOptions, type CreateServerToolsFilterOptions, type CreateUserPreferenceOptions, type CreateVaultFolderOptions, type CreateVaultMemoryOptions, type CryptoPriceClassification, type CryptoPricePreProcessorOptions, DEFAULT_BACKUP_FOLDER$1 as DEFAULT_BACKUP_FOLDER, DEFAULT_CACHE_EXPIRATION_MS, DEFAULT_CHUNK_CACHE_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, DEFAULT_DECAY_POLICY, DEFAULT_CONVERSATIONS_FOLDER as DEFAULT_DRIVE_CONVERSATIONS_FOLDER, DEFAULT_ROOT_FOLDER as DEFAULT_DRIVE_ROOT_FOLDER, DEFAULT_BACKUP_FOLDER$1 as DEFAULT_DROPBOX_FOLDER, DEFAULT_EXCLUDED_SERVER_TOOLS, DEFAULT_BACKUP_FOLDER as DEFAULT_ICLOUD_BACKUP_FOLDER, DEFAULT_MAX_CLASSIFIER_CALLS_PER_SWEEP, DEFAULT_MIN_CHUNK_SIZE, DEFAULT_PERSONALITY_SETTINGS, DEFAULT_PROFILE_FACETS, DEFAULT_PROFILE_FACT_TYPE_WEIGHTS, DEFAULT_PROFILE_PROOF_ALPHA, DEFAULT_PROFILE_TREND_MULTIPLIERS, DEFAULT_SERVER_TOOLS_MATCH_OPTIONS, DEFAULT_VAULT_CACHE_SIZE, DatabaseManager, type DatabaseManagerLogger, type DatabaseManagerOptions, type DecayCandidateRaw, type DecayClassifier, type DecayInput, type DecayPolicy, type DecaySweepResult, type DecaySweeper, type DecayVerdict, type DeckProps, type DisplayToolMigrations, type DropboxAuthContextValue, DropboxAuthProvider, type DropboxAuthProviderProps, type DropboxExportResult, type DropboxImportResult, ENTITY_FANOUT, ENTITY_KINDS, type EmbeddedWalletSignerFn, EncryptionKeyMissingError, type EncryptionKeyVersion, type EntityInput, type EntityKind, Entity as EntityModel, type EntityOperationsContext, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, FILE_PLACEHOLDER_PREFIX, FILE_PLACEHOLDER_REGEX, type FactType, type FileMetadata, type FileProcessor, type FileTypeQuery, type FileWithData, type FlushResult, type GetConversationsPageOptions, type GetMessagesPageOptions, type GoogleDriveAuthContextValue, GoogleDriveAuthProvider, type GoogleDriveAuthProviderProps, type GoogleDriveExportResult, type GoogleDriveImportResult, type GraphTraversalOptions, type GroupProps, HARD_DELETE_WINDOW_MS, type ICloudAuthContextValue, ICloudAuthProvider, type ICloudAuthProviderProps, type ICloudExportResult, type ICloudImportResult, INFERENCE_ID_HEADER, type IconProps, type ImageProps, type InjectionClassifierOptions, type InjectionReason, type InteractionType, type KnownTag, type LazyStoredConversation, type LineProps, type LlmDecayClassifierOptions, type LlmNeighborRefinerOptions, type Logger, LoggerProvider, type LoggerProviderProps, MAX_HOPS, MEDIUM_TTL_MS, type MediaDimensions, type MediaFilterOptions, type MediaMetadata, type MediaOperationsContext, type MediaRole, type MediaType, type MemoriesNeedingTopicExtraction, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, MemoryEntity as MemoryEntityModel, type MemoryExtractedEvent, type MemoryKind, type MemoryQuarantinedEvent, type MemoryToVerify, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, type MemoryVerification, type MessageChunk, type MessageFeedback, type MessageOrigin, type MessageSkeleton, type ModelLoadProgress, NEVER_TTL_MS, NODE_BUDGET, type NeighborRefiner, type NowSource, type OCRFile, type ObservationTrend, type ObservationTrendInput, type OperationExecutor, PAST_EVENT_GRACE_MS, PROFILE_DOC_VERSION, type ParsedServerToolsResponse, type PdfExportOptions, type PdfExportProgress, type PdfExportStage, type PdfFile, PdfProcessor, type PendingInteraction, type PersonalitySettings, type PersonalitySliders, type PersonalityStyle, type PhoneCallPollingOptions, type PhotoIngestResult, type PhotoMediaRef, type PlatformStorage, type PortalLlmAuth, type PortalLlmFailure, type PortalLlmFailureReason, type PreprocessingOptions, type PreprocessingResult, type ProcessedFileResult, ProcessorRegistry, type ProfileConfigFingerprint, type ProfileDoc, type ProfileFacet, type ProfileFacetKey, type ProfileSalienceInput, type ProfileSection, type ProfileUpdate, type ProgressCallback, Project, type ProjectOperationsContext, type PromptPreProcessor, type PromptPreProcessorContext, type ProviderAuthState, type ProviderBackupState, ProviderStreamError, type PublishedPhotoMemory, type QuantizedEmbedding, type QuarantinedMemoryInfo, type QueueEncryptionContext, QueueManager, type QueueStatus, type QueuedOperation, type QueuedOperationType, R2_DEFAULT_TTL_MS, RECALL_MAX_LIMIT, RECALL_TOOL_NAME, type RankableVaultMemory, type RankedMemory, type RankedProfileCandidate, type RecallContext, type RecallDegradation, type RecallDiagnostics, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type RectProps, type ReflectOptions, type ReflectResult, type RequestEncryptionKeyOptions, RerankerUnavailableError, type ResumeStreamOptions, type ResumeStreamResult, type RetainAction, type RetainContext, type RetainOptions, type RetainResult, type RetainSource, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, SLIDES_FILE_PATH, SLIDE_CANVAS_HEIGHT, SLIDE_CANVAS_WIDTH, STREAM_RESUMABLE_HEADER, SavedTool as SavedToolModel, type SavedToolOperationsContext, type SavedToolParameter, type ScoreBreakdown, type ScoreProfileSalienceOptions, type ScreenProps, type ScreenResult, type ScreenedCandidate, type SearchMessagesOptions, type SearchSource, type SelectServerToolsForPromptOptions, type SendMessageWithStorageArgs, type SendMessageWithStorageResult, type ServerTool, type ServerToolsFilter, type ServerToolsFilterFn, type ServerToolsFilterFunction, type ServerToolsOptions, type ServerToolsResponse, type SignMessageFn, type SignMessageOptions, type SlideProps, type StepFinishEvent, type StockPriceClassification, type StockPricePreProcessorOptions, type StorageOperationsContext, type StoredAppFile, type ChatCompletionUsage as StoredChatCompletionUsage, type StoredConversation, type StoredConversationMemory, type StoredEntity, type StoredFileWithContext, type StoredMedia, Media as StoredMediaModel, type StoredMessage, type StoredMessageWithSimilarity, type StoredModelPreference, ModelPreference as StoredModelPreferenceModel, type StoredProject, type StoredSavedTool, type StoredTopic, type StoredUserPreference, UserPreference as StoredUserPreferenceModel, type StoredVaultFolder, VaultFolder as StoredVaultFolderModel, type StoredVaultMemory, VaultMemory as StoredVaultMemoryModel, StreamExpiredError, type StreamMetaEvent, type StreamResumeHandle, type SynthesizeProfileOptions, THEME_ATTRS, TOOL_RESULT_ORIGIN, TOPICS_EXTRACTION_VERSION, TOPIC_EXTRACTION_BATCH_SIZE, TREND_RECENT_WINDOW_DAYS, TREND_STALE_WINDOW_DAYS, type TextChunk, TextProcessor, type TextProps, type ThemeAttr, type ToolCallArgumentsDeltaEvent, type ToolMatchOptions, type ToolMatchResult, type ToolSet, type TopicExtractOptions, type TopicExtractionInput, type TopicExtractionRunResult, type TopicSkipReason, type TopicSource, type TranscriptionResult, type TurnCompleteEvent, type TurnSkippedEvent, type UIInteractionContextValue, UIInteractionProvider, type UIInteractionProviderProps, type UncheckedReason, type UnverifiableReason, type UpdateMediaOptions, type UpdateModelPreferenceOptions, type UpdateProjectOptions, type UpdateSavedToolOptions, type UpdateUserPreferenceOptions, type UpdateVaultFolderOptions, type UpdateVaultMemoryOptions, type UseBackupOptions, type UseBackupResult, type UseChatStorageOptions, type UseChatStorageResult, type UseCreditsOptions, type UseCreditsResult, type UseDropboxBackupOptions, type UseDropboxBackupResult, type UseEncryptionResult, type UseExportPdfResult, type UseFilesOptions, type UseFilesResult, type UseGoogleDriveBackupOptions, type UseGoogleDriveBackupResult, type UseICloudBackupOptions, type UseICloudBackupResult, type UseModelsResult, type UseOCRResult, type UsePdfResult, type UsePhoneCallsOptions, type UsePhoneCallsResult, type UseProjectsOptions, type UseProjectsResult, type UseSettingsOptions, type UseSettingsResult, type UseSubscriptionOptions, type UseSubscriptionResult, type UseToolsOptions, type UseToolsResult, type UseVoiceOptions, type UseVoiceResult, type UseWalletBindingOptions, type UseWalletBindingResult, VAULT_SIZE_HOP_CAP, type VaultCandidateKey, type VaultEmbeddingCache, type VaultFolderOperationsContext, type VaultMemoryOperationsContext, type VaultMemoryVisibility, type VaultSaveOperation, type VaultSearchResult, type VerificationSources, type VerifyMemoriesForPublishOptions, type VoiceRecording, WalletPoller, WatermelonChatStorageAdapter, type WatermelonChatStorageAdapterOptions, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, type WhisperModel, WordProcessor, ZipProcessor, type ZipProcessorOptions, addConversationMemoriesOp, appFileToStored, archiveVaultMemoryOp, backfillMemoryEntityUserIdsOp, backfillMemoryTopicsOp, capHopsForDensity, chatStorageMigrations, chatStorageSchema, chunkAndEmbedAllMessages, chunkAndEmbedMessage, chunkText, classifyCryptoPrice, classifyCryptoPriceBatch, classifyDecay, classifyInjectionCandidates, classifyObservationTrend, classifyStockPrice, classifyStockPriceBatch, classifyWeather, classifyWeatherBatch, classifyWebSearch, classifyWebSearchBatch, clearAllEncryptionKeys, clearAllEncryptionState, clearAllKeyPairs, clearCalendarToken, clearConversationMemoriesOp, clearDriveToken, clearToken as clearDropboxToken, clearEncryptionKey, clearGithubToken, clearGoogleDriveToken, clearICloudAuth, clearKeyPair, clearLazyTitleCache, clearMemoryTopicsOverrideOp, clearNotionToken, clearServerToolsCache, consoleLogger, conversationMemoryToStored, cosineInt8, createAutoExtractor, createChunkVectorCache, createCryptoPricePreProcessor, createDecaySweeper, createGitHubTools, createLlmDecayClassifier, createLlmNeighborRefiner, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageSourceResolver, createPlatformCursorStore, createProjectOp, createRecallTool, createSavedToolOp, createServerToolsFilter, createStockPricePreProcessor, createVaultEmbeddingCache, createVaultFolderOp, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decodeChunkVector, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllAppFilesOp, deleteAllVaultMemoriesForUserOp, deleteAppFileOp, deleteEncryptedFile, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteProjectOp, deleteSavedToolOp, deleteVaultFolderOp, deleteVaultMemoryOp, dequantizeEmbedding, eagerEmbedContent, embedAllMessages, embedMessage, encodeChunkVector, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, ensureDefaultFoldersOp, expandToolSetsAdditive, exportElementToPdf, exportMarkdownToPdf, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, extractFileIds, fileExists, findById, findMatchingTools, findParentOfId, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllSavedToolsOp, getAllVaultFoldersOp, getAllVaultMemoriesOp, getAllVaultMemoryContentsOp, getAndClearCalendarPendingMessage, getAndClearCalendarReturnUrl, getAndClearDrivePendingMessage, getAndClearDriveReturnUrl, getAndClearGithubPendingMessage, getAndClearGithubReturnUrl, getAndClearNotionPendingMessage, getAndClearNotionReturnUrl, getAppFileMapOp, getAppFileOp, getAppFilesOp, getAudioOp, getCachedServerTools, getCalendarAccessToken, getConversationMemoriesOp, getConversationsByProjectLazyOp, getConversationsByProjectOp, getConversationsLazyOp, getConversationsPageOp, getDecayCandidatesRawOp, getDocumentsOp, getDriveAccessToken, getEncryptionKey, getEntitiesByMemoryIdsOp, getGithubAccessToken, getGoogleDriveStoredToken, getId, getImagesOp, getLogger, getMediaByConversationOp, getMediaByIdOp, getMediaByIdsOp, getMediaByMessageOp, getMediaByModelOp, getMediaByRoleOp, getMediaBySourceUrlOp, getMediaByTypeOp, getMediaCountOp, getMediaCountsByTypeOp, getMediaOp, getMediaTypeFromMime, getMemoriesByEntityNamesOp, getMemoriesNeedingTopicExtractionOp, getNotionAccessToken, getNotionMCPUrl, getNumberAttr, getProjectConversationCountOp, getProjectConversationsOp, getProjectOp, getProjectsOp, getRecentMediaOp, getSavedToolByIdOp, getServerTools, getStringAttr, getSupportedFileTypes, getToolsChecksum, getUnfiledVaultMemoriesOp, getUserUploadedMediaOp, getValidCalendarToken, getValidDriveToken, getValidGithubToken, getValidNotionToken, getVaultCandidateKeysOp, getVaultEmbeddingsByIdsOp, getVaultFolderMemoryCountOp, getVaultMemoriesByIdsOp, getVaultMemoryOp, getVaultRankingProjectionsOp, getVideosOp, handleCalendarCallback, handleDriveCallback, handleGithubCallback, handleNotionCallback, hardDeleteDecayedOp, hardDeleteMediaOp, hasCalendarCredentials, hasDriveCredentials, hasDropboxCredentials, hasEncryptionKey, hasGithubCredentials, hasGoogleDriveCredentials, hasICloudCredentials, hasKeyPair, hasNotionCredentials, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, insertAfterId, insertChild, isAnumaTag, isCalendarCallback, isDegradedTopicSkip, isDriveCallback, isGithubCallback, isHtmlTag, isNotionCallback, isOPFSSupported, isR2UrlExpired, isRerankerAvailable, isSupportedFile, isSupportedMediaType, linkMemoryEntitiesOp, mediaToStored, migrateCalendarToken, migrateDisplayResult, migrateDriveToken, migrateGithubToken, migrateNotionClientRegistration, migrateNotionToken, moveMemoriesToFolderOp, noopLogger, onKeyAvailable, parseJsx, parseMedia, preEmbedVaultMemories, preprocessFiles, previewToolSelection, projectToStored, putAppFileOp, quantizeEmbedding, queueManager, rankProfileCandidates, readEncryptedFile, recall, reflect, refreshCalendarToken, refreshDriveToken, refreshEncryptionKeyIfMatches, refreshGithubToken, refreshNotionToken, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, removeById, renderAnumaJsx, renderAnumaTree, renderElementToCanvas, replaceById, replaceMemoryEntitiesGuardedOp, requestEncryptionKey, requestKeyPair, resolveFilePlaceholders, resolveThemeColor, restoreVaultMemoryOp, resumeStream, retain, revokeCalendarToken, revokeDriveToken, revokeGithubToken, revokeNotionAccess, savedToolToStored, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, selectServerToolsForPrompt, serializeJsx, setLogger, setMemoryEntitiesOp, setMemoryVisibilityOp, settingsStorageSchema, shouldChunkMessage, shouldRefreshTools, stampTopicsExtractedAtOp, startGithubAuth, startNotionAuth, storeCalendarPendingMessage, storeCalendarReturnUrl, storeCalendarToken, storeDrivePendingMessage, storeDriveReturnUrl, storeDriveToken, storeGithubPendingMessage, storeGithubReturnUrl, storeGithubToken, storeNotionPendingMessage, storeNotionReturnUrl, streamCancelPath, streamReplayPath, summarizeObservationTrends, supersedeVaultMemoryOp, synthesizeProfile, traverseGraphLane, ttlForType, updateAttrs, updateConversationProjectOp, updateMediaMessageIdBatchOp, updateMediaOp, updateMessageFeedbackOp, updateProjectNameOp, updateProjectOp, updateSavedToolOp, updateVaultFolderContextOp, updateVaultFolderOp, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, useAnumaTheme, useBackup, useBackupAuth, useChat, useChatStorage, useCredits, useDatabaseManager, useDropboxAuth, useDropboxBackup, useEncryption, useExportPdf, useFiles, useGoogleDriveAuth, useGoogleDriveBackup, useICloudAuth, useICloudBackup, useModels, useOCR, usePdf, usePhoneCalls, useProjects, useSettings, useSubscription, useTools, useUIInteraction, useVoice, useWalletBinding, userPreferencesStorageSchema, verifyMemoriesForPublish, walk, webPlatformStorage, writeEncryptedFile };