@anuma/sdk 3.12.2 → 3.13.1

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.
@@ -78,8 +78,17 @@ import { ResultCallback } from '@nozbe/watermelondb/utils/fp/Result';
78
78
  * is TWO-tier (`private | public`); null — and any unrecognised value —
79
79
  * reads as 'private', so nothing pre-existing is ever published without an
80
80
  * explicit visibility write
81
- */
82
- declare const SDK_SCHEMA_VERSION = 41;
81
+ * - v42: Added topics, topics_updated_at columns to memory_vault so a memory's
82
+ * topics become the DURABLE record and `entity` / `memory_entity` become a
83
+ * device-local index over it. Those two tables never sync (entity ids are
84
+ * locally generated), so a restored device used to receive "curated" /
85
+ * "already extracted" flags on memories with zero topic links and the graph
86
+ * recall lane stayed dead. `topics` carries the names across devices;
87
+ * `topics_updated_at` is a SECOND timestamp because every topic writer pins
88
+ * `updated_at` on purpose (recall's recency multiplier) and both sync paths
89
+ * key on `updated_at`, so a topic-only change would neither upload nor merge
90
+ */
91
+ declare const SDK_SCHEMA_VERSION = 42;
83
92
  /**
84
93
  * Combined WatermelonDB schema for all SDK storage modules.
85
94
  *
@@ -165,6 +174,7 @@ declare const sdkSchema: Readonly<{
165
174
  * - v38 → v39: Added `last_observed_at` column to memory_vault (C3 re-observation watermark; stamped on retain merge, distinct from updated_at)
166
175
  * - v39 → v40: Added `fact_type`, `archived_at`, `trust_tier` columns to memory_vault for typed memory + decay + Tier-0 security (all nullable + plaintext, NULL backfill)
167
176
  * - v40 → v41: Added `visibility`, `twin_opt_in`, `published_at`, `geohash` columns to memory_vault for the People Nearby cross-user visibility axis (two-tier `private | public`; null/unknown grandfathered as 'private')
177
+ * - v41 → v42: Added `topics` + `topics_updated_at` columns to memory_vault, making a memory's topics the durable synced record and `entity`/`memory_entity` a device-local index over it (null `topics` = pre-v42, backfilled from the row's current links by the sweep)
168
178
  */
169
179
  declare const sdkMigrations: Readonly<{
170
180
  validated: true;
@@ -4348,14 +4358,23 @@ declare class VaultMemory extends Model$1 {
4348
4358
  /** When true, the user has manually set this memory's topics; auto-extraction
4349
4359
  * leaves its entity links alone. Null on legacy rows (treated as false). */
4350
4360
  topicsUserManaged: boolean | null;
4361
+ /** The durable, synced record of this memory's topics — JSON `StoredTopic[]`.
4362
+ * `entity` / `memory_entity` are a device-local index over it. Null = pre-v42
4363
+ * (backfilled from the row's current links by the sweep). */
4364
+ topics: string | null;
4365
+ /** Unix ms of the last `topics` write. Separate from `updated_at`, which every
4366
+ * topic writer pins on purpose (recall recency) — see the schema note. */
4367
+ topicsUpdatedAt: number | null;
4351
4368
  /** Unix ms of the last LLM topic-extraction pass. Null = never extracted
4352
- * standalone (linked legacy rows are grandfathered as extracted). */
4369
+ * standalone (linked legacy rows are grandfathered as extracted).
4370
+ * DEPRECATED (v42) — subsumed by `topics_updated_at`; see the schema note. */
4353
4371
  topicsExtractedAt: number | null;
4354
4372
  /** A2 supersession: newer memory id that replaced this one, or null if live. */
4355
4373
  supersededBy: string | null;
4356
4374
  supersededAt: number | null;
4357
4375
  /** Extraction-logic version this memory was last stamped under. Null (pre-v38)
4358
- * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows. */
4376
+ * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows.
4377
+ * DEPRECATED (v42) — subsumed by `topics_updated_at`; see the schema note. */
4359
4378
  topicsExtractedVersion: number | null;
4360
4379
  /** C3 re-observation watermark: Unix ms of the last retain() merge, or null. */
4361
4380
  lastObservedAt: number | null;
@@ -4424,6 +4443,33 @@ declare class MemoryEntity extends Model$1 {
4424
4443
  declare const ENTITY_KINDS: readonly ["person", "organization", "place", "event", "product", "thing", "concept", "other"];
4425
4444
  /** @public */
4426
4445
  type EntityKind = (typeof ENTITY_KINDS)[number];
4446
+ /**
4447
+ * Who put a topic on a memory. Written to `memory_vault.topics` but not yet
4448
+ * READ anywhere — it exists so a later improvement can refresh the `auto`
4449
+ * entries of a curated memory while leaving `user` entries alone (today
4450
+ * `topics_user_managed` is all-or-nothing per memory) without needing a second
4451
+ * migration or backfill. Don't build that behavior off it yet.
4452
+ *
4453
+ * When you do: a value written by the v42 backfill is NOT ground truth. Pre-v42
4454
+ * rows carry no per-topic provenance, so `backfillMemoryTopicsOp` derives it
4455
+ * from the per-memory `topics_user_managed` flag and stamps a curated legacy
4456
+ * row's every topic `user` — see the note at that derivation.
4457
+ * @public
4458
+ */
4459
+ type TopicSource = "user" | "auto";
4460
+ /**
4461
+ * One entry in `memory_vault.topics` — the durable, synced record of a memory's
4462
+ * topics. `name` carries the CALLER's display casing, unlike
4463
+ * {@link StoredEntity.canonicalName}, which {@link normalizeEntityName}
4464
+ * lowercases and which has no display column: preserving casing here is the
4465
+ * point of storing names on the memory row.
4466
+ * @public
4467
+ */
4468
+ interface StoredTopic {
4469
+ name: string;
4470
+ kind?: string;
4471
+ source: TopicSource;
4472
+ }
4427
4473
 
4428
4474
  interface EntityOperationsContext {
4429
4475
  database: Database;
@@ -5715,9 +5761,17 @@ interface StoredVaultMemory {
5715
5761
  /** When true, the user has manually set this memory's topics (entity links);
5716
5762
  * auto-extraction leaves them alone. False on legacy/auto rows. */
5717
5763
  topicsUserManaged: boolean;
5764
+ /** The memory's topics as the DURABLE, synced record — `entity` /
5765
+ * `memory_entity` are a device-local index over it. Null = pre-v42, no record
5766
+ * yet; `[]` = a record of "no topics". */
5767
+ topics: StoredTopic[] | null;
5768
+ /** Unix ms of the last `topics` write, or null if never written. Separate from
5769
+ * `updatedAt`, which topic writes deliberately pin (recall recency). */
5770
+ topicsUpdatedAt: number | null;
5718
5771
  /** Unix ms of the last LLM topic-extraction pass over this memory's content.
5719
5772
  * Null = never extracted standalone; rows that already carry entity links
5720
- * are grandfathered as extracted (see getMemoriesNeedingTopicExtractionOp). */
5773
+ * are grandfathered as extracted (see getMemoriesNeedingTopicExtractionOp).
5774
+ * DEPRECATED (v42) — subsumed by `topicsUpdatedAt`; see the schema note. */
5721
5775
  topicsExtractedAt: number | null;
5722
5776
  /** Write-time supersession (A2): id of the newer memory that replaced this
5723
5777
  * one (incompatible-value update, e.g. "Lives in Portland" → "Lives in SF").
@@ -5727,7 +5781,8 @@ interface StoredVaultMemory {
5727
5781
  /** Unix ms when this memory was superseded. Null when live. */
5728
5782
  supersededAt: number | null;
5729
5783
  /** Extraction-logic version this memory was last stamped under. Null (pre-v38)
5730
- * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows. */
5784
+ * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows.
5785
+ * DEPRECATED (v42) — subsumed by `topicsUpdatedAt`; see the schema note. */
5731
5786
  topicsExtractedVersion: number | null;
5732
5787
  /** C3 re-observation watermark: Unix ms of the last retain() merge into this
5733
5788
  * fact. Distinct from `updatedAt` (which merges preserve). Null = never
@@ -5996,20 +6051,54 @@ interface MemoriesNeedingTopicExtraction {
5996
6051
  * grandfather backlog is drained across sweeps rather than in one spike.
5997
6052
  */
5998
6053
  linkedUnstamped: string[];
6054
+ /**
6055
+ * IDs whose `topics` record disagrees with their `memory_entity` links — the
6056
+ * restored-device case, where the synced record arrived but the device-local
6057
+ * index (which can never sync) did not. Rebuild with
6058
+ * {@link relinkMemoryTopicsOp}: no LLM call, and no `memory_vault` write, so a
6059
+ * restore doesn't re-upload the vault.
6060
+ *
6061
+ * INCLUDES user-managed rows. A curated memory's index needs rebuilding just
6062
+ * like an auto one, and the flag it arrives with is what keeps the autotagger
6063
+ * off it — so unlike {@link pending} / {@link linkedUnstamped}, this bucket is
6064
+ * not filtered by ownership. Bounded by `limit`.
6065
+ */
6066
+ topicsToRelink: string[];
6067
+ /**
6068
+ * IDs that have links but no `topics` record at all — rows predating v42,
6069
+ * whose topics would otherwise never reach the server. Fill with
6070
+ * {@link backfillMemoryTopicsOp} (no LLM call), which derives the record from
6071
+ * the links already there.
6072
+ *
6073
+ * Also includes user-managed rows, for the same reason: a curated memory's
6074
+ * topics are exactly the ones worth preserving across a migration. Bounded by
6075
+ * `limit` because filling `topics` bumps `topics_updated_at` and so re-uploads
6076
+ * the row (embedding included) — uncapped, the first sweep after upgrade would
6077
+ * re-upload the entire vault at once. Rows already in {@link pending} are
6078
+ * excluded: their imminent LLM pass writes `topics` anyway.
6079
+ */
6080
+ topicsBackfill: string[];
5999
6081
  }
6000
6082
  /**
6001
- * Sweep query for the background topic-extraction worker: partition the
6002
- * user's non-deleted, non-user-managed memories by what the worker should do
6003
- * with them (see {@link MemoriesNeedingTopicExtraction}). User-managed rows
6004
- * are never returned — the user owns their topics, including an intentionally
6005
- * empty set. Requires `ctx.entityCtx` for the entity-links check.
6083
+ * Sweep query for the background topic-extraction worker: partition the user's
6084
+ * non-deleted memories by what the worker should do with them (see
6085
+ * {@link MemoriesNeedingTopicExtraction}). Requires `ctx.entityCtx` for the
6086
+ * entity-links check.
6087
+ *
6088
+ * User-managed rows are excluded from the two LLM-facing buckets — the user owns
6089
+ * their topics, including an intentionally empty set — but NOT from
6090
+ * `topicsToRelink` / `topicsBackfill`, which only move a curated row's topics
6091
+ * between the record and the index and never re-derive them. That's why the
6092
+ * ownership filter lives in the partition below rather than in the query: a
6093
+ * restored curated memory is exactly the row whose index must be rebuilt.
6006
6094
  */
6007
6095
  declare function getMemoriesNeedingTopicExtractionOp(ctx: VaultMemoryOperationsContext, options?: {
6008
6096
  limit?: number;
6009
6097
  }): Promise<MemoriesNeedingTopicExtraction>;
6010
6098
  /**
6011
6099
  * Stamp `topics_extracted_at` (and `topics_extracted_version`) on the given
6012
- * memories — the topic worker calls this after a successful extraction pass
6100
+ * memories — both DEPRECATED (v42), subsumed by `topics_updated_at`; see the
6101
+ * schema note. The topic worker calls this after a successful extraction pass
6013
6102
  * (including zero-entity results, so quiet memories aren't re-asked every sweep)
6014
6103
  * and to grandfather `linkedUnstamped` rows without an LLM call. `version`
6015
6104
  * defaults to {@link TOPICS_EXTRACTION_VERSION}: stamping at the current version
@@ -6033,6 +6122,37 @@ declare function getMemoriesNeedingTopicExtractionOp(ctx: VaultMemoryOperationsC
6033
6122
  * needed to `prepareUpdate` stays bounded and never spikes the RecordCache.
6034
6123
  */
6035
6124
  declare function stampTopicsExtractedAtOp(ctx: VaultMemoryOperationsContext, memoryIds: readonly string[], extractedAt: number, version?: number): Promise<string[]>;
6125
+ /**
6126
+ * Rebuild the `memory_entity` index for the sweep's `topicsToRelink` rows from
6127
+ * each row's `topics` record — the restored-device repair. No LLM call: every
6128
+ * name already lives on the row.
6129
+ *
6130
+ * Writes NOTHING to `memory_vault`, deliberately. Restored rows are written
6131
+ * `_status: 'synced'`, so touching them would mark the whole vault dirty and
6132
+ * re-upload it (embeddings included) after every migration — the index is
6133
+ * device-local state and rebuilding it is not a change to the memory.
6134
+ * `topics_user_managed` in particular is left exactly as it arrived, so the
6135
+ * autotagger stays off a curated memory whose links this just restored.
6136
+ *
6137
+ * Skips deleted, foreign-user, and record-less rows. Returns the ids relinked.
6138
+ */
6139
+ declare function relinkMemoryTopicsOp(ctx: VaultMemoryOperationsContext, memoryIds: readonly string[]): Promise<string[]>;
6140
+ /**
6141
+ * Fill `topics` for the sweep's `topicsBackfill` rows from the links they
6142
+ * already carry — the one-time migration of pre-v42 rows, whose topics exist
6143
+ * only in the device-local index and so never reach the server. No LLM call.
6144
+ *
6145
+ * Bumps `topics_updated_at` (that's the point — it's what makes the row
6146
+ * upload) while pinning `updated_at`, like every other topic writer. Callers
6147
+ * must pass a `limit`-bounded list: each row's upload carries its embedding, so
6148
+ * an unbounded pass re-uploads the entire vault at once.
6149
+ *
6150
+ * `source` is derived from `topics_user_managed`, the only provenance a legacy
6151
+ * row has: a curated memory's topics are recorded as `user`, everything else as
6152
+ * `auto`. Skips deleted, foreign-user, unlinked rows, and rows that already have
6153
+ * a record. Returns the ids filled.
6154
+ */
6155
+ declare function backfillMemoryTopicsOp(ctx: VaultMemoryOperationsContext, memoryIds: readonly string[]): Promise<string[]>;
6036
6156
  declare function deleteAllVaultMemoriesForUserOp(ctx: VaultMemoryOperationsContext, userId: string): Promise<number>;
6037
6157
  /**
6038
6158
  * The minimal plaintext shape the decay sweep needs — mirrors the `DecayInput`
@@ -9361,4 +9481,4 @@ declare function sanitizeQuotes(s: string): string;
9361
9481
  declare function renderTemplate(value: string | null | undefined, template: string): string | null;
9362
9482
  declare function buildSystemPrompt(ctx: PromptContext, options?: BuildPromptOptions): BuildPromptResult;
9363
9483
 
9364
- 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 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_PROFILE_FACT_TYPE_WEIGHTS, DEFAULT_PROFILE_PROOF_ALPHA, DEFAULT_PROFILE_TREND_MULTIPLIERS, 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 ProfileSalienceInput, 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 RankedProfileCandidate, 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 RunTerminalState, type RunToolLoopOptions, type RunToolLoopResult, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, STREAM_RESUMABLE_HEADER, type ScoreBreakdown, type ScoreProfileSalienceOptions, 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 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 UpdateVaultMemoryOptions, UserPreference, type UserPreferencesStorageOperationsContext, VAULT_SIZE_HOP_CAP, type VaultEmbeddingCache, VaultMemory, type VaultMemoryOperationsContext, type VaultMemoryVisibility, 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, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteModelPreferenceOp, deleteProjectOp, deleteUserPreferenceOp, deleteVaultMemoryOp, eagerEmbedContent, embedAllMessages, embedMessage, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, estimateMessagesTokens, estimateTokens, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, findMatchingTools, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllFilesOp, 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, getVaultMemoryOp, getVideosOp, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasKeyPair, injectionSignatureCatalog, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, selectServerToolsForPrompt, serverPlatformStorage, setMemoryVisibilityOp, 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, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, upsertConversationSummaryOp, upsertMessageOp };
9484
+ 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 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_PROFILE_FACT_TYPE_WEIGHTS, DEFAULT_PROFILE_PROOF_ALPHA, DEFAULT_PROFILE_TREND_MULTIPLIERS, 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 ProfileSalienceInput, 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 RankedProfileCandidate, 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 RunTerminalState, type RunToolLoopOptions, type RunToolLoopResult, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, STREAM_RESUMABLE_HEADER, type ScoreBreakdown, type ScoreProfileSalienceOptions, 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 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 UpdateVaultMemoryOptions, UserPreference, type UserPreferencesStorageOperationsContext, VAULT_SIZE_HOP_CAP, type VaultEmbeddingCache, VaultMemory, type VaultMemoryOperationsContext, type VaultMemoryVisibility, type VaultSaveOperation, type VaultSearchResult, WalletPoller, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, WordProcessor, ZipProcessor, type ZipProcessorOptions, activatedToolSetNames, analyzeStyle, archiveVaultMemoryOp, backfillMemoryTopicsOp, 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, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteModelPreferenceOp, deleteProjectOp, deleteUserPreferenceOp, deleteVaultMemoryOp, eagerEmbedContent, embedAllMessages, embedMessage, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, estimateMessagesTokens, estimateTokens, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, findMatchingTools, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllFilesOp, 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, getVaultMemoryOp, getVideosOp, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasKeyPair, injectionSignatureCatalog, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, selectServerToolsForPrompt, serverPlatformStorage, setMemoryVisibilityOp, 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, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, upsertConversationSummaryOp, upsertMessageOp };
@@ -78,8 +78,17 @@ import { ResultCallback } from '@nozbe/watermelondb/utils/fp/Result';
78
78
  * is TWO-tier (`private | public`); null — and any unrecognised value —
79
79
  * reads as 'private', so nothing pre-existing is ever published without an
80
80
  * explicit visibility write
81
- */
82
- declare const SDK_SCHEMA_VERSION = 41;
81
+ * - v42: Added topics, topics_updated_at columns to memory_vault so a memory's
82
+ * topics become the DURABLE record and `entity` / `memory_entity` become a
83
+ * device-local index over it. Those two tables never sync (entity ids are
84
+ * locally generated), so a restored device used to receive "curated" /
85
+ * "already extracted" flags on memories with zero topic links and the graph
86
+ * recall lane stayed dead. `topics` carries the names across devices;
87
+ * `topics_updated_at` is a SECOND timestamp because every topic writer pins
88
+ * `updated_at` on purpose (recall's recency multiplier) and both sync paths
89
+ * key on `updated_at`, so a topic-only change would neither upload nor merge
90
+ */
91
+ declare const SDK_SCHEMA_VERSION = 42;
83
92
  /**
84
93
  * Combined WatermelonDB schema for all SDK storage modules.
85
94
  *
@@ -165,6 +174,7 @@ declare const sdkSchema: Readonly<{
165
174
  * - v38 → v39: Added `last_observed_at` column to memory_vault (C3 re-observation watermark; stamped on retain merge, distinct from updated_at)
166
175
  * - v39 → v40: Added `fact_type`, `archived_at`, `trust_tier` columns to memory_vault for typed memory + decay + Tier-0 security (all nullable + plaintext, NULL backfill)
167
176
  * - v40 → v41: Added `visibility`, `twin_opt_in`, `published_at`, `geohash` columns to memory_vault for the People Nearby cross-user visibility axis (two-tier `private | public`; null/unknown grandfathered as 'private')
177
+ * - v41 → v42: Added `topics` + `topics_updated_at` columns to memory_vault, making a memory's topics the durable synced record and `entity`/`memory_entity` a device-local index over it (null `topics` = pre-v42, backfilled from the row's current links by the sweep)
168
178
  */
169
179
  declare const sdkMigrations: Readonly<{
170
180
  validated: true;
@@ -4348,14 +4358,23 @@ declare class VaultMemory extends Model$1 {
4348
4358
  /** When true, the user has manually set this memory's topics; auto-extraction
4349
4359
  * leaves its entity links alone. Null on legacy rows (treated as false). */
4350
4360
  topicsUserManaged: boolean | null;
4361
+ /** The durable, synced record of this memory's topics — JSON `StoredTopic[]`.
4362
+ * `entity` / `memory_entity` are a device-local index over it. Null = pre-v42
4363
+ * (backfilled from the row's current links by the sweep). */
4364
+ topics: string | null;
4365
+ /** Unix ms of the last `topics` write. Separate from `updated_at`, which every
4366
+ * topic writer pins on purpose (recall recency) — see the schema note. */
4367
+ topicsUpdatedAt: number | null;
4351
4368
  /** Unix ms of the last LLM topic-extraction pass. Null = never extracted
4352
- * standalone (linked legacy rows are grandfathered as extracted). */
4369
+ * standalone (linked legacy rows are grandfathered as extracted).
4370
+ * DEPRECATED (v42) — subsumed by `topics_updated_at`; see the schema note. */
4353
4371
  topicsExtractedAt: number | null;
4354
4372
  /** A2 supersession: newer memory id that replaced this one, or null if live. */
4355
4373
  supersededBy: string | null;
4356
4374
  supersededAt: number | null;
4357
4375
  /** Extraction-logic version this memory was last stamped under. Null (pre-v38)
4358
- * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows. */
4376
+ * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows.
4377
+ * DEPRECATED (v42) — subsumed by `topics_updated_at`; see the schema note. */
4359
4378
  topicsExtractedVersion: number | null;
4360
4379
  /** C3 re-observation watermark: Unix ms of the last retain() merge, or null. */
4361
4380
  lastObservedAt: number | null;
@@ -4424,6 +4443,33 @@ declare class MemoryEntity extends Model$1 {
4424
4443
  declare const ENTITY_KINDS: readonly ["person", "organization", "place", "event", "product", "thing", "concept", "other"];
4425
4444
  /** @public */
4426
4445
  type EntityKind = (typeof ENTITY_KINDS)[number];
4446
+ /**
4447
+ * Who put a topic on a memory. Written to `memory_vault.topics` but not yet
4448
+ * READ anywhere — it exists so a later improvement can refresh the `auto`
4449
+ * entries of a curated memory while leaving `user` entries alone (today
4450
+ * `topics_user_managed` is all-or-nothing per memory) without needing a second
4451
+ * migration or backfill. Don't build that behavior off it yet.
4452
+ *
4453
+ * When you do: a value written by the v42 backfill is NOT ground truth. Pre-v42
4454
+ * rows carry no per-topic provenance, so `backfillMemoryTopicsOp` derives it
4455
+ * from the per-memory `topics_user_managed` flag and stamps a curated legacy
4456
+ * row's every topic `user` — see the note at that derivation.
4457
+ * @public
4458
+ */
4459
+ type TopicSource = "user" | "auto";
4460
+ /**
4461
+ * One entry in `memory_vault.topics` — the durable, synced record of a memory's
4462
+ * topics. `name` carries the CALLER's display casing, unlike
4463
+ * {@link StoredEntity.canonicalName}, which {@link normalizeEntityName}
4464
+ * lowercases and which has no display column: preserving casing here is the
4465
+ * point of storing names on the memory row.
4466
+ * @public
4467
+ */
4468
+ interface StoredTopic {
4469
+ name: string;
4470
+ kind?: string;
4471
+ source: TopicSource;
4472
+ }
4427
4473
 
4428
4474
  interface EntityOperationsContext {
4429
4475
  database: Database;
@@ -5715,9 +5761,17 @@ interface StoredVaultMemory {
5715
5761
  /** When true, the user has manually set this memory's topics (entity links);
5716
5762
  * auto-extraction leaves them alone. False on legacy/auto rows. */
5717
5763
  topicsUserManaged: boolean;
5764
+ /** The memory's topics as the DURABLE, synced record — `entity` /
5765
+ * `memory_entity` are a device-local index over it. Null = pre-v42, no record
5766
+ * yet; `[]` = a record of "no topics". */
5767
+ topics: StoredTopic[] | null;
5768
+ /** Unix ms of the last `topics` write, or null if never written. Separate from
5769
+ * `updatedAt`, which topic writes deliberately pin (recall recency). */
5770
+ topicsUpdatedAt: number | null;
5718
5771
  /** Unix ms of the last LLM topic-extraction pass over this memory's content.
5719
5772
  * Null = never extracted standalone; rows that already carry entity links
5720
- * are grandfathered as extracted (see getMemoriesNeedingTopicExtractionOp). */
5773
+ * are grandfathered as extracted (see getMemoriesNeedingTopicExtractionOp).
5774
+ * DEPRECATED (v42) — subsumed by `topicsUpdatedAt`; see the schema note. */
5721
5775
  topicsExtractedAt: number | null;
5722
5776
  /** Write-time supersession (A2): id of the newer memory that replaced this
5723
5777
  * one (incompatible-value update, e.g. "Lives in Portland" → "Lives in SF").
@@ -5727,7 +5781,8 @@ interface StoredVaultMemory {
5727
5781
  /** Unix ms when this memory was superseded. Null when live. */
5728
5782
  supersededAt: number | null;
5729
5783
  /** Extraction-logic version this memory was last stamped under. Null (pre-v38)
5730
- * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows. */
5784
+ * reads as 0, so a TOPICS_EXTRACTION_VERSION bump re-extracts stale rows.
5785
+ * DEPRECATED (v42) — subsumed by `topicsUpdatedAt`; see the schema note. */
5731
5786
  topicsExtractedVersion: number | null;
5732
5787
  /** C3 re-observation watermark: Unix ms of the last retain() merge into this
5733
5788
  * fact. Distinct from `updatedAt` (which merges preserve). Null = never
@@ -5996,20 +6051,54 @@ interface MemoriesNeedingTopicExtraction {
5996
6051
  * grandfather backlog is drained across sweeps rather than in one spike.
5997
6052
  */
5998
6053
  linkedUnstamped: string[];
6054
+ /**
6055
+ * IDs whose `topics` record disagrees with their `memory_entity` links — the
6056
+ * restored-device case, where the synced record arrived but the device-local
6057
+ * index (which can never sync) did not. Rebuild with
6058
+ * {@link relinkMemoryTopicsOp}: no LLM call, and no `memory_vault` write, so a
6059
+ * restore doesn't re-upload the vault.
6060
+ *
6061
+ * INCLUDES user-managed rows. A curated memory's index needs rebuilding just
6062
+ * like an auto one, and the flag it arrives with is what keeps the autotagger
6063
+ * off it — so unlike {@link pending} / {@link linkedUnstamped}, this bucket is
6064
+ * not filtered by ownership. Bounded by `limit`.
6065
+ */
6066
+ topicsToRelink: string[];
6067
+ /**
6068
+ * IDs that have links but no `topics` record at all — rows predating v42,
6069
+ * whose topics would otherwise never reach the server. Fill with
6070
+ * {@link backfillMemoryTopicsOp} (no LLM call), which derives the record from
6071
+ * the links already there.
6072
+ *
6073
+ * Also includes user-managed rows, for the same reason: a curated memory's
6074
+ * topics are exactly the ones worth preserving across a migration. Bounded by
6075
+ * `limit` because filling `topics` bumps `topics_updated_at` and so re-uploads
6076
+ * the row (embedding included) — uncapped, the first sweep after upgrade would
6077
+ * re-upload the entire vault at once. Rows already in {@link pending} are
6078
+ * excluded: their imminent LLM pass writes `topics` anyway.
6079
+ */
6080
+ topicsBackfill: string[];
5999
6081
  }
6000
6082
  /**
6001
- * Sweep query for the background topic-extraction worker: partition the
6002
- * user's non-deleted, non-user-managed memories by what the worker should do
6003
- * with them (see {@link MemoriesNeedingTopicExtraction}). User-managed rows
6004
- * are never returned — the user owns their topics, including an intentionally
6005
- * empty set. Requires `ctx.entityCtx` for the entity-links check.
6083
+ * Sweep query for the background topic-extraction worker: partition the user's
6084
+ * non-deleted memories by what the worker should do with them (see
6085
+ * {@link MemoriesNeedingTopicExtraction}). Requires `ctx.entityCtx` for the
6086
+ * entity-links check.
6087
+ *
6088
+ * User-managed rows are excluded from the two LLM-facing buckets — the user owns
6089
+ * their topics, including an intentionally empty set — but NOT from
6090
+ * `topicsToRelink` / `topicsBackfill`, which only move a curated row's topics
6091
+ * between the record and the index and never re-derive them. That's why the
6092
+ * ownership filter lives in the partition below rather than in the query: a
6093
+ * restored curated memory is exactly the row whose index must be rebuilt.
6006
6094
  */
6007
6095
  declare function getMemoriesNeedingTopicExtractionOp(ctx: VaultMemoryOperationsContext, options?: {
6008
6096
  limit?: number;
6009
6097
  }): Promise<MemoriesNeedingTopicExtraction>;
6010
6098
  /**
6011
6099
  * Stamp `topics_extracted_at` (and `topics_extracted_version`) on the given
6012
- * memories — the topic worker calls this after a successful extraction pass
6100
+ * memories — both DEPRECATED (v42), subsumed by `topics_updated_at`; see the
6101
+ * schema note. The topic worker calls this after a successful extraction pass
6013
6102
  * (including zero-entity results, so quiet memories aren't re-asked every sweep)
6014
6103
  * and to grandfather `linkedUnstamped` rows without an LLM call. `version`
6015
6104
  * defaults to {@link TOPICS_EXTRACTION_VERSION}: stamping at the current version
@@ -6033,6 +6122,37 @@ declare function getMemoriesNeedingTopicExtractionOp(ctx: VaultMemoryOperationsC
6033
6122
  * needed to `prepareUpdate` stays bounded and never spikes the RecordCache.
6034
6123
  */
6035
6124
  declare function stampTopicsExtractedAtOp(ctx: VaultMemoryOperationsContext, memoryIds: readonly string[], extractedAt: number, version?: number): Promise<string[]>;
6125
+ /**
6126
+ * Rebuild the `memory_entity` index for the sweep's `topicsToRelink` rows from
6127
+ * each row's `topics` record — the restored-device repair. No LLM call: every
6128
+ * name already lives on the row.
6129
+ *
6130
+ * Writes NOTHING to `memory_vault`, deliberately. Restored rows are written
6131
+ * `_status: 'synced'`, so touching them would mark the whole vault dirty and
6132
+ * re-upload it (embeddings included) after every migration — the index is
6133
+ * device-local state and rebuilding it is not a change to the memory.
6134
+ * `topics_user_managed` in particular is left exactly as it arrived, so the
6135
+ * autotagger stays off a curated memory whose links this just restored.
6136
+ *
6137
+ * Skips deleted, foreign-user, and record-less rows. Returns the ids relinked.
6138
+ */
6139
+ declare function relinkMemoryTopicsOp(ctx: VaultMemoryOperationsContext, memoryIds: readonly string[]): Promise<string[]>;
6140
+ /**
6141
+ * Fill `topics` for the sweep's `topicsBackfill` rows from the links they
6142
+ * already carry — the one-time migration of pre-v42 rows, whose topics exist
6143
+ * only in the device-local index and so never reach the server. No LLM call.
6144
+ *
6145
+ * Bumps `topics_updated_at` (that's the point — it's what makes the row
6146
+ * upload) while pinning `updated_at`, like every other topic writer. Callers
6147
+ * must pass a `limit`-bounded list: each row's upload carries its embedding, so
6148
+ * an unbounded pass re-uploads the entire vault at once.
6149
+ *
6150
+ * `source` is derived from `topics_user_managed`, the only provenance a legacy
6151
+ * row has: a curated memory's topics are recorded as `user`, everything else as
6152
+ * `auto`. Skips deleted, foreign-user, unlinked rows, and rows that already have
6153
+ * a record. Returns the ids filled.
6154
+ */
6155
+ declare function backfillMemoryTopicsOp(ctx: VaultMemoryOperationsContext, memoryIds: readonly string[]): Promise<string[]>;
6036
6156
  declare function deleteAllVaultMemoriesForUserOp(ctx: VaultMemoryOperationsContext, userId: string): Promise<number>;
6037
6157
  /**
6038
6158
  * The minimal plaintext shape the decay sweep needs — mirrors the `DecayInput`
@@ -9361,4 +9481,4 @@ declare function sanitizeQuotes(s: string): string;
9361
9481
  declare function renderTemplate(value: string | null | undefined, template: string): string | null;
9362
9482
  declare function buildSystemPrompt(ctx: PromptContext, options?: BuildPromptOptions): BuildPromptResult;
9363
9483
 
9364
- 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 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_PROFILE_FACT_TYPE_WEIGHTS, DEFAULT_PROFILE_PROOF_ALPHA, DEFAULT_PROFILE_TREND_MULTIPLIERS, 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 ProfileSalienceInput, 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 RankedProfileCandidate, 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 RunTerminalState, type RunToolLoopOptions, type RunToolLoopResult, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, STREAM_RESUMABLE_HEADER, type ScoreBreakdown, type ScoreProfileSalienceOptions, 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 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 UpdateVaultMemoryOptions, UserPreference, type UserPreferencesStorageOperationsContext, VAULT_SIZE_HOP_CAP, type VaultEmbeddingCache, VaultMemory, type VaultMemoryOperationsContext, type VaultMemoryVisibility, 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, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteModelPreferenceOp, deleteProjectOp, deleteUserPreferenceOp, deleteVaultMemoryOp, eagerEmbedContent, embedAllMessages, embedMessage, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, estimateMessagesTokens, estimateTokens, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, findMatchingTools, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllFilesOp, 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, getVaultMemoryOp, getVideosOp, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasKeyPair, injectionSignatureCatalog, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, selectServerToolsForPrompt, serverPlatformStorage, setMemoryVisibilityOp, 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, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, upsertConversationSummaryOp, upsertMessageOp };
9484
+ 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 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_PROFILE_FACT_TYPE_WEIGHTS, DEFAULT_PROFILE_PROOF_ALPHA, DEFAULT_PROFILE_TREND_MULTIPLIERS, 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 ProfileSalienceInput, 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 RankedProfileCandidate, 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 RunTerminalState, type RunToolLoopOptions, type RunToolLoopResult, SDK_SCHEMA_VERSION, SERVER_TOOL_DEPENDENCY_SETS, SHORT_TTL_MS, SLIDER_CONFIG, STREAM_RESUMABLE_HEADER, type ScoreBreakdown, type ScoreProfileSalienceOptions, 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 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 UpdateVaultMemoryOptions, UserPreference, type UserPreferencesStorageOperationsContext, VAULT_SIZE_HOP_CAP, type VaultEmbeddingCache, VaultMemory, type VaultMemoryOperationsContext, type VaultMemoryVisibility, type VaultSaveOperation, type VaultSearchResult, WalletPoller, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, WordProcessor, ZipProcessor, type ZipProcessorOptions, activatedToolSetNames, analyzeStyle, archiveVaultMemoryOp, backfillMemoryTopicsOp, 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, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteModelPreferenceOp, deleteProjectOp, deleteUserPreferenceOp, deleteVaultMemoryOp, eagerEmbedContent, embedAllMessages, embedMessage, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, estimateMessagesTokens, estimateTokens, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, findMatchingTools, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllFilesOp, 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, getVaultMemoryOp, getVideosOp, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasKeyPair, injectionSignatureCatalog, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, selectServerToolsForPrompt, serverPlatformStorage, setMemoryVisibilityOp, 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, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, upsertConversationSummaryOp, upsertMessageOp };