feat(graph): node gloss→base embeddable entry 橋——Arcrun#7 A1
修「打標≠讀標」:node gloss+embed 標在 entity record、但 base embed 只掃 entries.metadata.embed → persistNodes 另落一筆 content=canonical:gloss、metadata.embed=true 的 base entry(走 API/零SQL)。 - gloss-entry.ts: upsertGlossEntry 冪等(確定性 page_name + list-then-write) - backfill-gloss-entries.ts + route: 對既有 entity record 補 gloss entry - triplet-ingest 帶 source.uri 進 metadata;kbdb-client 暴露 metadata_json(base 早支援) - vitest 30/30(+7);[→arcrun] base 缺 upsert entry 端點,暫以 list-then-write 冪等
This commit is contained in:
+16
-2
@@ -16,7 +16,16 @@ export class MockKbdbClient {
|
||||
|
||||
async createEntry(input: any): Promise<BaseEntry> {
|
||||
const id = this.id('entry');
|
||||
const entry: BaseEntry = { id, content: input.content ?? null, entry_type: input.entry_type, owner_id: input.owner_id ?? null };
|
||||
// 對齊 base entry-crud:保留 page_name(idempotency key)、metadata_json(embed 打標)、parent_id。
|
||||
const entry: BaseEntry = {
|
||||
id,
|
||||
content: input.content ?? null,
|
||||
entry_type: input.entry_type,
|
||||
owner_id: input.owner_id ?? null,
|
||||
parent_id: input.parent_id ?? null,
|
||||
page_name: input.page_name ?? null,
|
||||
metadata_json: input.metadata_json ?? null,
|
||||
};
|
||||
this.entries.set(id, entry);
|
||||
return entry;
|
||||
}
|
||||
@@ -26,8 +35,13 @@ export class MockKbdbClient {
|
||||
}
|
||||
|
||||
async listEntries(filters: any = {}): Promise<BaseEntry[]> {
|
||||
// 對齊 base entry-crud listEntries 的 exact-match filters(含 page_name idempotency key、parent_id)。
|
||||
return [...this.entries.values()].filter(
|
||||
(e) => (!filters.entry_type || e.entry_type === filters.entry_type) && (!filters.owner_id || e.owner_id === filters.owner_id),
|
||||
(e) =>
|
||||
(!filters.entry_type || e.entry_type === filters.entry_type) &&
|
||||
(!filters.owner_id || e.owner_id === filters.owner_id) &&
|
||||
(!filters.parent_id || e.parent_id === filters.parent_id) &&
|
||||
(!filters.page_name || e.page_name === filters.page_name),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user