@pellux/goodvibes-sdk 0.27.4 → 0.27.6
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 +16 -1
- package/dist/_internal/contracts/generated/foundation-metadata.d.ts +1 -1
- package/dist/_internal/contracts/generated/foundation-metadata.js +1 -1
- package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
- package/dist/_internal/contracts/generated/operator-contract.js +16 -1
- package/dist/_internal/daemon/knowledge-routes.js +6 -0
- package/dist/_internal/platform/control-plane/method-catalog-knowledge.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/method-catalog-knowledge.js +3 -0
- package/dist/_internal/platform/knowledge/home-graph/ask.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/home-graph/ask.js +1 -0
- package/dist/_internal/platform/knowledge/home-graph/search.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/home-graph/search.js +45 -3
- package/dist/_internal/platform/knowledge/home-graph/state.js +1 -1
- package/dist/_internal/platform/knowledge/semantic/answer.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/semantic/answer.js +131 -10
- package/dist/_internal/platform/knowledge/semantic/enrichment.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/semantic/enrichment.js +35 -1
- package/dist/_internal/platform/knowledge/semantic/llm.d.ts +5 -1
- package/dist/_internal/platform/knowledge/semantic/llm.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/semantic/llm.js +75 -6
- package/dist/_internal/platform/knowledge/semantic/service.d.ts +1 -0
- package/dist/_internal/platform/knowledge/semantic/service.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/semantic/service.js +18 -1
- package/dist/_internal/platform/knowledge/semantic/types.d.ts +5 -0
- package/dist/_internal/platform/knowledge/semantic/types.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/services.js +5 -1
- package/dist/_internal/platform/version.js +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"product": {
|
|
4
4
|
"id": "goodvibes",
|
|
5
5
|
"surface": "operator",
|
|
6
|
-
"version": "0.27.
|
|
6
|
+
"version": "0.27.6"
|
|
7
7
|
},
|
|
8
8
|
"auth": {
|
|
9
9
|
"modes": [
|
|
@@ -30634,6 +30634,21 @@
|
|
|
30634
30634
|
"includeLinkedObjects": {
|
|
30635
30635
|
"type": "boolean"
|
|
30636
30636
|
},
|
|
30637
|
+
"candidateSourceIds": {
|
|
30638
|
+
"type": "array",
|
|
30639
|
+
"items": {
|
|
30640
|
+
"type": "string"
|
|
30641
|
+
}
|
|
30642
|
+
},
|
|
30643
|
+
"candidateNodeIds": {
|
|
30644
|
+
"type": "array",
|
|
30645
|
+
"items": {
|
|
30646
|
+
"type": "string"
|
|
30647
|
+
}
|
|
30648
|
+
},
|
|
30649
|
+
"strictCandidates": {
|
|
30650
|
+
"type": "boolean"
|
|
30651
|
+
},
|
|
30637
30652
|
"metadata": {
|
|
30638
30653
|
"type": "object",
|
|
30639
30654
|
"additionalProperties": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Synced from packages/contracts/src/generated/foundation-metadata.ts
|
|
2
2
|
export const FOUNDATION_METADATA = {
|
|
3
3
|
"productId": "goodvibes",
|
|
4
|
-
"productVersion": "0.27.
|
|
4
|
+
"productVersion": "0.27.6",
|
|
5
5
|
"operatorMethodCount": 256,
|
|
6
6
|
"operatorEventCount": 30,
|
|
7
7
|
"peerEndpointCount": 6
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-contract.d.ts","sourceRoot":"","sources":["../../../../src/_internal/contracts/generated/operator-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"operator-contract.d.ts","sourceRoot":"","sources":["../../../../src/_internal/contracts/generated/operator-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,wBAujiEtB,CAAC"}
|
|
@@ -3,7 +3,7 @@ export const OPERATOR_CONTRACT = {
|
|
|
3
3
|
"product": {
|
|
4
4
|
"id": "goodvibes",
|
|
5
5
|
"surface": "operator",
|
|
6
|
-
"version": "0.27.
|
|
6
|
+
"version": "0.27.6"
|
|
7
7
|
},
|
|
8
8
|
"auth": {
|
|
9
9
|
"modes": [
|
|
@@ -30634,6 +30634,21 @@ export const OPERATOR_CONTRACT = {
|
|
|
30634
30634
|
"includeLinkedObjects": {
|
|
30635
30635
|
"type": "boolean"
|
|
30636
30636
|
},
|
|
30637
|
+
"candidateSourceIds": {
|
|
30638
|
+
"type": "array",
|
|
30639
|
+
"items": {
|
|
30640
|
+
"type": "string"
|
|
30641
|
+
}
|
|
30642
|
+
},
|
|
30643
|
+
"candidateNodeIds": {
|
|
30644
|
+
"type": "array",
|
|
30645
|
+
"items": {
|
|
30646
|
+
"type": "string"
|
|
30647
|
+
}
|
|
30648
|
+
},
|
|
30649
|
+
"strictCandidates": {
|
|
30650
|
+
"type": "boolean"
|
|
30651
|
+
},
|
|
30637
30652
|
"metadata": {
|
|
30638
30653
|
"type": "object",
|
|
30639
30654
|
"additionalProperties": {
|
|
@@ -539,6 +539,9 @@ async function handleKnowledgeAsk(context, request) {
|
|
|
539
539
|
...(typeof body.includeSources === 'boolean' ? { includeSources: body.includeSources } : {}),
|
|
540
540
|
...(typeof body.includeConfidence === 'boolean' ? { includeConfidence: body.includeConfidence } : {}),
|
|
541
541
|
...(typeof body.includeLinkedObjects === 'boolean' ? { includeLinkedObjects: body.includeLinkedObjects } : {}),
|
|
542
|
+
...(Array.isArray(body.candidateSourceIds) ? { candidateSourceIds: body.candidateSourceIds.filter(isString) } : {}),
|
|
543
|
+
...(Array.isArray(body.candidateNodeIds) ? { candidateNodeIds: body.candidateNodeIds.filter(isString) } : {}),
|
|
544
|
+
...(typeof body.strictCandidates === 'boolean' ? { strictCandidates: body.strictCandidates } : {}),
|
|
542
545
|
}));
|
|
543
546
|
}
|
|
544
547
|
async function handleKnowledgePacket(context, request) {
|
|
@@ -714,3 +717,6 @@ async function handleKnowledgeMaterializeProjection(context, request) {
|
|
|
714
717
|
return jsonErrorResponse(error, { status: 400 });
|
|
715
718
|
}
|
|
716
719
|
}
|
|
720
|
+
function isString(value) {
|
|
721
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
722
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-catalog-knowledge.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/method-catalog-knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AA+D1E,eAAO,MAAM,wCAAwC,EAAE,SAAS,uBAAuB,
|
|
1
|
+
{"version":3,"file":"method-catalog-knowledge.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/method-catalog-knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AA+D1E,eAAO,MAAM,wCAAwC,EAAE,SAAS,uBAAuB,EAmqBtF,CAAC"}
|
|
@@ -241,6 +241,9 @@ export const builtinGatewayKnowledgeMethodDescriptors = [
|
|
|
241
241
|
includeSources: BOOLEAN_SCHEMA,
|
|
242
242
|
includeConfidence: BOOLEAN_SCHEMA,
|
|
243
243
|
includeLinkedObjects: BOOLEAN_SCHEMA,
|
|
244
|
+
candidateSourceIds: STRING_LIST_SCHEMA,
|
|
245
|
+
candidateNodeIds: STRING_LIST_SCHEMA,
|
|
246
|
+
strictCandidates: BOOLEAN_SCHEMA,
|
|
244
247
|
metadata: METADATA_SCHEMA,
|
|
245
248
|
}, ['query']),
|
|
246
249
|
outputSchema: KNOWLEDGE_ASK_OUTPUT_SCHEMA,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACpD,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACpD,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqD9B"}
|
|
@@ -17,6 +17,7 @@ export async function answerHomeGraphQuery(input) {
|
|
|
17
17
|
includeLinkedObjects: input.query.includeLinkedObjects,
|
|
18
18
|
candidateSourceIds: sources.map((source) => source.id),
|
|
19
19
|
candidateNodeIds: input.results.flatMap((result) => result.node ? [result.node.id] : []),
|
|
20
|
+
strictCandidates: true,
|
|
20
21
|
linkedObjects,
|
|
21
22
|
noMatchMessage: `No Home Graph knowledge matched "${input.query.query}".`,
|
|
22
23
|
});
|
|
@@ -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;AAGrB,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;AAGrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAoIxD,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,CAuBrG;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,CAoFzB;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,CAoCzB;AAmND,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAWhH"}
|
|
@@ -91,10 +91,39 @@ const SOURCE_EVIDENCE_TOKENS = new Set([
|
|
|
91
91
|
'supports',
|
|
92
92
|
'warranty',
|
|
93
93
|
]);
|
|
94
|
+
const ANCHOR_INTENT_TOKENS = new Set([
|
|
95
|
+
...SOURCE_EVIDENCE_TOKENS,
|
|
96
|
+
'function',
|
|
97
|
+
'functions',
|
|
98
|
+
'mode',
|
|
99
|
+
'modes',
|
|
100
|
+
'setup',
|
|
101
|
+
'install',
|
|
102
|
+
'configure',
|
|
103
|
+
'documentation',
|
|
104
|
+
'manual',
|
|
105
|
+
]);
|
|
106
|
+
const HOME_GRAPH_ANCHOR_KINDS = new Set([
|
|
107
|
+
'ha_home',
|
|
108
|
+
'ha_entity',
|
|
109
|
+
'ha_device',
|
|
110
|
+
'ha_area',
|
|
111
|
+
'ha_automation',
|
|
112
|
+
'ha_script',
|
|
113
|
+
'ha_scene',
|
|
114
|
+
'ha_label',
|
|
115
|
+
'ha_integration',
|
|
116
|
+
'ha_room',
|
|
117
|
+
'ha_device_passport',
|
|
118
|
+
'ha_maintenance_item',
|
|
119
|
+
'ha_troubleshooting_case',
|
|
120
|
+
'ha_purchase',
|
|
121
|
+
'ha_network_node',
|
|
122
|
+
]);
|
|
94
123
|
const INTEGRATION_QUERY_TOKENS = new Set(['automation', 'automations', 'homeassistant', 'integration', 'integrations', 'webostv']);
|
|
95
124
|
export function readHomeGraphSearchState(store, spaceId) {
|
|
96
125
|
const sources = store.listSources(10_000).filter((source) => (belongsToSpace(source, spaceId) && !isGeneratedPageSource(source)));
|
|
97
|
-
const nodes = store.listNodes(10_000).filter((node) => belongsToSpace(node, spaceId));
|
|
126
|
+
const nodes = store.listNodes(10_000).filter((node) => belongsToSpace(node, spaceId) && node.status !== 'stale');
|
|
98
127
|
const sourceIds = new Set(sources.map((source) => source.id));
|
|
99
128
|
const nodeIds = new Set(nodes.map((node) => node.id));
|
|
100
129
|
const edges = store.listEdges().filter((edge) => (edgeIsActive(edge)
|
|
@@ -118,8 +147,9 @@ export function scoreHomeGraphResults(query, sources, nodes, edges, extractionBy
|
|
|
118
147
|
if (tokens.length === 0)
|
|
119
148
|
return [];
|
|
120
149
|
const expandedTokens = expandTokens(tokens);
|
|
121
|
-
const
|
|
122
|
-
const
|
|
150
|
+
const anchorTokens = selectAnchorQueryTokens(tokens);
|
|
151
|
+
const anchors = selectAnchorNodes(anchorTokens, nodes);
|
|
152
|
+
const sourceAnchors = selectSourceAnchors(anchorTokens, anchors.map((anchor) => anchor.node));
|
|
123
153
|
const anchorIds = new Set(sourceAnchors.map((node) => node.id));
|
|
124
154
|
const anchorIdentityTokens = collectAnchorIdentityTokens(sourceAnchors);
|
|
125
155
|
const sourceLinks = buildSourceLinkIndex(edges);
|
|
@@ -319,7 +349,11 @@ function sourceAnchorIdentityScore(anchorTokens, source, extraction) {
|
|
|
319
349
|
]);
|
|
320
350
|
}
|
|
321
351
|
function selectAnchorNodes(tokens, nodes) {
|
|
352
|
+
if (tokens.length === 0)
|
|
353
|
+
return [];
|
|
322
354
|
return nodes.map((node) => {
|
|
355
|
+
if (!isHomeGraphAnchorNode(node))
|
|
356
|
+
return { node, score: 0 };
|
|
323
357
|
const baseScore = scoreFields(tokens, nodeIdentityFields(node));
|
|
324
358
|
const intentBoost = sourceAnchorIntentBoost(tokens, node);
|
|
325
359
|
return {
|
|
@@ -331,6 +365,14 @@ function selectAnchorNodes(tokens, nodes) {
|
|
|
331
365
|
.sort((a, b) => b.score - a.score || a.node.id.localeCompare(b.node.id))
|
|
332
366
|
.slice(0, 12);
|
|
333
367
|
}
|
|
368
|
+
function selectAnchorQueryTokens(tokens) {
|
|
369
|
+
return tokens.filter((token) => !ANCHOR_INTENT_TOKENS.has(token));
|
|
370
|
+
}
|
|
371
|
+
function isHomeGraphAnchorNode(node) {
|
|
372
|
+
if (typeof node.metadata.semanticKind === 'string')
|
|
373
|
+
return false;
|
|
374
|
+
return HOME_GRAPH_ANCHOR_KINDS.has(node.kind);
|
|
375
|
+
}
|
|
334
376
|
function selectSourceAnchors(tokens, nodes) {
|
|
335
377
|
const preferred = nodes.filter((node) => sourceAnchorIntentBoost(tokens, node) >= 0);
|
|
336
378
|
if (preferred.length > 0)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { belongsToSpace, edgeIsActive, readRecord } from './helpers.js';
|
|
2
2
|
export function readHomeGraphState(store, spaceId) {
|
|
3
3
|
const sources = store.listSources(10_000).filter((source) => belongsToSpace(source, spaceId));
|
|
4
|
-
const nodes = store.listNodes(10_000).filter((node) => belongsToSpace(node, spaceId));
|
|
4
|
+
const nodes = store.listNodes(10_000).filter((node) => belongsToSpace(node, spaceId) && node.status !== 'stale');
|
|
5
5
|
const sourceIds = new Set(sources.map((source) => source.id));
|
|
6
6
|
const nodeIds = new Set(nodes.map((node) => node.id));
|
|
7
7
|
const edges = store.listEdges().filter((edge) => (edgeIsActive(edge)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/answer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,KAAK,EACV,4BAA4B,EAC5B,6BAA6B,EAE7B,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAepB,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC5C;
|
|
1
|
+
{"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/answer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,KAAK,EACV,4BAA4B,EAC5B,6BAA6B,EAE7B,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAepB,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC5C;AAsCD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,6BAA6B,CAAC,CAiDxC"}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import { getKnowledgeSpaceId, isInKnowledgeSpace, normalizeKnowledgeSpaceId } from '../spaces.js';
|
|
2
2
|
import { MAX_ANSWER_EVIDENCE_CHARS, clampText, normalizeWhitespace, readRecord, readString, scoreSemanticText, semanticHash, semanticMetadata, sourceSemanticText, tokenizeSemanticQuery, uniqueStrings, } from './utils.js';
|
|
3
|
+
const GENERIC_ANSWER_INTENT_TOKENS = new Set([
|
|
4
|
+
'capabilities',
|
|
5
|
+
'capability',
|
|
6
|
+
'configuration',
|
|
7
|
+
'configure',
|
|
8
|
+
'feature',
|
|
9
|
+
'features',
|
|
10
|
+
'function',
|
|
11
|
+
'functions',
|
|
12
|
+
'install',
|
|
13
|
+
'mode',
|
|
14
|
+
'modes',
|
|
15
|
+
'procedure',
|
|
16
|
+
'setting',
|
|
17
|
+
'settings',
|
|
18
|
+
'setup',
|
|
19
|
+
'spec',
|
|
20
|
+
'specification',
|
|
21
|
+
'specifications',
|
|
22
|
+
'specs',
|
|
23
|
+
'support',
|
|
24
|
+
'supported',
|
|
25
|
+
'supports',
|
|
26
|
+
]);
|
|
3
27
|
export async function answerKnowledgeQuery(context, input) {
|
|
4
28
|
const spaceId = normalizeKnowledgeSpaceId(input.knowledgeSpaceId);
|
|
5
29
|
const mode = input.mode ?? 'standard';
|
|
@@ -25,7 +49,7 @@ export async function answerKnowledgeQuery(context, input) {
|
|
|
25
49
|
};
|
|
26
50
|
}
|
|
27
51
|
const llmAnswer = await synthesizeAnswer(context.llm ?? null, input.query, mode, evidence);
|
|
28
|
-
const facts = uniqueNodes(evidence.flatMap((item) => item.facts)).slice(0, 24);
|
|
52
|
+
const facts = filterFactsForQuery(input.query, uniqueNodes(evidence.flatMap((item) => item.facts))).slice(0, 24);
|
|
29
53
|
const sources = uniqueSources(evidence.flatMap((item) => item.source ? [item.source] : [])).slice(0, limit);
|
|
30
54
|
const linkedObjects = input.includeLinkedObjects === false
|
|
31
55
|
? []
|
|
@@ -53,28 +77,42 @@ function collectAnswerEvidence(store, input, spaceId, limit) {
|
|
|
53
77
|
const tokens = expandQueryTokens(tokenizeSemanticQuery(input.query));
|
|
54
78
|
if (tokens.length === 0)
|
|
55
79
|
return [];
|
|
80
|
+
const subjectTokens = tokens.filter((token) => !GENERIC_ANSWER_INTENT_TOKENS.has(token));
|
|
56
81
|
const candidateSourceIds = new Set(input.candidateSourceIds ?? []);
|
|
57
82
|
const candidateNodeIds = new Set(input.candidateNodeIds ?? []);
|
|
58
83
|
const linkedObjectIds = new Set((input.linkedObjects ?? []).map((node) => node.id));
|
|
84
|
+
const strictCandidates = input.strictCandidates === true && (candidateSourceIds.size > 0 || candidateNodeIds.size > 0);
|
|
59
85
|
const sourceFacts = buildSourceFactIndex(store, spaceId);
|
|
60
86
|
const linkedSourceIds = sourceIdsLinkedToNodes(store, new Set([...candidateNodeIds, ...linkedObjectIds]), spaceId);
|
|
61
87
|
const sourceItems = store.listSources(10_000)
|
|
62
88
|
.filter((source) => belongsToAnswerSpace(source, spaceId))
|
|
89
|
+
.filter((source) => !strictCandidates || candidateSourceIds.has(source.id) || (candidateSourceIds.size === 0 && linkedSourceIds.has(source.id)))
|
|
63
90
|
.map((source) => {
|
|
64
91
|
const extraction = store.getExtractionBySourceId(source.id);
|
|
65
|
-
const facts = sourceFacts.get(source.id) ?? [];
|
|
92
|
+
const facts = filterFactsForQuery(input.query, sourceFacts.get(source.id) ?? []);
|
|
66
93
|
const text = sourceSemanticText(source, extraction);
|
|
67
|
-
const
|
|
94
|
+
const scoringText = [
|
|
68
95
|
source.title,
|
|
69
96
|
source.summary,
|
|
70
97
|
source.description,
|
|
71
98
|
source.tags.join(' '),
|
|
72
99
|
text,
|
|
73
100
|
facts.map(renderFactForScoring).join(' '),
|
|
74
|
-
].join('\n')
|
|
101
|
+
].join('\n');
|
|
102
|
+
const baseScore = scoreSemanticText(scoringText, tokens);
|
|
103
|
+
const subjectScore = subjectTokens.length > 0 ? scoreSemanticText(scoringText, subjectTokens) : 0;
|
|
75
104
|
const candidateBoost = candidateSourceIds.has(source.id) ? 220 : 0;
|
|
76
105
|
const linkedBoost = linkedSourceIds.has(source.id) ? 160 : 0;
|
|
77
|
-
const
|
|
106
|
+
const genericOnly = subjectTokens.length > 0 && subjectScore === 0;
|
|
107
|
+
const weakStrictCandidate = strictCandidates
|
|
108
|
+
&& candidateSourceIds.size > 1
|
|
109
|
+
&& candidateSourceIds.has(source.id)
|
|
110
|
+
&& !linkedSourceIds.has(source.id)
|
|
111
|
+
&& genericOnly;
|
|
112
|
+
const weakBroadMatch = !strictCandidates && genericOnly;
|
|
113
|
+
const score = weakStrictCandidate || weakBroadMatch
|
|
114
|
+
? 0
|
|
115
|
+
: baseScore + candidateBoost + linkedBoost + Math.min(60, facts.length * 6);
|
|
78
116
|
return {
|
|
79
117
|
kind: 'source',
|
|
80
118
|
id: source.id,
|
|
@@ -86,14 +124,25 @@ function collectAnswerEvidence(store, input, spaceId, limit) {
|
|
|
86
124
|
};
|
|
87
125
|
});
|
|
88
126
|
const nodeItems = store.listNodes(10_000)
|
|
89
|
-
.filter((node) => belongsToAnswerSpace(node, spaceId))
|
|
127
|
+
.filter((node) => belongsToAnswerSpace(node, spaceId) && node.status !== 'stale')
|
|
128
|
+
.filter((node) => !strictCandidates
|
|
129
|
+
|| candidateNodeIds.has(node.id)
|
|
130
|
+
|| linkedObjectIds.has(node.id)
|
|
131
|
+
|| (typeof node.sourceId === 'string' && candidateSourceIds.has(node.sourceId)))
|
|
90
132
|
.map((node) => {
|
|
91
|
-
const
|
|
133
|
+
const scoringText = [
|
|
92
134
|
node.title,
|
|
93
135
|
node.summary,
|
|
94
136
|
node.aliases.join(' '),
|
|
95
137
|
JSON.stringify(node.metadata),
|
|
96
|
-
].join('\n')
|
|
138
|
+
].join('\n');
|
|
139
|
+
const baseScore = scoreSemanticText(scoringText, tokens);
|
|
140
|
+
const subjectScore = subjectTokens.length > 0 ? scoreSemanticText(scoringText, subjectTokens) : 0;
|
|
141
|
+
const genericOnly = subjectTokens.length > 0 && subjectScore === 0;
|
|
142
|
+
const candidateOrLinked = candidateNodeIds.has(node.id) || linkedObjectIds.has(node.id);
|
|
143
|
+
const score = genericOnly && !candidateOrLinked
|
|
144
|
+
? 0
|
|
145
|
+
: baseScore + (candidateOrLinked ? 120 : 0) + semanticKindBoost(node);
|
|
97
146
|
return {
|
|
98
147
|
kind: 'node',
|
|
99
148
|
id: node.id,
|
|
@@ -115,6 +164,7 @@ async function synthesizeAnswer(llm, query, mode, evidence) {
|
|
|
115
164
|
const response = await llm.completeJson({
|
|
116
165
|
purpose: 'knowledge-answer-synthesis',
|
|
117
166
|
maxTokens: mode === 'detailed' ? 2200 : mode === 'concise' ? 700 : 1400,
|
|
167
|
+
timeoutMs: 15_000,
|
|
118
168
|
systemPrompt: [
|
|
119
169
|
'You answer questions from a GoodVibes self-improving knowledge wiki.',
|
|
120
170
|
'Use only the supplied evidence. Synthesize the answer for the user intent rather than dumping snippets.',
|
|
@@ -161,7 +211,7 @@ function renderEvidenceForPrompt(evidence) {
|
|
|
161
211
|
return rendered;
|
|
162
212
|
}
|
|
163
213
|
function renderFallbackAnswer(query, mode, evidence) {
|
|
164
|
-
const facts = uniqueNodes(evidence.flatMap((item) => item.facts));
|
|
214
|
+
const facts = filterFactsForQuery(query, uniqueNodes(evidence.flatMap((item) => item.facts)));
|
|
165
215
|
const factLines = facts
|
|
166
216
|
.filter((fact) => fact.metadata.semanticKind === 'fact')
|
|
167
217
|
.slice(0, mode === 'detailed' ? 12 : mode === 'concise' ? 3 : 6)
|
|
@@ -176,6 +226,77 @@ function renderFallbackAnswer(query, mode, evidence) {
|
|
|
176
226
|
.map((item) => `- ${item.title}${item.excerpt ? `: ${clampText(item.excerpt, 360)}` : ''}`);
|
|
177
227
|
return lines.length > 0 ? lines.join('\n') : `No knowledge matched "${query}".`;
|
|
178
228
|
}
|
|
229
|
+
function filterFactsForQuery(query, facts) {
|
|
230
|
+
const tokens = tokenizeSemanticQuery(query);
|
|
231
|
+
const intent = factIntent(tokens);
|
|
232
|
+
const matching = intent
|
|
233
|
+
? facts.filter((fact) => intent.has(readString(fact.metadata.factKind) ?? 'note'))
|
|
234
|
+
: [...facts];
|
|
235
|
+
return matching
|
|
236
|
+
.filter((fact) => fact.status !== 'stale' && !isLowValueFactForQuery(tokens, intent, fact))
|
|
237
|
+
.sort(compareFactQuality);
|
|
238
|
+
}
|
|
239
|
+
function factIntent(tokens) {
|
|
240
|
+
const tokenSet = new Set(tokens);
|
|
241
|
+
if (hasAny(tokenSet, ['feature', 'features', 'capability', 'capabilities', 'function', 'functions', 'support', 'supports', 'spec', 'specs', 'specification', 'specifications'])) {
|
|
242
|
+
return new Set(['feature', 'capability', 'specification', 'compatibility', 'configuration', 'identity']);
|
|
243
|
+
}
|
|
244
|
+
if (hasAny(tokenSet, ['reset', 'setup', 'install', 'configure', 'pair'])) {
|
|
245
|
+
return new Set(['procedure', 'configuration', 'troubleshooting']);
|
|
246
|
+
}
|
|
247
|
+
if (hasAny(tokenSet, ['battery', 'filter', 'maintenance', 'warranty', 'replace', 'clean'])) {
|
|
248
|
+
return new Set(['maintenance', 'specification', 'warning']);
|
|
249
|
+
}
|
|
250
|
+
if (hasAny(tokenSet, ['warning', 'caution', 'risk', 'hazard']))
|
|
251
|
+
return new Set(['warning']);
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
function hasAny(values, candidates) {
|
|
255
|
+
return candidates.some((candidate) => values.has(candidate));
|
|
256
|
+
}
|
|
257
|
+
function isLowValueFactForQuery(tokens, intent, fact) {
|
|
258
|
+
if (!intent || !hasFeatureIntent(intent))
|
|
259
|
+
return false;
|
|
260
|
+
const kind = readString(fact.metadata.factKind) ?? 'note';
|
|
261
|
+
if (!['feature', 'capability', 'specification', 'compatibility', 'configuration', 'identity'].includes(kind))
|
|
262
|
+
return false;
|
|
263
|
+
const text = [
|
|
264
|
+
fact.title,
|
|
265
|
+
fact.summary,
|
|
266
|
+
readString(fact.metadata.value),
|
|
267
|
+
readString(fact.metadata.evidence),
|
|
268
|
+
Array.isArray(fact.metadata.labels) ? fact.metadata.labels.join(' ') : '',
|
|
269
|
+
].filter(Boolean).join(' ').toLowerCase();
|
|
270
|
+
if (isManualBoilerplateFeatureText(text))
|
|
271
|
+
return true;
|
|
272
|
+
const extractor = readString(fact.metadata.extractor);
|
|
273
|
+
const confidence = typeof fact.confidence === 'number' ? fact.confidence : 0;
|
|
274
|
+
if (extractor !== 'deterministic' || confidence > 60)
|
|
275
|
+
return false;
|
|
276
|
+
const subjectTokens = tokens.filter((token) => !GENERIC_ANSWER_INTENT_TOKENS.has(token));
|
|
277
|
+
return subjectTokens.length > 0 && !hasConcreteFeatureSignal(text);
|
|
278
|
+
}
|
|
279
|
+
function hasFeatureIntent(intent) {
|
|
280
|
+
return intent.has('feature') || intent.has('capability') || intent.has('specification') || intent.has('compatibility');
|
|
281
|
+
}
|
|
282
|
+
function isManualBoilerplateFeatureText(text) {
|
|
283
|
+
return /\b(items? supplied|accessories supplied|contents? of (this )?manual|may vary|may be changed|without prior notice|depending (upon|on) (the )?model|available menus? and options?|product specifications?|power cord|electric shock|fire hazard|certified cable|do not|warning|caution|risk|hazard|clean only|near water|ventilation|antenna grounding)\b/.test(text);
|
|
284
|
+
}
|
|
285
|
+
function hasConcreteFeatureSignal(text) {
|
|
286
|
+
return /\b(hdmi|usb|hdr|hdr10|dolby|vision|earc|arc|bluetooth|wi-?fi|ethernet|voice|remote|game|filmmaker|airplay|chromecast|resolution|4k|8k|refresh|ports?|speakers?|audio|display|screen|apps?|streaming|matter|energy monitoring|scheduling|sensor|battery|z-?wave|zigbee|thread|motion|temperature|humidity|camera|recording|lock|garage|local control|api|automation)\b/.test(text);
|
|
287
|
+
}
|
|
288
|
+
function compareFactQuality(left, right) {
|
|
289
|
+
return factQuality(right) - factQuality(left) || left.title.localeCompare(right.title);
|
|
290
|
+
}
|
|
291
|
+
function factQuality(fact) {
|
|
292
|
+
const extractor = readString(fact.metadata.extractor);
|
|
293
|
+
const kind = readString(fact.metadata.factKind);
|
|
294
|
+
const value = readString(fact.metadata.value);
|
|
295
|
+
return (extractor === 'llm' ? 40 : 0)
|
|
296
|
+
+ (value ? 12 : 0)
|
|
297
|
+
+ (kind === 'capability' || kind === 'feature' ? 8 : kind === 'specification' ? 6 : 0)
|
|
298
|
+
+ Math.round(fact.confidence / 10);
|
|
299
|
+
}
|
|
179
300
|
async function persistAnswerGap(store, spaceId, query, reason) {
|
|
180
301
|
const node = await store.upsertNode({
|
|
181
302
|
id: `sem-answer-gap-${semanticHash(spaceId, query)}`,
|
|
@@ -214,7 +335,7 @@ async function persistAnswerGaps(store, spaceId, query, gaps) {
|
|
|
214
335
|
return nodes;
|
|
215
336
|
}
|
|
216
337
|
function buildSourceFactIndex(store, spaceId) {
|
|
217
|
-
const facts = store.listNodes(10_000).filter((node) => (node.metadata.semanticKind === 'fact' && belongsToAnswerSpace(node, spaceId)));
|
|
338
|
+
const facts = store.listNodes(10_000).filter((node) => (node.status !== 'stale' && node.metadata.semanticKind === 'fact' && belongsToAnswerSpace(node, spaceId)));
|
|
218
339
|
const bySource = new Map();
|
|
219
340
|
for (const fact of facts) {
|
|
220
341
|
const sourceId = readString(fact.metadata.sourceId) ?? fact.sourceId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichment.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAEV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAKV,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAkBpB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC/C;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kCAAkC,EAC3C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"enrichment.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAEV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAKV,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAkBpB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC/C;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kCAAkC,EAC3C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,2BAA2B,CAAC,CA+BtC"}
|
|
@@ -4,7 +4,9 @@ export async function enrichKnowledgeSource(context, source, options = {}) {
|
|
|
4
4
|
const text = sourceSemanticText(source, extraction);
|
|
5
5
|
const textHash = sourceSemanticHash(source, extraction);
|
|
6
6
|
const existingSemantic = readRecord(source.metadata.semanticEnrichment);
|
|
7
|
-
|
|
7
|
+
const currentExtractor = readString(existingSemantic.extractor);
|
|
8
|
+
const shouldUpgradeDeterministic = Boolean(context.llm && existingSemantic.textHash === textHash && currentExtractor !== 'llm');
|
|
9
|
+
if (!options.force && existingSemantic.textHash === textHash && !shouldUpgradeDeterministic) {
|
|
8
10
|
return emptyResult(source, true, 'semantic enrichment is current');
|
|
9
11
|
}
|
|
10
12
|
if (text.length < 40) {
|
|
@@ -34,6 +36,7 @@ async function extractSemanticsWithLlm(llm, source, extraction, text) {
|
|
|
34
36
|
return llm.completeJson({
|
|
35
37
|
purpose: 'knowledge-semantic-enrichment',
|
|
36
38
|
maxTokens: 2600,
|
|
39
|
+
timeoutMs: 20_000,
|
|
37
40
|
systemPrompt: [
|
|
38
41
|
'You extract a durable semantic knowledge graph from source material.',
|
|
39
42
|
'Return only JSON. Do not invent facts. Every fact must be grounded in the supplied source text.',
|
|
@@ -256,8 +259,39 @@ async function persistSemanticExtraction(store, source, extraction, semantic, op
|
|
|
256
259
|
});
|
|
257
260
|
}
|
|
258
261
|
const wikiPage = await persistWikiPage(store, source, semantic, spaceId, options.textHash);
|
|
262
|
+
await markPreviousSemanticNodesStale(store, source.id, spaceId, new Set([
|
|
263
|
+
...entities.map((node) => node.id),
|
|
264
|
+
...facts.map((node) => node.id),
|
|
265
|
+
...gaps.map((node) => node.id),
|
|
266
|
+
...(wikiPage ? [wikiPage.id] : []),
|
|
267
|
+
]));
|
|
259
268
|
return { source, skipped: false, extractor: semantic.extractor, facts, entities, gaps, ...(wikiPage ? { wikiPage } : {}) };
|
|
260
269
|
}
|
|
270
|
+
async function markPreviousSemanticNodesStale(store, sourceId, spaceId, activeIds) {
|
|
271
|
+
const supersededAt = Date.now();
|
|
272
|
+
const semanticNodes = store.listNodes(10_000).filter((node) => (node.sourceId === sourceId
|
|
273
|
+
&& typeof node.metadata.semanticKind === 'string'
|
|
274
|
+
&& node.status !== 'stale'
|
|
275
|
+
&& !activeIds.has(node.id)));
|
|
276
|
+
for (const node of semanticNodes) {
|
|
277
|
+
await store.upsertNode({
|
|
278
|
+
id: node.id,
|
|
279
|
+
kind: node.kind,
|
|
280
|
+
slug: node.slug,
|
|
281
|
+
title: node.title,
|
|
282
|
+
summary: node.summary,
|
|
283
|
+
aliases: node.aliases,
|
|
284
|
+
status: 'stale',
|
|
285
|
+
confidence: node.confidence,
|
|
286
|
+
...(node.sourceId ? { sourceId: node.sourceId } : {}),
|
|
287
|
+
metadata: {
|
|
288
|
+
...node.metadata,
|
|
289
|
+
supersededAt,
|
|
290
|
+
supersededInSpaceId: spaceId,
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
}
|
|
261
295
|
async function persistWikiPage(store, source, semantic, spaceId, textHash) {
|
|
262
296
|
const markdown = semantic.wikiPage?.markdown ?? renderDeterministicWikiPage(source, semantic.facts);
|
|
263
297
|
if (!markdown.trim())
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { ProviderRegistry } from '../../providers/registry.js';
|
|
2
2
|
import type { KnowledgeSemanticLlm } from './types.js';
|
|
3
|
-
export
|
|
3
|
+
export interface ProviderBackedKnowledgeSemanticLlmOptions {
|
|
4
|
+
readonly timeoutMs?: number;
|
|
5
|
+
readonly maxConcurrent?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function createProviderBackedKnowledgeSemanticLlm(providerRegistry: ProviderRegistry, options?: ProviderBackedKnowledgeSemanticLlmOptions): KnowledgeSemanticLlm;
|
|
4
8
|
//# sourceMappingURL=llm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,wBAAgB,wCAAwC,CACtD,gBAAgB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,yCAAyC;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,wCAAwC,CACtD,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE,yCAA8C,GACtD,oBAAoB,CAatB"}
|
|
@@ -1,26 +1,59 @@
|
|
|
1
1
|
import { logger } from '../../utils/logger.js';
|
|
2
2
|
import { summarizeError } from '../../utils/error-display.js';
|
|
3
3
|
import { extractJsonObject } from './utils.js';
|
|
4
|
-
export function createProviderBackedKnowledgeSemanticLlm(providerRegistry) {
|
|
4
|
+
export function createProviderBackedKnowledgeSemanticLlm(providerRegistry, options = {}) {
|
|
5
|
+
const limiter = new SemanticLlmLimiter(Math.max(1, options.maxConcurrent ?? 1));
|
|
6
|
+
const timeoutMs = Math.max(1_000, options.timeoutMs ?? 20_000);
|
|
5
7
|
return {
|
|
6
|
-
completeJson: async (input) => {
|
|
7
|
-
const text = await completeWithCurrentModel(providerRegistry, input);
|
|
8
|
+
completeJson: async (input) => limiter.run(async () => {
|
|
9
|
+
const text = await completeWithCurrentModel(providerRegistry, { ...input, timeoutMs: input.timeoutMs ?? timeoutMs });
|
|
8
10
|
return text ? extractJsonObject(text) : null;
|
|
9
|
-
},
|
|
10
|
-
completeText: async (input) => completeWithCurrentModel(providerRegistry, input),
|
|
11
|
+
}),
|
|
12
|
+
completeText: async (input) => limiter.run(async () => completeWithCurrentModel(providerRegistry, { ...input, timeoutMs: input.timeoutMs ?? timeoutMs })),
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
async function completeWithCurrentModel(providerRegistry, input) {
|
|
16
|
+
const timeoutMs = Math.max(1_000, input.timeoutMs ?? 20_000);
|
|
17
|
+
const controller = new AbortController();
|
|
18
|
+
const timeoutSentinel = Symbol('semantic-timeout');
|
|
19
|
+
let timedOut = false;
|
|
20
|
+
let timer;
|
|
21
|
+
const abortFromParent = () => controller.abort();
|
|
22
|
+
if (input.signal?.aborted)
|
|
23
|
+
return null;
|
|
24
|
+
input.signal?.addEventListener('abort', abortFromParent, { once: true });
|
|
14
25
|
try {
|
|
15
26
|
const current = providerRegistry.getCurrentModel();
|
|
16
27
|
const provider = providerRegistry.getForModel(current.id, current.provider);
|
|
17
|
-
const
|
|
28
|
+
const chatPromise = provider.chat({
|
|
18
29
|
model: current.id,
|
|
19
30
|
messages: [{ role: 'user', content: input.prompt }],
|
|
20
31
|
systemPrompt: input.systemPrompt,
|
|
21
32
|
maxTokens: input.maxTokens ?? 1800,
|
|
22
33
|
reasoningEffort: 'low',
|
|
34
|
+
signal: controller.signal,
|
|
35
|
+
}).catch((error) => {
|
|
36
|
+
if (timedOut || controller.signal.aborted)
|
|
37
|
+
return null;
|
|
38
|
+
throw error;
|
|
39
|
+
});
|
|
40
|
+
const timeoutPromise = new Promise((resolve) => {
|
|
41
|
+
timer = setTimeout(() => {
|
|
42
|
+
timedOut = true;
|
|
43
|
+
controller.abort();
|
|
44
|
+
resolve(timeoutSentinel);
|
|
45
|
+
}, timeoutMs);
|
|
23
46
|
});
|
|
47
|
+
const response = await Promise.race([chatPromise, timeoutPromise]);
|
|
48
|
+
if (response === timeoutSentinel) {
|
|
49
|
+
logger.debug('Knowledge semantic LLM request timed out', {
|
|
50
|
+
purpose: input.purpose,
|
|
51
|
+
timeoutMs,
|
|
52
|
+
});
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (!response)
|
|
56
|
+
return null;
|
|
24
57
|
const content = response.content?.trim() ?? '';
|
|
25
58
|
return content.length > 0 ? content : null;
|
|
26
59
|
}
|
|
@@ -31,4 +64,40 @@ async function completeWithCurrentModel(providerRegistry, input) {
|
|
|
31
64
|
});
|
|
32
65
|
return null;
|
|
33
66
|
}
|
|
67
|
+
finally {
|
|
68
|
+
if (timer)
|
|
69
|
+
clearTimeout(timer);
|
|
70
|
+
input.signal?.removeEventListener('abort', abortFromParent);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
class SemanticLlmLimiter {
|
|
74
|
+
maxConcurrent;
|
|
75
|
+
active = 0;
|
|
76
|
+
queue = [];
|
|
77
|
+
constructor(maxConcurrent) {
|
|
78
|
+
this.maxConcurrent = maxConcurrent;
|
|
79
|
+
}
|
|
80
|
+
async run(fn) {
|
|
81
|
+
await this.acquire();
|
|
82
|
+
try {
|
|
83
|
+
return await fn();
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
this.release();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async acquire() {
|
|
90
|
+
if (this.active < this.maxConcurrent) {
|
|
91
|
+
this.active += 1;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
await new Promise((resolve) => this.queue.push(resolve));
|
|
95
|
+
this.active += 1;
|
|
96
|
+
}
|
|
97
|
+
release() {
|
|
98
|
+
this.active = Math.max(0, this.active - 1);
|
|
99
|
+
const next = this.queue.shift();
|
|
100
|
+
if (next)
|
|
101
|
+
next();
|
|
102
|
+
}
|
|
34
103
|
}
|
|
@@ -3,6 +3,7 @@ import type { KnowledgeSourceRecord } from '../types.js';
|
|
|
3
3
|
import type { KnowledgeSemanticAnswerInput, KnowledgeSemanticAnswerResult, KnowledgeSemanticEnrichmentResult, KnowledgeSemanticLlm } from './types.js';
|
|
4
4
|
export interface KnowledgeSemanticServiceOptions {
|
|
5
5
|
readonly llm?: KnowledgeSemanticLlm | null;
|
|
6
|
+
readonly maxLlmSourcesPerReindex?: number;
|
|
6
7
|
}
|
|
7
8
|
export declare class KnowledgeSemanticService {
|
|
8
9
|
private readonly store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,KAAK,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EACjC,oBAAoB,EACrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,KAAK,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EACjC,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,+BAAoC;IAG1D,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3E,OAAO,CAAC,iCAAiC,GAAG,IAAI,CAAC;IAO9C,aAAa,CACjB,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,KAAK,GAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACpG,OAAO,CAAC,SAAS,iCAAiC,EAAE,CAAC;IASlD,OAAO,CAAC,KAAK,GAAE;QACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC/B,GAAG,OAAO,CAAC;QACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACnF,CAAC;IA6BI,MAAM,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,6BAA6B,CAAC;CAI1F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { answerKnowledgeQuery } from './answer.js';
|
|
2
2
|
import { enrichKnowledgeSource } from './enrichment.js';
|
|
3
|
+
import { readRecord, readString, sourceSemanticHash, sourceSemanticText } from './utils.js';
|
|
3
4
|
export class KnowledgeSemanticService {
|
|
4
5
|
store;
|
|
5
6
|
options;
|
|
@@ -29,13 +30,20 @@ export class KnowledgeSemanticService {
|
|
|
29
30
|
const sources = this.store.listSources(10_000)
|
|
30
31
|
.filter((source) => !allowed || allowed.has(source.id))
|
|
31
32
|
.slice(0, Math.max(1, input.limit ?? 10_000));
|
|
33
|
+
const maxLlmSources = Math.max(0, this.options.maxLlmSourcesPerReindex ?? 3);
|
|
34
|
+
let llmAttempts = 0;
|
|
32
35
|
let enriched = 0;
|
|
33
36
|
let skipped = 0;
|
|
34
37
|
let failed = 0;
|
|
35
38
|
const errors = [];
|
|
36
39
|
for (const source of sources) {
|
|
37
40
|
try {
|
|
38
|
-
const
|
|
41
|
+
const llm = this.options.llm && llmAttempts < maxLlmSources && sourceCanUseLlmUpgrade(this.store, source)
|
|
42
|
+
? this.options.llm
|
|
43
|
+
: null;
|
|
44
|
+
if (llm)
|
|
45
|
+
llmAttempts += 1;
|
|
46
|
+
const result = await enrichKnowledgeSource({ store: this.store, llm }, source, input);
|
|
39
47
|
if (result?.skipped)
|
|
40
48
|
skipped += 1;
|
|
41
49
|
else if (result)
|
|
@@ -53,3 +61,12 @@ export class KnowledgeSemanticService {
|
|
|
53
61
|
return answerKnowledgeQuery({ store: this.store, llm: this.options.llm }, input);
|
|
54
62
|
}
|
|
55
63
|
}
|
|
64
|
+
function sourceCanUseLlmUpgrade(store, source) {
|
|
65
|
+
const extraction = store.getExtractionBySourceId(source.id);
|
|
66
|
+
const text = sourceSemanticText(source, extraction);
|
|
67
|
+
if (text.length < 40)
|
|
68
|
+
return false;
|
|
69
|
+
const existingSemantic = readRecord(source.metadata.semanticEnrichment);
|
|
70
|
+
return existingSemantic.textHash !== sourceSemanticHash(source, extraction)
|
|
71
|
+
|| readString(existingSemantic.extractor) !== 'llm';
|
|
72
|
+
}
|
|
@@ -49,12 +49,16 @@ export interface KnowledgeSemanticLlm {
|
|
|
49
49
|
readonly prompt: string;
|
|
50
50
|
readonly maxTokens?: number;
|
|
51
51
|
readonly purpose: string;
|
|
52
|
+
readonly signal?: AbortSignal;
|
|
53
|
+
readonly timeoutMs?: number;
|
|
52
54
|
}): Promise<unknown | null>;
|
|
53
55
|
completeText(input: {
|
|
54
56
|
readonly systemPrompt: string;
|
|
55
57
|
readonly prompt: string;
|
|
56
58
|
readonly maxTokens?: number;
|
|
57
59
|
readonly purpose: string;
|
|
60
|
+
readonly signal?: AbortSignal;
|
|
61
|
+
readonly timeoutMs?: number;
|
|
58
62
|
}): Promise<string | null>;
|
|
59
63
|
}
|
|
60
64
|
export interface KnowledgeSemanticEnrichmentResult {
|
|
@@ -77,6 +81,7 @@ export interface KnowledgeSemanticAnswerInput {
|
|
|
77
81
|
readonly includeLinkedObjects?: boolean;
|
|
78
82
|
readonly candidateSourceIds?: readonly string[];
|
|
79
83
|
readonly candidateNodeIds?: readonly string[];
|
|
84
|
+
readonly strictCandidates?: boolean;
|
|
80
85
|
readonly linkedObjects?: readonly KnowledgeNodeRecord[];
|
|
81
86
|
readonly noMatchMessage?: string;
|
|
82
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,YAAY,GACZ,eAAe,GACf,UAAU,GACV,WAAW,GACX,SAAS,GACT,aAAa,GACb,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,MAAM,CAAC;AAEX,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,KAAK,EAAE;QAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -259,7 +259,11 @@ export function createRuntimeServices(options) {
|
|
|
259
259
|
});
|
|
260
260
|
const knowledgeStore = new KnowledgeStore({ configManager });
|
|
261
261
|
const knowledgeSemanticService = new KnowledgeSemanticService(knowledgeStore, {
|
|
262
|
-
llm: createProviderBackedKnowledgeSemanticLlm(providerRegistry
|
|
262
|
+
llm: createProviderBackedKnowledgeSemanticLlm(providerRegistry, {
|
|
263
|
+
timeoutMs: 20_000,
|
|
264
|
+
maxConcurrent: 1,
|
|
265
|
+
}),
|
|
266
|
+
maxLlmSourcesPerReindex: 3,
|
|
263
267
|
});
|
|
264
268
|
const knowledgeService = new KnowledgeService(knowledgeStore, artifactStore, undefined, {
|
|
265
269
|
memoryRegistry,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.27.
|
|
3
|
+
let version = '0.27.6';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|