@pascal-app/core 1.0.3 → 1.0.5

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 (1485) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +247 -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 +429 -0
  4. package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
  5. package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
  6. package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
  7. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts +4 -0
  8. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -0
  9. package/dist/agent-operations/__fixtures__/build-room-cases.js +1005 -0
  10. package/dist/agent-operations/__fixtures__/cases.d.ts +67 -0
  11. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/cases.js +868 -0
  13. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
  14. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
  15. package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
  16. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
  17. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
  18. package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
  19. package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts +7 -0
  20. package/dist/agent-operations/__fixtures__/find-by-type-cases.d.ts.map +1 -0
  21. package/dist/agent-operations/__fixtures__/find-by-type-cases.js +21 -0
  22. package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
  23. package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
  25. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
  26. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
  27. package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
  28. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
  29. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
  30. package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
  31. package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
  32. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
  33. package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
  34. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
  35. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
  36. package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
  37. package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
  38. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
  39. package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
  40. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts +17 -0
  41. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -0
  42. package/dist/agent-operations/__fixtures__/place-items-cases.js +584 -0
  43. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
  44. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
  45. package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
  46. package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
  47. package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
  48. package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
  49. package/dist/agent-operations/__fixtures__/room-cases.d.ts +4 -0
  50. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -0
  51. package/dist/agent-operations/__fixtures__/room-cases.js +473 -0
  52. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
  53. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
  54. package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
  55. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts +5 -0
  56. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -0
  57. package/dist/agent-operations/__fixtures__/search-assets-cases.js +149 -0
  58. package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
  59. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
  60. package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
  61. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +7 -0
  62. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -0
  63. package/dist/agent-operations/__fixtures__/structure-cases.js +1215 -0
  64. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +313 -0
  65. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -0
  66. package/dist/agent-operations/__fixtures__/verify-scene-cases.js +350 -0
  67. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
  68. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
  69. package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
  70. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
  71. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
  72. package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
  73. package/dist/agent-operations/achieved.d.ts +21 -0
  74. package/dist/agent-operations/achieved.d.ts.map +1 -0
  75. package/dist/agent-operations/achieved.js +48 -0
  76. package/dist/agent-operations/add-column.d.ts +23 -0
  77. package/dist/agent-operations/add-column.d.ts.map +1 -0
  78. package/dist/agent-operations/add-column.js +99 -0
  79. package/dist/agent-operations/add-fence.d.ts +18 -0
  80. package/dist/agent-operations/add-fence.d.ts.map +1 -0
  81. package/dist/agent-operations/add-fence.js +48 -0
  82. package/dist/agent-operations/add-level.d.ts +17 -0
  83. package/dist/agent-operations/add-level.d.ts.map +1 -0
  84. package/dist/agent-operations/add-level.js +130 -0
  85. package/dist/agent-operations/add-object.d.ts +143 -0
  86. package/dist/agent-operations/add-object.d.ts.map +1 -0
  87. package/dist/agent-operations/add-object.js +522 -0
  88. package/dist/agent-operations/add-wall.d.ts +13 -0
  89. package/dist/agent-operations/add-wall.d.ts.map +1 -0
  90. package/dist/agent-operations/add-wall.js +73 -0
  91. package/dist/agent-operations/apply-changes.d.ts +22 -0
  92. package/dist/agent-operations/apply-changes.d.ts.map +1 -0
  93. package/dist/agent-operations/apply-changes.js +125 -0
  94. package/dist/agent-operations/apply-outcome.d.ts +21 -0
  95. package/dist/agent-operations/apply-outcome.d.ts.map +1 -0
  96. package/dist/agent-operations/apply-outcome.js +33 -0
  97. package/dist/agent-operations/asset-views.d.ts +75 -0
  98. package/dist/agent-operations/asset-views.d.ts.map +1 -0
  99. package/dist/agent-operations/asset-views.js +234 -0
  100. package/dist/agent-operations/author-scene.d.ts +157 -0
  101. package/dist/agent-operations/author-scene.d.ts.map +1 -0
  102. package/dist/agent-operations/author-scene.js +1076 -0
  103. package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
  104. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
  105. package/dist/agent-operations/authored-scene-merge.js +96 -0
  106. package/dist/agent-operations/batch.d.ts +22 -0
  107. package/dist/agent-operations/batch.d.ts.map +1 -0
  108. package/dist/agent-operations/batch.js +104 -0
  109. package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
  110. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
  111. package/dist/agent-operations/ceiling-object-observations.js +111 -0
  112. package/dist/agent-operations/collections.d.ts +28 -0
  113. package/dist/agent-operations/collections.d.ts.map +1 -0
  114. package/dist/agent-operations/collections.js +130 -0
  115. package/dist/agent-operations/corner-window.d.ts +19 -0
  116. package/dist/agent-operations/corner-window.d.ts.map +1 -0
  117. package/dist/agent-operations/corner-window.js +84 -0
  118. package/dist/agent-operations/create-roof.d.ts +32 -0
  119. package/dist/agent-operations/create-roof.d.ts.map +1 -0
  120. package/dist/agent-operations/create-roof.js +304 -0
  121. package/dist/agent-operations/create-room.d.ts +38 -0
  122. package/dist/agent-operations/create-room.d.ts.map +1 -0
  123. package/dist/agent-operations/create-room.js +245 -0
  124. package/dist/agent-operations/create-stair.d.ts +11 -0
  125. package/dist/agent-operations/create-stair.d.ts.map +1 -0
  126. package/dist/agent-operations/create-stair.js +330 -0
  127. package/dist/agent-operations/delete-node.d.ts +6 -0
  128. package/dist/agent-operations/delete-node.d.ts.map +1 -0
  129. package/dist/agent-operations/delete-node.js +9 -0
  130. package/dist/agent-operations/design-brief.d.ts +38 -0
  131. package/dist/agent-operations/design-brief.d.ts.map +1 -0
  132. package/dist/agent-operations/design-brief.js +300 -0
  133. package/dist/agent-operations/designs.d.ts +24 -0
  134. package/dist/agent-operations/designs.d.ts.map +1 -0
  135. package/dist/agent-operations/designs.js +48 -0
  136. package/dist/agent-operations/door-clearance.d.ts +150 -0
  137. package/dist/agent-operations/door-clearance.d.ts.map +1 -0
  138. package/dist/agent-operations/door-clearance.js +391 -0
  139. package/dist/agent-operations/duplicate-level.d.ts +12 -0
  140. package/dist/agent-operations/duplicate-level.d.ts.map +1 -0
  141. package/dist/agent-operations/duplicate-level.js +55 -0
  142. package/dist/agent-operations/find-by-type.d.ts +18 -0
  143. package/dist/agent-operations/find-by-type.d.ts.map +1 -0
  144. package/dist/agent-operations/find-by-type.js +317 -0
  145. package/dist/agent-operations/furnish-room.d.ts +39 -0
  146. package/dist/agent-operations/furnish-room.d.ts.map +1 -0
  147. package/dist/agent-operations/furnish-room.js +306 -0
  148. package/dist/agent-operations/furniture-kind.d.ts +22 -0
  149. package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
  150. package/dist/agent-operations/furniture-kind.js +69 -0
  151. package/dist/agent-operations/get-node.d.ts +12 -0
  152. package/dist/agent-operations/get-node.d.ts.map +1 -0
  153. package/dist/agent-operations/get-node.js +105 -0
  154. package/dist/agent-operations/hosted-services.d.ts +14 -0
  155. package/dist/agent-operations/hosted-services.d.ts.map +1 -0
  156. package/dist/agent-operations/hosted-services.js +22 -0
  157. package/dist/agent-operations/index.d.ts +489 -0
  158. package/dist/agent-operations/index.d.ts.map +1 -0
  159. package/dist/agent-operations/index.js +141 -0
  160. package/dist/agent-operations/item-space.d.ts +22 -0
  161. package/dist/agent-operations/item-space.d.ts.map +1 -0
  162. package/dist/agent-operations/item-space.js +69 -0
  163. package/dist/agent-operations/layout-clearance.d.ts +157 -0
  164. package/dist/agent-operations/layout-clearance.d.ts.map +1 -0
  165. package/dist/agent-operations/layout-clearance.js +500 -0
  166. package/dist/agent-operations/level-height-fill.d.ts +12 -0
  167. package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
  168. package/dist/agent-operations/level-height-fill.js +59 -0
  169. package/dist/agent-operations/level-reads.d.ts +37 -0
  170. package/dist/agent-operations/level-reads.d.ts.map +1 -0
  171. package/dist/agent-operations/level-reads.js +168 -0
  172. package/dist/agent-operations/level-target.d.ts +11 -0
  173. package/dist/agent-operations/level-target.d.ts.map +1 -0
  174. package/dist/agent-operations/level-target.js +29 -0
  175. package/dist/agent-operations/list-levels.d.ts +4 -0
  176. package/dist/agent-operations/list-levels.d.ts.map +1 -0
  177. package/dist/agent-operations/list-levels.js +54 -0
  178. package/dist/agent-operations/material-preset.d.ts +11 -0
  179. package/dist/agent-operations/material-preset.d.ts.map +1 -0
  180. package/dist/agent-operations/material-preset.js +68 -0
  181. package/dist/agent-operations/material-refs.d.ts +30 -0
  182. package/dist/agent-operations/material-refs.d.ts.map +1 -0
  183. package/dist/agent-operations/material-refs.js +105 -0
  184. package/dist/agent-operations/merge-windows.d.ts +6 -0
  185. package/dist/agent-operations/merge-windows.d.ts.map +1 -0
  186. package/dist/agent-operations/merge-windows.js +27 -0
  187. package/dist/agent-operations/move-roofs.d.ts +9 -0
  188. package/dist/agent-operations/move-roofs.d.ts.map +1 -0
  189. package/dist/agent-operations/move-roofs.js +29 -0
  190. package/dist/agent-operations/node-patch.d.ts +3 -0
  191. package/dist/agent-operations/node-patch.d.ts.map +1 -0
  192. package/dist/agent-operations/node-patch.js +114 -0
  193. package/dist/agent-operations/paint.d.ts +22 -0
  194. package/dist/agent-operations/paint.d.ts.map +1 -0
  195. package/dist/agent-operations/paint.js +329 -0
  196. package/dist/agent-operations/photo-elevation.d.ts +155 -0
  197. package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
  198. package/dist/agent-operations/photo-elevation.js +761 -0
  199. package/dist/agent-operations/place-in-room.d.ts +29 -0
  200. package/dist/agent-operations/place-in-room.d.ts.map +1 -0
  201. package/dist/agent-operations/place-in-room.js +403 -0
  202. package/dist/agent-operations/place-items.d.ts +20 -0
  203. package/dist/agent-operations/place-items.d.ts.map +1 -0
  204. package/dist/agent-operations/place-items.js +239 -0
  205. package/dist/agent-operations/plan-geometry.d.ts +24 -0
  206. package/dist/agent-operations/plan-geometry.d.ts.map +1 -0
  207. package/dist/agent-operations/plan-geometry.js +97 -0
  208. package/dist/agent-operations/point-context.d.ts +139 -0
  209. package/dist/agent-operations/point-context.d.ts.map +1 -0
  210. package/dist/agent-operations/point-context.js +1 -0
  211. package/dist/agent-operations/project-files.d.ts +9 -0
  212. package/dist/agent-operations/project-files.d.ts.map +1 -0
  213. package/dist/agent-operations/project-files.js +25 -0
  214. package/dist/agent-operations/record-made.d.ts +18 -0
  215. package/dist/agent-operations/record-made.d.ts.map +1 -0
  216. package/dist/agent-operations/record-made.js +28 -0
  217. package/dist/agent-operations/roof-footprint.d.ts +24 -0
  218. package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
  219. package/dist/agent-operations/roof-footprint.js +242 -0
  220. package/dist/agent-operations/roof-writes.d.ts +20 -0
  221. package/dist/agent-operations/roof-writes.d.ts.map +1 -0
  222. package/dist/agent-operations/roof-writes.js +165 -0
  223. package/dist/agent-operations/room-findings.d.ts +54 -0
  224. package/dist/agent-operations/room-findings.d.ts.map +1 -0
  225. package/dist/agent-operations/room-findings.js +143 -0
  226. package/dist/agent-operations/room-floor-script.d.ts +23 -0
  227. package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
  228. package/dist/agent-operations/room-floor-script.js +54 -0
  229. package/dist/agent-operations/room-structure.d.ts +87 -0
  230. package/dist/agent-operations/room-structure.d.ts.map +1 -0
  231. package/dist/agent-operations/room-structure.js +144 -0
  232. package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
  233. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
  234. package/dist/agent-operations/scene-checkpoint.js +176 -0
  235. package/dist/agent-operations/scene-materials.d.ts +15 -0
  236. package/dist/agent-operations/scene-materials.d.ts.map +1 -0
  237. package/dist/agent-operations/scene-materials.js +62 -0
  238. package/dist/agent-operations/scene-measure.d.ts +73 -0
  239. package/dist/agent-operations/scene-measure.d.ts.map +1 -0
  240. package/dist/agent-operations/scene-measure.js +73 -0
  241. package/dist/agent-operations/scene-queries.d.ts +4941 -0
  242. package/dist/agent-operations/scene-queries.d.ts.map +1 -0
  243. package/dist/agent-operations/scene-queries.js +74 -0
  244. package/dist/agent-operations/scene-review.d.ts +52 -0
  245. package/dist/agent-operations/scene-review.d.ts.map +1 -0
  246. package/dist/agent-operations/scene-review.js +106 -0
  247. package/dist/agent-operations/scene-view.d.ts +165 -0
  248. package/dist/agent-operations/scene-view.d.ts.map +1 -0
  249. package/dist/agent-operations/scene-view.js +916 -0
  250. package/dist/agent-operations/search-assets.d.ts +14 -0
  251. package/dist/agent-operations/search-assets.d.ts.map +1 -0
  252. package/dist/agent-operations/search-assets.js +43 -0
  253. package/dist/agent-operations/search-materials.d.ts +18 -0
  254. package/dist/agent-operations/search-materials.d.ts.map +1 -0
  255. package/dist/agent-operations/search-materials.js +165 -0
  256. package/dist/agent-operations/set-checkpoint.d.ts +9 -0
  257. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
  258. package/dist/agent-operations/set-checkpoint.js +31 -0
  259. package/dist/agent-operations/set-ground-level.d.ts +12 -0
  260. package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
  261. package/dist/agent-operations/set-ground-level.js +61 -0
  262. package/dist/agent-operations/site.d.ts +21 -0
  263. package/dist/agent-operations/site.d.ts.map +1 -0
  264. package/dist/agent-operations/site.js +123 -0
  265. package/dist/agent-operations/stairs.d.ts +5 -0
  266. package/dist/agent-operations/stairs.d.ts.map +1 -0
  267. package/dist/agent-operations/stairs.js +70 -0
  268. package/dist/agent-operations/types.d.ts +118 -0
  269. package/dist/agent-operations/types.d.ts.map +1 -0
  270. package/dist/agent-operations/types.js +1 -0
  271. package/dist/agent-operations/verify-scene.d.ts +84 -0
  272. package/dist/agent-operations/verify-scene.d.ts.map +1 -0
  273. package/dist/agent-operations/verify-scene.js +548 -0
  274. package/dist/agent-operations/wall-face-script.d.ts +28 -0
  275. package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
  276. package/dist/agent-operations/wall-face-script.js +62 -0
  277. package/dist/agent-operations/wall-object-observations.d.ts +41 -0
  278. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
  279. package/dist/agent-operations/wall-object-observations.js +249 -0
  280. package/dist/agent-operations/wall-opening.d.ts +65 -0
  281. package/dist/agent-operations/wall-opening.d.ts.map +1 -0
  282. package/dist/agent-operations/wall-opening.js +55 -0
  283. package/dist/agent-operations/wall-skirting.d.ts +24 -0
  284. package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
  285. package/dist/agent-operations/wall-skirting.js +85 -0
  286. package/dist/agent-tools/achieved.d.ts +9 -0
  287. package/dist/agent-tools/achieved.d.ts.map +1 -0
  288. package/dist/agent-tools/achieved.js +8 -0
  289. package/dist/agent-tools/add-object.d.ts +47 -0
  290. package/dist/agent-tools/add-object.d.ts.map +1 -0
  291. package/dist/agent-tools/add-object.js +92 -0
  292. package/dist/agent-tools/assets.d.ts +21 -0
  293. package/dist/agent-tools/assets.d.ts.map +1 -0
  294. package/dist/agent-tools/assets.js +30 -0
  295. package/dist/agent-tools/author-scene.d.ts +651 -0
  296. package/dist/agent-tools/author-scene.d.ts.map +1 -0
  297. package/dist/agent-tools/author-scene.js +252 -0
  298. package/dist/agent-tools/batch.d.ts +25 -0
  299. package/dist/agent-tools/batch.d.ts.map +1 -0
  300. package/dist/agent-tools/batch.js +61 -0
  301. package/dist/agent-tools/checkpoints.d.ts +13 -0
  302. package/dist/agent-tools/checkpoints.d.ts.map +1 -0
  303. package/dist/agent-tools/checkpoints.js +16 -0
  304. package/dist/agent-tools/clear-scene.d.ts +10 -0
  305. package/dist/agent-tools/clear-scene.d.ts.map +1 -0
  306. package/dist/agent-tools/clear-scene.js +9 -0
  307. package/dist/agent-tools/collections.d.ts +35 -0
  308. package/dist/agent-tools/collections.d.ts.map +1 -0
  309. package/dist/agent-tools/collections.js +31 -0
  310. package/dist/agent-tools/columns.d.ts +44 -0
  311. package/dist/agent-tools/columns.d.ts.map +1 -0
  312. package/dist/agent-tools/columns.js +59 -0
  313. package/dist/agent-tools/contract.d.ts +68 -0
  314. package/dist/agent-tools/contract.d.ts.map +1 -0
  315. package/dist/agent-tools/contract.js +1 -0
  316. package/dist/agent-tools/corner-window.d.ts +46 -0
  317. package/dist/agent-tools/corner-window.d.ts.map +1 -0
  318. package/dist/agent-tools/corner-window.js +47 -0
  319. package/dist/agent-tools/create-room.d.ts +64 -0
  320. package/dist/agent-tools/create-room.d.ts.map +1 -0
  321. package/dist/agent-tools/create-room.js +97 -0
  322. package/dist/agent-tools/design-brief.d.ts +408 -0
  323. package/dist/agent-tools/design-brief.d.ts.map +1 -0
  324. package/dist/agent-tools/design-brief.js +149 -0
  325. package/dist/agent-tools/designs.d.ts +34 -0
  326. package/dist/agent-tools/designs.d.ts.map +1 -0
  327. package/dist/agent-tools/designs.js +50 -0
  328. package/dist/agent-tools/fences.d.ts +28 -0
  329. package/dist/agent-tools/fences.d.ts.map +1 -0
  330. package/dist/agent-tools/fences.js +31 -0
  331. package/dist/agent-tools/find-by-type.d.ts +18 -0
  332. package/dist/agent-tools/find-by-type.d.ts.map +1 -0
  333. package/dist/agent-tools/find-by-type.js +35 -0
  334. package/dist/agent-tools/furnish-room.d.ts +28 -0
  335. package/dist/agent-tools/furnish-room.d.ts.map +1 -0
  336. package/dist/agent-tools/furnish-room.js +37 -0
  337. package/dist/agent-tools/hosted-services.d.ts +438 -0
  338. package/dist/agent-tools/hosted-services.d.ts.map +1 -0
  339. package/dist/agent-tools/hosted-services.js +181 -0
  340. package/dist/agent-tools/index.d.ts +1543 -0
  341. package/dist/agent-tools/index.d.ts.map +1 -0
  342. package/dist/agent-tools/index.js +126 -0
  343. package/dist/agent-tools/levels.d.ts +80 -0
  344. package/dist/agent-tools/levels.d.ts.map +1 -0
  345. package/dist/agent-tools/levels.js +87 -0
  346. package/dist/agent-tools/measurement.d.ts +55 -0
  347. package/dist/agent-tools/measurement.d.ts.map +1 -0
  348. package/dist/agent-tools/measurement.js +144 -0
  349. package/dist/agent-tools/merge-windows.d.ts +10 -0
  350. package/dist/agent-tools/merge-windows.d.ts.map +1 -0
  351. package/dist/agent-tools/merge-windows.js +12 -0
  352. package/dist/agent-tools/node-id.d.ts +3 -0
  353. package/dist/agent-tools/node-id.d.ts.map +1 -0
  354. package/dist/agent-tools/node-id.js +2 -0
  355. package/dist/agent-tools/nodes.d.ts +17 -0
  356. package/dist/agent-tools/nodes.d.ts.map +1 -0
  357. package/dist/agent-tools/nodes.js +13 -0
  358. package/dist/agent-tools/notation-inventory.d.ts +16 -0
  359. package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
  360. package/dist/agent-tools/notation-inventory.js +105 -0
  361. package/dist/agent-tools/paint.d.ts +46 -0
  362. package/dist/agent-tools/paint.d.ts.map +1 -0
  363. package/dist/agent-tools/paint.js +29 -0
  364. package/dist/agent-tools/photo-elevation.d.ts +32 -0
  365. package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
  366. package/dist/agent-tools/photo-elevation.js +73 -0
  367. package/dist/agent-tools/place-in-room.d.ts +35 -0
  368. package/dist/agent-tools/place-in-room.d.ts.map +1 -0
  369. package/dist/agent-tools/place-in-room.js +61 -0
  370. package/dist/agent-tools/place-items.d.ts +19 -0
  371. package/dist/agent-tools/place-items.d.ts.map +1 -0
  372. package/dist/agent-tools/place-items.js +29 -0
  373. package/dist/agent-tools/project-files.d.ts +189 -0
  374. package/dist/agent-tools/project-files.d.ts.map +1 -0
  375. package/dist/agent-tools/project-files.js +99 -0
  376. package/dist/agent-tools/refusal.d.ts +20 -0
  377. package/dist/agent-tools/refusal.d.ts.map +1 -0
  378. package/dist/agent-tools/refusal.js +29 -0
  379. package/dist/agent-tools/retired.d.ts +21 -0
  380. package/dist/agent-tools/retired.d.ts.map +1 -0
  381. package/dist/agent-tools/retired.js +29 -0
  382. package/dist/agent-tools/roofs.d.ts +100 -0
  383. package/dist/agent-tools/roofs.d.ts.map +1 -0
  384. package/dist/agent-tools/roofs.js +96 -0
  385. package/dist/agent-tools/room-structure.d.ts +446 -0
  386. package/dist/agent-tools/room-structure.d.ts.map +1 -0
  387. package/dist/agent-tools/room-structure.js +210 -0
  388. package/dist/agent-tools/search-materials.d.ts +39 -0
  389. package/dist/agent-tools/search-materials.d.ts.map +1 -0
  390. package/dist/agent-tools/search-materials.js +31 -0
  391. package/dist/agent-tools/site.d.ts +27 -0
  392. package/dist/agent-tools/site.d.ts.map +1 -0
  393. package/dist/agent-tools/site.js +40 -0
  394. package/dist/agent-tools/sources.d.ts +12 -0
  395. package/dist/agent-tools/sources.d.ts.map +1 -0
  396. package/dist/agent-tools/sources.js +11 -0
  397. package/dist/agent-tools/stairs.d.ts +106 -0
  398. package/dist/agent-tools/stairs.d.ts.map +1 -0
  399. package/dist/agent-tools/stairs.js +146 -0
  400. package/dist/agent-tools/verify-scene.d.ts +13 -0
  401. package/dist/agent-tools/verify-scene.d.ts.map +1 -0
  402. package/dist/agent-tools/verify-scene.js +21 -0
  403. package/dist/agent-tools/view-scene.d.ts +81 -0
  404. package/dist/agent-tools/view-scene.d.ts.map +1 -0
  405. package/dist/agent-tools/view-scene.js +123 -0
  406. package/dist/agent-tools/wall-openings.d.ts +167 -0
  407. package/dist/agent-tools/wall-openings.d.ts.map +1 -0
  408. package/dist/agent-tools/wall-openings.js +148 -0
  409. package/dist/agent-tools/walls.d.ts +21 -0
  410. package/dist/agent-tools/walls.d.ts.map +1 -0
  411. package/dist/agent-tools/walls.js +35 -0
  412. package/dist/agent-tools/write-target.d.ts +12 -0
  413. package/dist/agent-tools/write-target.d.ts.map +1 -0
  414. package/dist/agent-tools/write-target.js +10 -0
  415. package/dist/building/__fixtures__/wall-opening-cases.d.ts +940 -0
  416. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -0
  417. package/dist/building/__fixtures__/wall-opening-cases.js +367 -0
  418. package/dist/building/corner-window.d.ts +56 -0
  419. package/dist/building/corner-window.d.ts.map +1 -0
  420. package/dist/building/corner-window.js +179 -0
  421. package/dist/building/door-types.d.ts +22 -0
  422. package/dist/building/door-types.d.ts.map +1 -0
  423. package/dist/building/door-types.js +167 -0
  424. package/dist/building/floor-item-fit.d.ts +38 -0
  425. package/dist/building/floor-item-fit.d.ts.map +1 -0
  426. package/dist/building/floor-item-fit.js +47 -0
  427. package/dist/building/ground-level.d.ts +26 -0
  428. package/dist/building/ground-level.d.ts.map +1 -0
  429. package/dist/building/ground-level.js +58 -0
  430. package/dist/building/index.d.ts +12 -0
  431. package/dist/building/index.d.ts.map +1 -0
  432. package/dist/building/index.js +11 -0
  433. package/dist/building/level-duplication.d.ts +9842 -0
  434. package/dist/building/level-duplication.d.ts.map +1 -0
  435. package/dist/building/level-duplication.js +328 -0
  436. package/dist/building/level-insertion.d.ts +55 -0
  437. package/dist/building/level-insertion.d.ts.map +1 -0
  438. package/dist/building/level-insertion.js +35 -0
  439. package/dist/building/merge-windows.d.ts +58 -0
  440. package/dist/building/merge-windows.d.ts.map +1 -0
  441. package/dist/building/merge-windows.js +189 -0
  442. package/dist/building/opening-style-presets.d.ts +46 -0
  443. package/dist/building/opening-style-presets.d.ts.map +1 -0
  444. package/dist/building/opening-style-presets.js +195 -0
  445. package/dist/building/photo-elevation.d.ts +125 -0
  446. package/dist/building/photo-elevation.d.ts.map +1 -0
  447. package/dist/building/photo-elevation.js +404 -0
  448. package/dist/building/wall-gaps.d.ts +13 -0
  449. package/dist/building/wall-gaps.d.ts.map +1 -0
  450. package/dist/building/wall-gaps.js +158 -0
  451. package/dist/building/wall-openings.d.ts +480 -0
  452. package/dist/building/wall-openings.d.ts.map +1 -0
  453. package/dist/building/wall-openings.js +259 -0
  454. package/dist/building/window-types.d.ts +17 -0
  455. package/dist/building/window-types.d.ts.map +1 -0
  456. package/dist/building/window-types.js +31 -0
  457. package/dist/capture/schema.d.ts +22 -22
  458. package/dist/capture/source.d.ts.map +1 -1
  459. package/dist/capture/source.js +1 -1
  460. package/dist/commands/structure/apply-zone-transform.d.ts +23 -0
  461. package/dist/commands/structure/apply-zone-transform.d.ts.map +1 -0
  462. package/dist/commands/structure/apply-zone-transform.js +55 -0
  463. package/dist/commands/structure/create-mezzanine.d.ts +12 -0
  464. package/dist/commands/structure/create-mezzanine.d.ts.map +1 -0
  465. package/dist/commands/structure/create-mezzanine.js +46 -0
  466. package/dist/commands/structure/create-zone.d.ts +43 -0
  467. package/dist/commands/structure/create-zone.d.ts.map +1 -0
  468. package/dist/commands/structure/create-zone.js +175 -0
  469. package/dist/commands/structure/delete-zone.d.ts +51 -0
  470. package/dist/commands/structure/delete-zone.d.ts.map +1 -0
  471. package/dist/commands/structure/delete-zone.js +354 -0
  472. package/dist/commands/structure/divide-zone.d.ts +38 -0
  473. package/dist/commands/structure/divide-zone.d.ts.map +1 -0
  474. package/dist/commands/structure/divide-zone.js +186 -0
  475. package/dist/commands/structure/duplicate-zone.d.ts +7 -0
  476. package/dist/commands/structure/duplicate-zone.d.ts.map +1 -0
  477. package/dist/commands/structure/duplicate-zone.js +21 -0
  478. package/dist/commands/structure/floor-opening.d.ts +36 -0
  479. package/dist/commands/structure/floor-opening.d.ts.map +1 -0
  480. package/dist/commands/structure/floor-opening.js +124 -0
  481. package/dist/commands/structure/index.d.ts +22 -0
  482. package/dist/commands/structure/index.d.ts.map +1 -0
  483. package/dist/commands/structure/index.js +20 -0
  484. package/dist/commands/structure/lock-outside-faces.d.ts +12 -0
  485. package/dist/commands/structure/lock-outside-faces.d.ts.map +1 -0
  486. package/dist/commands/structure/lock-outside-faces.js +32 -0
  487. package/dist/commands/structure/merge-zones.d.ts +5 -0
  488. package/dist/commands/structure/merge-zones.d.ts.map +1 -0
  489. package/dist/commands/structure/merge-zones.js +22 -0
  490. package/dist/commands/structure/mezzanine-content.d.ts +16 -0
  491. package/dist/commands/structure/mezzanine-content.d.ts.map +1 -0
  492. package/dist/commands/structure/mezzanine-content.js +109 -0
  493. package/dist/commands/structure/plan-mezzanine-stair.d.ts +7 -0
  494. package/dist/commands/structure/plan-mezzanine-stair.d.ts.map +1 -0
  495. package/dist/commands/structure/plan-mezzanine-stair.js +127 -0
  496. package/dist/commands/structure/plan-wall-deletion.d.ts +9 -0
  497. package/dist/commands/structure/plan-wall-deletion.d.ts.map +1 -0
  498. package/dist/commands/structure/plan-wall-deletion.js +151 -0
  499. package/dist/commands/structure/rebase-floor-reference.d.ts +7 -0
  500. package/dist/commands/structure/rebase-floor-reference.d.ts.map +1 -0
  501. package/dist/commands/structure/rebase-floor-reference.js +90 -0
  502. package/dist/commands/structure/resize-mezzanine.d.ts +8 -0
  503. package/dist/commands/structure/resize-mezzanine.d.ts.map +1 -0
  504. package/dist/commands/structure/resize-mezzanine.js +43 -0
  505. package/dist/commands/structure/rotate-zone.d.ts +8 -0
  506. package/dist/commands/structure/rotate-zone.d.ts.map +1 -0
  507. package/dist/commands/structure/rotate-zone.js +28 -0
  508. package/dist/commands/structure/set-floor-foundation.d.ts +62 -0
  509. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -0
  510. package/dist/commands/structure/set-floor-foundation.js +162 -0
  511. package/dist/commands/structure/set-room-floor-construction.d.ts +8 -0
  512. package/dist/commands/structure/set-room-floor-construction.d.ts.map +1 -0
  513. package/dist/commands/structure/set-room-floor-construction.js +72 -0
  514. package/dist/commands/structure/set-wall-geometry.d.ts +10 -0
  515. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -0
  516. package/dist/commands/structure/set-wall-geometry.js +52 -0
  517. package/dist/commands/structure/set-zone-edges.d.ts +14 -0
  518. package/dist/commands/structure/set-zone-edges.d.ts.map +1 -0
  519. package/dist/commands/structure/set-zone-edges.js +143 -0
  520. package/dist/commands/structure/set-zone-intent.d.ts +43 -0
  521. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -0
  522. package/dist/commands/structure/set-zone-intent.js +144 -0
  523. package/dist/commands/structure/shared.d.ts +4941 -0
  524. package/dist/commands/structure/shared.d.ts.map +1 -0
  525. package/dist/commands/structure/shared.js +102 -0
  526. package/dist/commands/structure/transform-zone.d.ts +23 -0
  527. package/dist/commands/structure/transform-zone.d.ts.map +1 -0
  528. package/dist/commands/structure/transform-zone.js +472 -0
  529. package/dist/commands/structure/validate-mezzanine.d.ts +5 -0
  530. package/dist/commands/structure/validate-mezzanine.d.ts.map +1 -0
  531. package/dist/commands/structure/validate-mezzanine.js +46 -0
  532. package/dist/commands/structure/zone-crossings.d.ts +8 -0
  533. package/dist/commands/structure/zone-crossings.d.ts.map +1 -0
  534. package/dist/commands/structure/zone-crossings.js +162 -0
  535. package/dist/commands/structure/zone-drop.d.ts +4 -0
  536. package/dist/commands/structure/zone-drop.d.ts.map +1 -0
  537. package/dist/commands/structure/zone-drop.js +68 -0
  538. package/dist/commands/structure/zone-insertion.d.ts +4 -0
  539. package/dist/commands/structure/zone-insertion.d.ts.map +1 -0
  540. package/dist/commands/structure/zone-insertion.js +200 -0
  541. package/dist/commands/structure/zone-transform-content.d.ts +6 -0
  542. package/dist/commands/structure/zone-transform-content.d.ts.map +1 -0
  543. package/dist/commands/structure/zone-transform-content.js +117 -0
  544. package/dist/commands/structure/zone-wall-merge.d.ts +5792 -0
  545. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -0
  546. package/dist/commands/structure/zone-wall-merge.js +135 -0
  547. package/dist/contracts/reference-discovery.d.ts +18 -0
  548. package/dist/contracts/reference-discovery.d.ts.map +1 -0
  549. package/dist/contracts/reference-discovery.js +100 -0
  550. package/dist/contracts/reference-inventory.d.ts +44 -0
  551. package/dist/contracts/reference-inventory.d.ts.map +1 -0
  552. package/dist/contracts/reference-inventory.js +952 -0
  553. package/dist/events/bus.d.ts +90 -10
  554. package/dist/events/bus.d.ts.map +1 -1
  555. package/dist/events/capture-sessions.d.ts +5 -0
  556. package/dist/events/capture-sessions.d.ts.map +1 -0
  557. package/dist/events/capture-sessions.js +31 -0
  558. package/dist/hooks/scene-registry/item-clip-registry.d.ts +6 -3
  559. package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -1
  560. package/dist/hooks/scene-registry/item-clip-registry.js +2 -1
  561. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  562. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  563. package/dist/hooks/spatial-grid/floor-placed-elevation.js +15 -1
  564. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +4 -4
  565. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  566. package/dist/hooks/spatial-grid/spatial-grid-manager.js +56 -71
  567. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3948 -2034
  568. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  569. package/dist/hooks/spatial-grid/spatial-grid-sync.js +86 -83
  570. package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
  571. package/dist/hooks/spatial-grid/support-host-patch.d.ts +1 -0
  572. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  573. package/dist/hooks/spatial-grid/support-host-patch.js +21 -5
  574. package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
  575. package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
  576. package/dist/index.d.ts +109 -14
  577. package/dist/index.d.ts.map +1 -1
  578. package/dist/index.js +103 -12
  579. package/dist/lib/__bench__/near-linear-walls.d.ts +2 -0
  580. package/dist/lib/__bench__/near-linear-walls.d.ts.map +1 -0
  581. package/dist/lib/__bench__/near-linear-walls.js +24 -0
  582. package/dist/lib/__bench__/structure-preview.bench.d.ts +2 -0
  583. package/dist/lib/__bench__/structure-preview.bench.d.ts.map +1 -0
  584. package/dist/lib/__bench__/structure-preview.bench.js +72 -0
  585. package/dist/lib/__fixtures__/mezzanine.d.ts +15636 -0
  586. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -0
  587. package/dist/lib/__fixtures__/mezzanine.js +43 -0
  588. package/dist/lib/absorb-wall-separators.d.ts +4912 -0
  589. package/dist/lib/absorb-wall-separators.d.ts.map +1 -0
  590. package/dist/lib/absorb-wall-separators.js +65 -0
  591. package/dist/lib/angle-accumulator.d.ts +3 -0
  592. package/dist/lib/angle-accumulator.d.ts.map +1 -0
  593. package/dist/lib/angle-accumulator.js +13 -0
  594. package/dist/lib/artifact-store.d.ts +31 -0
  595. package/dist/lib/artifact-store.d.ts.map +1 -0
  596. package/dist/lib/artifact-store.js +42 -0
  597. package/dist/lib/assembly-stack.d.ts +54 -0
  598. package/dist/lib/assembly-stack.d.ts.map +1 -0
  599. package/dist/lib/assembly-stack.js +52 -0
  600. package/dist/lib/asset-storage.d.ts.map +1 -1
  601. package/dist/lib/asset-storage.js +3 -0
  602. package/dist/lib/below-grade-footprints.d.ts +65 -0
  603. package/dist/lib/below-grade-footprints.d.ts.map +1 -0
  604. package/dist/lib/below-grade-footprints.js +181 -0
  605. package/dist/lib/building-footprint.d.ts +33 -0
  606. package/dist/lib/building-footprint.d.ts.map +1 -0
  607. package/dist/lib/building-footprint.js +89 -0
  608. package/dist/lib/canonical-opening-ring.d.ts +3 -0
  609. package/dist/lib/canonical-opening-ring.d.ts.map +1 -0
  610. package/dist/lib/canonical-opening-ring.js +14 -0
  611. package/dist/lib/ceiling-children.d.ts +8 -0
  612. package/dist/lib/ceiling-children.d.ts.map +1 -0
  613. package/dist/lib/ceiling-children.js +36 -0
  614. package/dist/lib/ceiling-surface.d.ts +40 -0
  615. package/dist/lib/ceiling-surface.d.ts.map +1 -0
  616. package/dist/lib/ceiling-surface.js +65 -0
  617. package/dist/lib/corner-pair.d.ts +1129 -0
  618. package/dist/lib/corner-pair.d.ts.map +1 -0
  619. package/dist/lib/corner-pair.js +130 -0
  620. package/dist/lib/corner-snap.d.ts +54 -0
  621. package/dist/lib/corner-snap.d.ts.map +1 -0
  622. package/dist/lib/corner-snap.js +125 -0
  623. package/dist/lib/critically-damped.d.ts +11 -0
  624. package/dist/lib/critically-damped.d.ts.map +1 -0
  625. package/dist/lib/critically-damped.js +14 -0
  626. package/dist/lib/cutter-host.d.ts +5 -0
  627. package/dist/lib/cutter-host.d.ts.map +1 -0
  628. package/dist/lib/cutter-host.js +30 -0
  629. package/dist/lib/deepest-drawn.d.ts +18 -0
  630. package/dist/lib/deepest-drawn.d.ts.map +1 -0
  631. package/dist/lib/deepest-drawn.js +65 -0
  632. package/dist/lib/door-operation.d.ts +1 -1
  633. package/dist/lib/exterior-wall-loops.d.ts +17 -0
  634. package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
  635. package/dist/lib/exterior-wall-loops.js +334 -0
  636. package/dist/lib/finish-script.d.ts +61 -0
  637. package/dist/lib/finish-script.d.ts.map +1 -0
  638. package/dist/lib/finish-script.js +86 -0
  639. package/dist/lib/floor-construction-lift.d.ts +4 -0
  640. package/dist/lib/floor-construction-lift.d.ts.map +1 -0
  641. package/dist/lib/floor-construction-lift.js +54 -0
  642. package/dist/lib/floor-footprint-key.d.ts +3 -0
  643. package/dist/lib/floor-footprint-key.d.ts.map +1 -0
  644. package/dist/lib/floor-footprint-key.js +9 -0
  645. package/dist/lib/floor-footprint-name.d.ts +11 -0
  646. package/dist/lib/floor-footprint-name.d.ts.map +1 -0
  647. package/dist/lib/floor-footprint-name.js +52 -0
  648. package/dist/lib/floor-foundation-datum.d.ts +31 -0
  649. package/dist/lib/floor-foundation-datum.d.ts.map +1 -0
  650. package/dist/lib/floor-foundation-datum.js +226 -0
  651. package/dist/lib/floor-foundation-stack.d.ts +16 -0
  652. package/dist/lib/floor-foundation-stack.d.ts.map +1 -0
  653. package/dist/lib/floor-foundation-stack.js +214 -0
  654. package/dist/lib/floor-intent-changes.d.ts +10 -0
  655. package/dist/lib/floor-intent-changes.d.ts.map +1 -0
  656. package/dist/lib/floor-intent-changes.js +461 -0
  657. package/dist/lib/floor-opening-footprints.d.ts +24 -0
  658. package/dist/lib/floor-opening-footprints.d.ts.map +1 -0
  659. package/dist/lib/floor-opening-footprints.js +127 -0
  660. package/dist/lib/floor-opening-intent.d.ts +16 -0
  661. package/dist/lib/floor-opening-intent.d.ts.map +1 -0
  662. package/dist/lib/floor-opening-intent.js +82 -0
  663. package/dist/lib/floor-plate-id.d.ts +5 -0
  664. package/dist/lib/floor-plate-id.d.ts.map +1 -0
  665. package/dist/lib/floor-plate-id.js +20 -0
  666. package/dist/lib/floor-plate-paint.d.ts +10 -0
  667. package/dist/lib/floor-plate-paint.d.ts.map +1 -0
  668. package/dist/lib/floor-plate-paint.js +31 -0
  669. package/dist/lib/floor-plates.d.ts +211 -0
  670. package/dist/lib/floor-plates.d.ts.map +1 -0
  671. package/dist/lib/floor-plates.js +729 -0
  672. package/dist/lib/floor-room-faces.d.ts +5 -0
  673. package/dist/lib/floor-room-faces.d.ts.map +1 -0
  674. package/dist/lib/floor-room-faces.js +29 -0
  675. package/dist/lib/floor-script.d.ts +24 -0
  676. package/dist/lib/floor-script.d.ts.map +1 -0
  677. package/dist/lib/floor-script.js +51 -0
  678. package/dist/lib/floor-step-finish.d.ts +49 -0
  679. package/dist/lib/floor-step-finish.d.ts.map +1 -0
  680. package/dist/lib/floor-step-finish.js +128 -0
  681. package/dist/lib/foundation-construction.d.ts +73 -0
  682. package/dist/lib/foundation-construction.d.ts.map +1 -0
  683. package/dist/lib/foundation-construction.js +242 -0
  684. package/dist/lib/foundation-standard.d.ts +30 -0
  685. package/dist/lib/foundation-standard.d.ts.map +1 -0
  686. package/dist/lib/foundation-standard.js +30 -0
  687. package/dist/lib/foundation-wall.d.ts +36 -0
  688. package/dist/lib/foundation-wall.d.ts.map +1 -0
  689. package/dist/lib/foundation-wall.js +66 -0
  690. package/dist/lib/generic-foundation.d.ts +40 -0
  691. package/dist/lib/generic-foundation.d.ts.map +1 -0
  692. package/dist/lib/generic-foundation.js +200 -0
  693. package/dist/lib/geometry-script-node.d.ts +111 -0
  694. package/dist/lib/geometry-script-node.d.ts.map +1 -0
  695. package/dist/lib/geometry-script-node.js +173 -0
  696. package/dist/lib/geometry-surfaces.d.ts +61 -0
  697. package/dist/lib/geometry-surfaces.d.ts.map +1 -0
  698. package/dist/lib/geometry-surfaces.js +156 -0
  699. package/dist/lib/grade-standing.d.ts +38 -0
  700. package/dist/lib/grade-standing.d.ts.map +1 -0
  701. package/dist/lib/grade-standing.js +137 -0
  702. package/dist/lib/ground-level.d.ts +20 -0
  703. package/dist/lib/ground-level.d.ts.map +1 -0
  704. package/dist/lib/ground-level.js +49 -0
  705. package/dist/lib/ground-over-part.d.ts +13 -0
  706. package/dist/lib/ground-over-part.d.ts.map +1 -0
  707. package/dist/lib/ground-over-part.js +94 -0
  708. package/dist/lib/ground-seat.d.ts +47 -0
  709. package/dist/lib/ground-seat.d.ts.map +1 -0
  710. package/dist/lib/ground-seat.js +61 -0
  711. package/dist/lib/ground-window.d.ts +39 -0
  712. package/dist/lib/ground-window.d.ts.map +1 -0
  713. package/dist/lib/ground-window.js +147 -0
  714. package/dist/lib/item-slab-support.d.ts +14 -0
  715. package/dist/lib/item-slab-support.d.ts.map +1 -0
  716. package/dist/lib/item-slab-support.js +40 -0
  717. package/dist/lib/level-footprints.d.ts +23 -0
  718. package/dist/lib/level-footprints.d.ts.map +1 -0
  719. package/dist/lib/level-footprints.js +398 -0
  720. package/dist/lib/level-name.d.ts +7 -0
  721. package/dist/lib/level-name.d.ts.map +1 -1
  722. package/dist/lib/level-name.js +11 -3
  723. package/dist/lib/new-zone.d.ts +10 -0
  724. package/dist/lib/new-zone.d.ts.map +1 -0
  725. package/dist/lib/new-zone.js +10 -0
  726. package/dist/lib/node-ancestry.d.ts +30 -0
  727. package/dist/lib/node-ancestry.d.ts.map +1 -0
  728. package/dist/lib/node-ancestry.js +76 -0
  729. package/dist/lib/object-cuts.d.ts +11 -0
  730. package/dist/lib/object-cuts.d.ts.map +1 -0
  731. package/dist/lib/object-cuts.js +63 -0
  732. package/dist/lib/opening-floor-datum.d.ts +24 -0
  733. package/dist/lib/opening-floor-datum.d.ts.map +1 -0
  734. package/dist/lib/opening-floor-datum.js +144 -0
  735. package/dist/lib/own-floor-intent.d.ts +15 -0
  736. package/dist/lib/own-floor-intent.d.ts.map +1 -0
  737. package/dist/lib/own-floor-intent.js +201 -0
  738. package/dist/lib/plate-reference.d.ts +3 -0
  739. package/dist/lib/plate-reference.d.ts.map +1 -0
  740. package/dist/lib/plate-reference.js +91 -0
  741. package/dist/lib/plate-surface.d.ts +120 -0
  742. package/dist/lib/plate-surface.d.ts.map +1 -0
  743. package/dist/lib/plate-surface.js +727 -0
  744. package/dist/lib/point-ask.d.ts +9 -0
  745. package/dist/lib/point-ask.d.ts.map +1 -0
  746. package/dist/lib/point-ask.js +36 -0
  747. package/dist/lib/polygon-boolean.d.ts +17 -0
  748. package/dist/lib/polygon-boolean.d.ts.map +1 -0
  749. package/dist/lib/polygon-boolean.js +195 -0
  750. package/dist/lib/polygon-label.d.ts +7 -0
  751. package/dist/lib/polygon-label.d.ts.map +1 -0
  752. package/dist/lib/polygon-label.js +94 -0
  753. package/dist/lib/room-drawn-floor.d.ts +29 -0
  754. package/dist/lib/room-drawn-floor.d.ts.map +1 -0
  755. package/dist/lib/room-drawn-floor.js +88 -0
  756. package/dist/lib/room-floor-choices.d.ts +11 -0
  757. package/dist/lib/room-floor-choices.d.ts.map +1 -0
  758. package/dist/lib/room-floor-choices.js +60 -0
  759. package/dist/lib/room-floor-feasibility.d.ts +25 -0
  760. package/dist/lib/room-floor-feasibility.d.ts.map +1 -0
  761. package/dist/lib/room-floor-feasibility.js +293 -0
  762. package/dist/lib/room-floor-plate.d.ts +3 -0
  763. package/dist/lib/room-floor-plate.d.ts.map +1 -0
  764. package/dist/lib/room-floor-plate.js +4 -0
  765. package/dist/lib/room-graph.d.ts +79 -0
  766. package/dist/lib/room-graph.d.ts.map +1 -0
  767. package/dist/lib/room-graph.js +1267 -0
  768. package/dist/lib/room-name.d.ts +12 -0
  769. package/dist/lib/room-name.d.ts.map +1 -0
  770. package/dist/lib/room-name.js +24 -0
  771. package/dist/lib/room-topology-index.d.ts +53 -5
  772. package/dist/lib/room-topology-index.d.ts.map +1 -1
  773. package/dist/lib/room-topology-index.js +176 -30
  774. package/dist/lib/room-vertical-placement.d.ts +12 -0
  775. package/dist/lib/room-vertical-placement.d.ts.map +1 -0
  776. package/dist/lib/room-vertical-placement.js +28 -0
  777. package/dist/lib/room-zone-adoption.d.ts +74 -0
  778. package/dist/lib/room-zone-adoption.d.ts.map +1 -0
  779. package/dist/lib/room-zone-adoption.js +150 -0
  780. package/dist/lib/script-inputs-key.d.ts +3 -0
  781. package/dist/lib/script-inputs-key.d.ts.map +1 -0
  782. package/dist/lib/script-inputs-key.js +13 -0
  783. package/dist/lib/setback-envelope.d.ts +163 -0
  784. package/dist/lib/setback-envelope.d.ts.map +1 -0
  785. package/dist/lib/setback-envelope.js +822 -0
  786. package/dist/lib/site-flatwork.d.ts +11 -0
  787. package/dist/lib/site-flatwork.d.ts.map +1 -0
  788. package/dist/lib/site-flatwork.js +11 -0
  789. package/dist/lib/site-ground-height.d.ts +13 -0
  790. package/dist/lib/site-ground-height.d.ts.map +1 -0
  791. package/dist/lib/site-ground-height.js +16 -0
  792. package/dist/lib/site-placement.d.ts +362 -0
  793. package/dist/lib/site-placement.d.ts.map +1 -0
  794. package/dist/lib/site-placement.js +942 -0
  795. package/dist/lib/slab-polygon.d.ts.map +1 -1
  796. package/dist/lib/slab-polygon.js +33 -12
  797. package/dist/lib/slots.d.ts +20 -0
  798. package/dist/lib/slots.d.ts.map +1 -1
  799. package/dist/lib/slots.js +44 -0
  800. package/dist/lib/snap-ease.d.ts +20 -0
  801. package/dist/lib/snap-ease.d.ts.map +1 -0
  802. package/dist/lib/snap-ease.js +50 -0
  803. package/dist/lib/space-detection.d.ts +14 -94
  804. package/dist/lib/space-detection.d.ts.map +1 -1
  805. package/dist/lib/space-detection.js +244 -1616
  806. package/dist/lib/structure-commit.d.ts +38 -0
  807. package/dist/lib/structure-commit.d.ts.map +1 -0
  808. package/dist/lib/structure-commit.js +52 -0
  809. package/dist/lib/structure-kernel.d.ts +66 -0
  810. package/dist/lib/structure-kernel.d.ts.map +1 -0
  811. package/dist/lib/structure-kernel.js +737 -0
  812. package/dist/lib/structure-reconcile.d.ts +15 -0
  813. package/dist/lib/structure-reconcile.d.ts.map +1 -0
  814. package/dist/lib/structure-reconcile.js +218 -0
  815. package/dist/lib/surface-support-references.d.ts +4 -0
  816. package/dist/lib/surface-support-references.d.ts.map +1 -0
  817. package/dist/lib/surface-support-references.js +19 -0
  818. package/dist/lib/terrain-contours.d.ts +29 -0
  819. package/dist/lib/terrain-contours.d.ts.map +1 -0
  820. package/dist/lib/terrain-contours.js +199 -0
  821. package/dist/lib/terrain-source-persisted.d.ts +42 -0
  822. package/dist/lib/terrain-source-persisted.d.ts.map +1 -0
  823. package/dist/lib/terrain-source-persisted.js +68 -0
  824. package/dist/lib/terrain-source.d.ts +2 -40
  825. package/dist/lib/terrain-source.d.ts.map +1 -1
  826. package/dist/lib/terrain-source.js +2 -68
  827. package/dist/lib/terrain-support-query.d.ts +93 -0
  828. package/dist/lib/terrain-support-query.d.ts.map +1 -0
  829. package/dist/lib/terrain-support-query.js +187 -0
  830. package/dist/lib/terrain-support.d.ts +1 -77
  831. package/dist/lib/terrain-support.d.ts.map +1 -1
  832. package/dist/lib/terrain-support.js +3 -181
  833. package/dist/lib/unit-containment.js +2 -2
  834. package/dist/lib/unit-report.d.ts.map +1 -1
  835. package/dist/lib/unit-report.js +5 -4
  836. package/dist/lib/wall-face-script.d.ts +66 -0
  837. package/dist/lib/wall-face-script.d.ts.map +1 -0
  838. package/dist/lib/wall-face-script.js +235 -0
  839. package/dist/lib/zone-colors.d.ts +11 -0
  840. package/dist/lib/zone-colors.d.ts.map +1 -0
  841. package/dist/lib/zone-colors.js +32 -0
  842. package/dist/lib/zone-quantities.d.ts.map +1 -1
  843. package/dist/lib/zone-quantities.js +117 -228
  844. package/dist/material-kinds.d.ts +9 -0
  845. package/dist/material-kinds.d.ts.map +1 -0
  846. package/dist/material-kinds.js +30 -0
  847. package/dist/material-library.d.ts +13 -5
  848. package/dist/material-library.d.ts.map +1 -1
  849. package/dist/material-library.js +622 -27
  850. package/dist/node-slots/block.d.ts +7 -0
  851. package/dist/node-slots/block.d.ts.map +1 -0
  852. package/dist/node-slots/block.js +27 -0
  853. package/dist/node-slots/cabinet.d.ts +4 -0
  854. package/dist/node-slots/cabinet.d.ts.map +1 -0
  855. package/dist/node-slots/cabinet.js +24 -0
  856. package/dist/node-slots/ceiling.d.ts +6 -0
  857. package/dist/node-slots/ceiling.d.ts.map +1 -0
  858. package/dist/node-slots/ceiling.js +7 -0
  859. package/dist/node-slots/column.d.ts +9 -0
  860. package/dist/node-slots/column.d.ts.map +1 -0
  861. package/dist/node-slots/column.js +24 -0
  862. package/dist/node-slots/door.d.ts +9 -0
  863. package/dist/node-slots/door.d.ts.map +1 -0
  864. package/dist/node-slots/door.js +20 -0
  865. package/dist/node-slots/duct.d.ts +5 -0
  866. package/dist/node-slots/duct.d.ts.map +1 -0
  867. package/dist/node-slots/duct.js +5 -0
  868. package/dist/node-slots/elevator.d.ts +9 -0
  869. package/dist/node-slots/elevator.d.ts.map +1 -0
  870. package/dist/node-slots/elevator.js +17 -0
  871. package/dist/node-slots/fence.d.ts +10 -0
  872. package/dist/node-slots/fence.d.ts.map +1 -0
  873. package/dist/node-slots/fence.js +23 -0
  874. package/dist/node-slots/index.d.ts +26 -0
  875. package/dist/node-slots/index.d.ts.map +1 -0
  876. package/dist/node-slots/index.js +98 -0
  877. package/dist/node-slots/lean-to-extension.d.ts +5 -0
  878. package/dist/node-slots/lean-to-extension.d.ts.map +1 -0
  879. package/dist/node-slots/lean-to-extension.js +15 -0
  880. package/dist/node-slots/procedural-item.d.ts +4 -0
  881. package/dist/node-slots/procedural-item.d.ts.map +1 -0
  882. package/dist/node-slots/procedural-item.js +3 -0
  883. package/dist/node-slots/roof-accessories.d.ts +9 -0
  884. package/dist/node-slots/roof-accessories.d.ts.map +1 -0
  885. package/dist/node-slots/roof-accessories.js +34 -0
  886. package/dist/node-slots/roof.d.ts +5 -0
  887. package/dist/node-slots/roof.d.ts.map +1 -0
  888. package/dist/node-slots/roof.js +12 -0
  889. package/dist/node-slots/shelf.d.ts +9 -0
  890. package/dist/node-slots/shelf.d.ts.map +1 -0
  891. package/dist/node-slots/shelf.js +30 -0
  892. package/dist/node-slots/slab.d.ts +7 -0
  893. package/dist/node-slots/slab.d.ts.map +1 -0
  894. package/dist/node-slots/slab.js +21 -0
  895. package/dist/node-slots/stair.d.ts +10 -0
  896. package/dist/node-slots/stair.d.ts.map +1 -0
  897. package/dist/node-slots/stair.js +21 -0
  898. package/dist/node-slots/wall.d.ts +12 -0
  899. package/dist/node-slots/wall.d.ts.map +1 -0
  900. package/dist/node-slots/wall.js +55 -0
  901. package/dist/node-slots/window.d.ts +5 -0
  902. package/dist/node-slots/window.d.ts.map +1 -0
  903. package/dist/node-slots/window.js +11 -0
  904. package/dist/procedural-items/design-placement.d.ts +49 -0
  905. package/dist/procedural-items/design-placement.d.ts.map +1 -0
  906. package/dist/procedural-items/design-placement.js +129 -0
  907. package/dist/procedural-items/design.d.ts +261 -0
  908. package/dist/procedural-items/design.d.ts.map +1 -0
  909. package/dist/procedural-items/design.js +707 -0
  910. package/dist/procedural-items/fixtures.d.ts +515 -75
  911. package/dist/procedural-items/fixtures.d.ts.map +1 -1
  912. package/dist/procedural-items/index.d.ts +5 -0
  913. package/dist/procedural-items/index.d.ts.map +1 -1
  914. package/dist/procedural-items/index.js +5 -0
  915. package/dist/procedural-items/integration.d.ts +156 -35
  916. package/dist/procedural-items/integration.d.ts.map +1 -1
  917. package/dist/procedural-items/joints.d.ts +56 -0
  918. package/dist/procedural-items/joints.d.ts.map +1 -0
  919. package/dist/procedural-items/joints.js +251 -0
  920. package/dist/procedural-items/library-colors.d.ts +34 -22
  921. package/dist/procedural-items/library-colors.d.ts.map +1 -1
  922. package/dist/procedural-items/library-colors.js +37 -3
  923. package/dist/procedural-items/motion-controller.d.ts +29 -0
  924. package/dist/procedural-items/motion-controller.d.ts.map +1 -0
  925. package/dist/procedural-items/motion-controller.js +130 -0
  926. package/dist/procedural-items/node.d.ts +528 -62
  927. package/dist/procedural-items/node.d.ts.map +1 -1
  928. package/dist/procedural-items/query.d.ts +19 -2
  929. package/dist/procedural-items/query.d.ts.map +1 -1
  930. package/dist/procedural-items/query.js +78 -39
  931. package/dist/procedural-items/recipe.d.ts +260 -16
  932. package/dist/procedural-items/recipe.d.ts.map +1 -1
  933. package/dist/procedural-items/recipe.js +933 -61
  934. package/dist/procedural-items/section.d.ts +27 -0
  935. package/dist/procedural-items/section.d.ts.map +1 -0
  936. package/dist/procedural-items/section.js +237 -0
  937. package/dist/procedural-items/spatial.d.ts +21 -0
  938. package/dist/procedural-items/spatial.d.ts.map +1 -1
  939. package/dist/procedural-items/spatial.js +90 -0
  940. package/dist/registry/handles.d.ts +2 -0
  941. package/dist/registry/handles.d.ts.map +1 -1
  942. package/dist/registry/index.d.ts +6 -4
  943. package/dist/registry/index.d.ts.map +1 -1
  944. package/dist/registry/index.js +4 -2
  945. package/dist/registry/mechanism.d.ts +9 -0
  946. package/dist/registry/mechanism.d.ts.map +1 -0
  947. package/dist/registry/mechanism.js +21 -0
  948. package/dist/registry/registry.d.ts +6 -3
  949. package/dist/registry/registry.d.ts.map +1 -1
  950. package/dist/registry/registry.js +59 -22
  951. package/dist/registry/scene-api.d.ts +21 -0
  952. package/dist/registry/scene-api.d.ts.map +1 -1
  953. package/dist/registry/scene-api.js +29 -13
  954. package/dist/registry/subtree.d.ts +8 -0
  955. package/dist/registry/subtree.d.ts.map +1 -1
  956. package/dist/registry/subtree.js +55 -0
  957. package/dist/registry/types.d.ts +460 -12
  958. package/dist/registry/types.d.ts.map +1 -1
  959. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  960. package/dist/schema/__fixtures__/node-fixtures.js +2 -0
  961. package/dist/schema/assembly.d.ts +153 -0
  962. package/dist/schema/assembly.d.ts.map +1 -0
  963. package/dist/schema/assembly.js +155 -0
  964. package/dist/schema/asset-url.d.ts +2 -1
  965. package/dist/schema/asset-url.d.ts.map +1 -1
  966. package/dist/schema/asset-url.js +5 -2
  967. package/dist/schema/base.d.ts +28 -2
  968. package/dist/schema/base.d.ts.map +1 -1
  969. package/dist/schema/base.js +2 -0
  970. package/dist/schema/camera.d.ts +1 -1
  971. package/dist/schema/collection-templates.d.ts +46 -0
  972. package/dist/schema/collection-templates.d.ts.map +1 -0
  973. package/dist/schema/collection-templates.js +14 -0
  974. package/dist/schema/collections.d.ts +7 -0
  975. package/dist/schema/collections.d.ts.map +1 -1
  976. package/dist/schema/cut.d.ts +29 -0
  977. package/dist/schema/cut.d.ts.map +1 -0
  978. package/dist/schema/cut.js +50 -0
  979. package/dist/schema/geometry-metadata.d.ts +51 -0
  980. package/dist/schema/geometry-metadata.d.ts.map +1 -0
  981. package/dist/schema/geometry-metadata.js +57 -0
  982. package/dist/schema/geometry-source.d.ts +260 -0
  983. package/dist/schema/geometry-source.d.ts.map +1 -0
  984. package/dist/schema/geometry-source.js +144 -0
  985. package/dist/schema/index.d.ts +27 -12
  986. package/dist/schema/index.d.ts.map +1 -1
  987. package/dist/schema/index.js +29 -10
  988. package/dist/schema/material.d.ts +33 -33
  989. package/dist/schema/nodes/barrel-roof.d.ts +3 -0
  990. package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
  991. package/dist/schema/nodes/barrel-roof.js +11 -0
  992. package/dist/schema/nodes/block.d.ts +27 -1
  993. package/dist/schema/nodes/block.d.ts.map +1 -1
  994. package/dist/schema/nodes/block.js +1 -1
  995. package/dist/schema/nodes/box-vent.d.ts +32 -6
  996. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  997. package/dist/schema/nodes/building.d.ts +28 -1
  998. package/dist/schema/nodes/building.d.ts.map +1 -1
  999. package/dist/schema/nodes/building.js +2 -0
  1000. package/dist/schema/nodes/cabinet.d.ts +167 -114
  1001. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  1002. package/dist/schema/nodes/cabinet.js +1 -1
  1003. package/dist/schema/nodes/ceiling.d.ts +44 -7
  1004. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  1005. package/dist/schema/nodes/ceiling.js +8 -0
  1006. package/dist/schema/nodes/chimney.d.ts +42 -16
  1007. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  1008. package/dist/schema/nodes/column.d.ts +321 -187
  1009. package/dist/schema/nodes/column.d.ts.map +1 -1
  1010. package/dist/schema/nodes/column.js +4 -0
  1011. package/dist/schema/nodes/construction-dimension.d.ts +53 -27
  1012. package/dist/schema/nodes/construction-dimension.d.ts.map +1 -1
  1013. package/dist/schema/nodes/cupola.d.ts +34 -8
  1014. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  1015. package/dist/schema/nodes/curtain-wall.d.ts +21 -20
  1016. package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
  1017. package/dist/schema/nodes/curtain-wall.js +23 -0
  1018. package/dist/schema/nodes/door.d.ts +170 -44
  1019. package/dist/schema/nodes/door.d.ts.map +1 -1
  1020. package/dist/schema/nodes/door.js +37 -33
  1021. package/dist/schema/nodes/dormer.d.ts +56 -29
  1022. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  1023. package/dist/schema/nodes/downspout.d.ts +36 -10
  1024. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  1025. package/dist/schema/nodes/duct-fitting.d.ts +44 -18
  1026. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
  1027. package/dist/schema/nodes/duct-segment.d.ts +34 -8
  1028. package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
  1029. package/dist/schema/nodes/duct-terminal.d.ts +31 -5
  1030. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -1
  1031. package/dist/schema/nodes/elevator.d.ts +34 -8
  1032. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  1033. package/dist/schema/nodes/eyebrow-vent.d.ts +32 -6
  1034. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  1035. package/dist/schema/nodes/fence-feature.d.ts +141 -0
  1036. package/dist/schema/nodes/fence-feature.d.ts.map +1 -0
  1037. package/dist/schema/nodes/fence-feature.js +21 -0
  1038. package/dist/schema/nodes/fence-types.d.ts +32 -0
  1039. package/dist/schema/nodes/fence-types.d.ts.map +1 -0
  1040. package/dist/schema/nodes/fence-types.js +22 -0
  1041. package/dist/schema/nodes/fence.d.ts +175 -18
  1042. package/dist/schema/nodes/fence.d.ts.map +1 -1
  1043. package/dist/schema/nodes/fence.js +76 -7
  1044. package/dist/schema/nodes/floor-opening.d.ts +61 -0
  1045. package/dist/schema/nodes/floor-opening.d.ts.map +1 -0
  1046. package/dist/schema/nodes/floor-opening.js +17 -0
  1047. package/dist/schema/nodes/guide.d.ts +27 -1
  1048. package/dist/schema/nodes/guide.d.ts.map +1 -1
  1049. package/dist/schema/nodes/gutter.d.ts +33 -7
  1050. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  1051. package/dist/schema/nodes/gutter.js +6 -5
  1052. package/dist/schema/nodes/hvac-equipment.d.ts +32 -6
  1053. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -1
  1054. package/dist/schema/nodes/imported-mesh.d.ts +27 -1
  1055. package/dist/schema/nodes/imported-mesh.d.ts.map +1 -1
  1056. package/dist/schema/nodes/item.d.ts +169 -13
  1057. package/dist/schema/nodes/item.d.ts.map +1 -1
  1058. package/dist/schema/nodes/item.js +13 -0
  1059. package/dist/schema/nodes/lean-to-extension.d.ts +55 -29
  1060. package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -1
  1061. package/dist/schema/nodes/level.d.ts +28 -2
  1062. package/dist/schema/nodes/level.d.ts.map +1 -1
  1063. package/dist/schema/nodes/lineset.d.ts +27 -1
  1064. package/dist/schema/nodes/lineset.d.ts.map +1 -1
  1065. package/dist/schema/nodes/liquid-line.d.ts +27 -1
  1066. package/dist/schema/nodes/liquid-line.d.ts.map +1 -1
  1067. package/dist/schema/nodes/measurement.d.ts +27 -1
  1068. package/dist/schema/nodes/measurement.d.ts.map +1 -1
  1069. package/dist/schema/nodes/opening-types.d.ts +41 -0
  1070. package/dist/schema/nodes/opening-types.d.ts.map +1 -0
  1071. package/dist/schema/nodes/opening-types.js +48 -0
  1072. package/dist/schema/nodes/pipe-fitting.d.ts +34 -8
  1073. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
  1074. package/dist/schema/nodes/pipe-segment.d.ts +30 -4
  1075. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
  1076. package/dist/schema/nodes/pipe-trap.d.ts +28 -2
  1077. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -1
  1078. package/dist/schema/nodes/ridge-vent.d.ts +33 -7
  1079. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  1080. package/dist/schema/nodes/ridge-vent.js +3 -1
  1081. package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
  1082. package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
  1083. package/dist/schema/nodes/roof-glazing-config.js +34 -0
  1084. package/dist/schema/nodes/roof-glazing.d.ts +57 -0
  1085. package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
  1086. package/dist/schema/nodes/roof-glazing.js +514 -0
  1087. package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
  1088. package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
  1089. package/dist/schema/nodes/roof-segment-resize.js +21 -0
  1090. package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
  1091. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
  1092. package/dist/schema/nodes/roof-segment-shape.js +44 -0
  1093. package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
  1094. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  1095. package/dist/schema/nodes/roof-segment-walls.js +26 -1
  1096. package/dist/schema/nodes/roof-segment.d.ts +175 -40
  1097. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  1098. package/dist/schema/nodes/roof-segment.js +100 -20
  1099. package/dist/schema/nodes/roof-types.d.ts +14 -0
  1100. package/dist/schema/nodes/roof-types.d.ts.map +1 -0
  1101. package/dist/schema/nodes/roof-types.js +14 -0
  1102. package/dist/schema/nodes/roof.d.ts +122 -21
  1103. package/dist/schema/nodes/roof.d.ts.map +1 -1
  1104. package/dist/schema/nodes/roof.js +6 -0
  1105. package/dist/schema/nodes/scan.d.ts +27 -1
  1106. package/dist/schema/nodes/scan.d.ts.map +1 -1
  1107. package/dist/schema/nodes/separator.d.ts +50 -0
  1108. package/dist/schema/nodes/separator.d.ts.map +1 -0
  1109. package/dist/schema/nodes/separator.js +8 -0
  1110. package/dist/schema/nodes/shelf.d.ts +35 -9
  1111. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  1112. package/dist/schema/nodes/site-facts.d.ts +64 -0
  1113. package/dist/schema/nodes/site-facts.d.ts.map +1 -0
  1114. package/dist/schema/nodes/site-facts.js +73 -0
  1115. package/dist/schema/nodes/site.d.ts +235 -1
  1116. package/dist/schema/nodes/site.d.ts.map +1 -1
  1117. package/dist/schema/nodes/site.js +115 -1
  1118. package/dist/schema/nodes/skylight.d.ts +64 -38
  1119. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  1120. package/dist/schema/nodes/slab.d.ts +91 -7
  1121. package/dist/schema/nodes/slab.d.ts.map +1 -1
  1122. package/dist/schema/nodes/slab.js +37 -2
  1123. package/dist/schema/nodes/solar-panel.d.ts +40 -14
  1124. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  1125. package/dist/schema/nodes/spawn.d.ts +27 -1
  1126. package/dist/schema/nodes/spawn.d.ts.map +1 -1
  1127. package/dist/schema/nodes/stair-construction.d.ts +21 -0
  1128. package/dist/schema/nodes/stair-construction.d.ts.map +1 -0
  1129. package/dist/schema/nodes/stair-construction.js +13 -0
  1130. package/dist/schema/nodes/stair-defaults.d.ts +16 -0
  1131. package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
  1132. package/dist/schema/nodes/stair-defaults.js +15 -0
  1133. package/dist/schema/nodes/stair-design-targets.d.ts +9 -0
  1134. package/dist/schema/nodes/stair-design-targets.d.ts.map +1 -0
  1135. package/dist/schema/nodes/stair-design-targets.js +7 -0
  1136. package/dist/schema/nodes/stair-segment.d.ts +78 -10
  1137. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  1138. package/dist/schema/nodes/stair-segment.js +13 -0
  1139. package/dist/schema/nodes/stair-types.d.ts +29 -0
  1140. package/dist/schema/nodes/stair-types.d.ts.map +1 -0
  1141. package/dist/schema/nodes/stair-types.js +23 -0
  1142. package/dist/schema/nodes/stair.d.ts +131 -38
  1143. package/dist/schema/nodes/stair.d.ts.map +1 -1
  1144. package/dist/schema/nodes/stair.js +46 -3
  1145. package/dist/schema/nodes/structural-grid.d.ts +27 -1
  1146. package/dist/schema/nodes/structural-grid.d.ts.map +1 -1
  1147. package/dist/schema/nodes/surface-hole-metadata.d.ts +4 -1
  1148. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
  1149. package/dist/schema/nodes/surface-hole-metadata.js +2 -1
  1150. package/dist/schema/nodes/surface-paint-region.d.ts +14 -0
  1151. package/dist/schema/nodes/surface-paint-region.d.ts.map +1 -0
  1152. package/dist/schema/nodes/surface-paint-region.js +12 -0
  1153. package/dist/schema/nodes/turbine-vent.d.ts +32 -6
  1154. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  1155. package/dist/schema/nodes/unit.d.ts +29 -3
  1156. package/dist/schema/nodes/unit.d.ts.map +1 -1
  1157. package/dist/schema/nodes/wall.d.ts +771 -147
  1158. package/dist/schema/nodes/wall.d.ts.map +1 -1
  1159. package/dist/schema/nodes/wall.js +204 -186
  1160. package/dist/schema/nodes/window.d.ts +173 -38
  1161. package/dist/schema/nodes/window.d.ts.map +1 -1
  1162. package/dist/schema/nodes/window.js +22 -14
  1163. package/dist/schema/nodes/zone.d.ts +291 -4
  1164. package/dist/schema/nodes/zone.d.ts.map +1 -1
  1165. package/dist/schema/nodes/zone.js +56 -0
  1166. package/dist/schema/provenance.d.ts +118 -0
  1167. package/dist/schema/provenance.d.ts.map +1 -0
  1168. package/dist/schema/provenance.js +76 -0
  1169. package/dist/schema/scene-material.d.ts +5 -5
  1170. package/dist/schema/site-presentation.d.ts +100 -0
  1171. package/dist/schema/site-presentation.d.ts.map +1 -0
  1172. package/dist/schema/site-presentation.js +83 -0
  1173. package/dist/schema/source-ref.d.ts +23 -0
  1174. package/dist/schema/source-ref.d.ts.map +1 -0
  1175. package/dist/schema/source-ref.js +29 -0
  1176. package/dist/schema/types.d.ts +4442 -653
  1177. package/dist/schema/types.d.ts.map +1 -1
  1178. package/dist/schema/types.js +7 -0
  1179. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
  1180. package/dist/services/alignment-anchors.d.ts +2 -1
  1181. package/dist/services/alignment-anchors.d.ts.map +1 -1
  1182. package/dist/services/alignment-anchors.js +9 -6
  1183. package/dist/services/index.d.ts +5 -1
  1184. package/dist/services/index.d.ts.map +1 -1
  1185. package/dist/services/index.js +5 -1
  1186. package/dist/services/level-height.d.ts.map +1 -1
  1187. package/dist/services/level-height.js +10 -4
  1188. package/dist/services/port-connectivity.d.ts +4 -0
  1189. package/dist/services/port-connectivity.d.ts.map +1 -1
  1190. package/dist/services/port-connectivity.js +35 -0
  1191. package/dist/services/project-file-sink.d.ts +9 -0
  1192. package/dist/services/project-file-sink.d.ts.map +1 -0
  1193. package/dist/services/project-file-sink.js +13 -0
  1194. package/dist/services/roof-bearing.d.ts +62 -0
  1195. package/dist/services/roof-bearing.d.ts.map +1 -0
  1196. package/dist/services/roof-bearing.js +234 -0
  1197. package/dist/services/roof-level.d.ts +121 -0
  1198. package/dist/services/roof-level.d.ts.map +1 -0
  1199. package/dist/services/roof-level.js +280 -0
  1200. package/dist/services/roof-move.d.ts +83 -0
  1201. package/dist/services/roof-move.d.ts.map +1 -0
  1202. package/dist/services/roof-move.js +316 -0
  1203. package/dist/services/stair-surface-snap.d.ts +14 -0
  1204. package/dist/services/stair-surface-snap.d.ts.map +1 -0
  1205. package/dist/services/stair-surface-snap.js +116 -0
  1206. package/dist/services/storey-datum.d.ts +12 -0
  1207. package/dist/services/storey-datum.d.ts.map +1 -0
  1208. package/dist/services/storey-datum.js +18 -0
  1209. package/dist/services/storey.d.ts +72 -6
  1210. package/dist/services/storey.d.ts.map +1 -1
  1211. package/dist/services/storey.js +215 -12
  1212. package/dist/services/surface-hosting.d.ts.map +1 -1
  1213. package/dist/services/surface-hosting.js +4 -1
  1214. package/dist/solar-panel-presets.d.ts +2 -2
  1215. package/dist/store/actions/node-actions.d.ts +4994 -8
  1216. package/dist/store/actions/node-actions.d.ts.map +1 -1
  1217. package/dist/store/actions/node-actions.js +541 -175
  1218. package/dist/store/derived-node-guard.d.ts +84 -0
  1219. package/dist/store/derived-node-guard.d.ts.map +1 -0
  1220. package/dist/store/derived-node-guard.js +586 -0
  1221. package/dist/store/history-control.d.ts +73 -0
  1222. package/dist/store/history-control.d.ts.map +1 -1
  1223. package/dist/store/history-control.js +183 -5
  1224. package/dist/store/history-drafts.d.ts +48 -0
  1225. package/dist/store/history-drafts.d.ts.map +1 -0
  1226. package/dist/store/history-drafts.js +403 -0
  1227. package/dist/store/history-invalidation.d.ts.map +1 -1
  1228. package/dist/store/history-invalidation.js +1 -0
  1229. package/dist/store/item-interaction.d.ts +28 -0
  1230. package/dist/store/item-interaction.d.ts.map +1 -0
  1231. package/dist/store/item-interaction.js +34 -0
  1232. package/dist/store/registered-node-defaults.d.ts +11 -0
  1233. package/dist/store/registered-node-defaults.d.ts.map +1 -0
  1234. package/dist/store/registered-node-defaults.js +25 -0
  1235. package/dist/store/scene-annotations.d.ts +9827 -0
  1236. package/dist/store/scene-annotations.d.ts.map +1 -0
  1237. package/dist/store/scene-annotations.js +107 -0
  1238. package/dist/store/scene-preview.d.ts +16 -0
  1239. package/dist/store/scene-preview.d.ts.map +1 -0
  1240. package/dist/store/scene-preview.js +144 -0
  1241. package/dist/store/use-interactive.d.ts +23 -1
  1242. package/dist/store/use-interactive.d.ts.map +1 -1
  1243. package/dist/store/use-interactive.js +128 -5
  1244. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  1245. package/dist/store/use-live-terrain.d.ts.map +1 -1
  1246. package/dist/store/use-live-transforms.d.ts.map +1 -1
  1247. package/dist/store/use-scene.d.ts +68 -12
  1248. package/dist/store/use-scene.d.ts.map +1 -1
  1249. package/dist/store/use-scene.js +452 -308
  1250. package/dist/systems/elevator/elevator-dispatch.js +1 -1
  1251. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
  1252. package/dist/systems/elevator/elevator-opening-sync.js +4 -6
  1253. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  1254. package/dist/systems/elevator/elevator-opening-system.js +12 -6
  1255. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  1256. package/dist/systems/elevator/elevator-service.js +8 -3
  1257. package/dist/systems/fence/fence-centerline.d.ts.map +1 -1
  1258. package/dist/systems/fence/fence-centerline.js +6 -5
  1259. package/dist/systems/fence/fence-features.d.ts +36 -0
  1260. package/dist/systems/fence/fence-features.d.ts.map +1 -0
  1261. package/dist/systems/fence/fence-features.js +105 -0
  1262. package/dist/systems/fence/fence-spline.d.ts +8 -5
  1263. package/dist/systems/fence/fence-spline.d.ts.map +1 -1
  1264. package/dist/systems/fence/fence-spline.js +51 -16
  1265. package/dist/systems/owned-floor-openings.d.ts +9 -0
  1266. package/dist/systems/owned-floor-openings.d.ts.map +1 -0
  1267. package/dist/systems/owned-floor-openings.js +347 -0
  1268. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -0
  1269. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -0
  1270. package/dist/systems/reconcile-owned-floor-openings.js +25 -0
  1271. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  1272. package/dist/systems/roof/roof-elevation-system.js +9 -3
  1273. package/dist/systems/roof/roof-elevation.d.ts +5 -0
  1274. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  1275. package/dist/systems/roof/roof-elevation.js +91 -62
  1276. package/dist/systems/slab/__fixtures__/doorway-steps.d.ts +8 -0
  1277. package/dist/systems/slab/__fixtures__/doorway-steps.d.ts.map +1 -0
  1278. package/dist/systems/slab/__fixtures__/doorway-steps.js +62 -0
  1279. package/dist/systems/slab/__fixtures__/floor-step.d.ts +6743 -0
  1280. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -0
  1281. package/dist/systems/slab/__fixtures__/floor-step.js +66 -0
  1282. package/dist/systems/slab/__fixtures__/raised-room.d.ts +6848 -0
  1283. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -0
  1284. package/dist/systems/slab/__fixtures__/raised-room.js +54 -0
  1285. package/dist/systems/slab/ensure-slab-openings.d.ts +9 -0
  1286. package/dist/systems/slab/ensure-slab-openings.d.ts.map +1 -0
  1287. package/dist/systems/slab/ensure-slab-openings.js +41 -0
  1288. package/dist/systems/slab/slab-support.d.ts +30 -8
  1289. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  1290. package/dist/systems/slab/slab-support.js +547 -62
  1291. package/dist/systems/stair/stair-base-elevation.d.ts +3 -0
  1292. package/dist/systems/stair/stair-base-elevation.d.ts.map +1 -0
  1293. package/dist/systems/stair/stair-base-elevation.js +49 -0
  1294. package/dist/systems/stair/stair-clearance.d.ts +39 -0
  1295. package/dist/systems/stair/stair-clearance.d.ts.map +1 -0
  1296. package/dist/systems/stair/stair-clearance.js +508 -0
  1297. package/dist/systems/stair/stair-construction.d.ts +37 -0
  1298. package/dist/systems/stair/stair-construction.d.ts.map +1 -0
  1299. package/dist/systems/stair/stair-construction.js +314 -0
  1300. package/dist/systems/stair/stair-detail-budget.d.ts +13 -0
  1301. package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -0
  1302. package/dist/systems/stair/stair-detail-budget.js +64 -0
  1303. package/dist/systems/stair/stair-flight.d.ts +2 -2
  1304. package/dist/systems/stair/stair-flight.d.ts.map +1 -1
  1305. package/dist/systems/stair/stair-flight.js +4 -3
  1306. package/dist/systems/stair/stair-floor-footprints.d.ts +7 -0
  1307. package/dist/systems/stair/stair-floor-footprints.d.ts.map +1 -0
  1308. package/dist/systems/stair/stair-floor-footprints.js +113 -0
  1309. package/dist/systems/stair/stair-footprint.d.ts +9 -1
  1310. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  1311. package/dist/systems/stair/stair-footprint.js +123 -57
  1312. package/dist/systems/stair/stair-layout.d.ts +39 -0
  1313. package/dist/systems/stair/stair-layout.d.ts.map +1 -0
  1314. package/dist/systems/stair/stair-layout.js +58 -0
  1315. package/dist/systems/stair/stair-opening-preview.d.ts +4022 -2061
  1316. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  1317. package/dist/systems/stair/stair-opening-sync.d.ts +8 -2
  1318. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  1319. package/dist/systems/stair/stair-opening-sync.js +136 -315
  1320. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  1321. package/dist/systems/stair/stair-opening-system.js +40 -8
  1322. package/dist/systems/stair/stair-presets.d.ts +284 -0
  1323. package/dist/systems/stair/stair-presets.d.ts.map +1 -0
  1324. package/dist/systems/stair/stair-presets.js +158 -0
  1325. package/dist/systems/stair/stair-rail-budget.d.ts +6 -0
  1326. package/dist/systems/stair/stair-rail-budget.d.ts.map +1 -0
  1327. package/dist/systems/stair/stair-rail-budget.js +36 -0
  1328. package/dist/systems/stair/stair-rail-path.d.ts +22 -0
  1329. package/dist/systems/stair/stair-rail-path.d.ts.map +1 -0
  1330. package/dist/systems/stair/stair-rail-path.js +497 -0
  1331. package/dist/systems/stair/stair-rise-edit.d.ts +9 -0
  1332. package/dist/systems/stair/stair-rise-edit.d.ts.map +1 -0
  1333. package/dist/systems/stair/stair-rise-edit.js +46 -0
  1334. package/dist/systems/stair/stair-rise-query.d.ts +40 -0
  1335. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -0
  1336. package/dist/systems/stair/stair-rise-query.js +175 -0
  1337. package/dist/systems/stair/stair-rise.d.ts +4 -19
  1338. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  1339. package/dist/systems/stair/stair-rise.js +8 -71
  1340. package/dist/systems/stair/stair-sizing.d.ts +416 -0
  1341. package/dist/systems/stair/stair-sizing.d.ts.map +1 -0
  1342. package/dist/systems/stair/stair-sizing.js +255 -0
  1343. package/dist/systems/stair/stair-sweep-edit.d.ts +7 -0
  1344. package/dist/systems/stair/stair-sweep-edit.d.ts.map +1 -0
  1345. package/dist/systems/stair/stair-sweep-edit.js +8 -0
  1346. package/dist/systems/stair/stair-walking-line.d.ts +5 -0
  1347. package/dist/systems/stair/stair-walking-line.d.ts.map +1 -0
  1348. package/dist/systems/stair/stair-walking-line.js +91 -0
  1349. package/dist/systems/stair/stair-winder.d.ts +36 -0
  1350. package/dist/systems/stair/stair-winder.d.ts.map +1 -0
  1351. package/dist/systems/stair/stair-winder.js +173 -0
  1352. package/dist/systems/wall/wall-assembly.d.ts +245 -0
  1353. package/dist/systems/wall/wall-assembly.d.ts.map +1 -0
  1354. package/dist/systems/wall/wall-assembly.js +875 -0
  1355. package/dist/systems/wall/wall-curve.d.ts +7 -1
  1356. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  1357. package/dist/systems/wall/wall-curve.js +34 -5
  1358. package/dist/systems/wall/wall-finish.d.ts +102 -0
  1359. package/dist/systems/wall/wall-finish.d.ts.map +1 -0
  1360. package/dist/systems/wall/wall-finish.js +264 -0
  1361. package/dist/systems/wall/wall-footprint.d.ts +3 -0
  1362. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  1363. package/dist/systems/wall/wall-footprint.js +15 -13
  1364. package/dist/systems/wall/wall-frame.d.ts +45 -0
  1365. package/dist/systems/wall/wall-frame.d.ts.map +1 -0
  1366. package/dist/systems/wall/wall-frame.js +170 -0
  1367. package/dist/systems/wall/wall-layer-bands.d.ts +38 -0
  1368. package/dist/systems/wall/wall-layer-bands.d.ts.map +1 -0
  1369. package/dist/systems/wall/wall-layer-bands.js +109 -0
  1370. package/dist/systems/wall/wall-merge.d.ts +20 -1
  1371. package/dist/systems/wall/wall-merge.d.ts.map +1 -1
  1372. package/dist/systems/wall/wall-merge.js +189 -18
  1373. package/dist/systems/wall/wall-mitering.d.ts +6 -5
  1374. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  1375. package/dist/systems/wall/wall-mitering.js +70 -20
  1376. package/dist/systems/wall/wall-operations.d.ts +1 -1
  1377. package/dist/systems/wall/wall-operations.d.ts.map +1 -1
  1378. package/dist/systems/wall/wall-operations.js +2 -1
  1379. package/dist/systems/wall/wall-paint-plan.d.ts +30 -0
  1380. package/dist/systems/wall/wall-paint-plan.d.ts.map +1 -0
  1381. package/dist/systems/wall/wall-paint-plan.js +167 -0
  1382. package/dist/systems/wall/wall-room-sides.d.ts +14 -0
  1383. package/dist/systems/wall/wall-room-sides.d.ts.map +1 -0
  1384. package/dist/systems/wall/wall-room-sides.js +67 -0
  1385. package/dist/systems/wall/wall-step-openings.d.ts +17 -0
  1386. package/dist/systems/wall/wall-step-openings.d.ts.map +1 -0
  1387. package/dist/systems/wall/wall-step-openings.js +32 -0
  1388. package/dist/systems/wall/wall-top.d.ts +7 -8
  1389. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  1390. package/dist/systems/wall/wall-top.js +15 -13
  1391. package/dist/systems/wall/wall-topology.d.ts +25 -0
  1392. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  1393. package/dist/systems/wall/wall-topology.js +408 -5
  1394. package/dist/systems/wall/wall-trim.d.ts +7 -0
  1395. package/dist/systems/wall/wall-trim.d.ts.map +1 -0
  1396. package/dist/systems/wall/wall-trim.js +10 -0
  1397. package/dist/utils/clone-scene-graph.d.ts +6 -0
  1398. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  1399. package/dist/utils/clone-scene-graph.js +131 -15
  1400. package/dist/utils/ensure-scene-openings.d.ts +9823 -0
  1401. package/dist/utils/ensure-scene-openings.d.ts.map +1 -0
  1402. package/dist/utils/ensure-scene-openings.js +29 -0
  1403. package/dist/utils/exterior-threshold-migration.d.ts +4 -0
  1404. package/dist/utils/exterior-threshold-migration.d.ts.map +1 -0
  1405. package/dist/utils/exterior-threshold-migration.js +114 -0
  1406. package/dist/utils/floor-follow-migration.d.ts +3 -0
  1407. package/dist/utils/floor-follow-migration.d.ts.map +1 -0
  1408. package/dist/utils/floor-follow-migration.js +29 -0
  1409. package/dist/utils/floor-opening-migration.d.ts +13 -0
  1410. package/dist/utils/floor-opening-migration.d.ts.map +1 -0
  1411. package/dist/utils/floor-opening-migration.js +148 -0
  1412. package/dist/utils/floor-piece-adoption.d.ts +50 -0
  1413. package/dist/utils/floor-piece-adoption.d.ts.map +1 -0
  1414. package/dist/utils/floor-piece-adoption.js +182 -0
  1415. package/dist/utils/floor-plate-migration.d.ts +4936 -0
  1416. package/dist/utils/floor-plate-migration.d.ts.map +1 -0
  1417. package/dist/utils/floor-plate-migration.js +1360 -0
  1418. package/dist/utils/heal-plan-coordinates.d.ts +2 -0
  1419. package/dist/utils/heal-plan-coordinates.d.ts.map +1 -0
  1420. package/dist/utils/heal-plan-coordinates.js +69 -0
  1421. package/dist/utils/heal-scene-graph.d.ts +32 -6
  1422. package/dist/utils/heal-scene-graph.d.ts.map +1 -1
  1423. package/dist/utils/heal-scene-graph.js +78 -16
  1424. package/dist/utils/legacy-material-slots.d.ts +23 -0
  1425. package/dist/utils/legacy-material-slots.d.ts.map +1 -0
  1426. package/dist/utils/legacy-material-slots.js +120 -0
  1427. package/dist/utils/legacy-opening-datums.d.ts +11 -0
  1428. package/dist/utils/legacy-opening-datums.d.ts.map +1 -0
  1429. package/dist/utils/legacy-opening-datums.js +92 -0
  1430. package/dist/utils/legacy-wall-datums.d.ts +6 -0
  1431. package/dist/utils/legacy-wall-datums.d.ts.map +1 -0
  1432. package/dist/utils/legacy-wall-datums.js +199 -0
  1433. package/dist/utils/load-migration.d.ts +28 -0
  1434. package/dist/utils/load-migration.d.ts.map +1 -0
  1435. package/dist/utils/load-migration.js +89 -0
  1436. package/dist/utils/node-defaults.d.ts +37 -0
  1437. package/dist/utils/node-defaults.d.ts.map +1 -0
  1438. package/dist/utils/node-defaults.js +96 -0
  1439. package/dist/utils/normalize-legacy-structure.d.ts +2 -0
  1440. package/dist/utils/normalize-legacy-structure.d.ts.map +1 -0
  1441. package/dist/utils/normalize-legacy-structure.js +61 -0
  1442. package/dist/utils/omit-undefined.d.ts +2 -0
  1443. package/dist/utils/omit-undefined.d.ts.map +1 -0
  1444. package/dist/utils/omit-undefined.js +17 -0
  1445. package/dist/utils/owned-floor-opening-migration.d.ts +4918 -0
  1446. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -0
  1447. package/dist/utils/owned-floor-opening-migration.js +365 -0
  1448. package/dist/utils/reconcile-structure-on-load.d.ts +4918 -0
  1449. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -0
  1450. package/dist/utils/reconcile-structure-on-load.js +307 -0
  1451. package/dist/utils/room-zone-migration.d.ts +18 -0
  1452. package/dist/utils/room-zone-migration.d.ts.map +1 -0
  1453. package/dist/utils/room-zone-migration.js +258 -0
  1454. package/dist/utils/scene-migrations.d.ts +16 -1
  1455. package/dist/utils/scene-migrations.d.ts.map +1 -1
  1456. package/dist/utils/scene-migrations.js +15 -1
  1457. package/dist/utils/semantic-equal.d.ts +3 -0
  1458. package/dist/utils/semantic-equal.d.ts.map +1 -0
  1459. package/dist/utils/semantic-equal.js +26 -0
  1460. package/dist/utils/structure-id.d.ts +4 -0
  1461. package/dist/utils/structure-id.d.ts.map +1 -0
  1462. package/dist/utils/structure-id.js +115 -0
  1463. package/dist/utils/types.d.ts.map +1 -1
  1464. package/dist/utils/vertical-scene-migration.d.ts +8 -8
  1465. package/dist/utils/vertical-scene-migration.d.ts.map +1 -1
  1466. package/dist/utils/vertical-scene-migration.js +18 -8
  1467. package/dist/utils/wall-assembly-migration.d.ts +14 -0
  1468. package/dist/utils/wall-assembly-migration.d.ts.map +1 -0
  1469. package/dist/utils/wall-assembly-migration.js +23 -0
  1470. package/dist/utils/wall-face-migration.d.ts +23 -0
  1471. package/dist/utils/wall-face-migration.d.ts.map +1 -0
  1472. package/dist/utils/wall-face-migration.js +246 -0
  1473. package/dist/validation/opening-bounds.d.ts +36 -0
  1474. package/dist/validation/opening-bounds.d.ts.map +1 -0
  1475. package/dist/validation/opening-bounds.js +34 -0
  1476. package/dist/validation/validate-build-json.d.ts +2 -0
  1477. package/dist/validation/validate-build-json.d.ts.map +1 -1
  1478. package/dist/validation/validate-build-json.js +36 -1
  1479. package/package.json +69 -10
  1480. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +0 -13
  1481. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +0 -1
  1482. package/dist/services/surface-hosting-procedural-parity.fixtures.js +0 -4691
  1483. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +0 -1060
  1484. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +0 -1
  1485. package/dist/services/surface-hosting-shelf-parity.fixtures.js +0 -3127
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wall-opening-cases.d.ts","sourceRoot":"","sources":["../../../src/building/__fixtures__/wall-opening-cases.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,eAAO,MAAM,aAAa;aACxB,UAAU,EAAE,mBAAmB;aAC/B,OAAO,EAAE,gBAAgB;IACzB,qCAAqC;aACrC,IAAI,EAAE,WAAW;IACjB,0CAA0C;aAC1C,KAAK,EAAE,YAAY;IACnB,qCAAqC;aACrC,KAAK,EAAE,YAAY;IACnB,yEAAyE;aACzE,IAAI,EAAE,WAAW;aACjB,YAAY,EAAE,eAAe;IAC7B,4BAA4B;aAC5B,MAAM,EAAE,aAAa;IACrB,oEAAoE;aACpE,MAAM,EAAE,aAAa;IACrB,iGAAiG;aACjG,OAAO,EAAE,cAAc;aACvB,SAAS,EAAE,iBAAiB;IAC5B,4DAA4D;aAC5D,QAAQ,EAAE,gBAAgB;IAC1B,8FAA8F;aAC9F,OAAO,EAAE,eAAe;CAChB,CAAA;AAaV,sFAAsF;AACtF,wBAAgB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C3B;AAED,eAAO,MAAM,qBAAqB,YAChC,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,CAClB,CAAA;AACV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,GAAG,YAAY,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,MAAM,EACF;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACpD;QACE,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC/B,CAAA;CACN,CAAA;AAiBD,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAyQxD,CAAA"}
@@ -0,0 +1,367 @@
1
+ import { BuildingNode, DoorNode, ItemNode, LevelNode, WallNode } from '../../schema/index.js';
2
+ /**
3
+ * The edge cases of `add_door` / `add_window`, written before the operation: one table that the
4
+ * core operation, the MCP tool and the hosted chat's executor all run, so the three layers cannot
5
+ * disagree. The editor's manual tools are the reference for what is possible: curved walls take
6
+ * no openings, overlapping placements need a force (Alt in the editor), positions clamp onto the
7
+ * wall and windows under its ceiling. `wall_too_short` is the one guard the editor lacks.
8
+ */
9
+ export const OPENING_SCENE = {
10
+ buildingId: 'building_openings',
11
+ levelId: 'level_openings',
12
+ /** 4 m straight wall, 2.5 m tall. */
13
+ main: 'wall_main',
14
+ /** 0.8 m: shorter than a default door. */
15
+ short: 'wall_short',
16
+ /** 0.9 m: exactly a default door. */
17
+ exact: 'wall_exact',
18
+ /** 4 m wall with a door centred at 2.0 m (1.55–2.45 m, 0–2.1 m high). */
19
+ busy: 'wall_busy',
20
+ existingDoor: 'door_existing',
21
+ /** 4 m wall bowed 0.5 m. */
22
+ curved: 'wall_curved',
23
+ /** 4 m wall with no height of its own: the 2.8 m storey decides. */
24
+ storey: 'wall_storey',
25
+ /** 4 m wall carrying a 1.2 m wall-mounted shelf centred at 2.0 m (1.4–2.6 m, 1.0–1.6 m high). */
26
+ shelved: 'wall_shelved',
27
+ wallShelf: 'item_wall_shelf',
28
+ /** 4 m outside wall, its outside at the front (+normal). */
29
+ outFront: 'wall_out_front',
30
+ /** 4 m outside wall drawn the other way: its outside at the back, as a garage wall can be. */
31
+ outBack: 'wall_out_back',
32
+ };
33
+ const wall = (id, z, length, extra = {}) => WallNode.parse({
34
+ id,
35
+ parentId: OPENING_SCENE.levelId,
36
+ start: [0, z],
37
+ end: [length, z],
38
+ thickness: 0.2,
39
+ height: 2.5,
40
+ ...extra,
41
+ });
42
+ /** A fresh scene graph for every case: one building, one 2.8 m storey, nine walls. */
43
+ export function openingScene() {
44
+ // No height of its own: the storey decides.
45
+ const { height: _height, ...storeyWall } = wall(OPENING_SCENE.storey, 10, 4);
46
+ const walls = [
47
+ wall(OPENING_SCENE.main, 0, 4),
48
+ wall(OPENING_SCENE.short, 2, 0.8),
49
+ wall(OPENING_SCENE.exact, 4, 0.9),
50
+ { ...wall(OPENING_SCENE.busy, 6, 4), children: [OPENING_SCENE.existingDoor] },
51
+ wall(OPENING_SCENE.curved, 8, 4, { curveOffset: 0.5 }),
52
+ storeyWall,
53
+ { ...wall(OPENING_SCENE.shelved, 12, 4), children: [OPENING_SCENE.wallShelf] },
54
+ wall(OPENING_SCENE.outFront, 14, 4, { frontSide: 'exterior', backSide: 'interior' }),
55
+ wall(OPENING_SCENE.outBack, 16, 4, { frontSide: 'interior', backSide: 'exterior' }),
56
+ ];
57
+ const door = DoorNode.parse({
58
+ id: OPENING_SCENE.existingDoor,
59
+ parentId: OPENING_SCENE.busy,
60
+ wallId: OPENING_SCENE.busy,
61
+ position: [2, 1.05, 0],
62
+ width: 0.9,
63
+ height: 2.1,
64
+ });
65
+ const shelf = ItemNode.parse({
66
+ id: OPENING_SCENE.wallShelf,
67
+ parentId: OPENING_SCENE.shelved,
68
+ wallId: OPENING_SCENE.shelved,
69
+ position: [2, 1, 0],
70
+ asset: {
71
+ id: 'wall-shelf',
72
+ name: 'Wall shelf',
73
+ category: 'storage',
74
+ thumbnail: '/items/wall-shelf/thumbnail.webp',
75
+ src: '/items/wall-shelf/model.glb',
76
+ dimensions: [1.2, 0.6, 0.3],
77
+ attachTo: 'wall',
78
+ },
79
+ });
80
+ const level = LevelNode.parse({
81
+ id: OPENING_SCENE.levelId,
82
+ parentId: OPENING_SCENE.buildingId,
83
+ level: 0,
84
+ height: 2.8,
85
+ children: walls.map((w) => w.id),
86
+ });
87
+ const building = BuildingNode.parse({ id: OPENING_SCENE.buildingId, children: [level.id] });
88
+ const nodes = Object.fromEntries([building, level, ...walls, door, shelf].map((node) => [node.id, node]));
89
+ return { nodes, rootNodeIds: [building.id] };
90
+ }
91
+ export const WALL_OPENING_REFUSALS = [
92
+ 'wall_not_found',
93
+ 'not_a_wall',
94
+ 'curved_wall',
95
+ 'position_required',
96
+ 'conflicting_position',
97
+ 'wall_too_short',
98
+ 'opening_overlap',
99
+ 'style_needs_fixed_window',
100
+ ];
101
+ const { main, short, exact, busy, curved, storey, shelved, wallShelf, levelId, existingDoor, outFront, outBack, } = OPENING_SCENE;
102
+ export const WALL_OPENING_CASES = [
103
+ // Which way it faces. A door's swing and a garage door's track run behind its facing, so a door
104
+ // on an outside wall faces out whichever way the wall was drawn (a garage door's track once ran
105
+ // on the street). An inside wall keeps the wall's front.
106
+ {
107
+ name: 'a door on an outside wall faces out',
108
+ tool: 'add_door',
109
+ input: { wallId: outFront, t: 0.5 },
110
+ expect: { localX: 2, centerY: 1.05, clamped: false, node: { side: 'front', rotation: [0, 0, 0] } },
111
+ },
112
+ {
113
+ name: 'a garage door on an outside wall drawn the other way faces out, its track inside',
114
+ tool: 'add_door',
115
+ input: { wallId: outBack, t: 0.5, width: 2.4, doorType: 'garage-sectional' },
116
+ expect: {
117
+ localX: 2,
118
+ centerY: 1.05,
119
+ clamped: false,
120
+ node: { side: 'back', rotation: [0, Math.PI, 0] },
121
+ },
122
+ },
123
+ {
124
+ name: "a door on an inside wall keeps the wall's front",
125
+ tool: 'add_door',
126
+ input: { wallId: main, t: 0.5 },
127
+ expect: { localX: 2, centerY: 1.05, clamped: false, node: { rotation: [0, 0, 0] } },
128
+ },
129
+ // Its hardware: the handle hangs opposite the hinges unless placed.
130
+ {
131
+ name: 'a right-hinged door takes its handle on the left',
132
+ tool: 'add_door',
133
+ input: { wallId: main, t: 0.5, hingesSide: 'right' },
134
+ expect: {
135
+ localX: 2,
136
+ centerY: 1.05,
137
+ clamped: false,
138
+ node: { hingesSide: 'right', handleSide: 'left' },
139
+ },
140
+ },
141
+ {
142
+ name: 'a left-hinged door takes its handle on the right',
143
+ tool: 'add_door',
144
+ input: { wallId: main, t: 0.5 },
145
+ expect: {
146
+ localX: 2,
147
+ centerY: 1.05,
148
+ clamped: false,
149
+ node: { hingesSide: 'left', handleSide: 'right' },
150
+ },
151
+ },
152
+ {
153
+ name: 'a handle side given is kept',
154
+ tool: 'add_door',
155
+ input: { wallId: main, t: 0.5, hingesSide: 'right', handleSide: 'right' },
156
+ expect: {
157
+ localX: 2,
158
+ centerY: 1.05,
159
+ clamped: false,
160
+ node: { hingesSide: 'right', handleSide: 'right' },
161
+ },
162
+ },
163
+ // Where it goes
164
+ {
165
+ name: 'a door at t 0.5 is centred',
166
+ tool: 'add_door',
167
+ input: { wallId: main, t: 0.5 },
168
+ expect: { localX: 2, centerY: 1.05, clamped: false },
169
+ },
170
+ {
171
+ name: 'a door at the start slides onto the wall',
172
+ tool: 'add_door',
173
+ input: { wallId: main, t: 0 },
174
+ expect: { localX: 0.45, centerY: 1.05, clamped: true },
175
+ },
176
+ {
177
+ name: 'a door at the end slides onto the wall',
178
+ tool: 'add_door',
179
+ input: { wallId: main, t: 1 },
180
+ expect: { localX: 3.55, centerY: 1.05, clamped: true },
181
+ },
182
+ {
183
+ name: 'position is an alias of t',
184
+ tool: 'add_door',
185
+ input: { wallId: main, position: 0.25 },
186
+ expect: { localX: 1, centerY: 1.05, clamped: false },
187
+ },
188
+ {
189
+ name: 'equal t and position agree',
190
+ tool: 'add_door',
191
+ input: { wallId: main, t: 0.25, position: 0.25 },
192
+ expect: { localX: 1, centerY: 1.05, clamped: false },
193
+ },
194
+ {
195
+ name: 'a wall exactly as long as the door takes it',
196
+ tool: 'add_door',
197
+ input: { wallId: exact, t: 0.5 },
198
+ expect: { localX: 0.45, centerY: 1.05, clamped: false },
199
+ },
200
+ {
201
+ name: 'a wall with no height of its own takes a door',
202
+ tool: 'add_door',
203
+ input: { wallId: storey, t: 0.5 },
204
+ expect: { localX: 2, centerY: 1.05, clamped: false },
205
+ },
206
+ // A gap's advice says to reopen a passage, and no tool made an opening with no leaf; the editor's door panel has Door / Opening.
207
+ {
208
+ name: 'a passage with no leaf is an opening, in the outline asked',
209
+ tool: 'add_door',
210
+ input: { wallId: main, t: 0.5, openingKind: 'opening', openingShape: 'arch' },
211
+ expect: {
212
+ localX: 2,
213
+ centerY: 1.05,
214
+ clamped: false,
215
+ node: { openingKind: 'opening', openingShape: 'arch' },
216
+ },
217
+ },
218
+ {
219
+ name: 'a door style changes the panels, not the size',
220
+ tool: 'add_door',
221
+ input: { wallId: main, t: 0.5, style: 'glass' },
222
+ expect: { localX: 2, centerY: 1.05, clamped: false, glassPanels: true },
223
+ },
224
+ // The agents' windows are centred on the wall unless a sill is given: a 1.5 m window on the
225
+ // 2.5 m wall spans 0.5–2.0 m. (A 0.9 m default put the same window at 0.9–2.4 m, under the top.)
226
+ {
227
+ name: 'a window with no sill is centred on its wall',
228
+ tool: 'add_window',
229
+ input: { wallId: main, t: 0.5 },
230
+ expect: { localX: 2, centerY: 1.25, clamped: false },
231
+ },
232
+ {
233
+ name: 'a window of another height is centred on the wall too',
234
+ tool: 'add_window',
235
+ input: { wallId: main, t: 0.5, height: 1 },
236
+ expect: { localX: 2, centerY: 1.25, clamped: false },
237
+ },
238
+ {
239
+ name: 'a wall with no height of its own centres the window on the storey',
240
+ tool: 'add_window',
241
+ input: { wallId: storey, t: 0.5 },
242
+ expect: { localX: 2, centerY: 1.4, clamped: false },
243
+ },
244
+ {
245
+ name: 'a tall window is centred with room above and below',
246
+ tool: 'add_window',
247
+ input: { wallId: main, t: 0.5, height: 2.4 },
248
+ expect: { localX: 2, centerY: 1.25, clamped: false },
249
+ },
250
+ {
251
+ name: 'a window given a 0.9 m sill keeps it',
252
+ tool: 'add_window',
253
+ input: { wallId: main, t: 0.5, sillHeight: 0.9 },
254
+ expect: { localX: 2, centerY: 1.65, clamped: false },
255
+ },
256
+ // A style shapes a Fixed window's panes; an operable window draws its own sashes and ignores them.
257
+ {
258
+ name: 'a Fixed window takes a style',
259
+ tool: 'add_window',
260
+ input: { wallId: main, t: 0.5, windowType: 'fixed', style: 'double-hung' },
261
+ expect: { localX: 2, centerY: 1.25, clamped: false },
262
+ },
263
+ {
264
+ name: 'a style on a window that is not Fixed is refused, naming the Fixed type',
265
+ tool: 'add_window',
266
+ input: { wallId: main, t: 0.5, windowType: 'casement', style: 'double-hung' },
267
+ expect: { refusal: 'style_needs_fixed_window', mentions: ["'fixed'", 'casement'] },
268
+ },
269
+ {
270
+ name: 'a window keeps the sill it is given',
271
+ tool: 'add_window',
272
+ input: { wallId: main, t: 0.5, sillHeight: 1, height: 1.2 },
273
+ expect: { localX: 2, centerY: 1.6, clamped: false },
274
+ },
275
+ {
276
+ name: 'a window above the ceiling slides down under it',
277
+ tool: 'add_window',
278
+ input: { wallId: main, t: 0.5, sillHeight: 1.5, height: 1.5 },
279
+ expect: { localX: 2, centerY: 1.75, clamped: true },
280
+ },
281
+ {
282
+ name: 'a wall with no height uses the storey for its ceiling',
283
+ tool: 'add_window',
284
+ input: { wallId: storey, t: 0.5, sillHeight: 1.5, height: 1.2 },
285
+ expect: { localX: 2, centerY: 2.1, clamped: false },
286
+ },
287
+ // Openings already on the wall
288
+ {
289
+ name: 'a door overlapping another is refused',
290
+ tool: 'add_door',
291
+ input: { wallId: busy, t: 0.55 },
292
+ expect: { refusal: 'opening_overlap', mentions: [existingDoor] },
293
+ },
294
+ {
295
+ name: 'a window overlapping a door is refused',
296
+ tool: 'add_window',
297
+ input: { wallId: busy, t: 0.5 },
298
+ expect: { refusal: 'opening_overlap', mentions: [existingDoor] },
299
+ },
300
+ {
301
+ name: 'a door over a wall-mounted item is refused with the item\'s span',
302
+ tool: 'add_door',
303
+ input: { wallId: shelved, t: 0.5 },
304
+ expect: { refusal: 'opening_overlap', mentions: [wallShelf, '1.40 m–2.60 m'] },
305
+ },
306
+ {
307
+ name: 'openings whose edges touch both fit',
308
+ tool: 'add_door',
309
+ input: { wallId: busy, t: 0.725 },
310
+ expect: { localX: 2.9, centerY: 1.05, clamped: false },
311
+ },
312
+ {
313
+ name: 'force places over another opening, like Alt in the editor',
314
+ tool: 'add_door',
315
+ input: { wallId: busy, t: 0.55, force: true },
316
+ expect: { localX: 2.2, centerY: 1.05, clamped: false },
317
+ },
318
+ // Refusals
319
+ {
320
+ name: 'no position is refused',
321
+ tool: 'add_door',
322
+ input: { wallId: main },
323
+ expect: { refusal: 'position_required' },
324
+ },
325
+ {
326
+ name: 'different t and position are refused',
327
+ tool: 'add_door',
328
+ input: { wallId: main, t: 0.2, position: 0.6 },
329
+ expect: { refusal: 'conflicting_position' },
330
+ },
331
+ {
332
+ name: 'an unknown wall is refused',
333
+ tool: 'add_door',
334
+ input: { wallId: 'wall_missing', t: 0.5 },
335
+ expect: { refusal: 'wall_not_found', mentions: ['wall_missing'] },
336
+ },
337
+ {
338
+ name: 'a node that is not a wall is refused',
339
+ tool: 'add_window',
340
+ input: { wallId: levelId, t: 0.5 },
341
+ expect: { refusal: 'not_a_wall', mentions: ['level'] },
342
+ },
343
+ {
344
+ name: 'a wall shorter than the door is refused',
345
+ tool: 'add_door',
346
+ input: { wallId: short, t: 0.5 },
347
+ expect: { refusal: 'wall_too_short', mentions: ['0.80 m', '0.90 m'] },
348
+ },
349
+ {
350
+ name: 'a wall shorter than the window is refused',
351
+ tool: 'add_window',
352
+ input: { wallId: short, t: 0.5 },
353
+ expect: { refusal: 'wall_too_short', mentions: ['0.80 m', '1.50 m'] },
354
+ },
355
+ {
356
+ name: 'a curved wall takes no door, like in the editor',
357
+ tool: 'add_door',
358
+ input: { wallId: curved, t: 0.5 },
359
+ expect: { refusal: 'curved_wall' },
360
+ },
361
+ {
362
+ name: 'a curved wall takes no window, like in the editor',
363
+ tool: 'add_window',
364
+ input: { wallId: curved, t: 0.9 },
365
+ expect: { refusal: 'curved_wall' },
366
+ },
367
+ ];
@@ -0,0 +1,56 @@
1
+ import type { AnyNode, WindowNode } from '../schema/index.js';
2
+ import { type WallOpeningInput } from './wall-openings.js';
3
+ type Nodes = Readonly<Record<string, AnyNode>>;
4
+ type Point = [number, number];
5
+ export type CornerWindowInput = {
6
+ corner: Point;
7
+ /** The level whose walls meet at the corner. */
8
+ levelId: string;
9
+ /** The two walls, when more than two meet at the corner. */
10
+ wallIds?: [string, string];
11
+ /** How far the glass runs along each wall from the corner (m), unless `widths` names the wall. */
12
+ width?: number;
13
+ widths?: Record<string, number>;
14
+ height?: number;
15
+ sillHeight?: number;
16
+ post?: 'none' | 'post';
17
+ windowType?: WallOpeningInput['windowType'];
18
+ style?: string;
19
+ };
20
+ /**
21
+ * A corner window: one window on each of the two walls of `levelId` meeting at `corner`, each
22
+ * running to it, joined, at any angle the walls make. Each side is placed by add_window's rules,
23
+ * and the two keep one sill: with none given, both are centred on the lower of the two walls.
24
+ */
25
+ export declare function planCornerWindow(nodes: Nodes, input: CornerWindowInput): {
26
+ windows: WindowNode[];
27
+ wallIds: [string, string];
28
+ angle: number;
29
+ };
30
+ /** The partner's update for a change to one side of a corner window; null when nothing shared changed. */
31
+ export declare function cornerPartnerUpdates(nodes: Nodes, windowId: string, patch: Partial<WindowNode>): Partial<WindowNode> | null;
32
+ /**
33
+ * The editor's Wrap the corner: a window within `CORNER_REACH_M` of a corner where exactly one other
34
+ * wall ends is slid to the corner and joined to the window waiting there on that wall, adopted
35
+ * (`mergeWindows`); with none waiting, it gets a partner on that wall, of its width (as far as the
36
+ * wall allows), height, sill and type. `create` is the partner to add, if any; `updates` are the
37
+ * windows that change, by id.
38
+ */
39
+ export declare function wrapCorner(nodes: Nodes, windowId: string): {
40
+ create: WindowNode | null;
41
+ updates: Record<string, Partial<WindowNode>>;
42
+ };
43
+ /** The editor's Unwrap: both windows stay, plain, where they are. */
44
+ export declare function unwrapCorner(nodes: Nodes, windowId: string): Record<string, Partial<WindowNode>>;
45
+ /**
46
+ * After a window moved: its `corner` cleared on both sides when it is no longer one side of its
47
+ * pair (dragged off the corner, or onto another wall); nothing while the pair holds.
48
+ */
49
+ export declare function strayCornerClears(nodes: Nodes, windowId: string): Record<string, Partial<WindowNode>>;
50
+ /**
51
+ * A new width for one side of a corner window, its corner end kept at the corner (the panel's
52
+ * Width and Other side): the free edge moves, as far as the wall allows.
53
+ */
54
+ export declare function cornerSideWidth(nodes: Nodes, windowId: string, width: number): Partial<WindowNode> | null;
55
+ export {};
56
+ //# sourceMappingURL=corner-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corner-window.d.ts","sourceRoot":"","sources":["../../src/building/corner-window.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAuB,UAAU,EAAE,MAAM,WAAW,CAAA;AAEzE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAA;AAExB,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9C,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,KAAK,CAAA;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB;aAqE9D,UAAU,EAAE;aACkB,CAAC,MAAM,EAAE,MAAM,CAAC;;EAGtD;AAaD,0GAA0G;AAC1G,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GACzB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAW5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf;IAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;CAAE,CAqE7E;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAEhG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAKrC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAQ5B"}
@@ -0,0 +1,179 @@
1
+ import { refuse } from '../agent-tools/refusal.js';
2
+ import { CORNER_REACH_M, cornerAngle, cornerLinkClears, cornerPair, fusesAtCorner, isWrappableAngle, wallEndPoint, wallLengthOf, wallsEndingAt, windowEndGap, windowNearCornerEnd, } from '../lib/corner-pair.js';
3
+ import { mergeWindows } from './merge-windows.js';
4
+ import { centredWindowSill, DEFAULT_WINDOW, planWallOpening, } from './wall-openings.js';
5
+ /**
6
+ * A corner window: one window on each of the two walls of `levelId` meeting at `corner`, each
7
+ * running to it, joined, at any angle the walls make. Each side is placed by add_window's rules,
8
+ * and the two keep one sill: with none given, both are centred on the lower of the two walls.
9
+ */
10
+ export function planCornerWindow(nodes, input) {
11
+ const point = input.corner;
12
+ const meeting = wallsEndingAt(nodes, input.levelId, point).filter(({ wall }) => !input.wallIds || input.wallIds.includes(wall.id));
13
+ if (meeting.length < 2)
14
+ refuse('no_corner', `No two walls of level ${input.levelId}${input.wallIds ? ` among ${input.wallIds.join(', ')}` : ''} end at (${point.join(', ')}): a corner window goes where two walls of one level meet; get_walls gives their ends.`, { corner: point, levelId: input.levelId });
15
+ if (meeting.length > 2)
16
+ refuse('corner_ambiguous', `${meeting.length} walls end at (${point.join(', ')}): say which two with wallIds (${meeting.map(({ wall }) => wall.id).join(', ')}).`, { corner: point, wallIds: meeting.map(({ wall }) => wall.id) });
17
+ const [a, b] = meeting;
18
+ const angle = cornerAngle(a, b);
19
+ if (!isWrappableAngle(angle))
20
+ refuse('corner_angle', `The walls at (${point.join(', ')}) meet at ${Math.round(angle)}°: too close to ${angle < 90 ? 'folded back' : 'straight'} for a corner window. Along a straight run, one add_window is the window.`, { angle });
21
+ const sillHeight = input.sillHeight ??
22
+ centredWindowSill([a.wall, b.wall], input.height ?? DEFAULT_WINDOW.height, nodes);
23
+ const windows = [a, b].map(({ wall, end }) => {
24
+ const width = input.widths?.[wall.id] ?? input.width ?? 1.2;
25
+ const length = wallLengthOf(wall);
26
+ if (width > length)
27
+ refuse('width_exceeds_wall', `Wall ${wall.id} is ${length.toFixed(2)} m long, too short for a ${width.toFixed(2)} m side of the corner window.`, { wallId: wall.id, width, length });
28
+ const centre = end === 'start' ? width / 2 : length - width / 2;
29
+ return {
30
+ end,
31
+ node: planWallOpening(nodes, {
32
+ kind: 'window',
33
+ wallId: wall.id,
34
+ t: centre / length,
35
+ width,
36
+ ...(input.height === undefined ? {} : { height: input.height }),
37
+ sillHeight,
38
+ ...(input.windowType ? { windowType: input.windowType } : {}),
39
+ ...(input.style ? { style: input.style } : {}),
40
+ }).node,
41
+ };
42
+ });
43
+ const [first, second] = windows;
44
+ const fuses = fusesAtCorner(first.node);
45
+ if (input.post === 'none' && !fuses)
46
+ refuse('corner_not_fused', `A ${first.node.windowType} window keeps its frame at the corner, so its glass cannot fuse there: only a fixed window's does. Pass post "post", or windowType "fixed".`, { windowType: first.node.windowType });
47
+ const post = input.post ?? (fuses ? 'none' : 'post');
48
+ return {
49
+ windows: [
50
+ { ...first.node, corner: { end: first.end, partnerId: second.node.id, post } },
51
+ { ...second.node, corner: { end: second.end, partnerId: first.node.id, post } },
52
+ ],
53
+ wallIds: [a.wall.id, b.wall.id],
54
+ angle,
55
+ };
56
+ }
57
+ /** What both sides of a corner window share: changed on one, it changes on the other. */
58
+ const SHARED = [
59
+ 'height',
60
+ 'windowType',
61
+ 'frameThickness',
62
+ 'frameDepth',
63
+ 'sill',
64
+ 'sillDepth',
65
+ 'sillThickness',
66
+ ];
67
+ /** The partner's update for a change to one side of a corner window; null when nothing shared changed. */
68
+ export function cornerPartnerUpdates(nodes, windowId, patch) {
69
+ const window = nodes[windowId];
70
+ if (window?.type !== 'window')
71
+ return null;
72
+ const pair = cornerPair(nodes, window);
73
+ if (!pair)
74
+ return null;
75
+ const update = {};
76
+ for (const key of SHARED)
77
+ if (patch[key] !== undefined)
78
+ update[key] = patch[key];
79
+ if (patch.position)
80
+ update.position = [pair.partner.position[0], patch.position[1], pair.partner.position[2]];
81
+ if (patch.corner?.post)
82
+ update.corner = { ...pair.partner.corner, post: patch.corner.post };
83
+ return Object.keys(update).length ? update : null;
84
+ }
85
+ /**
86
+ * The editor's Wrap the corner: a window within `CORNER_REACH_M` of a corner where exactly one other
87
+ * wall ends is slid to the corner and joined to the window waiting there on that wall, adopted
88
+ * (`mergeWindows`); with none waiting, it gets a partner on that wall, of its width (as far as the
89
+ * wall allows), height, sill and type. `create` is the partner to add, if any; `updates` are the
90
+ * windows that change, by id.
91
+ */
92
+ export function wrapCorner(nodes, windowId) {
93
+ const window = nodes[windowId];
94
+ const end = window?.type === 'window' ? windowNearCornerEnd(nodes, window) : null;
95
+ const wall = window ? nodes[window.parentId ?? ''] : undefined;
96
+ if (!window || !end || wall?.type !== 'wall')
97
+ refuse('no_corner', `This window is not within ${CORNER_REACH_M.toFixed(2)} m of a corner of its wall.`);
98
+ const others = wallsEndingAt(nodes, wall.parentId ?? undefined, wallEndPoint(wall, end)).filter((meeting) => meeting.wall.id !== wall.id);
99
+ if (others.length !== 1)
100
+ refuse('no_corner', 'A corner window needs exactly one other wall ending at this corner.');
101
+ const { wall: other, end: otherEnd } = others[0];
102
+ if (!isWrappableAngle(cornerAngle({ wall, end }, { wall: other, end: otherEnd })))
103
+ refuse('corner_angle', 'The walls meet at too sharp or too flat an angle for a corner window.');
104
+ // A window already waiting at the other wall's corner is adopted, the nearest first.
105
+ const waiting = Object.values(nodes)
106
+ .filter((node) => node.type === 'window' &&
107
+ node.parentId === other.id &&
108
+ node.id !== window.id &&
109
+ !cornerPair(nodes, node) &&
110
+ windowNearCornerEnd(nodes, node) === otherEnd)
111
+ .sort((a, b) => windowEndGap(other, a, otherEnd) - windowEndGap(other, b, otherEnd))[0];
112
+ if (waiting) {
113
+ const merge = mergeWindows(nodes, window.id, waiting.id);
114
+ return {
115
+ create: null,
116
+ updates: Object.fromEntries(merge.changes.update.map(({ id, data }) => [id, data])),
117
+ };
118
+ }
119
+ const width = Math.min(window.width, wallLengthOf(other));
120
+ const centre = otherEnd === 'start' ? width / 2 : wallLengthOf(other) - width / 2;
121
+ const sillHeight = window.position[1] - window.height / 2;
122
+ const partner = planWallOpening(nodes, {
123
+ kind: 'window',
124
+ wallId: other.id,
125
+ t: centre / wallLengthOf(other),
126
+ width,
127
+ height: window.height,
128
+ sillHeight,
129
+ windowType: window.windowType,
130
+ }).node;
131
+ const post = fusesAtCorner(window) ? 'none' : 'post';
132
+ const slidTo = end === 'start' ? window.width / 2 : wallLengthOf(wall) - window.width / 2;
133
+ return {
134
+ create: {
135
+ ...partner,
136
+ columnRatios: window.columnRatios,
137
+ rowRatios: window.rowRatios,
138
+ corner: { end: otherEnd, partnerId: window.id, post },
139
+ },
140
+ updates: {
141
+ // The partner of a pair this window has left (it was dragged here) is plain again.
142
+ ...unwrapCorner(nodes, window.id),
143
+ [window.id]: {
144
+ corner: { end, partnerId: partner.id, post },
145
+ ...(Math.abs(windowEndGap(wall, window, end)) > 1e-6
146
+ ? { position: [slidTo, window.position[1], window.position[2]] }
147
+ : {}),
148
+ },
149
+ },
150
+ };
151
+ }
152
+ /** The editor's Unwrap: both windows stay, plain, where they are. */
153
+ export function unwrapCorner(nodes, windowId) {
154
+ return Object.fromEntries(cornerLinkClears(nodes, windowId).map(({ id, data }) => [id, data]));
155
+ }
156
+ /**
157
+ * After a window moved: its `corner` cleared on both sides when it is no longer one side of its
158
+ * pair (dragged off the corner, or onto another wall); nothing while the pair holds.
159
+ */
160
+ export function strayCornerClears(nodes, windowId) {
161
+ const window = nodes[windowId];
162
+ if (window?.type !== 'window' || !window.corner || cornerPair(nodes, window))
163
+ return {};
164
+ return unwrapCorner(nodes, windowId);
165
+ }
166
+ /**
167
+ * A new width for one side of a corner window, its corner end kept at the corner (the panel's
168
+ * Width and Other side): the free edge moves, as far as the wall allows.
169
+ */
170
+ export function cornerSideWidth(nodes, windowId, width) {
171
+ const window = nodes[windowId];
172
+ const pair = window?.type === 'window' ? cornerPair(nodes, window) : null;
173
+ if (!window || !pair)
174
+ return null;
175
+ const length = wallLengthOf(pair.wall);
176
+ const clamped = Math.max(0.1, Math.min(width, length));
177
+ const centre = pair.end === 'start' ? clamped / 2 : length - clamped / 2;
178
+ return { width: clamped, position: [centre, window.position[1], window.position[2]] };
179
+ }
@@ -0,0 +1,22 @@
1
+ import type { DoorNode } from '../schema/index.js';
2
+ import { type DoorType } from '../schema/nodes/opening-types.js';
3
+ /** A door type's own size: the door panel's Type row sets it, and add_door takes it when none is given. */
4
+ export declare const DOOR_TYPE_SIZES: Record<DoorType, {
5
+ width: number;
6
+ height: number;
7
+ }>;
8
+ type TypeSource = Partial<Pick<DoorNode, 'operationState' | 'slideDirection' | 'garagePanelCount'>>;
9
+ /**
10
+ * What a door type writes besides its size, for the door panel's Type row and add_door alike: its
11
+ * leaves, its track and the leaf it comes with (an agent's sliding door had no track, as the agent
12
+ * set doorType alone).
13
+ */
14
+ export declare function doorTypeFields(type: DoorType, door?: TypeSource): Partial<DoorNode>;
15
+ /**
16
+ * The door panel's Type row: the type's fields and size, the door kept on the floor, and a style
17
+ * the person chose kept (a modern door made sliding stays modern; a plain one made French takes
18
+ * the French glazing).
19
+ */
20
+ export declare function doorTypeChange(door: DoorNode, type: DoorType): Partial<DoorNode>;
21
+ export {};
22
+ //# sourceMappingURL=door-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"door-types.d.ts","sourceRoot":"","sources":["../../src/building/door-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,+BAA+B,CAAA;AAGlF,2GAA2G;AAC3G,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAW/E,CAAA;AAuCD,KAAK,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAA;AAEnG;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuFvF;AAcD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUhF"}