@bldrs-ai/conway 1.536.1507 → 1.543.1513

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 (49) hide show
  1. package/compiled/examples/browser-bundled.cjs +39 -5
  2. package/compiled/examples/cli-bundled.cjs +197 -22
  3. package/compiled/examples/cli-step-bundled.cjs +39 -5
  4. package/compiled/examples/validator-bundled.cjs +39 -5
  5. package/compiled/src/compat/web-ifc/geometry_shard_coordination.test.d.ts +2 -0
  6. package/compiled/src/compat/web-ifc/geometry_shard_coordination.test.d.ts.map +1 -0
  7. package/compiled/src/compat/web-ifc/geometry_shard_coordination.test.js +236 -0
  8. package/compiled/src/compat/web-ifc/ifc_api.d.ts +26 -0
  9. package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
  10. package/compiled/src/compat/web-ifc/ifc_api.js +33 -0
  11. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +6 -0
  12. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
  13. package/compiled/src/compat/web-ifc/ifc_api_preview_channel.test.js +264 -1
  14. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +116 -5
  15. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
  16. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +256 -85
  17. package/compiled/src/compat/web-ifc/store_preview_channel.d.ts +79 -0
  18. package/compiled/src/compat/web-ifc/store_preview_channel.d.ts.map +1 -1
  19. package/compiled/src/compat/web-ifc/store_preview_channel.js +237 -14
  20. package/compiled/src/compat/web-ifc/store_preview_channel.test.js +270 -1
  21. package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts +106 -1
  22. package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts.map +1 -1
  23. package/compiled/src/compat/web-ifc/streamed_preview_channel.js +269 -17
  24. package/compiled/src/core/progress_log.d.ts +75 -2
  25. package/compiled/src/core/progress_log.d.ts.map +1 -1
  26. package/compiled/src/core/progress_log.js +59 -2
  27. package/compiled/src/core/progress_log.test.js +75 -1
  28. package/compiled/src/ifc/dangling_placement_error.d.ts +35 -0
  29. package/compiled/src/ifc/dangling_placement_error.d.ts.map +1 -0
  30. package/compiled/src/ifc/dangling_placement_error.js +38 -0
  31. package/compiled/src/ifc/geometry_dispatch.d.ts +74 -3
  32. package/compiled/src/ifc/geometry_dispatch.d.ts.map +1 -1
  33. package/compiled/src/ifc/geometry_dispatch.js +261 -5
  34. package/compiled/src/ifc/geometry_dispatch.test.js +147 -1
  35. package/compiled/src/ifc/ifc_geometry_extraction.d.ts +54 -0
  36. package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
  37. package/compiled/src/ifc/ifc_geometry_extraction.js +153 -20
  38. package/compiled/src/index.d.ts +1 -1
  39. package/compiled/src/index.d.ts.map +1 -1
  40. package/compiled/src/index.js +1 -1
  41. package/compiled/src/step/dangling_reference_error.d.ts +34 -0
  42. package/compiled/src/step/dangling_reference_error.d.ts.map +1 -0
  43. package/compiled/src/step/dangling_reference_error.js +36 -0
  44. package/compiled/src/step/step_entity_base.d.ts +17 -0
  45. package/compiled/src/step/step_entity_base.d.ts.map +1 -1
  46. package/compiled/src/step/step_entity_base.js +28 -4
  47. package/compiled/src/version/version.js +1 -1
  48. package/compiled/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import { IfcMappedItem, IfcProduct, IfcProductDefinitionShape, } from "./ifc4_gen/index.js";
1
+ import { StepBufferNotResidentError } from "../step/step_buffer_provider.js";
2
+ import { IfcMappedItem, IfcProduct, IfcProductDefinitionShape, IfcRelAggregates, IfcRepresentation, } from "./ifc4_gen/index.js";
2
3
  /**
3
4
  * Placement keys for demand-driven geometry extraction: which shard — worker,
4
5
  * process, queue — should own a product, decided BEFORE extracting it.
@@ -44,9 +45,17 @@ import { IfcMappedItem, IfcProduct, IfcProductDefinitionShape, } from "./ifc4_ge
44
45
  * then to the product's own local ID, which is unique and therefore places
45
46
  * that product positionally rather than pretending to know better.
46
47
  *
47
- * Total, and deliberately so: a product whose attributes do not resolve gets
48
- * a usable key rather than aborting a load. A wrong placement costs a
49
- * duplicated extraction; a thrown error costs the model.
48
+ * Total for attribute failures, and deliberately so: a product whose
49
+ * attributes do not resolve gets a usable key rather than aborting a load. A
50
+ * wrong placement costs a duplicated extraction; a thrown error costs the
51
+ * model. That is safe precisely because an unresolvable attribute is a
52
+ * property of the FILE — every worker sees it and takes the same fallback.
53
+ *
54
+ * A NON-RESIDENT read is not: it is a property of one worker's paging, and a
55
+ * fallback taken for it is a key another worker will not agree with. Those
56
+ * propagate. On a windowed source, call {@link computeDispatchKeys} rather
57
+ * than this — it pages the walk's closure first, so the only way to reach
58
+ * that throw is a defect in the paging itself.
50
59
  *
51
60
  * @param model The model to read attributes from.
52
61
  * @param productLocalID The product's local ID.
@@ -73,7 +82,10 @@ export function geometryDispatchKey(model, productLocalID) {
73
82
  const [firstRepresentation] = definition.Representations;
74
83
  return firstRepresentation?.localID ?? productLocalID;
75
84
  }
76
- catch {
85
+ catch (error) {
86
+ if (error instanceof StepBufferNotResidentError) {
87
+ throw error;
88
+ }
77
89
  return productLocalID;
78
90
  }
79
91
  }
@@ -110,3 +122,247 @@ function mappedSourceOf(representation) {
110
122
  }
111
123
  return void 0;
112
124
  }
125
+ /* Products whose dispatch closure is held resident at once. Each wave pins
126
+ * four hops of small attribute records — product, shape, representations,
127
+ * mapped items — so this bounds the pinned set rather than the paged one;
128
+ * 1024 products is a few thousand records, well inside a windowed source's
129
+ * resident chunk allowance on every model in the corpus. */
130
+ const DISPATCH_WAVE_SIZE = 1024;
131
+ /**
132
+ * Dispatch keys for a worklist, computed with the source bytes guaranteed
133
+ * present. Parallel to the worklist — `keys[i]` places `localIDs[i]`.
134
+ *
135
+ * **This is what makes a windowed source shardable.** Called inline,
136
+ * {@link geometryDispatchKey} reads records as it walks; on a windowed
137
+ * source a record that is not paged in throws, and the walk would fall back
138
+ * to the product's own local ID — so *which* products fell back would depend
139
+ * on which chunks that worker happened to hold. Two workers then disagree
140
+ * about a product, and both moduli select it (extracted twice) or neither
141
+ * (dropped silently). Paging the walk's own closure first removes the
142
+ * dependence: every worker reads the same bytes and computes the same key.
143
+ *
144
+ * A fully resident source takes the direct walk — there is nothing to page,
145
+ * and the keys are identical by construction rather than by agreement, which
146
+ * is what the paired windowed/resident fixtures assert.
147
+ *
148
+ * **Aligned to the worklist, not indexed by local ID.** Keys are wanted for
149
+ * products and for rel-aggregates' relating objects — tens of thousands of
150
+ * entries — and the consumer filters the worklist in order, so there is
151
+ * nothing to look up. A column over local IDs would be 37 MB on PSB's 9.4 M
152
+ * records to carry ~24 k useful ones.
153
+ *
154
+ * @param model The model to read attributes from.
155
+ * @param localIDs The worklist, in the order the consumer will filter it.
156
+ * @param waveSize Products whose closure is pinned at once.
157
+ * @return {Promise<Uint32Array>} Keys aligned to `localIDs`.
158
+ */
159
+ export async function computeDispatchKeys(model, localIDs, waveSize = DISPATCH_WAVE_SIZE) {
160
+ const keys = new Uint32Array(localIDs.length);
161
+ if (!model.isSourceExternal) {
162
+ for (let where = 0; where < localIDs.length; ++where) {
163
+ keys[where] = geometryDispatchKey(model, localIDs[where]);
164
+ }
165
+ return keys;
166
+ }
167
+ const wave = Math.max(1, Math.floor(waveSize));
168
+ for (let start = 0; start < localIDs.length; start += wave) {
169
+ const end = Math.min(start + wave, localIDs.length);
170
+ const pinned = new Set();
171
+ try {
172
+ await pageDispatchClosure(model, localIDs, start, end, pinned);
173
+ // Deliberately the same function the resident path calls, re-walking
174
+ // records this pass has just read. The duplicated getter work buys the
175
+ // property that matters: there is one walk, so a resident key and a
176
+ // windowed key cannot drift apart as either is edited. The pass it
177
+ // replaces walked once per product too — this is not new work against
178
+ // an unsharded load, it is the same walk paid before the split.
179
+ for (let where = start; where < end; ++where) {
180
+ keys[where] = geometryDispatchKey(model, localIDs[where]);
181
+ }
182
+ }
183
+ finally {
184
+ model.releaseSourceViews(pinned);
185
+ model.unpinLocalIDs(pinned);
186
+ }
187
+ }
188
+ return keys;
189
+ }
190
+ /**
191
+ * Page every record {@link geometryDispatchKey} will read for one wave of
192
+ * products, pinning each hop's records so a later hop's paging cannot evict
193
+ * an earlier one.
194
+ *
195
+ * Four hops, matching the walk exactly: the product record carries
196
+ * `Representation`; the shape record carries `Representations`; each
197
+ * representation record carries `Items`; a mapped item's record carries
198
+ * `MappingSource`. Nothing below that is read — whether an item IS an
199
+ * `IfcMappedItem`, and the local ID a resolved reference reports, both come
200
+ * from the index columns rather than from bytes — so the closure stops here
201
+ * rather than descending into geometry.
202
+ *
203
+ * @param model The model to page.
204
+ * @param localIDs The worklist.
205
+ * @param start First worklist entry in this wave.
206
+ * @param end One past the last.
207
+ * @param pinned Collects every pinned local ID for the caller to release.
208
+ */
209
+ async function pageDispatchClosure(model, localIDs, start, end, pinned) {
210
+ const seeds = [];
211
+ for (let where = start; where < end; ++where) {
212
+ seeds.push(localIDs[where]);
213
+ }
214
+ await pinAndPage(model, seeds, pinned);
215
+ const shapes = [];
216
+ for (const productLocalID of seeds) {
217
+ const product = readResolved(() => model.getElementByLocalID(productLocalID));
218
+ if (!(product instanceof IfcProduct)) {
219
+ continue;
220
+ }
221
+ const definition = readResolved(() => product.Representation);
222
+ if (definition instanceof IfcProductDefinitionShape) {
223
+ shapes.push(definition.localID);
224
+ }
225
+ }
226
+ await pinAndPage(model, shapes, pinned);
227
+ const representations = [];
228
+ for (const shapeLocalID of shapes) {
229
+ const definition = model.getElementByLocalID(shapeLocalID);
230
+ if (!(definition instanceof IfcProductDefinitionShape)) {
231
+ continue;
232
+ }
233
+ for (const representation of readResolved(() => definition.Representations) ?? []) {
234
+ representations.push(representation.localID);
235
+ }
236
+ }
237
+ await pinAndPage(model, representations, pinned);
238
+ const mappedItems = [];
239
+ for (const representationLocalID of representations) {
240
+ const representation = model.getElementByLocalID(representationLocalID);
241
+ if (!(representation instanceof IfcRepresentation)) {
242
+ continue;
243
+ }
244
+ for (const item of readResolved(() => representation.Items) ?? []) {
245
+ if (item instanceof IfcMappedItem) {
246
+ mappedItems.push(item.localID);
247
+ }
248
+ }
249
+ }
250
+ await pinAndPage(model, mappedItems, pinned);
251
+ }
252
+ /**
253
+ * Hold one hop's records against eviction and page them in as one wave.
254
+ *
255
+ * Pin BEFORE the await, as the closure walk in `StepModelBase` does: an
256
+ * overlapping page-in for a different range would otherwise be free to evict
257
+ * a chunk this hop already landed, and the read after the await would throw
258
+ * for a record this function reported as resident.
259
+ *
260
+ * @param model The model to page.
261
+ * @param hopLocalIDs Records this hop needs; duplicates and already-pinned
262
+ * entries are skipped.
263
+ * @param pinned Every local ID pinned so far, extended in place.
264
+ */
265
+ async function pinAndPage(model, hopLocalIDs, pinned) {
266
+ const fresh = [];
267
+ for (const localID of hopLocalIDs) {
268
+ if (pinned.has(localID)) {
269
+ continue;
270
+ }
271
+ pinned.add(localID);
272
+ model.pinByLocalID(localID);
273
+ fresh.push(localID);
274
+ }
275
+ if (fresh.length === 0) {
276
+ return;
277
+ }
278
+ await Promise.all(fresh.map((localID) => model.ensureResidentByLocalID(localID)));
279
+ }
280
+ /**
281
+ * Read an attribute, treating an unresolvable one as absent — but never a
282
+ * non-resident one.
283
+ *
284
+ * The distinction is the whole point of this pass. A malformed or missing
285
+ * attribute is a property of the FILE: every worker sees it, every worker
286
+ * takes the same fallback, and the partition holds. A non-resident read is a
287
+ * property of THIS worker's paging, and swallowing it is exactly the silent
288
+ * disagreement that kept windowed sources unshardable. So it propagates, and
289
+ * a paging defect fails the load instead of quietly corrupting the split.
290
+ *
291
+ * @param read The attribute access.
292
+ * @return {T|undefined} The value, or undefined if it did not resolve.
293
+ */
294
+ function readResolved(read) {
295
+ try {
296
+ return read();
297
+ }
298
+ catch (error) {
299
+ if (error instanceof StepBufferNotResidentError) {
300
+ throw error;
301
+ }
302
+ return void 0;
303
+ }
304
+ }
305
+ /**
306
+ * The local IDs an aggregate pass should be PLACED by — each
307
+ * `IfcRelAggregates`' relating object, paged first on a windowed source.
308
+ *
309
+ * A rel-aggregates entry is not an `IfcProduct`, so keying on the
310
+ * relationship record itself falls straight through
311
+ * {@link geometryDispatchKey} to its own local ID and shards by file
312
+ * position while claiming to place by representation. The assembly whose
313
+ * geometry the pass actually builds is the relating object, and that is what
314
+ * has to agree across workers.
315
+ *
316
+ * An aggregate whose relating object does not resolve keys by its own local
317
+ * ID — the same file-wide fallback the product walk takes, and the same
318
+ * reason it is safe.
319
+ *
320
+ * @param model The model to read attributes from.
321
+ * @param aggregateLocalIDs The `IfcRelAggregates` worklist, in order.
322
+ * @param waveSize Records whose bytes are pinned at once.
323
+ * @return {Promise<number[]>} Seeds aligned to `aggregateLocalIDs`.
324
+ */
325
+ export async function computeRelatingLocalIDs(model, aggregateLocalIDs, waveSize = DISPATCH_WAVE_SIZE) {
326
+ const seeds = [];
327
+ if (!model.isSourceExternal) {
328
+ for (const localID of aggregateLocalIDs) {
329
+ seeds.push(relatingLocalIDOf(model, localID));
330
+ }
331
+ return seeds;
332
+ }
333
+ const wave = Math.max(1, Math.floor(waveSize));
334
+ for (let start = 0; start < aggregateLocalIDs.length; start += wave) {
335
+ const end = Math.min(start + wave, aggregateLocalIDs.length);
336
+ const pinned = new Set();
337
+ try {
338
+ await pinAndPage(model, aggregateLocalIDs.slice(start, end), pinned);
339
+ for (let where = start; where < end; ++where) {
340
+ seeds.push(relatingLocalIDOf(model, aggregateLocalIDs[where]));
341
+ }
342
+ }
343
+ finally {
344
+ model.releaseSourceViews(pinned);
345
+ model.unpinLocalIDs(pinned);
346
+ }
347
+ }
348
+ return seeds;
349
+ }
350
+ /**
351
+ * One aggregate's relating object, or the aggregate itself when it does not
352
+ * resolve.
353
+ *
354
+ * Reads the aggregate's record, so a windowed caller must have paged it —
355
+ * {@link computeRelatingLocalIDs} is that caller. Exported for the resident
356
+ * path, which has nothing to page.
357
+ *
358
+ * @param model The model to read attributes from.
359
+ * @param aggregateLocalID The `IfcRelAggregates` record.
360
+ * @return {number} The local ID to key by.
361
+ */
362
+ export function relatingLocalIDOf(model, aggregateLocalID) {
363
+ const aggregate = readResolved(() => model.getElementByLocalID(aggregateLocalID));
364
+ if (!(aggregate instanceof IfcRelAggregates)) {
365
+ return aggregateLocalID;
366
+ }
367
+ return readResolved(() => aggregate.RelatingObject?.localID) ?? aggregateLocalID;
368
+ }
@@ -2,7 +2,8 @@
2
2
  import * as fs from "fs";
3
3
  import { describe, expect, test } from "@jest/globals";
4
4
  import { IfcAPI } from "../compat/web-ifc/ifc_api.js";
5
- import { geometryDispatchKey, shardOfDispatchKey } from "./geometry_dispatch.js";
5
+ import { InMemoryStepByteStore, StepBufferNotResidentError, } from "../step/step_buffer_provider.js";
6
+ import { computeDispatchKeys, geometryDispatchKey, shardOfDispatchKey, } from "./geometry_dispatch.js";
6
7
  const SETTINGS = { COORDINATE_TO_ORIGIN: true, USE_FAST_BOOLS: true };
7
8
  describe("geometryDispatchKey", () => {
8
9
  test("products sharing a representation map key together, and land together", async () => {
@@ -68,3 +69,148 @@ describe("geometryDispatchKey", () => {
68
69
  api.CloseModel(modelID);
69
70
  }, 240000);
70
71
  });
72
+ /* Tiny windows so a small fixture still evicts: the point of these tests is
73
+ * that a record the walk needs is genuinely NOT resident when the walk
74
+ * starts, which is the condition that made windowed sources unshardable. */
75
+ const CHUNK_BYTES = 512;
76
+ const MAX_RESIDENT_CHUNKS = 3;
77
+ /* Fixtures chosen for what the dispatch walk actually reaches: one with an
78
+ * IfcRepresentationMap two products share (the mapped-source hop), one with
79
+ * an IfcRelAggregates assembly (the relating-object hop). */
80
+ const WINDOWED_FIXTURES = [
81
+ "data/mapped_shared_representation.ifc",
82
+ "data/aggregate_master_voids.ifc",
83
+ ];
84
+ /**
85
+ * Open a fixture deferred, then spill its source behind tiny windows.
86
+ *
87
+ * @param api An initialised API.
88
+ * @param fixture Path to the IFC file.
89
+ * @param spill Whether to windowed the source after opening.
90
+ * @return {Promise<object>} The model handle and its passthrough.
91
+ */
92
+ async function openDeferred(api, fixture, spill) {
93
+ const bytes = new Uint8Array(fs.readFileSync(fixture));
94
+ const modelID = await api.OpenModelStreamed(bytes, { ...SETTINGS, COORDINATE_TO_ORIGIN: false, DEFER_GEOMETRY: true });
95
+ if (spill) {
96
+ expect(api.SpillModelSource(modelID, new InMemoryStepByteStore(bytes), CHUNK_BYTES, MAX_RESIDENT_CHUNKS)).toBe(true);
97
+ }
98
+ const passthrough = api.getPassthrough(modelID);
99
+ expect(passthrough.model[0].isSourceExternal).toBe(spill);
100
+ return { modelID, passthrough };
101
+ }
102
+ describe("dispatch keys on a windowed source", () => {
103
+ test.each(WINDOWED_FIXTURES)("%s keys identically windowed and resident", async (fixture) => {
104
+ // The property the whole partition rests on, stated as a test: the
105
+ // key is a function of the FILE, not of which chunks this worker
106
+ // happens to hold. Before computeDispatchKeys existed, a windowed
107
+ // walk silently fell back to the product's own local ID for every
108
+ // record it could not read, so two workers disagreed and a product
109
+ // was extracted twice or dropped.
110
+ const api = new IfcAPI();
111
+ await api.Init();
112
+ const resident = await openDeferred(api, fixture, false);
113
+ resident.passthrough.ensureDemandWorklists_();
114
+ const products = resident.passthrough.demandProducts_ ?? [];
115
+ expect(products.length).toBeGreaterThan(0);
116
+ const residentKeys = await computeDispatchKeys(resident.passthrough.model[0], products);
117
+ const windowed = await openDeferred(api, fixture, true);
118
+ // The walk must really be short of bytes here, or the comparison
119
+ // below would pass on a model that never needed paging at all —
120
+ // exactly the blind spot that let the old refusal stand unexamined.
121
+ let refusedInline = 0;
122
+ for (const localID of products) {
123
+ try {
124
+ geometryDispatchKey(windowed.passthrough.model[0], localID);
125
+ }
126
+ catch (error) {
127
+ expect(error).toBeInstanceOf(StepBufferNotResidentError);
128
+ ++refusedInline;
129
+ }
130
+ }
131
+ expect(refusedInline).toBeGreaterThan(0);
132
+ const windowedKeys = await computeDispatchKeys(windowed.passthrough.model[0], products);
133
+ expect(Array.from(windowedKeys)).toEqual(Array.from(residentKeys));
134
+ api.CloseModel(resident.modelID);
135
+ api.CloseModel(windowed.modelID);
136
+ }, 240000);
137
+ test("aggregate targets survive a windowed source, so nothing is emitted twice", async () => {
138
+ // The set of products the aggregates pass owns is read from the
139
+ // IfcRelAggregates records themselves. On a windowed source those
140
+ // pages are routinely gone by the first pump, the sync walk swallows
141
+ // the non-resident read, and the incomplete set is cached for the
142
+ // model's life — so a child it missed stays in the per-product
143
+ // worklist AND in the aggregates pass, and is emitted twice: once
144
+ // with the uncut content the deferral exists to suppress.
145
+ //
146
+ // Costs an unsharded windowed load the same duplicate, which is
147
+ // Share's own path (conway#538 review).
148
+ const api = new IfcAPI();
149
+ await api.Init();
150
+ const fixture = "data/aggregate_master_voids.ifc";
151
+ const resident = await openDeferred(api, fixture, false);
152
+ resident.passthrough.ensureDemandWorklists_();
153
+ const expectedTargets = resident.passthrough.conwayGeometry_
154
+ .aggregateTargetLocalIDs().size;
155
+ const expectedProducts = (resident.passthrough.demandProducts_ ?? []).length;
156
+ // The fixture has to HAVE an aggregate target, or the comparison
157
+ // below is two zeros agreeing.
158
+ expect(expectedTargets).toBeGreaterThan(0);
159
+ api.CloseModel(resident.modelID);
160
+ const windowed = await openDeferred(api, fixture, true);
161
+ await windowed.passthrough.ensureDemandWorklistsAsync_();
162
+ expect(windowed.passthrough.conwayGeometry_
163
+ .aggregateTargetLocalIDs().size).toBe(expectedTargets);
164
+ expect((windowed.passthrough.demandProducts_ ?? []).length)
165
+ .toBe(expectedProducts);
166
+ api.CloseModel(windowed.modelID);
167
+ }, 240000);
168
+ test("a sharded windowed model refuses the synchronous worklist build", async () => {
169
+ // The internal invariant behind everything above: the sync build
170
+ // cannot page, so a sharded windowed model MUST reach the async one.
171
+ // Nothing calls it wrongly today — the sync pump refuses a windowed
172
+ // source before it gets here — but a future pump entry that forgot
173
+ // the await would otherwise partition on whatever happened to be
174
+ // resident, silently, which is the exact failure this milestone
175
+ // exists to remove.
176
+ const api = new IfcAPI();
177
+ await api.Init();
178
+ const { modelID, passthrough } = await openDeferred(api, WINDOWED_FIXTURES[0], true);
179
+ api.SetGeometryShard(modelID, { index: 0, count: 2 });
180
+ expect(() => passthrough.ensureDemandWorklists_())
181
+ .toThrow(/async worklist build/);
182
+ api.CloseModel(modelID);
183
+ }, 240000);
184
+ test.each(WINDOWED_FIXTURES)("%s shards into an exact partition when windowed", async (fixture) => {
185
+ // What a pool needs and a union-of-complete-copies check cannot see:
186
+ // every product owned by exactly one shard. A residency-dependent key
187
+ // shows up here as a duplicate (two shards select it) or a hole
188
+ // (neither does), so the counts are asserted, not just the set.
189
+ const api = new IfcAPI();
190
+ await api.Init();
191
+ const shardCount = 3;
192
+ const whole = await openDeferred(api, fixture, true);
193
+ await whole.passthrough.ensureDemandWorklistsAsync_();
194
+ const expectedProducts = (whole.passthrough.demandProducts_ ?? []).slice();
195
+ const expectedAggregates = (whole.passthrough.demandAggregates_ ?? []).map((each) => each.localID);
196
+ expect(expectedProducts.length).toBeGreaterThan(0);
197
+ api.CloseModel(whole.modelID);
198
+ const unionProducts = [];
199
+ const unionAggregates = [];
200
+ for (let index = 0; index < shardCount; ++index) {
201
+ const shardModel = await openDeferred(api, fixture, true);
202
+ expect(api.SetGeometryShard(shardModel.modelID, { index, count: shardCount })).toBe(true);
203
+ await shardModel.passthrough.ensureDemandWorklistsAsync_();
204
+ unionProducts.push(...(shardModel.passthrough.demandProducts_ ?? []));
205
+ unionAggregates.push(...(shardModel.passthrough.demandAggregates_ ?? [])
206
+ .map((each) => each.localID));
207
+ api.CloseModel(shardModel.modelID);
208
+ }
209
+ // Sorted rather than set-compared: a duplicate survives sorting and
210
+ // dies in a Set, and duplicates are half of what a bad key produces.
211
+ expect(unionProducts.slice().sort((a, b) => a - b))
212
+ .toEqual(expectedProducts.slice().sort((a, b) => a - b));
213
+ expect(unionAggregates.slice().sort((a, b) => a - b))
214
+ .toEqual(expectedAggregates.slice().sort((a, b) => a - b));
215
+ }, 240000);
216
+ });
@@ -931,6 +931,12 @@ export declare class IfcGeometryExtraction {
931
931
  * IFCLOCALPLACEMENT ancestors and their axis/point records included,
932
932
  * since `extractPlacement` resolves them through the same layer.
933
933
  *
934
+ * Only an unresolved reference (`DanglingReferenceError`) is tagged as
935
+ * a deferral. A placement that is malformed rather than unscanned still
936
+ * throws, and still stops the product being extracted, but propagates
937
+ * untagged so the preview does not queue it for a retry that can never
938
+ * come good — see the catch below.
939
+ *
934
940
  * The throw intentionally propagates: the demand seam
935
941
  * (`extractProductGeometryByLocalID` callers, the preview adapter's
936
942
  * per-unit catch) already treats a throwing product as
@@ -1097,7 +1103,9 @@ export declare class IfcGeometryExtraction {
1097
1103
  */
1098
1104
  dumpGeometry(outputFilePath: string, geometry: GeometryObject): void;
1099
1105
  private extractionMapsPrepared_;
1106
+ private static readonly AGGREGATE_TARGET_WAVE_SIZE_;
1100
1107
  private aggregateTargetLocalIDs_?;
1108
+ private aggregateTargetsPaged_;
1101
1109
  /**
1102
1110
  * Local IDs of every IfcProduct that is a RelatedObject of any
1103
1111
  * IfcRelAggregates — the exact set the rel-aggregates pass
@@ -1119,6 +1127,52 @@ export declare class IfcGeometryExtraction {
1119
1127
  * pass; empty for models without IfcRelAggregates.
1120
1128
  */
1121
1129
  aggregateTargetLocalIDs(): Set<number>;
1130
+ /**
1131
+ * Windowed twin of {@link aggregateTargetLocalIDs}: page each
1132
+ * relationship record before scanning it, so the set is COMPLETE rather
1133
+ * than whatever this instance's LRU happened to still hold.
1134
+ *
1135
+ * **This is a correctness fix, not a prefetch.** The sync walk reads each
1136
+ * `IfcRelAggregates` record's bytes, and on a windowed source those pages
1137
+ * are routinely gone by the first pump — the parse walked past them
1138
+ * hundreds of megabytes ago. The per-record catch then swallows the
1139
+ * non-resident read, the incomplete set is **cached for the model's
1140
+ * life**, and every child it failed to record stays in the per-product
1141
+ * worklist *as well as* in the aggregates pass. That product is then
1142
+ * emitted twice: once with the uncut/placeholder content the deferral
1143
+ * exists to suppress, and again from the aggregates pass. Measured on
1144
+ * `aggregate_master_voids.ifc` behind 512-byte windows: 0 targets against
1145
+ * a resident open's 1, and 3 demand products against 2.
1146
+ *
1147
+ * Paged in bounded waves, and the scan happens INSIDE each wave rather
1148
+ * than after all of them: a model with many assemblies would otherwise
1149
+ * need every relationship record resident at once, which is the residency
1150
+ * ceiling this is supposed to respect.
1151
+ *
1152
+ * A non-resident read still throws from here — after this has paged the
1153
+ * record, that is a defect in the paging, not a property of the file.
1154
+ *
1155
+ * @param waveSize Relationship records paged and scanned at once.
1156
+ * @return {Promise<Set<number>>} The same set the sync twin caches.
1157
+ */
1158
+ ensureAggregateTargetLocalIDs(waveSize?: number): Promise<Set<number>>;
1159
+ /**
1160
+ * Record one relationship's product children.
1161
+ *
1162
+ * Shared by the sync and paged walks so there is a single definition of
1163
+ * what an aggregate target is. Reads only this relationship's own record:
1164
+ * children resolve through the express map and the typeID column, so the
1165
+ * scan never hydrates a child product (doing so paged most of the file
1166
+ * during demand prep).
1167
+ *
1168
+ * @param relAggregate The relationship to scan.
1169
+ * @param targets Accumulator.
1170
+ * @param productTypes The IfcProduct type set.
1171
+ * @param strictResidency When set, a non-resident read propagates instead
1172
+ * of being tolerated — for the paged walk, which has already made the
1173
+ * record resident and so can only reach that error through a defect.
1174
+ */
1175
+ private addAggregateTargets_;
1122
1176
  /**
1123
1177
  * One-time extraction setup shared by the whole-model walk and the
1124
1178
  * per-product demand path (Phase B2): linear scaling factor and the
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}