@x12i/memorix-retrieval 1.34.0 → 1.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalox-seeds/inputs/entity-descriptors/assets.json +138 -0
- package/catalox-seeds/inputs/entity-descriptors/subnets.json +16 -1
- package/catalox-seeds/inputs/entity-descriptors/topology-zones.json +9 -1
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities-groups.json +10 -2
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +57 -5
- package/catalox-seeds/inputs/graph-descriptors/asset-topology-vulnerabilities-graph.json +75 -0
- package/catalox-seeds/inputs/list-descriptors/assets-exploitability-decisions-list.json +4 -0
- package/catalox-seeds/inputs/list-descriptors/assets-potential-impact-decisions-list.json +16 -8
- package/catalox-seeds/inputs/manifest.json +4 -0
- package/catalox-seeds/inputs/memorix-catalog-ids.json +2 -1
- package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +715 -15
- package/dist/data/identity.d.ts +19 -1
- package/dist/data/identity.d.ts.map +1 -1
- package/dist/data/identity.js +41 -25
- package/dist/data/identity.js.map +1 -1
- package/dist/data/record-info.d.ts +1 -1
- package/dist/data/record-info.d.ts.map +1 -1
- package/dist/descriptors/catalog-ids.d.ts +1 -0
- package/dist/descriptors/catalog-ids.d.ts.map +1 -1
- package/dist/descriptors/catalog-ids.js +1 -0
- package/dist/descriptors/catalog-ids.js.map +1 -1
- package/dist/descriptors/descriptor-types.d.ts +3 -1
- package/dist/descriptors/descriptor-types.d.ts.map +1 -1
- package/dist/errors/issues.d.ts +2 -0
- package/dist/errors/issues.d.ts.map +1 -1
- package/dist/errors/issues.js.map +1 -1
- package/dist/explorer/collection-records.d.ts +2 -0
- package/dist/explorer/collection-records.d.ts.map +1 -1
- package/dist/explorer/collection-records.js +2 -3
- package/dist/explorer/collection-records.js.map +1 -1
- package/dist/explorer/raw-collection-records.d.ts +5 -0
- package/dist/explorer/raw-collection-records.d.ts.map +1 -1
- package/dist/explorer/raw-collection-records.js +15 -11
- package/dist/explorer/raw-collection-records.js.map +1 -1
- package/dist/graphs/build-graph-directory.d.ts +28 -0
- package/dist/graphs/build-graph-directory.d.ts.map +1 -0
- package/dist/graphs/build-graph-directory.js +253 -0
- package/dist/graphs/build-graph-directory.js.map +1 -0
- package/dist/graphs/build-graph-document.d.ts +13 -0
- package/dist/graphs/build-graph-document.d.ts.map +1 -0
- package/dist/graphs/build-graph-document.js +480 -0
- package/dist/graphs/build-graph-document.js.map +1 -0
- package/dist/graphs/fallback-graph-capabilities.d.ts +11 -0
- package/dist/graphs/fallback-graph-capabilities.d.ts.map +1 -0
- package/dist/graphs/fallback-graph-capabilities.js +243 -0
- package/dist/graphs/fallback-graph-capabilities.js.map +1 -0
- package/dist/graphs/index.d.ts +8 -0
- package/dist/graphs/index.d.ts.map +1 -0
- package/dist/graphs/index.js +7 -0
- package/dist/graphs/index.js.map +1 -0
- package/dist/graphs/infer-graph-descriptor.d.ts +17 -0
- package/dist/graphs/infer-graph-descriptor.d.ts.map +1 -0
- package/dist/graphs/infer-graph-descriptor.js +234 -0
- package/dist/graphs/infer-graph-descriptor.js.map +1 -0
- package/dist/graphs/load-graph-descriptor.d.ts +22 -0
- package/dist/graphs/load-graph-descriptor.d.ts.map +1 -0
- package/dist/graphs/load-graph-descriptor.js +97 -0
- package/dist/graphs/load-graph-descriptor.js.map +1 -0
- package/dist/graphs/record-access.d.ts +18 -0
- package/dist/graphs/record-access.d.ts.map +1 -0
- package/dist/graphs/record-access.js +142 -0
- package/dist/graphs/record-access.js.map +1 -0
- package/dist/graphs/types.d.ts +70 -0
- package/dist/graphs/types.d.ts.map +1 -0
- package/dist/graphs/types.js +17 -0
- package/dist/graphs/types.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/retrieval/fetch-list.d.ts.map +1 -1
- package/dist/retrieval/fetch-list.js +3 -1
- package/dist/retrieval/fetch-list.js.map +1 -1
- package/dist/retrieval/resolve-fields.d.ts.map +1 -1
- package/dist/retrieval/resolve-fields.js +7 -1
- package/dist/retrieval/resolve-fields.js.map +1 -1
- package/dist/retrieval/resolve-filters.d.ts +9 -1
- package/dist/retrieval/resolve-filters.d.ts.map +1 -1
- package/dist/retrieval/resolve-filters.js +17 -1
- package/dist/retrieval/resolve-filters.js.map +1 -1
- package/dist/retrieval/resolve-list-analytics.d.ts +2 -2
- package/dist/retrieval/resolve-list-analytics.d.ts.map +1 -1
- package/dist/retrieval/resolve-list-analytics.js.map +1 -1
- package/dist/retrieval/resolve-property-source.d.ts.map +1 -1
- package/dist/retrieval/resolve-property-source.js +10 -3
- package/dist/retrieval/resolve-property-source.js.map +1 -1
- package/dist/seeds/default-seed-spec.d.ts.map +1 -1
- package/dist/seeds/default-seed-spec.js +22 -1
- package/dist/seeds/default-seed-spec.js.map +1 -1
- package/dist/tests/fetch-list.test.js +28 -0
- package/dist/tests/fetch-list.test.js.map +1 -1
- package/dist/tests/graphs.test.d.ts +2 -0
- package/dist/tests/graphs.test.d.ts.map +1 -0
- package/dist/tests/graphs.test.js +202 -0
- package/dist/tests/graphs.test.js.map +1 -0
- package/dist/tests/identity.test.js +13 -1
- package/dist/tests/identity.test.js.map +1 -1
- package/dist/tests/infer-graph.test.d.ts +2 -0
- package/dist/tests/infer-graph.test.d.ts.map +1 -0
- package/dist/tests/infer-graph.test.js +19 -0
- package/dist/tests/infer-graph.test.js.map +1 -0
- package/dist/tests/resolve-filters.test.js +23 -1
- package/dist/tests/resolve-filters.test.js.map +1 -1
- package/package.json +10 -1
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { loadMemorixEntityDescriptorByName } from "../descriptors/discover-entities.js";
|
|
2
|
+
import { compileNarrativeIdMongoFilter } from "../retrieval/narrative-list-filters.js";
|
|
3
|
+
import { resolveEntityGraphCapability } from "./fallback-graph-capabilities.js";
|
|
4
|
+
import { loadMemorixGraphDescriptor, resolveMemorixGraphDescriptor } from "./load-graph-descriptor.js";
|
|
5
|
+
import { conceptFromRecord, countSnapshots, listSnapshots, recordIdOf, } from "./record-access.js";
|
|
6
|
+
/**
|
|
7
|
+
* Curated graph chip lists choose order/subset; entity-descriptor
|
|
8
|
+
* `narratives.<key>.visibility` is the sole gate for user-facing chips.
|
|
9
|
+
*/
|
|
10
|
+
async function resolveUserNarrativeFilters(client, curated) {
|
|
11
|
+
const out = {};
|
|
12
|
+
for (const [objectType, entries] of Object.entries(curated)) {
|
|
13
|
+
let authored;
|
|
14
|
+
try {
|
|
15
|
+
const entity = await loadMemorixEntityDescriptorByName(client, objectType);
|
|
16
|
+
const raw = entity
|
|
17
|
+
.narratives;
|
|
18
|
+
if (raw && typeof raw === "object")
|
|
19
|
+
authored = raw;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
authored = undefined;
|
|
23
|
+
}
|
|
24
|
+
out[objectType] = entries.flatMap((entry) => {
|
|
25
|
+
const def = authored?.[entry.key];
|
|
26
|
+
if (def) {
|
|
27
|
+
const visibility = def.visibility ?? "user";
|
|
28
|
+
if (visibility !== "user")
|
|
29
|
+
return [];
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
key: entry.key,
|
|
33
|
+
label: def.displayName ?? def.label ?? entry.label,
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
// Key not in authored catalog — keep curated entry (e.g. platform-only signals).
|
|
38
|
+
return [entry];
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
function pickDirectoryFields(data, fields, propertyPaths) {
|
|
44
|
+
if (!fields?.length)
|
|
45
|
+
return undefined;
|
|
46
|
+
const out = {};
|
|
47
|
+
for (const key of fields) {
|
|
48
|
+
if (key in data) {
|
|
49
|
+
out[key] = data[key];
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const path = propertyPaths?.[key];
|
|
53
|
+
if (path?.startsWith("data.")) {
|
|
54
|
+
const leaf = path.slice("data.".length);
|
|
55
|
+
if (leaf in data)
|
|
56
|
+
out[key] = data[leaf];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return Object.keys(out).length ? out : undefined;
|
|
60
|
+
}
|
|
61
|
+
async function resolveDirectorySpec(client, n, inferredCaps) {
|
|
62
|
+
let entityGraph = null;
|
|
63
|
+
let propertyPaths = {};
|
|
64
|
+
try {
|
|
65
|
+
const entity = await loadMemorixEntityDescriptorByName(client, n.objectType);
|
|
66
|
+
entityGraph = resolveEntityGraphCapability(n.objectType, entity, inferredCaps[n.objectType]);
|
|
67
|
+
for (const [key, prop] of Object.entries(entity.properties ?? {})) {
|
|
68
|
+
if (prop.source?.path)
|
|
69
|
+
propertyPaths[key] = prop.source.path;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
entityGraph = resolveEntityGraphCapability(n.objectType, null, inferredCaps[n.objectType]);
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
objectType: n.objectType,
|
|
77
|
+
kind: n.kind ?? entityGraph?.node.kind ?? n.objectType,
|
|
78
|
+
tier: n.tier,
|
|
79
|
+
directoryFields: n.directoryFields ?? entityGraph?.node.directoryFields,
|
|
80
|
+
propertyPaths,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function nodeFromDoc(doc, spec) {
|
|
84
|
+
const concept = conceptFromRecord(doc);
|
|
85
|
+
if (!concept)
|
|
86
|
+
return null;
|
|
87
|
+
const data = doc.data && typeof doc.data === "object" && !Array.isArray(doc.data)
|
|
88
|
+
? doc.data
|
|
89
|
+
: {};
|
|
90
|
+
const directorySlice = pickDirectoryFields(data, spec.directoryFields, spec.propertyPaths);
|
|
91
|
+
return {
|
|
92
|
+
id: concept.identifier.identifierKey,
|
|
93
|
+
tier: spec.tier,
|
|
94
|
+
concept,
|
|
95
|
+
objectType: spec.objectType,
|
|
96
|
+
recordId: recordIdOf(doc) || undefined,
|
|
97
|
+
content: directorySlice ? { snapshot: directorySlice } : undefined,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export async function buildMemorixGraphDirectory(client, input) {
|
|
101
|
+
const resolved = input.descriptor != null
|
|
102
|
+
? {
|
|
103
|
+
descriptor: input.descriptor,
|
|
104
|
+
defined: true,
|
|
105
|
+
source: "provided",
|
|
106
|
+
}
|
|
107
|
+
: await resolveMemorixGraphDescriptor(client, input.graphId ?? "asset-topology-vulnerabilities-graph");
|
|
108
|
+
const descriptor = resolved.descriptor;
|
|
109
|
+
const inferredCaps = "inferredCapabilities" in resolved
|
|
110
|
+
? (resolved
|
|
111
|
+
.inferredCapabilities ?? {})
|
|
112
|
+
: {};
|
|
113
|
+
const defaultTypes = descriptor.directory?.defaultObjectTypes;
|
|
114
|
+
const allSpecs = [];
|
|
115
|
+
for (const n of descriptor.nodes) {
|
|
116
|
+
if (defaultTypes?.length && !defaultTypes.includes(n.objectType))
|
|
117
|
+
continue;
|
|
118
|
+
allSpecs.push(await resolveDirectorySpec(client, n, inferredCaps));
|
|
119
|
+
}
|
|
120
|
+
const listSpecs = allSpecs.filter((spec) => {
|
|
121
|
+
if (input.objectType && spec.objectType !== input.objectType)
|
|
122
|
+
return false;
|
|
123
|
+
if (input.kind && spec.kind !== input.kind)
|
|
124
|
+
return false;
|
|
125
|
+
return true;
|
|
126
|
+
});
|
|
127
|
+
const limit = Math.min(Math.max(input.limit ?? 50, 1), 200);
|
|
128
|
+
const offset = Math.max(input.offset ?? 0, 0);
|
|
129
|
+
const q = input.q?.trim().toLowerCase() ?? "";
|
|
130
|
+
const narrativeQuery = compileNarrativeIdMongoFilter(input.filters ?? []);
|
|
131
|
+
const hasNarrative = Object.keys(narrativeQuery).length > 0;
|
|
132
|
+
// Kind tallies are catalog totals (not page size). Narrative filters only
|
|
133
|
+
// affect the active object type's count when that type is selected.
|
|
134
|
+
const kinds = [];
|
|
135
|
+
for (const spec of allSpecs) {
|
|
136
|
+
const applyNarrative = hasNarrative &&
|
|
137
|
+
(!input.objectType || input.objectType === spec.objectType);
|
|
138
|
+
let count = 0;
|
|
139
|
+
try {
|
|
140
|
+
count = await countSnapshots(client, spec.objectType, {
|
|
141
|
+
query: applyNarrative ? narrativeQuery : {},
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
count = 0;
|
|
146
|
+
}
|
|
147
|
+
kinds.push({
|
|
148
|
+
kind: spec.kind,
|
|
149
|
+
objectType: spec.objectType,
|
|
150
|
+
tier: spec.tier,
|
|
151
|
+
count,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
const collected = [];
|
|
155
|
+
for (const spec of listSpecs) {
|
|
156
|
+
const applyNarrative = hasNarrative &&
|
|
157
|
+
(!input.objectType || input.objectType === spec.objectType);
|
|
158
|
+
// Over-fetch a bit when searching client-side by q.
|
|
159
|
+
const fetchLimit = q ? Math.min(limit + offset + 200, 500) : limit + offset;
|
|
160
|
+
let docs = [];
|
|
161
|
+
try {
|
|
162
|
+
docs = await listSnapshots(client, spec.objectType, {
|
|
163
|
+
query: applyNarrative ? narrativeQuery : {},
|
|
164
|
+
limit: fetchLimit,
|
|
165
|
+
offset: 0,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
docs = [];
|
|
170
|
+
}
|
|
171
|
+
for (const doc of docs) {
|
|
172
|
+
const node = nodeFromDoc(doc, spec);
|
|
173
|
+
if (!node)
|
|
174
|
+
continue;
|
|
175
|
+
if (q) {
|
|
176
|
+
const hay = `${node.concept.title} ${node.concept.identifier.identifierKey}`.toLowerCase();
|
|
177
|
+
if (!hay.includes(q))
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
collected.push(node);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// When browsing a single type without text search, prefer the DB total.
|
|
184
|
+
const singleType = listSpecs.length === 1 ? listSpecs[0] : null;
|
|
185
|
+
const total = singleType && !q
|
|
186
|
+
? (kinds.find((k) => k.objectType === singleType.objectType)?.count ??
|
|
187
|
+
collected.length)
|
|
188
|
+
: collected.length;
|
|
189
|
+
const nodes = collected.slice(offset, offset + limit);
|
|
190
|
+
const curatedFilters = descriptor.directory?.narrativeFiltersByObjectType ?? {};
|
|
191
|
+
const narrativeFiltersByObjectType = await resolveUserNarrativeFilters(client, curatedFilters);
|
|
192
|
+
return {
|
|
193
|
+
graphId: descriptor.id,
|
|
194
|
+
nodes,
|
|
195
|
+
total,
|
|
196
|
+
kinds,
|
|
197
|
+
defined: resolved.defined,
|
|
198
|
+
descriptorSource: resolved.source,
|
|
199
|
+
narrativeFiltersByObjectType,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
export async function fetchMemorixGraphNodeContent(client, input) {
|
|
203
|
+
const descriptor = input.descriptor ??
|
|
204
|
+
(await loadMemorixGraphDescriptor(client, input.graphId ?? "asset-topology-vulnerabilities-graph"));
|
|
205
|
+
let objectType = input.objectType;
|
|
206
|
+
let lenses = input.lenses;
|
|
207
|
+
if (!objectType) {
|
|
208
|
+
const byPrefix = descriptor.nodes.find((n) => n.kind && input.nodeId.startsWith(`${n.kind}:`));
|
|
209
|
+
objectType = byPrefix?.objectType;
|
|
210
|
+
}
|
|
211
|
+
if (!objectType) {
|
|
212
|
+
for (const n of descriptor.nodes) {
|
|
213
|
+
const cap = resolveEntityGraphCapability(n.objectType, null);
|
|
214
|
+
const kind = n.kind ?? cap?.node.kind;
|
|
215
|
+
if (kind && input.nodeId.startsWith(`${kind}:`)) {
|
|
216
|
+
objectType = n.objectType;
|
|
217
|
+
if (!lenses?.length)
|
|
218
|
+
lenses = n.contentLenses ?? cap?.node.contentLenses;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (!objectType) {
|
|
224
|
+
return { nodeId: input.nodeId, content: {} };
|
|
225
|
+
}
|
|
226
|
+
const spec = descriptor.nodes.find((n) => n.objectType === objectType);
|
|
227
|
+
let entityLenses;
|
|
228
|
+
try {
|
|
229
|
+
const entity = await loadMemorixEntityDescriptorByName(client, objectType);
|
|
230
|
+
entityLenses = resolveEntityGraphCapability(objectType, entity)?.node
|
|
231
|
+
.contentLenses;
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
entityLenses = resolveEntityGraphCapability(objectType, null)?.node
|
|
235
|
+
.contentLenses;
|
|
236
|
+
}
|
|
237
|
+
let recordId = input.recordId;
|
|
238
|
+
if (!recordId) {
|
|
239
|
+
const { findSnapshotByIdentifierKey } = await import("./record-access.js");
|
|
240
|
+
const doc = await findSnapshotByIdentifierKey(client, objectType, input.nodeId);
|
|
241
|
+
recordId = doc ? recordIdOf(doc) : undefined;
|
|
242
|
+
}
|
|
243
|
+
if (!recordId) {
|
|
244
|
+
return { nodeId: input.nodeId, content: {} };
|
|
245
|
+
}
|
|
246
|
+
const resolvedLenses = lenses?.length
|
|
247
|
+
? lenses
|
|
248
|
+
: spec?.contentLenses ?? entityLenses ?? ["snapshot"];
|
|
249
|
+
const { fetchContentLenses } = await import("./record-access.js");
|
|
250
|
+
const content = await fetchContentLenses(client, objectType, recordId, resolvedLenses);
|
|
251
|
+
return { nodeId: input.nodeId, content };
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=build-graph-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-graph-directory.js","sourceRoot":"","sources":["../../src/graphs/build-graph-directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MemorixGraphDescriptor } from "@x12i/memorix-descriptors";
|
|
2
|
+
import type { MemorixRetrievalClient } from "../client/types.js";
|
|
3
|
+
import type { MemorixGraphDocument } from "./types.js";
|
|
4
|
+
export type BuildMemorixGraphDocumentInput = {
|
|
5
|
+
graphId?: string;
|
|
6
|
+
descriptor?: MemorixGraphDescriptor;
|
|
7
|
+
focusRecordId?: string;
|
|
8
|
+
focusIdentifierKey?: string;
|
|
9
|
+
lenses?: boolean;
|
|
10
|
+
tiers?: string[] | string;
|
|
11
|
+
};
|
|
12
|
+
export declare function buildMemorixGraphDocument(client: MemorixRetrievalClient, input: BuildMemorixGraphDocumentInput): Promise<MemorixGraphDocument>;
|
|
13
|
+
//# sourceMappingURL=build-graph-document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-graph-document.d.ts","sourceRoot":"","sources":["../../src/graphs/build-graph-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAgBjE,OAAO,KAAK,EAGV,oBAAoB,EAGrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CAC3B,CAAC;AA0LF,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,oBAAoB,CAAC,CAqZ/B"}
|