@anuma/sdk 7.2.0 → 7.3.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.
@@ -5765,6 +5765,7 @@ declare function extractFacts(messages: AutoExtractMessage[], options: ExtractFa
5765
5765
  * look like `no-facts`.
5766
5766
  */
5767
5767
  type ExtractOutcome = "extracted" | "no-facts" | "empty-after-retry" | "dropped-after-redaction";
5768
+ type WriteFailureReason = "source-ineligible" | "embeddings-unavailable" | "merge-not-persisted" | "aborted" | "unknown";
5768
5769
  /**
5769
5770
  * Stage 2 — for each extracted candidate, call retain() with auto-merge
5770
5771
  * enabled. When `consolidateOptions` are wired, retain()'s consolidation pass
@@ -5835,6 +5836,7 @@ declare function extractAndRetain(messages: AutoExtractMessage[], retainCtx: Ret
5835
5836
  candidates: ExtractedCandidate[];
5836
5837
  results: RetainResult[];
5837
5838
  failedCount: number;
5839
+ writeFailureReason?: WriteFailureReason;
5838
5840
  outcome: ExtractOutcome;
5839
5841
  /**
5840
5842
  * Tier-0 security (PR3) — candidates quarantined by the injection screen and
@@ -10562,6 +10564,7 @@ interface TurnCompleteEvent {
10562
10564
  results: RetainResult[];
10563
10565
  /** Per-candidate retain() failures. `onError` only fires on pipeline throws. */
10564
10566
  failedCount: number;
10567
+ writeFailureReason?: WriteFailureReason;
10565
10568
  durationMs: number;
10566
10569
  conversationId?: string;
10567
10570
  /**
@@ -11387,6 +11390,10 @@ interface RemoteMemoryQueryOptions extends RemoteMemoryReadFilters {
11387
11390
  updated_after?: number;
11388
11391
  topics_due?: number;
11389
11392
  topics_extracted?: boolean;
11393
+ event_time_overlaps?: {
11394
+ start: number;
11395
+ end: number;
11396
+ };
11390
11397
  order?: "created" | "updated" | "archived" | "changed";
11391
11398
  cursor?: string;
11392
11399
  limit?: number;
@@ -11565,7 +11572,6 @@ interface RemoteMemoryStoreOptions {
11565
11572
  embeddingOptions: EmbeddingOptions;
11566
11573
  /** Defaults to ranking memories by how many query entities their topics name. */
11567
11574
  graphRanking?: RecallFactSource["graphRanking"];
11568
- /** Defaults to no temporal lane: nearby has no event-time filter yet. */
11569
11575
  temporalRanking?: RecallFactSource["temporalRanking"];
11570
11576
  pollIntervalMs?: number;
11571
11577
  }
@@ -15555,4 +15561,4 @@ type UseWalletBindingResult = {
15555
15561
  */
15556
15562
  declare function useWalletBinding(options?: UseWalletBindingOptions): UseWalletBindingResult;
15557
15563
 
15558
- 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_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 ChunkSearchStats, type ChunkVectorCache, type ChunkingOptions, type CircleProps, type ClientToolsFilterFn, type ConsolidationAction, 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_CACHE_EXPIRATION_MS, DEFAULT_CHUNK_CACHE_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, DEFAULT_DECAY_POLICY, 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 DurableAutoExtractorOptions, 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, type ExtractionFunnel, type ExtractionTimings, FILE_PLACEHOLDER_PREFIX, FILE_PLACEHOLDER_REGEX, type FactType, type FileMetadata, type FileProcessingReason, type FileProcessingStatus, type FileProcessor, type FileTypeQuery, type FileWithData, type FlushResult, type GetConversationsPageOptions, type GetMessagesPageOptions, type GraphTraversalOptions, type GroupProps, HARD_DELETE_WINDOW_MS, type ICloudAuthContextValue, ICloudAuthProvider, type ICloudAuthProviderProps, type ICloudExportResult, type ICloudImportResult, INFERENCE_ID_HEADER, INTERNAL_FLOW_MARKER, type IconProps, type ImageProps, type InjectionClassifierOptions, type InjectionReason, type InteractionType, type KnownTag, type LazyStoredConversation, type LineProps, type LlmDecayClassifierOptions, type LlmNeighborRefinerOptions, type LocalMemoryStoreOptions, type Logger, LoggerProvider, type LoggerProviderProps, MAX_HOPS, MEDIUM_TTL_MS, MEMORY_KINDS, MEMORY_LEVELS, type ManualFactType, type MediaDimensions, type MediaFilterOptions, type MediaMetadata, type MediaOperationsContext, type MediaRole, type MediaType, type MemoriesNeedingTopicExtraction, type MemoryContextItem, type MemoryContextLane, type MemoryContextOptions, type MemoryContextResult, type MemoryCreate, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, MemoryEntity as MemoryEntityModel, type MemoryExtractedEvent, MemoryKeyError, type MemoryKeyRing, type MemoryKind, type MemoryLevel, MemoryLevelError, type MemoryListOptions, type MemoryMaintenance, type MemoryMigrationOptions, type MemoryMigrationProgress, type MemoryMigrationResult, type MemoryMigrationSkip, type MemoryQuarantinedEvent, type MemoryRecallOptions, type MemoryRetainOptions, type MemoryStore, type MemorySubscribeOptions, type MemoryToVerify, type MemoryTopic, type MemoryTopicBacklog, type MemoryTopicMaintenance, type MemoryUpdate, 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 RecallEmptyReason, type RecallOptions, type RecallResult, type RecallTelemetryCallbacks, type RecallToolCallbacks, type RecallToolOptions, type RecallTruncation, type RecencyOptions, type RectProps, type ReflectOptions, type ReflectResult, type RemoteMemoryCandidateOptions, type RemoteMemoryDecodeFailure, RemoteMemoryError, type RemoteMemoryListOptions, type RemoteMemoryMetadataPage, type RemoteMemoryMetadataRecord, type RemoteMemoryPage, RemoteMemoryPartialCreateError, type RemoteMemoryPersistence, type RemoteMemoryPersistenceOptions, type RemoteMemoryPipeline, type RemoteMemoryPipelineOptions, type RemoteMemoryQueryOptions, type RemoteMemoryQueryPage, type RemoteMemoryReadFilters, type RemoteMemoryRecord, type RemoteMemoryRow, type RemoteMemoryStoreOptions, type RequestEncryptionKeyOptions, RerankerUnavailableError, type ReservationReceipt, 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 StreamSmoothingConfig, type SynthesizeProfileOptions, THEME_ATTRS, TOOL_RESULT_ORIGIN, TOPICS_EXTRACTION_VERSION, TOPIC_EXTRACTION_BATCH_SIZE, TOPIC_SALIENCE_WEIGHTS, 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 TopicExtractionBatchDiagnostics, type TopicExtractionInput, type TopicExtractionRunResult, type TopicSalience, 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 UseEncryptionResult, type UseExportPdfResult, type UseFilesOptions, type UseFilesResult, 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 VaultEmbeddingExpectation, type VaultFolderOperationsContext, type VaultMemoryKind, type VaultMemoryOperationsContext, type VaultMemoryProjection, type VaultMemoryVisibility, type VaultMemoryWriter, type VaultSaveOperation, type VaultSearchResult, type VaultWriteAction, type VaultWriteInput, type VaultWriteOutcome, 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, assembleMemoryContext, attachFileContextToLastUserMessage, backfillMemoryEntityUserIdsOp, backfillMemoryTopicsOp, buildAttachedFilesText, capHopsForDensity, chatStorageMigrations, chatStorageSchema, chunkAndEmbedAllMessages, chunkAndEmbedMessage, chunkText, classifyCryptoPrice, classifyCryptoPriceBatch, classifyDecay, classifyInjectionCandidates, classifyObservationTrend, classifyStockPrice, classifyStockPriceBatch, classifyWeather, classifyWeatherBatch, classifyWebSearch, classifyWebSearchBatch, clearAllEncryptionKeys, clearAllEncryptionState, clearAllKeyPairs, clearConversationMemoriesOp, clearEncryptionKey, clearICloudAuth, clearKeyPair, clearLazyTitleCache, clearMemoryTopicsOverrideOp, clearModelsCache, clearNotionToken, clearServerToolsCache, consoleLogger, conversationMemoryToStored, cosineInt8, createAutoExtractor, createChunkVectorCache, createCryptoPricePreProcessor, createDecaySweeper, createDurableAutoExtractor, createGitHubTools, createLlmDecayClassifier, createLlmNeighborRefiner, createLocalMemoryStore, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageSourceResolver, createPlatformCursorStore, createProjectOp, createRecallTool, createRemoteMemoryPersistence, createRemoteMemoryPipeline, createRemoteMemoryStore, createSavedToolOp, createServerToolsFilter, createStockPricePreProcessor, createVaultEmbeddingCache, createVaultFolderOp, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decodeChunkVector, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllAppFilesOp, deleteAllVaultMemoriesForUserOp, deleteAppFileOp, deleteEncryptedFile, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteMessageOp, deleteProjectOp, deleteSavedToolOp, deleteVaultFolderOp, deleteVaultMemoryOp, dequantizeEmbedding, deriveKeyFromSignatureBytes, deriveMemoryKeyRing, eagerEmbedContent, embedAllMessages, embedMessage, encodeChunkVector, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, encryptToolCallEventsOp, ensureDefaultFoldersOp, expandToolSetsAdditive, exportElementToPdf, exportMarkdownToPdf, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, extractFileIds, extractMCPImageUrls, extractReservationReceipts, fileExists, findById, findMatchingTools, findParentOfId, formatFileProcessingNotes, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllSavedToolsOp, getAllVaultFoldersOp, getAllVaultMemoriesOp, getAllVaultMemoryContentsOp, getAndClearNotionPendingMessage, getAndClearNotionReturnUrl, getAppFileMapOp, getAppFileOp, getAppFilesOp, getAudioOp, getCachedServerTools, getConversationMemoriesOp, getConversationsByProjectLazyOp, getConversationsByProjectOp, getConversationsLazyOp, getConversationsPageOp, getDecayCandidatesRawOp, getDocumentsOp, getEncryptionKey, getEntitiesByMemoryIdsOp, 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, getValidNotionToken, getVaultCandidateKeysOp, getVaultEmbeddingsByIdsOp, getVaultFolderMemoryCountOp, getVaultMemoriesByIdsOp, getVaultMemoryOp, getVaultRankingProjectionsOp, getVideosOp, handleNotionCallback, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasICloudCredentials, hasKeyPair, hasNotionCredentials, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, insertAfterId, insertChild, isAnumaTag, isAttachedFilesText, isDegradedTopicSkip, isEncrypted, isHtmlTag, isNotionCallback, isOPFSSupported, isR2UrlExpired, isRerankerAvailable, isSupportedFile, isSupportedMediaType, linkMemoryEntitiesOp, maskScopedEmbeddingCache, mediaToStored, memoryCipher, migrateDisplayResult, migrateMemoriesToRemote, migrateNotionClientRegistration, migrateNotionToken, moveMemoriesToFolderOp, noopLogger, onKeyAvailable, parseJsx, parseMedia, preEmbedVaultMemories, preprocessFiles, previewToolSelection, primaryTopic, projectToStored, putAppFileOp, quantizeEmbedding, queueManager, rankProfileCandidates, readEncryptedFile, recall, reencryptMemoryField, reflect, refreshEncryptionKeyIfMatches, refreshNotionToken, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, removeById, renderAnumaJsx, renderAnumaTree, renderElementToCanvas, replaceById, replaceMemoryEntitiesGuardedOp, requestEncryptionKey, requestKeyPair, resolveFilePlaceholders, resolveThemeColor, restoreVaultMemoryOp, resumeStream, retain, revokeNotionAccess, savedToolToStored, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, selectServerToolsForPrompt, serializeJsx, setLogger, setMemoryEntitiesOp, setMemoryVisibilityOp, settingsStorageSchema, shouldChunkMessage, shouldRecallMemory, shouldRefreshTools, stampTopicsExtractedAtOp, startNotionAuth, storeNotionPendingMessage, storeNotionReturnUrl, streamCancelPath, streamReplayPath, stripLegacyChunkTextOp, summarizeObservationTrends, supersedeVaultMemoryOp, synthesizeProfile, topicWeight, traverseGraphLane, ttlForType, updateAttrs, updateConversationProjectOp, updateMediaMessageIdBatchOp, updateMediaOp, updateMessageFeedbackOp, updateProjectNameOp, updateProjectOp, updateSavedToolOp, updateVaultFolderContextOp, updateVaultFolderOp, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, useAnumaTheme, useBackup, useBackupAuth, useChat, useChatStorage, useCredits, useDatabaseManager, useEncryption, useExportPdf, useFiles, useICloudAuth, useICloudBackup, useModels, useOCR, usePdf, usePhoneCalls, useProjects, useSettings, useSubscription, useTools, useUIInteraction, useVoice, useWalletBinding, userPreferencesStorageSchema, verifyMemoriesForPublish, walk, webPlatformStorage, withActiveToolSetServerTools, withInternalFlowMarker, writeEncryptedFile };
15564
+ 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_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 ChunkSearchStats, type ChunkVectorCache, type ChunkingOptions, type CircleProps, type ClientToolsFilterFn, type ConsolidationAction, 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_CACHE_EXPIRATION_MS, DEFAULT_CHUNK_CACHE_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, DEFAULT_DECAY_POLICY, 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 DurableAutoExtractorOptions, 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, type ExtractionFunnel, type ExtractionTimings, FILE_PLACEHOLDER_PREFIX, FILE_PLACEHOLDER_REGEX, type FactType, type FileMetadata, type FileProcessingReason, type FileProcessingStatus, type FileProcessor, type FileTypeQuery, type FileWithData, type FlushResult, type GetConversationsPageOptions, type GetMessagesPageOptions, type GraphTraversalOptions, type GroupProps, HARD_DELETE_WINDOW_MS, type ICloudAuthContextValue, ICloudAuthProvider, type ICloudAuthProviderProps, type ICloudExportResult, type ICloudImportResult, INFERENCE_ID_HEADER, INTERNAL_FLOW_MARKER, type IconProps, type ImageProps, type InjectionClassifierOptions, type InjectionReason, type InteractionType, type KnownTag, type LazyStoredConversation, type LineProps, type LlmDecayClassifierOptions, type LlmNeighborRefinerOptions, type LocalMemoryStoreOptions, type Logger, LoggerProvider, type LoggerProviderProps, MAX_HOPS, MEDIUM_TTL_MS, MEMORY_KINDS, MEMORY_LEVELS, type ManualFactType, type MediaDimensions, type MediaFilterOptions, type MediaMetadata, type MediaOperationsContext, type MediaRole, type MediaType, type MemoriesNeedingTopicExtraction, type MemoryContextItem, type MemoryContextLane, type MemoryContextOptions, type MemoryContextResult, type MemoryCreate, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, MemoryEntity as MemoryEntityModel, type MemoryExtractedEvent, MemoryKeyError, type MemoryKeyRing, type MemoryKind, type MemoryLevel, MemoryLevelError, type MemoryListOptions, type MemoryMaintenance, type MemoryMigrationOptions, type MemoryMigrationProgress, type MemoryMigrationResult, type MemoryMigrationSkip, type MemoryQuarantinedEvent, type MemoryRecallOptions, type MemoryRetainOptions, type MemoryStore, type MemorySubscribeOptions, type MemoryToVerify, type MemoryTopic, type MemoryTopicBacklog, type MemoryTopicMaintenance, type MemoryUpdate, 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 RecallEmptyReason, type RecallOptions, type RecallResult, type RecallTelemetryCallbacks, type RecallToolCallbacks, type RecallToolOptions, type RecallTruncation, type RecencyOptions, type RectProps, type ReflectOptions, type ReflectResult, type RemoteMemoryCandidateOptions, type RemoteMemoryDecodeFailure, RemoteMemoryError, type RemoteMemoryListOptions, type RemoteMemoryMetadataPage, type RemoteMemoryMetadataRecord, type RemoteMemoryPage, RemoteMemoryPartialCreateError, type RemoteMemoryPersistence, type RemoteMemoryPersistenceOptions, type RemoteMemoryPipeline, type RemoteMemoryPipelineOptions, type RemoteMemoryQueryOptions, type RemoteMemoryQueryPage, type RemoteMemoryReadFilters, type RemoteMemoryRecord, type RemoteMemoryRow, type RemoteMemoryStoreOptions, type RequestEncryptionKeyOptions, RerankerUnavailableError, type ReservationReceipt, 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 StreamSmoothingConfig, type SynthesizeProfileOptions, THEME_ATTRS, TOOL_RESULT_ORIGIN, TOPICS_EXTRACTION_VERSION, TOPIC_EXTRACTION_BATCH_SIZE, TOPIC_SALIENCE_WEIGHTS, 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 TopicExtractionBatchDiagnostics, type TopicExtractionInput, type TopicExtractionRunResult, type TopicSalience, 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 UseEncryptionResult, type UseExportPdfResult, type UseFilesOptions, type UseFilesResult, 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 VaultEmbeddingExpectation, type VaultFolderOperationsContext, type VaultMemoryKind, type VaultMemoryOperationsContext, type VaultMemoryProjection, type VaultMemoryVisibility, type VaultMemoryWriter, type VaultSaveOperation, type VaultSearchResult, type VaultWriteAction, type VaultWriteInput, type VaultWriteOutcome, type VerificationSources, type VerifyMemoriesForPublishOptions, type VoiceRecording, WalletPoller, WatermelonChatStorageAdapter, type WatermelonChatStorageAdapterOptions, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, type WhisperModel, WordProcessor, type WriteFailureReason, ZipProcessor, type ZipProcessorOptions, addConversationMemoriesOp, appFileToStored, archiveVaultMemoryOp, assembleMemoryContext, attachFileContextToLastUserMessage, backfillMemoryEntityUserIdsOp, backfillMemoryTopicsOp, buildAttachedFilesText, capHopsForDensity, chatStorageMigrations, chatStorageSchema, chunkAndEmbedAllMessages, chunkAndEmbedMessage, chunkText, classifyCryptoPrice, classifyCryptoPriceBatch, classifyDecay, classifyInjectionCandidates, classifyObservationTrend, classifyStockPrice, classifyStockPriceBatch, classifyWeather, classifyWeatherBatch, classifyWebSearch, classifyWebSearchBatch, clearAllEncryptionKeys, clearAllEncryptionState, clearAllKeyPairs, clearConversationMemoriesOp, clearEncryptionKey, clearICloudAuth, clearKeyPair, clearLazyTitleCache, clearMemoryTopicsOverrideOp, clearModelsCache, clearNotionToken, clearServerToolsCache, consoleLogger, conversationMemoryToStored, cosineInt8, createAutoExtractor, createChunkVectorCache, createCryptoPricePreProcessor, createDecaySweeper, createDurableAutoExtractor, createGitHubTools, createLlmDecayClassifier, createLlmNeighborRefiner, createLocalMemoryStore, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageSourceResolver, createPlatformCursorStore, createProjectOp, createRecallTool, createRemoteMemoryPersistence, createRemoteMemoryPipeline, createRemoteMemoryStore, createSavedToolOp, createServerToolsFilter, createStockPricePreProcessor, createVaultEmbeddingCache, createVaultFolderOp, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decodeChunkVector, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllAppFilesOp, deleteAllVaultMemoriesForUserOp, deleteAppFileOp, deleteEncryptedFile, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteMessageOp, deleteProjectOp, deleteSavedToolOp, deleteVaultFolderOp, deleteVaultMemoryOp, dequantizeEmbedding, deriveKeyFromSignatureBytes, deriveMemoryKeyRing, eagerEmbedContent, embedAllMessages, embedMessage, encodeChunkVector, encryptData, encryptDataBatch, encryptDataBytes, encryptDataWithKey, encryptToolCallEventsOp, ensureDefaultFoldersOp, expandToolSetsAdditive, exportElementToPdf, exportMarkdownToPdf, exportPublicKey, extractAndLinkEntitiesForMemoriesOp, extractAndRetain, extractEntitiesForMemories, extractFacts, extractFileIds, extractMCPImageUrls, extractReservationReceipts, fileExists, findById, findMatchingTools, findParentOfId, formatFileProcessingNotes, generateConversationId, generateEmbedding, generateEmbeddings, generateMediaId, generateProjectId, getAIGeneratedMediaOp, getAllSavedToolsOp, getAllVaultFoldersOp, getAllVaultMemoriesOp, getAllVaultMemoryContentsOp, getAndClearNotionPendingMessage, getAndClearNotionReturnUrl, getAppFileMapOp, getAppFileOp, getAppFilesOp, getAudioOp, getCachedServerTools, getConversationMemoriesOp, getConversationsByProjectLazyOp, getConversationsByProjectOp, getConversationsLazyOp, getConversationsPageOp, getDecayCandidatesRawOp, getDocumentsOp, getEncryptionKey, getEntitiesByMemoryIdsOp, 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, getValidNotionToken, getVaultCandidateKeysOp, getVaultEmbeddingsByIdsOp, getVaultFolderMemoryCountOp, getVaultMemoriesByIdsOp, getVaultMemoryOp, getVaultRankingProjectionsOp, getVideosOp, handleNotionCallback, hardDeleteDecayedOp, hardDeleteMediaOp, hasEncryptionKey, hasICloudCredentials, hasKeyPair, hasNotionCredentials, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, insertAfterId, insertChild, isAnumaTag, isAttachedFilesText, isDegradedTopicSkip, isEncrypted, isHtmlTag, isNotionCallback, isOPFSSupported, isR2UrlExpired, isRerankerAvailable, isSupportedFile, isSupportedMediaType, linkMemoryEntitiesOp, maskScopedEmbeddingCache, mediaToStored, memoryCipher, migrateDisplayResult, migrateMemoriesToRemote, migrateNotionClientRegistration, migrateNotionToken, moveMemoriesToFolderOp, noopLogger, onKeyAvailable, parseJsx, parseMedia, preEmbedVaultMemories, preprocessFiles, previewToolSelection, primaryTopic, projectToStored, putAppFileOp, quantizeEmbedding, queueManager, rankProfileCandidates, readEncryptedFile, recall, reencryptMemoryField, reflect, refreshEncryptionKeyIfMatches, refreshNotionToken, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, removeById, renderAnumaJsx, renderAnumaTree, renderElementToCanvas, replaceById, replaceMemoryEntitiesGuardedOp, requestEncryptionKey, requestKeyPair, resolveFilePlaceholders, resolveThemeColor, restoreVaultMemoryOp, resumeStream, retain, revokeNotionAccess, savedToolToStored, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, selectServerToolsForPrompt, serializeJsx, setLogger, setMemoryEntitiesOp, setMemoryVisibilityOp, settingsStorageSchema, shouldChunkMessage, shouldRecallMemory, shouldRefreshTools, stampTopicsExtractedAtOp, startNotionAuth, storeNotionPendingMessage, storeNotionReturnUrl, streamCancelPath, streamReplayPath, stripLegacyChunkTextOp, summarizeObservationTrends, supersedeVaultMemoryOp, synthesizeProfile, topicWeight, traverseGraphLane, ttlForType, updateAttrs, updateConversationProjectOp, updateMediaMessageIdBatchOp, updateMediaOp, updateMessageFeedbackOp, updateProjectNameOp, updateProjectOp, updateSavedToolOp, updateVaultFolderContextOp, updateVaultFolderOp, updateVaultMemoryEmbeddingOp, updateVaultMemoryOp, useAnumaTheme, useBackup, useBackupAuth, useChat, useChatStorage, useCredits, useDatabaseManager, useEncryption, useExportPdf, useFiles, useICloudAuth, useICloudBackup, useModels, useOCR, usePdf, usePhoneCalls, useProjects, useSettings, useSubscription, useTools, useUIInteraction, useVoice, useWalletBinding, userPreferencesStorageSchema, verifyMemoriesForPublish, walk, webPlatformStorage, withActiveToolSetServerTools, withInternalFlowMarker, writeEncryptedFile };
@@ -10438,6 +10438,67 @@ __decorateClass([
10438
10438
  // src/lib/db/entities/operations.ts
10439
10439
  import { Q as Q5 } from "@nozbe/watermelondb";
10440
10440
 
10441
+ // src/lib/db/memoryVault/types.ts
10442
+ var MEMORY_KINDS = [
10443
+ "display_name",
10444
+ "birth_date",
10445
+ "bio",
10446
+ "occupation",
10447
+ "interest",
10448
+ "gender",
10449
+ "height_cm",
10450
+ "looking_for",
10451
+ "politics",
10452
+ "religion",
10453
+ "ethnicity",
10454
+ "smoking",
10455
+ "drinking",
10456
+ "exercise",
10457
+ "sexuality",
10458
+ "prompt"
10459
+ ];
10460
+ var MEMORY_LEVELS = ["private", "matching", "profile"];
10461
+ var MemoryLevelError = class extends Error {
10462
+ constructor(message) {
10463
+ super(message);
10464
+ this.name = "MemoryLevelError";
10465
+ }
10466
+ };
10467
+ var MemorySourceIneligibleError = class extends Error {
10468
+ constructor() {
10469
+ super("Memory source is no longer eligible");
10470
+ this.name = "MemorySourceIneligibleError";
10471
+ }
10472
+ };
10473
+ var PUBLISHED_SCOPES = /* @__PURE__ */ new Set(["shared", "public"]);
10474
+ function levelFromScope(scope) {
10475
+ return typeof scope === "string" && PUBLISHED_SCOPES.has(scope) ? "matching" : "private";
10476
+ }
10477
+ function scopeForLevel(level) {
10478
+ return level === "private" ? "private" : "shared";
10479
+ }
10480
+ function resolveMemoryLevel(level, scope) {
10481
+ return typeof level === "string" && MEMORY_LEVELS.includes(level) ? level : levelFromScope(scope);
10482
+ }
10483
+ function levelForScopeChange(current, nextScope) {
10484
+ const implied = levelFromScope(nextScope);
10485
+ return implied === "matching" && resolveMemoryLevel(current.level, current.scope) === "profile" ? "profile" : implied;
10486
+ }
10487
+ function parseMedia(value) {
10488
+ if (typeof value !== "string" || value === "") return null;
10489
+ try {
10490
+ const parsed = JSON.parse(value);
10491
+ if (!Array.isArray(parsed)) return null;
10492
+ const refs = parsed.filter((r) => typeof r === "object" && r !== null).map((r) => ({
10493
+ feedItemId: Number(r.feedItemId ?? r.feed_item_id),
10494
+ objectKey: r.objectKey ?? r.object_key ?? null
10495
+ })).filter((r) => Number.isFinite(r.feedItemId));
10496
+ return refs.length > 0 ? refs : null;
10497
+ } catch {
10498
+ return null;
10499
+ }
10500
+ }
10501
+
10441
10502
  // src/lib/db/entities/types.ts
10442
10503
  var ENTITY_KINDS = [
10443
10504
  "person",
@@ -10497,7 +10558,7 @@ function parseTopics(value) {
10497
10558
  // src/lib/db/entities/operations.ts
10498
10559
  async function assertCanWrite(ctx) {
10499
10560
  if (ctx.canWrite && !await ctx.canWrite()) {
10500
- throw new Error("Memory source is no longer eligible");
10561
+ throw new MemorySourceIneligibleError();
10501
10562
  }
10502
10563
  }
10503
10564
  function entityToStored(e) {
@@ -13139,61 +13200,6 @@ function serializeSourceChunkIds(ids) {
13139
13200
  return JSON.stringify(ids.slice(start));
13140
13201
  }
13141
13202
 
13142
- // src/lib/db/memoryVault/types.ts
13143
- var MEMORY_KINDS = [
13144
- "display_name",
13145
- "birth_date",
13146
- "bio",
13147
- "occupation",
13148
- "interest",
13149
- "gender",
13150
- "height_cm",
13151
- "looking_for",
13152
- "politics",
13153
- "religion",
13154
- "ethnicity",
13155
- "smoking",
13156
- "drinking",
13157
- "exercise",
13158
- "sexuality",
13159
- "prompt"
13160
- ];
13161
- var MEMORY_LEVELS = ["private", "matching", "profile"];
13162
- var MemoryLevelError = class extends Error {
13163
- constructor(message) {
13164
- super(message);
13165
- this.name = "MemoryLevelError";
13166
- }
13167
- };
13168
- var PUBLISHED_SCOPES = /* @__PURE__ */ new Set(["shared", "public"]);
13169
- function levelFromScope(scope) {
13170
- return typeof scope === "string" && PUBLISHED_SCOPES.has(scope) ? "matching" : "private";
13171
- }
13172
- function scopeForLevel(level) {
13173
- return level === "private" ? "private" : "shared";
13174
- }
13175
- function resolveMemoryLevel(level, scope) {
13176
- return typeof level === "string" && MEMORY_LEVELS.includes(level) ? level : levelFromScope(scope);
13177
- }
13178
- function levelForScopeChange(current, nextScope) {
13179
- const implied = levelFromScope(nextScope);
13180
- return implied === "matching" && resolveMemoryLevel(current.level, current.scope) === "profile" ? "profile" : implied;
13181
- }
13182
- function parseMedia(value) {
13183
- if (typeof value !== "string" || value === "") return null;
13184
- try {
13185
- const parsed = JSON.parse(value);
13186
- if (!Array.isArray(parsed)) return null;
13187
- const refs = parsed.filter((r) => typeof r === "object" && r !== null).map((r) => ({
13188
- feedItemId: Number(r.feedItemId ?? r.feed_item_id),
13189
- objectKey: r.objectKey ?? r.object_key ?? null
13190
- })).filter((r) => Number.isFinite(r.feedItemId));
13191
- return refs.length > 0 ? refs : null;
13192
- } catch {
13193
- return null;
13194
- }
13195
- }
13196
-
13197
13203
  // src/lib/db/memoryVault/operations.ts
13198
13204
  function visibilityOrPrivate(value) {
13199
13205
  return value === "public" ? value : "private";
@@ -13213,7 +13219,7 @@ function isKinded(record2) {
13213
13219
  }
13214
13220
  async function assertCanWrite2(ctx) {
13215
13221
  if (ctx.canWrite && !await ctx.canWrite()) {
13216
- throw new Error("Memory source is no longer eligible");
13222
+ throw new MemorySourceIneligibleError();
13217
13223
  }
13218
13224
  }
13219
13225
  function assertValidKindLevel(kind, level) {
@@ -13904,7 +13910,7 @@ async function updateVaultMemoryOp(ctx, id, opts) {
13904
13910
  ctx.embeddedWalletSigner
13905
13911
  );
13906
13912
  } catch (err) {
13907
- if (err instanceof MemoryLevelError) throw err;
13913
+ if (err instanceof MemoryLevelError || err instanceof MemorySourceIneligibleError) throw err;
13908
13914
  return null;
13909
13915
  }
13910
13916
  }
@@ -17878,6 +17884,13 @@ var DEFAULT_AUTO_MERGE_THRESHOLD = 0.8;
17878
17884
  var DEFAULT_SCOPE = "private";
17879
17885
  var DEFAULT_CONSOLIDATE_THRESHOLD = 0.55;
17880
17886
  var DEFAULT_CONSOLIDATE_TOP_K = 20;
17887
+ var RetainError = class extends Error {
17888
+ constructor(reason, message) {
17889
+ super(message);
17890
+ this.reason = reason;
17891
+ this.name = "RetainError";
17892
+ }
17893
+ };
17881
17894
  async function retain(content, ctx, options = {}) {
17882
17895
  const embeddingOptions = {
17883
17896
  ...ctx.embeddingOptions,
@@ -17933,7 +17946,8 @@ async function retainWithPersistence(content, ctx, options = {}) {
17933
17946
  });
17934
17947
  prepared = withoutKindedRows(prepared);
17935
17948
  if (prepared.embeddingFailure || prepared.embeddingsUnavailable) {
17936
- throw new Error(
17949
+ throw new RetainError(
17950
+ "embeddings-unavailable",
17937
17951
  "retain: embeddings unavailable \u2014 refusing to auto-merge against an inert cosine lane, which would create a duplicate instead of merging into the existing memory. Retry when embeddings recover, or pass enableAutoMerge: false to force a create."
17938
17952
  );
17939
17953
  }
@@ -18303,7 +18317,10 @@ async function tryConsolidate(trimmed, ctx, options, prepared) {
18303
18317
  async function assertMergeTargetGoneOrThrow(ctx, targetId) {
18304
18318
  const stillExists = await (ctx.persistence.getFresh ? ctx.persistence.getFresh(targetId) : ctx.persistence.get(targetId));
18305
18319
  if (stillExists && (stillExists.kind === null || stillExists.kind === void 0)) {
18306
- throw new Error(`retain: merge into memory ${targetId} failed to persist`);
18320
+ throw new RetainError(
18321
+ "merge-not-persisted",
18322
+ `retain: merge into memory ${targetId} failed to persist`
18323
+ );
18307
18324
  }
18308
18325
  }
18309
18326
 
@@ -18461,6 +18478,12 @@ function restoreCandidates(candidates, redactor, ownNames) {
18461
18478
  (c) => c.candidate.content.length <= MAX_CONTENT_LENGTH && !c.unresolved && !isLowSignalContent(c.candidate.content, ownNames)
18462
18479
  ).map((c) => c.candidate);
18463
18480
  }
18481
+ function writeFailureReasonOf(err) {
18482
+ if (err instanceof MemorySourceIneligibleError) return "source-ineligible";
18483
+ if (err instanceof RetainError) return err.reason;
18484
+ if (err?.name === "AbortError") return "aborted";
18485
+ return "unknown";
18486
+ }
18464
18487
  async function extractAndRetain(messages, retainCtx, options) {
18465
18488
  const { memoryStore, signal } = options;
18466
18489
  if (memoryStore === null) throw new Error("Memory store is not ready");
@@ -18550,6 +18573,7 @@ async function extractAndRetain(messages, retainCtx, options) {
18550
18573
  const results = [];
18551
18574
  const quarantinedInfo = [];
18552
18575
  let failedWrites = 0;
18576
+ let writeFailureReason;
18553
18577
  let auditRows;
18554
18578
  const tRetain = Date.now();
18555
18579
  for (const { candidate, isQuarantined, reason, signature } of toRetain) {
@@ -18645,6 +18669,7 @@ async function extractAndRetain(messages, retainCtx, options) {
18645
18669
  }
18646
18670
  } catch (err) {
18647
18671
  failedWrites++;
18672
+ writeFailureReason ?? (writeFailureReason = writeFailureReasonOf(err));
18648
18673
  log.warn("[memory/extract] retain failed for one candidate", err);
18649
18674
  options.onCandidateFailed?.(candidate, err);
18650
18675
  }
@@ -18657,6 +18682,7 @@ async function extractAndRetain(messages, retainCtx, options) {
18657
18682
  candidates: succeededCandidates,
18658
18683
  results,
18659
18684
  failedCount: failedWrites,
18685
+ ...writeFailureReason !== void 0 && { writeFailureReason },
18660
18686
  outcome: outcome2,
18661
18687
  quarantined: quarantinedInfo,
18662
18688
  funnel: {
@@ -18925,7 +18951,17 @@ function createAutoExtractor(options) {
18925
18951
  const t0 = Date.now();
18926
18952
  void (async () => {
18927
18953
  try {
18928
- const { candidates, results, failedCount, outcome: outcome2, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
18954
+ const {
18955
+ candidates,
18956
+ results,
18957
+ failedCount,
18958
+ writeFailureReason,
18959
+ outcome: outcome2,
18960
+ failure,
18961
+ funnel,
18962
+ timings,
18963
+ model
18964
+ } = await extractAndRetain(window2, retainCtx, {
18929
18965
  extract,
18930
18966
  memoryStore: options.memoryStore,
18931
18967
  signal: options.signal,
@@ -18961,6 +18997,7 @@ function createAutoExtractor(options) {
18961
18997
  candidates,
18962
18998
  results,
18963
18999
  failedCount,
19000
+ ...writeFailureReason !== void 0 && { writeFailureReason },
18964
19001
  durationMs: Date.now() - t0,
18965
19002
  conversationId,
18966
19003
  outcome: outcome2,
@@ -21073,10 +21110,10 @@ function createLocalMemoryStore(options) {
21073
21110
  const assertWrite = async (writeOptions) => {
21074
21111
  writeOptions?.signal?.throwIfAborted();
21075
21112
  if (writeOptions?.canWrite && !await writeOptions.canWrite()) {
21076
- throw new Error("Memory source is no longer eligible");
21113
+ throw new MemorySourceIneligibleError();
21077
21114
  }
21078
21115
  if (options.canWrite && !await options.canWrite()) {
21079
- throw new Error("Memory source is no longer eligible");
21116
+ throw new MemorySourceIneligibleError();
21080
21117
  }
21081
21118
  writeOptions?.signal?.throwIfAborted();
21082
21119
  };
@@ -21418,6 +21455,7 @@ var queryFields = [
21418
21455
  "updated_after",
21419
21456
  "topics_due",
21420
21457
  "topics_extracted",
21458
+ "event_time_overlaps",
21421
21459
  "order",
21422
21460
  "cursor",
21423
21461
  "limit",
@@ -21884,7 +21922,7 @@ function createRemoteMemoryPipeline(options) {
21884
21922
  const assertWrite = async () => {
21885
21923
  signal?.throwIfAborted();
21886
21924
  if (writeOptions?.canWrite && !await writeOptions.canWrite())
21887
- throw new Error("Memory source is no longer eligible");
21925
+ throw new MemorySourceIneligibleError();
21888
21926
  signal?.throwIfAborted();
21889
21927
  };
21890
21928
  const rejectUndecryptable = (failed) => {
@@ -22665,6 +22703,7 @@ var MAX_QUERY_IDS = 1e3;
22665
22703
  var MAX_QUERY_TOPICS = 100;
22666
22704
  var MAX_QUERY_FILTER = 20;
22667
22705
  var GRAPH_LANE_ROWS = 256;
22706
+ var TEMPORAL_LANE_ROWS = 256;
22668
22707
  var RemoteMemoryPartialCreateError = class extends Error {
22669
22708
  constructor(created, cause) {
22670
22709
  super(`createMany stored ${created.length} memories before a batch failed`);
@@ -22763,7 +22802,7 @@ function createRemoteMemoryStore(options) {
22763
22802
  const pipeline = createRemoteMemoryPipeline({
22764
22803
  ...options,
22765
22804
  graphRanking: options.graphRanking ?? ((query, _traverse, recallOptions) => topicGraphRanking(query, recallOptions)),
22766
- temporalRanking: options.temporalRanking ?? (() => Promise.resolve([]))
22805
+ temporalRanking: options.temporalRanking ?? ((query, now) => eventTimeRanking(query, now))
22767
22806
  });
22768
22807
  const subscribers = /* @__PURE__ */ new Set();
22769
22808
  const seen = /* @__PURE__ */ new Map();
@@ -22826,6 +22865,24 @@ function createRemoteMemoryStore(options) {
22826
22865
  matched: [...canonicalTopics(memory)].filter((name) => wanted.has(name)).length
22827
22866
  })).filter((row) => row.matched > 0).sort((a, b) => b.matched - a.matched).slice(0, NODE_BUDGET).map((row) => row.memoryId);
22828
22867
  };
22868
+ const eventTimeRanking = async (query, now) => {
22869
+ const window2 = parseQueryTimeWindow(query, now);
22870
+ if (!window2) return [];
22871
+ const rows = await pages(
22872
+ metadata2,
22873
+ { event_time_overlaps: { start: window2.start, end: window2.end } },
22874
+ TEMPORAL_LANE_ROWS
22875
+ );
22876
+ return rows.map(({ memory }) => ({
22877
+ memoryId: memory.memory_id,
22878
+ score: scoreEventTimeOverlap(
22879
+ memory.event_time_start ?? null,
22880
+ memory.event_time_end ?? null,
22881
+ memory.event_time_kind ?? null,
22882
+ window2
22883
+ )
22884
+ })).filter((row) => row.score > 0).sort((a, b) => b.score - a.score).map((row) => row.memoryId);
22885
+ };
22829
22886
  const enumerateIds = async (read, ids, filters) => (await Promise.all(
22830
22887
  chunks2([...new Set(ids)], MAX_QUERY_IDS).map(
22831
22888
  (memory_ids) => pages(read, { ...filters, memory_ids })
@@ -22871,7 +22928,7 @@ function createRemoteMemoryStore(options) {
22871
22928
  if (!record2) return null;
22872
22929
  if (record2.memory.is_deleted) return null;
22873
22930
  if (writeOptions?.canWrite && !await writeOptions.canWrite())
22874
- throw new Error("Memory source is no longer eligible");
22931
+ throw new MemorySourceIneligibleError();
22875
22932
  writeOptions?.signal?.throwIfAborted();
22876
22933
  const next = edit(structuredClone(record2.memory));
22877
22934
  if (!next) return null;
@@ -24499,6 +24556,26 @@ function createDurableAutoExtractor(options) {
24499
24556
  );
24500
24557
  continue;
24501
24558
  }
24559
+ const foreign = new Set(
24560
+ ids.filter((_id, index) => loaded[index]?.conversationId !== conversationId)
24561
+ );
24562
+ if (foreign.size) {
24563
+ await database.write(
24564
+ () => job.update(
24565
+ (r) => r._setRaw(
24566
+ "message_ids",
24567
+ JSON.stringify(idsOf(job).filter((id) => !foreign.has(id)))
24568
+ )
24569
+ )
24570
+ );
24571
+ attempts.delete(job.id);
24572
+ scheduleAfterSuccess = true;
24573
+ reportError(
24574
+ new Error(`Dropped ${foreign.size} source id(s) from another conversation`),
24575
+ conversationId
24576
+ );
24577
+ continue;
24578
+ }
24502
24579
  const locked = loaded.filter((message) => message && isEncrypted(message.content));
24503
24580
  if (locked.length) {
24504
24581
  throw new LockedSourcesError(
@@ -24508,7 +24585,7 @@ function createDurableAutoExtractor(options) {
24508
24585
  );
24509
24586
  }
24510
24587
  const messages = loaded.flatMap(
24511
- (m) => m && m.conversationId === conversationId && (m.role === "user" || m.role === "assistant") ? [{ id: m.uniqueId, role: m.role, content: m.content }] : []
24588
+ (m) => m && (m.role === "user" || m.role === "assistant") ? [{ id: m.uniqueId, role: m.role, content: m.content }] : []
24512
24589
  );
24513
24590
  const jobScope = currentScope() === "private" ? "private" : String(job._getRaw("scope"));
24514
24591
  const jobFolderId = job._getRaw("folder_id") ?? null;
@@ -24601,9 +24678,31 @@ function createDurableAutoExtractor(options) {
24601
24678
  (candidate) => candidate._getRaw("scope") === scope && (candidate._getRaw("folder_id") ?? null) === folderId
24602
24679
  );
24603
24680
  const positions = new Map(ids.map((id, index) => [id, index]));
24681
+ const watermarks = existing.flatMap((prior) => {
24682
+ const watermark = prior._getRaw("watermark");
24683
+ return typeof watermark === "string" && watermark ? [watermark] : [];
24684
+ });
24685
+ if (watermarks.length) {
24686
+ const misplaced = new Set(
24687
+ await storage.messagesCollection.query(
24688
+ Q16.where("id", Q16.oneOf(watermarks)),
24689
+ Q16.where("conversation_id", Q16.notEq(conversationId))
24690
+ ).fetchIds()
24691
+ );
24692
+ for (const prior of existing)
24693
+ if (misplaced.has(String(prior._getRaw("watermark"))))
24694
+ await prior.update((r) => {
24695
+ r._setRaw("watermark", null);
24696
+ r._setRaw("watermark_seq", null);
24697
+ });
24698
+ }
24604
24699
  const rows = await storage.messagesCollection.query(Q16.where("id", Q16.oneOf(ids))).fetch();
24700
+ const foreignRows = new Set(
24701
+ rows.filter((row) => row._getRaw("conversation_id") !== conversationId).map((row) => row.id)
24702
+ );
24605
24703
  const sequences = /* @__PURE__ */ new Map();
24606
24704
  for (const row of rows) {
24705
+ if (foreignRows.has(row.id)) continue;
24607
24706
  const sequence = Number(row._getRaw("message_id"));
24608
24707
  if (Number.isFinite(sequence) && sequence > 0) sequences.set(row.id, sequence);
24609
24708
  }
@@ -24646,7 +24745,7 @@ function createDurableAutoExtractor(options) {
24646
24745
  const ownWatermark = job?._getRaw("watermark");
24647
24746
  const atOwnWatermark = !!job && boundary >= 0 && failedSessionsOf(job, String(ownWatermark)) < MAX_FAILED_SESSIONS && (ids[boundary] === ownWatermark || sequences.get(ids[boundary]) !== void 0 && sequences.get(ids[boundary]) === seqOf(job));
24648
24747
  const overlapStart = atOwnWatermark ? Math.max(0, boundary - 1) : start;
24649
- const fresh = ids.slice(overlapStart).filter((id) => !foreignSources.has(id));
24748
+ const fresh = ids.slice(overlapStart).filter((id) => !foreignSources.has(id) && !foreignRows.has(id));
24650
24749
  if (!fresh.length) return;
24651
24750
  if (job) {
24652
24751
  await job.update(