@anuma/sdk 6.21.1 → 6.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -106,8 +106,15 @@ import { ResultCallback } from '@nozbe/watermelondb/utils/fp/Result';
106
106
  * - v45: Added `media` to memory_vault — the photo(s) a server-extracted
107
107
  * memory came from, as JSON `[{feed_item_id, object_key}]`. Null on every
108
108
  * row that did not come from a photo, which is all of them before this
109
+ * migration ran
110
+ * - v46: Added device-local memory_extraction_jobs outbox for restart-safe
111
+ * extraction. Additive (a single createTable, no backfill), so a v45 database
112
+ * upgrades cleanly. NOT reversible: WatermelonDB has no downgrade path, so
113
+ * rolling a release back past v46 after a device has run it resets that
114
+ * device's local database. Relevant to OTA, where a JS-only rollback can
115
+ * land on a database the newer build already migrated
109
116
  */
110
- declare const SDK_SCHEMA_VERSION = 45;
117
+ declare const SDK_SCHEMA_VERSION = 46;
111
118
  /**
112
119
  * Combined WatermelonDB schema for all SDK storage modules.
113
120
  *
@@ -4267,6 +4274,12 @@ declare function getMessagesOp(ctx: StorageOperationsContext, convId: string): P
4267
4274
  * Note: useChatStorage hooks automatically cascade delete media.
4268
4275
  */
4269
4276
  declare function clearMessagesOp(ctx: StorageOperationsContext, convId: string): Promise<void>;
4277
+ /**
4278
+ * Delete a single message by its unique ID.
4279
+ * Clears file_ids before deletion and returns the unique ID.
4280
+ * Note: Callers should use deleteMediaByMessageOp to cascade delete media.
4281
+ */
4282
+ declare function deleteMessageOp(ctx: StorageOperationsContext, uniqueId: string): Promise<string | null>;
4270
4283
  declare function createMessageOp(ctx: StorageOperationsContext, opts: CreateMessageOptions): Promise<StoredMessage>;
4271
4284
  /**
4272
4285
  * Create-or-update a message keyed by `opts.uniqueId`.
@@ -5206,6 +5219,7 @@ interface MemoryVaultSearchOptions {
5206
5219
  * types. Applied at load time via `Q.oneOf` on the indexed `fact_type`
5207
5220
  * column. Omit for no type filter. */
5208
5221
  factTypes?: string[];
5222
+ memoryIds?: string[];
5209
5223
  /**
5210
5224
  * PR5 — optional per-FactType score multiplier applied in the boost stage
5211
5225
  * (e.g. `{ identity: 1.2, ongoing_context: 0.8 }`). Empty/omitted = uniform
@@ -5528,6 +5542,11 @@ interface RecallOptions {
5528
5542
  * and no-op when unset (all types are eligible). Vault-only.
5529
5543
  */
5530
5544
  factTypes?: FactType[];
5545
+ /** Restrict fact candidates BEFORE ranking. Empty means no facts. When set,
5546
+ * unrestricted chunk search is disabled; it must not escape a topic scope.
5547
+ * Asking for `"chunk"` alongside this yields no excerpts and reports
5548
+ * `"chunks-scope-restricted"` on {@link RecallDiagnostics.degraded}. */
5549
+ memoryIds?: string[];
5531
5550
  /**
5532
5551
  * PR5 — optional per-FactType score multiplier applied in the fusion boost
5533
5552
  * stage (e.g. boost `identity`/`constraint`, down-weight `ongoing_context`).
@@ -5703,7 +5722,13 @@ type RecallDegradation =
5703
5722
  | "graph-lane-failed"
5704
5723
  /** The W6 temporal side lane threw and was dropped. Same posture as the graph
5705
5724
  * lane: recall still returned, ranked without the temporal signal. */
5706
- | "temporal-lane-failed";
5725
+ | "temporal-lane-failed"
5726
+ /** {@link RecallOptions.memoryIds} was set and `types` asked for `"chunk"`.
5727
+ * Conversation excerpts have no equivalent membership filter, so running the
5728
+ * chunk lane would escape the topic/folder scope — it is dropped instead.
5729
+ * Without this signal a scoped caller asking for excerpts got an empty
5730
+ * result indistinguishable from "the vault had no match". */
5731
+ | "chunks-scope-restricted";
5707
5732
  /**
5708
5733
  * Why a recall returned nothing. `""` when it returned something, so the field
5709
5734
  * is always present and groupable rather than being absent on the healthy path.
@@ -6635,6 +6660,14 @@ interface UpdateVaultMemoryOptions {
6635
6660
  * two parallel retain() calls observe each other's commits and neither
6636
6661
  * loses its increment. Wins over `proofCount` when both are set. */
6637
6662
  proofCountIncrement?: number;
6663
+ /** Source ids for an observation. Unioned inside the writer. A replay whose
6664
+ * ids are all already on the row contributes no new evidence, so
6665
+ * `proofCount`/`proofCountIncrement` and {@link lastObservedAt} are skipped —
6666
+ * but the write still lands: `content`, `embedding`, `restore`, `eventTime`
6667
+ * and the rest apply, because a consolidation rewrite legitimately carries
6668
+ * the same source ids as the observation that triggered it.
6669
+ * Omit for unkeyed/manual observations. */
6670
+ observationSourceIds?: string[];
6638
6671
  /** Set source ("manual" | "auto-extracted" | "capsule"). */
6639
6672
  source?: string;
6640
6673
  /**
@@ -6688,6 +6721,9 @@ interface VaultMemoryOperationsContext {
6688
6721
  embeddedWalletSigner?: EmbeddedWalletSignerFn;
6689
6722
  /** When set, operations scope to this user (server-side multi-user). */
6690
6723
  userId?: string;
6724
+ /** Optional extraction source eligibility check, executed inside the writer.
6725
+ * Must only read the database (must not start another writer). */
6726
+ canWrite?: () => Promise<boolean>;
6691
6727
  /**
6692
6728
  * Asserts this context runs against a physically single-tenant database — one
6693
6729
  * where every row belongs to the same owner (the per-wallet client DBs, which
@@ -6728,6 +6764,7 @@ declare function getAllVaultMemoriesOp(ctx: VaultMemoryOperationsContext, option
6728
6764
  includeQuarantined?: boolean;
6729
6765
  /** Typed memory (PR1) — restrict to these fact types. Omit for no filter. */
6730
6766
  factTypes?: string[];
6767
+ memoryIds?: string[];
6731
6768
  /**
6732
6769
  * Include A2-superseded memories (each carries `supersededBy`). Default
6733
6770
  * `false` — superseded rows are excluded, as they are from recall/dedup.
@@ -6948,6 +6985,7 @@ interface DecayCandidateRaw {
6948
6985
  /** Unix ms — the raw `updated_at`, used both for the age rule and as the
6949
6986
  * optimistic-concurrency guard passed back to {@link archiveVaultMemoryOp}. */
6950
6987
  updatedAt: number;
6988
+ lastObservedAt?: number | null;
6951
6989
  archivedAt: number | null;
6952
6990
  source: string | null;
6953
6991
  /** `trusted` | `quarantined` | null. Quarantined rows still decay by RULE, but
@@ -6992,6 +7030,8 @@ declare function archiveVaultMemoryOp(ctx: VaultMemoryOperationsContext, id: str
6992
7030
  /** Optimistic-concurrency guard: skip if the row's `updated_at` changed
6993
7031
  * since the sweep observed it (a concurrent re-observation). */
6994
7032
  expectedUpdatedAt?: number;
7033
+ /** Also guard re-observations, which deliberately preserve updated_at. */
7034
+ expectedLastObservedAt?: number | null;
6995
7035
  }): Promise<boolean>;
6996
7036
  /**
6997
7037
  * Restore an archived memory (PR2) — clear `archived_at` so it re-enters recall.
@@ -8137,7 +8177,8 @@ declare function createMemoryVaultTool(vaultCtx: VaultMemoryOperationsContext, o
8137
8177
  *
8138
8178
  * The watermark advances only when the extractor genuinely EXAMINED the window.
8139
8179
  * A pipeline throw and an `empty-after-retry` outcome (the extraction LLM
8140
- * returned empty/malformed after exhausting its retries) both leave it in place,
8180
+ * returned empty/malformed after exhausting its retries), or any failed retain
8181
+ * operation leave it in place,
8141
8182
  * so the next turn's window re-covers those messages instead of stranding them.
8142
8183
  * A quiet turn that legitimately yielded no facts *does* advance it.
8143
8184
  *
@@ -8530,6 +8571,8 @@ interface DecayInput {
8530
8571
  eventTimeKind: string | null;
8531
8572
  /** Unix ms of the row's last write (re-observation resets this). */
8532
8573
  updatedAt: number;
8574
+ /** Last distinct observation; does not change the edit timestamp. */
8575
+ lastObservedAt?: number | null;
8533
8576
  /** Unix ms when archived, or null when active. */
8534
8577
  archivedAt: number | null;
8535
8578
  /** `manual` | `auto-extracted` | `capsule` | null. Manual is never decayed. */
@@ -9092,6 +9135,8 @@ interface RecallToolOptions {
9092
9135
  minScore?: number;
9093
9136
  /** Vault scope filter. */
9094
9137
  scopes?: string[];
9138
+ /** Topic membership, enforced before fact ranking; disables unrestricted chunks. */
9139
+ memoryIds?: string[];
9095
9140
  /** Vault folder filter. */
9096
9141
  folderId?: string | null;
9097
9142
  /** Exclude one conversation from chunk results (typically the active one). */
@@ -9165,7 +9210,30 @@ interface ReflectOptions extends RecallOptions, PortalLlmAuth {
9165
9210
  llmModel?: string;
9166
9211
  /** Cap response length. Default: 4096. */
9167
9212
  maxTokens?: number;
9168
- /** Override the grounding system prompt. */
9213
+ /**
9214
+ * Override the grounding system prompt.
9215
+ *
9216
+ * ⚠ DOING THIS MAKES THE REQUEST'S PROVENANCE YOURS. The default prompt's first sentence is
9217
+ * this flow's fingerprint in the portal's freeloader (anti-bot) detector (see
9218
+ * {@link DEFAULT_SYSTEM_PROMPT}); replacing it wholesale removes that, and a free-tier request
9219
+ * carrying no recognised provenance is rejected outright once the portal's markerless reject is
9220
+ * enabled — a 403, not a degraded answer.
9221
+ *
9222
+ * Which replacement is correct depends on what the call IS, and there is no safe default:
9223
+ *
9224
+ * - **A background/internal call** (a fixed-purpose helper, not a user's own question): prepend
9225
+ * {@link withInternalFlowMarker}, which is exported for exactly this. That is what
9226
+ * profile-facet synthesis does.
9227
+ * - **A user-facing call** (the person is asking their own question and expects an answer):
9228
+ * do NOT use the internal marker — it asserts "not user chat" and would be false. Keep the
9229
+ * default prompt, or append your instructions to it rather than replacing it, so the
9230
+ * fingerprint survives. A genuinely distinct user-facing flow needs its own fingerprint
9231
+ * registered in ai-portal `internal/detection/markers.go`.
9232
+ *
9233
+ * Appending is the cheap way to stay safe: `${DEFAULT_SYSTEM_PROMPT}\n\n${yourInstructions}`
9234
+ * keeps the fingerprint as a prefix. `reflect.test.ts` pins both the marked and the bare
9235
+ * override paths so this stays true.
9236
+ */
9169
9237
  systemPrompt?: string;
9170
9238
  /**
9171
9239
  * Extra caller instruction to carry on the USER turn, between the question and
@@ -9908,6 +9976,83 @@ declare function verifyMemoriesForPublish(memories: readonly MemoryToVerify[], s
9908
9976
  */
9909
9977
  declare function createMessageSourceResolver(ctx: StorageOperationsContext): VerificationSources;
9910
9978
 
9979
+ type MemoryContextLane = "profile" | "fact" | "episode" | "session";
9980
+ interface MemoryContextItem {
9981
+ id: string;
9982
+ content: string;
9983
+ score: number;
9984
+ lane: MemoryContextLane;
9985
+ sourceIds: string[];
9986
+ /** Ranked fact evidence, retained when profile deduplication wins placement. */
9987
+ recalled?: boolean;
9988
+ }
9989
+ interface MemoryContextOptions {
9990
+ query: string;
9991
+ recall: (query: string, options: RecallOptions) => Promise<RecallResult>;
9992
+ loadFacts?: ((options: Parameters<typeof getAllVaultMemoriesOp>[1]) => Promise<StoredVaultMemory[]>) | null;
9993
+ loadSessionRefs?: (() => Promise<Array<{
9994
+ memoryId: string;
9995
+ score: number;
9996
+ }>>) | null;
9997
+ recallOptions?: RecallOptions;
9998
+ /** Topic membership is applied before ranking and to every context lane. */
9999
+ memoryIds?: string[];
10000
+ /** Character budget for contents (formatting overhead is excluded). Default 12000. */
10001
+ maxChars?: number;
10002
+ includeEpisodes?: boolean;
10003
+ onDegraded?: (lane: MemoryContextLane, error: unknown) => void;
10004
+ }
10005
+ interface MemoryContextResult {
10006
+ items: MemoryContextItem[];
10007
+ ranked: boolean;
10008
+ rankedCount: number;
10009
+ degraded: MemoryContextLane[];
10010
+ truncated: boolean;
10011
+ }
10012
+ /** Only skip confidently trivial utterances. Word counts reject useful short
10013
+ * queries and languages whose writing does not separate words with spaces.
10014
+ *
10015
+ * The stoplist is an exact-match allowance for greetings and acknowledgments,
10016
+ * not a language model: anything not listed still recalls, so a missing
10017
+ * language costs a wasted lookup, never a missed memory. Kept to the handful of
10018
+ * forms that cannot carry a fact in the languages the app ships in. */
10019
+ declare function shouldRecallMemory(query: string): boolean;
10020
+ /** Assemble bounded stable/dynamic profile, relevant facts, source excerpts and
10021
+ * prior-turn facts. Lane failures are isolated: an outage cannot replace a
10022
+ * legitimate empty search with unrelated vault contents. */
10023
+ declare function assembleMemoryContext(options: MemoryContextOptions): Promise<MemoryContextResult>;
10024
+
10025
+ interface DurableAutoExtractorOptions extends Omit<CreateAutoExtractorOptions, "scope"> {
10026
+ /**
10027
+ * Scope for facts retained from newly queued turns. Pass an accessor to have
10028
+ * a privacy-mode flip observed at write time: a plain string is sampled once
10029
+ * at construction, which makes correctness depend on the caller disposing and
10030
+ * recreating the extractor on every flip. An accessor that throws is treated
10031
+ * as `"private"` — the direction that cannot publish.
10032
+ */
10033
+ scope?: string | (() => string);
10034
+ /** Coalesce arrivals after durably recording them. Defaults to 20 seconds. */
10035
+ debounceMs?: number;
10036
+ /** Retry delay for a failed batch. Defaults to 30 seconds; max three attempts
10037
+ * per session. Unfinished jobs remain available on the next resume. */
10038
+ retryDelayMs?: number;
10039
+ /**
10040
+ * Ceiling on one batch, from the extraction call through retention. Defaults
10041
+ * to 180 seconds — deliberately above the extraction call's own budget
10042
+ * (`timeoutMs`, 60s per attempt, x `maxAttempts`), so this is a backstop
10043
+ * against a promise that never settles at all rather than a second timeout
10044
+ * competing with that one. Use `timeoutMs`/`totalTimeoutMs` to bound the LLM
10045
+ * call itself. Without a ceiling here, one unsettled promise latched the
10046
+ * drain and killed the outbox for the rest of the session.
10047
+ */
10048
+ batchTimeoutMs?: number;
10049
+ }
10050
+ /** Durable client extraction. Call once per authenticated database session.
10051
+ * Resumes pending jobs on creation, reads bounded batches from encrypted
10052
+ * history, and acknowledges only successful batches. No plaintext snapshots
10053
+ * or pending facts are written to platform preferences. */
10054
+ declare function createDurableAutoExtractor(options: DurableAutoExtractorOptions): AutoExtractor;
10055
+
9911
10056
  /**
9912
10057
  * Queue Types
9913
10058
  *
@@ -10902,4 +11047,4 @@ declare function sanitizeQuotes(s: string): string;
10902
11047
  declare function renderTemplate(value: string | null | undefined, template: string): string | null;
10903
11048
  declare function buildSystemPrompt(ctx: PromptContext, options?: BuildPromptOptions): BuildPromptResult;
10904
11049
 
10905
- 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 ConsolidationAction, 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, EncryptionKeyMissingError, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, type ExtractionFunnel, type ExtractionTimings, 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 MemoryToVerify, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, type MemoryVerification, Message, type MessageChunk, type MessageFeedback, type MessageOrigin, 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 PhotoIngestResult, type PhotoMediaRef, type PlatformStorage, type PortalLlmAuth, type PortalLlmFailure, type PortalLlmFailureReason, 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 PublishedPhotoMemory, 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 RecallEmptyReason, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type ReflectOptions, type ReflectResult, type RequestEncryptionKeyOptions, 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 TopicSkipReason, type TurnCompleteEvent, type TurnSkippedEvent, type UncheckedReason, type UnverifiableReason, 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, type VerificationSources, type VerifyMemoriesForPublishOptions, 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, createMessageSourceResolver, 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, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, isDegradedTopicSkip, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, parseMedia, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, refreshEncryptionKeyIfMatches, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, 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, verifyMemoriesForPublish };
11050
+ 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 ConsolidationAction, 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, type DurableAutoExtractorOptions, ENTITY_FANOUT, type EmbeddedWalletSignerFn, EncryptionKeyMissingError, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, type ExtractionFunnel, type ExtractionTimings, 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 MemoryContextItem, type MemoryContextLane, type MemoryContextOptions, type MemoryContextResult, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, type MemoryExtractedEvent, type MemoryKind, type MemoryQuarantinedEvent, type MemoryToVerify, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, type MemoryVerification, Message, type MessageChunk, type MessageFeedback, type MessageOrigin, 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 PhotoIngestResult, type PhotoMediaRef, type PlatformStorage, type PortalLlmAuth, type PortalLlmFailure, type PortalLlmFailureReason, 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 PublishedPhotoMemory, 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 RecallEmptyReason, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type ReflectOptions, type ReflectResult, type RequestEncryptionKeyOptions, 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 TopicSkipReason, type TurnCompleteEvent, type TurnSkippedEvent, type UncheckedReason, type UnverifiableReason, 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, type VerificationSources, type VerifyMemoriesForPublishOptions, WalletPoller, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, WordProcessor, ZipProcessor, type ZipProcessorOptions, activatedToolSetNames, analyzeStyle, archiveVaultMemoryOp, assembleMemoryContext, 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, createDurableAutoExtractor, createLlmDecayClassifier, createLlmNeighborRefiner, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageOp, createMessageSourceResolver, createPlatformCursorStore, createProjectOp, createRecallTool, createServerToolsFilter, createStockPricePreProcessor, createSummaryContext, createVaultEmbeddingCache, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteMessageOp, 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, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, isDegradedTopicSkip, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, parseMedia, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, refreshEncryptionKeyIfMatches, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, selectServerToolsForPrompt, serverPlatformStorage, setMemoryVisibilityOp, setModelPreferenceOp, setUserPreferenceOp, shouldAnalyzeStyle, shouldChunkMessage, shouldRecallMemory, 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, verifyMemoriesForPublish };
@@ -106,8 +106,15 @@ import { ResultCallback } from '@nozbe/watermelondb/utils/fp/Result';
106
106
  * - v45: Added `media` to memory_vault — the photo(s) a server-extracted
107
107
  * memory came from, as JSON `[{feed_item_id, object_key}]`. Null on every
108
108
  * row that did not come from a photo, which is all of them before this
109
+ * migration ran
110
+ * - v46: Added device-local memory_extraction_jobs outbox for restart-safe
111
+ * extraction. Additive (a single createTable, no backfill), so a v45 database
112
+ * upgrades cleanly. NOT reversible: WatermelonDB has no downgrade path, so
113
+ * rolling a release back past v46 after a device has run it resets that
114
+ * device's local database. Relevant to OTA, where a JS-only rollback can
115
+ * land on a database the newer build already migrated
109
116
  */
110
- declare const SDK_SCHEMA_VERSION = 45;
117
+ declare const SDK_SCHEMA_VERSION = 46;
111
118
  /**
112
119
  * Combined WatermelonDB schema for all SDK storage modules.
113
120
  *
@@ -4267,6 +4274,12 @@ declare function getMessagesOp(ctx: StorageOperationsContext, convId: string): P
4267
4274
  * Note: useChatStorage hooks automatically cascade delete media.
4268
4275
  */
4269
4276
  declare function clearMessagesOp(ctx: StorageOperationsContext, convId: string): Promise<void>;
4277
+ /**
4278
+ * Delete a single message by its unique ID.
4279
+ * Clears file_ids before deletion and returns the unique ID.
4280
+ * Note: Callers should use deleteMediaByMessageOp to cascade delete media.
4281
+ */
4282
+ declare function deleteMessageOp(ctx: StorageOperationsContext, uniqueId: string): Promise<string | null>;
4270
4283
  declare function createMessageOp(ctx: StorageOperationsContext, opts: CreateMessageOptions): Promise<StoredMessage>;
4271
4284
  /**
4272
4285
  * Create-or-update a message keyed by `opts.uniqueId`.
@@ -5206,6 +5219,7 @@ interface MemoryVaultSearchOptions {
5206
5219
  * types. Applied at load time via `Q.oneOf` on the indexed `fact_type`
5207
5220
  * column. Omit for no type filter. */
5208
5221
  factTypes?: string[];
5222
+ memoryIds?: string[];
5209
5223
  /**
5210
5224
  * PR5 — optional per-FactType score multiplier applied in the boost stage
5211
5225
  * (e.g. `{ identity: 1.2, ongoing_context: 0.8 }`). Empty/omitted = uniform
@@ -5528,6 +5542,11 @@ interface RecallOptions {
5528
5542
  * and no-op when unset (all types are eligible). Vault-only.
5529
5543
  */
5530
5544
  factTypes?: FactType[];
5545
+ /** Restrict fact candidates BEFORE ranking. Empty means no facts. When set,
5546
+ * unrestricted chunk search is disabled; it must not escape a topic scope.
5547
+ * Asking for `"chunk"` alongside this yields no excerpts and reports
5548
+ * `"chunks-scope-restricted"` on {@link RecallDiagnostics.degraded}. */
5549
+ memoryIds?: string[];
5531
5550
  /**
5532
5551
  * PR5 — optional per-FactType score multiplier applied in the fusion boost
5533
5552
  * stage (e.g. boost `identity`/`constraint`, down-weight `ongoing_context`).
@@ -5703,7 +5722,13 @@ type RecallDegradation =
5703
5722
  | "graph-lane-failed"
5704
5723
  /** The W6 temporal side lane threw and was dropped. Same posture as the graph
5705
5724
  * lane: recall still returned, ranked without the temporal signal. */
5706
- | "temporal-lane-failed";
5725
+ | "temporal-lane-failed"
5726
+ /** {@link RecallOptions.memoryIds} was set and `types` asked for `"chunk"`.
5727
+ * Conversation excerpts have no equivalent membership filter, so running the
5728
+ * chunk lane would escape the topic/folder scope — it is dropped instead.
5729
+ * Without this signal a scoped caller asking for excerpts got an empty
5730
+ * result indistinguishable from "the vault had no match". */
5731
+ | "chunks-scope-restricted";
5707
5732
  /**
5708
5733
  * Why a recall returned nothing. `""` when it returned something, so the field
5709
5734
  * is always present and groupable rather than being absent on the healthy path.
@@ -6635,6 +6660,14 @@ interface UpdateVaultMemoryOptions {
6635
6660
  * two parallel retain() calls observe each other's commits and neither
6636
6661
  * loses its increment. Wins over `proofCount` when both are set. */
6637
6662
  proofCountIncrement?: number;
6663
+ /** Source ids for an observation. Unioned inside the writer. A replay whose
6664
+ * ids are all already on the row contributes no new evidence, so
6665
+ * `proofCount`/`proofCountIncrement` and {@link lastObservedAt} are skipped —
6666
+ * but the write still lands: `content`, `embedding`, `restore`, `eventTime`
6667
+ * and the rest apply, because a consolidation rewrite legitimately carries
6668
+ * the same source ids as the observation that triggered it.
6669
+ * Omit for unkeyed/manual observations. */
6670
+ observationSourceIds?: string[];
6638
6671
  /** Set source ("manual" | "auto-extracted" | "capsule"). */
6639
6672
  source?: string;
6640
6673
  /**
@@ -6688,6 +6721,9 @@ interface VaultMemoryOperationsContext {
6688
6721
  embeddedWalletSigner?: EmbeddedWalletSignerFn;
6689
6722
  /** When set, operations scope to this user (server-side multi-user). */
6690
6723
  userId?: string;
6724
+ /** Optional extraction source eligibility check, executed inside the writer.
6725
+ * Must only read the database (must not start another writer). */
6726
+ canWrite?: () => Promise<boolean>;
6691
6727
  /**
6692
6728
  * Asserts this context runs against a physically single-tenant database — one
6693
6729
  * where every row belongs to the same owner (the per-wallet client DBs, which
@@ -6728,6 +6764,7 @@ declare function getAllVaultMemoriesOp(ctx: VaultMemoryOperationsContext, option
6728
6764
  includeQuarantined?: boolean;
6729
6765
  /** Typed memory (PR1) — restrict to these fact types. Omit for no filter. */
6730
6766
  factTypes?: string[];
6767
+ memoryIds?: string[];
6731
6768
  /**
6732
6769
  * Include A2-superseded memories (each carries `supersededBy`). Default
6733
6770
  * `false` — superseded rows are excluded, as they are from recall/dedup.
@@ -6948,6 +6985,7 @@ interface DecayCandidateRaw {
6948
6985
  /** Unix ms — the raw `updated_at`, used both for the age rule and as the
6949
6986
  * optimistic-concurrency guard passed back to {@link archiveVaultMemoryOp}. */
6950
6987
  updatedAt: number;
6988
+ lastObservedAt?: number | null;
6951
6989
  archivedAt: number | null;
6952
6990
  source: string | null;
6953
6991
  /** `trusted` | `quarantined` | null. Quarantined rows still decay by RULE, but
@@ -6992,6 +7030,8 @@ declare function archiveVaultMemoryOp(ctx: VaultMemoryOperationsContext, id: str
6992
7030
  /** Optimistic-concurrency guard: skip if the row's `updated_at` changed
6993
7031
  * since the sweep observed it (a concurrent re-observation). */
6994
7032
  expectedUpdatedAt?: number;
7033
+ /** Also guard re-observations, which deliberately preserve updated_at. */
7034
+ expectedLastObservedAt?: number | null;
6995
7035
  }): Promise<boolean>;
6996
7036
  /**
6997
7037
  * Restore an archived memory (PR2) — clear `archived_at` so it re-enters recall.
@@ -8137,7 +8177,8 @@ declare function createMemoryVaultTool(vaultCtx: VaultMemoryOperationsContext, o
8137
8177
  *
8138
8178
  * The watermark advances only when the extractor genuinely EXAMINED the window.
8139
8179
  * A pipeline throw and an `empty-after-retry` outcome (the extraction LLM
8140
- * returned empty/malformed after exhausting its retries) both leave it in place,
8180
+ * returned empty/malformed after exhausting its retries), or any failed retain
8181
+ * operation leave it in place,
8141
8182
  * so the next turn's window re-covers those messages instead of stranding them.
8142
8183
  * A quiet turn that legitimately yielded no facts *does* advance it.
8143
8184
  *
@@ -8530,6 +8571,8 @@ interface DecayInput {
8530
8571
  eventTimeKind: string | null;
8531
8572
  /** Unix ms of the row's last write (re-observation resets this). */
8532
8573
  updatedAt: number;
8574
+ /** Last distinct observation; does not change the edit timestamp. */
8575
+ lastObservedAt?: number | null;
8533
8576
  /** Unix ms when archived, or null when active. */
8534
8577
  archivedAt: number | null;
8535
8578
  /** `manual` | `auto-extracted` | `capsule` | null. Manual is never decayed. */
@@ -9092,6 +9135,8 @@ interface RecallToolOptions {
9092
9135
  minScore?: number;
9093
9136
  /** Vault scope filter. */
9094
9137
  scopes?: string[];
9138
+ /** Topic membership, enforced before fact ranking; disables unrestricted chunks. */
9139
+ memoryIds?: string[];
9095
9140
  /** Vault folder filter. */
9096
9141
  folderId?: string | null;
9097
9142
  /** Exclude one conversation from chunk results (typically the active one). */
@@ -9165,7 +9210,30 @@ interface ReflectOptions extends RecallOptions, PortalLlmAuth {
9165
9210
  llmModel?: string;
9166
9211
  /** Cap response length. Default: 4096. */
9167
9212
  maxTokens?: number;
9168
- /** Override the grounding system prompt. */
9213
+ /**
9214
+ * Override the grounding system prompt.
9215
+ *
9216
+ * ⚠ DOING THIS MAKES THE REQUEST'S PROVENANCE YOURS. The default prompt's first sentence is
9217
+ * this flow's fingerprint in the portal's freeloader (anti-bot) detector (see
9218
+ * {@link DEFAULT_SYSTEM_PROMPT}); replacing it wholesale removes that, and a free-tier request
9219
+ * carrying no recognised provenance is rejected outright once the portal's markerless reject is
9220
+ * enabled — a 403, not a degraded answer.
9221
+ *
9222
+ * Which replacement is correct depends on what the call IS, and there is no safe default:
9223
+ *
9224
+ * - **A background/internal call** (a fixed-purpose helper, not a user's own question): prepend
9225
+ * {@link withInternalFlowMarker}, which is exported for exactly this. That is what
9226
+ * profile-facet synthesis does.
9227
+ * - **A user-facing call** (the person is asking their own question and expects an answer):
9228
+ * do NOT use the internal marker — it asserts "not user chat" and would be false. Keep the
9229
+ * default prompt, or append your instructions to it rather than replacing it, so the
9230
+ * fingerprint survives. A genuinely distinct user-facing flow needs its own fingerprint
9231
+ * registered in ai-portal `internal/detection/markers.go`.
9232
+ *
9233
+ * Appending is the cheap way to stay safe: `${DEFAULT_SYSTEM_PROMPT}\n\n${yourInstructions}`
9234
+ * keeps the fingerprint as a prefix. `reflect.test.ts` pins both the marked and the bare
9235
+ * override paths so this stays true.
9236
+ */
9169
9237
  systemPrompt?: string;
9170
9238
  /**
9171
9239
  * Extra caller instruction to carry on the USER turn, between the question and
@@ -9908,6 +9976,83 @@ declare function verifyMemoriesForPublish(memories: readonly MemoryToVerify[], s
9908
9976
  */
9909
9977
  declare function createMessageSourceResolver(ctx: StorageOperationsContext): VerificationSources;
9910
9978
 
9979
+ type MemoryContextLane = "profile" | "fact" | "episode" | "session";
9980
+ interface MemoryContextItem {
9981
+ id: string;
9982
+ content: string;
9983
+ score: number;
9984
+ lane: MemoryContextLane;
9985
+ sourceIds: string[];
9986
+ /** Ranked fact evidence, retained when profile deduplication wins placement. */
9987
+ recalled?: boolean;
9988
+ }
9989
+ interface MemoryContextOptions {
9990
+ query: string;
9991
+ recall: (query: string, options: RecallOptions) => Promise<RecallResult>;
9992
+ loadFacts?: ((options: Parameters<typeof getAllVaultMemoriesOp>[1]) => Promise<StoredVaultMemory[]>) | null;
9993
+ loadSessionRefs?: (() => Promise<Array<{
9994
+ memoryId: string;
9995
+ score: number;
9996
+ }>>) | null;
9997
+ recallOptions?: RecallOptions;
9998
+ /** Topic membership is applied before ranking and to every context lane. */
9999
+ memoryIds?: string[];
10000
+ /** Character budget for contents (formatting overhead is excluded). Default 12000. */
10001
+ maxChars?: number;
10002
+ includeEpisodes?: boolean;
10003
+ onDegraded?: (lane: MemoryContextLane, error: unknown) => void;
10004
+ }
10005
+ interface MemoryContextResult {
10006
+ items: MemoryContextItem[];
10007
+ ranked: boolean;
10008
+ rankedCount: number;
10009
+ degraded: MemoryContextLane[];
10010
+ truncated: boolean;
10011
+ }
10012
+ /** Only skip confidently trivial utterances. Word counts reject useful short
10013
+ * queries and languages whose writing does not separate words with spaces.
10014
+ *
10015
+ * The stoplist is an exact-match allowance for greetings and acknowledgments,
10016
+ * not a language model: anything not listed still recalls, so a missing
10017
+ * language costs a wasted lookup, never a missed memory. Kept to the handful of
10018
+ * forms that cannot carry a fact in the languages the app ships in. */
10019
+ declare function shouldRecallMemory(query: string): boolean;
10020
+ /** Assemble bounded stable/dynamic profile, relevant facts, source excerpts and
10021
+ * prior-turn facts. Lane failures are isolated: an outage cannot replace a
10022
+ * legitimate empty search with unrelated vault contents. */
10023
+ declare function assembleMemoryContext(options: MemoryContextOptions): Promise<MemoryContextResult>;
10024
+
10025
+ interface DurableAutoExtractorOptions extends Omit<CreateAutoExtractorOptions, "scope"> {
10026
+ /**
10027
+ * Scope for facts retained from newly queued turns. Pass an accessor to have
10028
+ * a privacy-mode flip observed at write time: a plain string is sampled once
10029
+ * at construction, which makes correctness depend on the caller disposing and
10030
+ * recreating the extractor on every flip. An accessor that throws is treated
10031
+ * as `"private"` — the direction that cannot publish.
10032
+ */
10033
+ scope?: string | (() => string);
10034
+ /** Coalesce arrivals after durably recording them. Defaults to 20 seconds. */
10035
+ debounceMs?: number;
10036
+ /** Retry delay for a failed batch. Defaults to 30 seconds; max three attempts
10037
+ * per session. Unfinished jobs remain available on the next resume. */
10038
+ retryDelayMs?: number;
10039
+ /**
10040
+ * Ceiling on one batch, from the extraction call through retention. Defaults
10041
+ * to 180 seconds — deliberately above the extraction call's own budget
10042
+ * (`timeoutMs`, 60s per attempt, x `maxAttempts`), so this is a backstop
10043
+ * against a promise that never settles at all rather than a second timeout
10044
+ * competing with that one. Use `timeoutMs`/`totalTimeoutMs` to bound the LLM
10045
+ * call itself. Without a ceiling here, one unsettled promise latched the
10046
+ * drain and killed the outbox for the rest of the session.
10047
+ */
10048
+ batchTimeoutMs?: number;
10049
+ }
10050
+ /** Durable client extraction. Call once per authenticated database session.
10051
+ * Resumes pending jobs on creation, reads bounded batches from encrypted
10052
+ * history, and acknowledges only successful batches. No plaintext snapshots
10053
+ * or pending facts are written to platform preferences. */
10054
+ declare function createDurableAutoExtractor(options: DurableAutoExtractorOptions): AutoExtractor;
10055
+
9911
10056
  /**
9912
10057
  * Queue Types
9913
10058
  *
@@ -10902,4 +11047,4 @@ declare function sanitizeQuotes(s: string): string;
10902
11047
  declare function renderTemplate(value: string | null | undefined, template: string): string | null;
10903
11048
  declare function buildSystemPrompt(ctx: PromptContext, options?: BuildPromptOptions): BuildPromptResult;
10904
11049
 
10905
- 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 ConsolidationAction, 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, EncryptionKeyMissingError, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, type ExtractionFunnel, type ExtractionTimings, 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 MemoryToVerify, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, type MemoryVerification, Message, type MessageChunk, type MessageFeedback, type MessageOrigin, 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 PhotoIngestResult, type PhotoMediaRef, type PlatformStorage, type PortalLlmAuth, type PortalLlmFailure, type PortalLlmFailureReason, 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 PublishedPhotoMemory, 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 RecallEmptyReason, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type ReflectOptions, type ReflectResult, type RequestEncryptionKeyOptions, 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 TopicSkipReason, type TurnCompleteEvent, type TurnSkippedEvent, type UncheckedReason, type UnverifiableReason, 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, type VerificationSources, type VerifyMemoriesForPublishOptions, 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, createMessageSourceResolver, 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, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, isDegradedTopicSkip, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, parseMedia, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, refreshEncryptionKeyIfMatches, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, 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, verifyMemoriesForPublish };
11050
+ 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 ConsolidationAction, 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, type DurableAutoExtractorOptions, ENTITY_FANOUT, type EmbeddedWalletSignerFn, EncryptionKeyMissingError, ExcelProcessor, type ExtractFactsOptions, type ExtractOutcome, type ExtractedCandidate, type ExtractedEntity, type ExtractionCursorStore, type ExtractionFunnel, type ExtractionTimings, 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 MemoryContextItem, type MemoryContextLane, type MemoryContextOptions, type MemoryContextResult, type EmbeddingOptions as MemoryEngineEmbeddingOptions, type MemoryEngineResult, type MemoryEngineSearchOptions, type MemoryExtractedEvent, type MemoryKind, type MemoryQuarantinedEvent, type MemoryToVerify, type MemoryVaultSearchOptions, type MemoryVaultToolOptions, type MemoryVerification, Message, type MessageChunk, type MessageFeedback, type MessageOrigin, 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 PhotoIngestResult, type PhotoMediaRef, type PlatformStorage, type PortalLlmAuth, type PortalLlmFailure, type PortalLlmFailureReason, 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 PublishedPhotoMemory, 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 RecallEmptyReason, type RecallOptions, type RecallResult, type RecallToolCallbacks, type RecallToolOptions, type RecencyOptions, type ReflectOptions, type ReflectResult, type RequestEncryptionKeyOptions, 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 TopicSkipReason, type TurnCompleteEvent, type TurnSkippedEvent, type UncheckedReason, type UnverifiableReason, 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, type VerificationSources, type VerifyMemoriesForPublishOptions, WalletPoller, type WeatherClassification, type WeatherPreProcessorOptions, type WebSearchClassification, type WebSearchPreProcessorOptions, WordProcessor, ZipProcessor, type ZipProcessorOptions, activatedToolSetNames, analyzeStyle, archiveVaultMemoryOp, assembleMemoryContext, 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, createDurableAutoExtractor, createLlmDecayClassifier, createLlmNeighborRefiner, createMediaBatchOp, createMediaOp, createMemoryEngineTool, createMemoryVaultSearchTool, createMemoryVaultTool, createMessageOp, createMessageSourceResolver, createPlatformCursorStore, createProjectOp, createRecallTool, createServerToolsFilter, createStockPricePreProcessor, createSummaryContext, createVaultEmbeddingCache, createVaultMemoriesBatchOp, createVaultMemoryOp, createWeatherPreProcessor, createWebSearchPreProcessor, decryptConversationTitle, decryptData, decryptDataBatch, decryptDataBytes, decryptDataBytesFromBytes, decryptDataWithKey, defaultServerToolsFilter, deleteAllVaultMemoriesForUserOp, deleteConversationOp, deleteConversationSummaryOp, deleteMediaByConversationOp, deleteMediaByMessageOp, deleteMediaOp, deleteMessageOp, 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, ingestPublishedPhotoMemoriesOp, injectionSignatureCatalog, isDegradedTopicSkip, isRerankerAvailable, isSupportedFile, isSupportedMediaType, makeSyntheticStoredConversation, makeSyntheticStoredMessage, maybeSummarizeHistory, mediaToStored, migrateFromModelPreferencesOp, onKeyAvailable, parseMedia, preEmbedVaultMemories, preprocessFiles, progressiveSummarize, projectToStored, queueManager, rankProfileCandidates, recall, reflect, refreshEncryptionKeyIfMatches, relinkMemoryTopicsOp, relinkMisclassifiedVideosOp, renderTemplate, requestEncryptionKey, requestKeyPair, restoreVaultMemoryOp, resumeStream, retain, runToolLoop, sanitizeQuotes, schemaToCreateSQL, scoreProfileSalience, screenCandidatesForInjection, sdkMigrations, sdkModelClasses, sdkSchema, searchChunksOp, searchMediaOp, searchMessagesOp, searchVaultMemories, seedEncryptionKeys, selectServerToolsForPrompt, serverPlatformStorage, setMemoryVisibilityOp, setModelPreferenceOp, setUserPreferenceOp, shouldAnalyzeStyle, shouldChunkMessage, shouldRecallMemory, 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, verifyMemoriesForPublish };