























@@ -7,14 +7,12 @@ import {
77type MemoryEmbeddingProviderRuntime,
88} from "openclaw/plugin-sdk/memory-core-host-engine-embeddings";
99import { createSubsystemLogger } from "openclaw/plugin-sdk/memory-core-host-engine-foundation";
10-import { type SessionFileEntry } from "openclaw/plugin-sdk/memory-core-host-engine-qmd";
1110import {
1211buildMultimodalChunkForIndexing,
1312chunkMarkdown,
1413hashText,
1514remapChunkLines,
1615type MemoryChunk,
17-type MemoryFileEntry,
1816type MemorySource,
1917} from "openclaw/plugin-sdk/memory-core-host-engine-storage";
2018import {
@@ -55,6 +53,17 @@ const EMBEDDING_BATCH_TIMEOUT_LOCAL_MS = 10 * 60_000;
55535654const log = createSubsystemLogger("memory");
575556+type MemoryIndexEntry = {
57+path: string;
58+absPath: string;
59+mtimeMs: number;
60+size: number;
61+hash: string;
62+kind?: "markdown" | "multimodal";
63+contentText?: string;
64+lineMap?: number[];
65+};
66+5867export function resolveEmbeddingTimeoutMs(params: {
5968kind: "query" | "batch";
6069providerId?: string;
@@ -207,7 +216,7 @@ export abstract class MemoryManagerEmbeddingOps extends MemoryManagerSyncOps {
207216208217private async embedChunksWithBatch(
209218chunks: MemoryChunk[],
210-_entry: MemoryFileEntry | SessionFileEntry,
219+_entry: MemoryIndexEntry,
211220source: MemorySource,
212221): Promise<number[][]> {
213222const provider = this.provider;
@@ -544,7 +553,7 @@ export abstract class MemoryManagerEmbeddingOps extends MemoryManagerSyncOps {
544553this.db.prepare(`DELETE FROM chunks WHERE path = ? AND source = ?`).run(pathname, source);
545554}
546555547-private upsertFileRecord(entry: MemoryFileEntry | SessionFileEntry, source: MemorySource): void {
556+private upsertFileRecord(entry: MemoryIndexEntry, source: MemorySource): void {
548557this.db
549558.prepare(
550559`INSERT INTO files (path, source, hash, mtime, size) VALUES (?, ?, ?, ?, ?)
@@ -567,7 +576,7 @@ export abstract class MemoryManagerEmbeddingOps extends MemoryManagerSyncOps {
567576 * Pass an empty embeddings array to skip vector writes (FTS-only mode).
568577 */
569578private writeChunks(
570-entry: MemoryFileEntry | SessionFileEntry,
579+entry: MemoryIndexEntry,
571580source: MemorySource,
572581model: string,
573582chunks: MemoryChunk[],
@@ -634,7 +643,7 @@ export abstract class MemoryManagerEmbeddingOps extends MemoryManagerSyncOps {
634643}
635644636645protected async indexFile(
637-entry: MemoryFileEntry | SessionFileEntry,
646+entry: MemoryIndexEntry,
638647options: { source: MemorySource; content?: string },
639648) {
640649// FTS-only mode: no embedding provider, but we can still build a FTS index
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。