feat(rag): align LightRAG native citations and MCP bridge

This commit is contained in:
lix-2026
2026-06-09 09:20:56 +08:00
parent 0e8b03daf8
commit 8e3be8b0b7
39 changed files with 2255 additions and 2732 deletions
@@ -988,7 +988,11 @@ export const createResourceTabRuntime = (dependencies = {}) => {
const searchQuery = String(input.searchQuery || locator?.searchQuery || params.searchQuery || '').trim();
const lineRange = input.lineRange || locator?.lineRange || params.lineRange || null;
const charRange = input.charRange || locator?.charRange || params.charRange || null;
if (!locator && !Number.isFinite(page) && !bbox && !sourceMapPath && !blockId && !evidenceText && !lineRange && !charRange) return null;
const paragraphOrdinal = String(input.paragraphOrdinal ?? locator?.paragraphOrdinal ?? params.paragraphOrdinal ?? '').trim();
const paraIdStart = String(input.paraIdStart || locator?.paraIdStart || params.paraIdStart || '').trim();
const paraIdEnd = String(input.paraIdEnd || locator?.paraIdEnd || params.paraIdEnd || '').trim();
const textFingerprint = String(input.textFingerprint || locator?.textFingerprint || params.textFingerprint || '').trim();
if (!locator && !Number.isFinite(page) && !bbox && !sourceMapPath && !blockId && !evidenceText && !lineRange && !charRange && !paragraphOrdinal && !paraIdStart && !textFingerprint) return null;
return {
schema: 'mnote.evidence_locator.v1',
...(locator || {}),
@@ -1000,6 +1004,10 @@ export const createResourceTabRuntime = (dependencies = {}) => {
searchQuery,
lineRange,
charRange,
paragraphOrdinal,
paraIdStart,
paraIdEnd,
textFingerprint,
};
};
@@ -1017,6 +1025,10 @@ export const createResourceTabRuntime = (dependencies = {}) => {
if (bbox) url.searchParams.set('bbox', bbox);
if (locator.sourceMapPath) url.searchParams.set('sourceMapPath', String(locator.sourceMapPath));
if (locator.blockId) url.searchParams.set('blockId', String(locator.blockId));
if (locator.paragraphOrdinal) url.searchParams.set('paragraphOrdinal', String(locator.paragraphOrdinal));
if (locator.paraIdStart) url.searchParams.set('paraIdStart', String(locator.paraIdStart));
if (locator.paraIdEnd) url.searchParams.set('paraIdEnd', String(locator.paraIdEnd));
if (locator.textFingerprint) url.searchParams.set('textFingerprint', String(locator.textFingerprint));
if (locator.evidenceText) url.searchParams.set('evidenceText', String(locator.evidenceText));
if (locator.searchQuery) url.searchParams.set('searchQuery', String(locator.searchQuery));
if (url.pathname === '/office-preview' && frame.contentWindow) {
@@ -1038,6 +1050,10 @@ export const createResourceTabRuntime = (dependencies = {}) => {
bbox,
sourceMapPath: locator.sourceMapPath || '',
blockId: locator.blockId || '',
paragraphOrdinal: locator.paragraphOrdinal || '',
paraIdStart: locator.paraIdStart || '',
paraIdEnd: locator.paraIdEnd || '',
textFingerprint: locator.textFingerprint || '',
evidenceText: locator.evidenceText || '',
searchQuery: locator.searchQuery || '',
}, window.location.origin);