@pellux/goodvibes-sdk 0.33.11 → 0.33.13
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 +1 -1
- package/dist/platform/knowledge/ingest-compile.d.ts.map +1 -1
- package/dist/platform/knowledge/ingest-compile.js +24 -12
- package/dist/platform/knowledge/map-filters.d.ts.map +1 -1
- package/dist/platform/knowledge/map-filters.js +7 -2
- package/dist/platform/knowledge/packet.d.ts.map +1 -1
- package/dist/platform/knowledge/packet.js +13 -3
- package/dist/platform/knowledge/projections.d.ts +2 -0
- package/dist/platform/knowledge/projections.d.ts.map +1 -1
- package/dist/platform/knowledge/projections.js +25 -12
- package/dist/platform/knowledge/scope-records.d.ts +12 -0
- package/dist/platform/knowledge/scope-records.d.ts.map +1 -0
- package/dist/platform/knowledge/scope-records.js +94 -0
- package/dist/platform/knowledge/semantic/answer-evidence.d.ts.map +1 -1
- package/dist/platform/knowledge/semantic/answer-evidence.js +6 -3
- package/dist/platform/knowledge/semantic/answer-space.d.ts.map +1 -1
- package/dist/platform/knowledge/semantic/answer-space.js +15 -4
- package/dist/platform/knowledge/service.d.ts +3 -0
- package/dist/platform/knowledge/service.d.ts.map +1 -1
- package/dist/platform/knowledge/service.js +41 -11
- package/dist/platform/knowledge/spaces.d.ts +2 -0
- package/dist/platform/knowledge/spaces.d.ts.map +1 -1
- package/dist/platform/knowledge/spaces.js +14 -3
- package/dist/platform/knowledge/store-read.js +5 -5
- package/dist/platform/knowledge/store.d.ts +1 -0
- package/dist/platform/knowledge/store.d.ts.map +1 -1
- package/dist/platform/knowledge/store.js +119 -16
- package/dist/platform/version.js +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-compile.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/ingest-compile.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ingest-compile.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/ingest-compile.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAOpB,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAoEvG;AAOD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5H;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAaf;AA2KD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CA0Gf"}
|
|
@@ -4,6 +4,7 @@ import { logger } from '../utils/logger.js';
|
|
|
4
4
|
import { extractKnowledgeArtifact } from './extractors.js';
|
|
5
5
|
import { knowledgeExtractionNeedsRefresh } from './extraction-policy.js';
|
|
6
6
|
import { canonicalizeUri, extractTaggedValues, mergeTags, readMetadataStrings, slugify, topKeywords, } from './shared.js';
|
|
7
|
+
import { getKnowledgeSpaceId, knowledgeSpaceMetadata } from './spaces.js';
|
|
7
8
|
const MAX_EXTRACTION_SECTION_NODES = 12;
|
|
8
9
|
const MAX_EXTRACTION_LINK_EDGES = 24;
|
|
9
10
|
const MAX_ENTITY_HINT_VALUES_PER_KIND = 8;
|
|
@@ -115,6 +116,7 @@ export async function compileKnowledgeSource(context, source, extraction) {
|
|
|
115
116
|
}), source.sessionId);
|
|
116
117
|
}
|
|
117
118
|
async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
119
|
+
const spaceId = getKnowledgeSpaceId(source);
|
|
118
120
|
if (source.artifactId) {
|
|
119
121
|
await context.store.upsertEdge({
|
|
120
122
|
fromKind: 'source',
|
|
@@ -122,6 +124,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
122
124
|
toKind: 'artifact',
|
|
123
125
|
toId: source.artifactId,
|
|
124
126
|
relation: 'snapshotted_as',
|
|
127
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
125
128
|
});
|
|
126
129
|
}
|
|
127
130
|
const domain = source.canonicalUri ?? source.sourceUri;
|
|
@@ -130,11 +133,11 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
130
133
|
const hostname = new URL(domain).hostname.toLowerCase();
|
|
131
134
|
const domainNode = await context.store.upsertNode({
|
|
132
135
|
kind: 'domain',
|
|
133
|
-
slug: slugify(hostname),
|
|
136
|
+
slug: slugify(`${spaceId}-${hostname}`),
|
|
134
137
|
title: hostname,
|
|
135
138
|
summary: `Knowledge sources cataloged under ${hostname}.`,
|
|
136
139
|
aliases: [hostname],
|
|
137
|
-
metadata: { hostname },
|
|
140
|
+
metadata: knowledgeSpaceMetadata(spaceId, { hostname }),
|
|
138
141
|
});
|
|
139
142
|
await context.store.upsertEdge({
|
|
140
143
|
fromKind: 'source',
|
|
@@ -142,6 +145,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
142
145
|
toKind: 'node',
|
|
143
146
|
toId: domainNode.id,
|
|
144
147
|
relation: 'belongs_to_domain',
|
|
148
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
145
149
|
});
|
|
146
150
|
}
|
|
147
151
|
catch (error) {
|
|
@@ -161,11 +165,11 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
161
165
|
accumulated = accumulated ? `${accumulated}/${segment}` : segment;
|
|
162
166
|
const folderNode = await context.store.upsertNode({
|
|
163
167
|
kind: 'bookmark_folder',
|
|
164
|
-
slug: slugify(accumulated),
|
|
168
|
+
slug: slugify(`${spaceId}-${accumulated}`),
|
|
165
169
|
title: segment,
|
|
166
170
|
summary: `Bookmark folder ${accumulated}.`,
|
|
167
171
|
aliases: [accumulated],
|
|
168
|
-
metadata: { folderPath: accumulated },
|
|
172
|
+
metadata: knowledgeSpaceMetadata(spaceId, { folderPath: accumulated }),
|
|
169
173
|
});
|
|
170
174
|
if (previousNode) {
|
|
171
175
|
await context.store.upsertEdge({
|
|
@@ -174,6 +178,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
174
178
|
toKind: 'node',
|
|
175
179
|
toId: folderNode.id,
|
|
176
180
|
relation: 'contains_folder',
|
|
181
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
177
182
|
});
|
|
178
183
|
}
|
|
179
184
|
previousNode = folderNode;
|
|
@@ -185,17 +190,18 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
185
190
|
toKind: 'node',
|
|
186
191
|
toId: previousNode.id,
|
|
187
192
|
relation: 'cataloged_in_folder',
|
|
193
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
188
194
|
});
|
|
189
195
|
}
|
|
190
196
|
}
|
|
191
197
|
for (const tag of source.tags) {
|
|
192
198
|
const topicNode = await context.store.upsertNode({
|
|
193
199
|
kind: 'topic',
|
|
194
|
-
slug: slugify(tag),
|
|
200
|
+
slug: slugify(`${spaceId}-${tag}`),
|
|
195
201
|
title: tag,
|
|
196
202
|
summary: `Topic tag ${tag}.`,
|
|
197
203
|
aliases: [tag],
|
|
198
|
-
metadata: { tag },
|
|
204
|
+
metadata: knowledgeSpaceMetadata(spaceId, { tag }),
|
|
199
205
|
});
|
|
200
206
|
await context.store.upsertEdge({
|
|
201
207
|
fromKind: 'source',
|
|
@@ -203,6 +209,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
203
209
|
toKind: 'node',
|
|
204
210
|
toId: topicNode.id,
|
|
205
211
|
relation: 'tagged_with',
|
|
212
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
206
213
|
});
|
|
207
214
|
}
|
|
208
215
|
await compileKnowledgeStructuredEntityHints(context, source, extraction);
|
|
@@ -224,14 +231,14 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
224
231
|
continue;
|
|
225
232
|
const topicNode = await context.store.upsertNode({
|
|
226
233
|
kind: 'topic',
|
|
227
|
-
slug: slugify(section),
|
|
234
|
+
slug: slugify(`${spaceId}-${section}`),
|
|
228
235
|
title: section,
|
|
229
236
|
summary: `Compiled section or concept from source ${source.id}.`,
|
|
230
237
|
aliases: [section],
|
|
231
|
-
metadata: {
|
|
238
|
+
metadata: knowledgeSpaceMetadata(spaceId, {
|
|
232
239
|
sourceId: source.id,
|
|
233
240
|
extractionId: extraction.id,
|
|
234
|
-
},
|
|
241
|
+
}),
|
|
235
242
|
});
|
|
236
243
|
await context.store.upsertEdge({
|
|
237
244
|
fromKind: 'source',
|
|
@@ -239,6 +246,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
239
246
|
toKind: 'node',
|
|
240
247
|
toId: topicNode.id,
|
|
241
248
|
relation: 'mentions_section',
|
|
249
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
242
250
|
});
|
|
243
251
|
}
|
|
244
252
|
const outboundUris = [...new Set(extraction.links
|
|
@@ -255,6 +263,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
255
263
|
toKind: 'source',
|
|
256
264
|
toId: linked.id,
|
|
257
265
|
relation: 'links_to_source',
|
|
266
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
258
267
|
});
|
|
259
268
|
}
|
|
260
269
|
}
|
|
@@ -265,10 +274,12 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
|
|
|
265
274
|
toKind: 'session',
|
|
266
275
|
toId: source.sessionId,
|
|
267
276
|
relation: 'ingested_during',
|
|
277
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
268
278
|
});
|
|
269
279
|
}
|
|
270
280
|
}
|
|
271
281
|
export async function compileKnowledgeStructuredEntityHints(context, source, extraction) {
|
|
282
|
+
const spaceId = getKnowledgeSpaceId(source);
|
|
272
283
|
const metadata = source.metadata ?? {};
|
|
273
284
|
const topicKeywords = topKeywords([
|
|
274
285
|
source.title ?? '',
|
|
@@ -327,14 +338,14 @@ export async function compileKnowledgeStructuredEntityHints(context, source, ext
|
|
|
327
338
|
continue;
|
|
328
339
|
const node = await context.store.upsertNode({
|
|
329
340
|
kind: spec.kind,
|
|
330
|
-
slug: slugify(title),
|
|
341
|
+
slug: slugify(`${spaceId}-${title}`),
|
|
331
342
|
title,
|
|
332
343
|
summary: `${spec.summaryPrefix} entity compiled from structured knowledge sources.`,
|
|
333
344
|
aliases: topicKeywords,
|
|
334
|
-
metadata: {
|
|
345
|
+
metadata: knowledgeSpaceMetadata(spaceId, {
|
|
335
346
|
compiledFrom: source.id,
|
|
336
347
|
tags: [...source.tags],
|
|
337
|
-
},
|
|
348
|
+
}),
|
|
338
349
|
});
|
|
339
350
|
await context.store.upsertEdge({
|
|
340
351
|
fromKind: 'source',
|
|
@@ -342,6 +353,7 @@ export async function compileKnowledgeStructuredEntityHints(context, source, ext
|
|
|
342
353
|
toKind: 'node',
|
|
343
354
|
toId: node.id,
|
|
344
355
|
relation: spec.relation,
|
|
356
|
+
metadata: knowledgeSpaceMetadata(spaceId),
|
|
345
357
|
});
|
|
346
358
|
}
|
|
347
359
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-filters.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/map-filters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map-filters.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/map-filters.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAuB;IACtC,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,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjD;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,OAAO,GAAE,yBAA8B,GACtC,uBAAuB,CAkFzB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAoB1F;AAED,wBAAgB,4BAA4B,CAAC,OAAO,GAAE,yBAA8B,GAAG,QAAQ,CAAC,IAAI,CAClG,uBAAuB,EACrB,KAAK,GACL,aAAa,GACb,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,MAAM,CACT,CAAC,GAAG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7E,CAyBA;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAMtE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO7D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAQ/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,sBAAsB,EAAE,CAUxF;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,MAAM,EAAE,CAG7E"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { isGeneratedKnowledgeSource, } from './generated-projections.js';
|
|
2
2
|
import { isInKnowledgeSpaceScope, } from './spaces.js';
|
|
3
|
+
import { knowledgeIssueMatchesScope, knowledgeNodeMatchesScope, } from './scope-records.js';
|
|
3
4
|
export function applyKnowledgeMapFilters(state, options = {}) {
|
|
4
5
|
const filters = normalizeKnowledgeMapFilters(options);
|
|
5
6
|
const linkedIds = new Set(filters.linkedToIds);
|
|
6
7
|
const linkedRecordIds = linkedIds.size > 0 ? recordIdsLinkedTo(state.edges, linkedIds) : new Set();
|
|
7
8
|
const query = filters.query?.toLowerCase();
|
|
8
9
|
const recordKinds = filters.recordKinds;
|
|
10
|
+
const scopeLookup = {
|
|
11
|
+
sources: new Map(state.sources.map((source) => [source.id, source])),
|
|
12
|
+
nodes: new Map(state.nodes.map((node) => [node.id, node])),
|
|
13
|
+
};
|
|
9
14
|
const sources = recordKinds && !recordKinds.has('source')
|
|
10
15
|
? []
|
|
11
16
|
: state.sources
|
|
@@ -30,7 +35,7 @@ export function applyKnowledgeMapFilters(state, options = {}) {
|
|
|
30
35
|
? []
|
|
31
36
|
: state.nodes
|
|
32
37
|
.filter((node) => node.status !== 'stale')
|
|
33
|
-
.filter((node) =>
|
|
38
|
+
.filter((node) => knowledgeNodeMatchesScope(node, filters, scopeLookup))
|
|
34
39
|
.filter((node) => matchesSet(filters.nodeKinds, node.kind))
|
|
35
40
|
.filter((node) => matchesSet(filters.nodeStatuses, node.status))
|
|
36
41
|
.filter((node) => filters.minConfidence === undefined || node.confidence >= filters.minConfidence)
|
|
@@ -49,7 +54,7 @@ export function applyKnowledgeMapFilters(state, options = {}) {
|
|
|
49
54
|
? []
|
|
50
55
|
: state.issues
|
|
51
56
|
.filter((issue) => (filters.issueStatuses?.length ?? 0) > 0 || issue.status === 'open')
|
|
52
|
-
.filter((issue) =>
|
|
57
|
+
.filter((issue) => knowledgeIssueMatchesScope(issue, filters, scopeLookup))
|
|
53
58
|
.filter((issue) => matchesSet(filters.issueCodes, issue.code))
|
|
54
59
|
.filter((issue) => matchesSet(filters.issueStatuses, issue.status))
|
|
55
60
|
.filter((issue) => matchesSet(filters.issueSeverities, issue.severity))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/packet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/packet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isInKnowledgeSpaceScope, } from './spaces.js';
|
|
2
|
+
import { knowledgeNodeMatchesScope, } from './scope-records.js';
|
|
2
3
|
import { emitKnowledgePacketBuilt } from '../runtime/emitters/index.js';
|
|
3
4
|
import { DEFAULT_PACKET_BUDGET, DEFAULT_PACKET_LIMIT, estimateTokens, isSourcePastRefreshWindow, renderPacket, scoreHaystack, summarizeCompact, tokenize, trimForDetail, } from './shared.js';
|
|
4
5
|
export function searchKnowledge(context, query, limit = 10, scope = {}) {
|
|
@@ -28,7 +29,10 @@ export function searchKnowledge(context, query, limit = 10, scope = {}) {
|
|
|
28
29
|
source,
|
|
29
30
|
};
|
|
30
31
|
});
|
|
31
|
-
const nodeResults = context.store.listNodes(Number.MAX_SAFE_INTEGER).filter((node) =>
|
|
32
|
+
const nodeResults = context.store.listNodes(Number.MAX_SAFE_INTEGER).filter((node) => knowledgeNodeMatchesScope(node, scope, {
|
|
33
|
+
getSource: (id) => context.store.getSource(id),
|
|
34
|
+
getNode: (id) => context.store.getNode(id),
|
|
35
|
+
})).map((node) => {
|
|
32
36
|
const haystack = [
|
|
33
37
|
node.title,
|
|
34
38
|
node.summary ?? '',
|
|
@@ -129,7 +133,10 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
|
|
|
129
133
|
candidates.push({ score: item.score, item });
|
|
130
134
|
}
|
|
131
135
|
for (const node of context.store.listNodes(Number.MAX_SAFE_INTEGER)) {
|
|
132
|
-
if (!
|
|
136
|
+
if (!knowledgeNodeMatchesScope(node, options, {
|
|
137
|
+
getSource: (id) => context.store.getSource(id),
|
|
138
|
+
getNode: (id) => context.store.getNode(id),
|
|
139
|
+
}))
|
|
133
140
|
continue;
|
|
134
141
|
const haystack = [
|
|
135
142
|
node.title,
|
|
@@ -215,7 +222,10 @@ function collectRelatedLabels(context, kind, id, scope) {
|
|
|
215
222
|
const otherId = edge.fromKind === kind && edge.fromId === id ? edge.toId : edge.fromId;
|
|
216
223
|
if (otherKind === 'node') {
|
|
217
224
|
const node = context.store.getNode(otherId);
|
|
218
|
-
if (node &&
|
|
225
|
+
if (node && knowledgeNodeMatchesScope(node, scope, {
|
|
226
|
+
getSource: (sourceId) => context.store.getSource(sourceId),
|
|
227
|
+
getNode: (nodeId) => context.store.getNode(nodeId),
|
|
228
|
+
}))
|
|
219
229
|
labels.push(node.title);
|
|
220
230
|
}
|
|
221
231
|
else if (otherKind === 'source') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projections.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/projections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"projections.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/projections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;AAerB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,kBAAkB,EAElB,+BAA+B,EAE/B,yBAAyB,EAEzB,yBAAyB,EACzB,6BAA6B,EAE9B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,SAAS,kBAAkB,EAAE,CAAC,GAAG,SAAS,CAAC;CACzE;AAED,qBAAa,0BAA0B;IAInC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAGjD,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,aAAa,EAC7C,OAAO,GAAE,iCAAsC;IAK3C,WAAW,CAAC,KAAK,SAAK,EAAE,KAAK,GAAE,wBAA6B,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAiBnG,MAAM,CACV,KAAK,EAAE;QACL,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;QAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACjD,GACA,OAAO,CAAC,yBAAyB,CAAC;IA6B/B,WAAW,CACf,KAAK,EAAE;QACL,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;QAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACjD,GACA,OAAO,CAAC,+BAA+B,CAAC;IAyC3C,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kBAAkB;IAwD1B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,yBAAyB;IAoCjC,OAAO,CAAC,gBAAgB;IAyExB,OAAO,CAAC,cAAc;IAwDtB,OAAO,CAAC,eAAe;IA4CvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { generatedKnowledgeCanonicalUri, generatedKnowledgeSourceId, isGeneratedKnowledgeSource, materializeGeneratedKnowledgeProjection, } from './generated-projections.js';
|
|
2
2
|
import { isInKnowledgeSpaceScope, resolveKnowledgeSpaceScope, } from './spaces.js';
|
|
3
|
+
import { knowledgeIssueMatchesScope, knowledgeNodeMatchesScope, } from './scope-records.js';
|
|
3
4
|
import { buildBulletList, dedupe, formatDateTime, joinSections, materializedTargetReference, quote, slugify, sortByTitle, } from './projection-utils.js';
|
|
4
5
|
export class KnowledgeProjectionService {
|
|
5
6
|
store;
|
|
@@ -102,7 +103,7 @@ export class KnowledgeProjectionService {
|
|
|
102
103
|
if (!id?.trim())
|
|
103
104
|
return null;
|
|
104
105
|
const node = this.store.getNode(id);
|
|
105
|
-
return node &&
|
|
106
|
+
return node && this.nodeInScope(node, scope) ? this.createRollupTarget(node) : null;
|
|
106
107
|
}
|
|
107
108
|
if (!id?.trim())
|
|
108
109
|
return null;
|
|
@@ -112,10 +113,10 @@ export class KnowledgeProjectionService {
|
|
|
112
113
|
}
|
|
113
114
|
if (kind === 'node') {
|
|
114
115
|
const node = this.store.getNode(id);
|
|
115
|
-
return node &&
|
|
116
|
+
return node && this.nodeInScope(node, scope) ? this.createNodeTarget(node) : null;
|
|
116
117
|
}
|
|
117
118
|
const issue = this.store.getIssue(id);
|
|
118
|
-
return issue &&
|
|
119
|
+
return issue && this.issueInScope(issue, scope) ? this.createIssueTarget(issue) : null;
|
|
119
120
|
}
|
|
120
121
|
createPresetTarget(kind, scope) {
|
|
121
122
|
const spaceId = resolveKnowledgeSpaceScope(scope);
|
|
@@ -354,7 +355,7 @@ export class KnowledgeProjectionService {
|
|
|
354
355
|
}
|
|
355
356
|
if (edge.fromKind === 'node') {
|
|
356
357
|
const node = this.store.getNode(edge.fromId);
|
|
357
|
-
return node &&
|
|
358
|
+
return node && this.nodeInScope(node, scope) ? `${this.linkToTarget(this.createNodeTarget(node))} via \`${edge.relation}\`` : `node:${edge.fromId}`;
|
|
358
359
|
}
|
|
359
360
|
return `${edge.fromKind}:${edge.fromId} via \`${edge.relation}\``;
|
|
360
361
|
})),
|
|
@@ -438,7 +439,7 @@ export class KnowledgeProjectionService {
|
|
|
438
439
|
...(extraction.links.length > 0 ? [`- links: ${extraction.links.join(', ')}`] : []),
|
|
439
440
|
].join('\n') : null, extraction?.excerpt ? ['## Excerpt', extraction.excerpt].join('\n') : null, [
|
|
440
441
|
'## Related Nodes',
|
|
441
|
-
buildBulletList(relatedNodes.filter((node) =>
|
|
442
|
+
buildBulletList(relatedNodes.filter((node) => this.nodeInScope(node, scope)).map((node) => this.linkToTarget(this.createNodeTarget(node), `${node.title} (${node.kind})`))),
|
|
442
443
|
].join('\n'), [
|
|
443
444
|
'## Related Sources',
|
|
444
445
|
buildBulletList(relatedSources.filter((entry) => isInKnowledgeSpaceScope(entry, scope)).map((entry) => this.linkToTarget(this.createSourceTarget(entry)))),
|
|
@@ -464,7 +465,7 @@ export class KnowledgeProjectionService {
|
|
|
464
465
|
}
|
|
465
466
|
renderNodePage(id, scope) {
|
|
466
467
|
const node = this.store.getNode(id);
|
|
467
|
-
if (!node || !
|
|
468
|
+
if (!node || !this.nodeInScope(node, scope))
|
|
468
469
|
throw new Error(`Unknown knowledge node: ${id}`);
|
|
469
470
|
const view = this.store.getItem(id);
|
|
470
471
|
const target = this.createNodeTarget(node);
|
|
@@ -512,7 +513,7 @@ export class KnowledgeProjectionService {
|
|
|
512
513
|
}
|
|
513
514
|
renderIssuePage(id, scope) {
|
|
514
515
|
const issue = this.store.getIssue(id);
|
|
515
|
-
if (!issue || !
|
|
516
|
+
if (!issue || !this.issueInScope(issue, scope))
|
|
516
517
|
throw new Error(`Unknown knowledge issue: ${id}`);
|
|
517
518
|
const target = this.createIssueTarget(issue);
|
|
518
519
|
const linkedSource = issue.sourceId ? this.store.getSource(issue.sourceId) : null;
|
|
@@ -557,7 +558,7 @@ export class KnowledgeProjectionService {
|
|
|
557
558
|
}
|
|
558
559
|
renderRollupPage(nodeId, target, scope) {
|
|
559
560
|
const node = this.store.getNode(nodeId);
|
|
560
|
-
if (!node || !
|
|
561
|
+
if (!node || !this.nodeInScope(node, scope))
|
|
561
562
|
throw new Error(`Unknown rollup node: ${nodeId}`);
|
|
562
563
|
const edges = this.store.edgesFor('node', node.id);
|
|
563
564
|
const sources = edges
|
|
@@ -678,11 +679,11 @@ export class KnowledgeProjectionService {
|
|
|
678
679
|
}
|
|
679
680
|
if (kind === 'node') {
|
|
680
681
|
const node = this.store.getNode(id);
|
|
681
|
-
return Boolean(node &&
|
|
682
|
+
return Boolean(node && this.nodeInScope(node, scope));
|
|
682
683
|
}
|
|
683
684
|
if (kind === 'issue') {
|
|
684
685
|
const issue = this.store.getIssue(id);
|
|
685
|
-
return Boolean(issue &&
|
|
686
|
+
return Boolean(issue && this.issueInScope(issue, scope));
|
|
686
687
|
}
|
|
687
688
|
return true;
|
|
688
689
|
}
|
|
@@ -693,12 +694,12 @@ export class KnowledgeProjectionService {
|
|
|
693
694
|
}
|
|
694
695
|
scopedNodes(scope, limit = Number.MAX_SAFE_INTEGER) {
|
|
695
696
|
return this.store.listNodes(Number.MAX_SAFE_INTEGER)
|
|
696
|
-
.filter((node) =>
|
|
697
|
+
.filter((node) => this.nodeInScope(node, scope))
|
|
697
698
|
.slice(0, Math.max(1, limit));
|
|
698
699
|
}
|
|
699
700
|
scopedIssues(scope, limit = Number.MAX_SAFE_INTEGER) {
|
|
700
701
|
return this.store.listIssues(Number.MAX_SAFE_INTEGER)
|
|
701
|
-
.filter((issue) =>
|
|
702
|
+
.filter((issue) => this.issueInScope(issue, scope))
|
|
702
703
|
.slice(0, Math.max(1, limit));
|
|
703
704
|
}
|
|
704
705
|
scopedExtractions(scope, limit = Number.MAX_SAFE_INTEGER) {
|
|
@@ -706,6 +707,18 @@ export class KnowledgeProjectionService {
|
|
|
706
707
|
.filter((extraction) => isInKnowledgeSpaceScope(extraction, scope))
|
|
707
708
|
.slice(0, Math.max(1, limit));
|
|
708
709
|
}
|
|
710
|
+
nodeInScope(node, scope) {
|
|
711
|
+
return knowledgeNodeMatchesScope(node, scope, {
|
|
712
|
+
getSource: (id) => this.store.getSource(id),
|
|
713
|
+
getNode: (id) => this.store.getNode(id),
|
|
714
|
+
});
|
|
715
|
+
}
|
|
716
|
+
issueInScope(issue, scope) {
|
|
717
|
+
return knowledgeIssueMatchesScope(issue, scope, {
|
|
718
|
+
getSource: (id) => this.store.getSource(id),
|
|
719
|
+
getNode: (id) => this.store.getNode(id),
|
|
720
|
+
});
|
|
721
|
+
}
|
|
709
722
|
}
|
|
710
723
|
function projectionScope(input = {}) {
|
|
711
724
|
return {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type KnowledgeSpaceScopeInput } from './spaces.js';
|
|
2
|
+
import type { KnowledgeIssueRecord, KnowledgeNodeRecord, KnowledgeSourceRecord } from './types.js';
|
|
3
|
+
export interface KnowledgeScopeLookup {
|
|
4
|
+
readonly getSource?: ((id: string) => KnowledgeSourceRecord | null | undefined) | undefined;
|
|
5
|
+
readonly getNode?: ((id: string) => KnowledgeNodeRecord | null | undefined) | undefined;
|
|
6
|
+
readonly sources?: ReadonlyMap<string, KnowledgeSourceRecord> | undefined;
|
|
7
|
+
readonly nodes?: ReadonlyMap<string, KnowledgeNodeRecord> | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function knowledgeSourceMatchesScope(source: KnowledgeSourceRecord, scope?: KnowledgeSpaceScopeInput): boolean;
|
|
10
|
+
export declare function knowledgeNodeMatchesScope(node: KnowledgeNodeRecord, scope?: KnowledgeSpaceScopeInput, lookup?: KnowledgeScopeLookup): boolean;
|
|
11
|
+
export declare function knowledgeIssueMatchesScope(issue: KnowledgeIssueRecord, scope?: KnowledgeSpaceScopeInput, lookup?: KnowledgeScopeLookup): boolean;
|
|
12
|
+
//# sourceMappingURL=scope-records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-records.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/scope-records.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,qBAAqB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC;CACvE;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,GAAE,wBAA6B,GACnC,OAAO,CAET;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,mBAAmB,EACzB,KAAK,GAAE,wBAA6B,EACpC,MAAM,GAAE,oBAAyB,GAChC,OAAO,CAMT;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,GAAE,wBAA6B,EACpC,MAAM,GAAE,oBAAyB,GAChC,OAAO,CAMT"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { getExplicitKnowledgeSpaceId, isInKnowledgeSpaceScope, resolveKnowledgeSpaceScope, } from './spaces.js';
|
|
2
|
+
export function knowledgeSourceMatchesScope(source, scope = {}) {
|
|
3
|
+
return isInKnowledgeSpaceScope(source, scope);
|
|
4
|
+
}
|
|
5
|
+
export function knowledgeNodeMatchesScope(node, scope = {}, lookup = {}) {
|
|
6
|
+
if (!isInKnowledgeSpaceScope(node, scope))
|
|
7
|
+
return false;
|
|
8
|
+
const scopedSpaceId = resolveKnowledgeSpaceScope(scope);
|
|
9
|
+
if (scopedSpaceId === null)
|
|
10
|
+
return true;
|
|
11
|
+
const relatedSpaces = relatedNodeSpaceIds(node, lookup);
|
|
12
|
+
return relatedSpaces.length === 0 || relatedSpaces.every((spaceId) => spaceId === scopedSpaceId);
|
|
13
|
+
}
|
|
14
|
+
export function knowledgeIssueMatchesScope(issue, scope = {}, lookup = {}) {
|
|
15
|
+
if (!isInKnowledgeSpaceScope(issue, scope))
|
|
16
|
+
return false;
|
|
17
|
+
const scopedSpaceId = resolveKnowledgeSpaceScope(scope);
|
|
18
|
+
if (scopedSpaceId === null)
|
|
19
|
+
return true;
|
|
20
|
+
const relatedSpaces = relatedIssueSpaceIds(issue, lookup);
|
|
21
|
+
return relatedSpaces.length === 0 || relatedSpaces.every((spaceId) => spaceId === scopedSpaceId);
|
|
22
|
+
}
|
|
23
|
+
function relatedIssueSpaceIds(issue, lookup) {
|
|
24
|
+
const spaces = new Set();
|
|
25
|
+
for (const sourceId of uniqueStrings([
|
|
26
|
+
issue.sourceId,
|
|
27
|
+
readString(issue.metadata.sourceId),
|
|
28
|
+
...readStringArray(issue.metadata.sourceIds),
|
|
29
|
+
])) {
|
|
30
|
+
const sourceSpace = getExplicitKnowledgeSpaceId(lookupSource(lookup, sourceId));
|
|
31
|
+
if (sourceSpace)
|
|
32
|
+
spaces.add(sourceSpace);
|
|
33
|
+
}
|
|
34
|
+
const linkedNodeIds = uniqueStrings([
|
|
35
|
+
issue.nodeId,
|
|
36
|
+
readString(issue.metadata.nodeId),
|
|
37
|
+
...readStringArray(issue.metadata.linkedObjectIds),
|
|
38
|
+
...readStringArray(issue.metadata.subjectIds),
|
|
39
|
+
]);
|
|
40
|
+
for (const nodeId of linkedNodeIds) {
|
|
41
|
+
const node = lookupNode(lookup, nodeId);
|
|
42
|
+
const nodeSpace = getExplicitKnowledgeSpaceId(node);
|
|
43
|
+
if (nodeSpace)
|
|
44
|
+
spaces.add(nodeSpace);
|
|
45
|
+
if (node)
|
|
46
|
+
for (const related of relatedNodeSpaceIds(node, lookup))
|
|
47
|
+
spaces.add(related);
|
|
48
|
+
}
|
|
49
|
+
return [...spaces];
|
|
50
|
+
}
|
|
51
|
+
function relatedNodeSpaceIds(node, lookup) {
|
|
52
|
+
const spaces = new Set();
|
|
53
|
+
for (const sourceId of uniqueStrings([
|
|
54
|
+
node.sourceId,
|
|
55
|
+
readString(node.metadata.sourceId),
|
|
56
|
+
...readStringArray(node.metadata.sourceIds),
|
|
57
|
+
])) {
|
|
58
|
+
const sourceSpace = getExplicitKnowledgeSpaceId(lookupSource(lookup, sourceId));
|
|
59
|
+
if (sourceSpace)
|
|
60
|
+
spaces.add(sourceSpace);
|
|
61
|
+
}
|
|
62
|
+
for (const nodeId of uniqueStrings([
|
|
63
|
+
...readStringArray(node.metadata.linkedObjectIds),
|
|
64
|
+
...readStringArray(node.metadata.subjectIds),
|
|
65
|
+
])) {
|
|
66
|
+
const linkedSpace = getExplicitKnowledgeSpaceId(lookupNode(lookup, nodeId));
|
|
67
|
+
if (linkedSpace)
|
|
68
|
+
spaces.add(linkedSpace);
|
|
69
|
+
}
|
|
70
|
+
return [...spaces];
|
|
71
|
+
}
|
|
72
|
+
function lookupSource(lookup, id) {
|
|
73
|
+
if (!id)
|
|
74
|
+
return null;
|
|
75
|
+
return lookup.getSource?.(id) ?? lookup.sources?.get(id) ?? null;
|
|
76
|
+
}
|
|
77
|
+
function lookupNode(lookup, id) {
|
|
78
|
+
if (!id)
|
|
79
|
+
return null;
|
|
80
|
+
return lookup.getNode?.(id) ?? lookup.nodes?.get(id) ?? null;
|
|
81
|
+
}
|
|
82
|
+
function readString(value) {
|
|
83
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
84
|
+
}
|
|
85
|
+
function readStringArray(value) {
|
|
86
|
+
if (typeof value === 'string' && value.trim().length > 0)
|
|
87
|
+
return [value.trim()];
|
|
88
|
+
if (!Array.isArray(value))
|
|
89
|
+
return [];
|
|
90
|
+
return value.flatMap((entry) => readStringArray(entry));
|
|
91
|
+
}
|
|
92
|
+
function uniqueStrings(values) {
|
|
93
|
+
return [...new Set(values.filter((entry) => Boolean(entry && entry.trim().length > 0)))];
|
|
94
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-evidence.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"answer-evidence.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAwB/D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAW5B,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,YAAY,EAAE,CAkGhB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,mBAAmB,EAAE,CASvB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,SAAS,mBAAmB,EAAE,CAKhC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,4BAA4B,EACnC,2BAA2B,EAAE,SAAS,mBAAmB,EAAE,GAC1D,OAAO,CAMT;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,qBAAqB,EAAE,EAC/C,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,SAAS,qBAAqB,EAAE,CAelC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,aAAa,EAAE,SAAS,mBAAmB,EAAE,EAC7C,KAAK,EAAE,MAAM,GACZ,YAAY,EAAE,CAwChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,qBAAqB,CASxE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CASxF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAM5F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getExplicitKnowledgeSpaceId, isHomeAssistantKnowledgeSpace, normalizeKnowledgeSpaceId, } from '../spaces.js';
|
|
2
2
|
import { isActiveKnowledgeEdge } from '../projection-utils.js';
|
|
3
3
|
import { clampText, normalizeWhitespace, readRecord, readString, readStringArray, scoreSemanticText, sourceSemanticText, splitSentences, tokenizeSemanticQuery, uniqueStrings, } from './utils.js';
|
|
4
4
|
import { isLowValueFeatureOrSpecText, isSemanticAnswerLinkedObject, } from './fact-quality.js';
|
|
@@ -396,12 +396,15 @@ function pruneEvidence(items, limit, strictTopCluster = false) {
|
|
|
396
396
|
}
|
|
397
397
|
function belongsToAnswerSpace(record, spaceId) {
|
|
398
398
|
const normalized = normalizeKnowledgeSpaceId(spaceId);
|
|
399
|
-
const
|
|
399
|
+
const explicitSpaceId = getExplicitKnowledgeSpaceId(record);
|
|
400
|
+
if (!explicitSpaceId)
|
|
401
|
+
return false;
|
|
402
|
+
const recordSpaceId = normalizeKnowledgeSpaceId(explicitSpaceId);
|
|
400
403
|
if (normalized === 'default')
|
|
401
404
|
return recordSpaceId === 'default';
|
|
402
405
|
if (normalized === 'homeassistant')
|
|
403
406
|
return isHomeAssistantKnowledgeSpace(recordSpaceId);
|
|
404
|
-
return
|
|
407
|
+
return recordSpaceId === normalized;
|
|
405
408
|
}
|
|
406
409
|
function uniqueSources(sources) {
|
|
407
410
|
const seen = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-space.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-space.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"answer-space.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-space.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE9E,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACrD;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,MAAM,CAMR"}
|
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DEFAULT_KNOWLEDGE_SPACE_ID, getExplicitKnowledgeSpaceId, normalizeKnowledgeSpaceId, } from '../spaces.js';
|
|
2
2
|
export function concreteAnswerGapSpaceId(requestedSpaceId, evidence, sources, linkedObjects) {
|
|
3
|
+
const explicitRecordSpace = concreteRecordSpaceId(evidence, sources, linkedObjects);
|
|
4
|
+
if (explicitRecordSpace && explicitRecordSpace !== DEFAULT_KNOWLEDGE_SPACE_ID)
|
|
5
|
+
return explicitRecordSpace;
|
|
3
6
|
if (normalizeKnowledgeSpaceId(requestedSpaceId) !== 'homeassistant')
|
|
4
7
|
return requestedSpaceId;
|
|
8
|
+
if (explicitRecordSpace)
|
|
9
|
+
return explicitRecordSpace;
|
|
10
|
+
return requestedSpaceId;
|
|
11
|
+
}
|
|
12
|
+
function concreteRecordSpaceId(evidence, sources, linkedObjects) {
|
|
5
13
|
for (const record of [
|
|
6
14
|
...linkedObjects,
|
|
7
15
|
...sources,
|
|
8
16
|
...evidence.flatMap((item) => [item.node, item.source]),
|
|
9
17
|
]) {
|
|
10
|
-
const
|
|
11
|
-
if (
|
|
18
|
+
const explicitSpaceId = record ? getExplicitKnowledgeSpaceId(record) : null;
|
|
19
|
+
if (!explicitSpaceId)
|
|
20
|
+
continue;
|
|
21
|
+
const spaceId = normalizeKnowledgeSpaceId(explicitSpaceId);
|
|
22
|
+
if (spaceId !== DEFAULT_KNOWLEDGE_SPACE_ID)
|
|
12
23
|
return spaceId;
|
|
13
24
|
}
|
|
14
|
-
return
|
|
25
|
+
return null;
|
|
15
26
|
}
|
|
@@ -108,6 +108,9 @@ export declare class KnowledgeService {
|
|
|
108
108
|
getItems(ids: readonly string[]): KnowledgeItemView[];
|
|
109
109
|
private edgeInKnowledgeSpaceScope;
|
|
110
110
|
private recordReferenceInKnowledgeSpaceScope;
|
|
111
|
+
private recordMatchesKnowledgeSpaceScope;
|
|
112
|
+
private nodeMatchesKnowledgeSpaceScope;
|
|
113
|
+
private issueMatchesKnowledgeSpaceScope;
|
|
111
114
|
recordUsage(input: {
|
|
112
115
|
readonly targetKind: KnowledgeUsageRecord['targetKind'];
|
|
113
116
|
readonly targetId: string;
|
|
@@ -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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"}
|
|
@@ -21,6 +21,7 @@ import { emitKnowledgeExtractionCompleted, emitKnowledgeExtractionFailed, emitKn
|
|
|
21
21
|
import { extractKnowledgeArtifact } from './extractors.js';
|
|
22
22
|
import { DEFAULT_PACKET_BUDGET, DEFAULT_PACKET_LIMIT, tokenize, } from './shared.js';
|
|
23
23
|
import { isGeneratedKnowledgeSource } from './generated-projections.js';
|
|
24
|
+
import { knowledgeIssueMatchesScope, knowledgeNodeMatchesScope, } from './scope-records.js';
|
|
24
25
|
import { isInKnowledgeSpaceScope, resolveKnowledgeSpaceScope, } from './spaces.js';
|
|
25
26
|
export class KnowledgeService {
|
|
26
27
|
store;
|
|
@@ -132,7 +133,7 @@ export class KnowledgeService {
|
|
|
132
133
|
return this.store.getSchedule(id);
|
|
133
134
|
}
|
|
134
135
|
listSources(limit = 100) {
|
|
135
|
-
return this.
|
|
136
|
+
return this.querySources({ limit }).items;
|
|
136
137
|
}
|
|
137
138
|
querySources(input = {}) {
|
|
138
139
|
const limit = Math.max(1, input.limit ?? 100);
|
|
@@ -172,14 +173,17 @@ export class KnowledgeService {
|
|
|
172
173
|
};
|
|
173
174
|
}
|
|
174
175
|
listNodes(limit = 100) {
|
|
175
|
-
return this.
|
|
176
|
+
return this.queryNodes({ limit }).items;
|
|
176
177
|
}
|
|
177
178
|
queryNodes(input = {}) {
|
|
178
179
|
const limit = Math.max(1, input.limit ?? 100);
|
|
179
180
|
const offset = Math.max(0, input.offset ?? 0);
|
|
180
181
|
const queryTokens = tokenize(input.query ?? '');
|
|
181
182
|
const items = this.store.listNodes(Number.MAX_SAFE_INTEGER).filter((node) => {
|
|
182
|
-
if (!
|
|
183
|
+
if (!knowledgeNodeMatchesScope(node, input, {
|
|
184
|
+
getSource: (id) => this.store.getSource(id),
|
|
185
|
+
getNode: (id) => this.store.getNode(id),
|
|
186
|
+
}))
|
|
183
187
|
return false;
|
|
184
188
|
if (input.kind && node.kind !== input.kind)
|
|
185
189
|
return false;
|
|
@@ -201,14 +205,17 @@ export class KnowledgeService {
|
|
|
201
205
|
};
|
|
202
206
|
}
|
|
203
207
|
listIssues(limit = 100) {
|
|
204
|
-
return this.
|
|
208
|
+
return this.queryIssues({ limit }).items;
|
|
205
209
|
}
|
|
206
210
|
queryIssues(input = {}) {
|
|
207
211
|
const limit = Math.max(1, input.limit ?? 100);
|
|
208
212
|
const offset = Math.max(0, input.offset ?? 0);
|
|
209
213
|
const queryTokens = tokenize(input.query ?? '');
|
|
210
214
|
const items = this.store.listIssues(Number.MAX_SAFE_INTEGER).filter((issue) => {
|
|
211
|
-
if (!
|
|
215
|
+
if (!knowledgeIssueMatchesScope(issue, input, {
|
|
216
|
+
getSource: (id) => this.store.getSource(id),
|
|
217
|
+
getNode: (id) => this.store.getNode(id),
|
|
218
|
+
}))
|
|
212
219
|
return false;
|
|
213
220
|
if (input.severity && issue.severity !== input.severity)
|
|
214
221
|
return false;
|
|
@@ -267,12 +274,12 @@ export class KnowledgeService {
|
|
|
267
274
|
getItemScoped(id, scope = {}) {
|
|
268
275
|
const item = this.store.getItem(id);
|
|
269
276
|
const primary = item?.source ?? item?.node ?? item?.issue;
|
|
270
|
-
if (!item || !primary || !
|
|
277
|
+
if (!item || !primary || !this.recordMatchesKnowledgeSpaceScope(primary, scope))
|
|
271
278
|
return null;
|
|
272
279
|
const scoped = {
|
|
273
280
|
...item,
|
|
274
281
|
linkedSources: item.linkedSources.filter((source) => isInKnowledgeSpaceScope(source, scope)),
|
|
275
|
-
linkedNodes: item.linkedNodes.filter((node) =>
|
|
282
|
+
linkedNodes: item.linkedNodes.filter((node) => this.nodeMatchesKnowledgeSpaceScope(node, scope)),
|
|
276
283
|
relatedEdges: item.relatedEdges.filter((edge) => this.edgeInKnowledgeSpaceScope(edge, scope)),
|
|
277
284
|
};
|
|
278
285
|
if (scoped.source)
|
|
@@ -293,12 +300,35 @@ export class KnowledgeService {
|
|
|
293
300
|
recordReferenceInKnowledgeSpaceScope(kind, id, scope) {
|
|
294
301
|
if (kind === 'source')
|
|
295
302
|
return isInKnowledgeSpaceScope(this.store.getSource(id), scope);
|
|
296
|
-
if (kind === 'node')
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
303
|
+
if (kind === 'node') {
|
|
304
|
+
const node = this.store.getNode(id);
|
|
305
|
+
return Boolean(node && this.nodeMatchesKnowledgeSpaceScope(node, scope));
|
|
306
|
+
}
|
|
307
|
+
if (kind === 'issue') {
|
|
308
|
+
const issue = this.store.getIssue(id);
|
|
309
|
+
return Boolean(issue && this.issueMatchesKnowledgeSpaceScope(issue, scope));
|
|
310
|
+
}
|
|
300
311
|
return true;
|
|
301
312
|
}
|
|
313
|
+
recordMatchesKnowledgeSpaceScope(record, scope) {
|
|
314
|
+
if ('sourceType' in record)
|
|
315
|
+
return isInKnowledgeSpaceScope(record, scope);
|
|
316
|
+
if ('kind' in record)
|
|
317
|
+
return this.nodeMatchesKnowledgeSpaceScope(record, scope);
|
|
318
|
+
return this.issueMatchesKnowledgeSpaceScope(record, scope);
|
|
319
|
+
}
|
|
320
|
+
nodeMatchesKnowledgeSpaceScope(node, scope) {
|
|
321
|
+
return knowledgeNodeMatchesScope(node, scope, {
|
|
322
|
+
getSource: (id) => this.store.getSource(id),
|
|
323
|
+
getNode: (id) => this.store.getNode(id),
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
issueMatchesKnowledgeSpaceScope(issue, scope) {
|
|
327
|
+
return knowledgeIssueMatchesScope(issue, scope, {
|
|
328
|
+
getSource: (id) => this.store.getSource(id),
|
|
329
|
+
getNode: (id) => this.store.getNode(id),
|
|
330
|
+
});
|
|
331
|
+
}
|
|
302
332
|
async recordUsage(input) {
|
|
303
333
|
await this.store.init();
|
|
304
334
|
return this.store.upsertUsageRecord(input);
|
|
@@ -22,8 +22,10 @@ export declare function withKnowledgeSpace<T extends {
|
|
|
22
22
|
readonly metadata?: Record<string, unknown>;
|
|
23
23
|
}>(input: T, spaceId: string): T;
|
|
24
24
|
export declare function getKnowledgeSpaceId(input: KnowledgeSpaceBackedRecord | Record<string, unknown> | undefined | null): KnowledgeSpaceId;
|
|
25
|
+
export declare function getExplicitKnowledgeSpaceId(input: KnowledgeSpaceBackedRecord | Record<string, unknown> | undefined | null): KnowledgeSpaceId | null;
|
|
25
26
|
export declare function isInKnowledgeSpace(input: KnowledgeSpaceBackedRecord | undefined | null, spaceId: string): boolean;
|
|
26
27
|
export declare function resolveKnowledgeSpaceScope(input?: KnowledgeSpaceScopeInput): KnowledgeSpaceId | null;
|
|
27
28
|
export declare function isInKnowledgeSpaceScope(input: KnowledgeSpaceBackedRecord | undefined | null, scope?: KnowledgeSpaceScopeInput): boolean;
|
|
29
|
+
export declare function ensureKnowledgeSpaceMetadata(metadata?: Record<string, unknown>, fallbackSpaceId?: string): Record<string, unknown>;
|
|
28
30
|
export declare function normalizeSpaceComponent(value?: string | null): string;
|
|
29
31
|
//# sourceMappingURL=spaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,eAAO,MAAM,qCAAqC,mBAAmB,CAAC;AACtE,eAAO,MAAM,8BAA8B,aAAa,CAAC;AAEzD,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAGjF;AAED,wBAAgB,6BAA6B,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAG9F;AAED,wBAAgB,oCAAoC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAElF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAEnF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1F,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,MAAM,GACd,CAAC,CAKH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,eAAO,MAAM,qCAAqC,mBAAmB,CAAC;AACtE,eAAO,MAAM,8BAA8B,aAAa,CAAC;AAEzD,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAGjF;AAED,wBAAgB,6BAA6B,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAG9F;AAED,wBAAgB,oCAAoC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAElF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAEnF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1F,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,MAAM,GACd,CAAC,CAKH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAEpI;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAOnJ;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,GAAE,wBAA6B,GAAG,gBAAgB,GAAG,IAAI,CAGxG;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI,EACpD,KAAK,GAAE,wBAA6B,GACnC,OAAO,CAIT;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACtC,eAAe,GAAE,MAAmC,GACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOrE"}
|
|
@@ -39,10 +39,14 @@ export function withKnowledgeSpace(input, spaceId) {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
export function getKnowledgeSpaceId(input) {
|
|
42
|
+
return getExplicitKnowledgeSpaceId(input) ?? DEFAULT_KNOWLEDGE_SPACE_ID;
|
|
43
|
+
}
|
|
44
|
+
export function getExplicitKnowledgeSpaceId(input) {
|
|
42
45
|
const metadata = readMetadata(input);
|
|
43
|
-
|
|
46
|
+
const value = readString(metadata.knowledgeSpaceId)
|
|
44
47
|
?? readString(metadata.spaceId)
|
|
45
|
-
?? readString(metadata.namespace)
|
|
48
|
+
?? readString(metadata.namespace);
|
|
49
|
+
return value ? normalizeKnowledgeSpaceId(value) : null;
|
|
46
50
|
}
|
|
47
51
|
export function isInKnowledgeSpace(input, spaceId) {
|
|
48
52
|
return getKnowledgeSpaceId(input) === normalizeKnowledgeSpaceId(spaceId);
|
|
@@ -54,7 +58,14 @@ export function resolveKnowledgeSpaceScope(input = {}) {
|
|
|
54
58
|
}
|
|
55
59
|
export function isInKnowledgeSpaceScope(input, scope = {}) {
|
|
56
60
|
const scopedSpaceId = resolveKnowledgeSpaceScope(scope);
|
|
57
|
-
|
|
61
|
+
if (scopedSpaceId === null)
|
|
62
|
+
return true;
|
|
63
|
+
return getExplicitKnowledgeSpaceId(input) === scopedSpaceId;
|
|
64
|
+
}
|
|
65
|
+
export function ensureKnowledgeSpaceMetadata(metadata = {}, fallbackSpaceId = DEFAULT_KNOWLEDGE_SPACE_ID) {
|
|
66
|
+
return getExplicitKnowledgeSpaceId({ metadata })
|
|
67
|
+
? metadata
|
|
68
|
+
: knowledgeSpaceMetadata(fallbackSpaceId, metadata);
|
|
58
69
|
}
|
|
59
70
|
export function normalizeSpaceComponent(value) {
|
|
60
71
|
const normalized = (typeof value === 'string' ? value : '')
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isInKnowledgeSpaceScope, normalizeKnowledgeSpaceId } from './spaces.js';
|
|
2
2
|
function sliceLimit(limit) {
|
|
3
3
|
return Math.max(1, limit);
|
|
4
4
|
}
|
|
@@ -44,7 +44,7 @@ export function listKnowledgeNodes(view, limit = 100) {
|
|
|
44
44
|
export function listKnowledgeNodesInSpace(view, spaceId) {
|
|
45
45
|
const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
|
|
46
46
|
return [...view.nodes.values()]
|
|
47
|
-
.filter((node) =>
|
|
47
|
+
.filter((node) => isInKnowledgeSpaceScope(node, { knowledgeSpaceId: normalizedSpaceId }))
|
|
48
48
|
.sort(byUpdatedAtDesc);
|
|
49
49
|
}
|
|
50
50
|
export function listKnowledgeEdges(view) {
|
|
@@ -53,7 +53,7 @@ export function listKnowledgeEdges(view) {
|
|
|
53
53
|
export function listKnowledgeSourcesInSpace(view, spaceId) {
|
|
54
54
|
const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
|
|
55
55
|
return [...view.sources.values()]
|
|
56
|
-
.filter((source) =>
|
|
56
|
+
.filter((source) => isInKnowledgeSpaceScope(source, { knowledgeSpaceId: normalizedSpaceId }))
|
|
57
57
|
.sort(byUpdatedAtDesc);
|
|
58
58
|
}
|
|
59
59
|
export function listKnowledgeIssues(view, limit = 100) {
|
|
@@ -64,7 +64,7 @@ export function listKnowledgeIssues(view, limit = 100) {
|
|
|
64
64
|
export function listKnowledgeIssuesInSpace(view, spaceId) {
|
|
65
65
|
const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
|
|
66
66
|
return [...view.issues.values()]
|
|
67
|
-
.filter((issue) =>
|
|
67
|
+
.filter((issue) => isInKnowledgeSpaceScope(issue, { knowledgeSpaceId: normalizedSpaceId }))
|
|
68
68
|
.sort(byUpdatedAtDesc);
|
|
69
69
|
}
|
|
70
70
|
export function listKnowledgeExtractions(view, limit = 100) {
|
|
@@ -75,7 +75,7 @@ export function listKnowledgeExtractions(view, limit = 100) {
|
|
|
75
75
|
export function listKnowledgeExtractionsInSpace(view, spaceId) {
|
|
76
76
|
const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
|
|
77
77
|
return [...view.extractions.values()]
|
|
78
|
-
.filter((extraction) =>
|
|
78
|
+
.filter((extraction) => isInKnowledgeSpaceScope(extraction, { knowledgeSpaceId: normalizedSpaceId }))
|
|
79
79
|
.sort(byUpdatedAtDesc);
|
|
80
80
|
}
|
|
81
81
|
export function listKnowledgeExtractionsForSources(view, sourceIds) {
|
|
@@ -75,6 +75,7 @@ export declare class KnowledgeStore {
|
|
|
75
75
|
replaceEdgeRecord(record: KnowledgeEdgeRecord): Promise<void>;
|
|
76
76
|
replaceIssues(inputs: readonly KnowledgeIssueUpsertInput[], namespace?: string): Promise<KnowledgeIssueRecord[]>;
|
|
77
77
|
upsertIssue(input: KnowledgeIssueUpsertInput): Promise<KnowledgeIssueRecord>;
|
|
78
|
+
replaceIssueRecord(record: KnowledgeIssueRecord): Promise<void>;
|
|
78
79
|
upsertExtraction(input: KnowledgeExtractionUpsertInput): Promise<KnowledgeExtractionRecord>;
|
|
79
80
|
upsertJobRun(input: KnowledgeJobRunUpsertInput): Promise<KnowledgeJobRunRecord>;
|
|
80
81
|
upsertRefinementTask(input: KnowledgeRefinementTaskUpsertInput): Promise<KnowledgeRefinementTaskRecord>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qCAAqC,EACrC,0CAA0C,EAC1C,kCAAkC,EAClC,uCAAuC,EACvC,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,kCAAkC,EAClC,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAOpB,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { deleteKnowledgeSpaceRows, planKnowledgeSpaceDeleteRows, } from './store
|
|
|
9
9
|
import { deleteKnowledgeSchedule, upsertKnowledgeSchedule, } from './store-schedules.js';
|
|
10
10
|
import { edgesForKnowledgeStore, getKnowledgeConsolidationCandidate, getKnowledgeConsolidationCandidateBySubject, getKnowledgeConsolidationReport, getKnowledgeExtraction, getKnowledgeExtractionBySourceId, getKnowledgeIssue, getKnowledgeItem, getKnowledgeJobRun, getKnowledgeRefinementTask, getKnowledgeNode, getKnowledgeNodeByKindAndSlug, getKnowledgeSchedule, getKnowledgeSource, getKnowledgeSourceByCanonicalUri, getKnowledgeStoreStatus, getKnowledgeUsageRecord, listKnowledgeConsolidationCandidates, listKnowledgeConsolidationReports, listKnowledgeEdges, listKnowledgeExtractions, listKnowledgeExtractionsForSources, listKnowledgeExtractionsInSpace, listKnowledgeIssues, listKnowledgeIssuesInSpace, listKnowledgeJobRuns, listKnowledgeRefinementTasks, listKnowledgeNodes, listKnowledgeNodesInSpace, listKnowledgeSchedules, listKnowledgeSources, listKnowledgeSourcesInSpace, listKnowledgeUsageRecords, } from './store-read.js';
|
|
11
11
|
import { loadKnowledgeStoreSnapshot } from './store-load.js';
|
|
12
|
+
import { DEFAULT_KNOWLEDGE_SPACE_ID, ensureKnowledgeSpaceMetadata, getExplicitKnowledgeSpaceId, getKnowledgeSpaceId, } from './spaces.js';
|
|
12
13
|
export class KnowledgeStore {
|
|
13
14
|
sqlite;
|
|
14
15
|
dbPath;
|
|
@@ -186,6 +187,10 @@ export class KnowledgeStore {
|
|
|
186
187
|
const _contentHash = stableText(input.contentHash);
|
|
187
188
|
const _crawlError = stableText(input.crawlError);
|
|
188
189
|
const _sessionId = stableText(input.sessionId);
|
|
190
|
+
const sourceMetadata = ensureKnowledgeSpaceMetadata({
|
|
191
|
+
...(existing?.metadata ?? {}),
|
|
192
|
+
...(input.metadata ?? {}),
|
|
193
|
+
});
|
|
189
194
|
const record = {
|
|
190
195
|
id: existing?.id ?? input.id ?? `source-${randomUUID().slice(0, 8)}`,
|
|
191
196
|
connectorId: input.connectorId,
|
|
@@ -203,10 +208,7 @@ export class KnowledgeStore {
|
|
|
203
208
|
...(typeof input.lastCrawledAt === 'number' ? { lastCrawledAt: input.lastCrawledAt } : existing?.lastCrawledAt ? { lastCrawledAt: existing.lastCrawledAt } : {}),
|
|
204
209
|
...opt('crawlError', _crawlError, existing?.crawlError && input.status !== 'indexed' ? existing.crawlError : undefined),
|
|
205
210
|
...opt('sessionId', _sessionId, existing?.sessionId),
|
|
206
|
-
metadata:
|
|
207
|
-
...(existing?.metadata ?? {}),
|
|
208
|
-
...(input.metadata ?? {}),
|
|
209
|
-
},
|
|
211
|
+
metadata: sourceMetadata,
|
|
210
212
|
createdAt: existing?.createdAt ?? now,
|
|
211
213
|
updatedAt: now,
|
|
212
214
|
};
|
|
@@ -320,6 +322,21 @@ export class KnowledgeStore {
|
|
|
320
322
|
const now = nowMs();
|
|
321
323
|
const _summary = stableText(input.summary);
|
|
322
324
|
const _sourceId = stableText(input.sourceId);
|
|
325
|
+
const mergedNodeMetadata = {
|
|
326
|
+
...(existing?.metadata ?? {}),
|
|
327
|
+
...(input.metadata ?? {}),
|
|
328
|
+
};
|
|
329
|
+
const explicitNodeSpaceId = getExplicitKnowledgeSpaceId({ metadata: mergedNodeMetadata });
|
|
330
|
+
const relatedNodeSpaceId = inferRecordReferenceSpaceId({
|
|
331
|
+
sourceId: _sourceId ?? existing?.sourceId,
|
|
332
|
+
metadata: mergedNodeMetadata,
|
|
333
|
+
sources: this.sources,
|
|
334
|
+
nodes: this.nodes,
|
|
335
|
+
});
|
|
336
|
+
const nodeSpaceId = preferRelatedNonDefaultSpace(explicitNodeSpaceId, relatedNodeSpaceId);
|
|
337
|
+
const nodeMetadata = nodeSpaceId
|
|
338
|
+
? ensureKnowledgeSpaceMetadata(mergedNodeMetadata, nodeSpaceId)
|
|
339
|
+
: mergedNodeMetadata;
|
|
323
340
|
const record = {
|
|
324
341
|
id: existing?.id ?? input.id ?? `node-${randomUUID().slice(0, 8)}`,
|
|
325
342
|
kind: input.kind,
|
|
@@ -330,10 +347,7 @@ export class KnowledgeStore {
|
|
|
330
347
|
status: input.status ?? existing?.status ?? 'active',
|
|
331
348
|
confidence: Math.max(0, Math.min(100, input.confidence ?? existing?.confidence ?? 70)),
|
|
332
349
|
...(_sourceId !== null ? { sourceId: _sourceId } : existing?.sourceId ? { sourceId: existing.sourceId } : {}),
|
|
333
|
-
metadata:
|
|
334
|
-
...(existing?.metadata ?? {}),
|
|
335
|
-
...(input.metadata ?? {}),
|
|
336
|
-
},
|
|
350
|
+
metadata: nodeMetadata,
|
|
337
351
|
createdAt: existing?.createdAt ?? now,
|
|
338
352
|
updatedAt: now,
|
|
339
353
|
};
|
|
@@ -516,6 +530,30 @@ export class KnowledgeStore {
|
|
|
516
530
|
const now = nowMs();
|
|
517
531
|
const _sourceId = stableText(input.sourceId);
|
|
518
532
|
const _nodeId = stableText(input.nodeId);
|
|
533
|
+
const mergedIssueMetadata = {
|
|
534
|
+
...(existing?.metadata ?? {}),
|
|
535
|
+
...(input.metadata ?? {}),
|
|
536
|
+
};
|
|
537
|
+
const issueSource = _sourceId !== null
|
|
538
|
+
? this.sources.get(_sourceId)
|
|
539
|
+
: existing?.sourceId
|
|
540
|
+
? this.sources.get(existing.sourceId)
|
|
541
|
+
: null;
|
|
542
|
+
const issueNode = _nodeId !== null
|
|
543
|
+
? this.nodes.get(_nodeId)
|
|
544
|
+
: existing?.nodeId
|
|
545
|
+
? this.nodes.get(existing.nodeId)
|
|
546
|
+
: null;
|
|
547
|
+
const issueSpaceId = preferRelatedNonDefaultSpace(getExplicitKnowledgeSpaceId({ metadata: mergedIssueMetadata }), inferRecordReferenceSpaceId({
|
|
548
|
+
sourceId: _sourceId ?? existing?.sourceId,
|
|
549
|
+
nodeId: _nodeId ?? existing?.nodeId,
|
|
550
|
+
metadata: mergedIssueMetadata,
|
|
551
|
+
sources: this.sources,
|
|
552
|
+
nodes: this.nodes,
|
|
553
|
+
}) ?? getExplicitKnowledgeSpaceId(issueSource) ?? getExplicitKnowledgeSpaceId(issueNode));
|
|
554
|
+
const issueMetadata = issueSpaceId
|
|
555
|
+
? ensureKnowledgeSpaceMetadata(mergedIssueMetadata, issueSpaceId)
|
|
556
|
+
: mergedIssueMetadata;
|
|
519
557
|
const record = {
|
|
520
558
|
id: existing?.id ?? input.id ?? `issue-${randomUUID().slice(0, 8)}`,
|
|
521
559
|
severity: input.severity,
|
|
@@ -524,10 +562,7 @@ export class KnowledgeStore {
|
|
|
524
562
|
status: input.status ?? issueStatusForUpsert(existing, input),
|
|
525
563
|
...(_sourceId !== null ? { sourceId: _sourceId } : {}),
|
|
526
564
|
...(_nodeId !== null ? { nodeId: _nodeId } : {}),
|
|
527
|
-
metadata:
|
|
528
|
-
...(existing?.metadata ?? {}),
|
|
529
|
-
...(input.metadata ?? {}),
|
|
530
|
-
},
|
|
565
|
+
metadata: issueMetadata,
|
|
531
566
|
createdAt: existing?.createdAt ?? now,
|
|
532
567
|
updatedAt: now,
|
|
533
568
|
};
|
|
@@ -551,6 +586,27 @@ export class KnowledgeStore {
|
|
|
551
586
|
await this.sqlite.save();
|
|
552
587
|
return record;
|
|
553
588
|
}
|
|
589
|
+
async replaceIssueRecord(record) {
|
|
590
|
+
await this.init();
|
|
591
|
+
this.sqlite.run(`
|
|
592
|
+
INSERT OR REPLACE INTO knowledge_issues (
|
|
593
|
+
id, severity, code, message, status, source_id, node_id, metadata, created_at, updated_at
|
|
594
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
595
|
+
`, [
|
|
596
|
+
record.id,
|
|
597
|
+
record.severity,
|
|
598
|
+
record.code,
|
|
599
|
+
record.message,
|
|
600
|
+
record.status,
|
|
601
|
+
record.sourceId ?? null,
|
|
602
|
+
record.nodeId ?? null,
|
|
603
|
+
JSON.stringify(record.metadata),
|
|
604
|
+
record.createdAt,
|
|
605
|
+
record.updatedAt,
|
|
606
|
+
]);
|
|
607
|
+
this.issues.set(record.id, record);
|
|
608
|
+
await this.sqlite.save();
|
|
609
|
+
}
|
|
554
610
|
async upsertExtraction(input) {
|
|
555
611
|
await this.init();
|
|
556
612
|
const existing = input.id
|
|
@@ -561,6 +617,14 @@ export class KnowledgeStore {
|
|
|
561
617
|
const _title = stableText(input.title);
|
|
562
618
|
const _summary = stableText(input.summary);
|
|
563
619
|
const _excerpt = stableText(input.excerpt);
|
|
620
|
+
const mergedExtractionMetadata = {
|
|
621
|
+
...(existing?.metadata ?? {}),
|
|
622
|
+
...(input.metadata ?? {}),
|
|
623
|
+
};
|
|
624
|
+
const extractionSource = this.sources.get(input.sourceId);
|
|
625
|
+
const extractionMetadata = getExplicitKnowledgeSpaceId({ metadata: mergedExtractionMetadata }) || !extractionSource
|
|
626
|
+
? mergedExtractionMetadata
|
|
627
|
+
: ensureKnowledgeSpaceMetadata(mergedExtractionMetadata, getKnowledgeSpaceId(extractionSource));
|
|
564
628
|
const record = {
|
|
565
629
|
id: existing?.id ?? input.id ?? `extract-${randomUUID().slice(0, 8)}`,
|
|
566
630
|
sourceId: input.sourceId,
|
|
@@ -577,10 +641,7 @@ export class KnowledgeStore {
|
|
|
577
641
|
...(existing?.structure ?? {}),
|
|
578
642
|
...(input.structure ?? {}),
|
|
579
643
|
},
|
|
580
|
-
metadata:
|
|
581
|
-
...(existing?.metadata ?? {}),
|
|
582
|
-
...(input.metadata ?? {}),
|
|
583
|
-
},
|
|
644
|
+
metadata: extractionMetadata,
|
|
584
645
|
createdAt: existing?.createdAt ?? now,
|
|
585
646
|
updatedAt: now,
|
|
586
647
|
};
|
|
@@ -867,3 +928,45 @@ export class KnowledgeStore {
|
|
|
867
928
|
this.ready = true;
|
|
868
929
|
}
|
|
869
930
|
}
|
|
931
|
+
function inferRecordReferenceSpaceId(input) {
|
|
932
|
+
const spaceIds = new Set();
|
|
933
|
+
for (const sourceId of uniqueReferenceIds([
|
|
934
|
+
input.sourceId ?? undefined,
|
|
935
|
+
readMetadataString(input.metadata.sourceId),
|
|
936
|
+
...readMetadataStringArray(input.metadata.sourceIds),
|
|
937
|
+
])) {
|
|
938
|
+
const spaceId = getExplicitKnowledgeSpaceId(input.sources.get(sourceId));
|
|
939
|
+
if (spaceId)
|
|
940
|
+
spaceIds.add(spaceId);
|
|
941
|
+
}
|
|
942
|
+
for (const nodeId of uniqueReferenceIds([
|
|
943
|
+
input.nodeId ?? undefined,
|
|
944
|
+
readMetadataString(input.metadata.nodeId),
|
|
945
|
+
...readMetadataStringArray(input.metadata.linkedObjectIds),
|
|
946
|
+
...readMetadataStringArray(input.metadata.subjectIds),
|
|
947
|
+
])) {
|
|
948
|
+
const spaceId = getExplicitKnowledgeSpaceId(input.nodes.get(nodeId));
|
|
949
|
+
if (spaceId)
|
|
950
|
+
spaceIds.add(spaceId);
|
|
951
|
+
}
|
|
952
|
+
return [...spaceIds].find((spaceId) => spaceId !== DEFAULT_KNOWLEDGE_SPACE_ID) ?? [...spaceIds][0] ?? null;
|
|
953
|
+
}
|
|
954
|
+
function preferRelatedNonDefaultSpace(explicitSpaceId, relatedSpaceId) {
|
|
955
|
+
if (relatedSpaceId && relatedSpaceId !== DEFAULT_KNOWLEDGE_SPACE_ID && explicitSpaceId === DEFAULT_KNOWLEDGE_SPACE_ID) {
|
|
956
|
+
return relatedSpaceId;
|
|
957
|
+
}
|
|
958
|
+
return explicitSpaceId ?? relatedSpaceId;
|
|
959
|
+
}
|
|
960
|
+
function readMetadataString(value) {
|
|
961
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
962
|
+
}
|
|
963
|
+
function readMetadataStringArray(value) {
|
|
964
|
+
if (typeof value === 'string' && value.trim().length > 0)
|
|
965
|
+
return [value.trim()];
|
|
966
|
+
if (!Array.isArray(value))
|
|
967
|
+
return [];
|
|
968
|
+
return value.flatMap((entry) => readMetadataStringArray(entry));
|
|
969
|
+
}
|
|
970
|
+
function uniqueReferenceIds(values) {
|
|
971
|
+
return [...new Set(values.filter((entry) => Boolean(entry && entry.trim().length > 0)))];
|
|
972
|
+
}
|
package/dist/platform/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.33.
|
|
3
|
+
let version = '0.33.13';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-sdk",
|
|
3
|
-
"version": "0.33.
|
|
3
|
+
"version": "0.33.13",
|
|
4
4
|
"description": "TypeScript SDK for building GoodVibes operator, peer, web, mobile, and daemon-connected apps with typed contracts, auth, realtime events, and transport layers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goodvibes",
|
|
@@ -449,14 +449,14 @@
|
|
|
449
449
|
"sideEffects": false,
|
|
450
450
|
"type": "module",
|
|
451
451
|
"dependencies": {
|
|
452
|
-
"@pellux/goodvibes-contracts": "0.33.
|
|
453
|
-
"@pellux/goodvibes-daemon-sdk": "0.33.
|
|
454
|
-
"@pellux/goodvibes-errors": "0.33.
|
|
455
|
-
"@pellux/goodvibes-operator-sdk": "0.33.
|
|
456
|
-
"@pellux/goodvibes-peer-sdk": "0.33.
|
|
457
|
-
"@pellux/goodvibes-transport-core": "0.33.
|
|
458
|
-
"@pellux/goodvibes-transport-http": "0.33.
|
|
459
|
-
"@pellux/goodvibes-transport-realtime": "0.33.
|
|
452
|
+
"@pellux/goodvibes-contracts": "0.33.13",
|
|
453
|
+
"@pellux/goodvibes-daemon-sdk": "0.33.13",
|
|
454
|
+
"@pellux/goodvibes-errors": "0.33.13",
|
|
455
|
+
"@pellux/goodvibes-operator-sdk": "0.33.13",
|
|
456
|
+
"@pellux/goodvibes-peer-sdk": "0.33.13",
|
|
457
|
+
"@pellux/goodvibes-transport-core": "0.33.13",
|
|
458
|
+
"@pellux/goodvibes-transport-http": "0.33.13",
|
|
459
|
+
"@pellux/goodvibes-transport-realtime": "0.33.13"
|
|
460
460
|
},
|
|
461
461
|
"optionalDependencies": {
|
|
462
462
|
"@agentclientprotocol/sdk": "^0.21.0",
|