@ifc-lite/mcp 0.23.0 → 0.25.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 (168) hide show
  1. package/README.md +72 -0
  2. package/dist/cli.js +2 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/context.d.ts +2 -0
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/context.js +5 -0
  7. package/dist/context.js.map +1 -1
  8. package/dist/errors.d.ts +2 -0
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +2 -0
  11. package/dist/errors.js.map +1 -1
  12. package/dist/headless-backend-align.d.ts +6 -0
  13. package/dist/headless-backend-align.d.ts.map +1 -0
  14. package/dist/headless-backend-align.js +35 -0
  15. package/dist/headless-backend-align.js.map +1 -0
  16. package/dist/headless-backend-modelling.d.ts +41 -1
  17. package/dist/headless-backend-modelling.d.ts.map +1 -1
  18. package/dist/headless-backend-modelling.js +112 -6
  19. package/dist/headless-backend-modelling.js.map +1 -1
  20. package/dist/headless-backend-room.d.ts +8 -0
  21. package/dist/headless-backend-room.d.ts.map +1 -0
  22. package/dist/headless-backend-room.js +24 -0
  23. package/dist/headless-backend-room.js.map +1 -0
  24. package/dist/headless-backend-store-stubs.d.ts +4 -6
  25. package/dist/headless-backend-store-stubs.d.ts.map +1 -1
  26. package/dist/headless-backend-store-stubs.js +1 -12
  27. package/dist/headless-backend-store-stubs.js.map +1 -1
  28. package/dist/headless-backend-store.d.ts +3 -1
  29. package/dist/headless-backend-store.d.ts.map +1 -1
  30. package/dist/headless-backend-store.js +14 -22
  31. package/dist/headless-backend-store.js.map +1 -1
  32. package/dist/headless-backend.d.ts +4 -0
  33. package/dist/headless-backend.d.ts.map +1 -1
  34. package/dist/headless-backend.js +7 -1
  35. package/dist/headless-backend.js.map +1 -1
  36. package/dist/headless-native-geometry.d.ts +6 -0
  37. package/dist/headless-native-geometry.d.ts.map +1 -0
  38. package/dist/headless-native-geometry.js +31 -0
  39. package/dist/headless-native-geometry.js.map +1 -0
  40. package/dist/headless-room-geometry.d.ts +9 -0
  41. package/dist/headless-room-geometry.d.ts.map +1 -0
  42. package/dist/headless-room-geometry.js +66 -0
  43. package/dist/headless-room-geometry.js.map +1 -0
  44. package/dist/protocol/types.d.ts +1 -0
  45. package/dist/protocol/types.d.ts.map +1 -1
  46. package/dist/resources/providers.d.ts.map +1 -1
  47. package/dist/resources/providers.js +10 -1
  48. package/dist/resources/providers.js.map +1 -1
  49. package/dist/server.d.ts.map +1 -1
  50. package/dist/server.js +7 -17
  51. package/dist/server.js.map +1 -1
  52. package/dist/session-cleanup.d.ts +5 -0
  53. package/dist/session-cleanup.d.ts.map +1 -0
  54. package/dist/session-cleanup.js +36 -0
  55. package/dist/session-cleanup.js.map +1 -0
  56. package/dist/test/live-tool-session.d.ts +9 -0
  57. package/dist/test/live-tool-session.d.ts.map +1 -0
  58. package/dist/test/live-tool-session.js +30 -0
  59. package/dist/test/live-tool-session.js.map +1 -0
  60. package/dist/tools/bcf.js +2 -2
  61. package/dist/tools/bcf.js.map +1 -1
  62. package/dist/tools/check-rules.d.ts.map +1 -1
  63. package/dist/tools/check-rules.js +18 -5
  64. package/dist/tools/check-rules.js.map +1 -1
  65. package/dist/tools/copy-elements.d.ts +4 -0
  66. package/dist/tools/copy-elements.d.ts.map +1 -0
  67. package/dist/tools/copy-elements.js +76 -0
  68. package/dist/tools/copy-elements.js.map +1 -0
  69. package/dist/tools/design-place.d.ts +3 -0
  70. package/dist/tools/design-place.d.ts.map +1 -0
  71. package/dist/tools/design-place.js +79 -0
  72. package/dist/tools/design-place.js.map +1 -0
  73. package/dist/tools/discovery.js +3 -3
  74. package/dist/tools/discovery.js.map +1 -1
  75. package/dist/tools/export.js +7 -7
  76. package/dist/tools/export.js.map +1 -1
  77. package/dist/tools/flow-ai.d.ts +10 -0
  78. package/dist/tools/flow-ai.d.ts.map +1 -0
  79. package/dist/tools/flow-ai.js +24 -0
  80. package/dist/tools/flow-ai.js.map +1 -0
  81. package/dist/tools/flow-host.d.ts +2 -2
  82. package/dist/tools/flow-host.d.ts.map +1 -1
  83. package/dist/tools/flow-host.js +15 -1
  84. package/dist/tools/flow-host.js.map +1 -1
  85. package/dist/tools/flow-review-host.d.ts +28 -0
  86. package/dist/tools/flow-review-host.d.ts.map +1 -0
  87. package/dist/tools/flow-review-host.js +142 -0
  88. package/dist/tools/flow-review-host.js.map +1 -0
  89. package/dist/tools/flow.d.ts.map +1 -1
  90. package/dist/tools/flow.js +145 -99
  91. package/dist/tools/flow.js.map +1 -1
  92. package/dist/tools/hosted-edit.d.ts +4 -0
  93. package/dist/tools/hosted-edit.d.ts.map +1 -0
  94. package/dist/tools/hosted-edit.js +37 -0
  95. package/dist/tools/hosted-edit.js.map +1 -0
  96. package/dist/tools/ids-accessor.d.ts +2 -1
  97. package/dist/tools/ids-accessor.d.ts.map +1 -1
  98. package/dist/tools/ids-accessor.js.map +1 -1
  99. package/dist/tools/ids-authoring-model.d.ts +3 -0
  100. package/dist/tools/ids-authoring-model.d.ts.map +1 -0
  101. package/dist/tools/ids-authoring-model.js +112 -0
  102. package/dist/tools/ids-authoring-model.js.map +1 -0
  103. package/dist/tools/ids-authoring.d.ts +3 -0
  104. package/dist/tools/ids-authoring.d.ts.map +1 -0
  105. package/dist/tools/ids-authoring.js +202 -0
  106. package/dist/tools/ids-authoring.js.map +1 -0
  107. package/dist/tools/ids-schema.d.ts +3 -0
  108. package/dist/tools/ids-schema.d.ts.map +1 -0
  109. package/dist/tools/ids-schema.js +91 -0
  110. package/dist/tools/ids-schema.js.map +1 -0
  111. package/dist/tools/index.d.ts +5 -2
  112. package/dist/tools/index.d.ts.map +1 -1
  113. package/dist/tools/index.js +10 -2
  114. package/dist/tools/index.js.map +1 -1
  115. package/dist/tools/layer-store.d.ts +2 -0
  116. package/dist/tools/layer-store.d.ts.map +1 -1
  117. package/dist/tools/layer-store.js +4 -0
  118. package/dist/tools/layer-store.js.map +1 -1
  119. package/dist/tools/mutate.d.ts.map +1 -1
  120. package/dist/tools/mutate.js +12 -2
  121. package/dist/tools/mutate.js.map +1 -1
  122. package/dist/tools/mutation-undo.d.ts.map +1 -1
  123. package/dist/tools/mutation-undo.js +3 -0
  124. package/dist/tools/mutation-undo.js.map +1 -1
  125. package/dist/tools/physical-edit.d.ts +4 -0
  126. package/dist/tools/physical-edit.d.ts.map +1 -0
  127. package/dist/tools/physical-edit.js +77 -0
  128. package/dist/tools/physical-edit.js.map +1 -0
  129. package/dist/tools/query-tools.d.ts +3 -0
  130. package/dist/tools/query-tools.d.ts.map +1 -0
  131. package/dist/tools/query-tools.js +8 -0
  132. package/dist/tools/query-tools.js.map +1 -0
  133. package/dist/tools/query.d.ts +1 -1
  134. package/dist/tools/query.d.ts.map +1 -1
  135. package/dist/tools/query.js +4 -4
  136. package/dist/tools/query.js.map +1 -1
  137. package/dist/tools/review-captures.d.ts +10 -0
  138. package/dist/tools/review-captures.d.ts.map +1 -0
  139. package/dist/tools/review-captures.js +40 -0
  140. package/dist/tools/review-captures.js.map +1 -0
  141. package/dist/tools/review-findings.d.ts +4 -0
  142. package/dist/tools/review-findings.d.ts.map +1 -0
  143. package/dist/tools/review-findings.js +51 -0
  144. package/dist/tools/review-findings.js.map +1 -0
  145. package/dist/tools/room-command.d.ts +6 -0
  146. package/dist/tools/room-command.d.ts.map +1 -0
  147. package/dist/tools/room-command.js +75 -0
  148. package/dist/tools/room-command.js.map +1 -0
  149. package/dist/tools/util.d.ts +10 -0
  150. package/dist/tools/util.d.ts.map +1 -1
  151. package/dist/tools/util.js +13 -1
  152. package/dist/tools/util.js.map +1 -1
  153. package/dist/tools/validation.d.ts +9 -0
  154. package/dist/tools/validation.d.ts.map +1 -1
  155. package/dist/tools/validation.js +25 -11
  156. package/dist/tools/validation.js.map +1 -1
  157. package/dist/transport/http-helpers.d.ts +85 -0
  158. package/dist/transport/http-helpers.d.ts.map +1 -0
  159. package/dist/transport/http-helpers.js +149 -0
  160. package/dist/transport/http-helpers.js.map +1 -0
  161. package/dist/transport/http.d.ts +14 -1
  162. package/dist/transport/http.d.ts.map +1 -1
  163. package/dist/transport/http.js +80 -90
  164. package/dist/transport/http.js.map +1 -1
  165. package/dist/validate.d.ts +1 -1
  166. package/dist/validate.js +3 -0
  167. package/dist/validate.js.map +1 -1
  168. package/package.json +22 -19
package/README.md CHANGED
@@ -27,6 +27,33 @@ npx @ifc-lite/mcp ./model.ifc --viewer
27
27
  npx @ifc-lite/mcp ./model.ifc --open
28
28
  ```
29
29
 
30
+ ## Embedded loaded-model authoring
31
+
32
+ For embedded HTTP servers, `HttpTransport` accepts `maxSessions` (default
33
+ 1000, including pending factory builds) and `sessionIdleMs` (default 30
34
+ minutes). At capacity it admits a new session only if a slot is free or an
35
+ idle session can be reclaimed without unpublished drafts, active requests,
36
+ or open event streams. Otherwise initialization returns `503
37
+ session-capacity`; an unknown session returns `404 unknown-session` and must
38
+ initialize again. See the [embedding guide](https://github.com/LTplus-AG/ifc-lite/blob/main/docs/guide/mcp.md#programmatic-embedding)
39
+ for the idle-window and response contract.
40
+
41
+ `loadIfcModel` returns a model whose `bim.store` supports the existing
42
+ `addElementType`, `assignType`, `addMaterial`, `addMaterialLayerSet`,
43
+ `addMaterialLayerSetUsage` and `assignMaterial` SDK methods. They delegate to
44
+ shared schema-aware builders, convert metre dimensions to native units, and
45
+ record each call as one complete public `mutation_undo` operation. Late schema
46
+ refusals leave no partial helpers. These embedded methods are distinct from
47
+ the JSON-RPC tool names; see the [programmatic embedding guide](https://github.com/LTplus-AG/ifc-lite/blob/main/docs/guide/mcp.md#programmatic-embedding).
48
+
49
+ `addStair`, `addRailing` and `removeStair` use the same canonical SDK factory.
50
+ `removeStair` removes a uniquely owned parent/flight pair atomically, retaining
51
+ shared shape/style leaves and refusing ambiguous ownership or foreign product
52
+ references. Public `run_flow` routes `element.stair` / `element.railing` through
53
+ `model.addElement`; each successful graph creation has one `mutation_undo`.
54
+ Tracking is fresh per RPC call, so cross-call update/remove needs a persistent
55
+ caller-owned tracking store. No separate creation or Redo RPC is added.
56
+
30
57
  ## 3D viewer integration
31
58
 
32
59
  The server bundles the same WebGL viewer used by `ifc-lite view`. Once it is
@@ -93,8 +120,12 @@ The same `npx` command works as a stdio server in any MCP-aware client.
93
120
  | Query | `query_entities`, `count_entities`, `get_entity`, `get_entities_bulk`, `spatial_hierarchy`, `containment_chain`, `relationships`, `properties_unique`, `materials_list`, `classifications_list`, `georeferencing`, `units`, `cost_data`, `cost_evaluate` |
94
121
  | Geometry | `geometry_bbox`, `geometry_volume`, `geometry_area`, `geometry_get`, `raycast`, `clash_check`, `clash_matrix` |
95
122
  | Validation | `ids_validate`, `ids_explain`, `model_audit`, `gherkin_check` |
123
+ | IDS authoring | `ids_audit`, `ids_lint`, `ids_read`, `ids_apply_ops` (grounding-gated), `ids_write`, `ids_schema_search`, `ids_schema_entity`, `ids_schema_pset`, `ids_diff`, `ids_preview`, `ids_infer`, `ids_coverage`, `ids_test` |
96
124
  | Mutation | `entity_set_property`, `entity_delete_property`, `entity_set_attribute`, `entity_create`, `entity_delete`, `mutation_batch`, `mutation_undo`, `mutation_diff`, `model_save` |
97
125
  | Hosted modelling | `place_opening`, `place_door`, `place_window` |
126
+ | Design modelling | `place_curtain_wall`, `place_grid`, `place_grid_column` |
127
+ | Physical edits | `edit_hosted_element`, `edit_element_geometry`, `copy_elements`, `duplicate_element`, `array_elements` |
128
+ | Native Room | `query_rooms`, `room_command` |
98
129
  | Wall joins | `join_walls` |
99
130
  | BCF | `bcf_topic_list`, `bcf_topic_create`, `bcf_topic_update`, `bcf_topic_close`, `bcf_viewpoint_create`, `bcf_export` |
100
131
  | bSDD | `bsdd_search`, `bsdd_class`, `bsdd_property_sets`, `bsdd_match` |
@@ -245,3 +276,44 @@ See the [ifc-lite docs](https://ifclite.dev/docs/) for the full
245
276
  platform documentation.
246
277
 
247
278
  Licensed under MPL-2.0.
279
+
280
+ Loaded-model physical edits use the same command cores as the viewer and typed
281
+ SDK. `edit_element_geometry` handles Move/Rotate, Size, Wall Endpoints, Split and
282
+ Trim/Extend. `copy_elements`, `duplicate_element` and `array_elements` carry
283
+ hosted graph records and share the viewer placement and naming policies.
284
+ References are model-local EXPRESS IDs; offsets use IFC storey-local metres
285
+ and planar rotations use radians. Every write is one `mutation_undo` batch;
286
+ unsupported sources and unsafe shared geometry refuse before committing.
287
+ See the [MCP guide](https://github.com/LTplus-AG/ifc-lite/blob/main/docs/guide/mcp.md)
288
+ for parameter contracts.
289
+
290
+ `room_command` derives Room candidates from the current native geometry and
291
+ runs Auto/Pick/Footprint/Update or layout Drag/Split/Remove/Prune through the
292
+ shared Room core. It requires the WASM runtime. Query does not write; writes
293
+ record one complete Undo batch. Model removal and session termination free
294
+ retained native layout handles. Unsupported schema/storey planes return
295
+ `INVALID_INPUT`; unavailable native initialization returns
296
+ `UNSUPPORTED_OPERATION`. Unexpected export, parse, processing or runtime
297
+ import failures return `INTERNAL_ERROR`; cancellation and state conflicts
298
+ retain their distinct retryable codes.
299
+
300
+ AI Flow nodes use explicit host environment configuration (`IFC_LITE_AI_MODEL`,
301
+ `IFC_LITE_AI_API_KEY`, optional `IFC_LITE_AI_BASE_URL`). Review-capable runs require
302
+ a new allowed `checkpoint_path` and return a pending artifact. A separate
303
+ `resume_flow` with the exact `approved_digest` rechecks native source state and
304
+ current scope, restores the original budget and consumes one durable disk claim.
305
+ See the [MCP guide](../../docs/guide/mcp.md) for further pauses and refusals.
306
+
307
+ `propose_flow` lets a read-only MCP caller run a native read/AI-only graph to
308
+ a pending artifact. It rejects declared or node-defined effects and permits
309
+ only `model.read` and `network.ai`. The current read scope and model allowlist
310
+ still apply; the separate `resume_flow` requires current mutate authorization.
311
+ MCP responses and checkpoint budgets include provider usage receipts without
312
+ prompts, replies or credentials; receipt history survives subsequent pauses.
313
+
314
+ `review_findings` reads actual retained IDS/information Review facts with `read`
315
+ permission. Native producer capture binds full source SHA-256, definition/run
316
+ provenance and exact model ownership; scope revocation suppresses the whole
317
+ multi-model envelope. No editor, artifact or decision is created. Unsupported
318
+ sources, incomplete overlays and bounded output stay explicit. See
319
+ [the captured native Review contract](../../docs/guide/mcp.md#captured-native-review-reads).
package/dist/cli.js CHANGED
@@ -20,6 +20,7 @@ import { createMCPServer, VERSION } from './index.js';
20
20
  import { loadIfcModel } from './loader.js';
21
21
  import { fullScope, readOnlyScope } from './auth/scope.js';
22
22
  import { InMemoryModelRegistry } from './context.js';
23
+ import { fmtInt } from './tools/util.js';
23
24
  function printHelp() {
24
25
  process.stdout.write(`
25
26
  ifc-lite-mcp v${VERSION} — Model Context Protocol server for ifc-lite
@@ -97,7 +98,7 @@ async function main() {
97
98
  const m = await loadIfcModel(resolve(file), { allowedPaths: opts.allowedPaths });
98
99
  registry.add(m);
99
100
  // Use stderr — stdout is sacred for the JSON-RPC channel.
100
- process.stderr.write(`[ifc-lite-mcp] loaded ${m.name} (${m.id}) — ${m.store.entityCount.toLocaleString()} entities\n`);
101
+ process.stderr.write(`[ifc-lite-mcp] loaded ${m.name} (${m.id}) — ${fmtInt(m.store.entityCount)} entities\n`);
101
102
  }
102
103
  const server = createMCPServer({
103
104
  version: VERSION,
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -81,6 +81,8 @@ export interface SessionIdentity {
81
81
  export interface ToolContext {
82
82
  registry: ModelRegistry;
83
83
  scope: AuthScope;
84
+ /** Live authorization for operations that await source materialization. */
85
+ currentScope?: () => AuthScope;
84
86
  progress: ProgressReporter;
85
87
  log: Logger;
86
88
  /** Honoured by long-running tools; aborts when client cancels. */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/context.js CHANGED
@@ -19,9 +19,14 @@ export class InMemoryModelRegistry {
19
19
  return null;
20
20
  }
21
21
  add(model) {
22
+ const previous = this.models.get(model.id);
23
+ if (previous && previous !== model)
24
+ previous.backend.dispose();
22
25
  this.models.set(model.id, model);
26
+ model.backend.setPeerScopes(() => this.list().filter(peer => peer !== model).map(peer => ({ dataStore: peer.store, view: peer.backend.getMutationView() })));
23
27
  }
24
28
  remove(id) {
29
+ this.models.get(id)?.backend.dispose();
25
30
  return this.models.delete(id);
26
31
  }
27
32
  count() {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyD/D,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,EAAW;QACjB,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAgC,CAAC;YAC1E,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAMD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM,KAA4C,CAAC;CACpD,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,GAAG,KAAyD,CAAC;CAC9D,CAAC;AA0CF,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;CACvB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyD/D,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,EAAW;QACjB,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAgC,CAAC;YAC1E,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,QAAQ,IAAI,QAAQ,KAAK,KAAK;YAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/J,CAAC;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAMD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM,KAA4C,CAAC;CACpD,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,GAAG,KAAyD,CAAC;CAC9D,CAAC;AA4CF,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;CACvB,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -11,6 +11,8 @@ export declare const ToolErrorCode: {
11
11
  readonly MODEL_NOT_FOUND: "MODEL_NOT_FOUND";
12
12
  readonly MODEL_REQUIRED: "MODEL_REQUIRED";
13
13
  readonly INVALID_INPUT: "INVALID_INPUT";
14
+ readonly CANCELLED: "CANCELLED";
15
+ readonly STATE_CHANGED: "STATE_CHANGED";
14
16
  readonly UNSUPPORTED_OPERATION: "UNSUPPORTED_OPERATION";
15
17
  readonly PERMISSION_DENIED: "PERMISSION_DENIED";
16
18
  readonly READ_ONLY: "READ_ONLY";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYhB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAWhE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,gBAAgB;IAQlC,YAAY,IAAI,cAAc;CAQ/B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAchB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAWhE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,gBAAgB;IAQlC,YAAY,IAAI,cAAc;CAQ/B"}
package/dist/errors.js CHANGED
@@ -6,6 +6,8 @@ export const ToolErrorCode = {
6
6
  MODEL_NOT_FOUND: 'MODEL_NOT_FOUND',
7
7
  MODEL_REQUIRED: 'MODEL_REQUIRED',
8
8
  INVALID_INPUT: 'INVALID_INPUT',
9
+ CANCELLED: 'CANCELLED',
10
+ STATE_CHANGED: 'STATE_CHANGED',
9
11
  UNSUPPORTED_OPERATION: 'UNSUPPORTED_OPERATION',
10
12
  PERMISSION_DENIED: 'PERMISSION_DENIED',
11
13
  READ_ONLY: 'READ_ONLY',
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,qBAAqB,EAAE,uBAAuB;IAC9C,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,uBAAuB,EAAE,yBAAyB;IAClD,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAWX,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,iBAAiB,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAqB;IACzB,OAAO,CAA2B;IAClC,IAAI,CAAU;IAEvB,YAAY,IAAsB;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,YAAY;QACV,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,eAAe;IAC9B,qBAAqB,EAAE,uBAAuB;IAC9C,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,uBAAuB,EAAE,yBAAyB;IAClD,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAWX,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,iBAAiB,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAqB;IACzB,OAAO,CAA2B;IAClC,IAAI,CAAU;IAEvB,YAAY,IAAsB;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,YAAY;QACV,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import { type AlignGeometryProvider, type ModellingStoreModelResolver } from '@ifc-lite/sdk';
2
+ export declare const provideHeadlessAlignGeometry: AlignGeometryProvider;
3
+ export declare function createHeadlessAlignBackend(resolve: ModellingStoreModelResolver): {
4
+ alignElements(modelId: string, reference: number, targets: readonly number[], mode: import("@ifc-lite/create").AlignMode): Promise<import("@ifc-lite/sdk").EntityRef[]>;
5
+ };
6
+ //# sourceMappingURL=headless-backend-align.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-backend-align.d.ts","sourceRoot":"","sources":["../src/headless-backend-align.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,KAAK,qBAAqB,EAAE,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAKxH,eAAO,MAAM,4BAA4B,EAAE,qBAevC,CAAC;AAEL,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,2BAA2B;;EAQ9E"}
@@ -0,0 +1,35 @@
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
+ import { createAlignCommandBackend } from '@ifc-lite/sdk';
5
+ import { planBoxOf, storeyPlanFrame, roomFramePlanOffsets, roomFrameToModelWorld, toStoreyLocal } from '@ifc-lite/create';
6
+ import { recordCompoundMutation, StoreEditor } from '@ifc-lite/mutations';
7
+ import { withHeadlessGeometry } from './headless-native-geometry.js';
8
+ export const provideHeadlessAlignGeometry = (model, storeyId, ids) => withHeadlessGeometry(model, source => {
9
+ const plan = storeyPlanFrame(source, storeyId);
10
+ if (!plan)
11
+ throw new Error('Align storey placement is not a supported upright plane');
12
+ return plan;
13
+ }, (plan, meshes, coord) => {
14
+ const { cx, cy } = roomFramePlanOffsets(coord), { dx, dy } = roomFrameToModelWorld(coord);
15
+ const boxes = new Map();
16
+ for (const id of ids) {
17
+ const box = planBoxOf(meshes, id, { renderToLocal: ([x, y, z]) => {
18
+ const [u, v] = toStoreyLocal(plan, [x + cx + dx, -z + cy + dy]);
19
+ return [u, v, y];
20
+ } });
21
+ if (box)
22
+ boxes.set(id, box);
23
+ }
24
+ return boxes;
25
+ });
26
+ export function createHeadlessAlignBackend(resolve) {
27
+ return createAlignCommandBackend(resolve, provideHeadlessAlignGeometry, {
28
+ historyHead: modelId => resolve(modelId).mutationView.getMutations().map(m => m.id).join('|'),
29
+ record: (modelId, write) => {
30
+ const model = resolve(modelId);
31
+ return recordCompoundMutation(model.mutationView, mutationView => write({ ...model, mutationView, editor: new StoreEditor(model.store, mutationView) }));
32
+ },
33
+ });
34
+ }
35
+ //# sourceMappingURL=headless-backend-align.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-backend-align.js","sourceRoot":"","sources":["../src/headless-backend-align.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,yBAAyB,EAAgE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AACxI,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,MAAM,4BAA4B,GAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;IAC9H,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IACzB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC/D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,CAAC,EAAE,CAAC,CAAC;QACL,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,0BAA0B,CAAC,OAAoC;IAC7E,OAAO,yBAAyB,CAAC,OAAO,EAAE,4BAA4B,EAAE;QACtE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7F,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,sBAAsB,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3J,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,10 +1,50 @@
1
- /** Placement and wall joins use the viewer/CLI SDK factory (#6232 D5).
1
+ /** Ordinary creation, placement and wall joins use the shared SDK factories (#6232 D5).
2
2
  * Shared compound recording preserves every earlier overlay record for undo. */
3
3
  import { type ModellingStoreModelResolver } from '@ifc-lite/sdk';
4
4
  export declare function createRecordedModellingBackend(resolve: ModellingStoreModelResolver): {
5
+ transformElements: (modelId: string, expressIds: readonly number[], operation: import("@ifc-lite/create").StoreyTransformOp) => import("@ifc-lite/sdk").EntityRef[];
6
+ setElementSize: (ref: import("@ifc-lite/sdk").EntityRef, patch: import("@ifc-lite/sdk").PhysicalSizePatch) => import("@ifc-lite/sdk").EntityRef[];
7
+ resizeWall: (ref: import("@ifc-lite/sdk").EntityRef, start: [number, number, number], end: [number, number, number], options?: {
8
+ moveJoinedEnds?: boolean;
9
+ } | undefined) => import("@ifc-lite/sdk").EntityRef[];
10
+ splitElements: (modelId: string, requests: readonly import("@ifc-lite/create").ElementSplitRequest[]) => {
11
+ source: import("@ifc-lite/sdk").EntityRef;
12
+ added: import("@ifc-lite/sdk").EntityRef;
13
+ left: import("@ifc-lite/sdk").EntityRef;
14
+ right: import("@ifc-lite/sdk").EntityRef;
15
+ }[];
16
+ trimExtendElement: (ref: import("@ifc-lite/sdk").EntityRef, params: import("@ifc-lite/create").ElementTrimExtendParams) => import("@ifc-lite/sdk").EntityRef[];
17
+ copyElements: (modelId: string, expressIds: readonly number[], transforms: readonly import("@ifc-lite/create").CopyTransform[]) => import("@ifc-lite/sdk").EntityRef[];
18
+ duplicateElement: (ref: import("@ifc-lite/sdk").EntityRef, options: {
19
+ offset: [number, number, number];
20
+ Name?: string;
21
+ }) => import("@ifc-lite/sdk").EntityRef;
22
+ arrayElements: (modelId: string, expressIds: readonly number[], params: import("@ifc-lite/create").CopyArrayParams) => import("@ifc-lite/sdk").EntityRef[];
23
+ editHostedElement: (ref: import("@ifc-lite/sdk").EntityRef, patch: import("@ifc-lite/create").HostedElementEdit) => import("@ifc-lite/sdk").EntityRef;
24
+ addCurtainWall: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/create").CurtainWallInStoreParams) => import("@ifc-lite/sdk").EntityRef;
25
+ addGrid: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/create").GridInStoreParams) => import("@ifc-lite/sdk").EntityRef;
26
+ addColumnOnGrid: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/create").ColumnInStoreParams | import("@ifc-lite/create").ProfiledColumnInStoreParams, binding: import("@ifc-lite/create").GridColumnBinding) => import("@ifc-lite/sdk").EntityRef;
27
+ replaceElement: (ref: import("@ifc-lite/sdk").EntityRef, storeyExpressId: number, element: import("@ifc-lite/create").InStoreReplacementElement) => import("@ifc-lite/sdk").EntityRef;
28
+ removeStair: (ref: Parameters<NonNullable<((ref: import("@ifc-lite/sdk").EntityRef) => boolean) | undefined>>[0]) => boolean;
29
+ addStair: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/create").StairInStoreParams) => import("@ifc-lite/sdk").EntityRef;
30
+ addRailing: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/create").RailingInStoreParams) => import("@ifc-lite/sdk").EntityRef;
31
+ addElementType: (modelId: string, params: import("@ifc-lite/create").ElementTypeInStoreParams) => import("@ifc-lite/sdk").EntityRef;
32
+ assignType: (modelId: string, typeExpressId: number, objectExpressIds: number[]) => import("@ifc-lite/sdk").EntityRef;
33
+ addMaterial: (modelId: string, params: import("@ifc-lite/create").MaterialInStoreParams) => import("@ifc-lite/sdk").EntityRef;
34
+ addMaterialLayerSet: (modelId: string, params: import("@ifc-lite/create").MaterialLayerSetInStoreParams) => import("@ifc-lite/sdk").EntityRef;
35
+ addMaterialLayerSetUsage: (modelId: string, params: import("@ifc-lite/create").MaterialLayerSetUsageInStoreParams) => import("@ifc-lite/sdk").EntityRef;
36
+ assignMaterial: (modelId: string, materialExpressId: number, objectExpressIds: number[]) => import("@ifc-lite/sdk").EntityRef;
5
37
  addOpening: (modelId: string, hostExpressId: number, params: import("@ifc-lite/create").OpeningInStoreParams) => import("@ifc-lite/sdk").EntityRef;
6
38
  addHostedDoor: (modelId: string, hostExpressId: number, params: import("@ifc-lite/create").HostedDoorInStoreParams) => import("@ifc-lite/sdk").EntityRef;
7
39
  addHostedWindow: (modelId: string, hostExpressId: number, params: import("@ifc-lite/create").HostedWindowInStoreParams) => import("@ifc-lite/sdk").EntityRef;
8
40
  joinWalls: (modelId: string, aExpressId: number, bExpressId: number, options?: import("@ifc-lite/create").WallJoinApplyOptions | undefined) => import("@ifc-lite/sdk").EntityRef;
41
+ addWall: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddWallInStoreParams) => import("@ifc-lite/sdk").EntityRef;
42
+ addColumn: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/create").ProfiledColumnInStoreParams | import("@ifc-lite/sdk").AddColumnInStoreParams) => import("@ifc-lite/sdk").EntityRef;
43
+ addSlab: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddSlabInStoreParams) => import("@ifc-lite/sdk").EntityRef;
44
+ addBeam: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddBeamInStoreParams | import("@ifc-lite/create").ProfiledBeamInStoreParams) => import("@ifc-lite/sdk").EntityRef;
45
+ addSpace: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddSpaceInStoreParams) => import("@ifc-lite/sdk").EntityRef;
46
+ addRoof: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddRoofInStoreParams) => import("@ifc-lite/sdk").EntityRef;
47
+ addPlate: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddPlateInStoreParams) => import("@ifc-lite/sdk").EntityRef;
48
+ addMember: (modelId: string, storeyExpressId: number, params: import("@ifc-lite/sdk").AddMemberInStoreParams | import("@ifc-lite/create").ProfiledMemberInStoreParams) => import("@ifc-lite/sdk").EntityRef;
9
49
  };
10
50
  //# sourceMappingURL=headless-backend-modelling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend-modelling.d.ts","sourceRoot":"","sources":["../src/headless-backend-modelling.ts"],"names":[],"mappings":"AAIA;gFACgF;AAChF,OAAO,EAA+B,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAG9F,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,2BAA2B;;;;;EAclF"}
1
+ {"version":3,"file":"headless-backend-modelling.d.ts","sourceRoot":"","sources":["../src/headless-backend-modelling.ts"],"names":[],"mappings":"AAIA;gFACgF;AAChF,OAAO,EAAsF,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAGrJ,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;uBAsE5D,UAAU,CAAC,WAAW,mEAAwB,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;EAkCxE"}
@@ -1,22 +1,128 @@
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
- /** Placement and wall joins use the viewer/CLI SDK factory (#6232 D5).
4
+ /** Ordinary creation, placement and wall joins use the shared SDK factories (#6232 D5).
5
5
  * Shared compound recording preserves every earlier overlay record for undo. */
6
- import { createModellingStoreBackend } from '@ifc-lite/sdk';
6
+ import { createModellingStoreBackend, createOrdinaryStoreBackend, resolveLiveOwnerHistoryId } from '@ifc-lite/sdk';
7
7
  import { recordCompoundMutation, StoreEditor } from '@ifc-lite/mutations';
8
8
  export function createRecordedModellingBackend(resolve) {
9
- function record(modelId, edit) {
9
+ function record(modelId, edit, authoring = false) {
10
10
  const model = resolve(modelId);
11
- return recordCompoundMutation(model.mutationView, draft => edit(createModellingStoreBackend(() => ({
12
- ...model, mutationView: draft, editor: new StoreEditor(model.store, draft),
13
- }))));
11
+ return recordCompoundMutation(model.mutationView, draft => {
12
+ const resolveDraft = () => {
13
+ const editor = new StoreEditor(model.store, draft);
14
+ return { ...model, mutationView: draft, editor,
15
+ // Only type/material authoring needs this schema-required reference.
16
+ // Ordinary and hosted creation keep their existing anchor policy.
17
+ ownerHistoryId: authoring ? resolveLiveOwnerHistoryId(model.store, editor, draft) : model.ownerHistoryId,
18
+ };
19
+ };
20
+ return edit({ ...createModellingStoreBackend(resolveDraft), ...createOrdinaryStoreBackend(resolveDraft) });
21
+ });
14
22
  }
15
23
  return {
24
+ transformElements: (...args) => record(args[0], methods => {
25
+ if (!methods.transformElements)
26
+ throw new Error('Missing transformElements capability');
27
+ return methods.transformElements(...args);
28
+ }),
29
+ setElementSize: (...args) => record(args[0].modelId, methods => {
30
+ if (!methods.setElementSize)
31
+ throw new Error('Missing setElementSize capability');
32
+ return methods.setElementSize(...args);
33
+ }),
34
+ resizeWall: (...args) => record(args[0].modelId, methods => {
35
+ if (!methods.resizeWall)
36
+ throw new Error('Missing resizeWall capability');
37
+ return methods.resizeWall(...args);
38
+ }),
39
+ splitElements: (...args) => record(args[0], methods => {
40
+ if (!methods.splitElements)
41
+ throw new Error('Missing splitElements capability');
42
+ return methods.splitElements(...args);
43
+ }),
44
+ trimExtendElement: (...args) => record(args[0].modelId, methods => {
45
+ if (!methods.trimExtendElement)
46
+ throw new Error('Missing trimExtendElement capability');
47
+ return methods.trimExtendElement(...args);
48
+ }),
49
+ copyElements: (...args) => record(args[0], methods => {
50
+ if (!methods.copyElements)
51
+ throw new Error('Missing copy capability');
52
+ return methods.copyElements(...args);
53
+ }),
54
+ duplicateElement: (...args) => record(args[0].modelId, methods => {
55
+ if (!methods.duplicateElement)
56
+ throw new Error('Missing duplicate capability');
57
+ return methods.duplicateElement(...args);
58
+ }),
59
+ arrayElements: (...args) => record(args[0], methods => {
60
+ if (!methods.arrayElements)
61
+ throw new Error('Missing array capability');
62
+ return methods.arrayElements(...args);
63
+ }),
64
+ editHostedElement: (...args) => record(args[0].modelId, methods => {
65
+ if (!methods.editHostedElement)
66
+ throw new Error('Missing hosted edit capability');
67
+ return methods.editHostedElement(...args);
68
+ }),
69
+ addCurtainWall: (...args) => record(args[0], methods => {
70
+ if (!methods.addCurtainWall)
71
+ throw new Error('Missing curtain wall capability');
72
+ return methods.addCurtainWall(...args);
73
+ }),
74
+ addGrid: (...args) => record(args[0], methods => {
75
+ if (!methods.addGrid)
76
+ throw new Error('Missing grid capability');
77
+ return methods.addGrid(...args);
78
+ }),
79
+ addColumnOnGrid: (...args) => record(args[0], methods => {
80
+ if (!methods.addColumnOnGrid)
81
+ throw new Error('Missing grid column capability');
82
+ return methods.addColumnOnGrid(...args);
83
+ }),
84
+ replaceElement: (...args) => record(args[0].modelId, methods => {
85
+ const replace = methods.replaceElement;
86
+ if (!replace)
87
+ throw new Error('bim.store.replaceElement is not supported by this backend');
88
+ return replace.call(methods, ...args);
89
+ }),
90
+ removeStair: (ref) => record(ref.modelId, methods => {
91
+ const remove = methods.removeStair;
92
+ if (!remove)
93
+ throw new Error('bim.store.removeStair is not supported by this backend');
94
+ return remove(ref);
95
+ }),
96
+ addStair: (...args) => record(args[0], methods => {
97
+ const create = methods.addStair;
98
+ if (!create)
99
+ throw new Error('bim.store.addStair is not supported by this backend');
100
+ return create(...args);
101
+ }),
102
+ addRailing: (...args) => record(args[0], methods => {
103
+ const create = methods.addRailing;
104
+ if (!create)
105
+ throw new Error('bim.store.addRailing is not supported by this backend');
106
+ return create(...args);
107
+ }),
108
+ addElementType: (...args) => record(args[0], methods => methods.addElementType(...args), true),
109
+ assignType: (...args) => record(args[0], methods => methods.assignType(...args), true),
110
+ addMaterial: (...args) => record(args[0], methods => methods.addMaterial(...args), true),
111
+ addMaterialLayerSet: (...args) => record(args[0], methods => methods.addMaterialLayerSet(...args), true),
112
+ addMaterialLayerSetUsage: (...args) => record(args[0], methods => methods.addMaterialLayerSetUsage(...args), true),
113
+ assignMaterial: (...args) => record(args[0], methods => methods.assignMaterial(...args), true),
16
114
  addOpening: (...args) => record(args[0], methods => methods.addOpening(...args)),
17
115
  addHostedDoor: (...args) => record(args[0], methods => methods.addHostedDoor(...args)),
18
116
  addHostedWindow: (...args) => record(args[0], methods => methods.addHostedWindow(...args)),
19
117
  joinWalls: (...args) => record(args[0], methods => methods.joinWalls(...args)),
118
+ addWall: (...args) => record(args[0], methods => methods.addWall(...args)),
119
+ addColumn: (...args) => record(args[0], methods => methods.addColumn(...args)),
120
+ addSlab: (...args) => record(args[0], methods => methods.addSlab(...args)),
121
+ addBeam: (...args) => record(args[0], methods => methods.addBeam(...args)),
122
+ addSpace: (...args) => record(args[0], methods => methods.addSpace(...args)),
123
+ addRoof: (...args) => record(args[0], methods => methods.addRoof(...args)),
124
+ addPlate: (...args) => record(args[0], methods => methods.addPlate(...args)),
125
+ addMember: (...args) => record(args[0], methods => methods.addMember(...args)),
20
126
  };
21
127
  }
22
128
  //# sourceMappingURL=headless-backend-modelling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend-modelling.js","sourceRoot":"","sources":["../src/headless-backend-modelling.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;gFACgF;AAChF,OAAO,EAAE,2BAA2B,EAAoC,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,UAAU,8BAA8B,CAAC,OAAoC;IAEjF,SAAS,MAAM,CAAI,OAAe,EAAE,IAA6B;QAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,sBAAsB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,CAAC;YACjG,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;SAC3E,CAAC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IACD,OAAO;QACL,UAAU,EAAE,CAAC,GAAG,IAAuC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QACnH,aAAa,EAAE,CAAC,GAAG,IAA0C,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5H,eAAe,EAAE,CAAC,GAAG,IAA4C,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;QAClI,SAAS,EAAE,CAAC,GAAG,IAAsC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;KACjH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"headless-backend-modelling.js","sourceRoot":"","sources":["../src/headless-backend-modelling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type ModellingStoreModelResolver } from '@ifc-lite/sdk';
2
+ /** Native preparation finishes before the synchronous compound commit begins. */
3
+ export declare function createHeadlessRoomBackend(resolve: ModellingStoreModelResolver): {
4
+ disposeRooms(): void;
5
+ prepareRoomCommand: (modelId: string, storeyId: number, command: import("@ifc-lite/sdk").RoomCommand) => Promise<import("@ifc-lite/sdk").PreparedRoomCommand>;
6
+ roomCommand(modelId: string, storeyId: number, op: import("@ifc-lite/sdk").RoomCommand): Promise<import("@ifc-lite/sdk").RoomCommandResult>;
7
+ };
8
+ //# sourceMappingURL=headless-backend-room.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-backend-room.d.ts","sourceRoot":"","sources":["../src/headless-backend-room.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAK3F,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,2BAA2B;;;;EAc7E"}
@@ -0,0 +1,24 @@
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
+ import { createRoomCommandBackend } from '@ifc-lite/sdk';
5
+ import { RoomLayoutCache } from '@ifc-lite/create';
6
+ import { recordCompoundMutation, StoreEditor } from '@ifc-lite/mutations';
7
+ import { createCachedHeadlessRoomGeometryProvider } from './headless-room-geometry.js';
8
+ /** Native preparation finishes before the synchronous compound commit begins. */
9
+ export function createHeadlessRoomBackend(resolve) {
10
+ const native = createCachedHeadlessRoomGeometryProvider();
11
+ const rooms = createRoomCommandBackend(resolve, native.provide, {
12
+ layouts: new RoomLayoutCache(),
13
+ globalIdScopes: () => resolve().globalIdScopes ?? [],
14
+ historyHead: modelId => resolve(modelId).mutationView.getMutations().map(m => m.id).join('|'),
15
+ record: (modelId, write) => {
16
+ const model = resolve(modelId);
17
+ return recordCompoundMutation(model.mutationView, mutationView => write({
18
+ ...model, mutationView, editor: new StoreEditor(model.store, mutationView),
19
+ }));
20
+ },
21
+ });
22
+ return { ...rooms, disposeRooms() { rooms.disposeRooms(); native.clear(); } };
23
+ }
24
+ //# sourceMappingURL=headless-backend-room.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-backend-room.js","sourceRoot":"","sources":["../src/headless-backend-room.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,wBAAwB,EAAoC,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,wCAAwC,EAAE,MAAM,6BAA6B,CAAC;AAEvF,iFAAiF;AACjF,MAAM,UAAU,yBAAyB,CAAC,OAAoC;IAC5E,MAAM,MAAM,GAAG,wCAAwC,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QAC9D,OAAO,EAAE,IAAI,eAAe,EAAE;QAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,cAAc,IAAI,EAAE;QACpD,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7F,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,sBAAsB,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC;gBACtE,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC;aAC3E,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC"}
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * The `bim.store` authoring surfaces MCP v0.1 deliberately does not implement:
3
- * cost (#4857), structural analysis (#5167 S.1), type objects and materials.
4
- * Hosted openings, doors and windows use the shared SDK factory (#6232 D5).
3
+ * cost (#4857) and structural analysis (#5167 S.1).
4
+ * Hosted openings, doors, windows, types and materials use the shared SDK factory (#6232 D5).
5
5
  * Other agent flows author through `entity_create` with raw
6
6
  * attributes, so these throw loudly rather than silently no-opping.
7
7
  *
8
8
  * Composed into one spread so `headless-backend.ts` gains a surface, not a
9
9
  * line, each time another factory-backed store surface is added to the SDK.
10
10
  */
11
- import type { CostStoreBackendMethods, ModellingStoreBackendMethods, StructuralStoreBackendMethods } from '@ifc-lite/sdk';
12
- type RelationshipMethods = Omit<ModellingStoreBackendMethods, 'addOpening' | 'addHostedDoor' | 'addHostedWindow' | 'joinWalls'>;
13
- export declare function unsupportedStoreAuthoring(): CostStoreBackendMethods & StructuralStoreBackendMethods & RelationshipMethods;
14
- export {};
11
+ import type { CostStoreBackendMethods, StructuralStoreBackendMethods } from '@ifc-lite/sdk';
12
+ export declare function unsupportedStoreAuthoring(): CostStoreBackendMethods & StructuralStoreBackendMethods;
15
13
  //# sourceMappingURL=headless-backend-store-stubs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend-store-stubs.d.ts","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAQvB,KAAK,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,WAAW,CAAC,CAAC;AAEhI,wBAAgB,yBAAyB,IAAI,uBAAuB,GAAG,6BAA6B,GAAG,mBAAmB,CAUzH"}
1
+ {"version":3,"file":"headless-backend-store-stubs.d.ts","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAIvB,wBAAgB,yBAAyB,IAAI,uBAAuB,GAAG,6BAA6B,CAEnG"}
@@ -3,18 +3,7 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { costStoreStubs } from './headless-backend-cost-store.js';
5
5
  import { structuralStoreStubs } from './headless-backend-structural-store.js';
6
- const unsupported = (method) => () => {
7
- throw new Error(`${method} not supported in MCP v0.1; use entity_create`);
8
- };
9
6
  export function unsupportedStoreAuthoring() {
10
- return {
11
- ...costStoreStubs(), ...structuralStoreStubs(),
12
- addElementType: unsupported('addElementType'),
13
- assignType: unsupported('assignType'),
14
- addMaterial: unsupported('addMaterial'),
15
- addMaterialLayerSet: unsupported('addMaterialLayerSet'),
16
- addMaterialLayerSetUsage: unsupported('addMaterialLayerSetUsage'),
17
- assignMaterial: unsupported('assignMaterial'),
18
- };
7
+ return { ...costStoreStubs(), ...structuralStoreStubs() };
19
8
  }
20
9
  //# sourceMappingURL=headless-backend-store-stubs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"headless-backend-store-stubs.js","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAkB/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAU,EAAE;IAClD,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,+CAA+C,CAAC,CAAC;AAC5E,CAAC,CAAC;AAIF,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,GAAG,cAAc,EAAE,EAAE,GAAG,oBAAoB,EAAE;QAC9C,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC;QAC7C,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC;QACvC,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,CAAC;QACvD,wBAAwB,EAAE,WAAW,CAAC,0BAA0B,CAAC;QACjE,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"headless-backend-store-stubs.js","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiB/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,MAAM,UAAU,yBAAyB;IACvC,OAAO,EAAE,GAAG,cAAc,EAAE,EAAE,GAAG,oBAAoB,EAAE,EAAE,CAAC;AAC5D,CAAC"}
@@ -2,5 +2,7 @@
2
2
  import type { StoreBackendMethods } from '@ifc-lite/sdk';
3
3
  import type { StoreEditor } from '@ifc-lite/mutations';
4
4
  import type { IfcDataStore } from '@ifc-lite/parser';
5
- export declare function createHeadlessStoreAdapter(dataStore: IfcDataStore, modelId: string, get: () => StoreEditor, assertKnownModelId: (id: string) => void): StoreBackendMethods;
5
+ export declare function createHeadlessStoreAdapter(dataStore: IfcDataStore, modelId: string, get: () => StoreEditor, assertKnownModelId: (id: string) => void, getPeerScopes: () => import('@ifc-lite/create').ElementSplitOptions['globalIdScopes']): StoreBackendMethods & {
6
+ disposeRooms(): void;
7
+ };
6
8
  //# sourceMappingURL=headless-backend-store.d.ts.map