@pellux/goodvibes-sdk 1.1.0 → 1.3.0
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/contracts/artifacts/operator-contract.json +1416 -88
- package/dist/platform/companion/companion-chat-manager.d.ts +6 -12
- package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-manager.js +8 -2
- package/dist/platform/config/index.d.ts +2 -1
- package/dist/platform/config/index.d.ts.map +1 -1
- package/dist/platform/config/index.js +1 -0
- package/dist/platform/config/manager.d.ts +35 -0
- package/dist/platform/config/manager.d.ts.map +1 -1
- package/dist/platform/config/manager.js +98 -2
- package/dist/platform/config/shared-config-tier.d.ts +51 -0
- package/dist/platform/config/shared-config-tier.d.ts.map +1 -0
- package/dist/platform/config/shared-config-tier.js +127 -0
- package/dist/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-runtime.js +95 -1
- package/dist/platform/control-plane/operator-contract-schemas-knowledge.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-knowledge.js +6 -1
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +7 -0
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-runtime.js +40 -1
- package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/platform/daemon/facade-composition.js +1 -0
- package/dist/platform/daemon/homeassistant-chat.d.ts +4 -1
- package/dist/platform/daemon/homeassistant-chat.d.ts.map +1 -1
- package/dist/platform/daemon/homeassistant-chat.js +1 -1
- package/dist/platform/daemon/http/homeassistant-routes.d.ts.map +1 -1
- package/dist/platform/daemon/http/homeassistant-routes.js +28 -2
- package/dist/platform/integrations/webhooks.d.ts +15 -0
- package/dist/platform/integrations/webhooks.d.ts.map +1 -1
- package/dist/platform/integrations/webhooks.js +18 -0
- package/dist/platform/knowledge/extraction-policy.d.ts +12 -1
- package/dist/platform/knowledge/extraction-policy.d.ts.map +1 -1
- package/dist/platform/knowledge/extraction-policy.js +19 -1
- package/dist/platform/knowledge/graphql-schema.d.ts +1 -1
- package/dist/platform/knowledge/graphql-schema.d.ts.map +1 -1
- package/dist/platform/knowledge/graphql-schema.js +5 -0
- package/dist/platform/knowledge/home-graph/index.d.ts.map +1 -1
- package/dist/platform/knowledge/home-graph/index.js +4 -0
- package/dist/platform/knowledge/home-graph/link.d.ts +2 -2
- package/dist/platform/knowledge/home-graph/link.d.ts.map +1 -1
- package/dist/platform/knowledge/home-graph/link.js +60 -9
- package/dist/platform/knowledge/home-graph/refinement.d.ts +14 -9
- package/dist/platform/knowledge/home-graph/refinement.d.ts.map +1 -1
- package/dist/platform/knowledge/home-graph/refinement.js +18 -3
- package/dist/platform/knowledge/home-graph/reset.js +21 -4
- package/dist/platform/knowledge/home-graph/service.d.ts +10 -11
- package/dist/platform/knowledge/home-graph/service.d.ts.map +1 -1
- package/dist/platform/knowledge/home-graph/triage.d.ts +103 -0
- package/dist/platform/knowledge/home-graph/triage.d.ts.map +1 -0
- package/dist/platform/knowledge/home-graph/triage.js +362 -0
- package/dist/platform/knowledge/home-graph/types.d.ts +15 -0
- package/dist/platform/knowledge/home-graph/types.d.ts.map +1 -1
- package/dist/platform/knowledge/knowledge-api.d.ts +6 -0
- package/dist/platform/knowledge/knowledge-api.d.ts.map +1 -1
- package/dist/platform/knowledge/knowledge-api.js +5 -0
- package/dist/platform/knowledge/knowledge-history-types.d.ts +56 -0
- package/dist/platform/knowledge/knowledge-history-types.d.ts.map +1 -0
- package/dist/platform/knowledge/knowledge-history-types.js +1 -0
- package/dist/platform/knowledge/packet.d.ts.map +1 -1
- package/dist/platform/knowledge/packet.js +27 -3
- package/dist/platform/knowledge/scope-records.js +4 -2
- package/dist/platform/knowledge/semantic/answer-gaps.d.ts +8 -0
- package/dist/platform/knowledge/semantic/answer-gaps.d.ts.map +1 -1
- package/dist/platform/knowledge/semantic/answer-gaps.js +26 -6
- package/dist/platform/knowledge/semantic/enrichment.d.ts.map +1 -1
- package/dist/platform/knowledge/semantic/enrichment.js +15 -13
- package/dist/platform/knowledge/semantic/graph-index.d.ts.map +1 -1
- package/dist/platform/knowledge/semantic/graph-index.js +3 -1
- package/dist/platform/knowledge/semantic/service.d.ts +7 -0
- package/dist/platform/knowledge/semantic/service.d.ts.map +1 -1
- package/dist/platform/knowledge/semantic/service.js +10 -1
- package/dist/platform/knowledge/service-node-admin.d.ts +46 -0
- package/dist/platform/knowledge/service-node-admin.d.ts.map +1 -0
- package/dist/platform/knowledge/service-node-admin.js +72 -0
- package/dist/platform/knowledge/service.d.ts +24 -20
- package/dist/platform/knowledge/service.d.ts.map +1 -1
- package/dist/platform/knowledge/service.js +23 -47
- package/dist/platform/knowledge/store-config.d.ts +34 -0
- package/dist/platform/knowledge/store-config.d.ts.map +1 -1
- package/dist/platform/knowledge/store-config.js +23 -0
- package/dist/platform/knowledge/store-load.d.ts +3 -1
- package/dist/platform/knowledge/store-load.d.ts.map +1 -1
- package/dist/platform/knowledge/store-load.js +3 -1
- package/dist/platform/knowledge/store-node-history.d.ts +49 -0
- package/dist/platform/knowledge/store-node-history.d.ts.map +1 -0
- package/dist/platform/knowledge/store-node-history.js +331 -0
- package/dist/platform/knowledge/store-record-delete.d.ts +25 -0
- package/dist/platform/knowledge/store-record-delete.d.ts.map +1 -0
- package/dist/platform/knowledge/store-record-delete.js +84 -0
- package/dist/platform/knowledge/store-schema.d.ts +3 -1
- package/dist/platform/knowledge/store-schema.d.ts.map +1 -1
- package/dist/platform/knowledge/store-schema.js +66 -0
- package/dist/platform/knowledge/store.d.ts +19 -1
- package/dist/platform/knowledge/store.d.ts.map +1 -1
- package/dist/platform/knowledge/store.js +69 -108
- package/dist/platform/knowledge/types.d.ts +18 -0
- package/dist/platform/knowledge/types.d.ts.map +1 -1
- package/dist/platform/providers/registry.d.ts +18 -0
- package/dist/platform/providers/registry.d.ts.map +1 -1
- package/dist/platform/providers/registry.js +49 -3
- package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
- package/dist/platform/providers/runtime-snapshot.js +14 -2
- package/dist/platform/runtime/memory-spine/client.d.ts +137 -12
- package/dist/platform/runtime/memory-spine/client.d.ts.map +1 -1
- package/dist/platform/runtime/memory-spine/client.js +119 -1
- package/dist/platform/runtime/memory-spine/index.d.ts +8 -1
- package/dist/platform/runtime/memory-spine/index.d.ts.map +1 -1
- package/dist/platform/runtime/memory-spine/index.js +7 -0
- package/dist/platform/runtime/memory-spine/recall-snapshot.d.ts +74 -0
- package/dist/platform/runtime/memory-spine/recall-snapshot.d.ts.map +1 -0
- package/dist/platform/runtime/memory-spine/recall-snapshot.js +87 -0
- package/dist/platform/runtime/memory-spine/wire-verb-availability.d.ts +59 -0
- package/dist/platform/runtime/memory-spine/wire-verb-availability.d.ts.map +1 -0
- package/dist/platform/runtime/memory-spine/wire-verb-availability.js +114 -0
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +3 -12
- package/dist/platform/state/memory-recall-contract.d.ts +7 -0
- package/dist/platform/state/memory-recall-contract.d.ts.map +1 -1
- package/dist/platform/state/memory-recall-contract.js +2 -0
- package/dist/platform/utils/notify.d.ts +25 -1
- package/dist/platform/utils/notify.d.ts.map +1 -1
- package/dist/platform/utils/notify.js +29 -1
- package/dist/platform/version.js +1 -1
- package/dist/platform/voice/index.d.ts +2 -0
- package/dist/platform/voice/index.d.ts.map +1 -1
- package/dist/platform/voice/index.js +3 -0
- package/dist/platform/voice/spoken-turn/audio-sink.d.ts +111 -0
- package/dist/platform/voice/spoken-turn/audio-sink.d.ts.map +1 -0
- package/dist/platform/voice/spoken-turn/audio-sink.js +1 -0
- package/dist/platform/voice/spoken-turn/controller.d.ts +117 -0
- package/dist/platform/voice/spoken-turn/controller.d.ts.map +1 -0
- package/dist/platform/voice/spoken-turn/controller.js +448 -0
- package/dist/platform/voice/spoken-turn/index.d.ts +16 -0
- package/dist/platform/voice/spoken-turn/index.d.ts.map +1 -0
- package/dist/platform/voice/spoken-turn/index.js +12 -0
- package/dist/platform/voice/spoken-turn/text-chunker.d.ts +33 -0
- package/dist/platform/voice/spoken-turn/text-chunker.d.ts.map +1 -0
- package/dist/platform/voice/spoken-turn/text-chunker.js +97 -0
- package/package.json +9 -9
|
@@ -6,7 +6,7 @@ export function searchKnowledge(context, query, limit = 10, scope = {}) {
|
|
|
6
6
|
if (taskTokens.length === 0)
|
|
7
7
|
return [];
|
|
8
8
|
const scopeLookup = knowledgeScopeLookup(context);
|
|
9
|
-
const sourceResults = context.store.listSources(Number.MAX_SAFE_INTEGER).filter((source) => knowledgeSourceMatchesScope(source, scope)).map((source) => {
|
|
9
|
+
const sourceResults = context.store.listSources(Number.MAX_SAFE_INTEGER).filter((source) => source.status !== 'stale' && knowledgeSourceMatchesScope(source, scope)).map((source) => {
|
|
10
10
|
const extraction = context.store.getExtractionBySourceId(source.id);
|
|
11
11
|
const haystack = [
|
|
12
12
|
source.title ?? '',
|
|
@@ -29,7 +29,10 @@ export function searchKnowledge(context, query, limit = 10, scope = {}) {
|
|
|
29
29
|
source,
|
|
30
30
|
};
|
|
31
31
|
});
|
|
32
|
-
|
|
32
|
+
// Serve only active nodes: stale (forgotten/superseded) and draft (pending
|
|
33
|
+
// review) nodes are not current knowledge, so search must not present them as
|
|
34
|
+
// hits — the same honesty bar `ask`/semantic already apply. (Defects 2 & 4.)
|
|
35
|
+
const nodeResults = context.store.listNodes(Number.MAX_SAFE_INTEGER).filter((node) => node.status === 'active' && knowledgeNodeMatchesScope(node, scope, scopeLookup)).map((node) => {
|
|
33
36
|
const haystack = [
|
|
34
37
|
node.title,
|
|
35
38
|
node.summary ?? '',
|
|
@@ -166,18 +169,34 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
|
|
|
166
169
|
};
|
|
167
170
|
candidates.push({ score: item.score, item });
|
|
168
171
|
}
|
|
172
|
+
const totalCandidates = candidates.length;
|
|
169
173
|
const items = [];
|
|
170
174
|
let estimatedTokens = 0;
|
|
175
|
+
// Count candidates skipped SPECIFICALLY because adding them would exceed the
|
|
176
|
+
// token budget, separately from those never reached because the item cap
|
|
177
|
+
// (limit) bound first. Conflating the two lets a generous-budget rank-cap drop
|
|
178
|
+
// read as "omitted to fit the budget" — see the honesty breakdown below.
|
|
179
|
+
let droppedForBudget = 0;
|
|
171
180
|
for (const candidate of candidates
|
|
172
181
|
.sort((a, b) => b.score - a.score || a.item.id.localeCompare(b.item.id))
|
|
173
182
|
.slice(0, Math.max(1, limit * 4))) {
|
|
174
183
|
if (items.length >= Math.max(1, limit))
|
|
175
184
|
break;
|
|
176
|
-
if (estimatedTokens + candidate.item.estimatedTokens > budgetLimit && items.length > 0)
|
|
185
|
+
if (estimatedTokens + candidate.item.estimatedTokens > budgetLimit && items.length > 0) {
|
|
186
|
+
droppedForBudget += 1;
|
|
177
187
|
continue;
|
|
188
|
+
}
|
|
178
189
|
items.push(candidate.item);
|
|
179
190
|
estimatedTokens += candidate.item.estimatedTokens;
|
|
180
191
|
}
|
|
192
|
+
// Honest truncation disclosure — a partial packet must never read as complete.
|
|
193
|
+
// `droppedCount` is the honest TOTAL dropped; `droppedForBudget` is the subset
|
|
194
|
+
// the token budget actually forced out (so a surface can say "N omitted to fit
|
|
195
|
+
// the budget" truthfully), and `budgetExhausted` states whether the budget was
|
|
196
|
+
// the binding constraint at all — the rest of `droppedCount` is the rank/item
|
|
197
|
+
// cap, not the budget.
|
|
198
|
+
const droppedCount = Math.max(0, totalCandidates - items.length);
|
|
199
|
+
const budgetExhausted = droppedForBudget > 0;
|
|
181
200
|
const packet = {
|
|
182
201
|
task,
|
|
183
202
|
writeScope: [...writeScope],
|
|
@@ -186,6 +205,11 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
|
|
|
186
205
|
strategy: 'graph-ranked extraction-aware packet',
|
|
187
206
|
budgetLimit,
|
|
188
207
|
estimatedTokens,
|
|
208
|
+
truncated: droppedCount > 0,
|
|
209
|
+
totalCandidates,
|
|
210
|
+
droppedCount,
|
|
211
|
+
droppedForBudget,
|
|
212
|
+
budgetExhausted,
|
|
189
213
|
items,
|
|
190
214
|
};
|
|
191
215
|
for (const item of items) {
|
|
@@ -338,11 +338,13 @@ function uniqueStrings(values) {
|
|
|
338
338
|
return [...new Set(values.filter((entry) => Boolean(entry && entry.trim().length > 0)))];
|
|
339
339
|
}
|
|
340
340
|
function readOnlyMetadataKeys(metadata) {
|
|
341
|
-
|
|
341
|
+
// 'reviewProvenance' is system bookkeeping stamped by the node review gate, not
|
|
342
|
+
// content — excluded so it never changes a node's content-shape classification.
|
|
343
|
+
return Object.keys(metadata).filter((key) => !['knowledgeSpaceId', 'namespace', 'reviewProvenance'].includes(key));
|
|
342
344
|
}
|
|
343
345
|
function metadataSearchText(metadata) {
|
|
344
346
|
return Object.entries(metadata)
|
|
345
|
-
.filter(([key]) => !['content', 'raw', 'html'].includes(key))
|
|
347
|
+
.filter(([key]) => !['content', 'raw', 'html', 'reviewProvenance'].includes(key))
|
|
346
348
|
.flatMap(([, value]) => flattenMetadataText(value))
|
|
347
349
|
.join(' ');
|
|
348
350
|
}
|
|
@@ -11,5 +11,13 @@ export declare function persistAnswerGaps(store: KnowledgeStore, spaceId: string
|
|
|
11
11
|
readonly sources?: readonly KnowledgeSourceRecord[] | undefined;
|
|
12
12
|
readonly linkedObjects?: readonly KnowledgeNodeRecord[] | undefined;
|
|
13
13
|
}): Promise<readonly KnowledgeNodeRecord[]>;
|
|
14
|
+
/**
|
|
15
|
+
* A gap counts as repaired only when there is REAL evidence: the repair pipeline
|
|
16
|
+
* marked it `repaired` AND it carries a concrete signal — one or more promoted
|
|
17
|
+
* facts, or one or more accepted new sources. A node merely going `stale`
|
|
18
|
+
* (superseded) or being marked `not_applicable` (deemed non-repairable) is NOT
|
|
19
|
+
* repair evidence; those gaps stay open honestly instead of being auto-resolved
|
|
20
|
+
* with an invented reason. (Invariant 4 / honesty.)
|
|
21
|
+
*/
|
|
14
22
|
export declare function isRepairedAnswerGap(node: KnowledgeNodeRecord): boolean;
|
|
15
23
|
//# sourceMappingURL=answer-gaps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-gaps.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-gaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAK9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAgB5D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,OAAO,CAMT;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IACP,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAAC;CAChE,GACL,OAAO,CAAC,mBAAmB,CAAC,CA6E9B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,yBAAyB,EAAE,EAC1C,OAAO,GAAE;IACP,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAAC;CAChE,GACL,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAUzC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAKtE"}
|
|
1
|
+
{"version":3,"file":"answer-gaps.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-gaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAK9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAgB5D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,OAAO,CAMT;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IACP,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAAC;CAChE,GACL,OAAO,CAAC,mBAAmB,CAAC,CA6E9B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,yBAAyB,EAAE,EAC1C,OAAO,GAAE;IACP,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAAC;CAChE,GACL,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAUzC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAKtE"}
|
|
@@ -103,13 +103,31 @@ export async function persistAnswerGaps(store, spaceId, query, gaps, context = {
|
|
|
103
103
|
}
|
|
104
104
|
return nodes;
|
|
105
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* A gap counts as repaired only when there is REAL evidence: the repair pipeline
|
|
108
|
+
* marked it `repaired` AND it carries a concrete signal — one or more promoted
|
|
109
|
+
* facts, or one or more accepted new sources. A node merely going `stale`
|
|
110
|
+
* (superseded) or being marked `not_applicable` (deemed non-repairable) is NOT
|
|
111
|
+
* repair evidence; those gaps stay open honestly instead of being auto-resolved
|
|
112
|
+
* with an invented reason. (Invariant 4 / honesty.)
|
|
113
|
+
*/
|
|
106
114
|
export function isRepairedAnswerGap(node) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
if (readString(node.metadata.repairStatus) !== 'repaired')
|
|
116
|
+
return false;
|
|
117
|
+
const promotedFactCount = typeof node.metadata.promotedFactCount === 'number' ? node.metadata.promotedFactCount : 0;
|
|
118
|
+
const acceptedSourceIds = readStringArray(node.metadata.acceptedSourceIds);
|
|
119
|
+
return promotedFactCount > 0 || acceptedSourceIds.length > 0;
|
|
111
120
|
}
|
|
112
121
|
async function resolveAnswerGapIssues(store, spaceId, nodeId) {
|
|
122
|
+
const node = store.getNode(nodeId);
|
|
123
|
+
const promotedFactCount = typeof node?.metadata.promotedFactCount === 'number' ? node.metadata.promotedFactCount : 0;
|
|
124
|
+
const acceptedSourceIds = readStringArray(node?.metadata.acceptedSourceIds);
|
|
125
|
+
const evidence = [];
|
|
126
|
+
if (promotedFactCount > 0)
|
|
127
|
+
evidence.push(`${promotedFactCount} promoted fact${promotedFactCount === 1 ? '' : 's'}`);
|
|
128
|
+
if (acceptedSourceIds.length > 0)
|
|
129
|
+
evidence.push(`${acceptedSourceIds.length} accepted source${acceptedSourceIds.length === 1 ? '' : 's'}`);
|
|
130
|
+
const reason = `Answer gap resolved from repair evidence: ${evidence.join(', ')}.`;
|
|
113
131
|
for (const issue of store.listIssues(Number.MAX_SAFE_INTEGER).filter((entry) => entry.nodeId === nodeId && entry.status === 'open')) {
|
|
114
132
|
await store.upsertIssue({
|
|
115
133
|
id: issue.id,
|
|
@@ -122,9 +140,11 @@ async function resolveAnswerGapIssues(store, spaceId, nodeId) {
|
|
|
122
140
|
metadata: semanticMetadata(spaceId, {
|
|
123
141
|
...issue.metadata,
|
|
124
142
|
resolution: {
|
|
125
|
-
reason
|
|
126
|
-
resolvedBy: 'knowledge-answer',
|
|
143
|
+
reason,
|
|
144
|
+
resolvedBy: 'knowledge-answer-repair',
|
|
127
145
|
resolvedAt: Date.now(),
|
|
146
|
+
...(promotedFactCount > 0 ? { promotedFactCount } : {}),
|
|
147
|
+
...(acceptedSourceIds.length > 0 ? { acceptedSourceIds } : {}),
|
|
128
148
|
},
|
|
129
149
|
}),
|
|
130
150
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichment.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"enrichment.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,KAAK,EAGV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAKV,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAuBpB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;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,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IACzD,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,GAAG,SAAS,CAAC;IACpD,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,CAqCtC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
// Shared clamp: normalizes a 0-1 probability to 0-100 and a non-finite value to the
|
|
2
|
+
// auto-accept default, so an LLM ignoring the prompt's 0-100 contract (below) does
|
|
3
|
+
// not silently draft a high-confidence node. One definition, not a divergent copy.
|
|
4
|
+
import { clampConfidence } from '../store-node-history.js';
|
|
1
5
|
import { getKnowledgeSpaceId } from '../spaces.js';
|
|
2
6
|
import { knowledgeSourceMatchesScope } from '../scope-records.js';
|
|
3
7
|
import { isActiveKnowledgeEdge } from '../projection-utils.js';
|
|
4
|
-
import { MAX_SEMANTIC_SOURCE_CHARS,
|
|
8
|
+
import { MAX_SEMANTIC_SOURCE_CHARS, clampText, normalizeWhitespace, readRecord, readString, readStringArray, semanticFactId, semanticHash, semanticMetadata, semanticSlug, sourceKnowledgeSpace, sourceSemanticHash, sourceSemanticText, splitSentences, uniqueStrings, } from './utils.js';
|
|
5
9
|
import { canonicalRepairSubjectNodes } from './repair-subjects.js';
|
|
6
10
|
import { hasConcreteFeatureSignal, isLowValueFeatureOrSpecText } from './fact-quality.js';
|
|
7
11
|
import { deriveRepairProfileFacts } from './repair-profile.js';
|
|
@@ -10,7 +14,7 @@ export async function enrichKnowledgeSource(context, source, options = {}) {
|
|
|
10
14
|
const extraction = context.store.getExtractionBySourceId(source.id);
|
|
11
15
|
const text = sourceSemanticText(source, extraction);
|
|
12
16
|
const textHash = sourceSemanticHash(source, extraction);
|
|
13
|
-
const existingSemantic = readRecord(source.metadata
|
|
17
|
+
const existingSemantic = readRecord(context.store.getSemanticEnrichmentState(source.id)?.metadata);
|
|
14
18
|
const currentExtractor = readString(existingSemantic.extractor);
|
|
15
19
|
const shouldUpgradeDeterministic = Boolean(context.llm && existingSemantic.textHash === textHash && currentExtractor !== 'llm');
|
|
16
20
|
if (!knowledgeSourceMatchesScope(source, { includeAllSpaces: true })) {
|
|
@@ -54,7 +58,7 @@ async function extractSemanticsWithLlm(llm, source, extraction, text) {
|
|
|
54
58
|
'You extract a durable semantic knowledge graph from source material.',
|
|
55
59
|
'Return only JSON. Do not invent facts. Every fact must be grounded in the supplied source text.',
|
|
56
60
|
'Capture capabilities, features, specifications, procedures, warnings, maintenance items, compatibility, configuration, and troubleshooting facts when present.',
|
|
57
|
-
'Prefer precise facts over broad summaries. Preserve numbers, model names, ports, version names, constraints, and useful procedures.',
|
|
61
|
+
'Prefer precise facts over broad summaries. Preserve numbers, model names, ports, version names, constraints, and useful procedures. Every `confidence` field is an INTEGER on a 0-100 scale (0 = none, 100 = certain) — never a 0-1 probability.',
|
|
58
62
|
].join(' '),
|
|
59
63
|
prompt: JSON.stringify({
|
|
60
64
|
source: {
|
|
@@ -582,13 +586,14 @@ async function persistWikiPage(store, source, semantic, spaceId, textHash) {
|
|
|
582
586
|
return page;
|
|
583
587
|
}
|
|
584
588
|
async function markSourceSemanticState(store, source, textHash, details) {
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
589
|
+
// Derived bookkeeping in its own record, not the append-only source row. (Invariant 1.)
|
|
590
|
+
const enrichedAt = Date.now();
|
|
591
|
+
await store.upsertSemanticEnrichmentState({
|
|
592
|
+
sourceId: source.id,
|
|
593
|
+
textHash,
|
|
594
|
+
enrichedAt,
|
|
595
|
+
metadata: { textHash, enrichedAt, ...details },
|
|
596
|
+
});
|
|
592
597
|
}
|
|
593
598
|
async function linkSourceToNode(store, sourceId, nodeId, relation, spaceId, extractor) {
|
|
594
599
|
await store.upsertEdge({
|
|
@@ -785,9 +790,6 @@ function isRelation(value) {
|
|
|
785
790
|
function isGap(value) {
|
|
786
791
|
return Boolean(value);
|
|
787
792
|
}
|
|
788
|
-
function clampConfidence(value) {
|
|
789
|
-
return Math.max(0, Math.min(100, Math.round(value)));
|
|
790
|
-
}
|
|
791
793
|
function titleFromSentence(sentence) {
|
|
792
794
|
const withoutLead = sentence.replace(/^(the|this|these|it)\s+/i, '');
|
|
793
795
|
return clampText(withoutLead, 96).replace(/[.:;,\s]+$/g, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-index.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/graph-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAClE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,GACd,2BAA2B,
|
|
1
|
+
{"version":3,"file":"graph-index.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/graph-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAClE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,GACd,2BAA2B,CAyB7B"}
|
|
@@ -4,7 +4,9 @@ export function buildKnowledgeSemanticGraphIndex(store, spaceId) {
|
|
|
4
4
|
const scope = { knowledgeSpaceId: spaceId };
|
|
5
5
|
const rawSources = store.listSourcesInSpace(spaceId).filter((source) => source.status !== 'stale');
|
|
6
6
|
const sourceMap = new Map(rawSources.map((source) => [source.id, source]));
|
|
7
|
-
|
|
7
|
+
// Only active nodes are answerable: stale (superseded/forgotten) and draft
|
|
8
|
+
// (pending review) content must not surface in semantic answers. (Defects 2 & 4.)
|
|
9
|
+
const rawNodes = store.listNodesInSpace(spaceId).filter((node) => node.status === 'active');
|
|
8
10
|
const edgeCandidates = store.listEdges().filter(isActiveKnowledgeEdge);
|
|
9
11
|
const rawNodeMap = new Map(rawNodes.map((node) => [node.id, node]));
|
|
10
12
|
const lookup = { sources: sourceMap, nodes: rawNodeMap, edges: edgeCandidates };
|
|
@@ -17,6 +17,13 @@ export declare class KnowledgeSemanticService {
|
|
|
17
17
|
private readonly activeGapRepairs;
|
|
18
18
|
private readonly activeSelfImprovementRuns;
|
|
19
19
|
constructor(store: KnowledgeStore, options?: KnowledgeSemanticServiceOptions);
|
|
20
|
+
/**
|
|
21
|
+
* The configured semantic LLM, or null when unconfigured. Home Graph issue
|
|
22
|
+
* triage prompts through this the same way `enrichment.ts`/`answer-llm.ts` do
|
|
23
|
+
* inside this service; exposing it lets the Home Graph refinement loop share the
|
|
24
|
+
* one model route without re-plumbing a provider registry.
|
|
25
|
+
*/
|
|
26
|
+
get llm(): KnowledgeSemanticLlm | null;
|
|
20
27
|
setGapRepairer(gapRepairer: KnowledgeSemanticGapRepairer | null | undefined): void;
|
|
21
28
|
addObjectProfiles(profiles: readonly KnowledgeObjectProfilePolicy[] | null | undefined): void;
|
|
22
29
|
enrichSource(sourceId: string, input?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,15 @@ export class KnowledgeSemanticService {
|
|
|
16
16
|
this.store = store;
|
|
17
17
|
this.options = options;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* The configured semantic LLM, or null when unconfigured. Home Graph issue
|
|
21
|
+
* triage prompts through this the same way `enrichment.ts`/`answer-llm.ts` do
|
|
22
|
+
* inside this service; exposing it lets the Home Graph refinement loop share the
|
|
23
|
+
* one model route without re-plumbing a provider registry.
|
|
24
|
+
*/
|
|
25
|
+
get llm() {
|
|
26
|
+
return this.options.llm ?? null;
|
|
27
|
+
}
|
|
19
28
|
setGapRepairer(gapRepairer) {
|
|
20
29
|
this.options = {
|
|
21
30
|
...this.options,
|
|
@@ -442,7 +451,7 @@ function sourceCanUseLlmUpgrade(store, source) {
|
|
|
442
451
|
const text = sourceSemanticText(source, extraction);
|
|
443
452
|
if (text.length < 40)
|
|
444
453
|
return false;
|
|
445
|
-
const existingSemantic = readRecord(source.metadata
|
|
454
|
+
const existingSemantic = readRecord(store.getSemanticEnrichmentState(source.id)?.metadata);
|
|
446
455
|
return existingSemantic.textHash !== sourceSemanticHash(source, extraction)
|
|
447
456
|
|| readString(existingSemantic.extractor) !== 'llm';
|
|
448
457
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { KnowledgeStore } from './store.js';
|
|
2
|
+
import type { KnowledgeIssueRecord, KnowledgeNodeRecord } from './types.js';
|
|
3
|
+
import { type KnowledgeScopeLookup } from './scope-records.js';
|
|
4
|
+
export interface KnowledgeNodeQueryInput {
|
|
5
|
+
readonly limit?: number | undefined;
|
|
6
|
+
readonly offset?: number | undefined;
|
|
7
|
+
readonly knowledgeSpaceId?: string | undefined;
|
|
8
|
+
readonly includeAllSpaces?: boolean | undefined;
|
|
9
|
+
readonly kind?: string | undefined;
|
|
10
|
+
readonly status?: string | undefined;
|
|
11
|
+
readonly includeStale?: boolean | undefined;
|
|
12
|
+
readonly query?: string | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface KnowledgeIssueQueryInput {
|
|
15
|
+
readonly limit?: number | undefined;
|
|
16
|
+
readonly offset?: number | undefined;
|
|
17
|
+
readonly knowledgeSpaceId?: string | undefined;
|
|
18
|
+
readonly includeAllSpaces?: boolean | undefined;
|
|
19
|
+
readonly severity?: string | undefined;
|
|
20
|
+
readonly status?: string | undefined;
|
|
21
|
+
readonly code?: string | undefined;
|
|
22
|
+
readonly query?: string | undefined;
|
|
23
|
+
}
|
|
24
|
+
export declare function queryKnowledgeNodes(store: KnowledgeStore, scopeLookup: KnowledgeScopeLookup, input: KnowledgeNodeQueryInput): {
|
|
25
|
+
total: number;
|
|
26
|
+
items: KnowledgeNodeRecord[];
|
|
27
|
+
};
|
|
28
|
+
export declare function queryKnowledgeIssues(store: KnowledgeStore, scopeLookup: KnowledgeScopeLookup, input: KnowledgeIssueQueryInput): {
|
|
29
|
+
total: number;
|
|
30
|
+
items: KnowledgeIssueRecord[];
|
|
31
|
+
};
|
|
32
|
+
export interface KnowledgeNodeReviewDecisionInput {
|
|
33
|
+
readonly id: string;
|
|
34
|
+
readonly decision: 'accept' | 'reject';
|
|
35
|
+
readonly reviewer?: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The decide step that governs node activation: accept a pending 'draft' node
|
|
39
|
+
* (activates it with honest 'reviewed' provenance) or reject it (marks it
|
|
40
|
+
* 'stale'). (Defect 2.)
|
|
41
|
+
*/
|
|
42
|
+
export declare function reviewKnowledgeNodeRecord(store: KnowledgeStore, input: KnowledgeNodeReviewDecisionInput): Promise<{
|
|
43
|
+
ok: boolean;
|
|
44
|
+
node?: KnowledgeNodeRecord | undefined;
|
|
45
|
+
}>;
|
|
46
|
+
//# sourceMappingURL=service-node-admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-node-admin.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/service-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,uBAAuB,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAmBjD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,wBAAwB,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAclD;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,CAAC,CAkBlE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { tokenize } from './shared.js';
|
|
2
|
+
import { knowledgeIssueMatchesScope, knowledgeNodeMatchesScope, } from './scope-records.js';
|
|
3
|
+
export function queryKnowledgeNodes(store, scopeLookup, input) {
|
|
4
|
+
const limit = Math.max(1, input.limit ?? 100);
|
|
5
|
+
const offset = Math.max(0, input.offset ?? 0);
|
|
6
|
+
const queryTokens = tokenize(input.query ?? '');
|
|
7
|
+
// Honest default: forgotten/superseded ('stale') nodes are not served unless a
|
|
8
|
+
// caller explicitly asks (status filter or includeStale) — closes the GraphQL
|
|
9
|
+
// serve-surface drift where `forget` hid a node from search but GraphQL still
|
|
10
|
+
// returned it. (Defect 6.)
|
|
11
|
+
const includeStale = input.includeStale === true || input.status !== undefined;
|
|
12
|
+
const items = store.listNodes(Number.MAX_SAFE_INTEGER).filter((node) => {
|
|
13
|
+
if (!knowledgeNodeMatchesScope(node, input, scopeLookup))
|
|
14
|
+
return false;
|
|
15
|
+
if (input.kind && node.kind !== input.kind)
|
|
16
|
+
return false;
|
|
17
|
+
if (!includeStale && node.status === 'stale')
|
|
18
|
+
return false;
|
|
19
|
+
if (input.status && node.status !== input.status)
|
|
20
|
+
return false;
|
|
21
|
+
if (queryTokens.length === 0)
|
|
22
|
+
return true;
|
|
23
|
+
const haystack = [node.title, node.summary ?? '', node.aliases.join(' '), JSON.stringify(node.metadata)].join(' ').toLowerCase();
|
|
24
|
+
return queryTokens.every((token) => haystack.includes(token));
|
|
25
|
+
});
|
|
26
|
+
return { total: items.length, items: items.slice(offset, offset + limit) };
|
|
27
|
+
}
|
|
28
|
+
export function queryKnowledgeIssues(store, scopeLookup, input) {
|
|
29
|
+
const limit = Math.max(1, input.limit ?? 100);
|
|
30
|
+
const offset = Math.max(0, input.offset ?? 0);
|
|
31
|
+
const queryTokens = tokenize(input.query ?? '');
|
|
32
|
+
const items = store.listIssues(Number.MAX_SAFE_INTEGER).filter((issue) => {
|
|
33
|
+
if (!knowledgeIssueMatchesScope(issue, input, scopeLookup))
|
|
34
|
+
return false;
|
|
35
|
+
if (input.severity && issue.severity !== input.severity)
|
|
36
|
+
return false;
|
|
37
|
+
if (input.status && issue.status !== input.status)
|
|
38
|
+
return false;
|
|
39
|
+
if (input.code && issue.code !== input.code)
|
|
40
|
+
return false;
|
|
41
|
+
if (queryTokens.length === 0)
|
|
42
|
+
return true;
|
|
43
|
+
const haystack = [issue.message, issue.code, JSON.stringify(issue.metadata)].join(' ').toLowerCase();
|
|
44
|
+
return queryTokens.every((token) => haystack.includes(token));
|
|
45
|
+
});
|
|
46
|
+
return { total: items.length, items: items.slice(offset, offset + limit) };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The decide step that governs node activation: accept a pending 'draft' node
|
|
50
|
+
* (activates it with honest 'reviewed' provenance) or reject it (marks it
|
|
51
|
+
* 'stale'). (Defect 2.)
|
|
52
|
+
*/
|
|
53
|
+
export async function reviewKnowledgeNodeRecord(store, input) {
|
|
54
|
+
await store.init();
|
|
55
|
+
const node = store.getNode(input.id);
|
|
56
|
+
if (!node)
|
|
57
|
+
return { ok: false };
|
|
58
|
+
const reviewer = input.reviewer ?? 'knowledge-review';
|
|
59
|
+
const updated = await store.upsertNode({
|
|
60
|
+
id: node.id,
|
|
61
|
+
kind: node.kind,
|
|
62
|
+
slug: node.slug,
|
|
63
|
+
title: node.title,
|
|
64
|
+
...(node.summary ? { summary: node.summary } : {}),
|
|
65
|
+
aliases: [...node.aliases],
|
|
66
|
+
status: input.decision === 'accept' ? 'active' : 'stale',
|
|
67
|
+
confidence: node.confidence,
|
|
68
|
+
...(node.sourceId ? { sourceId: node.sourceId } : {}),
|
|
69
|
+
metadata: { ...node.metadata, review: { action: input.decision, reviewer, reviewedAt: Date.now() } },
|
|
70
|
+
});
|
|
71
|
+
return { ok: true, node: updated };
|
|
72
|
+
}
|
|
@@ -6,8 +6,9 @@ import { KnowledgeConnectorRegistry } from './connectors.js';
|
|
|
6
6
|
import { type KnowledgeMapRenderOptions } from './map.js';
|
|
7
7
|
import { KnowledgeSemanticService } from './semantic/index.js';
|
|
8
8
|
import { KnowledgeStore } from './store.js';
|
|
9
|
+
import { type KnowledgeIssueQueryInput, type KnowledgeNodeQueryInput, type KnowledgeNodeReviewDecisionInput } from './service-node-admin.js';
|
|
9
10
|
import type { BrowserKnowledgeIngestOptions, BrowserKnowledgeProfile } from './browser-history/index.js';
|
|
10
|
-
import type { KnowledgeBatchIngestResult, KnowledgeBookmarkSeed, KnowledgeConnector, KnowledgeConnectorDoctorReport, KnowledgeConsolidationCandidateRecord, KnowledgeConsolidationReportRecord, KnowledgeEdgeRecord, KnowledgeExtractionRecord, KnowledgeIssueRecord, KnowledgeJobMode, KnowledgeJobRecord, KnowledgeJobRunRecord, KnowledgeMaterializedProjection, KnowledgeItemView, KnowledgeMapResult, KnowledgeNodeRecord, KnowledgePacket, KnowledgePacketDetail, KnowledgeProjectionBundle, KnowledgeProjectionTarget, KnowledgeProjectionTargetKind, KnowledgeRefinementTaskRecord, KnowledgeRefinementTaskState, KnowledgeScheduleRecord, KnowledgeSearchResult, KnowledgeSourceRecord, KnowledgeSourceType, KnowledgeStatus, KnowledgeUsageRecord } from './types.js';
|
|
11
|
+
import type { KnowledgeBatchIngestResult, KnowledgeBookmarkSeed, KnowledgeConnector, KnowledgeConnectorDoctorReport, KnowledgeConsolidationCandidateRecord, KnowledgeConsolidationReportRecord, KnowledgeEdgeRecord, KnowledgeExtractionRecord, KnowledgeIssueRecord, KnowledgeJobMode, KnowledgeJobRecord, KnowledgeJobRunRecord, KnowledgeMaterializedProjection, KnowledgeItemView, KnowledgeMapResult, KnowledgeNodeRecord, KnowledgeNodeRevisionRecord, KnowledgePacket, KnowledgePacketDetail, KnowledgeProjectionBundle, KnowledgeProjectionTarget, KnowledgeProjectionTargetKind, KnowledgeRefinementTaskRecord, KnowledgeRefinementTaskState, KnowledgeScheduleRecord, KnowledgeSearchResult, KnowledgeSourceRecord, KnowledgeSourceType, KnowledgeStatus, KnowledgeUsageRecord } from './types.js';
|
|
11
12
|
import { type KnowledgeIssueReviewInput, type KnowledgeIssueReviewResult } from './review.js';
|
|
12
13
|
import { type KnowledgeSpaceScopeInput } from './spaces.js';
|
|
13
14
|
export interface KnowledgeServiceConfig {
|
|
@@ -67,29 +68,32 @@ export declare class KnowledgeService {
|
|
|
67
68
|
items: KnowledgeSourceRecord[];
|
|
68
69
|
};
|
|
69
70
|
listNodes(limit?: number): KnowledgeNodeRecord[];
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
/** The append-only revision history of a node, oldest first. (Defect 1.) */
|
|
72
|
+
listNodeRevisions(nodeId: string): KnowledgeNodeRevisionRecord[];
|
|
73
|
+
/** Honest hard delete of a single node — removes the row and its history. (Defect 6.) */
|
|
74
|
+
deleteNode(id: string): Promise<{
|
|
75
|
+
deleted: boolean;
|
|
76
|
+
}>;
|
|
77
|
+
/** Honest hard delete of a single source and its derived records. (Defect 6.) */
|
|
78
|
+
deleteSource(id: string): Promise<{
|
|
79
|
+
deleted: boolean;
|
|
80
|
+
}>;
|
|
81
|
+
/** Merge one node into another, re-pointing cross-reference edges. (Defect 5.) */
|
|
82
|
+
mergeNodes(loserId: string, winnerId: string): Promise<{
|
|
83
|
+
merged: boolean;
|
|
84
|
+
repointedEdges: number;
|
|
85
|
+
}>;
|
|
86
|
+
/** Accept/reject a pending node — the decide step that governs activation. (Defect 2.) */
|
|
87
|
+
reviewNode(input: KnowledgeNodeReviewDecisionInput): Promise<{
|
|
88
|
+
ok: boolean;
|
|
89
|
+
node?: KnowledgeNodeRecord | undefined;
|
|
90
|
+
}>;
|
|
91
|
+
queryNodes(input?: KnowledgeNodeQueryInput): {
|
|
79
92
|
total: number;
|
|
80
93
|
items: KnowledgeNodeRecord[];
|
|
81
94
|
};
|
|
82
95
|
listIssues(limit?: number): KnowledgeIssueRecord[];
|
|
83
|
-
queryIssues(input?: {
|
|
84
|
-
readonly limit?: number | undefined;
|
|
85
|
-
readonly offset?: number | undefined;
|
|
86
|
-
readonly knowledgeSpaceId?: string | undefined;
|
|
87
|
-
readonly includeAllSpaces?: boolean | undefined;
|
|
88
|
-
readonly severity?: string | undefined;
|
|
89
|
-
readonly status?: string | undefined;
|
|
90
|
-
readonly code?: string | undefined;
|
|
91
|
-
readonly query?: string | undefined;
|
|
92
|
-
}): {
|
|
96
|
+
queryIssues(input?: KnowledgeIssueQueryInput): {
|
|
93
97
|
total: number;
|
|
94
98
|
items: KnowledgeIssueRecord[];
|
|
95
99
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/service.ts"],"names":[],"mappings":"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"}
|