@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.
- package/dist/browser-knowledge.d.ts +1 -1
- package/dist/browser-knowledge.d.ts.map +1 -1
- package/dist/browser-knowledge.js +1 -1
- package/dist/contracts/artifacts/operator-contract.json +75 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-knowledge.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-knowledge.js +16 -7
- package/dist/platform/control-plane/routes/operator.js +2 -2
- package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
- package/dist/platform/daemon/http/router-route-contexts.js +8 -8
- package/dist/platform/knowledge/graphql-schema.d.ts +1 -1
- package/dist/platform/knowledge/graphql-schema.d.ts.map +1 -1
- package/dist/platform/knowledge/graphql-schema.js +13 -11
- package/dist/platform/knowledge/graphql.d.ts.map +1 -1
- package/dist/platform/knowledge/graphql.js +51 -25
- package/dist/platform/knowledge/index.d.ts +1 -1
- package/dist/platform/knowledge/index.d.ts.map +1 -1
- package/dist/platform/knowledge/map-filters.d.ts +3 -0
- package/dist/platform/knowledge/map-filters.d.ts.map +1 -1
- package/dist/platform/knowledge/map-filters.js +20 -0
- package/dist/platform/knowledge/map.d.ts +2 -0
- package/dist/platform/knowledge/map.d.ts.map +1 -1
- package/dist/platform/knowledge/map.js +1 -6
- package/dist/platform/knowledge/packet.d.ts +6 -5
- package/dist/platform/knowledge/packet.d.ts.map +1 -1
- package/dist/platform/knowledge/packet.js +13 -8
- package/dist/platform/knowledge/projections.d.ts +12 -1
- package/dist/platform/knowledge/projections.d.ts.map +1 -1
- package/dist/platform/knowledge/projections.js +153 -91
- package/dist/platform/knowledge/service.d.ts +27 -7
- package/dist/platform/knowledge/service.d.ts.map +1 -1
- package/dist/platform/knowledge/service.js +66 -6
- package/dist/platform/knowledge/spaces.d.ts +6 -0
- package/dist/platform/knowledge/spaces.d.ts.map +1 -1
- package/dist/platform/knowledge/spaces.js +9 -0
- package/dist/platform/knowledge/types.d.ts +2 -0
- package/dist/platform/knowledge/types.d.ts.map +1 -1
- package/dist/platform/version.js +1 -1
- 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: (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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: (
|
|
92
|
-
.
|
|
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: (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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 (
|
|
112
|
-
projection: async (
|
|
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":"AAAA,OAAO,EAAE,0BAA0B,EAAE,uCAAuC,EAAE,MAAM,iBAAiB,CAAC;AACtG,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,yCAAyC,EACzC,4CAA4C,EAC5C,6BAA6B,EAC7B,uCAAuC,EACvC,2CAA2C,EAC3C,yCAAyC,EACzC,iCAAiC,EACjC,gCAAgC,EAChC,+BAA+B,EAC/B,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACrH,YAAY,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EACL,0BAA0B,EAC1B,qCAAqC,EACrC,8BAA8B,EAC9B,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
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":"
|
|
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,
|
|
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,
|
|
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;
|
|
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"}
|