@x12i/memorix-retrieval 1.35.0 → 1.37.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.
Files changed (114) hide show
  1. package/catalox-seeds/inputs/entity-descriptors/assets.json +166 -0
  2. package/catalox-seeds/inputs/entity-descriptors/subnets.json +115 -1
  3. package/catalox-seeds/inputs/entity-descriptors/topology-zones.json +52 -1
  4. package/catalox-seeds/inputs/entity-descriptors/vulnerabilities-groups.json +10 -2
  5. package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +79 -7
  6. package/catalox-seeds/inputs/graph-descriptors/asset-subnet-paths-graph.json +41 -0
  7. package/catalox-seeds/inputs/graph-descriptors/asset-topology-vulnerabilities-graph.json +81 -0
  8. package/catalox-seeds/inputs/graph-descriptors/asset-vulnerability-group-graph.json +38 -0
  9. package/catalox-seeds/inputs/graph-descriptors/vulnerability-asset-subnet-graph.json +40 -0
  10. package/catalox-seeds/inputs/list-descriptors/assets-exploitability-decisions-list.json +4 -0
  11. package/catalox-seeds/inputs/list-descriptors/assets-potential-impact-decisions-list.json +16 -8
  12. package/catalox-seeds/inputs/manifest.json +4 -0
  13. package/catalox-seeds/inputs/memorix-catalog-ids.json +2 -1
  14. package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +1186 -34
  15. package/dist/client/catalox-adapter.d.ts.map +1 -1
  16. package/dist/client/catalox-adapter.js +10 -1
  17. package/dist/client/catalox-adapter.js.map +1 -1
  18. package/dist/client/catalox-like.d.ts +6 -0
  19. package/dist/client/catalox-like.d.ts.map +1 -1
  20. package/dist/data/identity.d.ts +19 -1
  21. package/dist/data/identity.d.ts.map +1 -1
  22. package/dist/data/identity.js +41 -25
  23. package/dist/data/identity.js.map +1 -1
  24. package/dist/data/record-info.d.ts +1 -1
  25. package/dist/data/record-info.d.ts.map +1 -1
  26. package/dist/descriptors/catalog-ids.d.ts +1 -0
  27. package/dist/descriptors/catalog-ids.d.ts.map +1 -1
  28. package/dist/descriptors/catalog-ids.js +1 -0
  29. package/dist/descriptors/catalog-ids.js.map +1 -1
  30. package/dist/descriptors/descriptor-types.d.ts +3 -1
  31. package/dist/descriptors/descriptor-types.d.ts.map +1 -1
  32. package/dist/errors/issues.d.ts +2 -0
  33. package/dist/errors/issues.d.ts.map +1 -1
  34. package/dist/errors/issues.js.map +1 -1
  35. package/dist/graphs/build-graph-directory.d.ts +28 -0
  36. package/dist/graphs/build-graph-directory.d.ts.map +1 -0
  37. package/dist/graphs/build-graph-directory.js +253 -0
  38. package/dist/graphs/build-graph-directory.js.map +1 -0
  39. package/dist/graphs/build-graph-document.d.ts +13 -0
  40. package/dist/graphs/build-graph-document.d.ts.map +1 -0
  41. package/dist/graphs/build-graph-document.js +888 -0
  42. package/dist/graphs/build-graph-document.js.map +1 -0
  43. package/dist/graphs/fallback-graph-capabilities.d.ts +16 -0
  44. package/dist/graphs/fallback-graph-capabilities.d.ts.map +1 -0
  45. package/dist/graphs/fallback-graph-capabilities.js +376 -0
  46. package/dist/graphs/fallback-graph-capabilities.js.map +1 -0
  47. package/dist/graphs/index.d.ts +9 -0
  48. package/dist/graphs/index.d.ts.map +1 -0
  49. package/dist/graphs/index.js +8 -0
  50. package/dist/graphs/index.js.map +1 -0
  51. package/dist/graphs/infer-graph-descriptor.d.ts +17 -0
  52. package/dist/graphs/infer-graph-descriptor.d.ts.map +1 -0
  53. package/dist/graphs/infer-graph-descriptor.js +234 -0
  54. package/dist/graphs/infer-graph-descriptor.js.map +1 -0
  55. package/dist/graphs/load-graph-descriptor.d.ts +31 -0
  56. package/dist/graphs/load-graph-descriptor.d.ts.map +1 -0
  57. package/dist/graphs/load-graph-descriptor.js +141 -0
  58. package/dist/graphs/load-graph-descriptor.js.map +1 -0
  59. package/dist/graphs/record-access.d.ts +36 -0
  60. package/dist/graphs/record-access.d.ts.map +1 -0
  61. package/dist/graphs/record-access.js +178 -0
  62. package/dist/graphs/record-access.js.map +1 -0
  63. package/dist/graphs/types.d.ts +70 -0
  64. package/dist/graphs/types.d.ts.map +1 -0
  65. package/dist/graphs/types.js +17 -0
  66. package/dist/graphs/types.js.map +1 -0
  67. package/dist/graphs/validate-graph-metadata.d.ts +36 -0
  68. package/dist/graphs/validate-graph-metadata.d.ts.map +1 -0
  69. package/dist/graphs/validate-graph-metadata.js +71 -0
  70. package/dist/graphs/validate-graph-metadata.js.map +1 -0
  71. package/dist/index.d.ts +1 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +1 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/retrieval/fetch-list.d.ts.map +1 -1
  76. package/dist/retrieval/fetch-list.js +3 -1
  77. package/dist/retrieval/fetch-list.js.map +1 -1
  78. package/dist/retrieval/resolve-fields.d.ts.map +1 -1
  79. package/dist/retrieval/resolve-fields.js +7 -1
  80. package/dist/retrieval/resolve-fields.js.map +1 -1
  81. package/dist/retrieval/resolve-list-analytics.d.ts +2 -2
  82. package/dist/retrieval/resolve-list-analytics.d.ts.map +1 -1
  83. package/dist/retrieval/resolve-list-analytics.js.map +1 -1
  84. package/dist/retrieval/resolve-property-source.d.ts.map +1 -1
  85. package/dist/retrieval/resolve-property-source.js +10 -3
  86. package/dist/retrieval/resolve-property-source.js.map +1 -1
  87. package/dist/seeds/default-seed-spec.d.ts.map +1 -1
  88. package/dist/seeds/default-seed-spec.js +25 -1
  89. package/dist/seeds/default-seed-spec.js.map +1 -1
  90. package/dist/tests/catalox-adapter-scope.test.d.ts +2 -0
  91. package/dist/tests/catalox-adapter-scope.test.d.ts.map +1 -0
  92. package/dist/tests/catalox-adapter-scope.test.js +26 -0
  93. package/dist/tests/catalox-adapter-scope.test.js.map +1 -0
  94. package/dist/tests/fetch-list.test.js +28 -0
  95. package/dist/tests/fetch-list.test.js.map +1 -1
  96. package/dist/tests/graphs.test.d.ts +2 -0
  97. package/dist/tests/graphs.test.d.ts.map +1 -0
  98. package/dist/tests/graphs.test.js +423 -0
  99. package/dist/tests/graphs.test.js.map +1 -0
  100. package/dist/tests/identity.test.js +13 -1
  101. package/dist/tests/identity.test.js.map +1 -1
  102. package/dist/tests/infer-graph.test.d.ts +2 -0
  103. package/dist/tests/infer-graph.test.d.ts.map +1 -0
  104. package/dist/tests/infer-graph.test.js +19 -0
  105. package/dist/tests/infer-graph.test.js.map +1 -0
  106. package/dist/tests/resolve-filters.test.js +8 -0
  107. package/dist/tests/resolve-filters.test.js.map +1 -1
  108. package/dist/tests/seed-manifest.test.js +3 -0
  109. package/dist/tests/seed-manifest.test.js.map +1 -1
  110. package/dist/tests/validate-graph-metadata.test.d.ts +2 -0
  111. package/dist/tests/validate-graph-metadata.test.d.ts.map +1 -0
  112. package/dist/tests/validate-graph-metadata.test.js +81 -0
  113. package/dist/tests/validate-graph-metadata.test.js.map +1 -0
  114. package/package.json +13 -2
@@ -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;AAiBjE,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;AA6UF,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,oBAAoB,CAAC,CAqtB/B"}