@pascal-app/core 1.0.1 → 1.0.4

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 (1116) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +235 -0
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -0
  3. package/dist/agent-operations/__fixtures__/add-object-cases.js +129 -0
  4. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts +4 -0
  5. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -0
  6. package/dist/agent-operations/__fixtures__/build-room-cases.js +635 -0
  7. package/dist/agent-operations/__fixtures__/cases.d.ts +52 -0
  8. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -0
  9. package/dist/agent-operations/__fixtures__/cases.js +689 -0
  10. package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts +7 -0
  11. package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/find-by-type-cases.js +21 -0
  13. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts +17 -0
  14. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -0
  15. package/dist/agent-operations/__fixtures__/place-items-cases.js +506 -0
  16. package/dist/agent-operations/__fixtures__/room-cases.d.ts +3 -0
  17. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -0
  18. package/dist/agent-operations/__fixtures__/room-cases.js +338 -0
  19. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts +5 -0
  20. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -0
  21. package/dist/agent-operations/__fixtures__/search-assets-cases.js +137 -0
  22. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +6 -0
  23. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/structure-cases.js +588 -0
  25. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +3 -0
  26. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -0
  27. package/dist/agent-operations/__fixtures__/verify-scene-cases.js +302 -0
  28. package/dist/agent-operations/achieved.d.ts +16 -0
  29. package/dist/agent-operations/achieved.d.ts.map +1 -0
  30. package/dist/agent-operations/achieved.js +28 -0
  31. package/dist/agent-operations/add-column.d.ts +23 -0
  32. package/dist/agent-operations/add-column.d.ts.map +1 -0
  33. package/dist/agent-operations/add-column.js +97 -0
  34. package/dist/agent-operations/add-level.d.ts +14 -0
  35. package/dist/agent-operations/add-level.d.ts.map +1 -0
  36. package/dist/agent-operations/add-level.js +94 -0
  37. package/dist/agent-operations/add-object.d.ts +114 -0
  38. package/dist/agent-operations/add-object.d.ts.map +1 -0
  39. package/dist/agent-operations/add-object.js +361 -0
  40. package/dist/agent-operations/add-wall.d.ts +15 -0
  41. package/dist/agent-operations/add-wall.d.ts.map +1 -0
  42. package/dist/agent-operations/add-wall.js +47 -0
  43. package/dist/agent-operations/apply-changes.d.ts +16 -0
  44. package/dist/agent-operations/apply-changes.d.ts.map +1 -0
  45. package/dist/agent-operations/apply-changes.js +93 -0
  46. package/dist/agent-operations/apply-outcome.d.ts +15 -0
  47. package/dist/agent-operations/apply-outcome.d.ts.map +1 -0
  48. package/dist/agent-operations/apply-outcome.js +18 -0
  49. package/dist/agent-operations/collections.d.ts +28 -0
  50. package/dist/agent-operations/collections.d.ts.map +1 -0
  51. package/dist/agent-operations/collections.js +130 -0
  52. package/dist/agent-operations/create-room.d.ts +36 -0
  53. package/dist/agent-operations/create-room.d.ts.map +1 -0
  54. package/dist/agent-operations/create-room.js +177 -0
  55. package/dist/agent-operations/create-stair.d.ts +33 -0
  56. package/dist/agent-operations/create-stair.d.ts.map +1 -0
  57. package/dist/agent-operations/create-stair.js +247 -0
  58. package/dist/agent-operations/delete-node.d.ts +6 -0
  59. package/dist/agent-operations/delete-node.d.ts.map +1 -0
  60. package/dist/agent-operations/delete-node.js +9 -0
  61. package/dist/agent-operations/door-clearance.d.ts +135 -0
  62. package/dist/agent-operations/door-clearance.d.ts.map +1 -0
  63. package/dist/agent-operations/door-clearance.js +334 -0
  64. package/dist/agent-operations/duplicate-level.d.ts +12 -0
  65. package/dist/agent-operations/duplicate-level.d.ts.map +1 -0
  66. package/dist/agent-operations/duplicate-level.js +54 -0
  67. package/dist/agent-operations/find-by-type.d.ts +11 -0
  68. package/dist/agent-operations/find-by-type.d.ts.map +1 -0
  69. package/dist/agent-operations/find-by-type.js +94 -0
  70. package/dist/agent-operations/furnish-room.d.ts +18 -0
  71. package/dist/agent-operations/furnish-room.d.ts.map +1 -0
  72. package/dist/agent-operations/furnish-room.js +259 -0
  73. package/dist/agent-operations/get-node.d.ts +9 -0
  74. package/dist/agent-operations/get-node.d.ts.map +1 -0
  75. package/dist/agent-operations/get-node.js +33 -0
  76. package/dist/agent-operations/hosted-services.d.ts +13 -0
  77. package/dist/agent-operations/hosted-services.d.ts.map +1 -0
  78. package/dist/agent-operations/hosted-services.js +22 -0
  79. package/dist/agent-operations/index.d.ts +277 -0
  80. package/dist/agent-operations/index.d.ts.map +1 -0
  81. package/dist/agent-operations/index.js +80 -0
  82. package/dist/agent-operations/layout-clearance.d.ts +108 -0
  83. package/dist/agent-operations/layout-clearance.d.ts.map +1 -0
  84. package/dist/agent-operations/layout-clearance.js +190 -0
  85. package/dist/agent-operations/level-reads.d.ts +33 -0
  86. package/dist/agent-operations/level-reads.d.ts.map +1 -0
  87. package/dist/agent-operations/level-reads.js +161 -0
  88. package/dist/agent-operations/level-target.d.ts +11 -0
  89. package/dist/agent-operations/level-target.d.ts.map +1 -0
  90. package/dist/agent-operations/level-target.js +29 -0
  91. package/dist/agent-operations/list-levels.d.ts +4 -0
  92. package/dist/agent-operations/list-levels.d.ts.map +1 -0
  93. package/dist/agent-operations/list-levels.js +31 -0
  94. package/dist/agent-operations/material-preset.d.ts +11 -0
  95. package/dist/agent-operations/material-preset.d.ts.map +1 -0
  96. package/dist/agent-operations/material-preset.js +74 -0
  97. package/dist/agent-operations/material-refs.d.ts +24 -0
  98. package/dist/agent-operations/material-refs.d.ts.map +1 -0
  99. package/dist/agent-operations/material-refs.js +100 -0
  100. package/dist/agent-operations/node-patch.d.ts +3 -0
  101. package/dist/agent-operations/node-patch.d.ts.map +1 -0
  102. package/dist/agent-operations/node-patch.js +114 -0
  103. package/dist/agent-operations/paint.d.ts +21 -0
  104. package/dist/agent-operations/paint.d.ts.map +1 -0
  105. package/dist/agent-operations/paint.js +219 -0
  106. package/dist/agent-operations/place-items.d.ts +20 -0
  107. package/dist/agent-operations/place-items.d.ts.map +1 -0
  108. package/dist/agent-operations/place-items.js +226 -0
  109. package/dist/agent-operations/plan-geometry.d.ts +24 -0
  110. package/dist/agent-operations/plan-geometry.d.ts.map +1 -0
  111. package/dist/agent-operations/plan-geometry.js +94 -0
  112. package/dist/agent-operations/room-structure.d.ts +87 -0
  113. package/dist/agent-operations/room-structure.d.ts.map +1 -0
  114. package/dist/agent-operations/room-structure.js +144 -0
  115. package/dist/agent-operations/scene-materials.d.ts +15 -0
  116. package/dist/agent-operations/scene-materials.d.ts.map +1 -0
  117. package/dist/agent-operations/scene-materials.js +62 -0
  118. package/dist/agent-operations/scene-measure.d.ts +73 -0
  119. package/dist/agent-operations/scene-measure.d.ts.map +1 -0
  120. package/dist/agent-operations/scene-measure.js +73 -0
  121. package/dist/agent-operations/scene-queries.d.ts +4510 -0
  122. package/dist/agent-operations/scene-queries.d.ts.map +1 -0
  123. package/dist/agent-operations/scene-queries.js +84 -0
  124. package/dist/agent-operations/scene-view.d.ts +98 -0
  125. package/dist/agent-operations/scene-view.d.ts.map +1 -0
  126. package/dist/agent-operations/scene-view.js +559 -0
  127. package/dist/agent-operations/search-assets.d.ts +14 -0
  128. package/dist/agent-operations/search-assets.d.ts.map +1 -0
  129. package/dist/agent-operations/search-assets.js +42 -0
  130. package/dist/agent-operations/search-materials.d.ts +12 -0
  131. package/dist/agent-operations/search-materials.d.ts.map +1 -0
  132. package/dist/agent-operations/search-materials.js +111 -0
  133. package/dist/agent-operations/stairs.d.ts +5 -0
  134. package/dist/agent-operations/stairs.d.ts.map +1 -0
  135. package/dist/agent-operations/stairs.js +70 -0
  136. package/dist/agent-operations/types.d.ts +59 -0
  137. package/dist/agent-operations/types.d.ts.map +1 -0
  138. package/dist/agent-operations/types.js +1 -0
  139. package/dist/agent-operations/verify-scene.d.ts +50 -0
  140. package/dist/agent-operations/verify-scene.d.ts.map +1 -0
  141. package/dist/agent-operations/verify-scene.js +369 -0
  142. package/dist/agent-operations/wall-opening.d.ts +65 -0
  143. package/dist/agent-operations/wall-opening.d.ts.map +1 -0
  144. package/dist/agent-operations/wall-opening.js +55 -0
  145. package/dist/agent-tools/achieved.d.ts +9 -0
  146. package/dist/agent-tools/achieved.d.ts.map +1 -0
  147. package/dist/agent-tools/achieved.js +8 -0
  148. package/dist/agent-tools/add-object.d.ts +43 -0
  149. package/dist/agent-tools/add-object.d.ts.map +1 -0
  150. package/dist/agent-tools/add-object.js +86 -0
  151. package/dist/agent-tools/assets.d.ts +13 -0
  152. package/dist/agent-tools/assets.d.ts.map +1 -0
  153. package/dist/agent-tools/assets.js +18 -0
  154. package/dist/agent-tools/clear-scene.d.ts +10 -0
  155. package/dist/agent-tools/clear-scene.d.ts.map +1 -0
  156. package/dist/agent-tools/clear-scene.js +9 -0
  157. package/dist/agent-tools/collections.d.ts +35 -0
  158. package/dist/agent-tools/collections.d.ts.map +1 -0
  159. package/dist/agent-tools/collections.js +31 -0
  160. package/dist/agent-tools/columns.d.ts +44 -0
  161. package/dist/agent-tools/columns.d.ts.map +1 -0
  162. package/dist/agent-tools/columns.js +59 -0
  163. package/dist/agent-tools/contract.d.ts +68 -0
  164. package/dist/agent-tools/contract.d.ts.map +1 -0
  165. package/dist/agent-tools/contract.js +1 -0
  166. package/dist/agent-tools/create-room.d.ts +63 -0
  167. package/dist/agent-tools/create-room.d.ts.map +1 -0
  168. package/dist/agent-tools/create-room.js +90 -0
  169. package/dist/agent-tools/find-by-type.d.ts +11 -0
  170. package/dist/agent-tools/find-by-type.d.ts.map +1 -0
  171. package/dist/agent-tools/find-by-type.js +14 -0
  172. package/dist/agent-tools/furnish-room.d.ts +26 -0
  173. package/dist/agent-tools/furnish-room.d.ts.map +1 -0
  174. package/dist/agent-tools/furnish-room.js +35 -0
  175. package/dist/agent-tools/hosted-services.d.ts +402 -0
  176. package/dist/agent-tools/hosted-services.d.ts.map +1 -0
  177. package/dist/agent-tools/hosted-services.js +148 -0
  178. package/dist/agent-tools/index.d.ts +864 -0
  179. package/dist/agent-tools/index.d.ts.map +1 -0
  180. package/dist/agent-tools/index.js +82 -0
  181. package/dist/agent-tools/levels.d.ts +72 -0
  182. package/dist/agent-tools/levels.d.ts.map +1 -0
  183. package/dist/agent-tools/levels.js +76 -0
  184. package/dist/agent-tools/measurement.d.ts +37 -0
  185. package/dist/agent-tools/measurement.d.ts.map +1 -0
  186. package/dist/agent-tools/measurement.js +94 -0
  187. package/dist/agent-tools/node-id.d.ts +3 -0
  188. package/dist/agent-tools/node-id.d.ts.map +1 -0
  189. package/dist/agent-tools/node-id.js +2 -0
  190. package/dist/agent-tools/nodes.d.ts +17 -0
  191. package/dist/agent-tools/nodes.d.ts.map +1 -0
  192. package/dist/agent-tools/nodes.js +13 -0
  193. package/dist/agent-tools/paint.d.ts +46 -0
  194. package/dist/agent-tools/paint.d.ts.map +1 -0
  195. package/dist/agent-tools/paint.js +29 -0
  196. package/dist/agent-tools/place-items.d.ts +19 -0
  197. package/dist/agent-tools/place-items.d.ts.map +1 -0
  198. package/dist/agent-tools/place-items.js +29 -0
  199. package/dist/agent-tools/refusal.d.ts +20 -0
  200. package/dist/agent-tools/refusal.d.ts.map +1 -0
  201. package/dist/agent-tools/refusal.js +29 -0
  202. package/dist/agent-tools/room-structure.d.ts +438 -0
  203. package/dist/agent-tools/room-structure.d.ts.map +1 -0
  204. package/dist/agent-tools/room-structure.js +207 -0
  205. package/dist/agent-tools/search-materials.d.ts +20 -0
  206. package/dist/agent-tools/search-materials.d.ts.map +1 -0
  207. package/dist/agent-tools/search-materials.js +32 -0
  208. package/dist/agent-tools/stairs.d.ts +86 -0
  209. package/dist/agent-tools/stairs.d.ts.map +1 -0
  210. package/dist/agent-tools/stairs.js +103 -0
  211. package/dist/agent-tools/verify-scene.d.ts +13 -0
  212. package/dist/agent-tools/verify-scene.d.ts.map +1 -0
  213. package/dist/agent-tools/verify-scene.js +21 -0
  214. package/dist/agent-tools/view-scene.d.ts +43 -0
  215. package/dist/agent-tools/view-scene.d.ts.map +1 -0
  216. package/dist/agent-tools/view-scene.js +80 -0
  217. package/dist/agent-tools/wall-openings.d.ts +163 -0
  218. package/dist/agent-tools/wall-openings.d.ts.map +1 -0
  219. package/dist/agent-tools/wall-openings.js +144 -0
  220. package/dist/agent-tools/walls.d.ts +21 -0
  221. package/dist/agent-tools/walls.d.ts.map +1 -0
  222. package/dist/agent-tools/walls.js +30 -0
  223. package/dist/agent-tools/write-target.d.ts +12 -0
  224. package/dist/agent-tools/write-target.d.ts.map +1 -0
  225. package/dist/agent-tools/write-target.js +10 -0
  226. package/dist/building/__fixtures__/wall-opening-cases.d.ts +736 -0
  227. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -0
  228. package/dist/building/__fixtures__/wall-opening-cases.js +307 -0
  229. package/dist/building/door-types.d.ts +22 -0
  230. package/dist/building/door-types.d.ts.map +1 -0
  231. package/dist/building/door-types.js +167 -0
  232. package/dist/building/floor-item-fit.d.ts +38 -0
  233. package/dist/building/floor-item-fit.d.ts.map +1 -0
  234. package/dist/building/floor-item-fit.js +47 -0
  235. package/dist/building/index.d.ts +7 -0
  236. package/dist/building/index.d.ts.map +1 -0
  237. package/dist/building/index.js +6 -0
  238. package/dist/building/level-duplication.d.ts +8983 -0
  239. package/dist/building/level-duplication.d.ts.map +1 -0
  240. package/dist/building/level-duplication.js +314 -0
  241. package/dist/building/opening-style-presets.d.ts +46 -0
  242. package/dist/building/opening-style-presets.d.ts.map +1 -0
  243. package/dist/building/opening-style-presets.js +195 -0
  244. package/dist/building/wall-openings.d.ts +445 -0
  245. package/dist/building/wall-openings.d.ts.map +1 -0
  246. package/dist/building/wall-openings.js +231 -0
  247. package/dist/building/window-types.d.ts +17 -0
  248. package/dist/building/window-types.d.ts.map +1 -0
  249. package/dist/building/window-types.js +31 -0
  250. package/dist/commands/structure/apply-zone-transform.d.ts +23 -0
  251. package/dist/commands/structure/apply-zone-transform.d.ts.map +1 -0
  252. package/dist/commands/structure/apply-zone-transform.js +55 -0
  253. package/dist/commands/structure/create-mezzanine.d.ts +12 -0
  254. package/dist/commands/structure/create-mezzanine.d.ts.map +1 -0
  255. package/dist/commands/structure/create-mezzanine.js +46 -0
  256. package/dist/commands/structure/create-zone.d.ts +32 -0
  257. package/dist/commands/structure/create-zone.d.ts.map +1 -0
  258. package/dist/commands/structure/create-zone.js +126 -0
  259. package/dist/commands/structure/delete-zone.d.ts +51 -0
  260. package/dist/commands/structure/delete-zone.d.ts.map +1 -0
  261. package/dist/commands/structure/delete-zone.js +354 -0
  262. package/dist/commands/structure/divide-zone.d.ts +38 -0
  263. package/dist/commands/structure/divide-zone.d.ts.map +1 -0
  264. package/dist/commands/structure/divide-zone.js +186 -0
  265. package/dist/commands/structure/duplicate-zone.d.ts +7 -0
  266. package/dist/commands/structure/duplicate-zone.d.ts.map +1 -0
  267. package/dist/commands/structure/duplicate-zone.js +21 -0
  268. package/dist/commands/structure/floor-opening.d.ts +36 -0
  269. package/dist/commands/structure/floor-opening.d.ts.map +1 -0
  270. package/dist/commands/structure/floor-opening.js +124 -0
  271. package/dist/commands/structure/index.d.ts +22 -0
  272. package/dist/commands/structure/index.d.ts.map +1 -0
  273. package/dist/commands/structure/index.js +20 -0
  274. package/dist/commands/structure/lock-outside-faces.d.ts +12 -0
  275. package/dist/commands/structure/lock-outside-faces.d.ts.map +1 -0
  276. package/dist/commands/structure/lock-outside-faces.js +32 -0
  277. package/dist/commands/structure/merge-zones.d.ts +5 -0
  278. package/dist/commands/structure/merge-zones.d.ts.map +1 -0
  279. package/dist/commands/structure/merge-zones.js +22 -0
  280. package/dist/commands/structure/mezzanine-content.d.ts +16 -0
  281. package/dist/commands/structure/mezzanine-content.d.ts.map +1 -0
  282. package/dist/commands/structure/mezzanine-content.js +109 -0
  283. package/dist/commands/structure/plan-mezzanine-stair.d.ts +7 -0
  284. package/dist/commands/structure/plan-mezzanine-stair.d.ts.map +1 -0
  285. package/dist/commands/structure/plan-mezzanine-stair.js +127 -0
  286. package/dist/commands/structure/plan-wall-deletion.d.ts +9 -0
  287. package/dist/commands/structure/plan-wall-deletion.d.ts.map +1 -0
  288. package/dist/commands/structure/plan-wall-deletion.js +151 -0
  289. package/dist/commands/structure/rebase-floor-reference.d.ts +7 -0
  290. package/dist/commands/structure/rebase-floor-reference.d.ts.map +1 -0
  291. package/dist/commands/structure/rebase-floor-reference.js +90 -0
  292. package/dist/commands/structure/resize-mezzanine.d.ts +8 -0
  293. package/dist/commands/structure/resize-mezzanine.d.ts.map +1 -0
  294. package/dist/commands/structure/resize-mezzanine.js +43 -0
  295. package/dist/commands/structure/rotate-zone.d.ts +8 -0
  296. package/dist/commands/structure/rotate-zone.d.ts.map +1 -0
  297. package/dist/commands/structure/rotate-zone.js +28 -0
  298. package/dist/commands/structure/set-floor-foundation.d.ts +62 -0
  299. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -0
  300. package/dist/commands/structure/set-floor-foundation.js +162 -0
  301. package/dist/commands/structure/set-room-floor-construction.d.ts +8 -0
  302. package/dist/commands/structure/set-room-floor-construction.d.ts.map +1 -0
  303. package/dist/commands/structure/set-room-floor-construction.js +72 -0
  304. package/dist/commands/structure/set-wall-geometry.d.ts +10 -0
  305. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -0
  306. package/dist/commands/structure/set-wall-geometry.js +52 -0
  307. package/dist/commands/structure/set-zone-edges.d.ts +14 -0
  308. package/dist/commands/structure/set-zone-edges.d.ts.map +1 -0
  309. package/dist/commands/structure/set-zone-edges.js +143 -0
  310. package/dist/commands/structure/set-zone-intent.d.ts +39 -0
  311. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -0
  312. package/dist/commands/structure/set-zone-intent.js +125 -0
  313. package/dist/commands/structure/shared.d.ts +4512 -0
  314. package/dist/commands/structure/shared.d.ts.map +1 -0
  315. package/dist/commands/structure/shared.js +102 -0
  316. package/dist/commands/structure/transform-zone.d.ts +23 -0
  317. package/dist/commands/structure/transform-zone.d.ts.map +1 -0
  318. package/dist/commands/structure/transform-zone.js +472 -0
  319. package/dist/commands/structure/validate-mezzanine.d.ts +5 -0
  320. package/dist/commands/structure/validate-mezzanine.d.ts.map +1 -0
  321. package/dist/commands/structure/validate-mezzanine.js +46 -0
  322. package/dist/commands/structure/zone-crossings.d.ts +8 -0
  323. package/dist/commands/structure/zone-crossings.d.ts.map +1 -0
  324. package/dist/commands/structure/zone-crossings.js +162 -0
  325. package/dist/commands/structure/zone-drop.d.ts +4 -0
  326. package/dist/commands/structure/zone-drop.d.ts.map +1 -0
  327. package/dist/commands/structure/zone-drop.js +68 -0
  328. package/dist/commands/structure/zone-insertion.d.ts +4 -0
  329. package/dist/commands/structure/zone-insertion.d.ts.map +1 -0
  330. package/dist/commands/structure/zone-insertion.js +200 -0
  331. package/dist/commands/structure/zone-transform-content.d.ts +6 -0
  332. package/dist/commands/structure/zone-transform-content.d.ts.map +1 -0
  333. package/dist/commands/structure/zone-transform-content.js +117 -0
  334. package/dist/commands/structure/zone-wall-merge.d.ts +4977 -0
  335. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -0
  336. package/dist/commands/structure/zone-wall-merge.js +135 -0
  337. package/dist/contracts/reference-discovery.d.ts +18 -0
  338. package/dist/contracts/reference-discovery.d.ts.map +1 -0
  339. package/dist/contracts/reference-discovery.js +100 -0
  340. package/dist/contracts/reference-inventory.d.ts +44 -0
  341. package/dist/contracts/reference-inventory.d.ts.map +1 -0
  342. package/dist/contracts/reference-inventory.js +872 -0
  343. package/dist/events/bus.d.ts +70 -9
  344. package/dist/events/bus.d.ts.map +1 -1
  345. package/dist/hooks/scene-registry/item-clip-registry.d.ts +6 -3
  346. package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -1
  347. package/dist/hooks/scene-registry/item-clip-registry.js +2 -1
  348. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  349. package/dist/hooks/spatial-grid/floor-placed-elevation.js +15 -1
  350. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +3 -2
  351. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  352. package/dist/hooks/spatial-grid/spatial-grid-manager.js +53 -66
  353. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1650 -131
  354. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  355. package/dist/hooks/spatial-grid/spatial-grid-sync.js +86 -83
  356. package/dist/hooks/spatial-grid/support-host-patch.d.ts +1 -0
  357. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  358. package/dist/hooks/spatial-grid/support-host-patch.js +12 -5
  359. package/dist/index.d.ts +83 -13
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +78 -11
  362. package/dist/lib/__bench__/near-linear-walls.d.ts +2 -0
  363. package/dist/lib/__bench__/near-linear-walls.d.ts.map +1 -0
  364. package/dist/lib/__bench__/near-linear-walls.js +24 -0
  365. package/dist/lib/__bench__/structure-preview.bench.d.ts +2 -0
  366. package/dist/lib/__bench__/structure-preview.bench.d.ts.map +1 -0
  367. package/dist/lib/__bench__/structure-preview.bench.js +72 -0
  368. package/dist/lib/__fixtures__/mezzanine.d.ts +13968 -0
  369. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -0
  370. package/dist/lib/__fixtures__/mezzanine.js +43 -0
  371. package/dist/lib/absorb-wall-separators.d.ts +4483 -0
  372. package/dist/lib/absorb-wall-separators.d.ts.map +1 -0
  373. package/dist/lib/absorb-wall-separators.js +65 -0
  374. package/dist/lib/angle-accumulator.d.ts +3 -0
  375. package/dist/lib/angle-accumulator.d.ts.map +1 -0
  376. package/dist/lib/angle-accumulator.js +13 -0
  377. package/dist/lib/artifact-store.d.ts +31 -0
  378. package/dist/lib/artifact-store.d.ts.map +1 -0
  379. package/dist/lib/artifact-store.js +42 -0
  380. package/dist/lib/assembly-stack.d.ts +54 -0
  381. package/dist/lib/assembly-stack.d.ts.map +1 -0
  382. package/dist/lib/assembly-stack.js +52 -0
  383. package/dist/lib/asset-storage.d.ts.map +1 -1
  384. package/dist/lib/asset-storage.js +3 -0
  385. package/dist/lib/canonical-opening-ring.d.ts +3 -0
  386. package/dist/lib/canonical-opening-ring.d.ts.map +1 -0
  387. package/dist/lib/canonical-opening-ring.js +14 -0
  388. package/dist/lib/ceiling-children.d.ts +8 -0
  389. package/dist/lib/ceiling-children.d.ts.map +1 -0
  390. package/dist/lib/ceiling-children.js +36 -0
  391. package/dist/lib/ceiling-surface.d.ts +40 -0
  392. package/dist/lib/ceiling-surface.d.ts.map +1 -0
  393. package/dist/lib/ceiling-surface.js +65 -0
  394. package/dist/lib/cutter-host.d.ts +5 -0
  395. package/dist/lib/cutter-host.d.ts.map +1 -0
  396. package/dist/lib/cutter-host.js +30 -0
  397. package/dist/lib/floor-construction-lift.d.ts +4 -0
  398. package/dist/lib/floor-construction-lift.d.ts.map +1 -0
  399. package/dist/lib/floor-construction-lift.js +54 -0
  400. package/dist/lib/floor-footprint-key.d.ts +3 -0
  401. package/dist/lib/floor-footprint-key.d.ts.map +1 -0
  402. package/dist/lib/floor-footprint-key.js +9 -0
  403. package/dist/lib/floor-footprint-name.d.ts +11 -0
  404. package/dist/lib/floor-footprint-name.d.ts.map +1 -0
  405. package/dist/lib/floor-footprint-name.js +52 -0
  406. package/dist/lib/floor-foundation-datum.d.ts +31 -0
  407. package/dist/lib/floor-foundation-datum.d.ts.map +1 -0
  408. package/dist/lib/floor-foundation-datum.js +226 -0
  409. package/dist/lib/floor-foundation-stack.d.ts +16 -0
  410. package/dist/lib/floor-foundation-stack.d.ts.map +1 -0
  411. package/dist/lib/floor-foundation-stack.js +214 -0
  412. package/dist/lib/floor-intent-changes.d.ts +10 -0
  413. package/dist/lib/floor-intent-changes.d.ts.map +1 -0
  414. package/dist/lib/floor-intent-changes.js +461 -0
  415. package/dist/lib/floor-opening-footprints.d.ts +24 -0
  416. package/dist/lib/floor-opening-footprints.d.ts.map +1 -0
  417. package/dist/lib/floor-opening-footprints.js +127 -0
  418. package/dist/lib/floor-opening-intent.d.ts +16 -0
  419. package/dist/lib/floor-opening-intent.d.ts.map +1 -0
  420. package/dist/lib/floor-opening-intent.js +82 -0
  421. package/dist/lib/floor-plate-id.d.ts +5 -0
  422. package/dist/lib/floor-plate-id.d.ts.map +1 -0
  423. package/dist/lib/floor-plate-id.js +20 -0
  424. package/dist/lib/floor-plate-paint.d.ts +8 -0
  425. package/dist/lib/floor-plate-paint.d.ts.map +1 -0
  426. package/dist/lib/floor-plate-paint.js +11 -0
  427. package/dist/lib/floor-plates.d.ts +211 -0
  428. package/dist/lib/floor-plates.d.ts.map +1 -0
  429. package/dist/lib/floor-plates.js +729 -0
  430. package/dist/lib/floor-room-faces.d.ts +5 -0
  431. package/dist/lib/floor-room-faces.d.ts.map +1 -0
  432. package/dist/lib/floor-room-faces.js +29 -0
  433. package/dist/lib/floor-step-finish.d.ts +49 -0
  434. package/dist/lib/floor-step-finish.d.ts.map +1 -0
  435. package/dist/lib/floor-step-finish.js +128 -0
  436. package/dist/lib/geometry-script-node.d.ts +82 -0
  437. package/dist/lib/geometry-script-node.d.ts.map +1 -0
  438. package/dist/lib/geometry-script-node.js +147 -0
  439. package/dist/lib/geometry-surfaces.d.ts +61 -0
  440. package/dist/lib/geometry-surfaces.d.ts.map +1 -0
  441. package/dist/lib/geometry-surfaces.js +156 -0
  442. package/dist/lib/item-slab-support.d.ts +14 -0
  443. package/dist/lib/item-slab-support.d.ts.map +1 -0
  444. package/dist/lib/item-slab-support.js +40 -0
  445. package/dist/lib/level-footprints.d.ts +23 -0
  446. package/dist/lib/level-footprints.d.ts.map +1 -0
  447. package/dist/lib/level-footprints.js +398 -0
  448. package/dist/lib/level-name.d.ts +7 -0
  449. package/dist/lib/level-name.d.ts.map +1 -1
  450. package/dist/lib/level-name.js +11 -3
  451. package/dist/lib/new-zone.d.ts +10 -0
  452. package/dist/lib/new-zone.d.ts.map +1 -0
  453. package/dist/lib/new-zone.js +10 -0
  454. package/dist/lib/node-ancestry.d.ts +30 -0
  455. package/dist/lib/node-ancestry.d.ts.map +1 -0
  456. package/dist/lib/node-ancestry.js +76 -0
  457. package/dist/lib/node-visibility.d.ts +12 -0
  458. package/dist/lib/node-visibility.d.ts.map +1 -0
  459. package/dist/lib/node-visibility.js +12 -0
  460. package/dist/lib/object-cuts.d.ts +11 -0
  461. package/dist/lib/object-cuts.d.ts.map +1 -0
  462. package/dist/lib/object-cuts.js +63 -0
  463. package/dist/lib/opening-floor-datum.d.ts +24 -0
  464. package/dist/lib/opening-floor-datum.d.ts.map +1 -0
  465. package/dist/lib/opening-floor-datum.js +145 -0
  466. package/dist/lib/own-floor-intent.d.ts +15 -0
  467. package/dist/lib/own-floor-intent.d.ts.map +1 -0
  468. package/dist/lib/own-floor-intent.js +201 -0
  469. package/dist/lib/plate-reference.d.ts +3 -0
  470. package/dist/lib/plate-reference.d.ts.map +1 -0
  471. package/dist/lib/plate-reference.js +91 -0
  472. package/dist/lib/plate-surface.d.ts +120 -0
  473. package/dist/lib/plate-surface.d.ts.map +1 -0
  474. package/dist/lib/plate-surface.js +725 -0
  475. package/dist/lib/polygon-boolean.d.ts +17 -0
  476. package/dist/lib/polygon-boolean.d.ts.map +1 -0
  477. package/dist/lib/polygon-boolean.js +195 -0
  478. package/dist/lib/polygon-label.d.ts +7 -0
  479. package/dist/lib/polygon-label.d.ts.map +1 -0
  480. package/dist/lib/polygon-label.js +94 -0
  481. package/dist/lib/room-drawn-floor.d.ts +29 -0
  482. package/dist/lib/room-drawn-floor.d.ts.map +1 -0
  483. package/dist/lib/room-drawn-floor.js +88 -0
  484. package/dist/lib/room-floor-choices.d.ts +11 -0
  485. package/dist/lib/room-floor-choices.d.ts.map +1 -0
  486. package/dist/lib/room-floor-choices.js +60 -0
  487. package/dist/lib/room-floor-feasibility.d.ts +25 -0
  488. package/dist/lib/room-floor-feasibility.d.ts.map +1 -0
  489. package/dist/lib/room-floor-feasibility.js +293 -0
  490. package/dist/lib/room-floor-plate.d.ts +3 -0
  491. package/dist/lib/room-floor-plate.d.ts.map +1 -0
  492. package/dist/lib/room-floor-plate.js +4 -0
  493. package/dist/lib/room-graph.d.ts +79 -0
  494. package/dist/lib/room-graph.d.ts.map +1 -0
  495. package/dist/lib/room-graph.js +1265 -0
  496. package/dist/lib/room-name.d.ts +10 -0
  497. package/dist/lib/room-name.d.ts.map +1 -0
  498. package/dist/lib/room-name.js +22 -0
  499. package/dist/lib/room-topology-index.d.ts +53 -5
  500. package/dist/lib/room-topology-index.d.ts.map +1 -1
  501. package/dist/lib/room-topology-index.js +176 -30
  502. package/dist/lib/room-vertical-placement.d.ts +12 -0
  503. package/dist/lib/room-vertical-placement.d.ts.map +1 -0
  504. package/dist/lib/room-vertical-placement.js +28 -0
  505. package/dist/lib/room-zone-adoption.d.ts +74 -0
  506. package/dist/lib/room-zone-adoption.d.ts.map +1 -0
  507. package/dist/lib/room-zone-adoption.js +150 -0
  508. package/dist/lib/setback-envelope.d.ts +73 -0
  509. package/dist/lib/setback-envelope.d.ts.map +1 -0
  510. package/dist/lib/setback-envelope.js +506 -0
  511. package/dist/lib/slab-polygon.d.ts.map +1 -1
  512. package/dist/lib/slab-polygon.js +33 -12
  513. package/dist/lib/slots.d.ts +20 -0
  514. package/dist/lib/slots.d.ts.map +1 -1
  515. package/dist/lib/slots.js +44 -0
  516. package/dist/lib/space-detection.d.ts +14 -94
  517. package/dist/lib/space-detection.d.ts.map +1 -1
  518. package/dist/lib/space-detection.js +244 -1616
  519. package/dist/lib/structure-commit.d.ts +38 -0
  520. package/dist/lib/structure-commit.d.ts.map +1 -0
  521. package/dist/lib/structure-commit.js +52 -0
  522. package/dist/lib/structure-kernel.d.ts +66 -0
  523. package/dist/lib/structure-kernel.d.ts.map +1 -0
  524. package/dist/lib/structure-kernel.js +735 -0
  525. package/dist/lib/structure-reconcile.d.ts +15 -0
  526. package/dist/lib/structure-reconcile.d.ts.map +1 -0
  527. package/dist/lib/structure-reconcile.js +218 -0
  528. package/dist/lib/terrain-contours.d.ts +29 -0
  529. package/dist/lib/terrain-contours.d.ts.map +1 -0
  530. package/dist/lib/terrain-contours.js +199 -0
  531. package/dist/lib/terrain-source-persisted.d.ts +42 -0
  532. package/dist/lib/terrain-source-persisted.d.ts.map +1 -0
  533. package/dist/lib/terrain-source-persisted.js +68 -0
  534. package/dist/lib/terrain-source.d.ts +2 -40
  535. package/dist/lib/terrain-source.d.ts.map +1 -1
  536. package/dist/lib/terrain-source.js +2 -68
  537. package/dist/lib/terrain-support-query.d.ts +83 -0
  538. package/dist/lib/terrain-support-query.d.ts.map +1 -0
  539. package/dist/lib/terrain-support-query.js +187 -0
  540. package/dist/lib/terrain-support.d.ts +1 -77
  541. package/dist/lib/terrain-support.d.ts.map +1 -1
  542. package/dist/lib/terrain-support.js +3 -181
  543. package/dist/lib/unit-containment.js +2 -2
  544. package/dist/lib/unit-report.d.ts.map +1 -1
  545. package/dist/lib/unit-report.js +5 -4
  546. package/dist/lib/zone-colors.d.ts +11 -0
  547. package/dist/lib/zone-colors.d.ts.map +1 -0
  548. package/dist/lib/zone-colors.js +32 -0
  549. package/dist/lib/zone-quantities.d.ts.map +1 -1
  550. package/dist/lib/zone-quantities.js +113 -223
  551. package/dist/material-library.d.ts +9 -1
  552. package/dist/material-library.d.ts.map +1 -1
  553. package/dist/material-library.js +550 -1
  554. package/dist/node-slots/block.d.ts +7 -0
  555. package/dist/node-slots/block.d.ts.map +1 -0
  556. package/dist/node-slots/block.js +27 -0
  557. package/dist/node-slots/cabinet.d.ts +4 -0
  558. package/dist/node-slots/cabinet.d.ts.map +1 -0
  559. package/dist/node-slots/cabinet.js +24 -0
  560. package/dist/node-slots/ceiling.d.ts +6 -0
  561. package/dist/node-slots/ceiling.d.ts.map +1 -0
  562. package/dist/node-slots/ceiling.js +7 -0
  563. package/dist/node-slots/column.d.ts +9 -0
  564. package/dist/node-slots/column.d.ts.map +1 -0
  565. package/dist/node-slots/column.js +24 -0
  566. package/dist/node-slots/door.d.ts +9 -0
  567. package/dist/node-slots/door.d.ts.map +1 -0
  568. package/dist/node-slots/door.js +20 -0
  569. package/dist/node-slots/duct.d.ts +5 -0
  570. package/dist/node-slots/duct.d.ts.map +1 -0
  571. package/dist/node-slots/duct.js +5 -0
  572. package/dist/node-slots/elevator.d.ts +9 -0
  573. package/dist/node-slots/elevator.d.ts.map +1 -0
  574. package/dist/node-slots/elevator.js +17 -0
  575. package/dist/node-slots/fence.d.ts +10 -0
  576. package/dist/node-slots/fence.d.ts.map +1 -0
  577. package/dist/node-slots/fence.js +23 -0
  578. package/dist/node-slots/index.d.ts +25 -0
  579. package/dist/node-slots/index.d.ts.map +1 -0
  580. package/dist/node-slots/index.js +92 -0
  581. package/dist/node-slots/lean-to-extension.d.ts +5 -0
  582. package/dist/node-slots/lean-to-extension.d.ts.map +1 -0
  583. package/dist/node-slots/lean-to-extension.js +15 -0
  584. package/dist/node-slots/procedural-item.d.ts +4 -0
  585. package/dist/node-slots/procedural-item.d.ts.map +1 -0
  586. package/dist/node-slots/procedural-item.js +3 -0
  587. package/dist/node-slots/roof-accessories.d.ts +9 -0
  588. package/dist/node-slots/roof-accessories.d.ts.map +1 -0
  589. package/dist/node-slots/roof-accessories.js +34 -0
  590. package/dist/node-slots/shelf.d.ts +9 -0
  591. package/dist/node-slots/shelf.d.ts.map +1 -0
  592. package/dist/node-slots/shelf.js +30 -0
  593. package/dist/node-slots/slab.d.ts +7 -0
  594. package/dist/node-slots/slab.d.ts.map +1 -0
  595. package/dist/node-slots/slab.js +21 -0
  596. package/dist/node-slots/stair.d.ts +8 -0
  597. package/dist/node-slots/stair.d.ts.map +1 -0
  598. package/dist/node-slots/stair.js +17 -0
  599. package/dist/node-slots/wall.d.ts +12 -0
  600. package/dist/node-slots/wall.d.ts.map +1 -0
  601. package/dist/node-slots/wall.js +55 -0
  602. package/dist/node-slots/window.d.ts +5 -0
  603. package/dist/node-slots/window.d.ts.map +1 -0
  604. package/dist/node-slots/window.js +11 -0
  605. package/dist/procedural-items/design-placement.d.ts +49 -0
  606. package/dist/procedural-items/design-placement.d.ts.map +1 -0
  607. package/dist/procedural-items/design-placement.js +129 -0
  608. package/dist/procedural-items/design.d.ts +261 -0
  609. package/dist/procedural-items/design.d.ts.map +1 -0
  610. package/dist/procedural-items/design.js +707 -0
  611. package/dist/procedural-items/fixtures.d.ts +464 -24
  612. package/dist/procedural-items/fixtures.d.ts.map +1 -1
  613. package/dist/procedural-items/index.d.ts +5 -0
  614. package/dist/procedural-items/index.d.ts.map +1 -1
  615. package/dist/procedural-items/index.js +5 -0
  616. package/dist/procedural-items/integration.d.ts +127 -6
  617. package/dist/procedural-items/integration.d.ts.map +1 -1
  618. package/dist/procedural-items/joints.d.ts +56 -0
  619. package/dist/procedural-items/joints.d.ts.map +1 -0
  620. package/dist/procedural-items/joints.js +251 -0
  621. package/dist/procedural-items/library-colors.d.ts +12 -0
  622. package/dist/procedural-items/library-colors.d.ts.map +1 -1
  623. package/dist/procedural-items/library-colors.js +37 -3
  624. package/dist/procedural-items/motion-controller.d.ts +29 -0
  625. package/dist/procedural-items/motion-controller.d.ts.map +1 -0
  626. package/dist/procedural-items/motion-controller.js +130 -0
  627. package/dist/procedural-items/node.d.ts +490 -24
  628. package/dist/procedural-items/node.d.ts.map +1 -1
  629. package/dist/procedural-items/query.d.ts +19 -1
  630. package/dist/procedural-items/query.d.ts.map +1 -1
  631. package/dist/procedural-items/query.js +131 -48
  632. package/dist/procedural-items/recipe.d.ts +258 -14
  633. package/dist/procedural-items/recipe.d.ts.map +1 -1
  634. package/dist/procedural-items/recipe.js +933 -61
  635. package/dist/procedural-items/section.d.ts +27 -0
  636. package/dist/procedural-items/section.d.ts.map +1 -0
  637. package/dist/procedural-items/section.js +237 -0
  638. package/dist/procedural-items/spatial.d.ts +21 -0
  639. package/dist/procedural-items/spatial.d.ts.map +1 -1
  640. package/dist/procedural-items/spatial.js +90 -0
  641. package/dist/registry/handles.d.ts +30 -1
  642. package/dist/registry/handles.d.ts.map +1 -1
  643. package/dist/registry/index.d.ts +7 -5
  644. package/dist/registry/index.d.ts.map +1 -1
  645. package/dist/registry/index.js +4 -2
  646. package/dist/registry/mechanism.d.ts +9 -0
  647. package/dist/registry/mechanism.d.ts.map +1 -0
  648. package/dist/registry/mechanism.js +21 -0
  649. package/dist/registry/registry.d.ts +6 -3
  650. package/dist/registry/registry.d.ts.map +1 -1
  651. package/dist/registry/registry.js +59 -22
  652. package/dist/registry/scene-api.d.ts +20 -0
  653. package/dist/registry/scene-api.d.ts.map +1 -1
  654. package/dist/registry/scene-api.js +26 -13
  655. package/dist/registry/subtree.d.ts +8 -0
  656. package/dist/registry/subtree.d.ts.map +1 -1
  657. package/dist/registry/subtree.js +59 -0
  658. package/dist/registry/types.d.ts +352 -13
  659. package/dist/registry/types.d.ts.map +1 -1
  660. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  661. package/dist/schema/__fixtures__/node-fixtures.js +2 -0
  662. package/dist/schema/assembly.d.ts +153 -0
  663. package/dist/schema/assembly.d.ts.map +1 -0
  664. package/dist/schema/assembly.js +155 -0
  665. package/dist/schema/asset-url.d.ts +2 -1
  666. package/dist/schema/asset-url.d.ts.map +1 -1
  667. package/dist/schema/asset-url.js +5 -2
  668. package/dist/schema/base.d.ts +26 -0
  669. package/dist/schema/base.d.ts.map +1 -1
  670. package/dist/schema/base.js +2 -0
  671. package/dist/schema/collection-templates.d.ts +46 -0
  672. package/dist/schema/collection-templates.d.ts.map +1 -0
  673. package/dist/schema/collection-templates.js +14 -0
  674. package/dist/schema/collections.d.ts +7 -0
  675. package/dist/schema/collections.d.ts.map +1 -1
  676. package/dist/schema/cut.d.ts +29 -0
  677. package/dist/schema/cut.d.ts.map +1 -0
  678. package/dist/schema/cut.js +50 -0
  679. package/dist/schema/geometry-metadata.d.ts +51 -0
  680. package/dist/schema/geometry-metadata.d.ts.map +1 -0
  681. package/dist/schema/geometry-metadata.js +57 -0
  682. package/dist/schema/geometry-source.d.ts +250 -0
  683. package/dist/schema/geometry-source.d.ts.map +1 -0
  684. package/dist/schema/geometry-source.js +130 -0
  685. package/dist/schema/index.d.ts +20 -7
  686. package/dist/schema/index.d.ts.map +1 -1
  687. package/dist/schema/index.js +22 -5
  688. package/dist/schema/nodes/block.d.ts +28 -2
  689. package/dist/schema/nodes/block.d.ts.map +1 -1
  690. package/dist/schema/nodes/block.js +22 -9
  691. package/dist/schema/nodes/box-vent.d.ts +26 -0
  692. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  693. package/dist/schema/nodes/building.d.ts +26 -0
  694. package/dist/schema/nodes/building.d.ts.map +1 -1
  695. package/dist/schema/nodes/cabinet.d.ts +61 -9
  696. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  697. package/dist/schema/nodes/ceiling.d.ts +37 -0
  698. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  699. package/dist/schema/nodes/ceiling.js +8 -0
  700. package/dist/schema/nodes/chimney.d.ts +26 -0
  701. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  702. package/dist/schema/nodes/column.d.ts +126 -0
  703. package/dist/schema/nodes/column.d.ts.map +1 -1
  704. package/dist/schema/nodes/column.js +2 -0
  705. package/dist/schema/nodes/construction-dimension.d.ts +26 -0
  706. package/dist/schema/nodes/construction-dimension.d.ts.map +1 -1
  707. package/dist/schema/nodes/cupola.d.ts +26 -0
  708. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  709. package/dist/schema/nodes/curtain-wall.d.ts +129 -0
  710. package/dist/schema/nodes/curtain-wall.d.ts.map +1 -0
  711. package/dist/schema/nodes/curtain-wall.js +49 -0
  712. package/dist/schema/nodes/door.d.ts +141 -22
  713. package/dist/schema/nodes/door.d.ts.map +1 -1
  714. package/dist/schema/nodes/door.js +18 -33
  715. package/dist/schema/nodes/dormer.d.ts +28 -2
  716. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  717. package/dist/schema/nodes/downspout.d.ts +27 -1
  718. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  719. package/dist/schema/nodes/duct-fitting.d.ts +27 -1
  720. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
  721. package/dist/schema/nodes/duct-segment.d.ts +27 -1
  722. package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
  723. package/dist/schema/nodes/duct-terminal.d.ts +26 -0
  724. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -1
  725. package/dist/schema/nodes/elevator.d.ts +26 -0
  726. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  727. package/dist/schema/nodes/eyebrow-vent.d.ts +26 -0
  728. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  729. package/dist/schema/nodes/fence-feature.d.ts +141 -0
  730. package/dist/schema/nodes/fence-feature.d.ts.map +1 -0
  731. package/dist/schema/nodes/fence-feature.js +21 -0
  732. package/dist/schema/nodes/fence.d.ts +186 -0
  733. package/dist/schema/nodes/fence.d.ts.map +1 -1
  734. package/dist/schema/nodes/fence.js +92 -7
  735. package/dist/schema/nodes/floor-opening.d.ts +61 -0
  736. package/dist/schema/nodes/floor-opening.d.ts.map +1 -0
  737. package/dist/schema/nodes/floor-opening.js +17 -0
  738. package/dist/schema/nodes/guide.d.ts +26 -0
  739. package/dist/schema/nodes/guide.d.ts.map +1 -1
  740. package/dist/schema/nodes/gutter.d.ts +26 -0
  741. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  742. package/dist/schema/nodes/hvac-equipment.d.ts +26 -0
  743. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -1
  744. package/dist/schema/nodes/imported-mesh.d.ts +26 -0
  745. package/dist/schema/nodes/imported-mesh.d.ts.map +1 -1
  746. package/dist/schema/nodes/item.d.ts +153 -2
  747. package/dist/schema/nodes/item.d.ts.map +1 -1
  748. package/dist/schema/nodes/item.js +13 -0
  749. package/dist/schema/nodes/lean-to-extension.d.ts +26 -0
  750. package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -1
  751. package/dist/schema/nodes/level.d.ts +27 -1
  752. package/dist/schema/nodes/level.d.ts.map +1 -1
  753. package/dist/schema/nodes/lineset.d.ts +26 -0
  754. package/dist/schema/nodes/lineset.d.ts.map +1 -1
  755. package/dist/schema/nodes/liquid-line.d.ts +26 -0
  756. package/dist/schema/nodes/liquid-line.d.ts.map +1 -1
  757. package/dist/schema/nodes/measurement.d.ts +26 -0
  758. package/dist/schema/nodes/measurement.d.ts.map +1 -1
  759. package/dist/schema/nodes/opening-types.d.ts +41 -0
  760. package/dist/schema/nodes/opening-types.d.ts.map +1 -0
  761. package/dist/schema/nodes/opening-types.js +48 -0
  762. package/dist/schema/nodes/pipe-fitting.d.ts +26 -0
  763. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
  764. package/dist/schema/nodes/pipe-segment.d.ts +26 -0
  765. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
  766. package/dist/schema/nodes/pipe-trap.d.ts +26 -0
  767. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -1
  768. package/dist/schema/nodes/ridge-vent.d.ts +26 -0
  769. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  770. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  771. package/dist/schema/nodes/roof-segment-walls.js +2 -1
  772. package/dist/schema/nodes/roof-segment.d.ts +30 -2
  773. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  774. package/dist/schema/nodes/roof-segment.js +9 -0
  775. package/dist/schema/nodes/roof.d.ts +101 -0
  776. package/dist/schema/nodes/roof.d.ts.map +1 -1
  777. package/dist/schema/nodes/roof.js +6 -0
  778. package/dist/schema/nodes/scan.d.ts +26 -0
  779. package/dist/schema/nodes/scan.d.ts.map +1 -1
  780. package/dist/schema/nodes/separator.d.ts +50 -0
  781. package/dist/schema/nodes/separator.d.ts.map +1 -0
  782. package/dist/schema/nodes/separator.js +8 -0
  783. package/dist/schema/nodes/shelf.d.ts +26 -0
  784. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  785. package/dist/schema/nodes/site.d.ts +192 -0
  786. package/dist/schema/nodes/site.d.ts.map +1 -1
  787. package/dist/schema/nodes/site.js +178 -1
  788. package/dist/schema/nodes/skylight.d.ts +30 -4
  789. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  790. package/dist/schema/nodes/slab.d.ts +84 -0
  791. package/dist/schema/nodes/slab.d.ts.map +1 -1
  792. package/dist/schema/nodes/slab.js +37 -2
  793. package/dist/schema/nodes/solar-panel.d.ts +26 -0
  794. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  795. package/dist/schema/nodes/spawn.d.ts +26 -0
  796. package/dist/schema/nodes/spawn.d.ts.map +1 -1
  797. package/dist/schema/nodes/stair-construction.d.ts +21 -0
  798. package/dist/schema/nodes/stair-construction.d.ts.map +1 -0
  799. package/dist/schema/nodes/stair-construction.js +13 -0
  800. package/dist/schema/nodes/stair-design-targets.d.ts +9 -0
  801. package/dist/schema/nodes/stair-design-targets.d.ts.map +1 -0
  802. package/dist/schema/nodes/stair-design-targets.js +7 -0
  803. package/dist/schema/nodes/stair-segment.d.ts +72 -4
  804. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  805. package/dist/schema/nodes/stair-segment.js +13 -0
  806. package/dist/schema/nodes/stair.d.ts +119 -2
  807. package/dist/schema/nodes/stair.d.ts.map +1 -1
  808. package/dist/schema/nodes/stair.js +59 -2
  809. package/dist/schema/nodes/structural-grid.d.ts +26 -0
  810. package/dist/schema/nodes/structural-grid.d.ts.map +1 -1
  811. package/dist/schema/nodes/surface-hole-metadata.d.ts +3 -0
  812. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
  813. package/dist/schema/nodes/surface-hole-metadata.js +2 -1
  814. package/dist/schema/nodes/surface-paint-region.d.ts +14 -0
  815. package/dist/schema/nodes/surface-paint-region.d.ts.map +1 -0
  816. package/dist/schema/nodes/surface-paint-region.js +12 -0
  817. package/dist/schema/nodes/turbine-vent.d.ts +26 -0
  818. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  819. package/dist/schema/nodes/unit.d.ts +26 -0
  820. package/dist/schema/nodes/unit.d.ts.map +1 -1
  821. package/dist/schema/nodes/wall.d.ts +423 -59
  822. package/dist/schema/nodes/wall.d.ts.map +1 -1
  823. package/dist/schema/nodes/wall.js +188 -186
  824. package/dist/schema/nodes/window.d.ts +139 -20
  825. package/dist/schema/nodes/window.d.ts.map +1 -1
  826. package/dist/schema/nodes/window.js +12 -14
  827. package/dist/schema/nodes/zone.d.ts +69 -1
  828. package/dist/schema/nodes/zone.d.ts.map +1 -1
  829. package/dist/schema/nodes/zone.js +46 -0
  830. package/dist/schema/provenance.d.ts +118 -0
  831. package/dist/schema/provenance.d.ts.map +1 -0
  832. package/dist/schema/provenance.js +76 -0
  833. package/dist/schema/source-ref.d.ts +23 -0
  834. package/dist/schema/source-ref.d.ts.map +1 -0
  835. package/dist/schema/source-ref.js +29 -0
  836. package/dist/schema/types.d.ts +3389 -67
  837. package/dist/schema/types.d.ts.map +1 -1
  838. package/dist/schema/types.js +7 -0
  839. package/dist/services/__fixtures__/hosting.d.ts +3 -0
  840. package/dist/services/__fixtures__/hosting.d.ts.map +1 -0
  841. package/dist/services/__fixtures__/hosting.js +9 -0
  842. package/dist/services/__fixtures__/shelf-surface-rows.d.ts +4 -0
  843. package/dist/services/__fixtures__/shelf-surface-rows.d.ts.map +1 -0
  844. package/dist/services/__fixtures__/shelf-surface-rows.js +18 -0
  845. package/dist/services/alignment-anchors.d.ts +2 -1
  846. package/dist/services/alignment-anchors.d.ts.map +1 -1
  847. package/dist/services/alignment-anchors.js +9 -6
  848. package/dist/services/hosting.d.ts +3 -0
  849. package/dist/services/hosting.d.ts.map +1 -1
  850. package/dist/services/hosting.js +24 -7
  851. package/dist/services/index.d.ts +4 -4
  852. package/dist/services/index.d.ts.map +1 -1
  853. package/dist/services/index.js +4 -4
  854. package/dist/services/level-height.d.ts.map +1 -1
  855. package/dist/services/level-height.js +6 -4
  856. package/dist/services/snap.d.ts +3 -0
  857. package/dist/services/snap.d.ts.map +1 -1
  858. package/dist/services/snap.js +11 -0
  859. package/dist/services/storey.d.ts +21 -1
  860. package/dist/services/storey.d.ts.map +1 -1
  861. package/dist/services/storey.js +94 -8
  862. package/dist/services/surface-hosting.d.ts +6 -2
  863. package/dist/services/surface-hosting.d.ts.map +1 -1
  864. package/dist/services/surface-hosting.js +51 -11
  865. package/dist/store/actions/node-actions.d.ts +4563 -8
  866. package/dist/store/actions/node-actions.d.ts.map +1 -1
  867. package/dist/store/actions/node-actions.js +497 -269
  868. package/dist/store/derived-node-guard.d.ts +84 -0
  869. package/dist/store/derived-node-guard.d.ts.map +1 -0
  870. package/dist/store/derived-node-guard.js +586 -0
  871. package/dist/store/history-control.d.ts +34 -0
  872. package/dist/store/history-control.d.ts.map +1 -1
  873. package/dist/store/history-control.js +99 -1
  874. package/dist/store/history-drafts.d.ts +48 -0
  875. package/dist/store/history-drafts.d.ts.map +1 -0
  876. package/dist/store/history-drafts.js +403 -0
  877. package/dist/store/history-invalidation.d.ts.map +1 -1
  878. package/dist/store/history-invalidation.js +1 -0
  879. package/dist/store/item-interaction.d.ts +28 -0
  880. package/dist/store/item-interaction.d.ts.map +1 -0
  881. package/dist/store/item-interaction.js +34 -0
  882. package/dist/store/registered-node-defaults.d.ts +11 -0
  883. package/dist/store/registered-node-defaults.d.ts.map +1 -0
  884. package/dist/store/registered-node-defaults.js +25 -0
  885. package/dist/store/scene-annotations.d.ts +8969 -0
  886. package/dist/store/scene-annotations.d.ts.map +1 -0
  887. package/dist/store/scene-annotations.js +107 -0
  888. package/dist/store/use-interactive.d.ts +23 -1
  889. package/dist/store/use-interactive.d.ts.map +1 -1
  890. package/dist/store/use-interactive.js +128 -5
  891. package/dist/store/use-scene.d.ts +68 -12
  892. package/dist/store/use-scene.d.ts.map +1 -1
  893. package/dist/store/use-scene.js +429 -306
  894. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
  895. package/dist/systems/elevator/elevator-opening-sync.js +4 -6
  896. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  897. package/dist/systems/elevator/elevator-opening-system.js +12 -6
  898. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  899. package/dist/systems/elevator/elevator-service.js +8 -3
  900. package/dist/systems/fence/fence-centerline.d.ts.map +1 -1
  901. package/dist/systems/fence/fence-centerline.js +6 -5
  902. package/dist/systems/fence/fence-features.d.ts +36 -0
  903. package/dist/systems/fence/fence-features.d.ts.map +1 -0
  904. package/dist/systems/fence/fence-features.js +105 -0
  905. package/dist/systems/fence/fence-spline.d.ts +8 -5
  906. package/dist/systems/fence/fence-spline.d.ts.map +1 -1
  907. package/dist/systems/fence/fence-spline.js +51 -16
  908. package/dist/systems/owned-floor-openings.d.ts +9 -0
  909. package/dist/systems/owned-floor-openings.d.ts.map +1 -0
  910. package/dist/systems/owned-floor-openings.js +326 -0
  911. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -0
  912. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -0
  913. package/dist/systems/reconcile-owned-floor-openings.js +25 -0
  914. package/dist/systems/slab/__fixtures__/doorway-steps.d.ts +8 -0
  915. package/dist/systems/slab/__fixtures__/doorway-steps.d.ts.map +1 -0
  916. package/dist/systems/slab/__fixtures__/doorway-steps.js +62 -0
  917. package/dist/systems/slab/__fixtures__/floor-step.d.ts +5636 -0
  918. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -0
  919. package/dist/systems/slab/__fixtures__/floor-step.js +66 -0
  920. package/dist/systems/slab/__fixtures__/raised-room.d.ts +5775 -0
  921. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -0
  922. package/dist/systems/slab/__fixtures__/raised-room.js +54 -0
  923. package/dist/systems/slab/ensure-slab-openings.d.ts +9 -0
  924. package/dist/systems/slab/ensure-slab-openings.d.ts.map +1 -0
  925. package/dist/systems/slab/ensure-slab-openings.js +41 -0
  926. package/dist/systems/slab/slab-support.d.ts +25 -6
  927. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  928. package/dist/systems/slab/slab-support.js +471 -54
  929. package/dist/systems/stair/stair-base-elevation.d.ts +3 -0
  930. package/dist/systems/stair/stair-base-elevation.d.ts.map +1 -0
  931. package/dist/systems/stair/stair-base-elevation.js +49 -0
  932. package/dist/systems/stair/stair-clearance.d.ts +39 -0
  933. package/dist/systems/stair/stair-clearance.d.ts.map +1 -0
  934. package/dist/systems/stair/stair-clearance.js +508 -0
  935. package/dist/systems/stair/stair-construction.d.ts +37 -0
  936. package/dist/systems/stair/stair-construction.d.ts.map +1 -0
  937. package/dist/systems/stair/stair-construction.js +314 -0
  938. package/dist/systems/stair/stair-detail-budget.d.ts +13 -0
  939. package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -0
  940. package/dist/systems/stair/stair-detail-budget.js +64 -0
  941. package/dist/systems/stair/stair-flight.d.ts +2 -2
  942. package/dist/systems/stair/stair-flight.d.ts.map +1 -1
  943. package/dist/systems/stair/stair-flight.js +4 -3
  944. package/dist/systems/stair/stair-floor-footprints.d.ts +7 -0
  945. package/dist/systems/stair/stair-floor-footprints.d.ts.map +1 -0
  946. package/dist/systems/stair/stair-floor-footprints.js +113 -0
  947. package/dist/systems/stair/stair-footprint.d.ts +3 -1
  948. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  949. package/dist/systems/stair/stair-footprint.js +97 -44
  950. package/dist/systems/stair/stair-layout.d.ts +39 -0
  951. package/dist/systems/stair/stair-layout.d.ts.map +1 -0
  952. package/dist/systems/stair/stair-layout.js +58 -0
  953. package/dist/systems/stair/stair-opening-preview.d.ts +1650 -84
  954. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  955. package/dist/systems/stair/stair-opening-sync.d.ts +8 -2
  956. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  957. package/dist/systems/stair/stair-opening-sync.js +136 -315
  958. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  959. package/dist/systems/stair/stair-opening-system.js +40 -8
  960. package/dist/systems/stair/stair-presets.d.ts +276 -0
  961. package/dist/systems/stair/stair-presets.d.ts.map +1 -0
  962. package/dist/systems/stair/stair-presets.js +151 -0
  963. package/dist/systems/stair/stair-rail-budget.d.ts +6 -0
  964. package/dist/systems/stair/stair-rail-budget.d.ts.map +1 -0
  965. package/dist/systems/stair/stair-rail-budget.js +36 -0
  966. package/dist/systems/stair/stair-rail-path.d.ts +22 -0
  967. package/dist/systems/stair/stair-rail-path.d.ts.map +1 -0
  968. package/dist/systems/stair/stair-rail-path.js +497 -0
  969. package/dist/systems/stair/stair-rise-edit.d.ts +9 -0
  970. package/dist/systems/stair/stair-rise-edit.d.ts.map +1 -0
  971. package/dist/systems/stair/stair-rise-edit.js +46 -0
  972. package/dist/systems/stair/stair-rise-query.d.ts +24 -0
  973. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -0
  974. package/dist/systems/stair/stair-rise-query.js +125 -0
  975. package/dist/systems/stair/stair-rise.d.ts +4 -19
  976. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  977. package/dist/systems/stair/stair-rise.js +8 -71
  978. package/dist/systems/stair/stair-sizing.d.ts +414 -0
  979. package/dist/systems/stair/stair-sizing.d.ts.map +1 -0
  980. package/dist/systems/stair/stair-sizing.js +255 -0
  981. package/dist/systems/stair/stair-sweep-edit.d.ts +7 -0
  982. package/dist/systems/stair/stair-sweep-edit.d.ts.map +1 -0
  983. package/dist/systems/stair/stair-sweep-edit.js +8 -0
  984. package/dist/systems/stair/stair-walking-line.d.ts +5 -0
  985. package/dist/systems/stair/stair-walking-line.d.ts.map +1 -0
  986. package/dist/systems/stair/stair-walking-line.js +91 -0
  987. package/dist/systems/stair/stair-winder.d.ts +36 -0
  988. package/dist/systems/stair/stair-winder.d.ts.map +1 -0
  989. package/dist/systems/stair/stair-winder.js +173 -0
  990. package/dist/systems/wall/wall-assembly.d.ts +234 -0
  991. package/dist/systems/wall/wall-assembly.d.ts.map +1 -0
  992. package/dist/systems/wall/wall-assembly.js +854 -0
  993. package/dist/systems/wall/wall-curve.d.ts +2 -1
  994. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  995. package/dist/systems/wall/wall-curve.js +21 -5
  996. package/dist/systems/wall/wall-finish.d.ts +102 -0
  997. package/dist/systems/wall/wall-finish.d.ts.map +1 -0
  998. package/dist/systems/wall/wall-finish.js +264 -0
  999. package/dist/systems/wall/wall-footprint.d.ts +3 -0
  1000. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  1001. package/dist/systems/wall/wall-footprint.js +15 -13
  1002. package/dist/systems/wall/wall-frame.d.ts +45 -0
  1003. package/dist/systems/wall/wall-frame.d.ts.map +1 -0
  1004. package/dist/systems/wall/wall-frame.js +162 -0
  1005. package/dist/systems/wall/wall-layer-bands.d.ts +38 -0
  1006. package/dist/systems/wall/wall-layer-bands.d.ts.map +1 -0
  1007. package/dist/systems/wall/wall-layer-bands.js +109 -0
  1008. package/dist/systems/wall/wall-merge.d.ts +57 -0
  1009. package/dist/systems/wall/wall-merge.d.ts.map +1 -0
  1010. package/dist/systems/wall/wall-merge.js +411 -0
  1011. package/dist/systems/wall/wall-mitering.d.ts +6 -5
  1012. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  1013. package/dist/systems/wall/wall-mitering.js +70 -20
  1014. package/dist/systems/wall/wall-operations.d.ts +28 -0
  1015. package/dist/systems/wall/wall-operations.d.ts.map +1 -0
  1016. package/dist/systems/wall/wall-operations.js +146 -0
  1017. package/dist/systems/wall/wall-paint-plan.d.ts +30 -0
  1018. package/dist/systems/wall/wall-paint-plan.d.ts.map +1 -0
  1019. package/dist/systems/wall/wall-paint-plan.js +167 -0
  1020. package/dist/systems/wall/wall-room-sides.d.ts +6 -0
  1021. package/dist/systems/wall/wall-room-sides.d.ts.map +1 -0
  1022. package/dist/systems/wall/wall-room-sides.js +14 -0
  1023. package/dist/systems/wall/wall-step-openings.d.ts +17 -0
  1024. package/dist/systems/wall/wall-step-openings.d.ts.map +1 -0
  1025. package/dist/systems/wall/wall-step-openings.js +32 -0
  1026. package/dist/systems/wall/wall-top.d.ts +2 -6
  1027. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  1028. package/dist/systems/wall/wall-top.js +3 -9
  1029. package/dist/systems/wall/wall-topology.d.ts +28 -0
  1030. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  1031. package/dist/systems/wall/wall-topology.js +458 -9
  1032. package/dist/utils/clone-scene-graph.d.ts +6 -0
  1033. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  1034. package/dist/utils/clone-scene-graph.js +123 -15
  1035. package/dist/utils/ensure-scene-openings.d.ts +8965 -0
  1036. package/dist/utils/ensure-scene-openings.d.ts.map +1 -0
  1037. package/dist/utils/ensure-scene-openings.js +29 -0
  1038. package/dist/utils/exterior-threshold-migration.d.ts +4 -0
  1039. package/dist/utils/exterior-threshold-migration.d.ts.map +1 -0
  1040. package/dist/utils/exterior-threshold-migration.js +114 -0
  1041. package/dist/utils/floor-follow-migration.d.ts +3 -0
  1042. package/dist/utils/floor-follow-migration.d.ts.map +1 -0
  1043. package/dist/utils/floor-follow-migration.js +29 -0
  1044. package/dist/utils/floor-opening-migration.d.ts +13 -0
  1045. package/dist/utils/floor-opening-migration.d.ts.map +1 -0
  1046. package/dist/utils/floor-opening-migration.js +148 -0
  1047. package/dist/utils/floor-piece-adoption.d.ts +50 -0
  1048. package/dist/utils/floor-piece-adoption.d.ts.map +1 -0
  1049. package/dist/utils/floor-piece-adoption.js +182 -0
  1050. package/dist/utils/floor-plate-migration.d.ts +4507 -0
  1051. package/dist/utils/floor-plate-migration.d.ts.map +1 -0
  1052. package/dist/utils/floor-plate-migration.js +1360 -0
  1053. package/dist/utils/heal-plan-coordinates.d.ts +2 -0
  1054. package/dist/utils/heal-plan-coordinates.d.ts.map +1 -0
  1055. package/dist/utils/heal-plan-coordinates.js +69 -0
  1056. package/dist/utils/heal-scene-graph.d.ts +20 -6
  1057. package/dist/utils/heal-scene-graph.d.ts.map +1 -1
  1058. package/dist/utils/heal-scene-graph.js +61 -16
  1059. package/dist/utils/legacy-material-slots.d.ts +23 -0
  1060. package/dist/utils/legacy-material-slots.d.ts.map +1 -0
  1061. package/dist/utils/legacy-material-slots.js +120 -0
  1062. package/dist/utils/legacy-opening-datums.d.ts +11 -0
  1063. package/dist/utils/legacy-opening-datums.d.ts.map +1 -0
  1064. package/dist/utils/legacy-opening-datums.js +92 -0
  1065. package/dist/utils/legacy-wall-datums.d.ts +6 -0
  1066. package/dist/utils/legacy-wall-datums.d.ts.map +1 -0
  1067. package/dist/utils/legacy-wall-datums.js +199 -0
  1068. package/dist/utils/load-migration.d.ts +28 -0
  1069. package/dist/utils/load-migration.d.ts.map +1 -0
  1070. package/dist/utils/load-migration.js +89 -0
  1071. package/dist/utils/node-defaults.d.ts +37 -0
  1072. package/dist/utils/node-defaults.d.ts.map +1 -0
  1073. package/dist/utils/node-defaults.js +96 -0
  1074. package/dist/utils/normalize-legacy-structure.d.ts +2 -0
  1075. package/dist/utils/normalize-legacy-structure.d.ts.map +1 -0
  1076. package/dist/utils/normalize-legacy-structure.js +61 -0
  1077. package/dist/utils/omit-undefined.d.ts +2 -0
  1078. package/dist/utils/omit-undefined.d.ts.map +1 -0
  1079. package/dist/utils/omit-undefined.js +17 -0
  1080. package/dist/utils/owned-floor-opening-migration.d.ts +4489 -0
  1081. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -0
  1082. package/dist/utils/owned-floor-opening-migration.js +365 -0
  1083. package/dist/utils/reconcile-structure-on-load.d.ts +8965 -0
  1084. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -0
  1085. package/dist/utils/reconcile-structure-on-load.js +307 -0
  1086. package/dist/utils/room-zone-migration.d.ts +18 -0
  1087. package/dist/utils/room-zone-migration.d.ts.map +1 -0
  1088. package/dist/utils/room-zone-migration.js +258 -0
  1089. package/dist/utils/scene-migrations.d.ts +16 -1
  1090. package/dist/utils/scene-migrations.d.ts.map +1 -1
  1091. package/dist/utils/scene-migrations.js +15 -1
  1092. package/dist/utils/structure-id.d.ts +4 -0
  1093. package/dist/utils/structure-id.d.ts.map +1 -0
  1094. package/dist/utils/structure-id.js +115 -0
  1095. package/dist/utils/vertical-scene-migration.d.ts +8 -8
  1096. package/dist/utils/vertical-scene-migration.d.ts.map +1 -1
  1097. package/dist/utils/vertical-scene-migration.js +18 -8
  1098. package/dist/utils/wall-assembly-migration.d.ts +14 -0
  1099. package/dist/utils/wall-assembly-migration.d.ts.map +1 -0
  1100. package/dist/utils/wall-assembly-migration.js +23 -0
  1101. package/dist/utils/wall-face-migration.d.ts +23 -0
  1102. package/dist/utils/wall-face-migration.d.ts.map +1 -0
  1103. package/dist/utils/wall-face-migration.js +246 -0
  1104. package/dist/validation/opening-bounds.d.ts +36 -0
  1105. package/dist/validation/opening-bounds.d.ts.map +1 -0
  1106. package/dist/validation/opening-bounds.js +34 -0
  1107. package/dist/validation/validate-build-json.d.ts +2 -0
  1108. package/dist/validation/validate-build-json.d.ts.map +1 -1
  1109. package/dist/validation/validate-build-json.js +48 -1
  1110. package/package.json +37 -4
  1111. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +0 -13
  1112. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +0 -1
  1113. package/dist/services/surface-hosting-procedural-parity.fixtures.js +0 -4691
  1114. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +0 -1060
  1115. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +0 -1
  1116. package/dist/services/surface-hosting-shelf-parity.fixtures.js +0 -3127
@@ -12,11 +12,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
12
12
  parentId: string | null;
13
13
  visible: boolean;
14
14
  metadata: Record<string, unknown>;
15
- children: string[];
16
15
  polygon: {
17
16
  type: "polygon";
18
17
  points: [number, number][];
19
18
  };
19
+ children: string[];
20
20
  type: "site";
21
21
  name?: string | undefined;
22
22
  camera?: {
@@ -26,6 +26,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
26
26
  fov?: number | undefined;
27
27
  zoom?: number | undefined;
28
28
  } | undefined;
29
+ provenance?: {
30
+ refs: {
31
+ id: string;
32
+ ns?: string | undefined;
33
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
34
+ }[];
35
+ lineage?: {
36
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
37
+ fromIds: string[];
38
+ } | undefined;
39
+ } | undefined;
29
40
  terrain?: {
30
41
  type: "heightfield";
31
42
  origin: [number, number];
@@ -35,6 +46,84 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
35
46
  step: number;
36
47
  heights: string;
37
48
  } | undefined;
49
+ address?: {
50
+ street?: string | undefined;
51
+ city?: string | undefined;
52
+ state?: string | undefined;
53
+ zip?: string | undefined;
54
+ } | undefined;
55
+ parcel?: {
56
+ apn?: string | undefined;
57
+ source?: string | undefined;
58
+ county?: string | undefined;
59
+ state?: string | undefined;
60
+ lotAreaSqFt?: number | undefined;
61
+ originLngLat?: [number, number] | undefined;
62
+ resolvedAt?: string | undefined;
63
+ layer?: string | undefined;
64
+ notes?: string[] | undefined;
65
+ } | undefined;
66
+ setbacks?: {
67
+ front: number;
68
+ side: number;
69
+ rear: number;
70
+ left?: number | undefined;
71
+ right?: number | undefined;
72
+ streetSide?: number | undefined;
73
+ } | undefined;
74
+ setbacksSource?: string | undefined;
75
+ zone?: string | undefined;
76
+ frontEdge?: number | undefined;
77
+ streetEdges?: number[] | undefined;
78
+ sightTriangleFt?: number | undefined;
79
+ northRotation?: number | undefined;
80
+ dossier?: {
81
+ [x: string]: unknown;
82
+ provider: string;
83
+ asOf: string;
84
+ sections: Record<string, {
85
+ [x: string]: unknown;
86
+ status: string;
87
+ summary?: string | undefined;
88
+ reason?: string | undefined;
89
+ source?: {
90
+ name?: string | undefined;
91
+ kind?: string | undefined;
92
+ vintage?: string | undefined;
93
+ attribution?: string | undefined;
94
+ } | undefined;
95
+ }>;
96
+ point?: {
97
+ lat?: number | undefined;
98
+ lng?: number | undefined;
99
+ source?: string | undefined;
100
+ } | undefined;
101
+ address?: {
102
+ formatted?: string | undefined;
103
+ precision?: string | undefined;
104
+ } | undefined;
105
+ parcel?: Record<string, unknown> | undefined;
106
+ flood?: Record<string, unknown> | undefined;
107
+ codeBasis?: Record<string, unknown> | undefined;
108
+ zoning?: Record<string, unknown> | undefined;
109
+ utilities?: Record<string, unknown> | undefined;
110
+ soils?: Record<string, unknown> | undefined;
111
+ wetlands?: Record<string, unknown> | undefined;
112
+ structures?: Record<string, unknown> | undefined;
113
+ elevation?: Record<string, unknown> | undefined;
114
+ boundaries?: Record<string, unknown> | undefined;
115
+ } | undefined;
116
+ contourIntervalIn?: number | undefined;
117
+ contours3d?: boolean | undefined;
118
+ terrainContours?: {
119
+ datum: string;
120
+ intervalFt: number;
121
+ lines: {
122
+ elevationFt: number;
123
+ points: [number, number][];
124
+ }[];
125
+ source?: string | undefined;
126
+ } | undefined;
38
127
  } | {
39
128
  object: "node";
40
129
  position: [number, number, number];
@@ -53,6 +142,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
53
142
  fov?: number | undefined;
54
143
  zoom?: number | undefined;
55
144
  } | undefined;
145
+ provenance?: {
146
+ refs: {
147
+ id: string;
148
+ ns?: string | undefined;
149
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
150
+ }[];
151
+ lineage?: {
152
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
153
+ fromIds: string[];
154
+ } | undefined;
155
+ } | undefined;
56
156
  } | {
57
157
  object: "node";
58
158
  position: [number, number, number];
@@ -60,9 +160,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
60
160
  parentId: string | null;
61
161
  visible: boolean;
62
162
  metadata: Record<string, unknown>;
163
+ depth: number;
63
164
  rotation: number;
64
165
  width: number;
65
- depth: number;
66
166
  shaftWallThickness: number;
67
167
  shaftStyle: "glass" | "solid";
68
168
  cabHeight: number;
@@ -87,6 +187,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
87
187
  fov?: number | undefined;
88
188
  zoom?: number | undefined;
89
189
  } | undefined;
190
+ provenance?: {
191
+ refs: {
192
+ id: string;
193
+ ns?: string | undefined;
194
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
195
+ }[];
196
+ lineage?: {
197
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
198
+ fromIds: string[];
199
+ } | undefined;
200
+ } | undefined;
90
201
  slots?: Record<string, string> | undefined;
91
202
  material?: {
92
203
  id?: string | undefined;
@@ -116,8 +227,8 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
116
227
  parentId: string | null;
117
228
  visible: boolean;
118
229
  metadata: Record<string, unknown>;
119
- color: string;
120
230
  kind: "apartment" | "hotel-room" | "commercial" | "common";
231
+ color: string;
121
232
  members: `zone_${string}`[];
122
233
  type: "unit";
123
234
  camera?: {
@@ -127,13 +238,24 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
127
238
  fov?: number | undefined;
128
239
  zoom?: number | undefined;
129
240
  } | undefined;
241
+ provenance?: {
242
+ refs: {
243
+ id: string;
244
+ ns?: string | undefined;
245
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
246
+ }[];
247
+ lineage?: {
248
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
249
+ fromIds: string[];
250
+ } | undefined;
251
+ } | undefined;
130
252
  } | {
131
253
  object: "node";
132
254
  id: `level_${string}`;
133
255
  parentId: string | null;
134
256
  visible: boolean;
135
257
  metadata: Record<string, unknown>;
136
- children: (`block_${string}` | `ceiling_${string}` | `item_${string}` | `procedural-item_${string}` | `column_${string}` | `construction-dimension_${string}` | `wall_${string}` | `roof_${string}` | `slab_${string}` | `fence_${string}` | `structural-grid_${string}` | `imesh_${string}` | `zone_${string}` | `stair_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}`)[];
258
+ children: (`block_${string}` | `ceiling_${string}` | `item_${string}` | `procedural-item_${string}` | `column_${string}` | `construction-dimension_${string}` | `wall_${string}` | `roof_${string}` | `slab_${string}` | `separator_${string}` | `floor-opening_${string}` | `fence_${string}` | `structural-grid_${string}` | `imesh_${string}` | `zone_${string}` | `stair_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}`)[];
137
259
  level: number;
138
260
  baseElevation: number;
139
261
  type: "level";
@@ -145,6 +267,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
145
267
  fov?: number | undefined;
146
268
  zoom?: number | undefined;
147
269
  } | undefined;
270
+ provenance?: {
271
+ refs: {
272
+ id: string;
273
+ ns?: string | undefined;
274
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
275
+ }[];
276
+ lineage?: {
277
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
278
+ fromIds: string[];
279
+ } | undefined;
280
+ } | undefined;
148
281
  height?: number | undefined;
149
282
  } | {
150
283
  object: "node";
@@ -225,6 +358,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
225
358
  fov?: number | undefined;
226
359
  zoom?: number | undefined;
227
360
  } | undefined;
361
+ provenance?: {
362
+ refs: {
363
+ id: string;
364
+ ns?: string | undefined;
365
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
366
+ }[];
367
+ lineage?: {
368
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
369
+ fromIds: string[];
370
+ } | undefined;
371
+ } | undefined;
228
372
  slots?: Record<string, string> | undefined;
229
373
  hostSlabId?: `slab_${string}` | undefined;
230
374
  hostSlabEdgeIndex?: number | undefined;
@@ -242,15 +386,15 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
242
386
  parentId: string | null;
243
387
  visible: boolean;
244
388
  metadata: Record<string, unknown>;
389
+ radius: number;
390
+ depth: number;
245
391
  rotation: number;
246
392
  children: string[];
247
393
  width: number;
248
- depth: number;
249
394
  height: number;
250
395
  baseHeight: number;
251
396
  style: "plain" | "faceted" | "fluted" | "lathe-turned" | "dravidian-carved" | "cluster";
252
397
  crossSection: "round" | "square" | "rectangular" | "octagonal" | "sixteen-sided";
253
- radius: number;
254
398
  edgeSoftness: number;
255
399
  capitalHeight: number;
256
400
  shaftProfile: "straight" | "tapered" | "bulged" | "baluster" | "hourglass";
@@ -324,6 +468,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
324
468
  fov?: number | undefined;
325
469
  zoom?: number | undefined;
326
470
  } | undefined;
471
+ provenance?: {
472
+ refs: {
473
+ id: string;
474
+ ns?: string | undefined;
475
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
476
+ }[];
477
+ lineage?: {
478
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
479
+ fromIds: string[];
480
+ } | undefined;
481
+ } | undefined;
327
482
  supportSlabId?: string | undefined;
328
483
  slots?: Record<string, string> | undefined;
329
484
  material?: {
@@ -344,6 +499,94 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
344
499
  } | undefined;
345
500
  } | undefined;
346
501
  materialPreset?: string | undefined;
502
+ source?: {
503
+ kind: "script";
504
+ language: "three" | "bpy";
505
+ script: string;
506
+ params: Record<string, string | number | boolean>;
507
+ artifact: string;
508
+ manifest: {
509
+ bounds: {
510
+ min: [number, number, number];
511
+ max: [number, number, number];
512
+ };
513
+ params: {
514
+ id: string;
515
+ kind: "string" | "number" | "boolean";
516
+ default: string | number | boolean;
517
+ label?: string | undefined;
518
+ min?: number | undefined;
519
+ max?: number | undefined;
520
+ step?: number | undefined;
521
+ unit?: string | undefined;
522
+ options?: string[] | undefined;
523
+ }[];
524
+ parts: {
525
+ id: string;
526
+ label?: string | undefined;
527
+ type?: string | undefined;
528
+ bounds?: {
529
+ min: [number, number, number];
530
+ max: [number, number, number];
531
+ } | undefined;
532
+ }[];
533
+ surfaces: {
534
+ y: number;
535
+ polygon: [number, number][];
536
+ part?: string | undefined;
537
+ }[];
538
+ slots: {
539
+ id: string;
540
+ label?: string | undefined;
541
+ color?: string | undefined;
542
+ roughness?: number | undefined;
543
+ metalness?: number | undefined;
544
+ transparent?: boolean | undefined;
545
+ emissive?: boolean | undefined;
546
+ }[];
547
+ anchors: {
548
+ id: string;
549
+ position: [number, number, number];
550
+ normal?: [number, number, number] | undefined;
551
+ }[];
552
+ lights: {
553
+ id: string;
554
+ position: [number, number, number];
555
+ color: string;
556
+ intensity: number;
557
+ distance?: number | undefined;
558
+ }[];
559
+ undersides: {
560
+ polygon: [number, number][];
561
+ plane: [number, number, number, number];
562
+ part?: string | undefined;
563
+ }[];
564
+ animations: {
565
+ name: string;
566
+ duration: number;
567
+ }[];
568
+ cutout: boolean;
569
+ collider: boolean;
570
+ triangles: number;
571
+ cutters?: {
572
+ host: "wall" | "slab" | "ceiling" | "mounted";
573
+ polygon: number[][];
574
+ minY: number;
575
+ maxY: number;
576
+ }[] | undefined;
577
+ };
578
+ meta?: {
579
+ description?: string | undefined;
580
+ category?: string | undefined;
581
+ tags?: string[] | undefined;
582
+ parent?: string | undefined;
583
+ } | undefined;
584
+ images?: {
585
+ artifact: string;
586
+ thumbnail: string;
587
+ floorPlan: string;
588
+ } | undefined;
589
+ } | undefined;
347
590
  } | {
348
591
  object: "node";
349
592
  mode: "radius" | "linear" | "diameter" | "center-mark" | "chord" | "arc-length" | "angular" | "coordinate";
@@ -393,6 +636,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
393
636
  fov?: number | undefined;
394
637
  zoom?: number | undefined;
395
638
  } | undefined;
639
+ provenance?: {
640
+ refs: {
641
+ id: string;
642
+ ns?: string | undefined;
643
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
644
+ }[];
645
+ lineage?: {
646
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
647
+ fromIds: string[];
648
+ } | undefined;
649
+ } | undefined;
396
650
  } | {
397
651
  object: "node";
398
652
  position: [number, number, number];
@@ -428,6 +682,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
428
682
  fov?: number | undefined;
429
683
  zoom?: number | undefined;
430
684
  } | undefined;
685
+ provenance?: {
686
+ refs: {
687
+ id: string;
688
+ ns?: string | undefined;
689
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
690
+ }[];
691
+ lineage?: {
692
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
693
+ fromIds: string[];
694
+ } | undefined;
695
+ } | undefined;
431
696
  supportSlabId?: string | undefined;
432
697
  } | {
433
698
  object: "node";
@@ -449,6 +714,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
449
714
  fov?: number | undefined;
450
715
  zoom?: number | undefined;
451
716
  } | undefined;
717
+ provenance?: {
718
+ refs: {
719
+ id: string;
720
+ ns?: string | undefined;
721
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
722
+ }[];
723
+ lineage?: {
724
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
725
+ fromIds: string[];
726
+ } | undefined;
727
+ } | undefined;
452
728
  } | {
453
729
  object: "node";
454
730
  id: `wall_${string}`;
@@ -469,6 +745,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
469
745
  fov?: number | undefined;
470
746
  zoom?: number | undefined;
471
747
  } | undefined;
748
+ provenance?: {
749
+ refs: {
750
+ id: string;
751
+ ns?: string | undefined;
752
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
753
+ }[];
754
+ lineage?: {
755
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
756
+ fromIds: string[];
757
+ } | undefined;
758
+ } | undefined;
472
759
  supportSlabId?: string | undefined;
473
760
  slots?: Record<string, string> | undefined;
474
761
  material?: {
@@ -490,7 +777,74 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
490
777
  } | undefined;
491
778
  materialPreset?: string | undefined;
492
779
  height?: number | undefined;
780
+ wallType?: "standard" | "curtain" | undefined;
781
+ curtainWall?: {
782
+ construction: "stick" | "unitized";
783
+ framing: "capped" | "vertical-caps" | "horizontal-caps" | "structural-glazing";
784
+ columns: {
785
+ layout: "count" | "maximum-spacing" | "fixed-spacing";
786
+ count: number;
787
+ spacing: number;
788
+ alignment: "center" | "start" | "end";
789
+ };
790
+ rows: {
791
+ layout: "count" | "maximum-spacing" | "fixed-spacing";
792
+ count: number;
793
+ spacing: number;
794
+ alignment: "center" | "start" | "end";
795
+ };
796
+ mullionWidth: number;
797
+ transomWidth: number;
798
+ perimeterWidth: number;
799
+ jointWidth: number;
800
+ glassThickness: number;
801
+ panelType: "glass" | "solid" | "empty";
802
+ spandrel: "top" | "none" | "bottom";
803
+ frameColor: string;
804
+ glassColor: string;
805
+ solidColor: string;
806
+ glassOpacity: number;
807
+ glassRoughness: number;
808
+ panels: {
809
+ column: number;
810
+ row: number;
811
+ type: "glass" | "solid" | "empty";
812
+ }[];
813
+ } | undefined;
493
814
  thickness?: number | undefined;
815
+ assembly?: {
816
+ layers: {
817
+ id: string;
818
+ role: "fill" | "shell" | "finish" | "lining" | "substrate" | "sheathing" | "membrane" | "underlay" | "insulation" | "air" | "furring" | "structure" | "deck" | "covering" | "glazing";
819
+ thickness: number;
820
+ core?: true | undefined;
821
+ material?: string | undefined;
822
+ slot?: string | undefined;
823
+ returns?: boolean | undefined;
824
+ display?: "construction" | "finished" | undefined;
825
+ inset?: number | undefined;
826
+ bottom?: number | undefined;
827
+ lift?: number | undefined;
828
+ src?: string | undefined;
829
+ }[];
830
+ backing?: {
831
+ id: string;
832
+ role: "fill" | "shell" | "finish" | "lining" | "substrate" | "sheathing" | "membrane" | "underlay" | "insulation" | "air" | "furring" | "structure" | "deck" | "covering" | "glazing";
833
+ thickness: number;
834
+ core?: true | undefined;
835
+ material?: string | undefined;
836
+ slot?: string | undefined;
837
+ returns?: boolean | undefined;
838
+ display?: "construction" | "finished" | undefined;
839
+ inset?: number | undefined;
840
+ bottom?: number | undefined;
841
+ lift?: number | undefined;
842
+ src?: string | undefined;
843
+ }[] | undefined;
844
+ face?: "front" | "exterior" | undefined;
845
+ presetId?: string | undefined;
846
+ cavityInsulation?: string | undefined;
847
+ } | undefined;
494
848
  fillToTerrain?: boolean | undefined;
495
849
  interiorMaterial?: {
496
850
  id?: string | undefined;
@@ -528,18 +882,73 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
528
882
  } | undefined;
529
883
  } | undefined;
530
884
  exteriorMaterialPreset?: string | undefined;
885
+ legacyFaceMaterials?: {
886
+ a?: {
887
+ material?: {
888
+ id?: string | undefined;
889
+ preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
890
+ properties?: {
891
+ color: string;
892
+ roughness: number;
893
+ metalness: number;
894
+ opacity: number;
895
+ transparent: boolean;
896
+ side: "front" | "back" | "double";
897
+ } | undefined;
898
+ texture?: {
899
+ url: string;
900
+ repeat?: [number, number] | undefined;
901
+ scale?: number | undefined;
902
+ } | undefined;
903
+ } | undefined;
904
+ materialPreset?: string | undefined;
905
+ } | undefined;
906
+ b?: {
907
+ material?: {
908
+ id?: string | undefined;
909
+ preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
910
+ properties?: {
911
+ color: string;
912
+ roughness: number;
913
+ metalness: number;
914
+ opacity: number;
915
+ transparent: boolean;
916
+ side: "front" | "back" | "double";
917
+ } | undefined;
918
+ texture?: {
919
+ url: string;
920
+ repeat?: [number, number] | undefined;
921
+ scale?: number | undefined;
922
+ } | undefined;
923
+ } | undefined;
924
+ materialPreset?: string | undefined;
925
+ } | undefined;
926
+ } | undefined;
927
+ faceRegions?: {
928
+ id: string;
929
+ face: "a" | "b";
930
+ finish: string;
931
+ u0?: number | undefined;
932
+ u1?: number | undefined;
933
+ v0?: number | undefined;
934
+ v1?: number | undefined;
935
+ }[] | undefined;
936
+ justification?: "a" | "b" | undefined;
531
937
  curveOffset?: number | undefined;
532
938
  supportOffset?: number | undefined;
533
- faceBands?: {
534
- enabled: boolean;
535
- count: number;
536
- lowerHeight: number;
537
- middleHeight: number;
538
- upperHeight: number;
939
+ underpinning?: {
940
+ rim: number;
941
+ stem: number;
942
+ openings?: {
943
+ u: number;
944
+ width: number;
945
+ top: number;
946
+ bottom: number;
947
+ }[] | undefined;
539
948
  } | undefined;
540
949
  skirting?: {
541
950
  enabled: boolean;
542
- sides: "interior" | "exterior" | "both";
951
+ sides: "a" | "b" | "interior" | "exterior" | "both";
543
952
  height: number;
544
953
  proud: number;
545
954
  profile: "flat" | "bevel" | "triangle" | "cove" | "bullnose" | "base-modern" | "base-colonial" | "base-shoe" | "base-ogee" | "crown-cove" | "crown-ogee" | "crown-craftsman" | "crown-layered" | "rail-rounded" | "rail-ogee" | "rail-picture" | "rail-stepped";
@@ -547,7 +956,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
547
956
  } | undefined;
548
957
  crown?: {
549
958
  enabled: boolean;
550
- sides: "interior" | "exterior" | "both";
959
+ sides: "a" | "b" | "interior" | "exterior" | "both";
551
960
  height: number;
552
961
  proud: number;
553
962
  profile: "flat" | "bevel" | "triangle" | "cove" | "bullnose" | "base-modern" | "base-colonial" | "base-shoe" | "base-ogee" | "crown-cove" | "crown-ogee" | "crown-craftsman" | "crown-layered" | "rail-rounded" | "rail-ogee" | "rail-picture" | "rail-stepped";
@@ -555,12 +964,76 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
555
964
  } | undefined;
556
965
  chairRail?: {
557
966
  enabled: boolean;
558
- sides: "interior" | "exterior" | "both";
967
+ sides: "a" | "b" | "interior" | "exterior" | "both";
559
968
  height: number;
560
969
  proud: number;
561
970
  profile: "flat" | "bevel" | "triangle" | "cove" | "bullnose" | "base-modern" | "base-colonial" | "base-shoe" | "base-ogee" | "crown-cove" | "crown-ogee" | "crown-craftsman" | "crown-layered" | "rail-rounded" | "rail-ogee" | "rail-picture" | "rail-stepped";
562
971
  offsetY?: number | undefined;
563
972
  } | undefined;
973
+ } | {
974
+ object: "node";
975
+ id: `separator_${string}`;
976
+ parentId: string | null;
977
+ visible: boolean;
978
+ metadata: Record<string, unknown>;
979
+ start: [number, number];
980
+ end: [number, number];
981
+ type: "separator";
982
+ name?: string | undefined;
983
+ camera?: {
984
+ position: [number, number, number];
985
+ target: [number, number, number];
986
+ mode: "perspective" | "orthographic";
987
+ fov?: number | undefined;
988
+ zoom?: number | undefined;
989
+ } | undefined;
990
+ provenance?: {
991
+ refs: {
992
+ id: string;
993
+ ns?: string | undefined;
994
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
995
+ }[];
996
+ lineage?: {
997
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
998
+ fromIds: string[];
999
+ } | undefined;
1000
+ } | undefined;
1001
+ } | {
1002
+ object: "node";
1003
+ id: `floor-opening_${string}`;
1004
+ parentId: string | null;
1005
+ visible: boolean;
1006
+ metadata: Record<string, unknown>;
1007
+ polygon: [number, number][];
1008
+ source: string;
1009
+ drawnOn: "ceiling" | "floor";
1010
+ cutsPrimary: boolean;
1011
+ cutsAdjacent: boolean;
1012
+ type: "floor-opening";
1013
+ name?: string | undefined;
1014
+ camera?: {
1015
+ position: [number, number, number];
1016
+ target: [number, number, number];
1017
+ mode: "perspective" | "orthographic";
1018
+ fov?: number | undefined;
1019
+ zoom?: number | undefined;
1020
+ } | undefined;
1021
+ provenance?: {
1022
+ refs: {
1023
+ id: string;
1024
+ ns?: string | undefined;
1025
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1026
+ }[];
1027
+ lineage?: {
1028
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1029
+ fromIds: string[];
1030
+ } | undefined;
1031
+ } | undefined;
1032
+ surfaceId?: string | undefined;
1033
+ hostZoneId?: string | undefined;
1034
+ legacyPlateCuts?: Record<string, [number, number][][]> | undefined;
1035
+ legacyCeilingCuts?: Record<string, [number, number][][]> | undefined;
1036
+ ownerId?: string | undefined;
564
1037
  } | {
565
1038
  object: "node";
566
1039
  id: `fence_${string}`;
@@ -568,14 +1041,30 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
568
1041
  visible: boolean;
569
1042
  metadata: Record<string, unknown>;
570
1043
  color: string;
1044
+ children: string[];
571
1045
  height: number;
572
1046
  baseHeight: number;
573
- style: "slat" | "rail" | "privacy" | "horizontal";
574
- baseStyle: "floating" | "grounded";
575
- thickness: number;
576
- postSpacing: number;
1047
+ style: "slat" | "rail" | "privacy" | "horizontal" | "guard" | "picket";
1048
+ baseStyle: "floating" | "grounded" | "raised";
577
1049
  start: [number, number];
578
1050
  end: [number, number];
1051
+ thickness: number;
1052
+ postSpacing: number;
1053
+ surfaceMode: "auto" | "level" | "selected";
1054
+ transitionMode: "step" | "slope" | "break";
1055
+ transitionWidth: number;
1056
+ picketSpacing: number;
1057
+ patternDistribution: "maximum-spacing" | "fixed-spacing" | "automatic" | "fixed-count" | "equal-fit";
1058
+ patternAlignment: "center" | "start" | "end";
1059
+ patternCount: number;
1060
+ patternRemainder: "leave" | "spread";
1061
+ picketWidth: number;
1062
+ picketTop: "flat" | "rounded" | "pointed" | "dog-ear";
1063
+ picketProfile: "arched" | "level" | "scalloped" | "alternating";
1064
+ picketTopClearance: number;
1065
+ picketVariation: number;
1066
+ picketRailProjection: number;
1067
+ picketRailCount: number;
579
1068
  postSize: number;
580
1069
  topRailHeight: number;
581
1070
  groundClearance: number;
@@ -583,6 +1072,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
583
1072
  slatGap: number;
584
1073
  postCap: "flat" | "none" | "pyramid";
585
1074
  showInfill: boolean;
1075
+ infillPlacement: "center" | "front" | "back";
586
1076
  type: "fence";
587
1077
  name?: string | undefined;
588
1078
  camera?: {
@@ -592,6 +1082,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
592
1082
  fov?: number | undefined;
593
1083
  zoom?: number | undefined;
594
1084
  } | undefined;
1085
+ provenance?: {
1086
+ refs: {
1087
+ id: string;
1088
+ ns?: string | undefined;
1089
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1090
+ }[];
1091
+ lineage?: {
1092
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1093
+ fromIds: string[];
1094
+ } | undefined;
1095
+ } | undefined;
595
1096
  path?: [number, number][] | undefined;
596
1097
  supportSlabId?: string | undefined;
597
1098
  slots?: Record<string, string> | undefined;
@@ -615,7 +1116,90 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
615
1116
  materialPreset?: string | undefined;
616
1117
  curveOffset?: number | undefined;
617
1118
  supportOffset?: number | undefined;
1119
+ spanModes?: ("straight" | "curve")[] | undefined;
618
1120
  tangents?: ([number, number] | null)[] | undefined;
1121
+ supportSurfaceNodeId?: string | undefined;
1122
+ guardInfill?: "balusters" | "cable" | "boards" | undefined;
1123
+ startPost?: boolean | undefined;
1124
+ endPost?: boolean | undefined;
1125
+ postThrough?: boolean | undefined;
1126
+ } | {
1127
+ object: "node";
1128
+ id: `fence-gate_${string}`;
1129
+ parentId: string | null;
1130
+ visible: boolean;
1131
+ metadata: Record<string, unknown>;
1132
+ center: number;
1133
+ width: number;
1134
+ type: "fence-gate";
1135
+ name?: string | undefined;
1136
+ camera?: {
1137
+ position: [number, number, number];
1138
+ target: [number, number, number];
1139
+ mode: "perspective" | "orthographic";
1140
+ fov?: number | undefined;
1141
+ zoom?: number | undefined;
1142
+ } | undefined;
1143
+ provenance?: {
1144
+ refs: {
1145
+ id: string;
1146
+ ns?: string | undefined;
1147
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1148
+ }[];
1149
+ lineage?: {
1150
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1151
+ fromIds: string[];
1152
+ } | undefined;
1153
+ } | undefined;
1154
+ height?: number | undefined;
1155
+ style?: "match" | "slat" | "rail" | "privacy" | "horizontal" | "guard" | "picket" | undefined;
1156
+ spacing?: number | undefined;
1157
+ thickness?: number | undefined;
1158
+ hinge?: "left" | "right" | undefined;
1159
+ matchFenceStyle?: boolean | undefined;
1160
+ matchFenceHeight?: boolean | undefined;
1161
+ leafType?: "double" | "single" | undefined;
1162
+ clearance?: number | undefined;
1163
+ frameWidth?: number | undefined;
1164
+ boardWidth?: number | undefined;
1165
+ swing?: "inward" | "outward" | undefined;
1166
+ openAngle?: number | undefined;
1167
+ leafSplit?: number | undefined;
1168
+ brace?: "none" | "cross" | "diagonal" | undefined;
1169
+ showHardware?: boolean | undefined;
1170
+ showPosts?: boolean | undefined;
1171
+ } | {
1172
+ object: "node";
1173
+ id: `fence-opening_${string}`;
1174
+ parentId: string | null;
1175
+ visible: boolean;
1176
+ metadata: Record<string, unknown>;
1177
+ center: number;
1178
+ width: number;
1179
+ showPosts: boolean;
1180
+ type: "fence-opening";
1181
+ name?: string | undefined;
1182
+ camera?: {
1183
+ position: [number, number, number];
1184
+ target: [number, number, number];
1185
+ mode: "perspective" | "orthographic";
1186
+ fov?: number | undefined;
1187
+ zoom?: number | undefined;
1188
+ } | undefined;
1189
+ provenance?: {
1190
+ refs: {
1191
+ id: string;
1192
+ ns?: string | undefined;
1193
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1194
+ }[];
1195
+ lineage?: {
1196
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1197
+ fromIds: string[];
1198
+ } | undefined;
1199
+ } | undefined;
1200
+ height?: number | undefined;
1201
+ matchFenceStyle?: boolean | undefined;
1202
+ matchFenceHeight?: boolean | undefined;
619
1203
  } | {
620
1204
  object: "node";
621
1205
  position: [number, number, number];
@@ -623,10 +1207,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
623
1207
  parentId: string | null;
624
1208
  visible: boolean;
625
1209
  metadata: Record<string, unknown>;
1210
+ depth: number;
626
1211
  rotation: number;
627
1212
  children: string[];
628
1213
  width: number;
629
- depth: number;
630
1214
  operationState: number;
631
1215
  runTier: "wall" | "base" | "tall";
632
1216
  withWaterfall: boolean;
@@ -643,9 +1227,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
643
1227
  frontGap: number;
644
1228
  frontStyle: "slab" | "shaker" | "raised-arch";
645
1229
  panelReady: boolean;
646
- handleStyle: "none" | "bar" | "cutout" | "hole" | "knob";
647
- handlePosition: "top" | "auto" | "center";
648
- frontOverlay: "full" | "inset";
1230
+ handleStyle: "cutout" | "none" | "bar" | "hole" | "knob";
1231
+ handlePosition: "center" | "top" | "auto";
1232
+ frontOverlay: "inset" | "full";
649
1233
  withBottomPanel: boolean;
650
1234
  showPlinth: boolean;
651
1235
  withCountertop: boolean;
@@ -658,6 +1242,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
658
1242
  fov?: number | undefined;
659
1243
  zoom?: number | undefined;
660
1244
  } | undefined;
1245
+ provenance?: {
1246
+ refs: {
1247
+ id: string;
1248
+ ns?: string | undefined;
1249
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1250
+ }[];
1251
+ lineage?: {
1252
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1253
+ fromIds: string[];
1254
+ } | undefined;
1255
+ } | undefined;
661
1256
  supportSlabId?: string | undefined;
662
1257
  slots?: Record<string, string> | undefined;
663
1258
  material?: {
@@ -679,7 +1274,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
679
1274
  } | undefined;
680
1275
  materialPreset?: string | undefined;
681
1276
  barLedge?: {
682
- edge: "back" | "right" | "left";
1277
+ edge: "left" | "right" | "back";
683
1278
  height: number;
684
1279
  depth: number;
685
1280
  } | undefined;
@@ -772,10 +1367,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
772
1367
  parentId: string | null;
773
1368
  visible: boolean;
774
1369
  metadata: Record<string, unknown>;
1370
+ depth: number;
775
1371
  rotation: number;
776
1372
  children: string[];
777
1373
  width: number;
778
- depth: number;
779
1374
  operationState: number;
780
1375
  carcassHeight: number;
781
1376
  plinthHeight: number;
@@ -789,9 +1384,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
789
1384
  frontGap: number;
790
1385
  frontStyle: "slab" | "shaker" | "raised-arch";
791
1386
  panelReady: boolean;
792
- handleStyle: "none" | "bar" | "cutout" | "hole" | "knob";
793
- handlePosition: "top" | "auto" | "center";
794
- frontOverlay: "full" | "inset";
1387
+ handleStyle: "cutout" | "none" | "bar" | "hole" | "knob";
1388
+ handlePosition: "center" | "top" | "auto";
1389
+ frontOverlay: "inset" | "full";
795
1390
  withBottomPanel: boolean;
796
1391
  showPlinth: boolean;
797
1392
  withCountertop: boolean;
@@ -809,6 +1404,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
809
1404
  fov?: number | undefined;
810
1405
  zoom?: number | undefined;
811
1406
  } | undefined;
1407
+ provenance?: {
1408
+ refs: {
1409
+ id: string;
1410
+ ns?: string | undefined;
1411
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1412
+ }[];
1413
+ lineage?: {
1414
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1415
+ fromIds: string[];
1416
+ } | undefined;
1417
+ } | undefined;
812
1418
  supportSlabId?: string | undefined;
813
1419
  slots?: Record<string, string> | undefined;
814
1420
  material?: {
@@ -911,7 +1517,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
911
1517
  id: string;
912
1518
  height?: number | undefined;
913
1519
  })[] | undefined;
914
- openSide?: "right" | "left" | undefined;
1520
+ openSide?: "left" | "right" | undefined;
915
1521
  cornerShelf?: boolean | undefined;
916
1522
  } | {
917
1523
  object: "node";
@@ -972,6 +1578,8 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
972
1578
  off?: string | undefined;
973
1579
  loop?: string | undefined;
974
1580
  };
1581
+ mode?: "ambient" | "open-close" | undefined;
1582
+ control?: number | undefined;
975
1583
  } | {
976
1584
  kind: "light";
977
1585
  color: string;
@@ -990,13 +1598,112 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
990
1598
  fov?: number | undefined;
991
1599
  zoom?: number | undefined;
992
1600
  } | undefined;
1601
+ provenance?: {
1602
+ refs: {
1603
+ id: string;
1604
+ ns?: string | undefined;
1605
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1606
+ }[];
1607
+ lineage?: {
1608
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1609
+ fromIds: string[];
1610
+ } | undefined;
1611
+ } | undefined;
993
1612
  side?: "front" | "back" | undefined;
994
1613
  supportSlabId?: string | undefined;
995
1614
  slots?: Record<string, string> | undefined;
996
1615
  roofSegmentId?: string | undefined;
1616
+ source?: {
1617
+ kind: "script";
1618
+ language: "three" | "bpy";
1619
+ script: string;
1620
+ params: Record<string, string | number | boolean>;
1621
+ artifact: string;
1622
+ manifest: {
1623
+ bounds: {
1624
+ min: [number, number, number];
1625
+ max: [number, number, number];
1626
+ };
1627
+ params: {
1628
+ id: string;
1629
+ kind: "string" | "number" | "boolean";
1630
+ default: string | number | boolean;
1631
+ label?: string | undefined;
1632
+ min?: number | undefined;
1633
+ max?: number | undefined;
1634
+ step?: number | undefined;
1635
+ unit?: string | undefined;
1636
+ options?: string[] | undefined;
1637
+ }[];
1638
+ parts: {
1639
+ id: string;
1640
+ label?: string | undefined;
1641
+ type?: string | undefined;
1642
+ bounds?: {
1643
+ min: [number, number, number];
1644
+ max: [number, number, number];
1645
+ } | undefined;
1646
+ }[];
1647
+ surfaces: {
1648
+ y: number;
1649
+ polygon: [number, number][];
1650
+ part?: string | undefined;
1651
+ }[];
1652
+ slots: {
1653
+ id: string;
1654
+ label?: string | undefined;
1655
+ color?: string | undefined;
1656
+ roughness?: number | undefined;
1657
+ metalness?: number | undefined;
1658
+ transparent?: boolean | undefined;
1659
+ emissive?: boolean | undefined;
1660
+ }[];
1661
+ anchors: {
1662
+ id: string;
1663
+ position: [number, number, number];
1664
+ normal?: [number, number, number] | undefined;
1665
+ }[];
1666
+ lights: {
1667
+ id: string;
1668
+ position: [number, number, number];
1669
+ color: string;
1670
+ intensity: number;
1671
+ distance?: number | undefined;
1672
+ }[];
1673
+ undersides: {
1674
+ polygon: [number, number][];
1675
+ plane: [number, number, number, number];
1676
+ part?: string | undefined;
1677
+ }[];
1678
+ animations: {
1679
+ name: string;
1680
+ duration: number;
1681
+ }[];
1682
+ cutout: boolean;
1683
+ collider: boolean;
1684
+ triangles: number;
1685
+ cutters?: {
1686
+ host: "wall" | "slab" | "ceiling" | "mounted";
1687
+ polygon: number[][];
1688
+ minY: number;
1689
+ maxY: number;
1690
+ }[] | undefined;
1691
+ };
1692
+ meta?: {
1693
+ description?: string | undefined;
1694
+ category?: string | undefined;
1695
+ tags?: string[] | undefined;
1696
+ parent?: string | undefined;
1697
+ } | undefined;
1698
+ images?: {
1699
+ artifact: string;
1700
+ thumbnail: string;
1701
+ floorPlan: string;
1702
+ } | undefined;
1703
+ } | undefined;
997
1704
  wallId?: string | undefined;
998
1705
  wallT?: number | undefined;
999
- roofFace?: "front" | "back" | "right" | "left" | undefined;
1706
+ roofFace?: "left" | "right" | "front" | "back" | undefined;
1000
1707
  blockFaceId?: string | undefined;
1001
1708
  collectionIds?: `collection_${string}`[] | undefined;
1002
1709
  } | {
@@ -1011,7 +1718,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1011
1718
  slots: Record<string, string>;
1012
1719
  parameters: Record<string, number>;
1013
1720
  recipe: {
1014
- version: 1;
1721
+ version: 2 | 1;
1015
1722
  name: string;
1016
1723
  description: string;
1017
1724
  parameters: {
@@ -1021,9 +1728,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1021
1728
  min: number;
1022
1729
  max: number;
1023
1730
  step: number;
1024
- unit: "count" | "m" | "rad";
1731
+ unit: "count" | "m" | "rad" | "s" | "bool" | "choice";
1732
+ options?: string[] | undefined;
1025
1733
  part?: string | undefined;
1026
- axis?: "x" | "y" | "z" | undefined;
1734
+ axis?: "x" | "z" | "y" | undefined;
1027
1735
  }[];
1028
1736
  slots: {
1029
1737
  id: string;
@@ -1035,16 +1743,102 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1035
1743
  id: string;
1036
1744
  label: string;
1037
1745
  count: import("../../procedural-items/index.js").Expr;
1038
- shapes: {
1746
+ shapes: ({
1039
1747
  id: string;
1040
- primitive: "box" | "roundedBox" | "cylinder";
1748
+ primitive: "box" | "roundedBox" | "cylinder" | "ellipsoid";
1041
1749
  slot: string;
1042
1750
  size: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1043
1751
  position: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1752
+ support?: boolean | undefined;
1753
+ when?: import("../../procedural-items/index.js").Expr | undefined;
1044
1754
  rotation?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1045
1755
  radius?: import("../../procedural-items/index.js").Expr | undefined;
1756
+ topScale?: import("../../procedural-items/index.js").Expr | undefined;
1757
+ segments?: number | undefined;
1758
+ open?: boolean | undefined;
1759
+ inner?: import("../../procedural-items/index.js").Expr | undefined;
1760
+ arc?: import("../../procedural-items/index.js").Expr | undefined;
1761
+ } | {
1762
+ id: string;
1763
+ primitive: "extrude";
1764
+ slot: string;
1765
+ section: {
1766
+ kind: "rectangle";
1767
+ width: import("../../procedural-items/index.js").Expr;
1768
+ depth: import("../../procedural-items/index.js").Expr;
1769
+ corner?: import("../../procedural-items/index.js").Expr | undefined;
1770
+ } | {
1771
+ kind: "round";
1772
+ radius: import("../../procedural-items/index.js").Expr;
1773
+ wall?: import("../../procedural-items/index.js").Expr | undefined;
1774
+ } | {
1775
+ kind: "oval";
1776
+ width: import("../../procedural-items/index.js").Expr;
1777
+ depth: import("../../procedural-items/index.js").Expr;
1778
+ } | {
1779
+ kind: "section";
1780
+ family: "C" | "I" | "L" | "T" | "Z" | "rect-tube";
1781
+ width: import("../../procedural-items/index.js").Expr;
1782
+ depth: import("../../procedural-items/index.js").Expr;
1783
+ web: import("../../procedural-items/index.js").Expr;
1784
+ flange: import("../../procedural-items/index.js").Expr;
1785
+ } | {
1786
+ kind: "polygon";
1787
+ outer: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr][];
1788
+ holes?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr][][] | undefined;
1789
+ };
1790
+ length: import("../../procedural-items/index.js").Expr;
1791
+ position: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1046
1792
  support?: boolean | undefined;
1047
- }[];
1793
+ when?: import("../../procedural-items/index.js").Expr | undefined;
1794
+ bevel?: import("../../procedural-items/index.js").Expr | undefined;
1795
+ rotation?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1796
+ } | {
1797
+ id: string;
1798
+ primitive: "revolve";
1799
+ slot: string;
1800
+ profile: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr][];
1801
+ position: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1802
+ support?: boolean | undefined;
1803
+ when?: import("../../procedural-items/index.js").Expr | undefined;
1804
+ segments?: number | undefined;
1805
+ arc?: import("../../procedural-items/index.js").Expr | undefined;
1806
+ rotation?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1807
+ })[];
1808
+ parent?: string | undefined;
1809
+ frame?: {
1810
+ position: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1811
+ rotation?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1812
+ } | undefined;
1813
+ when?: import("../../procedural-items/index.js").Expr | undefined;
1814
+ motion?: {
1815
+ kind: "hinge";
1816
+ pivot: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1817
+ axis: "x" | "z" | "y";
1818
+ angle: import("../../procedural-items/index.js").Expr;
1819
+ delay?: import("../../procedural-items/index.js").Expr | undefined;
1820
+ duration?: import("../../procedural-items/index.js").Expr | undefined;
1821
+ easing?: "linear" | "smooth" | "soft" | undefined;
1822
+ } | {
1823
+ kind: "slide";
1824
+ axis: "x" | "z" | "y";
1825
+ distance: import("../../procedural-items/index.js").Expr;
1826
+ delay?: import("../../procedural-items/index.js").Expr | undefined;
1827
+ duration?: import("../../procedural-items/index.js").Expr | undefined;
1828
+ easing?: "linear" | "smooth" | "soft" | undefined;
1829
+ } | {
1830
+ kind: "spin";
1831
+ pivot: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1832
+ axis: "x" | "z" | "y";
1833
+ radiansPerSecond: import("../../procedural-items/index.js").Expr;
1834
+ } | undefined;
1835
+ light?: {
1836
+ position: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1837
+ color: string;
1838
+ intensity?: number | undefined;
1839
+ distance?: number | undefined;
1840
+ emissiveSlot?: string | undefined;
1841
+ } | undefined;
1048
1842
  }[];
1049
1843
  constraints: {
1050
1844
  left: import("../../procedural-items/index.js").Expr;
@@ -1061,6 +1855,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1061
1855
  attachTo: "ceiling" | "wall-side";
1062
1856
  reference: string;
1063
1857
  } | undefined;
1858
+ base?: import("../../procedural-items/index.js").Expr | undefined;
1859
+ cuts?: ({
1860
+ shape: "rect";
1861
+ size: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1862
+ center?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1863
+ } | {
1864
+ shape: "circle";
1865
+ diameter: import("../../procedural-items/index.js").Expr;
1866
+ center?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1867
+ })[] | undefined;
1064
1868
  surfaces?: {
1065
1869
  id: string;
1066
1870
  label: string;
@@ -1069,6 +1873,19 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1069
1873
  part?: string | undefined;
1070
1874
  rotation?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1071
1875
  }[] | undefined;
1876
+ joints?: {
1877
+ child: string;
1878
+ kind: "fixed" | "continuous" | "revolute" | "prismatic";
1879
+ origin: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1880
+ axis: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr];
1881
+ delay?: import("../../procedural-items/index.js").Expr | undefined;
1882
+ duration?: import("../../procedural-items/index.js").Expr | undefined;
1883
+ easing?: "linear" | "smooth" | "soft" | undefined;
1884
+ open?: import("../../procedural-items/index.js").Expr | undefined;
1885
+ rest?: import("../../procedural-items/index.js").Expr | undefined;
1886
+ range?: [import("../../procedural-items/index.js").Expr, import("../../procedural-items/index.js").Expr] | undefined;
1887
+ speed?: import("../../procedural-items/index.js").Expr | undefined;
1888
+ }[] | undefined;
1072
1889
  };
1073
1890
  attachments: Record<string, string>;
1074
1891
  type: "procedural-item";
@@ -1080,6 +1897,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1080
1897
  fov?: number | undefined;
1081
1898
  zoom?: number | undefined;
1082
1899
  } | undefined;
1900
+ provenance?: {
1901
+ refs: {
1902
+ id: string;
1903
+ ns?: string | undefined;
1904
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1905
+ }[];
1906
+ lineage?: {
1907
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1908
+ fromIds: string[];
1909
+ } | undefined;
1910
+ } | undefined;
1083
1911
  side?: "front" | "back" | undefined;
1084
1912
  supportSlabId?: string | undefined;
1085
1913
  wallId?: string | undefined;
@@ -1107,18 +1935,31 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1107
1935
  fov?: number | undefined;
1108
1936
  zoom?: number | undefined;
1109
1937
  } | undefined;
1938
+ provenance?: {
1939
+ refs: {
1940
+ id: string;
1941
+ ns?: string | undefined;
1942
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1943
+ }[];
1944
+ lineage?: {
1945
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1946
+ fromIds: string[];
1947
+ } | undefined;
1948
+ } | undefined;
1110
1949
  } | {
1111
1950
  object: "node";
1951
+ holes: [number, number][][];
1112
1952
  id: `zone_${string}`;
1113
1953
  name: string;
1114
1954
  parentId: string | null;
1115
1955
  visible: boolean;
1116
1956
  metadata: Record<string, unknown>;
1117
- color: string;
1118
1957
  polygon: [number, number][];
1958
+ color: string;
1119
1959
  autoFromWalls: boolean;
1120
1960
  boundaryWallIds: `wall_${string}`[];
1121
- spaceRole: "generic" | "room";
1961
+ boundarySeparatorIds: string[];
1962
+ spaceRole: "room" | "generic";
1122
1963
  roomNumber: string;
1123
1964
  enclosureStatus: "auto" | "open" | "enclosed";
1124
1965
  floorFinish: string;
@@ -1135,17 +1976,66 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1135
1976
  fov?: number | undefined;
1136
1977
  zoom?: number | undefined;
1137
1978
  } | undefined;
1979
+ provenance?: {
1980
+ refs: {
1981
+ id: string;
1982
+ ns?: string | undefined;
1983
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
1984
+ }[];
1985
+ lineage?: {
1986
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
1987
+ fromIds: string[];
1988
+ } | undefined;
1989
+ } | undefined;
1990
+ ceiling?: {
1991
+ regions?: {
1992
+ id: string;
1993
+ polygon: [number, number][];
1994
+ finish: string | Record<string, unknown>;
1995
+ }[] | undefined;
1996
+ } | undefined;
1997
+ floor?: {
1998
+ elevation?: number | undefined;
1999
+ support?: "open" | undefined;
2000
+ footprint?: string | undefined;
2001
+ thickness?: number | undefined;
2002
+ sourceSlabId?: `slab_${string}` | undefined;
2003
+ finish?: string | Record<string, unknown> | undefined;
2004
+ regions?: {
2005
+ id: string;
2006
+ polygon: [number, number][];
2007
+ finish: string | Record<string, unknown>;
2008
+ }[] | undefined;
2009
+ } | undefined;
2010
+ wallMaterial?: string | undefined;
2011
+ hostZoneId?: string | undefined;
2012
+ seed?: [number, number] | undefined;
2013
+ floorStepFinish?: string | undefined;
2014
+ floorStepOverrides?: {
2015
+ key: string;
2016
+ finish: string;
2017
+ step?: number | undefined;
2018
+ }[] | undefined;
2019
+ floorEdgeFinish?: string | undefined;
2020
+ wallOverrides?: {
2021
+ wallId: string;
2022
+ face: "a" | "b";
2023
+ finish: string;
2024
+ }[] | undefined;
2025
+ hasFloor?: false | undefined;
2026
+ hasCeiling?: false | undefined;
1138
2027
  } | {
1139
2028
  object: "node";
2029
+ holes: [number, number][][];
1140
2030
  id: `slab_${string}`;
1141
2031
  parentId: string | null;
1142
2032
  visible: boolean;
1143
2033
  metadata: Record<string, unknown>;
1144
- recessed: boolean;
1145
2034
  polygon: [number, number][];
1146
- holes: [number, number][][];
2035
+ recessed: boolean;
1147
2036
  holeMetadata: {
1148
- source: "stair" | "elevator" | "manual";
2037
+ source: "stair" | "elevator" | "manual" | "room" | "floor-opening";
2038
+ openingId?: string | undefined;
1149
2039
  stairId?: string | undefined;
1150
2040
  elevatorId?: string | undefined;
1151
2041
  }[];
@@ -1161,6 +2051,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1161
2051
  fov?: number | undefined;
1162
2052
  zoom?: number | undefined;
1163
2053
  } | undefined;
2054
+ provenance?: {
2055
+ refs: {
2056
+ id: string;
2057
+ ns?: string | undefined;
2058
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2059
+ }[];
2060
+ lineage?: {
2061
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2062
+ fromIds: string[];
2063
+ } | undefined;
2064
+ } | undefined;
1164
2065
  slots?: Record<string, string> | undefined;
1165
2066
  material?: {
1166
2067
  id?: string | undefined;
@@ -1180,19 +2081,51 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1180
2081
  } | undefined;
1181
2082
  } | undefined;
1182
2083
  materialPreset?: string | undefined;
2084
+ boundary?: "auto" | undefined;
2085
+ support?: "open" | undefined;
2086
+ floorHeight?: number | undefined;
2087
+ referenceFloorElevation?: number | undefined;
2088
+ foundation?: {
2089
+ type: "solid" | "none";
2090
+ material?: string | {
2091
+ id?: string | undefined;
2092
+ preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
2093
+ properties?: {
2094
+ color: string;
2095
+ roughness: number;
2096
+ metalness: number;
2097
+ opacity: number;
2098
+ transparent: boolean;
2099
+ side: "front" | "back" | "double";
2100
+ } | undefined;
2101
+ texture?: {
2102
+ url: string;
2103
+ repeat?: [number, number] | undefined;
2104
+ scale?: number | undefined;
2105
+ } | undefined;
2106
+ } | undefined;
2107
+ } | undefined;
1183
2108
  recessedRimElevation?: number | undefined;
1184
2109
  fillToTerrain?: boolean | undefined;
2110
+ plateRole?: "base" | "platform" | "sunken" | undefined;
2111
+ railing?: {
2112
+ start: [number, number];
2113
+ end: [number, number];
2114
+ }[] | undefined;
2115
+ zoneIds?: string[] | undefined;
2116
+ associatedZoneIds?: string[] | undefined;
1185
2117
  } | {
1186
2118
  object: "node";
2119
+ holes: [number, number][][];
1187
2120
  id: `ceiling_${string}`;
1188
2121
  parentId: string | null;
1189
2122
  visible: boolean;
1190
2123
  metadata: Record<string, unknown>;
1191
- children: (`item_${string}` | `procedural-item_${string}`)[];
1192
2124
  polygon: [number, number][];
1193
- holes: [number, number][][];
2125
+ children: (`item_${string}` | `procedural-item_${string}`)[];
1194
2126
  holeMetadata: {
1195
- source: "stair" | "elevator" | "manual";
2127
+ source: "stair" | "elevator" | "manual" | "room" | "floor-opening";
2128
+ openingId?: string | undefined;
1196
2129
  stairId?: string | undefined;
1197
2130
  elevatorId?: string | undefined;
1198
2131
  }[];
@@ -1206,6 +2139,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1206
2139
  fov?: number | undefined;
1207
2140
  zoom?: number | undefined;
1208
2141
  } | undefined;
2142
+ provenance?: {
2143
+ refs: {
2144
+ id: string;
2145
+ ns?: string | undefined;
2146
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2147
+ }[];
2148
+ lineage?: {
2149
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2150
+ fromIds: string[];
2151
+ } | undefined;
2152
+ } | undefined;
1209
2153
  slots?: Record<string, string> | undefined;
1210
2154
  material?: {
1211
2155
  id?: string | undefined;
@@ -1226,6 +2170,14 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1226
2170
  } | undefined;
1227
2171
  materialPreset?: string | undefined;
1228
2172
  height?: number | undefined;
2173
+ openingIds?: string[] | undefined;
2174
+ regions?: {
2175
+ id: string;
2176
+ polygon: [number, number][];
2177
+ finish: string | Record<string, unknown>;
2178
+ }[] | undefined;
2179
+ boundary?: "auto" | undefined;
2180
+ zoneId?: string | undefined;
1229
2181
  } | {
1230
2182
  object: "node";
1231
2183
  position: [number, number, number];
@@ -1254,6 +2206,18 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1254
2206
  fov?: number | undefined;
1255
2207
  zoom?: number | undefined;
1256
2208
  } | undefined;
2209
+ provenance?: {
2210
+ refs: {
2211
+ id: string;
2212
+ ns?: string | undefined;
2213
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2214
+ }[];
2215
+ lineage?: {
2216
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2217
+ fromIds: string[];
2218
+ } | undefined;
2219
+ } | undefined;
2220
+ slots?: Record<string, string> | undefined;
1257
2221
  material?: {
1258
2222
  id?: string | undefined;
1259
2223
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -1326,6 +2290,39 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1326
2290
  } | undefined;
1327
2291
  } | undefined;
1328
2292
  wallMaterialPreset?: string | undefined;
2293
+ assembly?: {
2294
+ layers: {
2295
+ id: string;
2296
+ role: "fill" | "shell" | "finish" | "lining" | "substrate" | "sheathing" | "membrane" | "underlay" | "insulation" | "air" | "furring" | "structure" | "deck" | "covering" | "glazing";
2297
+ thickness: number;
2298
+ core?: true | undefined;
2299
+ material?: string | undefined;
2300
+ slot?: string | undefined;
2301
+ returns?: boolean | undefined;
2302
+ display?: "construction" | "finished" | undefined;
2303
+ inset?: number | undefined;
2304
+ bottom?: number | undefined;
2305
+ lift?: number | undefined;
2306
+ src?: string | undefined;
2307
+ }[];
2308
+ backing?: {
2309
+ id: string;
2310
+ role: "fill" | "shell" | "finish" | "lining" | "substrate" | "sheathing" | "membrane" | "underlay" | "insulation" | "air" | "furring" | "structure" | "deck" | "covering" | "glazing";
2311
+ thickness: number;
2312
+ core?: true | undefined;
2313
+ material?: string | undefined;
2314
+ slot?: string | undefined;
2315
+ returns?: boolean | undefined;
2316
+ display?: "construction" | "finished" | undefined;
2317
+ inset?: number | undefined;
2318
+ bottom?: number | undefined;
2319
+ lift?: number | undefined;
2320
+ src?: string | undefined;
2321
+ }[] | undefined;
2322
+ face?: "front" | "exterior" | undefined;
2323
+ presetId?: string | undefined;
2324
+ cavityInsulation?: string | undefined;
2325
+ } | undefined;
1329
2326
  } | {
1330
2327
  object: "node";
1331
2328
  position: [number, number, number];
@@ -1333,6 +2330,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1333
2330
  parentId: string | null;
1334
2331
  visible: boolean;
1335
2332
  metadata: Record<string, unknown>;
2333
+ depth: number;
1336
2334
  rotation: number;
1337
2335
  children: string[];
1338
2336
  trim: {
@@ -1354,7 +2352,6 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1354
2352
  backRightZ: number;
1355
2353
  };
1356
2354
  width: number;
1357
- depth: number;
1358
2355
  roofType: "flat" | "hip" | "gable" | "shed" | "gambrel" | "dutch" | "mansard" | "conical";
1359
2356
  wallHeight: number;
1360
2357
  pitch: number;
@@ -1363,7 +2360,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1363
2360
  overhang: number;
1364
2361
  shingleThickness: number;
1365
2362
  managedByParent: boolean;
1366
- wallShell: "omit" | "auto" | "include";
2363
+ wallShell: "auto" | "omit" | "include";
1367
2364
  shedInsetEndPanels: boolean;
1368
2365
  gambrelLowerWidthRatio: number;
1369
2366
  gambrelLowerHeightRatio: number;
@@ -1383,6 +2380,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1383
2380
  fov?: number | undefined;
1384
2381
  zoom?: number | undefined;
1385
2382
  } | undefined;
2383
+ provenance?: {
2384
+ refs: {
2385
+ id: string;
2386
+ ns?: string | undefined;
2387
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2388
+ }[];
2389
+ lineage?: {
2390
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2391
+ fromIds: string[];
2392
+ } | undefined;
2393
+ } | undefined;
1386
2394
  material?: {
1387
2395
  id?: string | undefined;
1388
2396
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -1467,7 +2475,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1467
2475
  shedSideInfillMinX?: number | undefined;
1468
2476
  shedSideInfillMaxX?: number | undefined;
1469
2477
  shedFootprintPieces?: [number, number][][] | undefined;
1470
- shedOpenEndSides?: ("right" | "left")[] | undefined;
2478
+ shedOpenEndSides?: ("left" | "right")[] | undefined;
1471
2479
  shedJointFrame?: {
1472
2480
  position: [number, number, number];
1473
2481
  rotation: number;
@@ -1475,6 +2483,8 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1475
2483
  shedJointOwnerId?: string | undefined;
1476
2484
  shedJointNeighborIds?: string[] | undefined;
1477
2485
  shedJointScopeId?: string | undefined;
2486
+ fascia?: boolean | undefined;
2487
+ fasciaHighEdge?: boolean | undefined;
1478
2488
  } | {
1479
2489
  object: "node";
1480
2490
  position: [number, number, number];
@@ -1482,15 +2492,15 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1482
2492
  parentId: string | null;
1483
2493
  visible: boolean;
1484
2494
  metadata: Record<string, unknown>;
2495
+ depth: number;
1485
2496
  rotation: [number, number, number];
1486
2497
  children: string[];
1487
2498
  width: number;
1488
- depth: number;
1489
2499
  height: number;
1490
2500
  style: "wall-shelf" | "bookshelf" | "open-rack" | "cubby";
1491
2501
  rows: number;
1492
- thickness: number;
1493
2502
  columns: number;
2503
+ thickness: number;
1494
2504
  withBack: boolean;
1495
2505
  withSides: boolean;
1496
2506
  withBottom: boolean;
@@ -1504,6 +2514,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1504
2514
  fov?: number | undefined;
1505
2515
  zoom?: number | undefined;
1506
2516
  } | undefined;
2517
+ provenance?: {
2518
+ refs: {
2519
+ id: string;
2520
+ ns?: string | undefined;
2521
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2522
+ }[];
2523
+ lineage?: {
2524
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2525
+ fromIds: string[];
2526
+ } | undefined;
2527
+ } | undefined;
1507
2528
  supportSlabId?: string | undefined;
1508
2529
  slots?: Record<string, string> | undefined;
1509
2530
  material?: {
@@ -1548,7 +2569,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1548
2569
  topLandingDepth: number;
1549
2570
  showCenterColumn: boolean;
1550
2571
  showStepSupports: boolean;
1551
- railingMode: "right" | "left" | "none" | "both";
2572
+ railingMode: "left" | "right" | "none" | "both";
1552
2573
  railingHeight: number;
1553
2574
  type: "stair";
1554
2575
  name?: string | undefined;
@@ -1559,6 +2580,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1559
2580
  fov?: number | undefined;
1560
2581
  zoom?: number | undefined;
1561
2582
  } | undefined;
2583
+ provenance?: {
2584
+ refs: {
2585
+ id: string;
2586
+ ns?: string | undefined;
2587
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2588
+ }[];
2589
+ lineage?: {
2590
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2591
+ fromIds: string[];
2592
+ } | undefined;
2593
+ } | undefined;
1562
2594
  supportSlabId?: string | undefined;
1563
2595
  slots?: Record<string, string> | undefined;
1564
2596
  material?: {
@@ -1579,6 +2611,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1579
2611
  } | undefined;
1580
2612
  } | undefined;
1581
2613
  materialPreset?: string | undefined;
2614
+ construction?: {
2615
+ mode: "solid" | "open" | "waist" | "side-stringers" | "center-stringer";
2616
+ waistThickness: number;
2617
+ treadThickness: number;
2618
+ riserThickness: number;
2619
+ nosing: number;
2620
+ finishThickness: number;
2621
+ closedRisers: boolean;
2622
+ stringerWidth: number;
2623
+ stringerDepth: number;
2624
+ } | undefined;
1582
2625
  railingMaterial?: {
1583
2626
  id?: string | undefined;
1584
2627
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -1635,14 +2678,42 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1635
2678
  sideMaterialPreset?: string | undefined;
1636
2679
  deckSlabId?: string | undefined;
1637
2680
  totalRise?: number | undefined;
2681
+ designTargets?: {
2682
+ maxRiserHeight: number;
2683
+ minimumGoing: number;
2684
+ targetGoing: number;
2685
+ minimumHeadroom: number;
2686
+ } | undefined;
2687
+ uniformRisers?: boolean | undefined;
2688
+ railingStyle?: "glass" | "metal" | "balusters" | "cable" | "boards" | "post-and-rail" | undefined;
2689
+ railingPath?: "continuous" | "original" | undefined;
2690
+ handrail?: {
2691
+ mode: "left" | "right" | "none" | "both";
2692
+ height: number;
2693
+ diameter: number;
2694
+ offset: number;
2695
+ bottom?: {
2696
+ extension: number;
2697
+ return: "wall" | "floor" | "none" | "post";
2698
+ returnLength: number;
2699
+ } | undefined;
2700
+ top?: {
2701
+ extension: number;
2702
+ return: "wall" | "floor" | "none" | "post";
2703
+ returnLength: number;
2704
+ } | undefined;
2705
+ } | undefined;
2706
+ railingTopPost?: boolean | undefined;
2707
+ railingTopReach?: number | undefined;
2708
+ railingPostThrough?: boolean | undefined;
1638
2709
  } | {
1639
2710
  object: "node";
2711
+ length: number;
1640
2712
  position: [number, number, number];
1641
2713
  id: `sseg_${string}`;
1642
2714
  parentId: string | null;
1643
2715
  visible: boolean;
1644
2716
  metadata: Record<string, unknown>;
1645
- length: number;
1646
2717
  rotation: number;
1647
2718
  width: number;
1648
2719
  height: number;
@@ -1650,7 +2721,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1650
2721
  stepCount: number;
1651
2722
  fillToFloor: boolean;
1652
2723
  segmentType: "stair" | "landing";
1653
- attachmentSide: "front" | "right" | "left";
2724
+ attachmentSide: "left" | "right" | "front";
1654
2725
  type: "stair-segment";
1655
2726
  name?: string | undefined;
1656
2727
  camera?: {
@@ -1660,6 +2731,18 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1660
2731
  fov?: number | undefined;
1661
2732
  zoom?: number | undefined;
1662
2733
  } | undefined;
2734
+ provenance?: {
2735
+ refs: {
2736
+ id: string;
2737
+ ns?: string | undefined;
2738
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2739
+ }[];
2740
+ lineage?: {
2741
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2742
+ fromIds: string[];
2743
+ } | undefined;
2744
+ } | undefined;
2745
+ slots?: Record<string, string> | undefined;
1663
2746
  material?: {
1664
2747
  id?: string | undefined;
1665
2748
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -1678,6 +2761,23 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1678
2761
  } | undefined;
1679
2762
  } | undefined;
1680
2763
  materialPreset?: string | undefined;
2764
+ construction?: {
2765
+ mode: "solid" | "open" | "waist" | "side-stringers" | "center-stringer";
2766
+ waistThickness: number;
2767
+ treadThickness: number;
2768
+ riserThickness: number;
2769
+ nosing: number;
2770
+ finishThickness: number;
2771
+ closedRisers: boolean;
2772
+ stringerWidth: number;
2773
+ stringerDepth: number;
2774
+ } | undefined;
2775
+ winder?: {
2776
+ turn: "left" | "right";
2777
+ innerGap: number;
2778
+ walkingLineOffset: number;
2779
+ division: "equal-going" | "equal-angle";
2780
+ } | undefined;
1681
2781
  } | {
1682
2782
  object: "node";
1683
2783
  position: [number, number, number];
@@ -1689,13 +2789,13 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1689
2789
  url: string | null;
1690
2790
  scale: number;
1691
2791
  rotation: [number, number, number];
2792
+ layers: Record<string, boolean>;
1692
2793
  captureSession: {
1693
2794
  sessionId: string;
1694
2795
  schemaVersion?: number | undefined;
1695
2796
  revisionId?: string | undefined;
1696
2797
  manifestUrl?: string | undefined;
1697
2798
  } | null;
1698
- layers: Record<string, boolean>;
1699
2799
  type: "scan";
1700
2800
  name?: string | undefined;
1701
2801
  camera?: {
@@ -1705,6 +2805,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1705
2805
  fov?: number | undefined;
1706
2806
  zoom?: number | undefined;
1707
2807
  } | undefined;
2808
+ provenance?: {
2809
+ refs: {
2810
+ id: string;
2811
+ ns?: string | undefined;
2812
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2813
+ }[];
2814
+ lineage?: {
2815
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2816
+ fromIds: string[];
2817
+ } | undefined;
2818
+ } | undefined;
1708
2819
  } | {
1709
2820
  object: "node";
1710
2821
  position: [number, number, number];
@@ -1733,6 +2844,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1733
2844
  fov?: number | undefined;
1734
2845
  zoom?: number | undefined;
1735
2846
  } | undefined;
2847
+ provenance?: {
2848
+ refs: {
2849
+ id: string;
2850
+ ns?: string | undefined;
2851
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2852
+ }[];
2853
+ lineage?: {
2854
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2855
+ fromIds: string[];
2856
+ } | undefined;
2857
+ } | undefined;
1736
2858
  } | {
1737
2859
  object: "node";
1738
2860
  id: `measurement_${string}`;
@@ -1829,6 +2951,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1829
2951
  fov?: number | undefined;
1830
2952
  zoom?: number | undefined;
1831
2953
  } | undefined;
2954
+ provenance?: {
2955
+ refs: {
2956
+ id: string;
2957
+ ns?: string | undefined;
2958
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2959
+ }[];
2960
+ lineage?: {
2961
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2962
+ fromIds: string[];
2963
+ } | undefined;
2964
+ } | undefined;
1832
2965
  } | {
1833
2966
  object: "node";
1834
2967
  position: [number, number, number];
@@ -1846,6 +2979,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1846
2979
  fov?: number | undefined;
1847
2980
  zoom?: number | undefined;
1848
2981
  } | undefined;
2982
+ provenance?: {
2983
+ refs: {
2984
+ id: string;
2985
+ ns?: string | undefined;
2986
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
2987
+ }[];
2988
+ lineage?: {
2989
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
2990
+ fromIds: string[];
2991
+ } | undefined;
2992
+ } | undefined;
1849
2993
  supportSlabId?: string | undefined;
1850
2994
  } | {
1851
2995
  object: "node";
@@ -1857,7 +3001,8 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1857
3001
  rotation: [number, number, number];
1858
3002
  width: number;
1859
3003
  height: number;
1860
- constructionType: "framed" | "masonry";
3004
+ floorThresholdVersion: 0 | 1;
3005
+ constructionType: "masonry" | "framed";
1861
3006
  dimensionReference: "nominal" | "rough-opening" | "masonry-opening" | "finish-opening";
1862
3007
  operationState: number;
1863
3008
  openingKind: "window" | "opening";
@@ -1868,7 +3013,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1868
3013
  openingRevealRadius: number;
1869
3014
  frameThickness: number;
1870
3015
  frameDepth: number;
1871
- hingesSide: "right" | "left";
3016
+ hingesSide: "left" | "right";
1872
3017
  columnRatios: number[];
1873
3018
  windowType: "fixed" | "sliding" | "casement" | "awning" | "hopper" | "single-hung" | "double-hung" | "bay" | "bow" | "louvered";
1874
3019
  awningDirection: "up" | "down";
@@ -1889,6 +3034,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1889
3034
  fov?: number | undefined;
1890
3035
  zoom?: number | undefined;
1891
3036
  } | undefined;
3037
+ provenance?: {
3038
+ refs: {
3039
+ id: string;
3040
+ ns?: string | undefined;
3041
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3042
+ }[];
3043
+ lineage?: {
3044
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3045
+ fromIds: string[];
3046
+ } | undefined;
3047
+ } | undefined;
1892
3048
  side?: "front" | "back" | undefined;
1893
3049
  slots?: Record<string, string> | undefined;
1894
3050
  material?: {
@@ -1909,8 +3065,97 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1909
3065
  } | undefined;
1910
3066
  } | undefined;
1911
3067
  roofSegmentId?: string | undefined;
3068
+ source?: {
3069
+ kind: "script";
3070
+ language: "three" | "bpy";
3071
+ script: string;
3072
+ params: Record<string, string | number | boolean>;
3073
+ artifact: string;
3074
+ manifest: {
3075
+ bounds: {
3076
+ min: [number, number, number];
3077
+ max: [number, number, number];
3078
+ };
3079
+ params: {
3080
+ id: string;
3081
+ kind: "string" | "number" | "boolean";
3082
+ default: string | number | boolean;
3083
+ label?: string | undefined;
3084
+ min?: number | undefined;
3085
+ max?: number | undefined;
3086
+ step?: number | undefined;
3087
+ unit?: string | undefined;
3088
+ options?: string[] | undefined;
3089
+ }[];
3090
+ parts: {
3091
+ id: string;
3092
+ label?: string | undefined;
3093
+ type?: string | undefined;
3094
+ bounds?: {
3095
+ min: [number, number, number];
3096
+ max: [number, number, number];
3097
+ } | undefined;
3098
+ }[];
3099
+ surfaces: {
3100
+ y: number;
3101
+ polygon: [number, number][];
3102
+ part?: string | undefined;
3103
+ }[];
3104
+ slots: {
3105
+ id: string;
3106
+ label?: string | undefined;
3107
+ color?: string | undefined;
3108
+ roughness?: number | undefined;
3109
+ metalness?: number | undefined;
3110
+ transparent?: boolean | undefined;
3111
+ emissive?: boolean | undefined;
3112
+ }[];
3113
+ anchors: {
3114
+ id: string;
3115
+ position: [number, number, number];
3116
+ normal?: [number, number, number] | undefined;
3117
+ }[];
3118
+ lights: {
3119
+ id: string;
3120
+ position: [number, number, number];
3121
+ color: string;
3122
+ intensity: number;
3123
+ distance?: number | undefined;
3124
+ }[];
3125
+ undersides: {
3126
+ polygon: [number, number][];
3127
+ plane: [number, number, number, number];
3128
+ part?: string | undefined;
3129
+ }[];
3130
+ animations: {
3131
+ name: string;
3132
+ duration: number;
3133
+ }[];
3134
+ cutout: boolean;
3135
+ collider: boolean;
3136
+ triangles: number;
3137
+ cutters?: {
3138
+ host: "wall" | "slab" | "ceiling" | "mounted";
3139
+ polygon: number[][];
3140
+ minY: number;
3141
+ maxY: number;
3142
+ }[] | undefined;
3143
+ };
3144
+ meta?: {
3145
+ description?: string | undefined;
3146
+ category?: string | undefined;
3147
+ tags?: string[] | undefined;
3148
+ parent?: string | undefined;
3149
+ } | undefined;
3150
+ images?: {
3151
+ artifact: string;
3152
+ thumbnail: string;
3153
+ floorPlan: string;
3154
+ } | undefined;
3155
+ } | undefined;
1912
3156
  wallId?: string | undefined;
1913
- roofFace?: "front" | "back" | "right" | "left" | undefined;
3157
+ roofFace?: "left" | "right" | "front" | "back" | undefined;
3158
+ verticalAnchor?: "wall" | "floor" | undefined;
1914
3159
  mark?: string | undefined;
1915
3160
  roughOpeningWidth?: number | undefined;
1916
3161
  roughOpeningHeight?: number | undefined;
@@ -1919,7 +3164,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1919
3164
  finishOpeningWidth?: number | undefined;
1920
3165
  finishOpeningHeight?: number | undefined;
1921
3166
  dormerId?: string | undefined;
1922
- dormerFace?: "front" | "back" | "right" | "left" | undefined;
3167
+ dormerFace?: "left" | "right" | "front" | "back" | undefined;
1923
3168
  } | {
1924
3169
  object: "node";
1925
3170
  position: [number, number, number];
@@ -1930,13 +3175,14 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1930
3175
  rotation: [number, number, number];
1931
3176
  width: number;
1932
3177
  height: number;
1933
- leafCount: 3 | 2 | 1 | 4;
1934
- constructionType: "framed" | "masonry";
3178
+ leafCount: 2 | 1 | 3 | 4;
3179
+ floorThresholdVersion: 0 | 1;
3180
+ constructionType: "masonry" | "framed";
1935
3181
  dimensionReference: "nominal" | "rough-opening" | "masonry-opening" | "finish-opening";
1936
3182
  doorCategory: "interior" | "garage";
1937
3183
  doorType: "double" | "hinged" | "french" | "folding" | "pocket" | "barn" | "sliding" | "garage-sectional" | "garage-rollup" | "garage-tiltup";
1938
3184
  operationState: number;
1939
- slideDirection: "right" | "left";
3185
+ slideDirection: "left" | "right";
1940
3186
  trackStyle: "visible" | "none" | "pocket" | "overhead";
1941
3187
  garagePanelCount: number;
1942
3188
  openingKind: "door" | "opening";
@@ -1950,11 +3196,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1950
3196
  frameDepth: number;
1951
3197
  threshold: boolean;
1952
3198
  thresholdHeight: number;
1953
- hingesSide: "right" | "left";
3199
+ hingesSide: "left" | "right";
1954
3200
  swingDirection: "inward" | "outward";
1955
3201
  swingAngle: number;
1956
3202
  segments: {
1957
- type: "glass" | "panel" | "empty";
3203
+ type: "glass" | "empty" | "panel";
1958
3204
  heightRatio: number;
1959
3205
  columnRatios: number[];
1960
3206
  dividerThickness: number;
@@ -1963,7 +3209,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1963
3209
  }[];
1964
3210
  handle: boolean;
1965
3211
  handleHeight: number;
1966
- handleSide: "right" | "left";
3212
+ handleSide: "left" | "right";
1967
3213
  contentPadding: [number, number];
1968
3214
  doorCloser: boolean;
1969
3215
  panicBar: boolean;
@@ -1977,6 +3223,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1977
3223
  fov?: number | undefined;
1978
3224
  zoom?: number | undefined;
1979
3225
  } | undefined;
3226
+ provenance?: {
3227
+ refs: {
3228
+ id: string;
3229
+ ns?: string | undefined;
3230
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3231
+ }[];
3232
+ lineage?: {
3233
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3234
+ fromIds: string[];
3235
+ } | undefined;
3236
+ } | undefined;
1980
3237
  side?: "front" | "back" | undefined;
1981
3238
  slots?: Record<string, string> | undefined;
1982
3239
  material?: {
@@ -1997,8 +3254,97 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1997
3254
  } | undefined;
1998
3255
  } | undefined;
1999
3256
  roofSegmentId?: string | undefined;
3257
+ source?: {
3258
+ kind: "script";
3259
+ language: "three" | "bpy";
3260
+ script: string;
3261
+ params: Record<string, string | number | boolean>;
3262
+ artifact: string;
3263
+ manifest: {
3264
+ bounds: {
3265
+ min: [number, number, number];
3266
+ max: [number, number, number];
3267
+ };
3268
+ params: {
3269
+ id: string;
3270
+ kind: "string" | "number" | "boolean";
3271
+ default: string | number | boolean;
3272
+ label?: string | undefined;
3273
+ min?: number | undefined;
3274
+ max?: number | undefined;
3275
+ step?: number | undefined;
3276
+ unit?: string | undefined;
3277
+ options?: string[] | undefined;
3278
+ }[];
3279
+ parts: {
3280
+ id: string;
3281
+ label?: string | undefined;
3282
+ type?: string | undefined;
3283
+ bounds?: {
3284
+ min: [number, number, number];
3285
+ max: [number, number, number];
3286
+ } | undefined;
3287
+ }[];
3288
+ surfaces: {
3289
+ y: number;
3290
+ polygon: [number, number][];
3291
+ part?: string | undefined;
3292
+ }[];
3293
+ slots: {
3294
+ id: string;
3295
+ label?: string | undefined;
3296
+ color?: string | undefined;
3297
+ roughness?: number | undefined;
3298
+ metalness?: number | undefined;
3299
+ transparent?: boolean | undefined;
3300
+ emissive?: boolean | undefined;
3301
+ }[];
3302
+ anchors: {
3303
+ id: string;
3304
+ position: [number, number, number];
3305
+ normal?: [number, number, number] | undefined;
3306
+ }[];
3307
+ lights: {
3308
+ id: string;
3309
+ position: [number, number, number];
3310
+ color: string;
3311
+ intensity: number;
3312
+ distance?: number | undefined;
3313
+ }[];
3314
+ undersides: {
3315
+ polygon: [number, number][];
3316
+ plane: [number, number, number, number];
3317
+ part?: string | undefined;
3318
+ }[];
3319
+ animations: {
3320
+ name: string;
3321
+ duration: number;
3322
+ }[];
3323
+ cutout: boolean;
3324
+ collider: boolean;
3325
+ triangles: number;
3326
+ cutters?: {
3327
+ host: "wall" | "slab" | "ceiling" | "mounted";
3328
+ polygon: number[][];
3329
+ minY: number;
3330
+ maxY: number;
3331
+ }[] | undefined;
3332
+ };
3333
+ meta?: {
3334
+ description?: string | undefined;
3335
+ category?: string | undefined;
3336
+ tags?: string[] | undefined;
3337
+ parent?: string | undefined;
3338
+ } | undefined;
3339
+ images?: {
3340
+ artifact: string;
3341
+ thumbnail: string;
3342
+ floorPlan: string;
3343
+ } | undefined;
3344
+ } | undefined;
2000
3345
  wallId?: string | undefined;
2001
- roofFace?: "front" | "back" | "right" | "left" | undefined;
3346
+ roofFace?: "left" | "right" | "front" | "back" | undefined;
3347
+ verticalAnchor?: "wall" | "floor" | undefined;
2002
3348
  mark?: string | undefined;
2003
3349
  roughOpeningWidth?: number | undefined;
2004
3350
  roughOpeningHeight?: number | undefined;
@@ -2013,10 +3359,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2013
3359
  parentId: string | null;
2014
3360
  visible: boolean;
2015
3361
  metadata: Record<string, unknown>;
3362
+ depth: number;
2016
3363
  rotation: number;
2017
3364
  materialPreset: string;
2018
3365
  width: number;
2019
- depth: number;
2020
3366
  height: number;
2021
3367
  hoodOverhang: number;
2022
3368
  topTaper: number;
@@ -2036,6 +3382,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2036
3382
  fov?: number | undefined;
2037
3383
  zoom?: number | undefined;
2038
3384
  } | undefined;
3385
+ provenance?: {
3386
+ refs: {
3387
+ id: string;
3388
+ ns?: string | undefined;
3389
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3390
+ }[];
3391
+ lineage?: {
3392
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3393
+ fromIds: string[];
3394
+ } | undefined;
3395
+ } | undefined;
2039
3396
  slots?: Record<string, string> | undefined;
2040
3397
  material?: {
2041
3398
  id?: string | undefined;
@@ -2057,12 +3414,12 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2057
3414
  roofSegmentId?: string | undefined;
2058
3415
  } | {
2059
3416
  object: "node";
3417
+ length: number;
2060
3418
  position: [number, number, number];
2061
3419
  id: `rvent_${string}`;
2062
3420
  parentId: string | null;
2063
3421
  visible: boolean;
2064
3422
  metadata: Record<string, unknown>;
2065
- length: number;
2066
3423
  rotation: number;
2067
3424
  width: number;
2068
3425
  height: number;
@@ -2077,6 +3434,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2077
3434
  fov?: number | undefined;
2078
3435
  zoom?: number | undefined;
2079
3436
  } | undefined;
3437
+ provenance?: {
3438
+ refs: {
3439
+ id: string;
3440
+ ns?: string | undefined;
3441
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3442
+ }[];
3443
+ lineage?: {
3444
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3445
+ fromIds: string[];
3446
+ } | undefined;
3447
+ } | undefined;
2080
3448
  material?: {
2081
3449
  id?: string | undefined;
2082
3450
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -2121,6 +3489,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2121
3489
  fov?: number | undefined;
2122
3490
  zoom?: number | undefined;
2123
3491
  } | undefined;
3492
+ provenance?: {
3493
+ refs: {
3494
+ id: string;
3495
+ ns?: string | undefined;
3496
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3497
+ }[];
3498
+ lineage?: {
3499
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3500
+ fromIds: string[];
3501
+ } | undefined;
3502
+ } | undefined;
2124
3503
  slots?: Record<string, string> | undefined;
2125
3504
  material?: {
2126
3505
  id?: string | undefined;
@@ -2147,10 +3526,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2147
3526
  parentId: string | null;
2148
3527
  visible: boolean;
2149
3528
  metadata: Record<string, unknown>;
3529
+ depth: number;
2150
3530
  rotation: number;
2151
3531
  materialPreset: string;
2152
3532
  width: number;
2153
- depth: number;
2154
3533
  height: number;
2155
3534
  roofStyle: "dome" | "pyramid";
2156
3535
  finial: boolean;
@@ -2163,6 +3542,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2163
3542
  fov?: number | undefined;
2164
3543
  zoom?: number | undefined;
2165
3544
  } | undefined;
3545
+ provenance?: {
3546
+ refs: {
3547
+ id: string;
3548
+ ns?: string | undefined;
3549
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3550
+ }[];
3551
+ lineage?: {
3552
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3553
+ fromIds: string[];
3554
+ } | undefined;
3555
+ } | undefined;
2166
3556
  slots?: Record<string, string> | undefined;
2167
3557
  material?: {
2168
3558
  id?: string | undefined;
@@ -2189,10 +3579,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2189
3579
  parentId: string | null;
2190
3580
  visible: boolean;
2191
3581
  metadata: Record<string, unknown>;
3582
+ depth: number;
2192
3583
  rotation: number;
2193
3584
  materialPreset: string;
2194
3585
  width: number;
2195
- depth: number;
2196
3586
  height: number;
2197
3587
  style: "half-round" | "scoop" | "slant-box";
2198
3588
  louverCount: number;
@@ -2206,6 +3596,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2206
3596
  fov?: number | undefined;
2207
3597
  zoom?: number | undefined;
2208
3598
  } | undefined;
3599
+ provenance?: {
3600
+ refs: {
3601
+ id: string;
3602
+ ns?: string | undefined;
3603
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3604
+ }[];
3605
+ lineage?: {
3606
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3607
+ fromIds: string[];
3608
+ } | undefined;
3609
+ } | undefined;
2209
3610
  slots?: Record<string, string> | undefined;
2210
3611
  material?: {
2211
3612
  id?: string | undefined;
@@ -2227,12 +3628,12 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2227
3628
  roofSegmentId?: string | undefined;
2228
3629
  } | {
2229
3630
  object: "node";
3631
+ length: number;
2230
3632
  position: [number, number, number];
2231
3633
  id: `gutter_${string}`;
2232
3634
  parentId: string | null;
2233
3635
  visible: boolean;
2234
3636
  metadata: Record<string, unknown>;
2235
- length: number;
2236
3637
  rotation: number;
2237
3638
  materialPreset: string;
2238
3639
  thickness: number;
@@ -2257,6 +3658,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2257
3658
  fov?: number | undefined;
2258
3659
  zoom?: number | undefined;
2259
3660
  } | undefined;
3661
+ provenance?: {
3662
+ refs: {
3663
+ id: string;
3664
+ ns?: string | undefined;
3665
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3666
+ }[];
3667
+ lineage?: {
3668
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3669
+ fromIds: string[];
3670
+ } | undefined;
3671
+ } | undefined;
2260
3672
  slots?: Record<string, string> | undefined;
2261
3673
  material?: {
2262
3674
  id?: string | undefined;
@@ -2288,9 +3700,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2288
3700
  parentId: string | null;
2289
3701
  visible: boolean;
2290
3702
  metadata: Record<string, unknown>;
3703
+ depth: number;
2291
3704
  rotation: number;
2292
3705
  width: number;
2293
- depth: number;
2294
3706
  cornerBevel: number;
2295
3707
  cap: boolean;
2296
3708
  panelDepth: number;
@@ -2332,6 +3744,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2332
3744
  fov?: number | undefined;
2333
3745
  zoom?: number | undefined;
2334
3746
  } | undefined;
3747
+ provenance?: {
3748
+ refs: {
3749
+ id: string;
3750
+ ns?: string | undefined;
3751
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3752
+ }[];
3753
+ lineage?: {
3754
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3755
+ fromIds: string[];
3756
+ } | undefined;
3757
+ } | undefined;
2335
3758
  material?: {
2336
3759
  id?: string | undefined;
2337
3760
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -2378,9 +3801,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2378
3801
  metadata: Record<string, unknown>;
2379
3802
  rotation: number;
2380
3803
  rows: number;
3804
+ columns: number;
2381
3805
  frameThickness: number;
2382
3806
  frameDepth: number;
2383
- columns: number;
2384
3807
  panelWidth: number;
2385
3808
  panelHeight: number;
2386
3809
  gapX: number;
@@ -2397,6 +3820,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2397
3820
  fov?: number | undefined;
2398
3821
  zoom?: number | undefined;
2399
3822
  } | undefined;
3823
+ provenance?: {
3824
+ refs: {
3825
+ id: string;
3826
+ ns?: string | undefined;
3827
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3828
+ }[];
3829
+ lineage?: {
3830
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3831
+ fromIds: string[];
3832
+ } | undefined;
3833
+ } | undefined;
2400
3834
  material?: {
2401
3835
  id?: string | undefined;
2402
3836
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -2446,6 +3880,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2446
3880
  rotation: number;
2447
3881
  width: number;
2448
3882
  height: number;
3883
+ glassThickness: number;
2449
3884
  operationState: number;
2450
3885
  slideDirection: "x" | "z";
2451
3886
  frameThickness: number;
@@ -2453,11 +3888,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2453
3888
  curbHeight: number;
2454
3889
  cutoutOffset: number;
2455
3890
  skylightType: "flat" | "sliding" | "opening" | "walk-on" | "lantern";
2456
- glassThickness: number;
2457
3891
  lanternHeight: number;
2458
3892
  lanternTopScale: number;
2459
3893
  openingAngle: number;
2460
- openingSide: "top" | "right" | "left" | "bottom";
3894
+ openingSide: "left" | "right" | "top" | "bottom";
2461
3895
  motorHousing: boolean;
2462
3896
  slideFraction: number;
2463
3897
  trackWidth: number;
@@ -2472,6 +3906,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2472
3906
  fov?: number | undefined;
2473
3907
  zoom?: number | undefined;
2474
3908
  } | undefined;
3909
+ provenance?: {
3910
+ refs: {
3911
+ id: string;
3912
+ ns?: string | undefined;
3913
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
3914
+ }[];
3915
+ lineage?: {
3916
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
3917
+ fromIds: string[];
3918
+ } | undefined;
3919
+ } | undefined;
2475
3920
  material?: {
2476
3921
  id?: string | undefined;
2477
3922
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -2517,10 +3962,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2517
3962
  parentId: string | null;
2518
3963
  visible: boolean;
2519
3964
  metadata: Record<string, unknown>;
3965
+ depth: number;
2520
3966
  rotation: number;
2521
3967
  children: `window_${string}`[];
2522
3968
  width: number;
2523
- depth: number;
2524
3969
  height: number;
2525
3970
  roofType: "flat" | "hip" | "gable" | "shed" | "gambrel" | "dutch" | "mansard" | "conical";
2526
3971
  roofHeight: number;
@@ -2550,6 +3995,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2550
3995
  fov?: number | undefined;
2551
3996
  zoom?: number | undefined;
2552
3997
  } | undefined;
3998
+ provenance?: {
3999
+ refs: {
4000
+ id: string;
4001
+ ns?: string | undefined;
4002
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4003
+ }[];
4004
+ lineage?: {
4005
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4006
+ fromIds: string[];
4007
+ } | undefined;
4008
+ } | undefined;
2553
4009
  material?: {
2554
4010
  id?: string | undefined;
2555
4011
  preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
@@ -2625,14 +4081,14 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2625
4081
  sideMaterialPreset?: string | undefined;
2626
4082
  } | {
2627
4083
  object: "node";
4084
+ length: number;
2628
4085
  id: `downspout_${string}`;
2629
4086
  parentId: string | null;
2630
4087
  visible: boolean;
2631
4088
  metadata: Record<string, unknown>;
2632
- length: number;
4089
+ shape: "auto" | "round" | "rect";
2633
4090
  materialPreset: string;
2634
4091
  diameter: number;
2635
- shape: "round" | "auto" | "rect";
2636
4092
  standoff: number;
2637
4093
  strapStyle: "none" | "band";
2638
4094
  strapSpacing: number;
@@ -2646,6 +4102,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2646
4102
  fov?: number | undefined;
2647
4103
  zoom?: number | undefined;
2648
4104
  } | undefined;
4105
+ provenance?: {
4106
+ refs: {
4107
+ id: string;
4108
+ ns?: string | undefined;
4109
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4110
+ }[];
4111
+ lineage?: {
4112
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4113
+ fromIds: string[];
4114
+ } | undefined;
4115
+ } | undefined;
2649
4116
  slots?: Record<string, string> | undefined;
2650
4117
  material?: {
2651
4118
  id?: string | undefined;
@@ -2673,17 +4140,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2673
4140
  parentId: string | null;
2674
4141
  visible: boolean;
2675
4142
  metadata: Record<string, unknown>;
4143
+ shape: "round" | "rect" | "oval";
2676
4144
  path: [number, number, number][];
2677
4145
  width: number;
2678
4146
  height: number;
2679
4147
  diameter: number;
2680
- shape: "round" | "rect" | "oval";
2681
4148
  roll: number;
2682
4149
  ductMaterial: "spiral" | "sheet-metal" | "flex" | "duct-board";
2683
4150
  seamDetail: boolean;
2684
4151
  insulated: boolean;
2685
4152
  insulationR: number;
2686
- system: "supply" | "return";
4153
+ system: "return" | "supply";
2687
4154
  type: "duct-segment";
2688
4155
  name?: string | undefined;
2689
4156
  camera?: {
@@ -2693,6 +4160,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2693
4160
  fov?: number | undefined;
2694
4161
  zoom?: number | undefined;
2695
4162
  } | undefined;
4163
+ provenance?: {
4164
+ refs: {
4165
+ id: string;
4166
+ ns?: string | undefined;
4167
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4168
+ }[];
4169
+ lineage?: {
4170
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4171
+ fromIds: string[];
4172
+ } | undefined;
4173
+ } | undefined;
2696
4174
  slots?: Record<string, string> | undefined;
2697
4175
  autoHangers?: boolean | undefined;
2698
4176
  hangerOverrides?: Record<string, {
@@ -2717,14 +4195,14 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2717
4195
  parentId: string | null;
2718
4196
  visible: boolean;
2719
4197
  metadata: Record<string, unknown>;
4198
+ shape: "round" | "rect" | "oval";
2720
4199
  rotation: [number, number, number];
2721
4200
  width: number;
2722
4201
  height: number;
2723
4202
  angle: number;
2724
4203
  diameter: number;
2725
- shape: "round" | "rect" | "oval";
2726
4204
  ductMaterial: "sheet-metal" | "flex" | "duct-board";
2727
- system: "supply" | "return";
4205
+ system: "return" | "supply";
2728
4206
  fittingType: "elbow" | "tee" | "cross" | "reducer" | "transition" | "end-cap" | "damper" | "access-panel" | "coupling";
2729
4207
  shape2: "round" | "rect" | "oval";
2730
4208
  width2: number;
@@ -2743,6 +4221,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2743
4221
  fov?: number | undefined;
2744
4222
  zoom?: number | undefined;
2745
4223
  } | undefined;
4224
+ provenance?: {
4225
+ refs: {
4226
+ id: string;
4227
+ ns?: string | undefined;
4228
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4229
+ }[];
4230
+ lineage?: {
4231
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4232
+ fromIds: string[];
4233
+ } | undefined;
4234
+ } | undefined;
2746
4235
  slots?: Record<string, string> | undefined;
2747
4236
  inletShape?: "round" | "rect" | "oval" | undefined;
2748
4237
  outletShape?: "round" | "rect" | "oval" | undefined;
@@ -2753,11 +4242,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2753
4242
  parentId: string | null;
2754
4243
  visible: boolean;
2755
4244
  metadata: Record<string, unknown>;
4245
+ depth: number;
2756
4246
  rotation: number;
2757
4247
  width: number;
2758
- depth: number;
2759
- terminalType: "supply-register" | "diffuser" | "return-grille";
2760
4248
  mount: "wall" | "ceiling" | "floor";
4249
+ terminalType: "supply-register" | "diffuser" | "return-grille";
2761
4250
  collarShape: "round" | "rect" | "oval";
2762
4251
  collarDiameter: number;
2763
4252
  collarWidth: number;
@@ -2771,6 +4260,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2771
4260
  fov?: number | undefined;
2772
4261
  zoom?: number | undefined;
2773
4262
  } | undefined;
4263
+ provenance?: {
4264
+ refs: {
4265
+ id: string;
4266
+ ns?: string | undefined;
4267
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4268
+ }[];
4269
+ lineage?: {
4270
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4271
+ fromIds: string[];
4272
+ } | undefined;
4273
+ } | undefined;
2774
4274
  supportSlabId?: string | undefined;
2775
4275
  } | {
2776
4276
  object: "node";
@@ -2779,9 +4279,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2779
4279
  parentId: string | null;
2780
4280
  visible: boolean;
2781
4281
  metadata: Record<string, unknown>;
4282
+ depth: number;
2782
4283
  rotation: number;
2783
4284
  width: number;
2784
- depth: number;
2785
4285
  height: number;
2786
4286
  equipmentType: "furnace" | "air-handler" | "condenser";
2787
4287
  supplyShape: "round" | "rect" | "oval";
@@ -2801,6 +4301,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2801
4301
  fov?: number | undefined;
2802
4302
  zoom?: number | undefined;
2803
4303
  } | undefined;
4304
+ provenance?: {
4305
+ refs: {
4306
+ id: string;
4307
+ ns?: string | undefined;
4308
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4309
+ }[];
4310
+ lineage?: {
4311
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4312
+ fromIds: string[];
4313
+ } | undefined;
4314
+ } | undefined;
2804
4315
  supportSlabId?: string | undefined;
2805
4316
  } | {
2806
4317
  object: "node";
@@ -2821,6 +4332,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2821
4332
  fov?: number | undefined;
2822
4333
  zoom?: number | undefined;
2823
4334
  } | undefined;
4335
+ provenance?: {
4336
+ refs: {
4337
+ id: string;
4338
+ ns?: string | undefined;
4339
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4340
+ }[];
4341
+ lineage?: {
4342
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4343
+ fromIds: string[];
4344
+ } | undefined;
4345
+ } | undefined;
2824
4346
  } | {
2825
4347
  object: "node";
2826
4348
  id: `liquid-line_${string}`;
@@ -2838,6 +4360,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2838
4360
  fov?: number | undefined;
2839
4361
  zoom?: number | undefined;
2840
4362
  } | undefined;
4363
+ provenance?: {
4364
+ refs: {
4365
+ id: string;
4366
+ ns?: string | undefined;
4367
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4368
+ }[];
4369
+ lineage?: {
4370
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4371
+ fromIds: string[];
4372
+ } | undefined;
4373
+ } | undefined;
2841
4374
  } | {
2842
4375
  object: "node";
2843
4376
  id: `pipe-segment_${string}`;
@@ -2857,6 +4390,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2857
4390
  fov?: number | undefined;
2858
4391
  zoom?: number | undefined;
2859
4392
  } | undefined;
4393
+ provenance?: {
4394
+ refs: {
4395
+ id: string;
4396
+ ns?: string | undefined;
4397
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4398
+ }[];
4399
+ lineage?: {
4400
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4401
+ fromIds: string[];
4402
+ } | undefined;
4403
+ } | undefined;
2860
4404
  autoHangers?: boolean | undefined;
2861
4405
  hangerOverrides?: Record<string, {
2862
4406
  fraction?: number | undefined;
@@ -2897,6 +4441,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2897
4441
  fov?: number | undefined;
2898
4442
  zoom?: number | undefined;
2899
4443
  } | undefined;
4444
+ provenance?: {
4445
+ refs: {
4446
+ id: string;
4447
+ ns?: string | undefined;
4448
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4449
+ }[];
4450
+ lineage?: {
4451
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4452
+ fromIds: string[];
4453
+ } | undefined;
4454
+ } | undefined;
2900
4455
  } | {
2901
4456
  object: "node";
2902
4457
  position: [number, number, number];
@@ -2917,9 +4472,20 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2917
4472
  fov?: number | undefined;
2918
4473
  zoom?: number | undefined;
2919
4474
  } | undefined;
4475
+ provenance?: {
4476
+ refs: {
4477
+ id: string;
4478
+ ns?: string | undefined;
4479
+ role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
4480
+ }[];
4481
+ lineage?: {
4482
+ op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
4483
+ fromIds: string[];
4484
+ } | undefined;
4485
+ } | undefined;
2920
4486
  }>;
2921
4487
  export declare function createSurfaceOpeningPreviewController(): {
2922
- previewSurfaceIds: Set<`block_${string}` | `bvent_${string}` | `elevator_${string}` | `ceiling_${string}` | `item_${string}` | `procedural-item_${string}` | `column_${string}` | `construction-dimension_${string}` | `site_${string}` | `building_${string}` | `level_${string}` | `wall_${string}` | `door_${string}` | `window_${string}` | `leanto_${string}` | `roof_${string}` | `rseg_${string}` | `slab_${string}` | `fence_${string}` | `structural-grid_${string}` | `imesh_${string}` | `zone_${string}` | `stair_${string}` | `sseg_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}` | `unit_${string}` | `cabinet_${string}` | `cabinet-module_${string}` | `rvent_${string}` | `tvent_${string}` | `cupola_${string}` | `eyebrow-vent_${string}` | `gutter_${string}` | `chimney_${string}` | `solarpanel_${string}` | `skylight_${string}` | `dormer_${string}` | `downspout_${string}`>;
4488
+ previewSurfaceIds: Set<`block_${string}` | `bvent_${string}` | `elevator_${string}` | `ceiling_${string}` | `item_${string}` | `procedural-item_${string}` | `column_${string}` | `construction-dimension_${string}` | `site_${string}` | `building_${string}` | `level_${string}` | `wall_${string}` | `door_${string}` | `window_${string}` | `leanto_${string}` | `roof_${string}` | `rseg_${string}` | `slab_${string}` | `separator_${string}` | `floor-opening_${string}` | `fence_${string}` | `structural-grid_${string}` | `imesh_${string}` | `zone_${string}` | `stair_${string}` | `sseg_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}` | `unit_${string}` | `fence-gate_${string}` | `fence-opening_${string}` | `cabinet_${string}` | `cabinet-module_${string}` | `rvent_${string}` | `tvent_${string}` | `cupola_${string}` | `eyebrow-vent_${string}` | `gutter_${string}` | `chimney_${string}` | `solarpanel_${string}` | `skylight_${string}` | `dormer_${string}` | `downspout_${string}`>;
2923
4489
  apply(updates: SurfaceOpeningUpdate[]): void;
2924
4490
  clear(): void;
2925
4491
  };