@pascal-app/core 1.0.4 → 1.0.6

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 (866) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +102 -90
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/add-object-cases.js +301 -1
  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.map +1 -1
  8. package/dist/agent-operations/__fixtures__/build-room-cases.js +410 -40
  9. package/dist/agent-operations/__fixtures__/cases.d.ts +18 -3
  10. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  11. package/dist/agent-operations/__fixtures__/cases.js +183 -4
  12. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
  13. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
  14. package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
  15. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
  16. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
  17. package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
  18. package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
  19. package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
  20. package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
  21. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
  22. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
  23. package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
  24. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
  25. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
  26. package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
  27. package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
  28. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
  29. package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
  30. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
  31. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
  32. package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
  33. package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
  34. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
  35. package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
  36. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
  37. package/dist/agent-operations/__fixtures__/place-items-cases.js +80 -2
  38. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
  39. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
  40. package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
  41. package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
  42. package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
  43. package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
  44. package/dist/agent-operations/__fixtures__/room-cases.d.ts +2 -1
  45. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
  46. package/dist/agent-operations/__fixtures__/room-cases.js +136 -1
  47. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
  48. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
  49. package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
  50. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
  51. package/dist/agent-operations/__fixtures__/search-assets-cases.js +15 -3
  52. package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
  53. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
  54. package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
  55. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +1 -0
  56. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
  57. package/dist/agent-operations/__fixtures__/structure-cases.js +630 -3
  58. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +311 -1
  59. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
  60. package/dist/agent-operations/__fixtures__/verify-scene-cases.js +59 -11
  61. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
  62. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
  63. package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
  64. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
  65. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
  66. package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
  67. package/dist/agent-operations/achieved.d.ts +5 -0
  68. package/dist/agent-operations/achieved.d.ts.map +1 -1
  69. package/dist/agent-operations/achieved.js +21 -1
  70. package/dist/agent-operations/add-column.d.ts.map +1 -1
  71. package/dist/agent-operations/add-column.js +3 -1
  72. package/dist/agent-operations/add-fence.d.ts +18 -0
  73. package/dist/agent-operations/add-fence.d.ts.map +1 -0
  74. package/dist/agent-operations/add-fence.js +48 -0
  75. package/dist/agent-operations/add-level.d.ts +4 -1
  76. package/dist/agent-operations/add-level.d.ts.map +1 -1
  77. package/dist/agent-operations/add-level.js +48 -12
  78. package/dist/agent-operations/add-object.d.ts +38 -9
  79. package/dist/agent-operations/add-object.d.ts.map +1 -1
  80. package/dist/agent-operations/add-object.js +172 -11
  81. package/dist/agent-operations/add-wall.d.ts +1 -3
  82. package/dist/agent-operations/add-wall.d.ts.map +1 -1
  83. package/dist/agent-operations/add-wall.js +35 -9
  84. package/dist/agent-operations/apply-changes.d.ts +7 -1
  85. package/dist/agent-operations/apply-changes.d.ts.map +1 -1
  86. package/dist/agent-operations/apply-changes.js +54 -22
  87. package/dist/agent-operations/apply-outcome.d.ts +6 -0
  88. package/dist/agent-operations/apply-outcome.d.ts.map +1 -1
  89. package/dist/agent-operations/apply-outcome.js +23 -8
  90. package/dist/agent-operations/asset-views.d.ts +75 -0
  91. package/dist/agent-operations/asset-views.d.ts.map +1 -0
  92. package/dist/agent-operations/asset-views.js +234 -0
  93. package/dist/agent-operations/author-scene.d.ts +157 -0
  94. package/dist/agent-operations/author-scene.d.ts.map +1 -0
  95. package/dist/agent-operations/author-scene.js +1076 -0
  96. package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
  97. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
  98. package/dist/agent-operations/authored-scene-merge.js +96 -0
  99. package/dist/agent-operations/batch.d.ts +22 -0
  100. package/dist/agent-operations/batch.d.ts.map +1 -0
  101. package/dist/agent-operations/batch.js +104 -0
  102. package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
  103. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
  104. package/dist/agent-operations/ceiling-object-observations.js +111 -0
  105. package/dist/agent-operations/corner-window.d.ts +19 -0
  106. package/dist/agent-operations/corner-window.d.ts.map +1 -0
  107. package/dist/agent-operations/corner-window.js +84 -0
  108. package/dist/agent-operations/create-roof.d.ts +32 -0
  109. package/dist/agent-operations/create-roof.d.ts.map +1 -0
  110. package/dist/agent-operations/create-roof.js +304 -0
  111. package/dist/agent-operations/create-room.d.ts +2 -0
  112. package/dist/agent-operations/create-room.d.ts.map +1 -1
  113. package/dist/agent-operations/create-room.js +73 -5
  114. package/dist/agent-operations/create-stair.d.ts +6 -28
  115. package/dist/agent-operations/create-stair.d.ts.map +1 -1
  116. package/dist/agent-operations/create-stair.js +187 -104
  117. package/dist/agent-operations/design-brief.d.ts +38 -0
  118. package/dist/agent-operations/design-brief.d.ts.map +1 -0
  119. package/dist/agent-operations/design-brief.js +300 -0
  120. package/dist/agent-operations/designs.d.ts +24 -0
  121. package/dist/agent-operations/designs.d.ts.map +1 -0
  122. package/dist/agent-operations/designs.js +48 -0
  123. package/dist/agent-operations/door-clearance.d.ts +16 -1
  124. package/dist/agent-operations/door-clearance.d.ts.map +1 -1
  125. package/dist/agent-operations/door-clearance.js +61 -4
  126. package/dist/agent-operations/duplicate-level.d.ts.map +1 -1
  127. package/dist/agent-operations/duplicate-level.js +2 -1
  128. package/dist/agent-operations/find-by-type.d.ts +14 -7
  129. package/dist/agent-operations/find-by-type.d.ts.map +1 -1
  130. package/dist/agent-operations/find-by-type.js +266 -43
  131. package/dist/agent-operations/furnish-room.d.ts +22 -1
  132. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  133. package/dist/agent-operations/furnish-room.js +66 -19
  134. package/dist/agent-operations/furniture-kind.d.ts +22 -0
  135. package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
  136. package/dist/agent-operations/furniture-kind.js +69 -0
  137. package/dist/agent-operations/get-node.d.ts +5 -2
  138. package/dist/agent-operations/get-node.d.ts.map +1 -1
  139. package/dist/agent-operations/get-node.js +82 -10
  140. package/dist/agent-operations/hosted-services.d.ts +2 -1
  141. package/dist/agent-operations/hosted-services.d.ts.map +1 -1
  142. package/dist/agent-operations/index.d.ts +281 -69
  143. package/dist/agent-operations/index.d.ts.map +1 -1
  144. package/dist/agent-operations/index.js +66 -5
  145. package/dist/agent-operations/item-space.d.ts +22 -0
  146. package/dist/agent-operations/item-space.d.ts.map +1 -0
  147. package/dist/agent-operations/item-space.js +69 -0
  148. package/dist/agent-operations/layout-clearance.d.ts +52 -3
  149. package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
  150. package/dist/agent-operations/layout-clearance.js +340 -30
  151. package/dist/agent-operations/level-height-fill.d.ts +12 -0
  152. package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
  153. package/dist/agent-operations/level-height-fill.js +59 -0
  154. package/dist/agent-operations/level-reads.d.ts +5 -1
  155. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  156. package/dist/agent-operations/level-reads.js +10 -3
  157. package/dist/agent-operations/list-levels.d.ts.map +1 -1
  158. package/dist/agent-operations/list-levels.js +23 -0
  159. package/dist/agent-operations/material-preset.d.ts.map +1 -1
  160. package/dist/agent-operations/material-preset.js +3 -9
  161. package/dist/agent-operations/material-refs.d.ts +7 -1
  162. package/dist/agent-operations/material-refs.d.ts.map +1 -1
  163. package/dist/agent-operations/material-refs.js +10 -5
  164. package/dist/agent-operations/merge-windows.d.ts +6 -0
  165. package/dist/agent-operations/merge-windows.d.ts.map +1 -0
  166. package/dist/agent-operations/merge-windows.js +27 -0
  167. package/dist/agent-operations/move-roofs.d.ts +9 -0
  168. package/dist/agent-operations/move-roofs.d.ts.map +1 -0
  169. package/dist/agent-operations/move-roofs.js +29 -0
  170. package/dist/agent-operations/paint.d.ts +2 -1
  171. package/dist/agent-operations/paint.d.ts.map +1 -1
  172. package/dist/agent-operations/paint.js +163 -53
  173. package/dist/agent-operations/photo-elevation.d.ts +155 -0
  174. package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
  175. package/dist/agent-operations/photo-elevation.js +761 -0
  176. package/dist/agent-operations/place-in-room.d.ts +29 -0
  177. package/dist/agent-operations/place-in-room.d.ts.map +1 -0
  178. package/dist/agent-operations/place-in-room.js +403 -0
  179. package/dist/agent-operations/place-items.d.ts.map +1 -1
  180. package/dist/agent-operations/place-items.js +15 -2
  181. package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
  182. package/dist/agent-operations/plan-geometry.js +3 -0
  183. package/dist/agent-operations/point-context.d.ts +139 -0
  184. package/dist/agent-operations/point-context.d.ts.map +1 -0
  185. package/dist/agent-operations/point-context.js +1 -0
  186. package/dist/agent-operations/project-files.d.ts +9 -0
  187. package/dist/agent-operations/project-files.d.ts.map +1 -0
  188. package/dist/agent-operations/project-files.js +25 -0
  189. package/dist/agent-operations/record-made.d.ts +18 -0
  190. package/dist/agent-operations/record-made.d.ts.map +1 -0
  191. package/dist/agent-operations/record-made.js +28 -0
  192. package/dist/agent-operations/roof-footprint.d.ts +24 -0
  193. package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
  194. package/dist/agent-operations/roof-footprint.js +242 -0
  195. package/dist/agent-operations/roof-writes.d.ts +20 -0
  196. package/dist/agent-operations/roof-writes.d.ts.map +1 -0
  197. package/dist/agent-operations/roof-writes.js +165 -0
  198. package/dist/agent-operations/room-findings.d.ts +54 -0
  199. package/dist/agent-operations/room-findings.d.ts.map +1 -0
  200. package/dist/agent-operations/room-findings.js +143 -0
  201. package/dist/agent-operations/room-floor-script.d.ts +23 -0
  202. package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
  203. package/dist/agent-operations/room-floor-script.js +54 -0
  204. package/dist/agent-operations/room-structure.d.ts +2 -2
  205. package/dist/agent-operations/room-structure.d.ts.map +1 -1
  206. package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
  207. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
  208. package/dist/agent-operations/scene-checkpoint.js +176 -0
  209. package/dist/agent-operations/scene-queries.d.ts +3750 -3319
  210. package/dist/agent-operations/scene-queries.d.ts.map +1 -1
  211. package/dist/agent-operations/scene-queries.js +13 -23
  212. package/dist/agent-operations/scene-review.d.ts +52 -0
  213. package/dist/agent-operations/scene-review.d.ts.map +1 -0
  214. package/dist/agent-operations/scene-review.js +106 -0
  215. package/dist/agent-operations/scene-view.d.ts +82 -15
  216. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  217. package/dist/agent-operations/scene-view.js +408 -51
  218. package/dist/agent-operations/search-assets.d.ts +2 -2
  219. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  220. package/dist/agent-operations/search-assets.js +4 -3
  221. package/dist/agent-operations/search-materials.d.ts +9 -3
  222. package/dist/agent-operations/search-materials.d.ts.map +1 -1
  223. package/dist/agent-operations/search-materials.js +83 -29
  224. package/dist/agent-operations/set-checkpoint.d.ts +9 -0
  225. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
  226. package/dist/agent-operations/set-checkpoint.js +31 -0
  227. package/dist/agent-operations/set-ground-level.d.ts +12 -0
  228. package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
  229. package/dist/agent-operations/set-ground-level.js +61 -0
  230. package/dist/agent-operations/site.d.ts +21 -0
  231. package/dist/agent-operations/site.d.ts.map +1 -0
  232. package/dist/agent-operations/site.js +123 -0
  233. package/dist/agent-operations/types.d.ts +66 -7
  234. package/dist/agent-operations/types.d.ts.map +1 -1
  235. package/dist/agent-operations/verify-scene.d.ts +39 -5
  236. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  237. package/dist/agent-operations/verify-scene.js +223 -44
  238. package/dist/agent-operations/wall-face-script.d.ts +28 -0
  239. package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
  240. package/dist/agent-operations/wall-face-script.js +62 -0
  241. package/dist/agent-operations/wall-object-observations.d.ts +41 -0
  242. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
  243. package/dist/agent-operations/wall-object-observations.js +249 -0
  244. package/dist/agent-operations/wall-opening.d.ts +23 -23
  245. package/dist/agent-operations/wall-opening.d.ts.map +1 -1
  246. package/dist/agent-operations/wall-skirting.d.ts +24 -0
  247. package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
  248. package/dist/agent-operations/wall-skirting.js +85 -0
  249. package/dist/agent-tools/add-object.d.ts +11 -7
  250. package/dist/agent-tools/add-object.d.ts.map +1 -1
  251. package/dist/agent-tools/add-object.js +17 -11
  252. package/dist/agent-tools/assets.d.ts +8 -0
  253. package/dist/agent-tools/assets.d.ts.map +1 -1
  254. package/dist/agent-tools/assets.js +13 -1
  255. package/dist/agent-tools/author-scene.d.ts +651 -0
  256. package/dist/agent-tools/author-scene.d.ts.map +1 -0
  257. package/dist/agent-tools/author-scene.js +252 -0
  258. package/dist/agent-tools/batch.d.ts +25 -0
  259. package/dist/agent-tools/batch.d.ts.map +1 -0
  260. package/dist/agent-tools/batch.js +61 -0
  261. package/dist/agent-tools/checkpoints.d.ts +13 -0
  262. package/dist/agent-tools/checkpoints.d.ts.map +1 -0
  263. package/dist/agent-tools/checkpoints.js +16 -0
  264. package/dist/agent-tools/clear-scene.d.ts.map +1 -1
  265. package/dist/agent-tools/collections.d.ts +6 -6
  266. package/dist/agent-tools/collections.d.ts.map +1 -1
  267. package/dist/agent-tools/columns.d.ts +18 -18
  268. package/dist/agent-tools/columns.js +2 -2
  269. package/dist/agent-tools/corner-window.d.ts +46 -0
  270. package/dist/agent-tools/corner-window.d.ts.map +1 -0
  271. package/dist/agent-tools/corner-window.js +47 -0
  272. package/dist/agent-tools/create-room.d.ts +26 -25
  273. package/dist/agent-tools/create-room.d.ts.map +1 -1
  274. package/dist/agent-tools/create-room.js +11 -4
  275. package/dist/agent-tools/design-brief.d.ts +408 -0
  276. package/dist/agent-tools/design-brief.d.ts.map +1 -0
  277. package/dist/agent-tools/design-brief.js +149 -0
  278. package/dist/agent-tools/designs.d.ts +34 -0
  279. package/dist/agent-tools/designs.d.ts.map +1 -0
  280. package/dist/agent-tools/designs.js +50 -0
  281. package/dist/agent-tools/fences.d.ts +28 -0
  282. package/dist/agent-tools/fences.d.ts.map +1 -0
  283. package/dist/agent-tools/fences.js +31 -0
  284. package/dist/agent-tools/find-by-type.d.ts +8 -1
  285. package/dist/agent-tools/find-by-type.d.ts.map +1 -1
  286. package/dist/agent-tools/find-by-type.js +23 -2
  287. package/dist/agent-tools/furnish-room.d.ts +10 -8
  288. package/dist/agent-tools/furnish-room.d.ts.map +1 -1
  289. package/dist/agent-tools/furnish-room.js +3 -1
  290. package/dist/agent-tools/hosted-services.d.ts +177 -141
  291. package/dist/agent-tools/hosted-services.d.ts.map +1 -1
  292. package/dist/agent-tools/hosted-services.js +47 -14
  293. package/dist/agent-tools/index.d.ts +894 -215
  294. package/dist/agent-tools/index.d.ts.map +1 -1
  295. package/dist/agent-tools/index.js +47 -3
  296. package/dist/agent-tools/levels.d.ts +11 -3
  297. package/dist/agent-tools/levels.d.ts.map +1 -1
  298. package/dist/agent-tools/levels.js +16 -5
  299. package/dist/agent-tools/measurement.d.ts +38 -20
  300. package/dist/agent-tools/measurement.d.ts.map +1 -1
  301. package/dist/agent-tools/measurement.js +117 -67
  302. package/dist/agent-tools/merge-windows.d.ts +10 -0
  303. package/dist/agent-tools/merge-windows.d.ts.map +1 -0
  304. package/dist/agent-tools/merge-windows.js +12 -0
  305. package/dist/agent-tools/nodes.d.ts.map +1 -1
  306. package/dist/agent-tools/nodes.js +1 -1
  307. package/dist/agent-tools/notation-inventory.d.ts +16 -0
  308. package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
  309. package/dist/agent-tools/notation-inventory.js +105 -0
  310. package/dist/agent-tools/paint.d.ts +5 -5
  311. package/dist/agent-tools/paint.d.ts.map +1 -1
  312. package/dist/agent-tools/paint.js +1 -1
  313. package/dist/agent-tools/photo-elevation.d.ts +32 -0
  314. package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
  315. package/dist/agent-tools/photo-elevation.js +73 -0
  316. package/dist/agent-tools/place-in-room.d.ts +35 -0
  317. package/dist/agent-tools/place-in-room.d.ts.map +1 -0
  318. package/dist/agent-tools/place-in-room.js +61 -0
  319. package/dist/agent-tools/place-items.d.ts +1 -1
  320. package/dist/agent-tools/place-items.js +2 -2
  321. package/dist/agent-tools/project-files.d.ts +189 -0
  322. package/dist/agent-tools/project-files.d.ts.map +1 -0
  323. package/dist/agent-tools/project-files.js +99 -0
  324. package/dist/agent-tools/refusal.d.ts.map +1 -1
  325. package/dist/agent-tools/retired.d.ts +21 -0
  326. package/dist/agent-tools/retired.d.ts.map +1 -0
  327. package/dist/agent-tools/retired.js +29 -0
  328. package/dist/agent-tools/roofs.d.ts +100 -0
  329. package/dist/agent-tools/roofs.d.ts.map +1 -0
  330. package/dist/agent-tools/roofs.js +96 -0
  331. package/dist/agent-tools/room-structure.d.ts +46 -38
  332. package/dist/agent-tools/room-structure.d.ts.map +1 -1
  333. package/dist/agent-tools/room-structure.js +30 -27
  334. package/dist/agent-tools/search-materials.d.ts +22 -3
  335. package/dist/agent-tools/search-materials.d.ts.map +1 -1
  336. package/dist/agent-tools/search-materials.js +13 -14
  337. package/dist/agent-tools/site.d.ts +27 -0
  338. package/dist/agent-tools/site.d.ts.map +1 -0
  339. package/dist/agent-tools/site.js +40 -0
  340. package/dist/agent-tools/sources.d.ts +12 -0
  341. package/dist/agent-tools/sources.d.ts.map +1 -0
  342. package/dist/agent-tools/sources.js +11 -0
  343. package/dist/agent-tools/stairs.d.ts +48 -28
  344. package/dist/agent-tools/stairs.d.ts.map +1 -1
  345. package/dist/agent-tools/stairs.js +65 -22
  346. package/dist/agent-tools/verify-scene.d.ts.map +1 -1
  347. package/dist/agent-tools/verify-scene.js +1 -1
  348. package/dist/agent-tools/view-scene.d.ts +50 -12
  349. package/dist/agent-tools/view-scene.d.ts.map +1 -1
  350. package/dist/agent-tools/view-scene.js +74 -31
  351. package/dist/agent-tools/wall-openings.d.ts +77 -73
  352. package/dist/agent-tools/wall-openings.d.ts.map +1 -1
  353. package/dist/agent-tools/wall-openings.js +9 -5
  354. package/dist/agent-tools/walls.d.ts +4 -4
  355. package/dist/agent-tools/walls.d.ts.map +1 -1
  356. package/dist/agent-tools/walls.js +7 -2
  357. package/dist/building/__fixtures__/wall-opening-cases.d.ts +454 -250
  358. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
  359. package/dist/building/__fixtures__/wall-opening-cases.js +62 -2
  360. package/dist/building/corner-window.d.ts +56 -0
  361. package/dist/building/corner-window.d.ts.map +1 -0
  362. package/dist/building/corner-window.js +179 -0
  363. package/dist/building/ground-level.d.ts +26 -0
  364. package/dist/building/ground-level.d.ts.map +1 -0
  365. package/dist/building/ground-level.js +58 -0
  366. package/dist/building/index.d.ts +5 -0
  367. package/dist/building/index.d.ts.map +1 -1
  368. package/dist/building/index.js +5 -0
  369. package/dist/building/level-duplication.d.ts +7472 -6613
  370. package/dist/building/level-duplication.d.ts.map +1 -1
  371. package/dist/building/level-duplication.js +18 -4
  372. package/dist/building/level-insertion.d.ts +55 -0
  373. package/dist/building/level-insertion.d.ts.map +1 -0
  374. package/dist/building/level-insertion.js +35 -0
  375. package/dist/building/merge-windows.d.ts +58 -0
  376. package/dist/building/merge-windows.d.ts.map +1 -0
  377. package/dist/building/merge-windows.js +189 -0
  378. package/dist/building/opening-style-presets.d.ts +2 -2
  379. package/dist/building/opening-style-presets.d.ts.map +1 -1
  380. package/dist/building/photo-elevation.d.ts +125 -0
  381. package/dist/building/photo-elevation.d.ts.map +1 -0
  382. package/dist/building/photo-elevation.js +404 -0
  383. package/dist/building/wall-gaps.d.ts +13 -0
  384. package/dist/building/wall-gaps.d.ts.map +1 -0
  385. package/dist/building/wall-gaps.js +158 -0
  386. package/dist/building/wall-openings.d.ts +154 -119
  387. package/dist/building/wall-openings.d.ts.map +1 -1
  388. package/dist/building/wall-openings.js +37 -9
  389. package/dist/capture/schema.d.ts +22 -22
  390. package/dist/capture/source.d.ts.map +1 -1
  391. package/dist/capture/source.js +1 -1
  392. package/dist/commands/structure/create-zone.d.ts +12 -1
  393. package/dist/commands/structure/create-zone.d.ts.map +1 -1
  394. package/dist/commands/structure/create-zone.js +49 -0
  395. package/dist/commands/structure/divide-zone.d.ts +3 -3
  396. package/dist/commands/structure/index.d.ts +1 -1
  397. package/dist/commands/structure/index.d.ts.map +1 -1
  398. package/dist/commands/structure/index.js +1 -1
  399. package/dist/commands/structure/set-floor-foundation.d.ts +6 -6
  400. package/dist/commands/structure/set-zone-intent.d.ts +4 -0
  401. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
  402. package/dist/commands/structure/set-zone-intent.js +19 -0
  403. package/dist/commands/structure/shared.d.ts +3642 -3213
  404. package/dist/commands/structure/shared.d.ts.map +1 -1
  405. package/dist/commands/structure/zone-wall-merge.d.ts +4149 -3334
  406. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
  407. package/dist/contracts/reference-inventory.d.ts.map +1 -1
  408. package/dist/contracts/reference-inventory.js +106 -26
  409. package/dist/events/bus.d.ts +22 -3
  410. package/dist/events/bus.d.ts.map +1 -1
  411. package/dist/events/capture-sessions.d.ts +5 -0
  412. package/dist/events/capture-sessions.d.ts.map +1 -0
  413. package/dist/events/capture-sessions.js +31 -0
  414. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  415. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +1 -2
  416. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  417. package/dist/hooks/spatial-grid/spatial-grid-manager.js +4 -6
  418. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3608 -3179
  419. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  420. package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
  421. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  422. package/dist/hooks/spatial-grid/support-host-patch.js +11 -2
  423. package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
  424. package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
  425. package/dist/index.d.ts +37 -9
  426. package/dist/index.d.ts.map +1 -1
  427. package/dist/index.js +36 -9
  428. package/dist/lib/__fixtures__/mezzanine.d.ts +11800 -10132
  429. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
  430. package/dist/lib/absorb-wall-separators.d.ts +3642 -3213
  431. package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
  432. package/dist/lib/angle-accumulator.d.ts.map +1 -1
  433. package/dist/lib/artifact-store.d.ts.map +1 -1
  434. package/dist/lib/below-grade-footprints.d.ts +65 -0
  435. package/dist/lib/below-grade-footprints.d.ts.map +1 -0
  436. package/dist/lib/below-grade-footprints.js +181 -0
  437. package/dist/lib/building-footprint.d.ts +33 -0
  438. package/dist/lib/building-footprint.d.ts.map +1 -0
  439. package/dist/lib/building-footprint.js +89 -0
  440. package/dist/lib/corner-pair.d.ts +1129 -0
  441. package/dist/lib/corner-pair.d.ts.map +1 -0
  442. package/dist/lib/corner-pair.js +130 -0
  443. package/dist/lib/corner-snap.d.ts +54 -0
  444. package/dist/lib/corner-snap.d.ts.map +1 -0
  445. package/dist/lib/corner-snap.js +125 -0
  446. package/dist/lib/critically-damped.d.ts +11 -0
  447. package/dist/lib/critically-damped.d.ts.map +1 -0
  448. package/dist/lib/critically-damped.js +14 -0
  449. package/dist/lib/deepest-drawn.d.ts +18 -0
  450. package/dist/lib/deepest-drawn.d.ts.map +1 -0
  451. package/dist/lib/deepest-drawn.js +65 -0
  452. package/dist/lib/door-operation.d.ts +1 -1
  453. package/dist/lib/exterior-wall-loops.d.ts +17 -0
  454. package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
  455. package/dist/lib/exterior-wall-loops.js +334 -0
  456. package/dist/lib/finish-script.d.ts +61 -0
  457. package/dist/lib/finish-script.d.ts.map +1 -0
  458. package/dist/lib/finish-script.js +86 -0
  459. package/dist/lib/floor-intent-changes.d.ts.map +1 -1
  460. package/dist/lib/floor-intent-changes.js +4 -4
  461. package/dist/lib/floor-plate-paint.d.ts +3 -1
  462. package/dist/lib/floor-plate-paint.d.ts.map +1 -1
  463. package/dist/lib/floor-plate-paint.js +24 -4
  464. package/dist/lib/floor-plates.d.ts +50 -50
  465. package/dist/lib/floor-script.d.ts +24 -0
  466. package/dist/lib/floor-script.d.ts.map +1 -0
  467. package/dist/lib/floor-script.js +51 -0
  468. package/dist/lib/foundation-construction.d.ts +73 -0
  469. package/dist/lib/foundation-construction.d.ts.map +1 -0
  470. package/dist/lib/foundation-construction.js +242 -0
  471. package/dist/lib/foundation-standard.d.ts +30 -0
  472. package/dist/lib/foundation-standard.d.ts.map +1 -0
  473. package/dist/lib/foundation-standard.js +30 -0
  474. package/dist/lib/foundation-wall.d.ts +36 -0
  475. package/dist/lib/foundation-wall.d.ts.map +1 -0
  476. package/dist/lib/foundation-wall.js +66 -0
  477. package/dist/lib/generic-foundation.d.ts +40 -0
  478. package/dist/lib/generic-foundation.d.ts.map +1 -0
  479. package/dist/lib/generic-foundation.js +200 -0
  480. package/dist/lib/geometry-script-node.d.ts +32 -3
  481. package/dist/lib/geometry-script-node.d.ts.map +1 -1
  482. package/dist/lib/geometry-script-node.js +26 -0
  483. package/dist/lib/grade-standing.d.ts +38 -0
  484. package/dist/lib/grade-standing.d.ts.map +1 -0
  485. package/dist/lib/grade-standing.js +137 -0
  486. package/dist/lib/ground-level.d.ts +20 -0
  487. package/dist/lib/ground-level.d.ts.map +1 -0
  488. package/dist/lib/ground-level.js +49 -0
  489. package/dist/lib/ground-over-part.d.ts +13 -0
  490. package/dist/lib/ground-over-part.d.ts.map +1 -0
  491. package/dist/lib/ground-over-part.js +94 -0
  492. package/dist/lib/ground-seat.d.ts +47 -0
  493. package/dist/lib/ground-seat.d.ts.map +1 -0
  494. package/dist/lib/ground-seat.js +61 -0
  495. package/dist/lib/ground-window.d.ts +39 -0
  496. package/dist/lib/ground-window.d.ts.map +1 -0
  497. package/dist/lib/ground-window.js +147 -0
  498. package/dist/lib/opening-floor-datum.d.ts.map +1 -1
  499. package/dist/lib/opening-floor-datum.js +2 -3
  500. package/dist/lib/own-floor-intent.d.ts.map +1 -1
  501. package/dist/lib/own-floor-intent.js +4 -4
  502. package/dist/lib/plate-surface.d.ts.map +1 -1
  503. package/dist/lib/plate-surface.js +3 -1
  504. package/dist/lib/point-ask.d.ts +9 -0
  505. package/dist/lib/point-ask.d.ts.map +1 -0
  506. package/dist/lib/point-ask.js +36 -0
  507. package/dist/lib/room-drawn-floor.d.ts +1 -1
  508. package/dist/lib/room-drawn-floor.d.ts.map +1 -1
  509. package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
  510. package/dist/lib/room-floor-feasibility.js +3 -3
  511. package/dist/lib/room-graph.d.ts.map +1 -1
  512. package/dist/lib/room-graph.js +2 -0
  513. package/dist/lib/room-name.d.ts +2 -0
  514. package/dist/lib/room-name.d.ts.map +1 -1
  515. package/dist/lib/room-name.js +2 -0
  516. package/dist/lib/room-topology-index.d.ts.map +1 -1
  517. package/dist/lib/room-topology-index.js +1 -1
  518. package/dist/lib/room-zone-adoption.d.ts.map +1 -1
  519. package/dist/lib/script-inputs-key.d.ts +3 -0
  520. package/dist/lib/script-inputs-key.d.ts.map +1 -0
  521. package/dist/lib/script-inputs-key.js +13 -0
  522. package/dist/lib/setback-envelope.d.ts +95 -5
  523. package/dist/lib/setback-envelope.d.ts.map +1 -1
  524. package/dist/lib/setback-envelope.js +351 -35
  525. package/dist/lib/site-flatwork.d.ts +11 -0
  526. package/dist/lib/site-flatwork.d.ts.map +1 -0
  527. package/dist/lib/site-flatwork.js +11 -0
  528. package/dist/lib/site-ground-height.d.ts +13 -0
  529. package/dist/lib/site-ground-height.d.ts.map +1 -0
  530. package/dist/lib/site-ground-height.js +16 -0
  531. package/dist/lib/site-placement.d.ts +362 -0
  532. package/dist/lib/site-placement.d.ts.map +1 -0
  533. package/dist/lib/site-placement.js +942 -0
  534. package/dist/lib/snap-ease.d.ts +20 -0
  535. package/dist/lib/snap-ease.d.ts.map +1 -0
  536. package/dist/lib/snap-ease.js +50 -0
  537. package/dist/lib/structure-kernel.d.ts +1 -1
  538. package/dist/lib/structure-kernel.d.ts.map +1 -1
  539. package/dist/lib/structure-kernel.js +2 -0
  540. package/dist/lib/surface-support-references.d.ts +4 -0
  541. package/dist/lib/surface-support-references.d.ts.map +1 -0
  542. package/dist/lib/surface-support-references.js +19 -0
  543. package/dist/lib/terrain-support-query.d.ts +10 -0
  544. package/dist/lib/terrain-support-query.d.ts.map +1 -1
  545. package/dist/lib/terrain-support-query.js +1 -1
  546. package/dist/lib/wall-face-script.d.ts +66 -0
  547. package/dist/lib/wall-face-script.d.ts.map +1 -0
  548. package/dist/lib/wall-face-script.js +235 -0
  549. package/dist/lib/zone-colors.d.ts +1 -1
  550. package/dist/lib/zone-colors.d.ts.map +1 -1
  551. package/dist/lib/zone-quantities.d.ts.map +1 -1
  552. package/dist/lib/zone-quantities.js +4 -5
  553. package/dist/material-kinds.d.ts +9 -0
  554. package/dist/material-kinds.d.ts.map +1 -0
  555. package/dist/material-kinds.js +30 -0
  556. package/dist/material-library.d.ts +4 -4
  557. package/dist/material-library.d.ts.map +1 -1
  558. package/dist/material-library.js +72 -26
  559. package/dist/node-slots/index.d.ts +1 -0
  560. package/dist/node-slots/index.d.ts.map +1 -1
  561. package/dist/node-slots/index.js +7 -1
  562. package/dist/node-slots/roof.d.ts +5 -0
  563. package/dist/node-slots/roof.d.ts.map +1 -0
  564. package/dist/node-slots/roof.js +12 -0
  565. package/dist/node-slots/stair.d.ts +2 -0
  566. package/dist/node-slots/stair.d.ts.map +1 -1
  567. package/dist/node-slots/stair.js +6 -2
  568. package/dist/procedural-items/design-placement.d.ts.map +1 -1
  569. package/dist/procedural-items/design.d.ts +19 -19
  570. package/dist/procedural-items/fixtures.d.ts +297 -297
  571. package/dist/procedural-items/fixtures.d.ts.map +1 -1
  572. package/dist/procedural-items/integration.d.ts +106 -106
  573. package/dist/procedural-items/joints.d.ts +4 -4
  574. package/dist/procedural-items/library-colors.d.ts +22 -22
  575. package/dist/procedural-items/library-colors.d.ts.map +1 -1
  576. package/dist/procedural-items/motion-controller.d.ts.map +1 -1
  577. package/dist/procedural-items/node.d.ts +291 -291
  578. package/dist/procedural-items/query.d.ts +1 -1
  579. package/dist/procedural-items/query.d.ts.map +1 -1
  580. package/dist/procedural-items/recipe.d.ts +11 -11
  581. package/dist/procedural-items/recipe.d.ts.map +1 -1
  582. package/dist/procedural-items/section.d.ts.map +1 -1
  583. package/dist/registry/index.d.ts +1 -1
  584. package/dist/registry/index.d.ts.map +1 -1
  585. package/dist/registry/scene-api.d.ts +1 -0
  586. package/dist/registry/scene-api.d.ts.map +1 -1
  587. package/dist/registry/scene-api.js +3 -0
  588. package/dist/registry/subtree.d.ts.map +1 -1
  589. package/dist/registry/subtree.js +2 -0
  590. package/dist/registry/types.d.ts +120 -1
  591. package/dist/registry/types.d.ts.map +1 -1
  592. package/dist/schema/assembly.d.ts +41 -41
  593. package/dist/schema/asset-url.d.ts +1 -1
  594. package/dist/schema/asset-url.d.ts.map +1 -1
  595. package/dist/schema/base.d.ts +9 -9
  596. package/dist/schema/base.d.ts.map +1 -1
  597. package/dist/schema/camera.d.ts +1 -1
  598. package/dist/schema/collection-templates.d.ts +20 -20
  599. package/dist/schema/collection-templates.d.ts.map +1 -1
  600. package/dist/schema/geometry-metadata.d.ts +7 -7
  601. package/dist/schema/geometry-metadata.d.ts.map +1 -1
  602. package/dist/schema/geometry-source.d.ts +26 -16
  603. package/dist/schema/geometry-source.d.ts.map +1 -1
  604. package/dist/schema/geometry-source.js +14 -0
  605. package/dist/schema/index.d.ts +10 -7
  606. package/dist/schema/index.d.ts.map +1 -1
  607. package/dist/schema/index.js +10 -7
  608. package/dist/schema/material.d.ts +33 -33
  609. package/dist/schema/nodes/barrel-roof.d.ts +3 -0
  610. package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
  611. package/dist/schema/nodes/barrel-roof.js +11 -0
  612. package/dist/schema/nodes/block.d.ts +8 -8
  613. package/dist/schema/nodes/box-vent.d.ts +13 -13
  614. package/dist/schema/nodes/building.d.ts +9 -8
  615. package/dist/schema/nodes/building.d.ts.map +1 -1
  616. package/dist/schema/nodes/building.js +2 -0
  617. package/dist/schema/nodes/cabinet.d.ts +130 -129
  618. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  619. package/dist/schema/nodes/cabinet.js +1 -1
  620. package/dist/schema/nodes/ceiling.d.ts +15 -15
  621. package/dist/schema/nodes/chimney.d.ts +23 -23
  622. package/dist/schema/nodes/column.d.ts +207 -199
  623. package/dist/schema/nodes/column.d.ts.map +1 -1
  624. package/dist/schema/nodes/column.js +2 -0
  625. package/dist/schema/nodes/construction-dimension.d.ts +34 -34
  626. package/dist/schema/nodes/cupola.d.ts +15 -15
  627. package/dist/schema/nodes/curtain-wall.d.ts +21 -20
  628. package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
  629. package/dist/schema/nodes/curtain-wall.js +23 -0
  630. package/dist/schema/nodes/door.d.ts +50 -43
  631. package/dist/schema/nodes/door.d.ts.map +1 -1
  632. package/dist/schema/nodes/door.js +19 -0
  633. package/dist/schema/nodes/dormer.d.ts +37 -36
  634. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  635. package/dist/schema/nodes/downspout.d.ts +17 -17
  636. package/dist/schema/nodes/duct-fitting.d.ts +24 -24
  637. package/dist/schema/nodes/duct-segment.d.ts +14 -14
  638. package/dist/schema/nodes/duct-terminal.d.ts +12 -12
  639. package/dist/schema/nodes/elevator.d.ts +15 -15
  640. package/dist/schema/nodes/eyebrow-vent.d.ts +13 -13
  641. package/dist/schema/nodes/fence-feature.d.ts +37 -37
  642. package/dist/schema/nodes/fence-types.d.ts +32 -0
  643. package/dist/schema/nodes/fence-types.d.ts.map +1 -0
  644. package/dist/schema/nodes/fence-types.js +22 -0
  645. package/dist/schema/nodes/fence.d.ts +43 -72
  646. package/dist/schema/nodes/fence.d.ts.map +1 -1
  647. package/dist/schema/nodes/fence.js +4 -20
  648. package/dist/schema/nodes/floor-opening.d.ts +8 -8
  649. package/dist/schema/nodes/guide.d.ts +8 -8
  650. package/dist/schema/nodes/gutter.d.ts +14 -14
  651. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  652. package/dist/schema/nodes/gutter.js +6 -5
  653. package/dist/schema/nodes/hvac-equipment.d.ts +13 -13
  654. package/dist/schema/nodes/imported-mesh.d.ts +8 -8
  655. package/dist/schema/nodes/item.d.ts +30 -25
  656. package/dist/schema/nodes/item.d.ts.map +1 -1
  657. package/dist/schema/nodes/lean-to-extension.d.ts +36 -36
  658. package/dist/schema/nodes/level.d.ts +9 -9
  659. package/dist/schema/nodes/lineset.d.ts +8 -8
  660. package/dist/schema/nodes/liquid-line.d.ts +8 -8
  661. package/dist/schema/nodes/measurement.d.ts +8 -8
  662. package/dist/schema/nodes/opening-types.d.ts +13 -13
  663. package/dist/schema/nodes/opening-types.d.ts.map +1 -1
  664. package/dist/schema/nodes/pipe-fitting.d.ts +15 -15
  665. package/dist/schema/nodes/pipe-segment.d.ts +11 -11
  666. package/dist/schema/nodes/pipe-trap.d.ts +9 -9
  667. package/dist/schema/nodes/ridge-vent.d.ts +14 -14
  668. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  669. package/dist/schema/nodes/ridge-vent.js +3 -1
  670. package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
  671. package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
  672. package/dist/schema/nodes/roof-glazing-config.js +34 -0
  673. package/dist/schema/nodes/roof-glazing.d.ts +57 -0
  674. package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
  675. package/dist/schema/nodes/roof-glazing.js +514 -0
  676. package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
  677. package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
  678. package/dist/schema/nodes/roof-segment-resize.js +21 -0
  679. package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
  680. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
  681. package/dist/schema/nodes/roof-segment-shape.js +44 -0
  682. package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
  683. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  684. package/dist/schema/nodes/roof-segment-walls.js +24 -0
  685. package/dist/schema/nodes/roof-segment.d.ts +153 -46
  686. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  687. package/dist/schema/nodes/roof-segment.js +91 -20
  688. package/dist/schema/nodes/roof-types.d.ts +14 -0
  689. package/dist/schema/nodes/roof-types.d.ts.map +1 -0
  690. package/dist/schema/nodes/roof-types.js +14 -0
  691. package/dist/schema/nodes/roof.d.ts +49 -49
  692. package/dist/schema/nodes/scan.d.ts +8 -8
  693. package/dist/schema/nodes/separator.d.ts +8 -8
  694. package/dist/schema/nodes/shelf.d.ts +16 -16
  695. package/dist/schema/nodes/site-facts.d.ts +64 -0
  696. package/dist/schema/nodes/site-facts.d.ts.map +1 -0
  697. package/dist/schema/nodes/site-facts.js +73 -0
  698. package/dist/schema/nodes/site.d.ts +105 -63
  699. package/dist/schema/nodes/site.d.ts.map +1 -1
  700. package/dist/schema/nodes/site.js +7 -70
  701. package/dist/schema/nodes/skylight.d.ts +41 -41
  702. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  703. package/dist/schema/nodes/slab.d.ts +21 -21
  704. package/dist/schema/nodes/solar-panel.d.ts +21 -21
  705. package/dist/schema/nodes/spawn.d.ts +8 -8
  706. package/dist/schema/nodes/stair-construction.d.ts +3 -3
  707. package/dist/schema/nodes/stair-defaults.d.ts +16 -0
  708. package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
  709. package/dist/schema/nodes/stair-defaults.js +15 -0
  710. package/dist/schema/nodes/stair-segment.d.ts +22 -22
  711. package/dist/schema/nodes/stair-types.d.ts +29 -0
  712. package/dist/schema/nodes/stair-types.d.ts.map +1 -0
  713. package/dist/schema/nodes/stair-types.js +23 -0
  714. package/dist/schema/nodes/stair.d.ts +51 -75
  715. package/dist/schema/nodes/stair.d.ts.map +1 -1
  716. package/dist/schema/nodes/stair.js +6 -20
  717. package/dist/schema/nodes/structural-grid.d.ts +8 -8
  718. package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -2
  719. package/dist/schema/nodes/turbine-vent.d.ts +13 -13
  720. package/dist/schema/nodes/unit.d.ts +10 -10
  721. package/dist/schema/nodes/unit.d.ts.map +1 -1
  722. package/dist/schema/nodes/wall.d.ts +479 -146
  723. package/dist/schema/nodes/wall.d.ts.map +1 -1
  724. package/dist/schema/nodes/wall.js +19 -0
  725. package/dist/schema/nodes/window.d.ts +55 -39
  726. package/dist/schema/nodes/window.d.ts.map +1 -1
  727. package/dist/schema/nodes/window.js +10 -0
  728. package/dist/schema/nodes/zone.d.ts +231 -12
  729. package/dist/schema/nodes/zone.d.ts.map +1 -1
  730. package/dist/schema/nodes/zone.js +10 -0
  731. package/dist/schema/provenance.d.ts +21 -21
  732. package/dist/schema/scene-material.d.ts +5 -5
  733. package/dist/schema/site-presentation.d.ts +100 -0
  734. package/dist/schema/site-presentation.d.ts.map +1 -0
  735. package/dist/schema/site-presentation.js +83 -0
  736. package/dist/schema/types.d.ts +1954 -1414
  737. package/dist/schema/types.d.ts.map +1 -1
  738. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
  739. package/dist/services/index.d.ts +5 -1
  740. package/dist/services/index.d.ts.map +1 -1
  741. package/dist/services/index.js +5 -1
  742. package/dist/services/level-height.d.ts.map +1 -1
  743. package/dist/services/level-height.js +7 -3
  744. package/dist/services/port-connectivity.d.ts +4 -0
  745. package/dist/services/port-connectivity.d.ts.map +1 -1
  746. package/dist/services/port-connectivity.js +35 -0
  747. package/dist/services/project-file-sink.d.ts +9 -0
  748. package/dist/services/project-file-sink.d.ts.map +1 -0
  749. package/dist/services/project-file-sink.js +13 -0
  750. package/dist/services/roof-bearing.d.ts +62 -0
  751. package/dist/services/roof-bearing.d.ts.map +1 -0
  752. package/dist/services/roof-bearing.js +234 -0
  753. package/dist/services/roof-level.d.ts +121 -0
  754. package/dist/services/roof-level.d.ts.map +1 -0
  755. package/dist/services/roof-level.js +280 -0
  756. package/dist/services/roof-move.d.ts +83 -0
  757. package/dist/services/roof-move.d.ts.map +1 -0
  758. package/dist/services/roof-move.js +316 -0
  759. package/dist/services/stair-surface-snap.d.ts +14 -0
  760. package/dist/services/stair-surface-snap.d.ts.map +1 -0
  761. package/dist/services/stair-surface-snap.js +116 -0
  762. package/dist/services/storey-datum.d.ts +12 -0
  763. package/dist/services/storey-datum.d.ts.map +1 -0
  764. package/dist/services/storey-datum.js +18 -0
  765. package/dist/services/storey.d.ts +51 -5
  766. package/dist/services/storey.d.ts.map +1 -1
  767. package/dist/services/storey.js +125 -8
  768. package/dist/solar-panel-presets.d.ts +2 -2
  769. package/dist/store/actions/node-actions.d.ts +3613 -3182
  770. package/dist/store/actions/node-actions.d.ts.map +1 -1
  771. package/dist/store/actions/node-actions.js +46 -1
  772. package/dist/store/derived-node-guard.d.ts.map +1 -1
  773. package/dist/store/history-control.d.ts +39 -0
  774. package/dist/store/history-control.d.ts.map +1 -1
  775. package/dist/store/history-control.js +84 -4
  776. package/dist/store/scene-annotations.d.ts +7267 -6409
  777. package/dist/store/scene-annotations.d.ts.map +1 -1
  778. package/dist/store/scene-preview.d.ts +16 -0
  779. package/dist/store/scene-preview.d.ts.map +1 -0
  780. package/dist/store/scene-preview.js +144 -0
  781. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  782. package/dist/store/use-live-terrain.d.ts.map +1 -1
  783. package/dist/store/use-live-transforms.d.ts.map +1 -1
  784. package/dist/store/use-scene.d.ts.map +1 -1
  785. package/dist/store/use-scene.js +37 -4
  786. package/dist/systems/elevator/elevator-dispatch.js +1 -1
  787. package/dist/systems/fence/fence-features.d.ts.map +1 -1
  788. package/dist/systems/owned-floor-openings.d.ts.map +1 -1
  789. package/dist/systems/owned-floor-openings.js +24 -3
  790. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  791. package/dist/systems/roof/roof-elevation-system.js +9 -3
  792. package/dist/systems/roof/roof-elevation.d.ts +5 -0
  793. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  794. package/dist/systems/roof/roof-elevation.js +91 -62
  795. package/dist/systems/slab/__fixtures__/floor-step.d.ts +4623 -3516
  796. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
  797. package/dist/systems/slab/__fixtures__/raised-room.d.ts +5149 -4076
  798. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
  799. package/dist/systems/slab/slab-support.d.ts +6 -3
  800. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  801. package/dist/systems/slab/slab-support.js +78 -10
  802. package/dist/systems/stair/stair-detail-budget.d.ts +2 -2
  803. package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -1
  804. package/dist/systems/stair/stair-footprint.d.ts +6 -0
  805. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  806. package/dist/systems/stair/stair-footprint.js +27 -14
  807. package/dist/systems/stair/stair-layout.d.ts +2 -2
  808. package/dist/systems/stair/stair-opening-preview.d.ts +3643 -3214
  809. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  810. package/dist/systems/stair/stair-presets.d.ts +73 -65
  811. package/dist/systems/stair/stair-presets.d.ts.map +1 -1
  812. package/dist/systems/stair/stair-presets.js +16 -9
  813. package/dist/systems/stair/stair-rail-path.d.ts +1 -1
  814. package/dist/systems/stair/stair-rise-query.d.ts +16 -0
  815. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
  816. package/dist/systems/stair/stair-rise-query.js +57 -7
  817. package/dist/systems/stair/stair-sizing.d.ts +101 -99
  818. package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
  819. package/dist/systems/wall/wall-assembly.d.ts +11 -0
  820. package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
  821. package/dist/systems/wall/wall-assembly.js +21 -0
  822. package/dist/systems/wall/wall-curve.d.ts +5 -0
  823. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  824. package/dist/systems/wall/wall-curve.js +13 -0
  825. package/dist/systems/wall/wall-frame.d.ts.map +1 -1
  826. package/dist/systems/wall/wall-frame.js +8 -0
  827. package/dist/systems/wall/wall-room-sides.d.ts +8 -0
  828. package/dist/systems/wall/wall-room-sides.d.ts.map +1 -1
  829. package/dist/systems/wall/wall-room-sides.js +60 -7
  830. package/dist/systems/wall/wall-top.d.ts +7 -4
  831. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  832. package/dist/systems/wall/wall-top.js +14 -6
  833. package/dist/systems/wall/wall-topology.d.ts +4 -0
  834. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  835. package/dist/systems/wall/wall-topology.js +4 -2
  836. package/dist/systems/wall/wall-trim.d.ts +7 -0
  837. package/dist/systems/wall/wall-trim.d.ts.map +1 -0
  838. package/dist/systems/wall/wall-trim.js +10 -0
  839. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  840. package/dist/utils/clone-scene-graph.js +8 -0
  841. package/dist/utils/ensure-scene-openings.d.ts +7420 -6562
  842. package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
  843. package/dist/utils/floor-piece-adoption.d.ts +2 -2
  844. package/dist/utils/floor-plate-migration.d.ts +3746 -3317
  845. package/dist/utils/floor-plate-migration.d.ts.map +1 -1
  846. package/dist/utils/floor-plate-migration.js +2 -2
  847. package/dist/utils/heal-scene-graph.d.ts +12 -0
  848. package/dist/utils/heal-scene-graph.d.ts.map +1 -1
  849. package/dist/utils/heal-scene-graph.js +40 -23
  850. package/dist/utils/legacy-wall-datums.d.ts.map +1 -1
  851. package/dist/utils/legacy-wall-datums.js +2 -2
  852. package/dist/utils/owned-floor-opening-migration.d.ts +3642 -3213
  853. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
  854. package/dist/utils/reconcile-structure-on-load.d.ts +3730 -7777
  855. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
  856. package/dist/utils/scene-migrations.d.ts +1 -1
  857. package/dist/utils/scene-migrations.d.ts.map +1 -1
  858. package/dist/utils/scene-migrations.js +1 -1
  859. package/dist/utils/semantic-equal.d.ts +3 -0
  860. package/dist/utils/semantic-equal.d.ts.map +1 -0
  861. package/dist/utils/semantic-equal.js +26 -0
  862. package/dist/utils/structure-id.d.ts.map +1 -1
  863. package/dist/utils/types.d.ts.map +1 -1
  864. package/dist/utils/wall-face-migration.d.ts +1 -1
  865. package/dist/utils/wall-face-migration.d.ts.map +1 -1
  866. package/package.json +36 -10
@@ -25,52 +25,40 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
25
25
  }): {
26
26
  plates: {
27
27
  object: "node";
28
+ name?: string | undefined;
28
29
  parentId: string | null;
29
30
  visible: boolean;
30
- metadata: Record<string, unknown>;
31
- id: `slab_${string}`;
32
- type: "slab";
33
- polygon: [number, number][];
34
- holes: [number, number][][];
35
- holeMetadata: {
36
- source: "stair" | "elevator" | "manual" | "room" | "floor-opening";
37
- openingId?: string | undefined;
38
- stairId?: string | undefined;
39
- elevatorId?: string | undefined;
40
- }[];
41
- elevation: number;
42
- thickness: number;
43
- recessed: boolean;
44
- autoFromWalls: boolean;
45
- name?: string | undefined;
46
31
  camera?: {
47
32
  position: [number, number, number];
48
33
  target: [number, number, number];
49
- mode: "perspective" | "orthographic";
34
+ mode: "orthographic" | "perspective";
50
35
  fov?: number | undefined;
51
36
  zoom?: number | undefined;
52
37
  } | undefined;
38
+ metadata: Record<string, unknown>;
53
39
  provenance?: {
54
40
  refs: {
55
- id: string;
56
41
  ns?: string | undefined;
57
- role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
42
+ id: string;
43
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
58
44
  }[];
59
45
  lineage?: {
60
- op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
46
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
61
47
  fromIds: string[];
62
48
  } | undefined;
63
49
  } | undefined;
50
+ id: `slab_${string}`;
51
+ type: "slab";
64
52
  material?: {
65
53
  id?: string | undefined;
66
- preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
54
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
67
55
  properties?: {
68
56
  color: string;
69
57
  roughness: number;
70
58
  metalness: number;
71
59
  opacity: number;
72
60
  transparent: boolean;
73
- side: "front" | "back" | "double";
61
+ side: "back" | "double" | "front";
74
62
  } | undefined;
75
63
  texture?: {
76
64
  url: string;
@@ -80,20 +68,29 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
80
68
  } | undefined;
81
69
  materialPreset?: string | undefined;
82
70
  slots?: Record<string, string> | undefined;
71
+ polygon: [number, number][];
72
+ holes: [number, number][][];
73
+ holeMetadata: {
74
+ source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
75
+ openingId?: string | undefined;
76
+ stairId?: string | undefined;
77
+ elevatorId?: string | undefined;
78
+ }[];
79
+ elevation: number;
83
80
  floorHeight?: number | undefined;
84
81
  referenceFloorElevation?: number | undefined;
85
82
  foundation?: {
86
- type: "solid" | "none";
83
+ type: "none" | "solid";
87
84
  material?: string | {
88
85
  id?: string | undefined;
89
- preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
86
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
90
87
  properties?: {
91
88
  color: string;
92
89
  roughness: number;
93
90
  metalness: number;
94
91
  opacity: number;
95
92
  transparent: boolean;
96
- side: "front" | "back" | "double";
93
+ side: "back" | "double" | "front";
97
94
  } | undefined;
98
95
  texture?: {
99
96
  url: string;
@@ -102,6 +99,8 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
102
99
  } | undefined;
103
100
  } | undefined;
104
101
  } | undefined;
102
+ thickness: number;
103
+ recessed: boolean;
105
104
  recessedRimElevation?: number | undefined;
106
105
  fillToTerrain?: boolean | undefined;
107
106
  boundary?: "auto" | undefined;
@@ -113,55 +112,44 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
113
112
  }[] | undefined;
114
113
  zoneIds?: string[] | undefined;
115
114
  associatedZoneIds?: string[] | undefined;
115
+ autoFromWalls: boolean;
116
116
  }[];
117
117
  retired: {
118
118
  object: "node";
119
+ name?: string | undefined;
119
120
  parentId: string | null;
120
121
  visible: boolean;
121
- metadata: Record<string, unknown>;
122
- id: `slab_${string}`;
123
- type: "slab";
124
- polygon: [number, number][];
125
- holes: [number, number][][];
126
- holeMetadata: {
127
- source: "stair" | "elevator" | "manual" | "room" | "floor-opening";
128
- openingId?: string | undefined;
129
- stairId?: string | undefined;
130
- elevatorId?: string | undefined;
131
- }[];
132
- elevation: number;
133
- thickness: number;
134
- recessed: boolean;
135
- autoFromWalls: boolean;
136
- name?: string | undefined;
137
122
  camera?: {
138
123
  position: [number, number, number];
139
124
  target: [number, number, number];
140
- mode: "perspective" | "orthographic";
125
+ mode: "orthographic" | "perspective";
141
126
  fov?: number | undefined;
142
127
  zoom?: number | undefined;
143
128
  } | undefined;
129
+ metadata: Record<string, unknown>;
144
130
  provenance?: {
145
131
  refs: {
146
- id: string;
147
132
  ns?: string | undefined;
148
- role?: "primary" | "piece" | "absorbed" | "alias" | "derived" | undefined;
133
+ id: string;
134
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
149
135
  }[];
150
136
  lineage?: {
151
- op: "import" | "split" | "merge" | "duplicate" | "convert" | "promote" | "make-independent" | "attach";
137
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
152
138
  fromIds: string[];
153
139
  } | undefined;
154
140
  } | undefined;
141
+ id: `slab_${string}`;
142
+ type: "slab";
155
143
  material?: {
156
144
  id?: string | undefined;
157
- preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
145
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
158
146
  properties?: {
159
147
  color: string;
160
148
  roughness: number;
161
149
  metalness: number;
162
150
  opacity: number;
163
151
  transparent: boolean;
164
- side: "front" | "back" | "double";
152
+ side: "back" | "double" | "front";
165
153
  } | undefined;
166
154
  texture?: {
167
155
  url: string;
@@ -171,20 +159,29 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
171
159
  } | undefined;
172
160
  materialPreset?: string | undefined;
173
161
  slots?: Record<string, string> | undefined;
162
+ polygon: [number, number][];
163
+ holes: [number, number][][];
164
+ holeMetadata: {
165
+ source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
166
+ openingId?: string | undefined;
167
+ stairId?: string | undefined;
168
+ elevatorId?: string | undefined;
169
+ }[];
170
+ elevation: number;
174
171
  floorHeight?: number | undefined;
175
172
  referenceFloorElevation?: number | undefined;
176
173
  foundation?: {
177
- type: "solid" | "none";
174
+ type: "none" | "solid";
178
175
  material?: string | {
179
176
  id?: string | undefined;
180
- preset?: "custom" | "white" | "brick" | "concrete" | "wood" | "glass" | "metal" | "plaster" | "tile" | "marble" | undefined;
177
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
181
178
  properties?: {
182
179
  color: string;
183
180
  roughness: number;
184
181
  metalness: number;
185
182
  opacity: number;
186
183
  transparent: boolean;
187
- side: "front" | "back" | "double";
184
+ side: "back" | "double" | "front";
188
185
  } | undefined;
189
186
  texture?: {
190
187
  url: string;
@@ -193,6 +190,8 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
193
190
  } | undefined;
194
191
  } | undefined;
195
192
  } | undefined;
193
+ thickness: number;
194
+ recessed: boolean;
196
195
  recessedRimElevation?: number | undefined;
197
196
  fillToTerrain?: boolean | undefined;
198
197
  boundary?: "auto" | undefined;
@@ -204,6 +203,7 @@ export declare function buildFloorPlates({ rooms, slabs, levelId, mintId, retire
204
203
  }[] | undefined;
205
204
  zoneIds?: string[] | undefined;
206
205
  associatedZoneIds?: string[] | undefined;
206
+ autoFromWalls: boolean;
207
207
  }[];
208
208
  remap: Map<string, string | undefined>;
209
209
  };
@@ -0,0 +1,24 @@
1
+ import type { AnyNode, CompiledGeometryScript, ZoneFloorScript } from '../schema/index.js';
2
+ type SceneNodes = Readonly<Record<string, AnyNode>>;
3
+ /**
4
+ * What a room's floor script is built for, in level coordinates and metres: the room's walking
5
+ * floor (its outline inside the wall faces, on its floor plate) as `polygon` with its `holes`, and
6
+ * the plate's top, `elevation`. The module lays its boards out over it; the compiler cuts the build
7
+ * to the polygon less its holes.
8
+ */
9
+ export type FloorScriptInputs = {
10
+ polygon: [number, number][];
11
+ holes: [number, number][][];
12
+ elevation: number;
13
+ };
14
+ /**
15
+ * The floor a room's script builds on, or null when the room has none (no floor plate: `hasFloor`
16
+ * false, or not enclosed yet). Several pieces (a floor cut through by a wall) give the largest.
17
+ */
18
+ export declare function floorScriptInputs(nodes: SceneNodes, zoneId: string): FloorScriptInputs | null;
19
+ /** The key a floor script keeps of the floor it was built for (`ZoneFloorScript.inputs`). */
20
+ export declare function floorScriptInputsKey(inputs: FloorScriptInputs): string;
21
+ /** A compile as the zone keeps it: its script source and the key of the floor it was built for. */
22
+ export declare function floorScriptRecord(compiled: CompiledGeometryScript, inputs: FloorScriptInputs, previous?: ZoneFloorScript): ZoneFloorScript;
23
+ export {};
24
+ //# sourceMappingURL=floor-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floor-script.d.ts","sourceRoot":"","sources":["../../src/lib/floor-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAejF,KAAK,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CA0B7F;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEtE;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,eAAe,GACzB,eAAe,CAEjB"}
@@ -0,0 +1,51 @@
1
+ import { DEFAULT_SLAB_ELEVATION } from '../schema/nodes/slab.js';
2
+ import { scriptSource } from './geometry-script-node.js';
3
+ import { levelWallCover, plateLevelContext } from './plate-surface.js';
4
+ import { area, difference, intersection, union, } from './polygon-boolean.js';
5
+ import { roomFloorPlate } from './room-floor-plate.js';
6
+ import { scriptInputsKey } from './script-inputs-key.js';
7
+ const round = (value) => Math.round(value * 1e4) / 1e4;
8
+ const roundRing = (ring) => ring.map(([x, z]) => [round(x), round(z)]);
9
+ /** Inputs by wall cover (memoised per wall signature in `levelWallCover`), then by room and plate. */
10
+ const inputsByCover = new WeakMap();
11
+ /**
12
+ * The floor a room's script builds on, or null when the room has none (no floor plate: `hasFloor`
13
+ * false, or not enclosed yet). Several pieces (a floor cut through by a wall) give the largest.
14
+ */
15
+ export function floorScriptInputs(nodes, zoneId) {
16
+ const zone = nodes[zoneId];
17
+ if (zone?.type !== 'zone' || zone.polygon.length < 3 || !zone.parentId)
18
+ return null;
19
+ const context = plateLevelContext(nodes[zone.parentId] ?? null, (id) => nodes[id]);
20
+ const plate = roomFloorPlate(context.slabs, zone.id);
21
+ if (!plate || plate.polygon.length < 3)
22
+ return null;
23
+ const cover = levelWallCover(context.walls);
24
+ const cache = inputsByCover.get(cover) ?? new Map();
25
+ inputsByCover.set(cover, cache);
26
+ const elevation = round(plate.elevation ?? DEFAULT_SLAB_ELEVATION);
27
+ const key = JSON.stringify([zone.polygon, zone.holes, plate.polygon, plate.holes, elevation]);
28
+ if (cache.has(key))
29
+ return cache.get(key);
30
+ const room = union([{ outer: zone.polygon, holes: zone.holes ?? [] }]);
31
+ const floor = intersection(cover.length ? difference(room, cover) : room, union([{ outer: plate.polygon, holes: plate.holes ?? [] }]));
32
+ let largest;
33
+ for (const piece of floor)
34
+ if (!largest || area([piece]) > area([largest]))
35
+ largest = piece;
36
+ const inputs = largest
37
+ ? { polygon: roundRing(largest.outer), holes: largest.holes.map(roundRing), elevation }
38
+ : null;
39
+ if (cache.size > 64)
40
+ cache.delete(cache.keys().next().value);
41
+ cache.set(key, inputs);
42
+ return inputs;
43
+ }
44
+ /** The key a floor script keeps of the floor it was built for (`ZoneFloorScript.inputs`). */
45
+ export function floorScriptInputsKey(inputs) {
46
+ return scriptInputsKey(JSON.stringify([inputs.polygon, inputs.holes, inputs.elevation]));
47
+ }
48
+ /** A compile as the zone keeps it: its script source and the key of the floor it was built for. */
49
+ export function floorScriptRecord(compiled, inputs, previous) {
50
+ return { ...scriptSource(compiled, {}, previous), inputs: floorScriptInputsKey(inputs) };
51
+ }
@@ -0,0 +1,73 @@
1
+ import type { AnyNode, AnyNodeId } from '../schema/index.js';
2
+ import type { Assembly } from '../schema/assembly.js';
3
+ /** What a foundation wall is built of: block, or cast in place. */
4
+ export type FoundationConstructionId = 'cmu' | 'cast-concrete';
5
+ /** Where the scene says the building stands, as far as foundation practice goes. */
6
+ export type FoundationRegionId = 'us' | 'europe' | 'generic';
7
+ export type FoundationConstruction = {
8
+ id: FoundationConstructionId;
9
+ /** Short name, for the results the agent reads. */
10
+ label: string;
11
+ /** The wall as the agent is told of it. */
12
+ description: string;
13
+ /** The stack a new foundation wall stores, outside in (the wall's thickness is its sum). */
14
+ assembly: Assembly;
15
+ /** The course the generic foundation draws up to the floor, where the walls above it are thinner. */
16
+ stemThickness: number;
17
+ /** How far the ground floor stands over finished grade: the top of the foundation, metres. */
18
+ seatAboveGrade: number;
19
+ /** Where the seat comes from. */
20
+ seatBasis: string;
21
+ /** Whether the numbers cite a standard (`standard`) or are a sensible default (`default`). */
22
+ source: 'standard' | 'default';
23
+ };
24
+ /**
25
+ * The foundation constructions, as data: the wall a person gets below grade, the course the generic
26
+ * foundation draws, and how high the floor stands over the ground. The generic one (`cmu`) is the
27
+ * US residential practice and stays the answer wherever nothing says better.
28
+ *
29
+ * - `cmu`: 8 in block, 2x4 pressure-treated furring laid flat inside (IRC R404.1, R317.1), the
30
+ * floor 8 in over grade (R317.1 keeps wood framing that far off exposed ground).
31
+ * - `cast-concrete`: the continental and British practice of a cast wall, 25 cm, insulated and
32
+ * waterproofed on the outside. The thicknesses are the usual ones (cellar walls of 20 to 25 cm,
33
+ * perimeter insulation of 10 cm, a 4 mm bitumen sheet), a sensible default rather than one
34
+ * country's code. The floor 15 cm over the ground: the damp-proof course of British practice
35
+ * (Approved Document C, NHBC) stands at least 150 mm over it, and plinths elsewhere run as high.
36
+ */
37
+ export declare const FOUNDATION_CONSTRUCTIONS: Record<FoundationConstructionId, FoundationConstruction>;
38
+ /**
39
+ * What the tool descriptions say of the construction, in one phrase; a test keeps its numbers equal
40
+ * to the data above.
41
+ */
42
+ export declare const FOUNDATION_BY_REGION_NOTE = "built of what the building's region says: 8 in CMU with 2x4 pressure-treated furring laid flat inside (0.241 m) in the United States and where the scene does not say where the building stands, 25 cm cast concrete insulated and waterproofed outside (0.354 m) in Europe; the result names the region it read";
43
+ /** What the scene says about where the building stands, and the construction that follows. */
44
+ export type FoundationReading = {
45
+ region: FoundationRegionId;
46
+ construction: FoundationConstruction;
47
+ /** Why this construction, for the agent: the region read and what it was read from. */
48
+ basis: string;
49
+ };
50
+ type Nodes = Record<AnyNodeId, AnyNode>;
51
+ /**
52
+ * Where the scene says the building stands, from what it carries without any plugin and in the
53
+ * order Bones' jurisdiction guess reads the same site: the state set by hand on the site
54
+ * (`metadata.codeOverrides.state`), the site's address state, the parcel's state; then, which
55
+ * Bones has no use for, the country the dossier's address ends with, and last the site's
56
+ * coordinates (a point over Europe). Nothing else is guessed: not the browser (core runs on the
57
+ * server too, where there is none), and a state or country that is not recognised leaves the
58
+ * region generic.
59
+ */
60
+ export declare function foundationRegionOf(nodes: Nodes, buildingId?: string | null): {
61
+ region: FoundationRegionId;
62
+ basis: string;
63
+ };
64
+ /**
65
+ * The foundation construction of a building, by region: the US block practice, cast concrete in
66
+ * Europe, and the generic block where the scene says nothing. `basis` names what was read, for the
67
+ * agent to repeat.
68
+ */
69
+ export declare function foundationReadingOf(nodes: Nodes, buildingId?: string | null): FoundationReading;
70
+ /** The reading for the building a level belongs to (no building: the site's region alone). */
71
+ export declare function foundationReadingOfLevel(nodes: Nodes, levelId: string): FoundationReading;
72
+ export {};
73
+ //# sourceMappingURL=foundation-construction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundation-construction.d.ts","sourceRoot":"","sources":["../../src/lib/foundation-construction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD,mEAAmE;AACnE,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,eAAe,CAAA;AAE9D,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,wBAAwB,CAAA;IAC5B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,QAAQ,EAAE,QAAQ,CAAA;IAClB,qGAAqG;IACrG,aAAa,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,CAAA;IACtB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;CAC/B,CAAA;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,sBAAsB,CAuC7F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,qTAC8Q,CAAA;AAEpT,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,YAAY,EAAE,sBAAsB,CAAA;IACpC,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAmIvC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwC/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAS/F;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAGzF"}
@@ -0,0 +1,242 @@
1
+ import { FOUNDATION_STANDARD } from './foundation-standard.js';
2
+ const INCH = 0.0254;
3
+ /**
4
+ * The foundation constructions, as data: the wall a person gets below grade, the course the generic
5
+ * foundation draws, and how high the floor stands over the ground. The generic one (`cmu`) is the
6
+ * US residential practice and stays the answer wherever nothing says better.
7
+ *
8
+ * - `cmu`: 8 in block, 2x4 pressure-treated furring laid flat inside (IRC R404.1, R317.1), the
9
+ * floor 8 in over grade (R317.1 keeps wood framing that far off exposed ground).
10
+ * - `cast-concrete`: the continental and British practice of a cast wall, 25 cm, insulated and
11
+ * waterproofed on the outside. The thicknesses are the usual ones (cellar walls of 20 to 25 cm,
12
+ * perimeter insulation of 10 cm, a 4 mm bitumen sheet), a sensible default rather than one
13
+ * country's code. The floor 15 cm over the ground: the damp-proof course of British practice
14
+ * (Approved Document C, NHBC) stands at least 150 mm over it, and plinths elsewhere run as high.
15
+ */
16
+ export const FOUNDATION_CONSTRUCTIONS = {
17
+ cmu: {
18
+ id: 'cmu',
19
+ label: 'CMU',
20
+ description: '8 in (0.203 m) CMU with 2x4 pressure-treated furring laid flat on the inside, 16 in on centre, interior finish as the level has it',
21
+ assembly: {
22
+ layers: [
23
+ { id: 'block', role: 'structure', core: true, material: 'cmu', thickness: 0.203 },
24
+ // IRC R317.1: furring on the inside of below-grade masonry is pressure treated, 16 in on centre.
25
+ { id: 'furring', role: 'furring', material: 'pressure-treated wood', thickness: 0.038 },
26
+ ],
27
+ face: 'exterior',
28
+ },
29
+ stemThickness: FOUNDATION_STANDARD.stemThickness,
30
+ seatAboveGrade: 0.203,
31
+ seatBasis: 'IRC R317.1 keeps wood framing resting on a foundation wall 8 in from exposed ground',
32
+ source: 'standard',
33
+ },
34
+ 'cast-concrete': {
35
+ id: 'cast-concrete',
36
+ label: 'cast concrete',
37
+ description: '25 cm (0.25 m) cast concrete with 10 cm of insulation and a bitumen waterproofing membrane on the outside, interior finish as the level has it',
38
+ assembly: {
39
+ layers: [
40
+ { id: 'membrane', role: 'membrane', material: 'bitumen membrane', thickness: 0.004 },
41
+ { id: 'insulation', role: 'insulation', material: 'perimeter insulation', thickness: 0.1 },
42
+ { id: 'concrete', role: 'structure', core: true, material: 'concrete', thickness: 0.25 },
43
+ ],
44
+ face: 'exterior',
45
+ },
46
+ stemThickness: 0.25,
47
+ seatAboveGrade: 0.15,
48
+ seatBasis: 'a sensible default: the damp-proof course of British practice (Approved Document C, NHBC) stands at least 150 mm over the ground and continental plinths run about as high; verify the local rule',
49
+ source: 'default',
50
+ },
51
+ };
52
+ /**
53
+ * What the tool descriptions say of the construction, in one phrase; a test keeps its numbers equal
54
+ * to the data above.
55
+ */
56
+ export const FOUNDATION_BY_REGION_NOTE = "built of what the building's region says: 8 in CMU with 2x4 pressure-treated furring laid flat inside (0.241 m) in the United States and where the scene does not say where the building stands, 25 cm cast concrete insulated and waterproofed outside (0.354 m) in Europe; the result names the region it read";
57
+ const US_STATES = new Set('AL AK AZ AR CA CO CT DE DC FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI WY'.split(' '));
58
+ const US_STATE_NAMES = Object.fromEntries([
59
+ ['ALABAMA', 'AL'],
60
+ ['ALASKA', 'AK'],
61
+ ['ARIZONA', 'AZ'],
62
+ ['ARKANSAS', 'AR'],
63
+ ['CALIFORNIA', 'CA'],
64
+ ['COLORADO', 'CO'],
65
+ ['CONNECTICUT', 'CT'],
66
+ ['DELAWARE', 'DE'],
67
+ ['DISTRICT OF COLUMBIA', 'DC'],
68
+ ['FLORIDA', 'FL'],
69
+ ['GEORGIA', 'GA'],
70
+ ['HAWAII', 'HI'],
71
+ ['IDAHO', 'ID'],
72
+ ['ILLINOIS', 'IL'],
73
+ ['INDIANA', 'IN'],
74
+ ['IOWA', 'IA'],
75
+ ['KANSAS', 'KS'],
76
+ ['KENTUCKY', 'KY'],
77
+ ['LOUISIANA', 'LA'],
78
+ ['MAINE', 'ME'],
79
+ ['MARYLAND', 'MD'],
80
+ ['MASSACHUSETTS', 'MA'],
81
+ ['MICHIGAN', 'MI'],
82
+ ['MINNESOTA', 'MN'],
83
+ ['MISSISSIPPI', 'MS'],
84
+ ['MISSOURI', 'MO'],
85
+ ['MONTANA', 'MT'],
86
+ ['NEBRASKA', 'NE'],
87
+ ['NEVADA', 'NV'],
88
+ ['NEW HAMPSHIRE', 'NH'],
89
+ ['NEW JERSEY', 'NJ'],
90
+ ['NEW MEXICO', 'NM'],
91
+ ['NEW YORK', 'NY'],
92
+ ['NORTH CAROLINA', 'NC'],
93
+ ['NORTH DAKOTA', 'ND'],
94
+ ['OHIO', 'OH'],
95
+ ['OKLAHOMA', 'OK'],
96
+ ['OREGON', 'OR'],
97
+ ['PENNSYLVANIA', 'PA'],
98
+ ['RHODE ISLAND', 'RI'],
99
+ ['SOUTH CAROLINA', 'SC'],
100
+ ['SOUTH DAKOTA', 'SD'],
101
+ ['TENNESSEE', 'TN'],
102
+ ['TEXAS', 'TX'],
103
+ ['UTAH', 'UT'],
104
+ ['VERMONT', 'VT'],
105
+ ['VIRGINIA', 'VA'],
106
+ ['WASHINGTON', 'WA'],
107
+ ['WEST VIRGINIA', 'WV'],
108
+ ['WISCONSIN', 'WI'],
109
+ ['WYOMING', 'WY'],
110
+ ]);
111
+ /** 'tx', 'Texas', 'TEXAS ' → 'TX'; null for anything that is no US state (a Canadian province, a French région). */
112
+ function usStateOf(raw) {
113
+ if (typeof raw !== 'string')
114
+ return null;
115
+ const text = raw.trim().toUpperCase().replace(/\s+/g, ' ');
116
+ if (US_STATES.has(text))
117
+ return text;
118
+ return US_STATE_NAMES[text] ?? null;
119
+ }
120
+ const fold = (text) => text
121
+ .normalize('NFD')
122
+ .replace(/\p{Diacritic}/gu, '')
123
+ .toLowerCase()
124
+ .replace(/[^a-z ]/g, ' ')
125
+ .replace(/\s+/g, ' ')
126
+ .trim();
127
+ const UNITED_STATES_NAMES = new Set(['usa', 'us', 'united states', 'united states of america']);
128
+ /** The countries a formatted address can end with, where masonry and cast foundations are the practice. */
129
+ const EUROPEAN_COUNTRY_NAMES = new Set([
130
+ 'albania, andorra, austria, belgium, belgique, belgie, bosnia and herzegovina, bulgaria, croatia, cyprus,',
131
+ 'czechia, czech republic, denmark, estonia, finland, france, germany, deutschland, greece, hungary,',
132
+ 'iceland, ireland, italy, italia, latvia, liechtenstein, lithuania, luxembourg, malta, monaco,',
133
+ 'montenegro, netherlands, nederland, north macedonia, norway, poland, portugal, romania,',
134
+ 'san marino, serbia, slovakia, slovenia, spain, espana, sweden, switzerland, suisse, schweiz,',
135
+ 'svizzera, united kingdom, uk, great britain, england, scotland, wales, northern ireland',
136
+ ]
137
+ .join(' ')
138
+ .split(',')
139
+ .map((name) => name.trim()));
140
+ /** The country the last part of a formatted address names ('…, 75008 Paris, France'), as a region. */
141
+ function regionOfAddress(formatted) {
142
+ if (typeof formatted !== 'string')
143
+ return null;
144
+ const last = formatted.split(',').at(-1);
145
+ if (!last)
146
+ return null;
147
+ const country = fold(last);
148
+ if (UNITED_STATES_NAMES.has(country))
149
+ return { region: 'us', country: last.trim() };
150
+ if (EUROPEAN_COUNTRY_NAMES.has(country))
151
+ return { region: 'europe', country: last.trim() };
152
+ return null;
153
+ }
154
+ /**
155
+ * A coarse box over Europe, for a site with a point and no address. It leaves out Africa and the
156
+ * Near East, and what it takes in beyond the continent (Anatolia's west, Kaliningrad) is masonry
157
+ * country too. Canada and the United States are not read from coordinates: their border is no
158
+ * box, and a site with only a point there keeps the generic construction.
159
+ */
160
+ function inEurope(lat, lng) {
161
+ return lat >= 36 && lat <= 71.5 && lng >= -10.7 && lng <= 31;
162
+ }
163
+ function finite(value) {
164
+ return typeof value === 'number' && Number.isFinite(value);
165
+ }
166
+ function siteOf(nodes, buildingId) {
167
+ const building = buildingId ? nodes[buildingId] : undefined;
168
+ const parent = building?.parentId ? nodes[building.parentId] : undefined;
169
+ if (parent?.type === 'site')
170
+ return parent;
171
+ const site = Object.values(nodes).find((node) => node.type === 'site');
172
+ return site ?? null;
173
+ }
174
+ /**
175
+ * Where the scene says the building stands, from what it carries without any plugin and in the
176
+ * order Bones' jurisdiction guess reads the same site: the state set by hand on the site
177
+ * (`metadata.codeOverrides.state`), the site's address state, the parcel's state; then, which
178
+ * Bones has no use for, the country the dossier's address ends with, and last the site's
179
+ * coordinates (a point over Europe). Nothing else is guessed: not the browser (core runs on the
180
+ * server too, where there is none), and a state or country that is not recognised leaves the
181
+ * region generic.
182
+ */
183
+ export function foundationRegionOf(nodes, buildingId) {
184
+ const site = siteOf(nodes, buildingId);
185
+ const nowhere = {
186
+ region: 'generic',
187
+ basis: 'the scene does not say where the building stands (no site state, address country or coordinates)',
188
+ };
189
+ if (!site)
190
+ return nowhere;
191
+ const overrides = site.metadata?.codeOverrides;
192
+ const byHand = usStateOf(overrides?.state);
193
+ if (byHand)
194
+ return { region: 'us', basis: `the site's code overrides set the state ${byHand}` };
195
+ const addressState = usStateOf(site.address?.state);
196
+ if (addressState)
197
+ return { region: 'us', basis: `the site's address is in the state ${addressState}` };
198
+ const parcelState = usStateOf(site.parcel?.state);
199
+ if (parcelState)
200
+ return { region: 'us', basis: `the site's parcel is in the state ${parcelState}` };
201
+ const dossier = site.dossier;
202
+ const named = regionOfAddress(dossier?.address?.formatted);
203
+ if (named) {
204
+ return {
205
+ region: named.region,
206
+ basis: `the site's dossier address ends with ${named.country}`,
207
+ };
208
+ }
209
+ const origin = site.parcel?.originLngLat;
210
+ const points = [
211
+ { lat: dossier?.point?.lat, lng: dossier?.point?.lng },
212
+ ...(Array.isArray(origin) ? [{ lat: origin[1], lng: origin[0] }] : []),
213
+ ];
214
+ for (const { lat, lng } of points) {
215
+ if (finite(lat) && finite(lng) && inEurope(lat, lng)) {
216
+ return {
217
+ region: 'europe',
218
+ basis: `the site's coordinates (${lat.toFixed(2)}, ${lng.toFixed(2)}) lie in Europe`,
219
+ };
220
+ }
221
+ }
222
+ return nowhere;
223
+ }
224
+ /**
225
+ * The foundation construction of a building, by region: the US block practice, cast concrete in
226
+ * Europe, and the generic block where the scene says nothing. `basis` names what was read, for the
227
+ * agent to repeat.
228
+ */
229
+ export function foundationReadingOf(nodes, buildingId) {
230
+ const { region, basis: regionBasis } = foundationRegionOf(nodes, buildingId);
231
+ const id = region === 'europe' ? 'cast-concrete' : 'cmu';
232
+ const regionPart = region === 'generic'
233
+ ? `no region known (${regionBasis})`
234
+ : `region ${region === 'us' ? 'United States' : 'Europe'} (${regionBasis})`;
235
+ const basis = `${regionPart}${region === 'generic' ? '; the generic block foundation applies' : ''}`;
236
+ return { region, construction: FOUNDATION_CONSTRUCTIONS[id], basis };
237
+ }
238
+ /** The reading for the building a level belongs to (no building: the site's region alone). */
239
+ export function foundationReadingOfLevel(nodes, levelId) {
240
+ const parent = nodes[(nodes[levelId]?.parentId ?? '')];
241
+ return foundationReadingOf(nodes, parent?.type === 'building' ? parent.id : null);
242
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The standard numbers of a residential foundation, in metres, stated once: the generic foundation
3
+ * the viewer draws under every building (`genericFoundation`), Bones' pour and the sections
4
+ * plugin's drawings all read them. They are the common US residential values (IRC chapters 4 and
5
+ * 5), not a jurisdiction's: core holds no frost data, so what depends on one (the frost line, the
6
+ * wall convention) stays with the jurisdiction profile in Bones.
7
+ */
8
+ export declare const FOUNDATION_STANDARD: {
9
+ /** Continuous footing under an exterior wall: 16 in wide, the usual pour for light framing (IRC R403.1). */
10
+ readonly footingWidth: number;
11
+ /** 6 in is the minimum (IRC Table R403.1(1)); 8 in is the near-universal pour. */
12
+ readonly footingThickness: number;
13
+ /**
14
+ * How far the footing's bottom sits under the lowest grade where nothing says better: 12 in, the
15
+ * shallowest Bones allows (IRC R403.1.4.1 asks for the frost line, which core does not know). A
16
+ * generic depth, drawn as one.
17
+ */
18
+ readonly footingBelowGrade: number;
19
+ /** The foundation wall (the stem) from the footing up to the floor: 8 in (IRC R404.1). */
20
+ readonly stemThickness: number;
21
+ /** A crawl space vent, 8 × 16 in screened for 50 sq in net (IRC R408.1), within 3 ft of each corner, set 2 ft in (R408.2). */
22
+ readonly ventWidth: number;
23
+ readonly ventHeight: number;
24
+ readonly ventNetAreaSqIn: 50;
25
+ readonly ventCornerInset: number;
26
+ /** The crawl space access through the stem: 16 × 24 in (IRC R408.4). */
27
+ readonly crawlAccessWidth: number;
28
+ readonly crawlAccessHeight: number;
29
+ };
30
+ //# sourceMappingURL=foundation-standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundation-standard.d.ts","sourceRoot":"","sources":["../../src/lib/foundation-standard.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B,4GAA4G;aAC5G,YAAY;IACZ,kFAAkF;aAClF,gBAAgB;IAChB;;;;OAIG;aACH,iBAAiB;IACjB,0FAA0F;aAC1F,aAAa;IACb,8HAA8H;aAC9H,SAAS;aACT,UAAU;aACV,eAAe,EAAE,EAAE;aACnB,eAAe;IACf,wEAAwE;aACxE,gBAAgB;aAChB,iBAAiB;CACT,CAAA"}