@pellux/goodvibes-sdk 0.33.10 → 0.33.11

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 (40) hide show
  1. package/dist/browser-knowledge.d.ts +1 -1
  2. package/dist/browser-knowledge.d.ts.map +1 -1
  3. package/dist/browser-knowledge.js +1 -1
  4. package/dist/contracts/artifacts/operator-contract.json +75 -2
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/platform/control-plane/method-catalog-knowledge.d.ts.map +1 -1
  8. package/dist/platform/control-plane/method-catalog-knowledge.js +16 -7
  9. package/dist/platform/control-plane/routes/operator.js +2 -2
  10. package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
  11. package/dist/platform/daemon/http/router-route-contexts.js +8 -8
  12. package/dist/platform/knowledge/graphql-schema.d.ts +1 -1
  13. package/dist/platform/knowledge/graphql-schema.d.ts.map +1 -1
  14. package/dist/platform/knowledge/graphql-schema.js +13 -11
  15. package/dist/platform/knowledge/graphql.d.ts.map +1 -1
  16. package/dist/platform/knowledge/graphql.js +51 -25
  17. package/dist/platform/knowledge/index.d.ts +1 -1
  18. package/dist/platform/knowledge/index.d.ts.map +1 -1
  19. package/dist/platform/knowledge/map-filters.d.ts +3 -0
  20. package/dist/platform/knowledge/map-filters.d.ts.map +1 -1
  21. package/dist/platform/knowledge/map-filters.js +20 -0
  22. package/dist/platform/knowledge/map.d.ts +2 -0
  23. package/dist/platform/knowledge/map.d.ts.map +1 -1
  24. package/dist/platform/knowledge/map.js +1 -6
  25. package/dist/platform/knowledge/packet.d.ts +6 -5
  26. package/dist/platform/knowledge/packet.d.ts.map +1 -1
  27. package/dist/platform/knowledge/packet.js +13 -8
  28. package/dist/platform/knowledge/projections.d.ts +12 -1
  29. package/dist/platform/knowledge/projections.d.ts.map +1 -1
  30. package/dist/platform/knowledge/projections.js +153 -91
  31. package/dist/platform/knowledge/service.d.ts +27 -7
  32. package/dist/platform/knowledge/service.d.ts.map +1 -1
  33. package/dist/platform/knowledge/service.js +66 -6
  34. package/dist/platform/knowledge/spaces.d.ts +6 -0
  35. package/dist/platform/knowledge/spaces.d.ts.map +1 -1
  36. package/dist/platform/knowledge/spaces.js +9 -0
  37. package/dist/platform/knowledge/types.d.ts +2 -0
  38. package/dist/platform/knowledge/types.d.ts.map +1 -1
  39. package/dist/platform/version.js +1 -1
  40. package/package.json +9 -9
@@ -1,6 +1,5 @@
1
1
  import { GraphQLError, buildSchema, graphql, parse, printSchema } from 'graphql';
2
2
  import { KNOWLEDGE_GRAPHQL_SDL, clampInt, clampOffset, installJsonScalar, mapJob, mapJobRun, mapPacket, mapProjectionBundle, mapProjectionTarget, pickOperation, toJobMode, toPacketDetail, toProjectionKind, } from './graphql-schema.js';
3
- import { isInKnowledgeSpace } from './spaces.js';
4
3
  export function inspectKnowledgeGraphqlAccess(source, operationName) {
5
4
  const document = parse(source);
6
5
  const operation = pickOperation(document, operationName);
@@ -49,16 +48,19 @@ export class KnowledgeGraphqlService {
49
48
  }
50
49
  createRootValue() {
51
50
  return {
52
- status: async () => this.service.getStatus(),
53
- sources: ({ limit, knowledgeSpaceId }) => (this.service.listSources(knowledgeSpaceId ? 10_000 : clampInt(limit, 100))
54
- .filter((source) => !knowledgeSpaceId || isInKnowledgeSpace(source, knowledgeSpaceId))
55
- .slice(0, clampInt(limit, 100))),
56
- nodes: ({ limit, knowledgeSpaceId }) => (this.service.listNodes(knowledgeSpaceId ? 10_000 : clampInt(limit, 100))
57
- .filter((node) => !knowledgeSpaceId || isInKnowledgeSpace(node, knowledgeSpaceId))
58
- .slice(0, clampInt(limit, 100))),
59
- issues: ({ limit, knowledgeSpaceId }) => (this.service.listIssues(knowledgeSpaceId ? 10_000 : clampInt(limit, 100))
60
- .filter((issue) => !knowledgeSpaceId || isInKnowledgeSpace(issue, knowledgeSpaceId))
61
- .slice(0, clampInt(limit, 100))),
51
+ status: async (args) => this.service.getStatus(graphqlScope(args)),
52
+ sources: (args) => (this.service.querySources({
53
+ limit: clampInt(args.limit, 100),
54
+ ...graphqlScope(args),
55
+ }).items),
56
+ nodes: (args) => (this.service.queryNodes({
57
+ limit: clampInt(args.limit, 100),
58
+ ...graphqlScope(args),
59
+ }).items),
60
+ issues: (args) => (this.service.queryIssues({
61
+ limit: clampInt(args.limit, 100),
62
+ ...graphqlScope(args),
63
+ }).items),
62
64
  source: ({ id }) => this.service.listSources(Number.MAX_SAFE_INTEGER).find((source) => source.id === id) ?? null,
63
65
  node: ({ id }) => this.service.listNodes(Number.MAX_SAFE_INTEGER).find((node) => node.id === id) ?? null,
64
66
  issue: ({ id }) => this.service.listIssues(Number.MAX_SAFE_INTEGER).find((issue) => issue.id === id) ?? null,
@@ -67,6 +69,7 @@ export class KnowledgeGraphqlService {
67
69
  sourcesConnection: (args) => this.service.querySources({
68
70
  limit: clampInt(args.limit, 100),
69
71
  offset: clampOffset(args.offset),
72
+ ...graphqlScope(args),
70
73
  status: args.status,
71
74
  connectorId: args.connectorId,
72
75
  sourceType: args.sourceType,
@@ -76,6 +79,7 @@ export class KnowledgeGraphqlService {
76
79
  nodesConnection: (args) => this.service.queryNodes({
77
80
  limit: clampInt(args.limit, 100),
78
81
  offset: clampOffset(args.offset),
82
+ ...graphqlScope(args),
79
83
  kind: args.kind,
80
84
  status: args.status,
81
85
  query: args.query,
@@ -83,14 +87,14 @@ export class KnowledgeGraphqlService {
83
87
  issuesConnection: (args) => this.service.queryIssues({
84
88
  limit: clampInt(args.limit, 100),
85
89
  offset: clampOffset(args.offset),
90
+ ...graphqlScope(args),
86
91
  severity: args.severity,
87
92
  status: args.status,
88
93
  code: args.code,
89
94
  query: args.query,
90
95
  }),
91
- extractions: ({ limit, sourceId, knowledgeSpaceId }) => (this.service.listExtractions(clampInt(limit, 100), sourceId)
92
- .filter((extraction) => !knowledgeSpaceId || isInKnowledgeSpace(extraction, knowledgeSpaceId))
93
- .slice(0, clampInt(limit, 100))),
96
+ extractions: (args) => (this.service.listExtractions(clampInt(args.limit, 100), args.sourceId, graphqlScope(args))
97
+ .slice(0, clampInt(args.limit, 100))),
94
98
  sourceExtraction: ({ sourceId }) => this.service.getSourceExtraction(sourceId),
95
99
  neighbors: ({ kind, id, relation, limit }) => {
96
100
  if (kind !== 'source' && kind !== 'node') {
@@ -98,21 +102,25 @@ export class KnowledgeGraphqlService {
98
102
  }
99
103
  return this.service.getNeighbors(kind, id, { relation, limit: clampInt(limit, 20) });
100
104
  },
101
- search: ({ query, limit, knowledgeSpaceId }) => (this.service.search(query, knowledgeSpaceId ? 10_000 : clampInt(limit, 10))
102
- .filter((result) => !knowledgeSpaceId || isInKnowledgeSpace(result.source ?? result.node, knowledgeSpaceId))
103
- .slice(0, clampInt(limit, 10))),
104
- packet: async ({ task, writeScope, limit, detail, budgetLimit }) => mapPacket(await this.service.buildPacket(task, writeScope ?? [], clampInt(limit, 6), {
105
- detail: toPacketDetail(detail),
106
- ...(typeof budgetLimit === 'number' ? { budgetLimit } : {}),
105
+ search: (args) => (this.service.searchScoped({
106
+ query: args.query,
107
+ limit: clampInt(args.limit, 10),
108
+ ...graphqlScope(args),
109
+ })),
110
+ packet: async (args) => mapPacket(await this.service.buildPacket(args.task, args.writeScope ?? [], clampInt(args.limit, 6), {
111
+ detail: toPacketDetail(args.detail),
112
+ ...(typeof args.budgetLimit === 'number' ? { budgetLimit: args.budgetLimit } : {}),
113
+ ...graphqlScope(args),
107
114
  })),
108
115
  connectors: () => this.service.listConnectors(),
109
116
  connector: ({ id }) => this.service.getConnector(id),
110
117
  connectorDoctor: ({ id }) => this.service.doctorConnector(id),
111
- projectionTargets: async ({ limit }) => (await this.service.listProjectionTargets(clampInt(limit, 25))).map((target) => mapProjectionTarget(target)),
112
- projection: async ({ kind, id, limit }) => mapProjectionBundle(await this.service.renderProjection({
113
- kind: toProjectionKind(kind),
114
- id,
115
- limit: clampInt(limit, 12),
118
+ projectionTargets: async (args) => (await this.service.listProjectionTargets(clampInt(args.limit, 25), graphqlScope(args))).map((target) => mapProjectionTarget(target)),
119
+ projection: async (args) => mapProjectionBundle(await this.service.renderProjection({
120
+ kind: toProjectionKind(args.kind),
121
+ id: args.id,
122
+ limit: clampInt(args.limit, 12),
123
+ ...graphqlScope(args),
116
124
  })),
117
125
  jobs: () => this.service.listJobs().map((job) => mapJob(job)),
118
126
  job: ({ id }) => {
@@ -222,6 +230,15 @@ export class KnowledgeGraphqlService {
222
230
  assertWriteAccess(context);
223
231
  return this.service.setScheduleEnabled(args.id, args.enabled);
224
232
  },
233
+ renderProjection: async (args, context) => {
234
+ assertWriteAccess(context);
235
+ return mapProjectionBundle(await this.service.renderProjection({
236
+ kind: toProjectionKind(args.kind),
237
+ id: args.id,
238
+ limit: clampInt(args.limit, 12),
239
+ ...graphqlScope(args),
240
+ }));
241
+ },
225
242
  materializeProjection: async (args, context) => {
226
243
  assertWriteAccess(context);
227
244
  const materialized = await this.service.materializeProjection({
@@ -229,6 +246,7 @@ export class KnowledgeGraphqlService {
229
246
  id: args.id,
230
247
  limit: clampInt(args.limit, 12),
231
248
  filename: args.filename,
249
+ ...graphqlScope(args),
232
250
  });
233
251
  return {
234
252
  ...materialized,
@@ -238,6 +256,14 @@ export class KnowledgeGraphqlService {
238
256
  };
239
257
  }
240
258
  }
259
+ function graphqlScope(input = {}) {
260
+ return {
261
+ ...(typeof input.knowledgeSpaceId === 'string' && input.knowledgeSpaceId.trim()
262
+ ? { knowledgeSpaceId: input.knowledgeSpaceId }
263
+ : {}),
264
+ ...(input.includeAllSpaces === true ? { includeAllSpaces: true } : {}),
265
+ };
266
+ }
241
267
  export function getKnowledgeGraphqlSchemaText() {
242
268
  return KnowledgeGraphqlService.schemaSdl;
243
269
  }
@@ -8,7 +8,7 @@ export { collectBrowserKnowledge, discoverBrowserKnowledgeProfiles, ingestBrowse
8
8
  export { KnowledgeGraphqlService, getKnowledgeGraphqlSchemaText, inspectKnowledgeGraphqlAccess } from './graphql.js';
9
9
  export type { KnowledgeGraphqlAccessProfile, KnowledgeGraphqlExecuteInput } from './graphql.js';
10
10
  export { DEFAULT_KNOWLEDGE_SPACE_ID, HOME_ASSISTANT_KNOWLEDGE_SPACE_PREFIX, PROJECT_KNOWLEDGE_SPACE_PREFIX, getKnowledgeSpaceId, homeAssistantKnowledgeSpaceId, isHomeAssistantKnowledgeSpace, isInKnowledgeSpace, isProjectKnowledgeSpace, knowledgeSpaceMetadata, normalizeProjectId, normalizeHomeAssistantInstallationId, normalizeKnowledgeSpaceId, projectKnowledgeSpaceId, withKnowledgeSpace, } from './spaces.js';
11
- export type { KnowledgeSpaceId } from './spaces.js';
11
+ export type { KnowledgeSpaceId, KnowledgeSpaceScopeInput } from './spaces.js';
12
12
  export { buildGeneratedKnowledgePageGraph, listGeneratedKnowledgePages, } from './generated-pages.js';
13
13
  export type { GeneratedKnowledgePageEntry, GeneratedKnowledgePageGraph, GeneratedKnowledgePageGraphNeighbor, GeneratedKnowledgePageGraphNode, GeneratedKnowledgePageListOptions, GeneratedKnowledgePageListResult, GeneratedKnowledgeRelatedPage, } from './generated-pages.js';
14
14
  export { generatedKnowledgeCanonicalUri, generatedKnowledgeSourceId, isGeneratedKnowledgeSource, materializeGeneratedKnowledgeProjection, } from './generated-projections.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/index.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,14 @@ export declare function buildKnowledgeMapFacets(state: KnowledgeMapFilterState):
14
14
  export declare function normalizeKnowledgeMapFilters(options?: KnowledgeMapFilterOptions): Required<Pick<KnowledgeMapFilterInput, 'ids' | 'linkedToIds' | 'nodeKinds' | 'sourceTypes' | 'sourceStatuses' | 'nodeStatuses' | 'issueCodes' | 'issueStatuses' | 'issueSeverities' | 'edgeRelations' | 'tags'>> & {
15
15
  readonly query?: string | undefined;
16
16
  readonly minConfidence?: number | undefined;
17
+ readonly knowledgeSpaceId?: string | undefined;
18
+ readonly includeAllSpaces?: boolean | undefined;
17
19
  readonly recordKinds?: ReadonlySet<'source' | 'node' | 'issue'> | undefined;
18
20
  };
19
21
  export declare function normalizeStringArray(value: unknown): readonly string[];
20
22
  export declare function readString(value: unknown): string | undefined;
21
23
  export declare function readNumber(value: unknown): number | undefined;
24
+ export declare function readBoolean(value: unknown): boolean | undefined;
22
25
  export declare function countFacet(values: readonly unknown[]): readonly KnowledgeMapFacetValue[];
23
26
  export declare function readTags(metadata: Record<string, unknown>): readonly string[];
24
27
  //# sourceMappingURL=map-filters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-filters.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/map-filters.ts"],"names":[],"mappings":"AAGA,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,CA2EzB;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,WAAW,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7E,CAqBA;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,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":"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,4 +1,5 @@
1
1
  import { isGeneratedKnowledgeSource, } from './generated-projections.js';
2
+ import { isInKnowledgeSpaceScope, } from './spaces.js';
2
3
  export function applyKnowledgeMapFilters(state, options = {}) {
3
4
  const filters = normalizeKnowledgeMapFilters(options);
4
5
  const linkedIds = new Set(filters.linkedToIds);
@@ -9,6 +10,7 @@ export function applyKnowledgeMapFilters(state, options = {}) {
9
10
  ? []
10
11
  : state.sources
11
12
  .filter((source) => source.status !== 'stale')
13
+ .filter((source) => isInKnowledgeSpaceScope(source, filters))
12
14
  .filter((source) => options.includeGenerated !== false || !isGeneratedKnowledgeSource(source))
13
15
  .filter((source) => matchesSet(filters.sourceTypes, source.sourceType))
14
16
  .filter((source) => matchesSet(filters.sourceStatuses, source.status))
@@ -28,6 +30,7 @@ export function applyKnowledgeMapFilters(state, options = {}) {
28
30
  ? []
29
31
  : state.nodes
30
32
  .filter((node) => node.status !== 'stale')
33
+ .filter((node) => isInKnowledgeSpaceScope(node, filters))
31
34
  .filter((node) => matchesSet(filters.nodeKinds, node.kind))
32
35
  .filter((node) => matchesSet(filters.nodeStatuses, node.status))
33
36
  .filter((node) => filters.minConfidence === undefined || node.confidence >= filters.minConfidence)
@@ -46,6 +49,7 @@ export function applyKnowledgeMapFilters(state, options = {}) {
46
49
  ? []
47
50
  : state.issues
48
51
  .filter((issue) => (filters.issueStatuses?.length ?? 0) > 0 || issue.status === 'open')
52
+ .filter((issue) => isInKnowledgeSpaceScope(issue, filters))
49
53
  .filter((issue) => matchesSet(filters.issueCodes, issue.code))
50
54
  .filter((issue) => matchesSet(filters.issueStatuses, issue.status))
51
55
  .filter((issue) => matchesSet(filters.issueSeverities, issue.severity))
@@ -96,9 +100,13 @@ export function normalizeKnowledgeMapFilters(options = {}) {
96
100
  const recordKinds = normalizeStringArray(options.recordKinds ?? nested.recordKinds);
97
101
  const query = readString(options.query) ?? readString(nested.query);
98
102
  const minConfidence = readNumber(options.minConfidence) ?? readNumber(nested.minConfidence);
103
+ const knowledgeSpaceId = readString(options.knowledgeSpaceId) ?? readString(nested.knowledgeSpaceId);
104
+ const includeAllSpaces = readBoolean(options.includeAllSpaces) ?? readBoolean(nested.includeAllSpaces);
99
105
  return {
100
106
  ...(query ? { query } : {}),
101
107
  ...(minConfidence === undefined ? {} : { minConfidence }),
108
+ ...(knowledgeSpaceId ? { knowledgeSpaceId } : {}),
109
+ ...(includeAllSpaces === undefined ? {} : { includeAllSpaces }),
102
110
  ...(recordKinds.length > 0 ? { recordKinds: new Set(recordKinds.filter(isRecordKind)) } : {}),
103
111
  ids: normalizeStringArray(options.ids ?? nested.ids),
104
112
  linkedToIds: normalizeStringArray(options.linkedToIds ?? nested.linkedToIds),
@@ -133,6 +141,18 @@ export function readNumber(value) {
133
141
  }
134
142
  return undefined;
135
143
  }
144
+ export function readBoolean(value) {
145
+ if (typeof value === 'boolean')
146
+ return value;
147
+ if (typeof value === 'string') {
148
+ const normalized = value.trim().toLowerCase();
149
+ if (['1', 'true', 'yes', 'on'].includes(normalized))
150
+ return true;
151
+ if (['0', 'false', 'no', 'off'].includes(normalized))
152
+ return false;
153
+ }
154
+ return undefined;
155
+ }
136
156
  export function countFacet(values) {
137
157
  const counts = new Map();
138
158
  for (const value of values) {
@@ -13,6 +13,8 @@ export interface KnowledgeMapRenderOptions {
13
13
  readonly includeGenerated?: boolean | undefined;
14
14
  readonly title?: string | undefined;
15
15
  readonly spaceId?: string | undefined;
16
+ readonly knowledgeSpaceId?: string | undefined;
17
+ readonly includeAllSpaces?: boolean | undefined;
16
18
  readonly filters?: KnowledgeMapFilterInput | undefined;
17
19
  readonly query?: string | undefined;
18
20
  readonly recordKinds?: readonly ('source' | 'node' | 'issue')[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/map.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,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,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,EAC9B,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,CAsGpB"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/map.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,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,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,EAC9B,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,CAiGpB"}
@@ -92,12 +92,7 @@ export function renderKnowledgeMap(state, options = {}) {
92
92
  edgeCount: visibleEdges.length,
93
93
  totalNodeCount: filtered.sources.length + filtered.nodes.length + filtered.issues.length,
94
94
  totalEdgeCount: filteredEdges.length,
95
- facets: buildKnowledgeMapFacets({
96
- sources: state.sources,
97
- nodes: state.nodes,
98
- edges: state.edges,
99
- issues: state.issues ?? [],
100
- }),
95
+ facets: buildKnowledgeMapFacets(filtered),
101
96
  nodes: mapNodes,
102
97
  edges: visibleEdges,
103
98
  svg: renderMapSvg({ width, height, title, nodes: mapNodes, edges: visibleEdges }),
@@ -1,4 +1,5 @@
1
1
  import type { KnowledgeStore } from './store.js';
2
+ import { type KnowledgeSpaceScopeInput } from './spaces.js';
2
3
  import type { KnowledgePacket, KnowledgePacketDetail, KnowledgeSearchResult, KnowledgeUsageRecord } from './types.js';
3
4
  import type { RuntimeEventBus } from '../runtime/events/index.js';
4
5
  export interface KnowledgePacketContext {
@@ -18,21 +19,21 @@ export interface KnowledgePacketContext {
18
19
  readonly source: string;
19
20
  }) => void, sessionId?: string) => void;
20
21
  }
21
- export declare function searchKnowledge(context: KnowledgePacketContext, query: string, limit?: number): KnowledgeSearchResult[];
22
+ export declare function searchKnowledge(context: KnowledgePacketContext, query: string, limit?: number, scope?: KnowledgeSpaceScopeInput): KnowledgeSearchResult[];
22
23
  export declare function buildKnowledgePacket(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
23
24
  readonly detail?: KnowledgePacketDetail;
24
25
  readonly budgetLimit?: number;
25
- }): Promise<KnowledgePacket>;
26
+ } & KnowledgeSpaceScopeInput): Promise<KnowledgePacket>;
26
27
  export declare function buildKnowledgePacketSync(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
27
28
  readonly detail?: KnowledgePacketDetail;
28
29
  readonly budgetLimit?: number;
29
- }): KnowledgePacket | null;
30
+ } & KnowledgeSpaceScopeInput): KnowledgePacket | null;
30
31
  export declare function buildKnowledgePromptPacketSync(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
31
32
  readonly detail?: KnowledgePacketDetail;
32
33
  readonly budgetLimit?: number;
33
- }): string | null;
34
+ } & KnowledgeSpaceScopeInput): string | null;
34
35
  export declare function buildKnowledgePromptPacket(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
35
36
  readonly detail?: KnowledgePacketDetail;
36
37
  readonly budgetLimit?: number;
37
- }): Promise<string | null>;
38
+ } & KnowledgeSpaceScopeInput): Promise<string | null>;
38
39
  //# sourceMappingURL=packet.d.ts.map
@@ -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,KAAK,EACV,eAAe,EACf,qBAAqB,EAErB,qBAAqB,EAGrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAalE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;QAC3B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KACzD,KAAK,IAAI,CAAC;IACX,QAAQ,CAAC,WAAW,EAAE,CACpB,EAAE,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,EAC1H,SAAS,CAAC,EAAE,MAAM,KACf,IAAI,CAAC;CACX;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,GACT,qBAAqB,EAAE,CAyDzB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,SAAS,MAAM,EAAO,EAClC,KAAK,SAAuB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvF,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,SAAS,MAAM,EAAO,EAClC,KAAK,SAAuB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvF,eAAe,GAAG,IAAI,CAExB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,SAAS,MAAM,EAAO,EAClC,KAAK,SAAuB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvF,MAAM,GAAG,IAAI,CAGf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,SAAS,MAAM,EAAO,EAClC,KAAK,SAAuB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
1
+ {"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/packet.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
+ import { isInKnowledgeSpaceScope, } from './spaces.js';
1
2
  import { emitKnowledgePacketBuilt } from '../runtime/emitters/index.js';
2
3
  import { DEFAULT_PACKET_BUDGET, DEFAULT_PACKET_LIMIT, estimateTokens, isSourcePastRefreshWindow, renderPacket, scoreHaystack, summarizeCompact, tokenize, trimForDetail, } from './shared.js';
3
- export function searchKnowledge(context, query, limit = 10) {
4
+ export function searchKnowledge(context, query, limit = 10, scope = {}) {
4
5
  const taskTokens = tokenize(query);
5
6
  if (taskTokens.length === 0)
6
7
  return [];
7
- const sourceResults = context.store.listSources(Number.MAX_SAFE_INTEGER).map((source) => {
8
+ const sourceResults = context.store.listSources(Number.MAX_SAFE_INTEGER).filter((source) => isInKnowledgeSpaceScope(source, scope)).map((source) => {
8
9
  const extraction = context.store.getExtractionBySourceId(source.id);
9
10
  const haystack = [
10
11
  source.title ?? '',
@@ -27,7 +28,7 @@ export function searchKnowledge(context, query, limit = 10) {
27
28
  source,
28
29
  };
29
30
  });
30
- const nodeResults = context.store.listNodes(Number.MAX_SAFE_INTEGER).map((node) => {
31
+ const nodeResults = context.store.listNodes(Number.MAX_SAFE_INTEGER).filter((node) => isInKnowledgeSpaceScope(node, scope)).map((node) => {
31
32
  const haystack = [
32
33
  node.title,
33
34
  node.summary ?? '',
@@ -81,6 +82,8 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
81
82
  const usageStats = buildUsageStats(context);
82
83
  const candidates = [];
83
84
  for (const source of context.store.listSources(Number.MAX_SAFE_INTEGER)) {
85
+ if (!isInKnowledgeSpaceScope(source, options))
86
+ continue;
84
87
  const extraction = context.store.getExtractionBySourceId(source.id);
85
88
  const haystack = [
86
89
  source.title ?? '',
@@ -101,7 +104,7 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
101
104
  ? []
102
105
  : (extraction?.sections.slice(0, detail === 'detailed' ? 4 : 2) ?? []);
103
106
  const summary = trimForDetail(extraction?.summary ?? source.summary ?? source.description, detail);
104
- const relationLabels = collectRelatedLabels(context, 'source', source.id);
107
+ const relationLabels = collectRelatedLabels(context, 'source', source.id, options);
105
108
  const usageBoost = scoreUsageBoost(usageStats.get(`source:${source.id}`));
106
109
  const relationBoost = Math.min(18, relationLabels.length * 3);
107
110
  const freshnessBoost = isSourcePastRefreshWindow(source) ? -8 : 6;
@@ -126,6 +129,8 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
126
129
  candidates.push({ score: item.score, item });
127
130
  }
128
131
  for (const node of context.store.listNodes(Number.MAX_SAFE_INTEGER)) {
132
+ if (!isInKnowledgeSpaceScope(node, options))
133
+ continue;
129
134
  const haystack = [
130
135
  node.title,
131
136
  node.summary ?? '',
@@ -135,7 +140,7 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
135
140
  const scored = scoreHaystack(haystack, taskTokens, scopeTokens);
136
141
  if (scored.score <= 0)
137
142
  continue;
138
- const related = collectRelatedLabels(context, 'node', node.id);
143
+ const related = collectRelatedLabels(context, 'node', node.id, options);
139
144
  const usageBoost = scoreUsageBoost(usageStats.get(`node:${node.id}`));
140
145
  const relationBoost = Math.min(20, context.store.edgesFor('node', node.id).length * 2);
141
146
  const kindBoost = nodeKindBoost(node.kind);
@@ -202,7 +207,7 @@ function buildKnowledgePacketFromCurrentState(context, task, writeScope, limit,
202
207
  }));
203
208
  return packet;
204
209
  }
205
- function collectRelatedLabels(context, kind, id) {
210
+ function collectRelatedLabels(context, kind, id, scope) {
206
211
  const related = context.store.edgesFor(kind, id);
207
212
  const labels = [];
208
213
  for (const edge of related) {
@@ -210,12 +215,12 @@ function collectRelatedLabels(context, kind, id) {
210
215
  const otherId = edge.fromKind === kind && edge.fromId === id ? edge.toId : edge.fromId;
211
216
  if (otherKind === 'node') {
212
217
  const node = context.store.getNode(otherId);
213
- if (node)
218
+ if (node && isInKnowledgeSpaceScope(node, scope))
214
219
  labels.push(node.title);
215
220
  }
216
221
  else if (otherKind === 'source') {
217
222
  const source = context.store.getSource(otherId);
218
- if (source)
223
+ if (source && isInKnowledgeSpaceScope(source, scope))
219
224
  labels.push(source.title ?? source.canonicalUri ?? source.id);
220
225
  }
221
226
  }
@@ -1,4 +1,5 @@
1
1
  import type { ArtifactStore } from '../artifacts/index.js';
2
+ import { type KnowledgeSpaceScopeInput } from './spaces.js';
2
3
  import type { KnowledgeStore } from './store.js';
3
4
  import type { KnowledgeConnector, KnowledgeMaterializedProjection, KnowledgeProjectionBundle, KnowledgeProjectionTarget, KnowledgeProjectionTargetKind } from './types.js';
4
5
  export interface KnowledgeProjectionServiceOptions {
@@ -9,17 +10,21 @@ export declare class KnowledgeProjectionService {
9
10
  private readonly artifactStore;
10
11
  private readonly getConnectors;
11
12
  constructor(store: KnowledgeStore, artifactStore: ArtifactStore, options?: KnowledgeProjectionServiceOptions);
12
- listTargets(limit?: number): Promise<KnowledgeProjectionTarget[]>;
13
+ listTargets(limit?: number, scope?: KnowledgeSpaceScopeInput): Promise<KnowledgeProjectionTarget[]>;
13
14
  render(input: {
14
15
  readonly kind: KnowledgeProjectionTargetKind;
15
16
  readonly id?: string | undefined;
16
17
  readonly limit?: number | undefined;
18
+ readonly knowledgeSpaceId?: string | undefined;
19
+ readonly includeAllSpaces?: boolean | undefined;
17
20
  }): Promise<KnowledgeProjectionBundle>;
18
21
  materialize(input: {
19
22
  readonly kind: KnowledgeProjectionTargetKind;
20
23
  readonly id?: string | undefined;
21
24
  readonly limit?: number | undefined;
22
25
  readonly filename?: string | undefined;
26
+ readonly knowledgeSpaceId?: string | undefined;
27
+ readonly includeAllSpaces?: boolean | undefined;
23
28
  }): Promise<KnowledgeMaterializedProjection>;
24
29
  private resolveTarget;
25
30
  private createPresetTarget;
@@ -44,5 +49,11 @@ export declare class KnowledgeProjectionService {
44
49
  private linkToTarget;
45
50
  private combineBundleMarkdown;
46
51
  private isGeneratedSourceReference;
52
+ private edgeInScope;
53
+ private recordReferenceInScope;
54
+ private scopedSources;
55
+ private scopedNodes;
56
+ private scopedIssues;
57
+ private scopedExtractions;
47
58
  }
48
59
  //# 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;AAiB3D,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,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAiB7D,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;KACrC,GACA,OAAO,CAAC,yBAAyB,CAAC;IA4B/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;KACxC,GACA,OAAO,CAAC,+BAA+B,CAAC;IAyC3C,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kBAAkB;IAoD1B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,yBAAyB;IAoCjC,OAAO,CAAC,gBAAgB;IAwExB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,0BAA0B;CAKnC"}
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"}