@pellux/goodvibes-sdk 0.26.9 → 0.26.10
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.
- package/dist/_internal/contracts/artifacts/operator-contract.json +209 -4
- package/dist/_internal/contracts/generated/foundation-metadata.d.ts +2 -2
- package/dist/_internal/contracts/generated/foundation-metadata.js +2 -2
- package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
- package/dist/_internal/contracts/generated/operator-contract.js +209 -4
- package/dist/_internal/contracts/generated/operator-method-ids.d.ts +1 -1
- package/dist/_internal/contracts/generated/operator-method-ids.d.ts.map +1 -1
- package/dist/_internal/contracts/generated/operator-method-ids.js +1 -0
- package/dist/_internal/platform/control-plane/method-catalog-homegraph.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/method-catalog-homegraph.js +11 -1
- package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.d.ts +1 -0
- package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.js +10 -0
- package/dist/_internal/platform/daemon/http/home-graph-routes.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/home-graph-routes.js +3 -0
- package/dist/_internal/platform/knowledge/extractors.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/extractors.js +73 -1
- package/dist/_internal/platform/knowledge/home-graph/index.d.ts +1 -1
- package/dist/_internal/platform/knowledge/home-graph/index.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/home-graph/reindex.d.ts +12 -0
- package/dist/_internal/platform/knowledge/home-graph/reindex.d.ts.map +1 -0
- package/dist/_internal/platform/knowledge/home-graph/reindex.js +35 -0
- package/dist/_internal/platform/knowledge/home-graph/search.d.ts +2 -0
- package/dist/_internal/platform/knowledge/home-graph/search.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/home-graph/search.js +133 -5
- package/dist/_internal/platform/knowledge/home-graph/service.d.ts +3 -1
- package/dist/_internal/platform/knowledge/home-graph/service.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/home-graph/service.js +42 -5
- package/dist/_internal/platform/knowledge/home-graph/types.d.ts +13 -0
- package/dist/_internal/platform/knowledge/home-graph/types.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/ingest-compile.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/ingest-compile.js +26 -1
- package/dist/_internal/platform/version.js +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractors.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/extractors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;
|
|
1
|
+
{"version":3,"file":"extractors.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/extractors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAmmBD,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,EAC9D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,yBAAyB,CAAC,CA4CpC"}
|
|
@@ -306,7 +306,79 @@ function extractYaml(buffer) {
|
|
|
306
306
|
metadata: {},
|
|
307
307
|
};
|
|
308
308
|
}
|
|
309
|
-
function extractPdf(buffer) {
|
|
309
|
+
async function extractPdf(buffer) {
|
|
310
|
+
const parsed = await extractPdfWithPdfJs(buffer);
|
|
311
|
+
if (parsed)
|
|
312
|
+
return parsed;
|
|
313
|
+
return extractPdfRawStreams(buffer);
|
|
314
|
+
}
|
|
315
|
+
async function extractPdfWithPdfJs(buffer) {
|
|
316
|
+
try {
|
|
317
|
+
const pdfjs = await import('pdfjs-dist/legacy/build/pdf.mjs');
|
|
318
|
+
const loadingTask = pdfjs.getDocument({
|
|
319
|
+
data: new Uint8Array(buffer),
|
|
320
|
+
useSystemFonts: true,
|
|
321
|
+
});
|
|
322
|
+
const document = await loadingTask.promise;
|
|
323
|
+
const pageCount = document.numPages;
|
|
324
|
+
const pageTexts = [];
|
|
325
|
+
for (let pageNumber = 1; pageNumber <= pageCount; pageNumber += 1) {
|
|
326
|
+
const page = await document.getPage(pageNumber);
|
|
327
|
+
const content = await page.getTextContent();
|
|
328
|
+
const lines = textContentItemsToLines(content.items);
|
|
329
|
+
if (lines.length > 0)
|
|
330
|
+
pageTexts.push(lines.join('\n'));
|
|
331
|
+
page.cleanup();
|
|
332
|
+
}
|
|
333
|
+
await document.destroy();
|
|
334
|
+
const text = cleanText(pageTexts.join('\n\n'));
|
|
335
|
+
if (!text)
|
|
336
|
+
return undefined;
|
|
337
|
+
const searchText = searchTextPayload(text);
|
|
338
|
+
return {
|
|
339
|
+
extractorId: 'pdfjs',
|
|
340
|
+
format: 'pdf',
|
|
341
|
+
title: firstNonEmptyLine(text) ?? 'PDF document',
|
|
342
|
+
summary: summarizeText(text) ?? 'PDF document.',
|
|
343
|
+
excerpt: excerptText(text),
|
|
344
|
+
sections: uniqueStrings(text.split(/\n+/), 24),
|
|
345
|
+
links: uniqueStrings(Array.from(text.matchAll(/\bhttps?:\/\/[^\s)]+/g), (match) => match[0]), 50),
|
|
346
|
+
estimatedTokens: estimateTokens(text),
|
|
347
|
+
structure: {
|
|
348
|
+
pageCount,
|
|
349
|
+
extractedTextChars: text.length,
|
|
350
|
+
...(searchText ? { searchText } : {}),
|
|
351
|
+
},
|
|
352
|
+
metadata: {
|
|
353
|
+
limitations: ['PDF text extraction does not perform OCR for scanned images.'],
|
|
354
|
+
},
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
return undefined;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
function textContentItemsToLines(items) {
|
|
362
|
+
const lines = [];
|
|
363
|
+
let current = '';
|
|
364
|
+
for (const item of items) {
|
|
365
|
+
const record = unknownRecord(item);
|
|
366
|
+
const text = typeof record.str === 'string' ? cleanText(record.str) : '';
|
|
367
|
+
if (text)
|
|
368
|
+
current = current ? `${current} ${text}` : text;
|
|
369
|
+
if (record.hasEOL === true && current) {
|
|
370
|
+
lines.push(current);
|
|
371
|
+
current = '';
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
if (current)
|
|
375
|
+
lines.push(current);
|
|
376
|
+
return lines;
|
|
377
|
+
}
|
|
378
|
+
function unknownRecord(value) {
|
|
379
|
+
return value && typeof value === 'object' ? value : {};
|
|
380
|
+
}
|
|
381
|
+
function extractPdfRawStreams(buffer) {
|
|
310
382
|
const body = buffer.toString('latin1');
|
|
311
383
|
const texts = [];
|
|
312
384
|
const streamRe = /stream\r?\n([\s\S]*?)\r?\nendstream/g;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { HomeGraphService } from './service.js';
|
|
2
2
|
export { HOME_GRAPH_NODE_KINDS, HOME_GRAPH_RELATIONS, } from './types.js';
|
|
3
|
-
export type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphKnowledgeTarget, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphNodeKind, HomeGraphObjectInput, HomeGraphObjectKind, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphRelation, HomeGraphReviewInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult, } from './types.js';
|
|
3
|
+
export type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphKnowledgeTarget, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphNodeKind, HomeGraphObjectInput, HomeGraphObjectKind, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphReindexResult, HomeGraphRelation, HomeGraphReviewInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult, } from './types.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ArtifactStore } from '../../artifacts/index.js';
|
|
2
|
+
import type { ArtifactDescriptor } from '../../artifacts/types.js';
|
|
3
|
+
import type { KnowledgeExtractionRecord, KnowledgeSourceRecord } from '../types.js';
|
|
4
|
+
import type { HomeGraphReindexResult } from './types.js';
|
|
5
|
+
export declare function reindexHomeGraphSources(input: {
|
|
6
|
+
readonly spaceId: string;
|
|
7
|
+
readonly sources: readonly KnowledgeSourceRecord[];
|
|
8
|
+
readonly extractionBySourceId: ReadonlyMap<string, KnowledgeExtractionRecord>;
|
|
9
|
+
readonly artifactStore: ArtifactStore;
|
|
10
|
+
readonly extract: (source: KnowledgeSourceRecord, artifact: ArtifactDescriptor) => Promise<KnowledgeExtractionRecord | undefined>;
|
|
11
|
+
}): Promise<HomeGraphReindexResult>;
|
|
12
|
+
//# sourceMappingURL=reindex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/reindex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAC9E,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,kBAAkB,KAAK,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAAC;CACnI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgClC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { homeGraphExtractionNeedsRepair } from './search.js';
|
|
2
|
+
export async function reindexHomeGraphSources(input) {
|
|
3
|
+
const sources = [];
|
|
4
|
+
const failures = [];
|
|
5
|
+
let scanned = 0;
|
|
6
|
+
let reparsed = 0;
|
|
7
|
+
let skipped = 0;
|
|
8
|
+
let failed = 0;
|
|
9
|
+
for (const source of input.sources) {
|
|
10
|
+
const artifactId = typeof source.artifactId === 'string' ? source.artifactId : undefined;
|
|
11
|
+
if (!artifactId)
|
|
12
|
+
continue;
|
|
13
|
+
scanned += 1;
|
|
14
|
+
const current = input.extractionBySourceId.get(source.id);
|
|
15
|
+
if (!homeGraphExtractionNeedsRepair(current)) {
|
|
16
|
+
skipped += 1;
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const artifact = input.artifactStore.get(artifactId);
|
|
20
|
+
if (!artifact) {
|
|
21
|
+
failed += 1;
|
|
22
|
+
failures.push({ sourceId: source.id, error: `Unknown artifact: ${artifactId}` });
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const extraction = await input.extract(source, artifact);
|
|
26
|
+
if (!extraction) {
|
|
27
|
+
failed += 1;
|
|
28
|
+
failures.push({ sourceId: source.id, error: 'Artifact extraction failed.' });
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
reparsed += 1;
|
|
32
|
+
sources.push(source);
|
|
33
|
+
}
|
|
34
|
+
return { ok: true, spaceId: input.spaceId, scanned, reparsed, skipped, failed, sources, failures };
|
|
35
|
+
}
|
|
@@ -10,4 +10,6 @@ export interface HomeGraphSearchState {
|
|
|
10
10
|
}
|
|
11
11
|
export declare function readHomeGraphSearchState(store: KnowledgeStore, spaceId: string): HomeGraphSearchState;
|
|
12
12
|
export declare function scoreHomeGraphResults(query: string, sources: readonly KnowledgeSourceRecord[], nodes: readonly KnowledgeNodeRecord[], edges: readonly KnowledgeEdgeRecord[], extractionBySourceId: (sourceId: string) => KnowledgeExtractionRecord | null | undefined, limit: number): HomeGraphSearchResult[];
|
|
13
|
+
export declare function selectHomeGraphExtractionRepairCandidates(query: string, sources: readonly KnowledgeSourceRecord[], nodes: readonly KnowledgeNodeRecord[], edges: readonly KnowledgeEdgeRecord[], extractionBySourceId: (sourceId: string) => KnowledgeExtractionRecord | null | undefined, limit: number): KnowledgeSourceRecord[];
|
|
14
|
+
export declare function homeGraphExtractionNeedsRepair(extraction: KnowledgeExtractionRecord | null | undefined): boolean;
|
|
13
15
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAgFxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC/E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAqBrG;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,yBAAyB,GAAG,IAAI,GAAG,SAAS,EACxF,KAAK,EAAE,MAAM,GACZ,qBAAqB,EAAE,CAwEzB;AAED,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,yBAAyB,GAAG,IAAI,GAAG,SAAS,EACxF,KAAK,EAAE,MAAM,GACZ,qBAAqB,EAAE,CA6BzB;AA0ID,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAWhH"}
|
|
@@ -54,6 +54,23 @@ const QUERY_EXPANSIONS = {
|
|
|
54
54
|
television: ['tv', 'media_player'],
|
|
55
55
|
tv: ['television', 'media_player'],
|
|
56
56
|
};
|
|
57
|
+
const SOURCE_EVIDENCE_TOKENS = new Set([
|
|
58
|
+
'battery',
|
|
59
|
+
'capabilities',
|
|
60
|
+
'capability',
|
|
61
|
+
'feature',
|
|
62
|
+
'features',
|
|
63
|
+
'manual',
|
|
64
|
+
'model',
|
|
65
|
+
'reset',
|
|
66
|
+
'serial',
|
|
67
|
+
'spec',
|
|
68
|
+
'specs',
|
|
69
|
+
'support',
|
|
70
|
+
'supports',
|
|
71
|
+
'warranty',
|
|
72
|
+
]);
|
|
73
|
+
const INTEGRATION_QUERY_TOKENS = new Set(['automation', 'automations', 'homeassistant', 'integration', 'integrations', 'webostv']);
|
|
57
74
|
export function readHomeGraphSearchState(store, spaceId) {
|
|
58
75
|
const sources = store.listSources(10_000).filter((source) => belongsToSpace(source, spaceId));
|
|
59
76
|
const nodes = store.listNodes(10_000).filter((node) => belongsToSpace(node, spaceId));
|
|
@@ -84,11 +101,16 @@ export function scoreHomeGraphResults(query, sources, nodes, edges, extractionBy
|
|
|
84
101
|
const anchorIds = new Set(anchors.map((anchor) => anchor.node.id));
|
|
85
102
|
const sourceLinks = buildSourceLinkIndex(edges);
|
|
86
103
|
const useAnchorScope = anchors.length > 0 && anchors.length <= ANCHOR_SCOPE_LIMIT;
|
|
104
|
+
const sourceEvidenceQuery = queryNeedsSourceEvidence(expandedTokens);
|
|
105
|
+
const integrationQuery = queryMentionsIntegration(tokens);
|
|
87
106
|
const sourceResults = sources.map((source) => {
|
|
88
107
|
const extraction = extractionBySourceId(source.id);
|
|
89
108
|
if (isPendingDocumentationCandidate(source, extraction)) {
|
|
90
109
|
return sourceResult(source, extraction, 0);
|
|
91
110
|
}
|
|
111
|
+
if (sourceEvidenceQuery && !integrationQuery && isHomeAssistantIntegrationSource(source)) {
|
|
112
|
+
return sourceResult(source, extraction, 0);
|
|
113
|
+
}
|
|
92
114
|
const linkedNodeIds = sourceLinks.get(source.id) ?? new Set();
|
|
93
115
|
const linkedToAnchor = useAnchorScope && intersects(linkedNodeIds, anchorIds);
|
|
94
116
|
const identityScore = scoreFields(tokens, [
|
|
@@ -108,10 +130,11 @@ export function scoreHomeGraphResults(query, sources, nodes, edges, extractionBy
|
|
|
108
130
|
]);
|
|
109
131
|
const baseScore = identityScore + contentScore;
|
|
110
132
|
const linkBoost = linkedToAnchor ? 120 + relationBoost(source.id, anchorIds, edges) : 0;
|
|
133
|
+
const manualBoost = isManualLikeSource(source) ? 24 : 0;
|
|
111
134
|
const indexedBoost = source.status === 'indexed' ? 18 : source.status === 'stale' ? 6 : 0;
|
|
112
135
|
const extractionBoost = extraction ? 20 : 0;
|
|
113
136
|
const score = baseScore > 0 || linkBoost > 0
|
|
114
|
-
? baseScore + linkBoost + indexedBoost + extractionBoost
|
|
137
|
+
? baseScore + linkBoost + manualBoost + indexedBoost + extractionBoost
|
|
115
138
|
: 0;
|
|
116
139
|
return sourceResult(source, extraction, score, selectRelevantExcerpt(expandedTokens, source, extraction));
|
|
117
140
|
});
|
|
@@ -137,16 +160,51 @@ export function scoreHomeGraphResults(query, sources, nodes, edges, extractionBy
|
|
|
137
160
|
if (anchoredSourceResults.length > 0) {
|
|
138
161
|
results = anchoredSourceResults.sort(compareHomeGraphResults);
|
|
139
162
|
}
|
|
163
|
+
if (sourceEvidenceQuery) {
|
|
164
|
+
results = pruneWeakSourceEvidence(results, tokens, sourceLinks, anchorIds);
|
|
165
|
+
}
|
|
140
166
|
const strongResults = pruneWeakTokenCoverage(results, tokens);
|
|
141
167
|
return strongResults.slice(0, Math.max(1, limit));
|
|
142
168
|
}
|
|
169
|
+
export function selectHomeGraphExtractionRepairCandidates(query, sources, nodes, edges, extractionBySourceId, limit) {
|
|
170
|
+
const tokens = tokenizeQuery(query);
|
|
171
|
+
if (tokens.length === 0)
|
|
172
|
+
return [];
|
|
173
|
+
const anchors = selectAnchorNodes(tokens, nodes);
|
|
174
|
+
const anchorIds = new Set(anchors.map((anchor) => anchor.node.id));
|
|
175
|
+
const sourceLinks = buildSourceLinkIndex(edges);
|
|
176
|
+
return sources
|
|
177
|
+
.map((source) => {
|
|
178
|
+
if (!source.artifactId || !homeGraphExtractionNeedsRepair(extractionBySourceId(source.id)))
|
|
179
|
+
return { source, score: 0 };
|
|
180
|
+
const linkedNodeIds = sourceLinks.get(source.id) ?? new Set();
|
|
181
|
+
const linkedToAnchor = anchors.length > 0 && intersects(linkedNodeIds, anchorIds);
|
|
182
|
+
const identityScore = scoreFields(tokens, [
|
|
183
|
+
source.title,
|
|
184
|
+
source.summary,
|
|
185
|
+
source.description,
|
|
186
|
+
source.sourceUri,
|
|
187
|
+
source.canonicalUri,
|
|
188
|
+
source.tags.join(' '),
|
|
189
|
+
]);
|
|
190
|
+
const sourceKindBoost = isManualLikeSource(source) ? 30 : 0;
|
|
191
|
+
const score = linkedToAnchor
|
|
192
|
+
? 140 + relationBoost(source.id, anchorIds, edges) + sourceKindBoost + identityScore
|
|
193
|
+
: identityScore > 0 ? identityScore + sourceKindBoost : 0;
|
|
194
|
+
return { source, score };
|
|
195
|
+
})
|
|
196
|
+
.filter((entry) => entry.score > 0)
|
|
197
|
+
.sort((left, right) => right.score - left.score || left.source.id.localeCompare(right.source.id))
|
|
198
|
+
.slice(0, Math.max(1, limit))
|
|
199
|
+
.map((entry) => entry.source);
|
|
200
|
+
}
|
|
143
201
|
function sourceResult(source, extraction, score, excerpt) {
|
|
144
202
|
return {
|
|
145
203
|
kind: 'source',
|
|
146
204
|
id: source.id,
|
|
147
205
|
score,
|
|
148
206
|
title: source.title ?? source.sourceUri ?? source.id,
|
|
149
|
-
summary: extraction
|
|
207
|
+
summary: usefulExtractionSummary(extraction) ?? source.summary,
|
|
150
208
|
...(excerpt ? { excerpt } : {}),
|
|
151
209
|
source,
|
|
152
210
|
};
|
|
@@ -264,20 +322,79 @@ function isPendingDocumentationCandidate(source, extraction) {
|
|
|
264
322
|
&& source.status !== 'indexed'
|
|
265
323
|
&& source.metadata.homeGraphSourceKind === 'documentation-candidate';
|
|
266
324
|
}
|
|
325
|
+
export function homeGraphExtractionNeedsRepair(extraction) {
|
|
326
|
+
if (!extraction)
|
|
327
|
+
return true;
|
|
328
|
+
if (extraction.format === 'pdf' && extraction.extractorId !== 'pdfjs')
|
|
329
|
+
return true;
|
|
330
|
+
const searchText = readSearchText(extraction);
|
|
331
|
+
if (searchText && searchText.trim().length > 0)
|
|
332
|
+
return false;
|
|
333
|
+
if ((extraction.excerpt?.trim() && !isLowInformationExtractionText(extraction.excerpt))
|
|
334
|
+
|| (extraction.summary?.trim() && !isLowInformationExtractionText(extraction.summary))
|
|
335
|
+
|| extraction.sections.some((section) => section.trim() && !isLowInformationExtractionText(section))) {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
return true;
|
|
339
|
+
}
|
|
340
|
+
function queryNeedsSourceEvidence(tokens) {
|
|
341
|
+
return tokens.some((token) => SOURCE_EVIDENCE_TOKENS.has(token));
|
|
342
|
+
}
|
|
343
|
+
function queryMentionsIntegration(tokens) {
|
|
344
|
+
return tokens.some((token) => INTEGRATION_QUERY_TOKENS.has(token));
|
|
345
|
+
}
|
|
346
|
+
function isManualLikeSource(source) {
|
|
347
|
+
const tags = source.tags.map((tag) => tag.toLowerCase());
|
|
348
|
+
return source.sourceType === 'manual'
|
|
349
|
+
|| source.sourceType === 'document'
|
|
350
|
+
|| source.sourceType === 'url'
|
|
351
|
+
|| tags.includes('manual')
|
|
352
|
+
|| tags.includes('artifact')
|
|
353
|
+
|| tags.includes('document');
|
|
354
|
+
}
|
|
355
|
+
function isHomeAssistantIntegrationSource(source) {
|
|
356
|
+
const tags = source.tags.map((tag) => tag.toLowerCase());
|
|
357
|
+
const sourceKind = typeof source.metadata.homeGraphSourceKind === 'string'
|
|
358
|
+
? source.metadata.homeGraphSourceKind.toLowerCase()
|
|
359
|
+
: '';
|
|
360
|
+
return tags.includes('integration')
|
|
361
|
+
|| tags.includes('documentation')
|
|
362
|
+
|| sourceKind === 'documentation-candidate';
|
|
363
|
+
}
|
|
364
|
+
function pruneWeakSourceEvidence(results, tokens, sourceLinks, anchorIds) {
|
|
365
|
+
const sourceResults = results.filter((result) => result.source);
|
|
366
|
+
if (sourceResults.length === 0)
|
|
367
|
+
return [...results];
|
|
368
|
+
const strongSourceResults = sourceResults.filter((result) => {
|
|
369
|
+
const source = result.source;
|
|
370
|
+
if (!source)
|
|
371
|
+
return false;
|
|
372
|
+
if (!hasUsefulSourceAnswerText(result))
|
|
373
|
+
return false;
|
|
374
|
+
const linkedToAnchor = intersects(sourceLinks.get(source.id) ?? new Set(), anchorIds);
|
|
375
|
+
return linkedToAnchor || tokenCoverage(tokens, resultText(result)) >= Math.min(2, tokens.length);
|
|
376
|
+
});
|
|
377
|
+
return strongSourceResults;
|
|
378
|
+
}
|
|
379
|
+
function hasUsefulSourceAnswerText(result) {
|
|
380
|
+
const detail = result.excerpt ?? result.summary ?? result.source?.description;
|
|
381
|
+
return typeof detail === 'string' && detail.trim().length > 0 && !isLowInformationExtractionText(detail);
|
|
382
|
+
}
|
|
267
383
|
function selectRelevantExcerpt(tokens, source, extraction) {
|
|
268
384
|
const chunks = candidateExcerptChunks(source, extraction);
|
|
269
385
|
let best;
|
|
270
386
|
for (const chunk of chunks) {
|
|
271
387
|
const text = cleanWhitespace(chunk);
|
|
272
|
-
if (!text)
|
|
388
|
+
if (!text || isLowInformationExtractionText(text))
|
|
273
389
|
continue;
|
|
274
390
|
const score = scoreFields(tokens, [text]);
|
|
275
391
|
if (!best || score > best.score || (score === best.score && text.length < best.text.length)) {
|
|
276
392
|
best = { score, text };
|
|
277
393
|
}
|
|
278
394
|
}
|
|
279
|
-
if (!best || best.score <= 0)
|
|
280
|
-
return firstBoundedText(chunks, MAX_ANSWER_EXCERPT_CHARS);
|
|
395
|
+
if (!best || best.score <= 0) {
|
|
396
|
+
return firstBoundedText(chunks.filter((chunk) => !isLowInformationExtractionText(chunk)), MAX_ANSWER_EXCERPT_CHARS);
|
|
397
|
+
}
|
|
281
398
|
return clampAroundBestToken(best.text, tokens, MAX_ANSWER_EXCERPT_CHARS);
|
|
282
399
|
}
|
|
283
400
|
function candidateExcerptChunks(source, extraction) {
|
|
@@ -291,6 +408,17 @@ function candidateExcerptChunks(source, extraction) {
|
|
|
291
408
|
source.summary,
|
|
292
409
|
].filter((value) => typeof value === 'string' && value.trim().length > 0);
|
|
293
410
|
}
|
|
411
|
+
function usefulExtractionSummary(extraction) {
|
|
412
|
+
const summary = extraction?.summary?.trim();
|
|
413
|
+
return summary && !isLowInformationExtractionText(summary) ? summary : undefined;
|
|
414
|
+
}
|
|
415
|
+
function isLowInformationExtractionText(value) {
|
|
416
|
+
const normalized = value.toLowerCase();
|
|
417
|
+
return normalized.includes('pdf extraction produced limited text')
|
|
418
|
+
|| normalized.includes('no readable text streams')
|
|
419
|
+
|| normalized.includes('no specialized extractor matched')
|
|
420
|
+
|| normalized.includes('has no specialized in-core extractor');
|
|
421
|
+
}
|
|
294
422
|
function sentenceChunks(value) {
|
|
295
423
|
const text = cleanWhitespace(value ?? '');
|
|
296
424
|
if (!text)
|
|
@@ -2,7 +2,7 @@ import type { ArtifactStore } from '../../artifacts/index.js';
|
|
|
2
2
|
import type { KnowledgeStore } from '../store.js';
|
|
3
3
|
import type { KnowledgeEdgeRecord, KnowledgeIssueRecord, KnowledgeNodeRecord, KnowledgeSourceRecord } from '../types.js';
|
|
4
4
|
import { type HomeGraphReviewResult } from './review.js';
|
|
5
|
-
import type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphReviewInput, HomeGraphSpaceInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult } from './types.js';
|
|
5
|
+
import type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphReindexResult, HomeGraphReviewInput, HomeGraphSpaceInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult } from './types.js';
|
|
6
6
|
export declare class HomeGraphService {
|
|
7
7
|
private readonly store;
|
|
8
8
|
private readonly artifactStore;
|
|
@@ -18,6 +18,8 @@ export declare class HomeGraphService {
|
|
|
18
18
|
linkKnowledge(input: HomeGraphLinkInput): Promise<HomeGraphLinkResult>;
|
|
19
19
|
unlinkKnowledge(input: HomeGraphLinkInput): Promise<HomeGraphLinkResult>;
|
|
20
20
|
ask(input: HomeGraphAskInput): Promise<HomeGraphAskResult>;
|
|
21
|
+
reindex(input?: HomeGraphSpaceInput): Promise<HomeGraphReindexResult>;
|
|
22
|
+
private repairWeakExtractionsForAsk;
|
|
21
23
|
refreshDevicePassport(input: HomeGraphProjectionInput): Promise<HomeGraphDevicePassportResult>;
|
|
22
24
|
generateRoomPage(input: HomeGraphProjectionInput): Promise<HomeGraphProjectionResult>;
|
|
23
25
|
generatePacket(input: HomeGraphProjectionInput): Promise<HomeGraphProjectionResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EAEnB,oBAAoB,EACpB,mBAAmB,EAEnB,qBAAqB,EAEtB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { extractKnowledgeArtifact } from '../extractors.js';
|
|
2
|
-
import { HOME_GRAPH_CONNECTOR_ID, belongsToSpace, buildHomeGraphMetadata, buildHomeGraphNodeInput, edgeIsActive, homeGraphNodeId, homeGraphSourceId, namespacedCanonicalUri, nodeKindForHomeGraphObject, normalizeHomeGraphObjectInput, resolveHomeGraphSpace, targetToReference, uniqueStrings, } from './helpers.js';
|
|
2
|
+
import { HOME_GRAPH_CONNECTOR_ID, belongsToSpace, buildHomeGraphMetadata, buildHomeGraphNodeInput, edgeIsActive, homeGraphNodeId, homeGraphSourceId, namespacedCanonicalUri, nodeKindForHomeGraphObject, normalizeHomeGraphObjectInput, readRecord, resolveHomeGraphSpace, targetToReference, uniqueStrings, } from './helpers.js';
|
|
3
3
|
import { upsertIntegrationDocumentationCandidates } from './documentation.js';
|
|
4
4
|
import { refreshHomeGraphQualityIssues } from './quality.js';
|
|
5
5
|
import { reviewHomeGraphFact } from './review.js';
|
|
6
6
|
import { collectLinkedObjects, findHomeAssistantNode, inferHomeGraphSourceType, missingDevicePassportFields, readHomeGraphState, renderAskAnswer, renderHomeGraphState, safeHomeGraphFilename, sourcesLinkedToNode, } from './state.js';
|
|
7
7
|
import { renderDevicePassportPage, renderPacketPage, renderRoomPage, } from './rendering.js';
|
|
8
|
-
import {
|
|
8
|
+
import { reindexHomeGraphSources } from './reindex.js';
|
|
9
|
+
import { readHomeGraphSearchState, scoreHomeGraphResults, selectHomeGraphExtractionRepairCandidates, } from './search.js';
|
|
9
10
|
import { HOME_GRAPH_CAPABILITIES } from './types.js';
|
|
10
11
|
export class HomeGraphService {
|
|
11
12
|
store;
|
|
@@ -189,8 +190,11 @@ export class HomeGraphService {
|
|
|
189
190
|
}
|
|
190
191
|
async ask(input) {
|
|
191
192
|
await this.store.init();
|
|
192
|
-
const { spaceId } = resolveHomeGraphSpace(input);
|
|
193
|
-
|
|
193
|
+
const { spaceId, installationId } = resolveHomeGraphSpace(input);
|
|
194
|
+
let state = readHomeGraphSearchState(this.store, spaceId);
|
|
195
|
+
if (await this.repairWeakExtractionsForAsk(spaceId, installationId, input.query, state) > 0) {
|
|
196
|
+
state = readHomeGraphSearchState(this.store, spaceId);
|
|
197
|
+
}
|
|
194
198
|
const results = scoreHomeGraphResults(input.query, state.sources, state.nodes, state.edges, (sourceId) => state.extractionBySourceId.get(sourceId), input.limit ?? 8);
|
|
195
199
|
const sources = results.flatMap((result) => result.source ? [result.source] : []);
|
|
196
200
|
const linkedObjects = collectLinkedObjects(results, state);
|
|
@@ -209,6 +213,34 @@ export class HomeGraphService {
|
|
|
209
213
|
results,
|
|
210
214
|
};
|
|
211
215
|
}
|
|
216
|
+
async reindex(input = {}) {
|
|
217
|
+
await this.store.init();
|
|
218
|
+
const { spaceId, installationId } = resolveHomeGraphSpace(input);
|
|
219
|
+
const state = readHomeGraphSearchState(this.store, spaceId);
|
|
220
|
+
return reindexHomeGraphSources({
|
|
221
|
+
spaceId,
|
|
222
|
+
sources: state.sources,
|
|
223
|
+
extractionBySourceId: state.extractionBySourceId,
|
|
224
|
+
artifactStore: this.artifactStore,
|
|
225
|
+
extract: (source, artifact) => this.extractArtifact(source, artifact, spaceId, installationId),
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
async repairWeakExtractionsForAsk(spaceId, installationId, query, state) {
|
|
229
|
+
const candidates = selectHomeGraphExtractionRepairCandidates(query, state.sources, state.nodes, state.edges, (sourceId) => state.extractionBySourceId.get(sourceId), 8);
|
|
230
|
+
let repaired = 0;
|
|
231
|
+
for (const source of candidates) {
|
|
232
|
+
const artifactId = typeof source.artifactId === 'string' ? source.artifactId : undefined;
|
|
233
|
+
if (!artifactId)
|
|
234
|
+
continue;
|
|
235
|
+
const artifact = this.artifactStore.get(artifactId);
|
|
236
|
+
if (!artifact)
|
|
237
|
+
continue;
|
|
238
|
+
const extraction = await this.extractArtifact(source, artifact, spaceId, installationId);
|
|
239
|
+
if (extraction && extractionHasSearchableText(extraction))
|
|
240
|
+
repaired += 1;
|
|
241
|
+
}
|
|
242
|
+
return repaired;
|
|
243
|
+
}
|
|
212
244
|
async refreshDevicePassport(input) {
|
|
213
245
|
await this.store.init();
|
|
214
246
|
const { spaceId, installationId } = resolveHomeGraphSpace(input);
|
|
@@ -410,8 +442,9 @@ export class HomeGraphService {
|
|
|
410
442
|
return undefined;
|
|
411
443
|
const { buffer } = await this.artifactStore.readContent(artifact.id);
|
|
412
444
|
const extracted = await extractKnowledgeArtifact(record, buffer);
|
|
445
|
+
const existing = this.store.getExtractionBySourceId(source.id);
|
|
413
446
|
return this.store.upsertExtraction({
|
|
414
|
-
id: `hg-extract-${source.id.replace(/^hg-src-/, '')}`,
|
|
447
|
+
id: existing?.id ?? `hg-extract-${source.id.replace(/^hg-src-/, '')}`,
|
|
415
448
|
sourceId: source.id,
|
|
416
449
|
artifactId: artifact.id,
|
|
417
450
|
extractorId: extracted.extractorId,
|
|
@@ -577,3 +610,7 @@ export class HomeGraphService {
|
|
|
577
610
|
};
|
|
578
611
|
}
|
|
579
612
|
}
|
|
613
|
+
function extractionHasSearchableText(extraction) {
|
|
614
|
+
const structure = readRecord(extraction.structure);
|
|
615
|
+
return typeof structure.searchText === 'string' && structure.searchText.trim().length > 0;
|
|
616
|
+
}
|
|
@@ -146,6 +146,19 @@ export interface HomeGraphAskResult {
|
|
|
146
146
|
};
|
|
147
147
|
readonly results: readonly HomeGraphSearchResult[];
|
|
148
148
|
}
|
|
149
|
+
export interface HomeGraphReindexResult {
|
|
150
|
+
readonly ok: true;
|
|
151
|
+
readonly spaceId: string;
|
|
152
|
+
readonly scanned: number;
|
|
153
|
+
readonly reparsed: number;
|
|
154
|
+
readonly skipped: number;
|
|
155
|
+
readonly failed: number;
|
|
156
|
+
readonly sources: readonly KnowledgeSourceRecord[];
|
|
157
|
+
readonly failures: readonly {
|
|
158
|
+
readonly sourceId: string;
|
|
159
|
+
readonly error: string;
|
|
160
|
+
}[];
|
|
161
|
+
}
|
|
149
162
|
export interface HomeGraphSearchResult {
|
|
150
163
|
readonly kind: 'source' | 'node';
|
|
151
164
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-compile.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/ingest-compile.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC,CA8DvG;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5H;
|
|
1
|
+
{"version":3,"file":"ingest-compile.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/ingest-compile.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC,CA8DvG;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5H;AAyBD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAoJf;AAED,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAwGf"}
|
|
@@ -66,7 +66,7 @@ export async function finalizeKnowledgeIngestedSource(context, input) {
|
|
|
66
66
|
}
|
|
67
67
|
export async function recompileKnowledgeSource(context, source) {
|
|
68
68
|
const extraction = source.id ? context.store.getExtractionBySourceId(source.id) : null;
|
|
69
|
-
if (
|
|
69
|
+
if (source.artifactId && extractionNeedsRefresh(extraction)) {
|
|
70
70
|
const content = await context.artifactStore.readContent(source.artifactId);
|
|
71
71
|
const extracted = await extractKnowledgeArtifact(content.record, content.buffer);
|
|
72
72
|
await context.store.upsertExtraction({
|
|
@@ -86,6 +86,31 @@ export async function recompileKnowledgeSource(context, source) {
|
|
|
86
86
|
}
|
|
87
87
|
await compileKnowledgeSource(context, context.store.getSource(source.id) ?? source, context.store.getExtractionBySourceId(source.id));
|
|
88
88
|
}
|
|
89
|
+
function extractionNeedsRefresh(extraction) {
|
|
90
|
+
if (!extraction)
|
|
91
|
+
return true;
|
|
92
|
+
if (extraction.format === 'pdf' && extraction.extractorId !== 'pdfjs')
|
|
93
|
+
return true;
|
|
94
|
+
const searchText = readSearchText(extraction.structure) ?? readSearchText(extraction.metadata);
|
|
95
|
+
if (searchText)
|
|
96
|
+
return false;
|
|
97
|
+
if (hasUsefulText(extraction.excerpt) || hasUsefulText(extraction.summary) || extraction.sections.some(hasUsefulText))
|
|
98
|
+
return false;
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
function readSearchText(record) {
|
|
102
|
+
const value = record.searchText ?? record.text ?? record.content;
|
|
103
|
+
return typeof value === 'string' && value.trim().length > 0 ? value : undefined;
|
|
104
|
+
}
|
|
105
|
+
function hasUsefulText(value) {
|
|
106
|
+
if (!value?.trim())
|
|
107
|
+
return false;
|
|
108
|
+
const normalized = value.toLowerCase();
|
|
109
|
+
return !normalized.includes('pdf extraction produced limited text')
|
|
110
|
+
&& !normalized.includes('no readable text streams')
|
|
111
|
+
&& !normalized.includes('no specialized extractor matched')
|
|
112
|
+
&& !normalized.includes('has no specialized in-core extractor');
|
|
113
|
+
}
|
|
89
114
|
export async function compileKnowledgeSource(context, source, extraction) {
|
|
90
115
|
const initialNodeCount = context.store.status().nodeCount;
|
|
91
116
|
const initialEdgeCount = context.store.status().edgeCount;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.26.
|
|
3
|
+
let version = '0.26.10';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-sdk",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.10",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/mgd34msu/goodvibes-sdk.git"
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"jszip": "^3.10.1",
|
|
24
24
|
"node-edge-tts": "^1.2.10",
|
|
25
25
|
"openai": "^6.29.0",
|
|
26
|
+
"pdfjs-dist": "5.7.284",
|
|
26
27
|
"pyright": "^1.1.408",
|
|
27
28
|
"simple-git": "^3.33.0",
|
|
28
29
|
"sql.js": "^1.14.1",
|