@ifc-lite/mcp 0.17.0 → 0.18.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 (39) hide show
  1. package/dist/authored-attribute-value.d.ts +3 -0
  2. package/dist/authored-attribute-value.d.ts.map +1 -0
  3. package/dist/authored-attribute-value.js +34 -0
  4. package/dist/authored-attribute-value.js.map +1 -0
  5. package/dist/backend-query-relationships.d.ts +5 -0
  6. package/dist/backend-query-relationships.d.ts.map +1 -0
  7. package/dist/backend-query-relationships.js +55 -0
  8. package/dist/backend-query-relationships.js.map +1 -0
  9. package/dist/backend-query.d.ts +3 -5
  10. package/dist/backend-query.d.ts.map +1 -1
  11. package/dist/backend-query.js +68 -106
  12. package/dist/backend-query.js.map +1 -1
  13. package/dist/headless-backend-cost-store.d.ts +14 -0
  14. package/dist/headless-backend-cost-store.d.ts.map +1 -0
  15. package/dist/headless-backend-cost-store.js +20 -0
  16. package/dist/headless-backend-cost-store.js.map +1 -0
  17. package/dist/headless-backend.d.ts.map +1 -1
  18. package/dist/headless-backend.js +4 -2
  19. package/dist/headless-backend.js.map +1 -1
  20. package/dist/overlay.d.ts +10 -22
  21. package/dist/overlay.d.ts.map +1 -1
  22. package/dist/overlay.js +44 -77
  23. package/dist/overlay.js.map +1 -1
  24. package/dist/tools/diff-authored-keys.d.ts +66 -0
  25. package/dist/tools/diff-authored-keys.d.ts.map +1 -0
  26. package/dist/tools/diff-authored-keys.js +144 -0
  27. package/dist/tools/diff-authored-keys.js.map +1 -0
  28. package/dist/tools/diff-content.d.ts +33 -0
  29. package/dist/tools/diff-content.d.ts.map +1 -0
  30. package/dist/tools/diff-content.js +158 -0
  31. package/dist/tools/diff-content.js.map +1 -0
  32. package/dist/tools/diff-fingerprints.d.ts +3 -1
  33. package/dist/tools/diff-fingerprints.d.ts.map +1 -1
  34. package/dist/tools/diff-fingerprints.js +19 -49
  35. package/dist/tools/diff-fingerprints.js.map +1 -1
  36. package/dist/tools/diff.d.ts.map +1 -1
  37. package/dist/tools/diff.js +33 -109
  38. package/dist/tools/diff.js.map +1 -1
  39. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend.js","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless-backend.js","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"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"}
package/dist/overlay.d.ts CHANGED
@@ -25,7 +25,7 @@
25
25
  */
26
26
  import type { PropertySet, QuantitySet } from '@ifc-lite/data';
27
27
  import type { MutablePropertyView } from '@ifc-lite/mutations';
28
- import { type IfcDataStore } from '@ifc-lite/parser';
28
+ import { effectiveRelationshipEdges, type IfcDataStore } from '@ifc-lite/parser';
29
29
  import type { LoadedModel } from './context.js';
30
30
  /** An entity that exists only in the overlay (`entity_create`). */
31
31
  export interface CreatedEntity {
@@ -53,22 +53,6 @@ export interface CreatedEntity {
53
53
  * the enum grows, the readback carries.
54
54
  */
55
55
  export type AttributeOverrides = ReadonlyMap<string, string>;
56
- /**
57
- * One queued `IfcRel…` record, resolved to the entities it links.
58
- *
59
- * `entity_create` is the only way an agent can relate anything over MCP, so a
60
- * queued relationship is how a session says "this new wall is in that storey".
61
- * Reading it back is what keeps `in_storey` from dropping an entity the same
62
- * session just placed.
63
- */
64
- export interface QueuedRelation {
65
- /** expressId of the queued `IfcRel…` record itself. */
66
- relationshipId: number;
67
- /** The `Relating…` end — the container, whole, or type. */
68
- relating: number;
69
- /** The `Related…` end(s) — the contents, parts, or occurrences. */
70
- related: readonly number[];
71
- }
72
56
  /** The overlay's read surface, as every folding tool consumes it. */
73
57
  export interface PendingOverlay {
74
58
  /** Express ids tombstoned by `entity_delete`. Empty is the common case.
@@ -96,7 +80,13 @@ export interface PendingOverlay {
96
80
  /** Any queued entity by expressId, GlobalId-bearing or not. Null when the id
97
81
  * is not one this session created. */
98
82
  createdEntity(expressId: number): CreatedEntity | null;
83
+ /** The class a queued `setEntityType` gives the entity (`IfcWall` spelling),
84
+ * or null when it keeps its authored class. Every read that names an
85
+ * entity's type must go through this, or it disagrees with what export
86
+ * writes (#5009 review). */
87
+ effectiveType(expressId: number): string | null;
99
88
  attributes(expressId: number): AttributeOverrides;
89
+ positionalAttributes(expressId: number): ReadonlyMap<number, unknown>;
100
90
  /** Every entity with a queued attribute write, keyed by expressId. For loops
101
91
  * over a whole model: `attributes(id)` builds a map per call, which is fine
102
92
  * for one entity and not for a million. */
@@ -105,10 +95,8 @@ export interface PendingOverlay {
105
95
  propertySets(expressId: number): PropertySet[];
106
96
  /** Base quantity sets with the overlay's edits applied. */
107
97
  quantitySets(expressId: number): QuantitySet[];
108
- /** Queued relationships of one IFC class, e.g.
109
- * `'IfcRelContainedInSpatialStructure'`. Empty for a session that created
110
- * none, which is the common case. */
111
- queuedRelations(ifcRelType: string): readonly QueuedRelation[];
98
+ relationshipEdges(expressId: number, ifcRelType?: string): ReturnType<typeof effectiveRelationshipEdges>;
99
+ readonly supersededRelationshipIds: ReadonlySet<number>;
112
100
  }
113
101
  /**
114
102
  * The model's pending overlay, or `null` when it has none.
@@ -125,7 +113,7 @@ export declare function pendingOverlay(model: LoadedModel): PendingOverlay | nul
125
113
  * query adapter, so it cannot go through `pendingOverlay` — that would need a
126
114
  * `LoadedModel`, which is the registry entry wrapped *around* the backend.
127
115
  */
128
- export declare function overlayFromView(view: MutablePropertyView | null): PendingOverlay | null;
116
+ export declare function overlayFromView(view: MutablePropertyView | null, store: IfcDataStore): PendingOverlay | null;
129
117
  /**
130
118
  * Entity count per STEP type key, with the session's queued creates and deletes
131
119
  * applied. Created entities are counted under the uppercase key the store uses,
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/dist/overlay.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- import { getAttributeNamesAcrossSchemas, getInheritanceChainAcrossSchemas, } from '@ifc-lite/parser';
4
+ import { getInheritanceChainAcrossSchemas, effectiveRelationshipEdges, resolveEffectiveEntityRecord, resolveEffectiveRelationshipOverlay, normalizeIfcTypeName, } from '@ifc-lite/parser';
5
5
  /**
6
6
  * The model's pending overlay, or `null` when it has none.
7
7
  *
@@ -19,10 +19,10 @@ export function pendingOverlay(model) {
19
19
  * query adapter, so it cannot go through `pendingOverlay` — that would need a
20
20
  * `LoadedModel`, which is the registry entry wrapped *around* the backend.
21
21
  */
22
- export function overlayFromView(view) {
22
+ export function overlayFromView(view, store) {
23
23
  if (!view || !view.hasPendingChanges())
24
24
  return null;
25
- return new ViewOverlay(view);
25
+ return new ViewOverlay(view, store);
26
26
  }
27
27
  /**
28
28
  * **Everything derived is lazy, and the point lookup does not derive at all.**
@@ -44,24 +44,33 @@ export function overlayFromView(view) {
44
44
  */
45
45
  class ViewOverlay {
46
46
  view;
47
+ store;
47
48
  tombstones = null;
48
49
  all = null;
49
50
  identified = null;
50
51
  count = null;
51
- /** Built on first use and never for a session that asks no relationship
52
- * question, which is most of them. */
53
- relationsByType = null;
54
- constructor(view) {
52
+ effectiveRelations = null;
53
+ constructor(view, store) {
55
54
  this.view = view;
55
+ this.store = store;
56
56
  }
57
57
  get deleted() {
58
58
  if (!this.tombstones)
59
59
  this.tombstones = this.view.getTombstones();
60
60
  return this.tombstones;
61
61
  }
62
+ /** The created entity as export writes it: effective class, name-relaid attributes, edits applied. */
63
+ effectiveCreatedEntity(entity) {
64
+ const record = resolveEffectiveEntityRecord(entity, {
65
+ retype: this.view.getEntityTypeMutation(entity.expressId)?.newType,
66
+ named: this.view.getAttributeMutationsForEntity(entity.expressId).map(({ name, value }) => [name, value]),
67
+ positional: this.view.getPositionalMutationsForEntity(entity.expressId) ?? [],
68
+ }, this.store.schemaVersion);
69
+ return toCreatedEntity({ ...entity, type: record.type, attributes: record.attributes });
70
+ }
62
71
  get createdAll() {
63
72
  if (!this.all)
64
- this.all = this.view.getNewEntities().map(toCreatedEntity);
73
+ this.all = this.view.getNewEntities().map(entity => this.effectiveCreatedEntity(entity));
65
74
  return this.all;
66
75
  }
67
76
  get created() {
@@ -80,7 +89,11 @@ class ViewOverlay {
80
89
  // The view already indexes new entities by id; going through `createdAll`
81
90
  // here made every `entityData` call O(number of queued creates).
82
91
  const raw = this.view.getNewEntity(expressId);
83
- return raw ? toCreatedEntity(raw) : null;
92
+ return raw ? this.effectiveCreatedEntity(raw) : null;
93
+ }
94
+ effectiveType(expressId) {
95
+ const retype = this.view.getEntityTypeMutation(expressId)?.newType;
96
+ return retype ? normalizeIfcTypeName(retype) : null;
84
97
  }
85
98
  attributes(expressId) {
86
99
  // Every queued write, not a chosen few. Last write wins, which is what
@@ -91,13 +104,29 @@ class ViewOverlay {
91
104
  }
92
105
  return out;
93
106
  }
107
+ positionalAttributes(expressId) {
108
+ return this.view.getPositionalMutationsForEntity(expressId) ?? new Map();
109
+ }
94
110
  attributesByEntity() {
95
111
  return this.view.getAttributeMutationsByEntity();
96
112
  }
97
- queuedRelations(ifcRelType) {
98
- if (!this.relationsByType)
99
- this.relationsByType = indexQueuedRelations(this.createdAll);
100
- return this.relationsByType.get(ifcRelType.toUpperCase()) ?? [];
113
+ get relationshipOverlay() {
114
+ if (!this.effectiveRelations)
115
+ this.effectiveRelations = resolveEffectiveRelationshipOverlay(this.store, {
116
+ createdEntities: () => this.view.getNewEntities(),
117
+ mutatedEntityIds: () => this.view.getMutations().map(mutation => mutation.entityId),
118
+ namedAttributes: id => this.view.getAttributeMutationsForEntity(id).map(({ name, value }) => [name, value]),
119
+ positionalAttributes: id => this.view.getPositionalMutationsForEntity(id) ?? [],
120
+ entityType: id => this.view.getEntityTypeMutation(id)?.newType,
121
+ isDeleted: id => this.view.isDeleted(id),
122
+ });
123
+ return this.effectiveRelations;
124
+ }
125
+ relationshipEdges(expressId, ifcRelType) {
126
+ return effectiveRelationshipEdges(this.relationshipOverlay, id => this.view.isDeleted(id), expressId, ifcRelType);
127
+ }
128
+ get supersededRelationshipIds() {
129
+ return this.relationshipOverlay.supersededSourceIds;
101
130
  }
102
131
  propertySets(expressId) {
103
132
  return this.view.getForEntity(expressId);
@@ -106,67 +135,6 @@ class ViewOverlay {
106
135
  return this.view.getQuantitiesForEntity(expressId);
107
136
  }
108
137
  }
109
- /**
110
- * Group queued `IfcRel…` creates by class, resolved to their two ends.
111
- *
112
- * **By attribute name, never by slot.** The two role attributes do sit at slots
113
- * 4 and 5 for every relationship in the schema, but which of them is the
114
- * `Relating` end is per-class: `IfcRelAggregates` puts `RelatingObject` at 4,
115
- * while `IfcRelContainedInSpatialStructure` puts `RelatedElements` there. That
116
- * is the same hazard as slot 4 being `ObjectType` on an `IfcObject` and
117
- * `ApplicableOccurrence` on an `IfcTypeObject`, and the same answer:
118
- * `getAttributeNamesAcrossSchemas` — cross-schema, so a queued IFC2X3 or IFC4X3
119
- * relationship resolves too (#2003).
120
- *
121
- * A relationship whose ends cannot be resolved is skipped rather than guessed —
122
- * which is also what happens to an IFC2X3 `IfcRelCoversSpaces`, whose slot 4 is
123
- * `RelatedSpace` where IFC4 has `RelatingSpace`: it has no `Relating…` end under
124
- * the IFC4 spelling, so it is skipped rather than wired backwards. It is never
125
- * looked up either, because `queuedRelations` is only ever asked for the five
126
- * classes in `REL_TYPE_MAP`, and those five carry identical role slots in all
127
- * three bundled schemas.
128
- */
129
- function indexQueuedRelations(created) {
130
- const byType = new Map();
131
- for (const entity of created) {
132
- const upper = entity.ifcType.toUpperCase();
133
- if (!upper.startsWith('IFCREL'))
134
- continue;
135
- const names = getAttributeNamesAcrossSchemas(entity.ifcType);
136
- if (names.length === 0)
137
- continue;
138
- let relating;
139
- let related;
140
- for (let i = 0; i < names.length; i++) {
141
- // The two prefixes are disjoint — `'Relating'.startsWith('Related')` is
142
- // false and so is the reverse — so the order of these two tests carries no
143
- // meaning. An earlier comment here claimed it did.
144
- if (names[i].startsWith('Related'))
145
- related ??= refIds(entity.attributes[i]);
146
- else if (names[i].startsWith('Relating'))
147
- relating ??= refIds(entity.attributes[i])[0];
148
- }
149
- if (relating === undefined || related === undefined || related.length === 0)
150
- continue;
151
- const list = byType.get(upper);
152
- const relation = { relationshipId: entity.expressId, relating, related };
153
- if (list)
154
- list.push(relation);
155
- else
156
- byType.set(upper, [relation]);
157
- }
158
- return byType;
159
- }
160
- /** Express ids from an authored `'#42'` reference or a list of them. */
161
- function refIds(value) {
162
- if (typeof value === 'string') {
163
- const id = Number.parseInt(value.trim().slice(1), 10);
164
- return value.trim().startsWith('#') && Number.isFinite(id) ? [id] : [];
165
- }
166
- if (Array.isArray(value))
167
- return value.flatMap((item) => refIds(item));
168
- return [];
169
- }
170
138
  /**
171
139
  * Entity count per STEP type key, with the session's queued creates and deletes
172
140
  * applied. Created entities are counted under the uppercase key the store uses,
@@ -247,9 +215,8 @@ export function pendingMutationsField(...overlays) {
247
215
  * GlobalId was `Width` — which then joined the cross-model identity list, so
248
216
  * `get_entity(global_id: 'Width')` resolved to a property value, `model_diff`
249
217
  * reported `Width` as an added entity, and `get_entities_bulk` could call it an
250
- * ambiguous GlobalId. This is the same hazard `indexQueuedRelations` avoids by
251
- * resolving relationship ends by attribute name, and the same one the columnar
252
- * parser hits when it keys an `IfcMaterial` on the Name in slot 0.
218
+ * ambiguous GlobalId. The columnar parser hits the same hazard when it keys an
219
+ * `IfcMaterial` on the Name in slot 0.
253
220
  *
254
221
  * So the header is read only when the class actually derives from `IfcRoot`,
255
222
  * cross-schema (#2003) so an IFC2X3- or IFC4X3-only root is not judged by the
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA8B/D,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,4BAA4B,EAC5B,mCAAmC,EAGnC,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAyE1B;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AACxC,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgC,EAAE,KAAmB;IACnF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AACD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW;IACE,IAAI,CAAsB;IAC1B,KAAK,CAAe;IAC7B,UAAU,GAA+B,IAAI,CAAC;IAC9C,GAAG,GAAoC,IAAI,CAAC;IAC5C,UAAU,GAAoC,IAAI,CAAC;IACnD,KAAK,GAAkB,IAAI,CAAC;IAC5B,kBAAkB,GAAwC,IAAI,CAAC;IAEvE,YAAY,IAAyB,EAAE,KAAmB;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,sGAAsG;IAC9F,sBAAsB,CAAC,MAAiB;QAC9C,MAAM,MAAM,GAAG,4BAA4B,CAAC,MAAM,EAAE;YAClD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO;YAClE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;YAClH,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;SAC9E,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,OAAO,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAqC,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxG,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,gBAAgB;QAClB,4EAA4E;QAC5E,uDAAuD;QACvD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QACnE,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oBAAoB,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IAC3E,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACnD,CAAC;IAED,IAAY,mBAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,IAAI,CAAC,kBAAkB,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,EAAE;gBACtG,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACjD,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACnF,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;gBACpH,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,IAAI,EAAE;gBAC/E,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,OAAO;gBAC9D,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;aACzC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,UAAmB;QACtD,OAAO,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAmB,EAAE,OAA8B;IAClF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACnD,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;QACtB,6EAA6E;QAC7E,sEAAsE;QACtE,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,IAAI,EAAE,CAAC;QAC5D,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmB,EAAE,OAA8B;IACnF,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC,WAAW,CAAC;IACvC,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC;YAAE,gBAAgB,EAAE,CAAC;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC;AAC1E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAG,QAAsC;IAC7E,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAChH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAS,eAAe,CAAC,MAAiB;IACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjF,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,IAAI;QACpB,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;QACrE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAChE,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACtG,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Attribute reading for the MCP diff adapter, and authored keys (issue #4955): `key_from` keys the
3
+ * comparison on `Tag` or a `Pset.Prop` instead of GlobalId. Read through the
4
+ * session OVERLAY, like every other fingerprinted value, so a queued edit or
5
+ * tombstone is what the comparison sees. Split out of `diff-fingerprints.ts`
6
+ * for size.
7
+ */
8
+ import { EntityExtractor, type IfcDataStore } from '@ifc-lite/parser';
9
+ import type { EntityFingerprint } from '@ifc-lite/diff';
10
+ import type { PendingOverlay } from '../overlay.js';
11
+ /** Adapter options (issue #4955); the CLI's `FingerprintAdapterOptions` restated. */
12
+ export interface FingerprintAdapterOptions {
13
+ /** `Tag` or `<PsetName>.<PropertyName>`; see the CLI copy for the rules. */
14
+ keyProperty?: string;
15
+ duplicateAuthoredKeys?: Map<string, number[]>;
16
+ }
17
+ /** Prefix on a fingerprint key taken from an authored property rather than a GlobalId. */
18
+ export declare const AUTHORED_KEY_PREFIX = "prop:";
19
+ /**
20
+ * A collision found on either revision invalidates that authored value on
21
+ * both. The first side may already have been built when the second reveals the
22
+ * collision, so repair its key back to the entity's GlobalId before diffing.
23
+ */
24
+ export declare function fallbackPairDuplicateAuthoredKeys(sides: readonly {
25
+ fingerprints: EntityFingerprint<number>[];
26
+ store: IfcDataStore;
27
+ }[], duplicates: ReadonlyMap<string, number[]>): void;
28
+ /**
29
+ * Build the key resolver for one model: `prop:<value>` where the entity carries
30
+ * a non-empty value nobody else does, GlobalId otherwise. Duplicate values are
31
+ * reported on `options.duplicateAuthoredKeys`. Tombstoned entities are not
32
+ * owners: a deleted twin no longer contests the key. A created entity has no
33
+ * store row to read and keeps its GlobalId.
34
+ */
35
+ export declare function authoredKeyResolver(store: IfcDataStore, overlay: PendingOverlay | null | undefined, options: FingerprintAdapterOptions, extractor: EntityExtractor, isDependentType: (typeKey: string) => boolean): (expressId: number, globalId: string) => string;
36
+ /**
37
+ * One named attribute, read positionally through the **cross-schema** attribute
38
+ * list (issue #2021). The CLI's twin, and it must stay one.
39
+ *
40
+ * `extractAllEntityAttributes` names attributes through the parser's IFC4
41
+ * codegen pin, which answers an EMPTY list for a class the pin does not carry —
42
+ * so a `.find(name === 'Tag')` over it silently finds nothing on every
43
+ * IFC4X3-only type object (`IfcRailType`, `IfcTrackElementType`,
44
+ * `IfcSignalType`, …) while working perfectly on IFC2X3 and IFC4. That is a
45
+ * no-op nobody would notice: the entity is in scope, its class name is right,
46
+ * `isTypeObject` is right, and only the evidence is missing.
47
+ *
48
+ * This is the same pinned-registry family as the membership defect `#2001`
49
+ * fixed, and it has to be answered from the same place: the inheritance chain
50
+ * decides *whether* to read a `Tag`, so the attribute list that decides *where*
51
+ * it sits must span the same schemas. `getAttributeNamesAcrossSchemas` returns
52
+ * the pinned result unchanged for every class the pin does know, so this is
53
+ * additive — no IFC2X3 or IFC4 entity's hash moves because of it.
54
+ *
55
+ * Reads the raw STEP slot rather than reusing `extractAllEntityAttributes`'
56
+ * display normalization: this value is hashed, not shown, so `$` (absent) is
57
+ * the only case that needs interpreting and it arrives as null.
58
+ */
59
+ export declare function attributeAcrossSchemas(store: IfcDataStore, expressId: number, ifcType: string, attributeName: string): string | undefined;
60
+ /**
61
+ * An overlay override wins whenever one exists, including when it is empty —
62
+ * `entity_set_attribute` with `''` clears the attribute, and falling back to
63
+ * the stored value there would hash the edit away.
64
+ */
65
+ export declare function override(edited: string | undefined, stored: string | undefined): string | undefined;
66
+ //# sourceMappingURL=diff-authored-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-authored-keys.d.ts","sourceRoot":"","sources":["../../src/tools/diff-authored-keys.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,EACL,eAAe,EAKf,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACxC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC/C;AAED,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,SAAS;IACd,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1C,KAAK,EAAE,YAAY,CAAC;CACrB,EAAE,EACH,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACxC,IAAI,CAmBN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,EAAE,yBAAyB,EAClC,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAC5C,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CA2CjD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAOpB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGnG"}
@@ -0,0 +1,144 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * Attribute reading for the MCP diff adapter, and authored keys (issue #4955): `key_from` keys the
6
+ * comparison on `Tag` or a `Pset.Prop` instead of GlobalId. Read through the
7
+ * session OVERLAY, like every other fingerprinted value, so a queued edit or
8
+ * tombstone is what the comparison sees. Split out of `diff-fingerprints.ts`
9
+ * for size.
10
+ */
11
+ import { EntityExtractor, authoredKeyValue, extractRootAttributesFromEntity, getAttributeNamesAcrossSchemas, parseAuthoredKeySpec, } from '@ifc-lite/parser';
12
+ /** Prefix on a fingerprint key taken from an authored property rather than a GlobalId. */
13
+ export const AUTHORED_KEY_PREFIX = 'prop:';
14
+ /**
15
+ * A collision found on either revision invalidates that authored value on
16
+ * both. The first side may already have been built when the second reveals the
17
+ * collision, so repair its key back to the entity's GlobalId before diffing.
18
+ */
19
+ export function fallbackPairDuplicateAuthoredKeys(sides, duplicates) {
20
+ if (duplicates.size === 0)
21
+ return;
22
+ for (const { fingerprints, store } of sides) {
23
+ const extractor = new EntityExtractor(store.source);
24
+ for (const fingerprint of fingerprints) {
25
+ if (!fingerprint.key.startsWith(AUTHORED_KEY_PREFIX))
26
+ continue;
27
+ const value = fingerprint.key.slice(AUTHORED_KEY_PREFIX.length);
28
+ if (!duplicates.has(value))
29
+ continue;
30
+ const tableGlobalId = store.entities.getGlobalId(fingerprint.ref);
31
+ const ref = store.entityIndex.byId.get(fingerprint.ref);
32
+ const entity = ref ? extractor.extractEntity(ref) : undefined;
33
+ const sourceGlobalId = entity ? extractRootAttributesFromEntity(entity).globalId : undefined;
34
+ const globalId = tableGlobalId || sourceGlobalId;
35
+ if (!globalId) {
36
+ throw new Error(`Cannot restore GlobalId for authored-key collision on #${fingerprint.ref}`);
37
+ }
38
+ fingerprint.key = globalId;
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * Build the key resolver for one model: `prop:<value>` where the entity carries
44
+ * a non-empty value nobody else does, GlobalId otherwise. Duplicate values are
45
+ * reported on `options.duplicateAuthoredKeys`. Tombstoned entities are not
46
+ * owners: a deleted twin no longer contests the key. A created entity has no
47
+ * store row to read and keeps its GlobalId.
48
+ */
49
+ export function authoredKeyResolver(store, overlay, options, extractor, isDependentType) {
50
+ const keySpec = options.keyProperty ? parseAuthoredKeySpec(options.keyProperty) : undefined;
51
+ if (!keySpec)
52
+ return (_expressId, globalId) => globalId;
53
+ const authoredKeyOf = (expressId) => {
54
+ if (keySpec.kind === 'tag') {
55
+ const edited = overlay?.attributes(expressId).get('Tag');
56
+ if (edited !== undefined)
57
+ return edited.trim().length > 0 ? edited.trim() : undefined;
58
+ }
59
+ else if (overlay) {
60
+ const set = overlay.propertySets(expressId).find((pset) => pset.name === keySpec.pset);
61
+ const property = set?.properties.find((p) => p.name === keySpec.property);
62
+ if (set) {
63
+ const raw = property?.value;
64
+ if (raw === null || raw === undefined)
65
+ return undefined;
66
+ const value = typeof raw === 'object' ? JSON.stringify(raw) : String(raw);
67
+ return value.trim().length > 0 ? value.trim() : undefined;
68
+ }
69
+ }
70
+ return authoredKeyValue(store, expressId, keySpec, extractor);
71
+ };
72
+ // A first pass so a value two entities share can be refused for both,
73
+ // instead of the diff's first-wins index quietly keeping one.
74
+ const owners = new Map();
75
+ for (const [typeKey, ids] of store.entityIndex.byType) {
76
+ if (isDependentType(typeKey))
77
+ continue;
78
+ for (const expressId of ids) {
79
+ if (overlay?.deleted.has(expressId))
80
+ continue;
81
+ const value = authoredKeyOf(expressId);
82
+ if (value === undefined)
83
+ continue;
84
+ const list = owners.get(value);
85
+ if (list)
86
+ list.push(expressId);
87
+ else
88
+ owners.set(value, [expressId]);
89
+ }
90
+ }
91
+ for (const [value, ids] of owners) {
92
+ if (ids.length > 1)
93
+ options.duplicateAuthoredKeys?.set(value, ids);
94
+ }
95
+ return (expressId, globalId) => {
96
+ const value = authoredKeyOf(expressId);
97
+ if (value === undefined)
98
+ return globalId;
99
+ return (owners.get(value)?.length ?? 0) === 1 ? `${AUTHORED_KEY_PREFIX}${value}` : globalId;
100
+ };
101
+ }
102
+ /**
103
+ * One named attribute, read positionally through the **cross-schema** attribute
104
+ * list (issue #2021). The CLI's twin, and it must stay one.
105
+ *
106
+ * `extractAllEntityAttributes` names attributes through the parser's IFC4
107
+ * codegen pin, which answers an EMPTY list for a class the pin does not carry —
108
+ * so a `.find(name === 'Tag')` over it silently finds nothing on every
109
+ * IFC4X3-only type object (`IfcRailType`, `IfcTrackElementType`,
110
+ * `IfcSignalType`, …) while working perfectly on IFC2X3 and IFC4. That is a
111
+ * no-op nobody would notice: the entity is in scope, its class name is right,
112
+ * `isTypeObject` is right, and only the evidence is missing.
113
+ *
114
+ * This is the same pinned-registry family as the membership defect `#2001`
115
+ * fixed, and it has to be answered from the same place: the inheritance chain
116
+ * decides *whether* to read a `Tag`, so the attribute list that decides *where*
117
+ * it sits must span the same schemas. `getAttributeNamesAcrossSchemas` returns
118
+ * the pinned result unchanged for every class the pin does know, so this is
119
+ * additive — no IFC2X3 or IFC4 entity's hash moves because of it.
120
+ *
121
+ * Reads the raw STEP slot rather than reusing `extractAllEntityAttributes`'
122
+ * display normalization: this value is hashed, not shown, so `$` (absent) is
123
+ * the only case that needs interpreting and it arrives as null.
124
+ */
125
+ export function attributeAcrossSchemas(store, expressId, ifcType, attributeName) {
126
+ const index = getAttributeNamesAcrossSchemas(ifcType).indexOf(attributeName);
127
+ if (index < 0)
128
+ return undefined;
129
+ const ref = store.entityIndex.byId.get(expressId);
130
+ if (!ref)
131
+ return undefined;
132
+ const raw = new EntityExtractor(store.source).extractEntity(ref)?.attributes?.[index];
133
+ return typeof raw === 'string' || typeof raw === 'number' ? String(raw) : undefined;
134
+ }
135
+ /**
136
+ * An overlay override wins whenever one exists, including when it is empty —
137
+ * `entity_set_attribute` with `''` clears the attribute, and falling back to
138
+ * the stored value there would hash the edit away.
139
+ */
140
+ export function override(edited, stored) {
141
+ const value = edited !== undefined ? edited : stored;
142
+ return value ? value : undefined;
143
+ }
144
+ //# sourceMappingURL=diff-authored-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-authored-keys.js","sourceRoot":"","sources":["../../src/tools/diff-authored-keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type PendingOverlay } from '../overlay.js';
2
+ import type { LoadedModel } from '../context.js';
3
+ /** Default cap on the listed `contentMatches`. Per-kind totals are reported
4
+ * whole, so the cap bounds the payload without hiding anything. */
5
+ export declare const DEFAULT_MAX_MATCHES = 200;
6
+ /**
7
+ * Default cap on the GlobalIds listed per side of one match.
8
+ *
9
+ * `max_matches` bounds how many groups come back, not how big one is, and a
10
+ * `duplicated` / `deduplicated` / `ambiguous` group is a set of candidates that
11
+ * in a repetitive model can run to thousands of entities on each side. Without
12
+ * this, `max_matches: 1` could still return a model-sized payload and overflow
13
+ * the context window the cap exists to protect.
14
+ *
15
+ * 20 is chosen against what the list is *for*. A group is the engine declining
16
+ * to guess, so its members are a hand-off to the caller; twenty candidates on a
17
+ * side is already past what anyone resolves by reading a list rather than by
18
+ * querying the two models. The overwhelmingly common match is a 1:1 `renamed`
19
+ * pair, which this never touches. Every group still reports `baseCount` and
20
+ * `headCount` whole, computed before the cap for the same reason
21
+ * `contentMatchCounts` is: truncation must never be what makes a model look
22
+ * cleanly matched.
23
+ */
24
+ export declare const DEFAULT_MAX_GROUP_MEMBERS = 20;
25
+ /** Run the real `@ifc-lite/diff` engine over two loaded models. See the
26
+ * module doc for the scope and abstention contract. */
27
+ export declare function contentDiff(left: LoadedModel, right: LoadedModel, overlays: {
28
+ left: PendingOverlay | null;
29
+ right: PendingOverlay | null;
30
+ }, maxMatches: number, maxGroupMembers: number, keyProperty?: string, splitMerge?: boolean, successors?: boolean): Record<string, unknown>;
31
+ /** One-line human summary of the engine result, for the text block. */
32
+ export declare function describeCounts(content: Record<string, unknown>): string;
33
+ //# sourceMappingURL=diff-content.d.ts.map