@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.
Files changed (29) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +1 -1
  2. package/dist/platform/knowledge/ingest-compile.d.ts.map +1 -1
  3. package/dist/platform/knowledge/ingest-compile.js +24 -12
  4. package/dist/platform/knowledge/map-filters.d.ts.map +1 -1
  5. package/dist/platform/knowledge/map-filters.js +7 -2
  6. package/dist/platform/knowledge/packet.d.ts.map +1 -1
  7. package/dist/platform/knowledge/packet.js +13 -3
  8. package/dist/platform/knowledge/projections.d.ts +2 -0
  9. package/dist/platform/knowledge/projections.d.ts.map +1 -1
  10. package/dist/platform/knowledge/projections.js +25 -12
  11. package/dist/platform/knowledge/scope-records.d.ts +12 -0
  12. package/dist/platform/knowledge/scope-records.d.ts.map +1 -0
  13. package/dist/platform/knowledge/scope-records.js +94 -0
  14. package/dist/platform/knowledge/semantic/answer-evidence.d.ts.map +1 -1
  15. package/dist/platform/knowledge/semantic/answer-evidence.js +6 -3
  16. package/dist/platform/knowledge/semantic/answer-space.d.ts.map +1 -1
  17. package/dist/platform/knowledge/semantic/answer-space.js +15 -4
  18. package/dist/platform/knowledge/service.d.ts +3 -0
  19. package/dist/platform/knowledge/service.d.ts.map +1 -1
  20. package/dist/platform/knowledge/service.js +41 -11
  21. package/dist/platform/knowledge/spaces.d.ts +2 -0
  22. package/dist/platform/knowledge/spaces.d.ts.map +1 -1
  23. package/dist/platform/knowledge/spaces.js +14 -3
  24. package/dist/platform/knowledge/store-read.js +5 -5
  25. package/dist/platform/knowledge/store.d.ts +1 -0
  26. package/dist/platform/knowledge/store.d.ts.map +1 -1
  27. package/dist/platform/knowledge/store.js +119 -16
  28. package/dist/platform/version.js +1 -1
  29. package/package.json +9 -9
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.33.11"
6
+ "version": "0.33.13"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -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;AAMpB,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;AAkKD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAwGf"}
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":"AAMA,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,CA8EzB;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
+ {"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) => isInKnowledgeSpaceScope(node, filters))
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) => isInKnowledgeSpaceScope(issue, filters))
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":"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"}
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) => isInKnowledgeSpaceScope(node, scope)).map((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 (!isInKnowledgeSpaceScope(node, options))
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 && isInKnowledgeSpaceScope(node, scope))
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') {
@@ -55,5 +55,7 @@ export declare class KnowledgeProjectionService {
55
55
  private scopedNodes;
56
56
  private scopedIssues;
57
57
  private scopedExtractions;
58
+ private nodeInScope;
59
+ private issueInScope;
58
60
  }
59
61
  //# sourceMappingURL=projections.d.ts.map
@@ -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;AAWrB,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;CAK1B"}
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 && isInKnowledgeSpaceScope(node, scope) ? this.createRollupTarget(node) : null;
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 && isInKnowledgeSpaceScope(node, scope) ? this.createNodeTarget(node) : null;
116
+ return node && this.nodeInScope(node, scope) ? this.createNodeTarget(node) : null;
116
117
  }
117
118
  const issue = this.store.getIssue(id);
118
- return issue && isInKnowledgeSpaceScope(issue, scope) ? this.createIssueTarget(issue) : null;
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 && isInKnowledgeSpaceScope(node, scope) ? `${this.linkToTarget(this.createNodeTarget(node))} via \`${edge.relation}\`` : `node:${edge.fromId}`;
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) => isInKnowledgeSpaceScope(node, scope)).map((node) => this.linkToTarget(this.createNodeTarget(node), `${node.title} (${node.kind})`))),
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 || !isInKnowledgeSpaceScope(node, scope))
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 || !isInKnowledgeSpaceScope(issue, scope))
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 || !isInKnowledgeSpaceScope(node, scope))
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 && isInKnowledgeSpaceScope(node, scope));
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 && isInKnowledgeSpaceScope(issue, scope));
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) => isInKnowledgeSpaceScope(node, scope))
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) => isInKnowledgeSpaceScope(issue, scope))
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;AAQrB,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
+ {"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 { getKnowledgeSpaceId, isHomeAssistantKnowledgeSpace, isInKnowledgeSpace, normalizeKnowledgeSpaceId, } from '../spaces.js';
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 recordSpaceId = normalizeKnowledgeSpaceId(getKnowledgeSpaceId(record));
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 isInKnowledgeSpace(record, normalized);
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":"AACA,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,CAWR"}
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 { getKnowledgeSpaceId, isHomeAssistantKnowledgeSpace, normalizeKnowledgeSpaceId } from '../spaces.js';
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 spaceId = normalizeKnowledgeSpaceId(getKnowledgeSpaceId(record));
11
- if (isHomeAssistantKnowledgeSpace(spaceId))
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 requestedSpaceId;
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.store.listSources(limit);
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.store.listNodes(limit);
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 (!isInKnowledgeSpaceScope(node, input))
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.store.listIssues(limit);
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 (!isInKnowledgeSpaceScope(issue, input))
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 || !isInKnowledgeSpaceScope(primary, scope))
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) => isInKnowledgeSpaceScope(node, scope)),
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
- return isInKnowledgeSpaceScope(this.store.getNode(id), scope);
298
- if (kind === 'issue')
299
- return isInKnowledgeSpaceScope(this.store.getIssue(id), scope);
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,CAOpI;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,CAGT;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOrE"}
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
- return normalizeKnowledgeSpaceId(readString(metadata.knowledgeSpaceId)
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
- return scopedSpaceId === null || getKnowledgeSpaceId(input) === scopedSpaceId;
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 { getKnowledgeSpaceId, normalizeKnowledgeSpaceId } from './spaces.js';
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) => getKnowledgeSpaceId(node) === normalizedSpaceId)
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) => getKnowledgeSpaceId(source) === normalizedSpaceId)
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) => getKnowledgeSpaceId(issue) === normalizedSpaceId)
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) => getKnowledgeSpaceId(extraction) === normalizedSpaceId)
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":"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"}
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
+ }
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.33.11';
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.11",
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.11",
453
- "@pellux/goodvibes-daemon-sdk": "0.33.11",
454
- "@pellux/goodvibes-errors": "0.33.11",
455
- "@pellux/goodvibes-operator-sdk": "0.33.11",
456
- "@pellux/goodvibes-peer-sdk": "0.33.11",
457
- "@pellux/goodvibes-transport-core": "0.33.11",
458
- "@pellux/goodvibes-transport-http": "0.33.11",
459
- "@pellux/goodvibes-transport-realtime": "0.33.11"
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",